X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?a=blobdiff_plain;f=selector.c;h=aafaf9d63369a8bc7d12f058ed0af3df620614f4;hb=edb1db90ca786eb30c83464380df373a85b339a0;hp=24ad55d607862c63e516db2d1da28af9897905af;hpb=db0d8f2855537dee1b1a39600d8acecd98f603ed;p=selector.git diff --git a/selector.c b/selector.c index 24ad55d..aafaf9d 100644 --- a/selector.c +++ b/selector.c @@ -206,6 +206,8 @@ void usage(FILE *out) { fprintf(out, " -- all following arguments are filenames\n"); fprintf(out, " -t , --title <title>\n"); fprintf(out, " add a title in the modeline\n"); + fprintf(out, " -r <pattern>, --pattern <pattern>\n"); + fprintf(out, " set an initial pattern\n"); fprintf(out, " -c <colors>, --colors <colors>\n"); fprintf(out, " set the display colors with an argument of the form\n"); fprintf(out, " <fg_modeline>,<bg_modeline>,<fg_highlight>,<bg_highlight>\n"); @@ -764,9 +766,10 @@ void update_screen(int *current_focus_line, int *displayed_focus_line, addnstr("\\", 1); attroff(attr_focus_line); } else { - buffer[k++] = '\n'; - buffer[k++] = '\0'; - + if(k < console_width) { + buffer[k++] = '\n'; + buffer[k++] = '\0'; + } print_string_with_switches(buffer, k, nb_switches / 2, switches); } @@ -965,6 +968,7 @@ static struct option long_options[] = { { "show-hits", no_argument, 0, 'j'}, { "upper-case-makes-case-sensitive", no_argument, 0, 'u' }, { "title", 1, 0, 't' }, + { "pattern", 1, 0, 'r' }, { "number-of-lines", 1, 0, 'l' }, { "colors", 1, 0, 'c' }, { "bash", no_argument, 0, OPT_BASH_MODE }, @@ -996,6 +1000,8 @@ int main(int argc, char **argv) { exit(EXIT_FAILURE); } + pattern[0] = '\0'; + color_fg_modeline = COLOR_WHITE; color_bg_modeline = COLOR_BLACK; color_fg_highlight = COLOR_BLACK; @@ -1005,7 +1011,7 @@ int main(int argc, char **argv) { strcpy(output_filename, ""); - while ((c = getopt_long(argc, argv, "o:s:x:vwmqf:ibzdeajyunt:l:c:-h", + while ((c = getopt_long(argc, argv, "o:s:x:vwmqf:ibzdeajyunt:r:l:c:-h", long_options, NULL)) != -1) { switch(c) { @@ -1080,6 +1086,10 @@ int main(int argc, char **argv) { strcpy(title, optarg); break; + case 'r': + strcpy(pattern, optarg); + break; + case 'l': str_to_positive_integers(optarg, &nb_lines_max, 1); break; @@ -1198,8 +1208,6 @@ int main(int argc, char **argv) { *s = '\0'; } - pattern[0] = '\0'; - cursor_position = 0; /* Here we start to display with curse */ @@ -1245,6 +1253,7 @@ int main(int argc, char **argv) { current_focus_line = 0; displayed_focus_line = 0; + cursor_position = strlen(pattern); update_screen(¤t_focus_line, &displayed_focus_line, 0,