ii-1.4-exec.diff - sites - public wiki contents of suckless.org | |
git clone git://git.suckless.org/sites | |
Log | |
Files | |
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 … | |
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, … | |
36 + } | |
37 + pclose(fp); | |
38 + } | |
39 + return; | |
40 + break; | |
41 default: | |
42 snprintf(message, PIPE_BUF, "%s\r\n", &buf[1]); | |
43 break; |