ii-1.4-exec.diff - sites - public wiki contents of suckless.org
 (HTM) git clone git://git.suckless.org/sites
 (DIR) Log
 (DIR) Files
 (DIR) Refs
       ---
       ii-1.4-exec.diff (1050B)
       ---
            1 diff -r d93eaacde742 ii.1
            2 --- a/ii.1        Fri Jun 25 10:55:05 2010 +0200
            3 +++ b/ii.1        Wed Jul 21 15:57:23 2010 -0700
            4 @@ -70,6 +70,9 @@
            5  .FN /a " [<message>]"
            6  mark yourself as away
            7  .TP
            8 +.FN /e " cmd"
            9 +execute cmd and write output to current channel
           10 +.TP
           11  .FN /j " #channel/nickname [<message>]"
           12  join a channel or open private conversation with user
           13  .TP
           14 diff -r d93eaacde742 ii.c
           15 --- a/ii.c        Fri Jun 25 10:55:05 2010 +0200
           16 +++ b/ii.c        Wed Jul 21 15:57:23 2010 -0700
           17 @@ -284,6 +284,26 @@
           18                          rm_channel(c);
           19                          return;
           20                          break;
           21 +                case 'e':
           22 +                        if(strlen(buf)>=3) {
           23 +                                char newbuf[PIPE_BUF];
           24 +                                FILE *fp;
           25 +                                int len;
           26 +
           27 +                                if(!(fp = popen(&buf[3], "r"))) {
           28 +                                        fprintf(stderr, "error running %s\n", &buf[3]);
           29 +                                        return;
           30 +                                }
           31 +                                while (fgets(newbuf, sizeof(newbuf), fp)) {
           32 +                                        len = strlen(newbuf);
           33 +                                        if (newbuf[len - 1] == '\n')
           34 +                                                newbuf[len - 1] = '\0';
           35 +                                        proc_channels_privmsg(c->name, newbuf);
           36 +                                }
           37 +                                pclose(fp);
           38 +                        }
           39 +                        return;
           40 +                        break;
           41                  default:
           42                          snprintf(message, PIPE_BUF, "%s\r\n", &buf[1]);
           43                          break;