From: Francois Fleuret Date: Sat, 7 Apr 2012 13:10:17 +0000 (+0200) Subject: Added the --pattern option. X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?a=commitdiff_plain;h=edb1db90ca786eb30c83464380df373a85b339a0;p=selector.git Added the --pattern option. --- diff --git a/selector.1 b/selector.1 index 5ea32e9..17e867f 100644 --- a/selector.1 +++ b/selector.1 @@ -117,6 +117,9 @@ standard setting for bash history search, same as \fB-t \fI\fR, \fB--title \fI<title>\fR add a title in the modeline .TP +\fB-r \fI<pattern>\fR, \fB--pattern \fI<pattern>\fR +set a pattern +.TP \fB-c \fI<colors>\fR, \fB--colors \fI<colors>\fR select the modeline and highlight color numbers with a color list of the form diff --git a/selector.c b/selector.c index 2d81071..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 <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"); @@ -966,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 }, @@ -997,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; @@ -1006,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) { @@ -1081,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; @@ -1199,8 +1208,6 @@ int main(int argc, char **argv) { *s = '\0'; } - pattern[0] = '\0'; - cursor_position = 0; /* Here we start to display with curse */ @@ -1246,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,