dmenu-pipeout-20160701-3c91eed.diff - sites - public wiki contents of suckless.org
 (HTM) git clone git://git.suckless.org/sites
 (DIR) Log
 (DIR) Files
 (DIR) Refs
       ---
       dmenu-pipeout-20160701-3c91eed.diff (1257B)
       ---
            1 diff --git a/config.def.h b/config.def.h
            2 index dcffd38..8c18a07 100644
            3 --- a/config.def.h
            4 +++ b/config.def.h
            5 @@ -20,4 +20,5 @@ static unsigned int lines      = 0;
            6   * Characters not considered part of a word while deleting words
            7   * for example: " /?\"&[]"
            8   */
            9 +static const char startpipe[] = "#";
           10  static const char worddelimiters[] = " ";
           11 diff --git a/dmenu.c b/dmenu.c
           12 index e0c2f80..9ed07bc 100644
           13 --- a/dmenu.c
           14 +++ b/dmenu.c
           15 @@ -35,6 +35,7 @@ struct item {
           16  };
           17  
           18  static char text[BUFSIZ] = "";
           19 +static char pipeout[8] = " | dmenu";
           20  static int bh, mw, mh;
           21  static int sw, sh; /* X display screen geometry width, height */
           22  static int inputw, promptw;
           23 @@ -416,7 +417,20 @@ keypress(XKeyEvent *ev)
           24                  break;
           25          case XK_Return:
           26          case XK_KP_Enter:
           27 -                puts((sel && !(ev->state & ShiftMask)) ? sel->text : text);
           28 +    if ((sel && !(ev->state & ShiftMask))) {
           29 +      if (sel->text[0] == startpipe[0]) {
           30 +        strncpy(sel->text + strlen(sel->text),pipeout,8);
           31 +        puts(sel->text+1);
           32 +      }
           33 +        puts(sel->text);
           34 +    }
           35 +    else {
           36 +      if (text[0] == startpipe[0]) {
           37 +        strncpy(text + strlen(text),pipeout,8);
           38 +        puts(text+1);
           39 +      }
           40 +        puts(text);
           41 +    }
           42                  if (!(ev->state & ControlMask)) {
           43                          cleanup();
           44                          exit(0);