- char *s = buffer;
- if(zsh_history && *s == ':') {
- s++;
- while(*s && *s != ';') s++;
- if(*s == ';') s++;
- }
- lines[nb_lines] = new char[strlen(s) + 1];
- strcpy(lines[nb_lines], s);
- nb_lines++;
+ if(strcmp(buffer, "") != 0) {
+ char *s = buffer;
+ if(zsh_history && *s == ':') {
+ while(*s && *s != ';') s++;
+ if(*s == ';') s++;
+ }
+
+ if(bash_history && (*s == ' ' || (*s >= '0' && *s <= '9'))) {
+ while(*s == ' ' || (*s >= '0' && *s <= '9')) s++;
+ }
+
+ lines[nb_lines] = new char[strlen(s) + 1];
+ strcpy(lines[nb_lines], s);
+ nb_lines++;
+ }
+ }
+
+ if(inverse_order) {
+ for(int i = 0; i < nb_lines/2; i++) {
+ char *s = lines[nb_lines - 1 - i];
+ lines[nb_lines - 1 - i] = lines[i];
+ lines[i] = s;
+ }