X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=selector.cc;h=2a6a4f3c14a3613e0e7877524cfbbae2b7c73d9e;hb=a6bbe434ac0ae391a0bf2e1141a3c7c39df35869;hp=617edf0f1ef698cf7963d7efe8a69a3f0a89a39b;hpb=42294c6ab7b85294b8f2931291c1dcc977642806;p=selector.git diff --git a/selector.cc b/selector.cc index 617edf0..2a6a4f3 100644 --- a/selector.cc +++ b/selector.cc @@ -54,6 +54,7 @@ int output_to_vt_buffer = 0; int with_colors = 1; int zsh_history = 0, bash_history = 0; int inverse_order = 0; +int remove_duplicates = 0; ////////////////////////////////////////////////////////////////////// @@ -383,6 +384,11 @@ int main(int argc, char **argv) { i++; } + else if(strcmp(argv[i], "-r") == 0) { + remove_duplicates = 1; + i++; + } + else if(strcmp(argv[i], "-l") == 0) { check_opt(argc, argv, i, 1, ""); nb_lines_max = atoi(argv[i+1]); @@ -407,6 +413,7 @@ int main(int argc, char **argv) { << " [-h]" << " [-v]" << " [-m]" + << " [-r]" << " [-z]" << " [-i]" << " [-c ]" @@ -452,9 +459,11 @@ int main(int argc, char **argv) { while(*s == ' ' || (*s >= '0' && *s <= '9')) s++; } - lines[nb_lines] = new char[strlen(s) + 1]; - strcpy(lines[nb_lines], s); - nb_lines++; + if(!remove_duplicates || nb_lines == 0 || strcmp(lines[nb_lines - 1], s)) { + lines[nb_lines] = new char[strlen(s) + 1]; + strcpy(lines[nb_lines], s); + nb_lines++; + } } }