X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?a=blobdiff_plain;ds=inline;f=selector.c;h=e2f8f79005541bae15d500773610dc44fb70dc5b;hb=19a49d18e860c4cbddffc7055f7c3ce0a1948650;hp=95d8968b6d41796798488502838904bd9f2da3de;hpb=544f3784539dd637048cd0355fdba21e2ea825b6;p=selector.git
diff --git a/selector.c b/selector.c
index 95d8968..e2f8f79 100644
--- a/selector.c
+++ b/selector.c
@@ -25,7 +25,7 @@
/*
To use it as a super-history-search for bash:
- selector --bash -l ${HISTSIZE} <(history)
+ selector --bash <(history)
*/
@@ -128,7 +128,7 @@ void str_to_positive_integers(char *string, int *values, int nb) {
return;
} else {
fprintf(stderr,
- "Selector: Missing value in `%s'.\n", string);
+ "selector: Missing value in `%s'.\n", string);
exit(EXIT_FAILURE);
}
}
@@ -136,17 +136,17 @@ void str_to_positive_integers(char *string, int *values, int nb) {
gotone = 0;
} else {
fprintf(stderr,
- "Selector: Too many values in `%s'.\n", string);
+ "selector: Too many values in `%s'.\n", string);
exit(EXIT_FAILURE);
}
} else {
fprintf(stderr,
- "Selector: Empty value in `%s'.\n", string);
+ "selector: Empty value in `%s'.\n", string);
exit(EXIT_FAILURE);
}
} else {
fprintf(stderr,
- "Selector: Syntax error in `%s'.\n", string);
+ "selector: Syntax error in `%s'.\n", string);
exit(EXIT_FAILURE);
}
s++;
@@ -191,7 +191,7 @@ void usage(FILE *out) {
fprintf(out, " -q, --no-beep\n");
fprintf(out, " make a flash instead of a beep on an edition error\n");
fprintf(out, " --bash\n");
- fprintf(out, " setting for bash history search, same as -b -i -d -v -w\n");
+ fprintf(out, " setting for bash history search, same as -b -i -d -v -w -l ${HISTSIZE}\n");
fprintf(out, " --, --rest-are-files\n");
fprintf(out, " all following arguments are filenames\n");
fprintf(out, " -t
, --title \n");
@@ -428,8 +428,7 @@ void kill_after_cursor(char *buffer, int *position) {
/*********************************************************************/
-int previous_visible(int current_line, int nb_lines, char **lines,
- matcher_t *matcher) {
+int previous_visible(int current_line, char **lines, matcher_t *matcher) {
int line = current_line - 1;
while(line >= 0 && !match(lines[line], matcher)) line--;
return line;
@@ -502,8 +501,7 @@ void update_screen(int *current_focus_line, int *displayed_focus_line,
new_focus_line = next_visible(*current_focus_line, nb_lines, lines,
&matcher);
if(new_focus_line < 0) {
- new_focus_line = previous_visible(*current_focus_line, nb_lines, lines,
- &matcher);
+ new_focus_line = previous_visible(*current_focus_line, lines, &matcher);
}
}
@@ -522,7 +520,7 @@ void update_screen(int *current_focus_line, int *displayed_focus_line,
} else {
/* We want to go up, let's find the first visible line above */
for(m = 0; l >= 0 && m < -motion; m++) {
- l = previous_visible(l, nb_lines, lines, &matcher);
+ l = previous_visible(l, lines, &matcher);
if(l >= 0) {
new_focus_line = l;
}
@@ -753,7 +751,7 @@ void read_file(struct hash_table_t *hash_table,
file = fopen(input_filename, "r");
if(!file) {
- fprintf(stderr, "Selector: Can not open `%s'.\n", input_filename);
+ fprintf(stderr, "selector: Can not open `%s'.\n", input_filename);
exit(EXIT_FAILURE);
}
@@ -786,7 +784,7 @@ void read_file(struct hash_table_t *hash_table,
if(eol == BUFFER_SIZE) {
raw_line[BUFFER_SIZE - 1] = '\0';
- fprintf(stderr, "Selector: Line too long (max is %d characters):\n",
+ fprintf(stderr, "selector: Line too long (max is %d characters):\n",
BUFFER_SIZE);
fprintf(stderr, raw_line);
fprintf(stderr, "\n");
@@ -857,9 +855,10 @@ int main(int argc, char **argv) {
char **lines, **labels;
int nb_lines;
struct hash_table_t *hash_table;
+ char *bash_histsize;
if(!isatty(STDIN_FILENO)) {
- fprintf(stderr, "Selector: The standard input is not a tty.\n");
+ fprintf(stderr, "selector: The standard input is not a tty.\n");
exit(EXIT_FAILURE);
}
@@ -969,6 +968,10 @@ int main(int argc, char **argv) {
remove_duplicates = 1;
output_to_vt_buffer = 1;
add_control_qs = 1;
+ bash_histsize = getenv("HISTSIZE");
+ if(bash_histsize) {
+ str_to_positive_integers(bash_histsize, &nb_lines_max, 1);
+ }
break;
default:
@@ -1082,7 +1085,7 @@ int main(int argc, char **argv) {
color_bg_highlight < 0 || color_bg_highlight >= COLORS) {
echo();
endwin();
- fprintf(stderr, "Selector: Color numbers have to be between 0 and %d.\n",
+ fprintf(stderr, "selector: Color numbers have to be between 0 and %d.\n",
COLORS - 1);
exit(EXIT_FAILURE);
}
@@ -1234,7 +1237,7 @@ int main(int argc, char **argv) {
fprintf(out, "\n");
} else {
fprintf(stderr,
- "Selector: Can not open %s for writing.\n",
+ "selector: Can not open %s for writing.\n",
output_filename);
exit(EXIT_FAILURE);
}