X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?a=blobdiff_plain;f=selector.cc;h=13eb43a465f0977afd669a7e67124a02618b0c7b;hb=41927c77cc6c56eff6a76a646a8ab4d315c90b1b;hp=f909ba03120653458ba5df5282c3e592d6fbb1da;hpb=afff78731674c6eabce11d31aa2200cbf82d189d;p=selector.git diff --git a/selector.cc b/selector.cc index f909ba0..13eb43a 100644 --- a/selector.cc +++ b/selector.cc @@ -50,6 +50,7 @@ int nb_lines_max = 10000; char pattern_separator = ';'; int output_to_vt_buffer = 0; int with_colors = 1; +int zsh_history = 0; ////////////////////////////////////////////////////////////////////// @@ -384,6 +385,11 @@ int main(int argc, char **argv) { i++; } + else if(strcmp(argv[i], "-z") == 0) { + zsh_history = 1; + i++; + } + else if(strcmp(argv[i], "-l") == 0) { check_opt(argc, argv, i, 1, ""); nb_lines_max = atoi(argv[i+1]); @@ -408,6 +414,7 @@ int main(int argc, char **argv) { << " [-h]" << " [-v]" << " [-m]" + << " [-z]" << " [-c ]" << " [-o ]" << " [-s ]" @@ -437,8 +444,13 @@ int main(int argc, char **argv) { int nb_lines = 0; while(nb_lines < nb_lines_max && !file.eof()) { file.getline(buffer, buffer_size); - lines[nb_lines] = new char[strlen(buffer) + 1]; - strcpy(lines[nb_lines], buffer); + char *s = buffer; + if(zsh_history && *s == ':') { + s++; + while(*s && *s != ':') s++; + } + lines[nb_lines] = new char[strlen(s) + 1]; + strcpy(lines[nb_lines], s); nb_lines++; }