1 /*
2  * Copyright (C) 2000,2001  Florian Sander
3  *
4  * $Id: slang_gseen_commands.c (1.1.0) for AversE-XP v1.0+ 2003/12/06 [Xp-AvR] Exp $
5  */
6 
slang_send_botnick()7 static void slang_send_botnick()
8 {
9   strncat(slang_text_buf, botname, sizeof(slang_text_buf));
10 }
11 
slang_send_query()12 static void slang_send_query()
13 {
14   if (glob_query)
15     strncat(slang_text_buf, glob_query, sizeof(slang_text_buf));
16 }
17 
slang_send_laston()18 static void slang_send_laston()
19 {
20   if (glob_laston)
21     strncat(slang_text_buf, glob_laston, sizeof(slang_text_buf));
22 }
23 
slang_send_otherchan()24 static void slang_send_otherchan()
25 {
26   if (glob_otherchan)
27     strncat(slang_text_buf, glob_otherchan, sizeof(slang_text_buf));
28 }
29 
slang_send_othernick()30 static void slang_send_othernick()
31 {
32   if (glob_othernick)
33     strncat(slang_text_buf, glob_othernick, sizeof(slang_text_buf));
34 }
35 
slang_send_remotebot()36 static void slang_send_remotebot()
37 {
38   if (glob_remotebot)
39     strncat(slang_text_buf, glob_remotebot, sizeof(slang_text_buf));
40 }
41 
slang_send_snick()42 static void slang_send_snick()
43 {
44   if (glob_seendat)
45     strncat(slang_text_buf, glob_seendat->nick, sizeof(slang_text_buf));
46 }
47 
slang_send_shost()48 static void slang_send_shost()
49 {
50   if (glob_seendat)
51     strncat(slang_text_buf, glob_seendat->host, sizeof(slang_text_buf));
52 }
53 
slang_send_schan()54 static void slang_send_schan()
55 {
56   if (glob_seendat)
57     strncat(slang_text_buf, glob_seendat->chan, sizeof(slang_text_buf));
58 }
59 
slang_send_swhen()60 static void slang_send_swhen()
61 {
62   char *dur;
63 
64   if (glob_seendat) {
65     dur = gseen_duration(now - glob_seendat->when);
66     strncat(slang_text_buf, dur, sizeof(slang_text_buf));
67   }
68 }
69 
slang_send_stime()70 static void slang_send_stime()
71 {
72   time_t tt;
73   char t[20];
74 
75   if (glob_seendat) {
76     tt = glob_seendat->when;
77     strftime(t, 19, "%d.%m. %H:%M", localtime(&tt));
78     strncat(slang_text_buf, t, sizeof(slang_text_buf));
79   }
80 }
81 
slang_send_spent()82 static void slang_send_spent()
83 {
84   char *dur;
85 
86   if (glob_seendat) {
87     dur = gseen_duration(glob_seendat->spent);
88     strncat(slang_text_buf, dur, sizeof(slang_text_buf));
89   }
90 }
91 
slang_send_smsg()92 static void slang_send_smsg()
93 {
94   if (glob_seendat)
95     strncat(slang_text_buf, glob_seendat->msg, sizeof(slang_text_buf));
96 }
97 
slang_send_numresults()98 static void slang_send_numresults()
99 {
100   char buf[7];
101 
102   snprintf(buf, sizeof(buf), "%d", numresults);
103   strncat(slang_text_buf, buf, sizeof(slang_text_buf));
104 }
105 
slang_send_punisher()106 static void slang_send_punisher()
107 {
108   char *reason;
109   int len;
110 
111   if (glob_seendat) {
112     reason = strchr(glob_seendat->msg, ' ');
113     if (!reason)
114       strncat(slang_text_buf, glob_seendat->msg, sizeof(slang_text_buf));
115     else {
116       len = (int) reason - (int) glob_seendat->msg;
117       strncat(slang_text_buf, glob_seendat->msg, (sizeof(slang_text_buf) < len) ? sizeof(slang_text_buf) : len);
118     }
119   }
120 }
121 
slang_send_kickreason()122 static void slang_send_kickreason()
123 {
124   char *reason;
125 
126   if (glob_seendat) {
127     reason = strchr(glob_seendat->msg, ' ');
128     if (reason)
129       strncat(slang_text_buf, reason, sizeof(slang_text_buf));
130   }
131 }
132 
slang_send_rnick()133 static void slang_send_rnick()
134 {
135   if (glob_seenrequest) {
136     Assert(glob_seenrequest->by);
137     Assert(glob_seenrequest->by->who);
138     strncat(slang_text_buf, glob_seenrequest->by->who, sizeof(slang_text_buf));
139   }
140 }
141 
slang_send_rchan()142 static void slang_send_rchan()
143 {
144   if (glob_seenrequest) {
145     Assert(glob_seenrequest->by);
146     Assert(glob_seenrequest->by->chan);
147     strncat(slang_text_buf, glob_seenrequest->by->chan, sizeof(slang_text_buf));
148   }
149 }
150 
slang_send_rhost()151 static void slang_send_rhost()
152 {
153   if (glob_seenrequest) {
154     Assert(glob_seenrequest->by);
155     Assert(glob_seenrequest->by->host);
156     strncat(slang_text_buf, glob_seenrequest->by->host, sizeof(slang_text_buf));
157   }
158 }
159 
slang_send_rtime()160 static void slang_send_rtime()
161 {
162   time_t tt;
163   char t[20];
164 
165   if (glob_seenrequest) {
166     Assert(glob_seenrequest->by);
167     tt = glob_seenrequest->by->when;
168     strftime(t, sizeof(t), "%d.%m. %H:%M", localtime(&tt));
169     strncat(slang_text_buf, t, sizeof(slang_text_buf));
170   }
171 }
172 
slang_send_rwhen()173 static void slang_send_rwhen()
174 {
175   if (glob_seenrequest) {
176     Assert(glob_seenrequest->by);
177     strncat(slang_text_buf, gseen_duration(now - glob_seenrequest->by->when), sizeof(slang_text_buf));
178   }
179 }
180 
slang_send_requests()181 static void slang_send_requests()
182 {
183   char buf[7];
184 
185   snprintf(buf, sizeof(buf), "%d", glob_seenrequests);
186   strncat(slang_text_buf, buf, sizeof(slang_text_buf));
187 }
188 
slang_send_totalnicks()189 static void slang_send_totalnicks()
190 {
191   char buf[7];
192 
193   snprintf(buf, sizeof(buf), "%d", glob_totalnicks);
194   strncat(slang_text_buf, buf, sizeof(slang_text_buf));
195 }
196 
slang_send_totalbytes()197 static void slang_send_totalbytes()
198 {
199   char buf[20];
200 
201   snprintf(buf, sizeof(buf), "%d", glob_totalbytes);
202   strncat(slang_text_buf, buf, sizeof(slang_text_buf));
203 }
204 
slang_send_nick()205 static void slang_send_nick()
206 {
207   if (glob_nick)
208     strncat(slang_text_buf, glob_nick, sizeof(slang_text_buf));
209 }
210 
211 struct slang_text_commands slang_text_gseen_command_table[] =
212 {
213   {"botnick", slang_send_botnick},
214   {"query", slang_send_query},
215   {"laston", slang_send_laston},
216   {"otherchan", slang_send_otherchan},
217   {"othernick", slang_send_othernick},
218   {"remotebot", slang_send_remotebot},
219   {"snick", slang_send_snick},
220   {"swhen", slang_send_swhen},
221   {"stime", slang_send_stime},
222   {"shost", slang_send_shost},
223   {"schan", slang_send_schan},
224   {"spent", slang_send_spent},
225   {"smsg", slang_send_smsg},
226   {"numresults", slang_send_numresults},
227   {"snick2", slang_send_smsg},
228   {"bnbot", slang_send_smsg},
229   {"punisher", slang_send_punisher},
230   {"kickreason", slang_send_kickreason},
231   {"rnick", slang_send_rnick},
232   {"rchan", slang_send_rchan},
233   {"rhost", slang_send_rhost},
234   {"rtime", slang_send_rtime},
235   {"rwhen", slang_send_rwhen},
236   {"requests", slang_send_requests},
237   {"totalnicks", slang_send_totalnicks},
238   {"totalbytes", slang_send_totalbytes},
239   {"nick", slang_send_nick},
240   {0, 0}
241 };
242