*/
// To use it as a super-history-search for bash:
-//
// alias h='selector -d -i -b -v -f <(history)'
-// This software is highly Linux-specific, but I would be glad to get
-// patches to make it work on other OS
-
#include <fstream>
#include <iostream>
//////////////////////////////////////////////////////////////////////
-// This looks severely Linux-only ...
-
-void inject_into_tty_buffer(char *line) {
+void inject_into_tty_buffer(char *string) {
struct termios oldtio, newtio;
- tcgetattr(STDIN_FILENO,&oldtio);
+ tcgetattr(STDIN_FILENO, &oldtio);
memset(&newtio, 0, sizeof(newtio));
// Set input mode (non-canonical, *no echo*,...)
tcsetattr(STDIN_FILENO, TCSANOW, &newtio);
- // Put the selected line in the tty input buffer
- for(char *k = line; *k; k++) {
+ // Put the selected string in the tty input buffer
+ for(char *k = string; *k; k++) {
ioctl(STDIN_FILENO, TIOCSTI, k);
}
// Restore the old settings
<< "Usage: " << argv[0] << " [options] -f <file>" << endl
<< endl
<< " -h show this help" << endl
- << " -v inject the selection in the tty" << endl
- << " -m monochrome mode" << endl
+ << " -v inject the selected line in the tty" << endl
<< " -d remove duplicated lines" << endl
- << " -e regexp mode when starting" << endl
<< " -b remove the bash history line prefix" << endl
<< " -z remove the zsh history line prefix" << endl
- << " -i invert the line order" << endl
+ << " -i invert the order of lines" << endl
+ << " -e start in regexp mode" << endl
+ << " -m monochrome mode" << endl
<< " -c <fg modeline> <bg modeline> <fg highlight> <bg highlight>" << endl
<< " set the display colors" << endl
<< " -o <output filename>" << endl
file.getline(raw_line, buffer_size);
- if(strcmp(raw_line, "") != 0) {
+ if(raw_line[0]) {
char *s, *t;
const char *u;