On Mon, 2010-07-19 at 12:10 +0200, Loïc Grenié wrote: > 2010/7/19 Christopher Barry <[email protected]>: > > On Sun, 2010-07-18 at 21:55 +0200, Denys Vlasenko wrote: > >> On Saturday 17 July 2010 19:12, Christopher Barry wrote: > >> > All, > >> > > >> > looking for an easy way to capture the current cursor position. found a > >> > reference to 'ESC [ 6 n', but not sure how that works. I tried > >> > # echo -e '\e[6n' > >> > but that does not do what I expect. > >> > >> It makes terminal talk: > >> > >> shadow:~# echo -ne '\e[6n'; hexdump -vC > >> ^[[6;1R (here I press ^D^D to let hexdump see EOF) 00000000 1b 5b 36 3b > >> 31 52 |.[6;1R| > >> 00000006 > >> > > > > Denys, I have no idea what the heck that means! :) > > When you echo 'ESC [ 6 n' the terminal puts > > ESC [ <row> ; <col> R > > on the standard input (where <row> and <col> are numbers, as > above). If you think about it, that's the only way it can provide > this information (remember that the terminal could be a text > terminal at the end of a serial cable). It is not extremely convenient, > but you can devise a kind of get_cursor_position program which > would look like (in C): > > main() > { > int row, col; > fprintf(stderr, "^[[6n"); > scanf("^[[%d;%dR",&row,&col); > printf("%d:%d\n",row,col); > exit(0); > } > > (you have to clean it up, add some #include, change the last > printf to suit your need, etc). > > > I was actually looking for something to put in a script, kinda like: > > > > cp=$(get_cursor_position) > > [[ ${cp} -gt 0 ]] && echo > > > > so my logger would not be writing at the end of an unrelated line. > > Denys is probably right, it would be better if programs ouputted > only full lines. > > Remember that there is no warranty that you are the only program > to write to the terminal: 1) a program could mess the ouput between > "get_cursor_position" and your output and 2) another program could > write *together* with yours. > > Hope this helps, > > Loïc >
Thanks Loic and everyone for your insight and information on this topic. Very much appreciated. Regards, -C _______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
