Introduction
Introduction Statistics Contact Development Disclaimer Help
sic-lineprint-9bb34de.diff - sites - public wiki contents of suckless.org
git clone git://git.suckless.org/sites
Log
Files
Refs
---
sic-lineprint-9bb34de.diff (1275B)
---
1 diff --git a/config.def.h b/config.def.h
2 index 6d720e9..a1308e6 100644
3 --- a/config.def.h
4 +++ b/config.def.h
5 @@ -12,3 +12,6 @@
6
7 /* Parting message used when none is specified with ":l ..." command. */
8 #define DEFAULT_PARTING_MESSAGE "sic - 250 LOC are too much!"
9 +
10 +/* Suffix character used to print the current inserting command */
11 +#define LINEPRINT_SUFFIX_CHAR '\\'
12 diff --git a/sic.c b/sic.c
13 index 8a0301b..6401414 100644
14 --- a/sic.c
15 +++ b/sic.c
16 @@ -18,6 +18,7 @@ static char *password;
17 static char nick[32];
18 static char bufin[4096];
19 static char bufout[4096];
20 +static char bufln[4096];
21 static char channel[256];
22 static time_t trespond;
23 static FILE *srv;
24 @@ -60,11 +61,29 @@ privmsg(char *channel, char *msg) {
25
26 static void
27 parsein(char *s) {
28 + int i, off;
29 char c, *p;
30
31 if(s[0] == '\0')
32 return;
33 skip(s, '\n');
34 +
35 + /* input reprint */
36 + i = strlen(s) - 1;
37 + off = (*bufln ? strlen(bufln) : 0);
38 + if(s[i] == LINEPRINT_SUFFIX_CHAR) {
39 + s[i] = '\0';
40 + if(i)
41 + snprintf(&bufln[off], (sizeof bufln - off), "%s…
42 + printf("%s", bufln);
43 + return;
44 + }
45 + else if(*bufln) {
46 + snprintf(&bufln[off], sizeof bufln, "%s", s);
47 + strlcpy(s, bufln, 4096);
48 + *bufln = '\0';
49 + }
50 +
51 if(s[0] != COMMAND_PREFIX_CHARACTER) {
52 privmsg(channel, s);
53 return;
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.