~alivema4ever/ubuntu/trusty/weechat/lp-1299347-fix

« back to all changes in this revision

Viewing changes to src/plugins/irc/irc-display.c

  • Committer: Package Import Robot
  • Author(s): Emmanuel Bouthenot
  • Date: 2013-05-21 19:44:31 UTC
  • mfrom: (1.1.24)
  • Revision ID: package-import@ubuntu.com-20130521194431-o1n165ouj17uk0q1
Tags: 0.4.1-1
* New upstream release
* Move guile build dependency from to guile-2.0-dev (previous versions are
  no longer supported).
* Add supported protocols in long description. Thanks to Jonas Smedegaard
  for the suggestion (Closes: #705216)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * irc-display.c - display functions for IRC plugin
3
 
 *
4
 
 * Copyright (C) 2003-2013 Sebastien Helleu <flashcode@flashtux.org>
5
 
 *
6
 
 * This file is part of WeeChat, the extensible chat client.
7
 
 *
8
 
 * WeeChat is free software; you can redistribute it and/or modify
9
 
 * it under the terms of the GNU General Public License as published by
10
 
 * the Free Software Foundation; either version 3 of the License, or
11
 
 * (at your option) any later version.
12
 
 *
13
 
 * WeeChat is distributed in the hope that it will be useful,
14
 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
 
 * GNU General Public License for more details.
17
 
 *
18
 
 * You should have received a copy of the GNU General Public License
19
 
 * along with WeeChat.  If not, see <http://www.gnu.org/licenses/>.
20
 
 */
21
 
 
22
 
#include <stdlib.h>
23
 
#include <unistd.h>
24
 
#include <stdio.h>
25
 
#include <string.h>
26
 
 
27
 
#include "../weechat-plugin.h"
28
 
#include "irc.h"
29
 
#include "irc-channel.h"
30
 
#include "irc-color.h"
31
 
#include "irc-command.h"
32
 
#include "irc-config.h"
33
 
#include "irc-nick.h"
34
 
#include "irc-server.h"
35
 
#include "irc-sasl.h"
36
 
 
37
 
 
38
 
/*
39
 
 * Hides IRC password(s) in a string.
40
 
 */
41
 
 
42
 
void
43
 
irc_display_hide_password (char *string, int look_for_nickserv)
44
 
{
45
 
    char *pos_nickserv, *pos, *pos_pwd;
46
 
    int char_size;
47
 
 
48
 
    pos = string;
49
 
    while (pos)
50
 
    {
51
 
        if (look_for_nickserv)
52
 
        {
53
 
            pos_nickserv = strstr (pos, "nickserv ");
54
 
            if (!pos_nickserv)
55
 
                return;
56
 
            pos = pos_nickserv + 9;
57
 
            while (pos[0] == ' ')
58
 
            {
59
 
                pos++;
60
 
            }
61
 
            if (strncmp (pos, "identify ", 9) == 0)
62
 
                pos_pwd = pos + 9;
63
 
            else if (strncmp (pos, "register ", 9) == 0)
64
 
                pos_pwd = pos + 9;
65
 
            else
66
 
                pos_pwd = NULL;
67
 
        }
68
 
        else
69
 
        {
70
 
            pos_pwd = strstr (pos, "identify ");
71
 
            if (pos_pwd)
72
 
                pos_pwd += 9;
73
 
            else
74
 
            {
75
 
                pos_pwd = strstr (pos, "register ");
76
 
                if (pos_pwd)
77
 
                    pos_pwd += 9;
78
 
            }
79
 
            if (!pos_pwd)
80
 
                return;
81
 
        }
82
 
 
83
 
        if (pos_pwd)
84
 
        {
85
 
            while (pos_pwd[0] == ' ')
86
 
            {
87
 
                pos_pwd++;
88
 
            }
89
 
 
90
 
            while (pos_pwd && pos_pwd[0])
91
 
            {
92
 
                char_size = weechat_utf8_char_size (pos_pwd);
93
 
                if (char_size > 0)
94
 
                    memset (pos_pwd, '*', char_size);
95
 
                pos_pwd = weechat_utf8_next_char (pos_pwd);
96
 
            }
97
 
            pos = pos_pwd;
98
 
        }
99
 
    }
100
 
}
101
 
 
102
 
/*
103
 
 * Displays away on all channels of all servers.
104
 
 */
105
 
 
106
 
void
107
 
irc_display_away (struct t_irc_server *server, const char *string1,
108
 
                  const char *string2)
109
 
{
110
 
    struct t_irc_channel *ptr_channel;
111
 
 
112
 
    for (ptr_channel = server->channels; ptr_channel;
113
 
         ptr_channel = ptr_channel->next_channel)
114
 
    {
115
 
        if (ptr_channel->type == IRC_CHANNEL_TYPE_CHANNEL)
116
 
        {
117
 
            weechat_printf_tags (ptr_channel->buffer,
118
 
                                 "away_info",
119
 
                                 "%s[%s%s%s %s: %s%s]",
120
 
                                 IRC_COLOR_CHAT_DELIMITERS,
121
 
                                 IRC_COLOR_CHAT_NICK_SELF,
122
 
                                 server->nick,
123
 
                                 IRC_COLOR_RESET,
124
 
                                 string1,
125
 
                                 string2,
126
 
                                 IRC_COLOR_CHAT_DELIMITERS);
127
 
        }
128
 
    }
129
 
}
130
 
 
131
 
/*
132
 
 * Displays server options.
133
 
 */
134
 
 
135
 
void
136
 
irc_display_server (struct t_irc_server *server, int with_detail)
137
 
{
138
 
    char *string;
139
 
    int num_channels, num_pv;
140
 
 
141
 
    if (with_detail)
142
 
    {
143
 
        weechat_printf (NULL, "");
144
 
        weechat_printf (NULL, _("Server: %s%s %s[%s%s%s]%s%s"),
145
 
                        IRC_COLOR_CHAT_SERVER,
146
 
                        server->name,
147
 
                        IRC_COLOR_CHAT_DELIMITERS,
148
 
                        IRC_COLOR_RESET,
149
 
                        (server->is_connected) ?
150
 
                        _("connected") : _("not connected"),
151
 
                        IRC_COLOR_CHAT_DELIMITERS,
152
 
                        IRC_COLOR_RESET,
153
 
                        (server->temp_server) ? _(" (temporary)") : "");
154
 
        /* addresses */
155
 
        if (weechat_config_option_is_null (server->options[IRC_SERVER_OPTION_ADDRESSES]))
156
 
            weechat_printf (NULL, "  addresses. . . . . . :   ('%s')",
157
 
                            IRC_SERVER_OPTION_STRING(server, IRC_SERVER_OPTION_ADDRESSES));
158
 
        else
159
 
            weechat_printf (NULL, "  addresses. . . . . . : %s'%s'",
160
 
                            IRC_COLOR_CHAT_VALUE,
161
 
                            weechat_config_string (server->options[IRC_SERVER_OPTION_ADDRESSES]));
162
 
        /* proxy */
163
 
        if (weechat_config_option_is_null (server->options[IRC_SERVER_OPTION_PROXY]))
164
 
            weechat_printf (NULL, "  proxy. . . . . . . . :   ('%s')",
165
 
                            IRC_SERVER_OPTION_STRING(server, IRC_SERVER_OPTION_PROXY));
166
 
        else
167
 
            weechat_printf (NULL, "  proxy. . . . . . . . : %s'%s'",
168
 
                            IRC_COLOR_CHAT_VALUE,
169
 
                            weechat_config_string (server->options[IRC_SERVER_OPTION_PROXY]));
170
 
        /* ipv6 */
171
 
        if (weechat_config_option_is_null (server->options[IRC_SERVER_OPTION_IPV6]))
172
 
            weechat_printf (NULL, "  ipv6 . . . . . . . . :   (%s)",
173
 
                            (IRC_SERVER_OPTION_BOOLEAN(server, IRC_SERVER_OPTION_IPV6)) ?
174
 
                            _("on") : _("off"));
175
 
        else
176
 
            weechat_printf (NULL, "  ipv6 . . . . . . . . : %s%s",
177
 
                            IRC_COLOR_CHAT_VALUE,
178
 
                            weechat_config_boolean (server->options[IRC_SERVER_OPTION_IPV6]) ?
179
 
                            _("on") : _("off"));
180
 
        /* ssl */
181
 
        if (weechat_config_option_is_null (server->options[IRC_SERVER_OPTION_SSL]))
182
 
            weechat_printf (NULL, "  ssl. . . . . . . . . :   (%s)",
183
 
                            (IRC_SERVER_OPTION_BOOLEAN(server, IRC_SERVER_OPTION_SSL)) ?
184
 
                            _("on") : _("off"));
185
 
        else
186
 
            weechat_printf (NULL, "  ssl. . . . . . . . . : %s%s",
187
 
                            IRC_COLOR_CHAT_VALUE,
188
 
                            weechat_config_boolean (server->options[IRC_SERVER_OPTION_SSL]) ?
189
 
                            _("on") : _("off"));
190
 
        /* ssl_cert */
191
 
        if (weechat_config_option_is_null (server->options[IRC_SERVER_OPTION_SSL_CERT]))
192
 
            weechat_printf (NULL, "  ssl_cert . . . . . . :   ('%s')",
193
 
                            IRC_SERVER_OPTION_STRING(server, IRC_SERVER_OPTION_SSL_CERT));
194
 
        else
195
 
            weechat_printf (NULL, "  ssl_cert . . . . . . : %s'%s'",
196
 
                            IRC_COLOR_CHAT_VALUE,
197
 
                            weechat_config_string (server->options[IRC_SERVER_OPTION_SSL_CERT]));
198
 
        /* ssl_priorities */
199
 
        if (weechat_config_option_is_null (server->options[IRC_SERVER_OPTION_SSL_PRIORITIES]))
200
 
            weechat_printf (NULL, "  ssl_priorities . . . :   ('%s')",
201
 
                            IRC_SERVER_OPTION_STRING(server, IRC_SERVER_OPTION_SSL_PRIORITIES));
202
 
        else
203
 
            weechat_printf (NULL, "  ssl_priorities . . . : %s'%s'",
204
 
                            IRC_COLOR_CHAT_VALUE,
205
 
                            weechat_config_string (server->options[IRC_SERVER_OPTION_SSL_PRIORITIES]));
206
 
        /* ssl_dhkey_size */
207
 
        if (weechat_config_option_is_null (server->options[IRC_SERVER_OPTION_SSL_DHKEY_SIZE]))
208
 
            weechat_printf (NULL, "  ssl_dhkey_size . . . :   (%d)",
209
 
                            IRC_SERVER_OPTION_INTEGER(server, IRC_SERVER_OPTION_SSL_DHKEY_SIZE));
210
 
        else
211
 
            weechat_printf (NULL, "  ssl_dhkey_size . . . : %s%d",
212
 
                            IRC_COLOR_CHAT_VALUE,
213
 
                            weechat_config_integer (server->options[IRC_SERVER_OPTION_SSL_DHKEY_SIZE]));
214
 
        /* ssl_verify */
215
 
        if (weechat_config_option_is_null (server->options[IRC_SERVER_OPTION_SSL_VERIFY]))
216
 
            weechat_printf (NULL, "  ssl_verify . . . . . :   (%s)",
217
 
                            (IRC_SERVER_OPTION_BOOLEAN(server, IRC_SERVER_OPTION_SSL_VERIFY)) ?
218
 
                            _("on") : _("off"));
219
 
        else
220
 
            weechat_printf (NULL, "  ssl_verify . . . . . : %s%s",
221
 
                            IRC_COLOR_CHAT_VALUE,
222
 
                            weechat_config_boolean (server->options[IRC_SERVER_OPTION_SSL_VERIFY]) ?
223
 
                            _("on") : _("off"));
224
 
        /* password */
225
 
        if (weechat_config_option_is_null (server->options[IRC_SERVER_OPTION_PASSWORD]))
226
 
            weechat_printf (NULL, "  password . . . . . . :   %s",
227
 
                            _("(hidden)"));
228
 
        else
229
 
            weechat_printf (NULL, "  password . . . . . . : %s%s",
230
 
                            IRC_COLOR_CHAT_VALUE,
231
 
                            _("(hidden)"));
232
 
        /* client capabilities */
233
 
        if (weechat_config_option_is_null (server->options[IRC_SERVER_OPTION_CAPABILITIES]))
234
 
            weechat_printf (NULL, "  capabilities . . . . :   ('%s')",
235
 
                            IRC_SERVER_OPTION_STRING(server, IRC_SERVER_OPTION_CAPABILITIES));
236
 
        else
237
 
            weechat_printf (NULL, "  capabilities . . . . : %s'%s'",
238
 
                            IRC_COLOR_CHAT_VALUE,
239
 
                            weechat_config_string (server->options[IRC_SERVER_OPTION_CAPABILITIES]));
240
 
        /* sasl_mechanism */
241
 
        if (weechat_config_option_is_null (server->options[IRC_SERVER_OPTION_SASL_MECHANISM]))
242
 
            weechat_printf (NULL, "  sasl_mechanism . . . :   ('%s')",
243
 
                            irc_sasl_mechanism_string[IRC_SERVER_OPTION_INTEGER(server, IRC_SERVER_OPTION_SASL_MECHANISM)]);
244
 
        else
245
 
            weechat_printf (NULL, "  sasl_mechanism . . . : %s'%s'",
246
 
                            IRC_COLOR_CHAT_VALUE,
247
 
                            irc_sasl_mechanism_string[weechat_config_integer (server->options[IRC_SERVER_OPTION_SASL_MECHANISM])]);
248
 
        /* sasl_username */
249
 
        if (weechat_config_option_is_null (server->options[IRC_SERVER_OPTION_SASL_USERNAME]))
250
 
            weechat_printf (NULL, "  sasl_username. . . . :   ('%s')",
251
 
                            IRC_SERVER_OPTION_STRING(server, IRC_SERVER_OPTION_SASL_USERNAME));
252
 
        else
253
 
            weechat_printf (NULL, "  sasl_username. . . . : %s'%s'",
254
 
                            IRC_COLOR_CHAT_VALUE,
255
 
                            weechat_config_string (server->options[IRC_SERVER_OPTION_SASL_USERNAME]));
256
 
        /* sasl_password */
257
 
        if (weechat_config_option_is_null (server->options[IRC_SERVER_OPTION_SASL_PASSWORD]))
258
 
            weechat_printf (NULL, "  sasl_password. . . . :   %s",
259
 
                            _("(hidden)"));
260
 
        else
261
 
            weechat_printf (NULL, "  sasl_password. . . . : %s%s",
262
 
                            IRC_COLOR_CHAT_VALUE,
263
 
                            _("(hidden)"));
264
 
        /* autoconnect */
265
 
        if (weechat_config_option_is_null (server->options[IRC_SERVER_OPTION_AUTOCONNECT]))
266
 
            weechat_printf (NULL, "  autoconnect. . . . . :   (%s)",
267
 
                            (IRC_SERVER_OPTION_BOOLEAN(server, IRC_SERVER_OPTION_AUTOCONNECT)) ?
268
 
                            _("on") : _("off"));
269
 
        else
270
 
            weechat_printf (NULL, "  autoconnect. . . . . : %s%s",
271
 
                            IRC_COLOR_CHAT_VALUE,
272
 
                            weechat_config_boolean (server->options[IRC_SERVER_OPTION_AUTOCONNECT]) ?
273
 
                            _("on") : _("off"));
274
 
        /* autoreconnect */
275
 
        if (weechat_config_option_is_null (server->options[IRC_SERVER_OPTION_AUTORECONNECT]))
276
 
            weechat_printf (NULL, "  autoreconnect. . . . :   (%s)",
277
 
                            (IRC_SERVER_OPTION_BOOLEAN(server, IRC_SERVER_OPTION_AUTORECONNECT)) ?
278
 
                            _("on") : _("off"));
279
 
        else
280
 
            weechat_printf (NULL, "  autoreconnect. . . . : %s%s",
281
 
                            IRC_COLOR_CHAT_VALUE,
282
 
                            weechat_config_boolean (server->options[IRC_SERVER_OPTION_AUTORECONNECT]) ?
283
 
                            _("on") : _("off"));
284
 
        /* autoreconnect_delay */
285
 
        if (weechat_config_option_is_null (server->options[IRC_SERVER_OPTION_AUTORECONNECT_DELAY]))
286
 
            weechat_printf (NULL, "  autoreconnect_delay. :   (%d %s)",
287
 
                            IRC_SERVER_OPTION_INTEGER(server, IRC_SERVER_OPTION_AUTORECONNECT_DELAY),
288
 
                            NG_("second", "seconds", IRC_SERVER_OPTION_INTEGER(server, IRC_SERVER_OPTION_AUTORECONNECT_DELAY)));
289
 
        else
290
 
            weechat_printf (NULL, "  autoreconnect_delay. : %s%d %s",
291
 
                            IRC_COLOR_CHAT_VALUE,
292
 
                            weechat_config_integer (server->options[IRC_SERVER_OPTION_AUTORECONNECT_DELAY]),
293
 
                            NG_("second", "seconds", weechat_config_integer (server->options[IRC_SERVER_OPTION_AUTORECONNECT_DELAY])));
294
 
        /* nicks */
295
 
        if (weechat_config_option_is_null (server->options[IRC_SERVER_OPTION_NICKS]))
296
 
            weechat_printf (NULL, "  nicks. . . . . . . . :   ('%s')",
297
 
                            IRC_SERVER_OPTION_STRING(server, IRC_SERVER_OPTION_NICKS));
298
 
        else
299
 
            weechat_printf (NULL, "  nicks. . . . . . . . : %s'%s'",
300
 
                            IRC_COLOR_CHAT_VALUE,
301
 
                            weechat_config_string (server->options[IRC_SERVER_OPTION_NICKS]));
302
 
        /* username */
303
 
        if (weechat_config_option_is_null (server->options[IRC_SERVER_OPTION_USERNAME]))
304
 
            weechat_printf (NULL, "  username . . . . . . :   ('%s')",
305
 
                            IRC_SERVER_OPTION_STRING(server, IRC_SERVER_OPTION_USERNAME));
306
 
        else
307
 
            weechat_printf (NULL, "  username . . . . . . : %s'%s'",
308
 
                            IRC_COLOR_CHAT_VALUE,
309
 
                            weechat_config_string (server->options[IRC_SERVER_OPTION_USERNAME]));
310
 
        /* realname */
311
 
        if (weechat_config_option_is_null (server->options[IRC_SERVER_OPTION_REALNAME]))
312
 
            weechat_printf (NULL, "  realname . . . . . . :   ('%s')",
313
 
                            IRC_SERVER_OPTION_STRING(server, IRC_SERVER_OPTION_REALNAME));
314
 
        else
315
 
            weechat_printf (NULL, "  realname . . . . . . : %s'%s'",
316
 
                            IRC_COLOR_CHAT_VALUE,
317
 
                            weechat_config_string (server->options[IRC_SERVER_OPTION_REALNAME]));
318
 
        /* local_hostname */
319
 
        if (weechat_config_option_is_null (server->options[IRC_SERVER_OPTION_LOCAL_HOSTNAME]))
320
 
            weechat_printf (NULL, "  local_hostname . . . :   ('%s')",
321
 
                            IRC_SERVER_OPTION_STRING(server, IRC_SERVER_OPTION_LOCAL_HOSTNAME));
322
 
        else
323
 
            weechat_printf (NULL, "  local_hostname . . . : %s'%s'",
324
 
                            IRC_COLOR_CHAT_VALUE,
325
 
                            weechat_config_string (server->options[IRC_SERVER_OPTION_LOCAL_HOSTNAME]));
326
 
        /* command */
327
 
        if (weechat_config_option_is_null (server->options[IRC_SERVER_OPTION_COMMAND]))
328
 
        {
329
 
            string = strdup (IRC_SERVER_OPTION_STRING(server, IRC_SERVER_OPTION_COMMAND));
330
 
            if (string && weechat_config_boolean (irc_config_look_hide_nickserv_pwd))
331
 
                irc_display_hide_password (string, 1);
332
 
            weechat_printf (NULL, "  command. . . . . . . :   ('%s')",
333
 
                            (string) ? string : IRC_SERVER_OPTION_STRING(server, IRC_SERVER_OPTION_COMMAND));
334
 
            if (string)
335
 
                free (string);
336
 
        }
337
 
        else
338
 
        {
339
 
            string = strdup (weechat_config_string (server->options[IRC_SERVER_OPTION_COMMAND]));
340
 
            if (string && weechat_config_boolean (irc_config_look_hide_nickserv_pwd))
341
 
                irc_display_hide_password (string, 1);
342
 
            weechat_printf (NULL, "  command. . . . . . . : %s'%s'",
343
 
                            IRC_COLOR_CHAT_VALUE,
344
 
                            (string) ? string : weechat_config_string (server->options[IRC_SERVER_OPTION_COMMAND]));
345
 
            if (string)
346
 
                free (string);
347
 
        }
348
 
        /* command_delay */
349
 
        if (weechat_config_option_is_null (server->options[IRC_SERVER_OPTION_COMMAND_DELAY]))
350
 
            weechat_printf (NULL, "  command_delay. . . . :   (%d %s)",
351
 
                            IRC_SERVER_OPTION_INTEGER(server, IRC_SERVER_OPTION_COMMAND_DELAY),
352
 
                            NG_("second", "seconds", IRC_SERVER_OPTION_INTEGER(server, IRC_SERVER_OPTION_COMMAND_DELAY)));
353
 
        else
354
 
            weechat_printf (NULL, "  command_delay. . . . : %s%d %s",
355
 
                            IRC_COLOR_CHAT_VALUE,
356
 
                            weechat_config_integer (server->options[IRC_SERVER_OPTION_COMMAND_DELAY]),
357
 
                            NG_("second", "seconds", weechat_config_integer (server->options[IRC_SERVER_OPTION_COMMAND_DELAY])));
358
 
        /* autojoin */
359
 
        if (weechat_config_option_is_null (server->options[IRC_SERVER_OPTION_AUTOJOIN]))
360
 
            weechat_printf (NULL, "  autojoin . . . . . . :   ('%s')",
361
 
                            IRC_SERVER_OPTION_STRING(server, IRC_SERVER_OPTION_AUTOJOIN));
362
 
        else
363
 
            weechat_printf (NULL, "  autojoin . . . . . . : %s'%s'",
364
 
                            IRC_COLOR_CHAT_VALUE,
365
 
                            weechat_config_string (server->options[IRC_SERVER_OPTION_AUTOJOIN]));
366
 
        /* autorejoin */
367
 
        if (weechat_config_option_is_null (server->options[IRC_SERVER_OPTION_AUTOREJOIN]))
368
 
            weechat_printf (NULL, "  autorejoin . . . . . :   (%s)",
369
 
                            (IRC_SERVER_OPTION_BOOLEAN(server, IRC_SERVER_OPTION_AUTOREJOIN)) ?
370
 
                            _("on") : _("off"));
371
 
        else
372
 
            weechat_printf (NULL, "  autorejoin . . . . . : %s%s",
373
 
                            IRC_COLOR_CHAT_VALUE,
374
 
                            weechat_config_boolean (server->options[IRC_SERVER_OPTION_AUTOREJOIN]) ?
375
 
                            _("on") : _("off"));
376
 
        /* autorejoin_delay */
377
 
        if (weechat_config_option_is_null (server->options[IRC_SERVER_OPTION_AUTOREJOIN_DELAY]))
378
 
            weechat_printf (NULL, "  autorejoin_delay . . :   (%d %s)",
379
 
                            IRC_SERVER_OPTION_INTEGER(server, IRC_SERVER_OPTION_AUTOREJOIN_DELAY),
380
 
                            NG_("second", "seconds", IRC_SERVER_OPTION_INTEGER(server, IRC_SERVER_OPTION_AUTOREJOIN_DELAY)));
381
 
        else
382
 
            weechat_printf (NULL, "  autorejoin_delay . . : %s%d %s",
383
 
                            IRC_COLOR_CHAT_VALUE,
384
 
                            weechat_config_integer (server->options[IRC_SERVER_OPTION_AUTOREJOIN_DELAY]),
385
 
                            NG_("second", "seconds", weechat_config_integer (server->options[IRC_SERVER_OPTION_AUTOREJOIN_DELAY])));
386
 
        /* connection_timeout */
387
 
        if (weechat_config_option_is_null (server->options[IRC_SERVER_OPTION_CONNECTION_TIMEOUT]))
388
 
            weechat_printf (NULL, "  connection_timeout . :   (%d %s)",
389
 
                            IRC_SERVER_OPTION_INTEGER(server, IRC_SERVER_OPTION_CONNECTION_TIMEOUT),
390
 
                            NG_("second", "seconds", IRC_SERVER_OPTION_INTEGER(server, IRC_SERVER_OPTION_CONNECTION_TIMEOUT)));
391
 
        else
392
 
            weechat_printf (NULL, "  connection_timeout . : %s%d %s",
393
 
                            IRC_COLOR_CHAT_VALUE,
394
 
                            weechat_config_integer (server->options[IRC_SERVER_OPTION_CONNECTION_TIMEOUT]),
395
 
                            NG_("second", "seconds", weechat_config_integer (server->options[IRC_SERVER_OPTION_CONNECTION_TIMEOUT])));
396
 
        /* anti_flood_prio_high */
397
 
        if (weechat_config_option_is_null (server->options[IRC_SERVER_OPTION_ANTI_FLOOD_PRIO_HIGH]))
398
 
            weechat_printf (NULL, "  anti_flood_prio_high :   (%d %s)",
399
 
                            IRC_SERVER_OPTION_INTEGER(server, IRC_SERVER_OPTION_ANTI_FLOOD_PRIO_HIGH),
400
 
                            NG_("second", "seconds", IRC_SERVER_OPTION_INTEGER(server, IRC_SERVER_OPTION_ANTI_FLOOD_PRIO_HIGH)));
401
 
        else
402
 
            weechat_printf (NULL, "  anti_flood_prio_high : %s%d %s",
403
 
                            IRC_COLOR_CHAT_VALUE,
404
 
                            weechat_config_integer (server->options[IRC_SERVER_OPTION_ANTI_FLOOD_PRIO_HIGH]),
405
 
                            NG_("second", "seconds", weechat_config_integer (server->options[IRC_SERVER_OPTION_ANTI_FLOOD_PRIO_HIGH])));
406
 
        /* anti_flood_prio_low */
407
 
        if (weechat_config_option_is_null (server->options[IRC_SERVER_OPTION_ANTI_FLOOD_PRIO_LOW]))
408
 
            weechat_printf (NULL, "  anti_flood_prio_low. :   (%d %s)",
409
 
                            IRC_SERVER_OPTION_INTEGER(server, IRC_SERVER_OPTION_ANTI_FLOOD_PRIO_LOW),
410
 
                            NG_("second", "seconds", IRC_SERVER_OPTION_INTEGER(server, IRC_SERVER_OPTION_ANTI_FLOOD_PRIO_LOW)));
411
 
        else
412
 
            weechat_printf (NULL, "  anti_flood_prio_low. : %s%d %s",
413
 
                            IRC_COLOR_CHAT_VALUE,
414
 
                            weechat_config_integer (server->options[IRC_SERVER_OPTION_ANTI_FLOOD_PRIO_LOW]),
415
 
                            NG_("second", "seconds", weechat_config_integer (server->options[IRC_SERVER_OPTION_ANTI_FLOOD_PRIO_LOW])));
416
 
        /* away_check */
417
 
        if (weechat_config_option_is_null (server->options[IRC_SERVER_OPTION_AWAY_CHECK]))
418
 
            weechat_printf (NULL, "  away_check . . . . . :   (%d %s)",
419
 
                            IRC_SERVER_OPTION_INTEGER(server, IRC_SERVER_OPTION_AWAY_CHECK),
420
 
                            NG_("minute", "minutes", IRC_SERVER_OPTION_INTEGER(server, IRC_SERVER_OPTION_AWAY_CHECK)));
421
 
        else
422
 
            weechat_printf (NULL, "  away_check . . . . . : %s%d %s",
423
 
                            IRC_COLOR_CHAT_VALUE,
424
 
                            weechat_config_integer (server->options[IRC_SERVER_OPTION_AWAY_CHECK]),
425
 
                            NG_("minute", "minutes", weechat_config_integer (server->options[IRC_SERVER_OPTION_AWAY_CHECK])));
426
 
        /* away_check_max_nicks */
427
 
        if (weechat_config_option_is_null (server->options[IRC_SERVER_OPTION_AWAY_CHECK_MAX_NICKS]))
428
 
            weechat_printf (NULL, "  away_check_max_nicks :   (%d)",
429
 
                            IRC_SERVER_OPTION_INTEGER(server, IRC_SERVER_OPTION_AWAY_CHECK_MAX_NICKS));
430
 
        else
431
 
            weechat_printf (NULL, "  away_check_max_nicks : %s%d",
432
 
                            IRC_COLOR_CHAT_VALUE,
433
 
                            weechat_config_integer (server->options[IRC_SERVER_OPTION_AWAY_CHECK_MAX_NICKS]));
434
 
        /* default_msg_part */
435
 
        if (weechat_config_option_is_null (server->options[IRC_SERVER_OPTION_DEFAULT_MSG_PART]))
436
 
            weechat_printf (NULL, "  default_msg_part . . :   ('%s')",
437
 
                            IRC_SERVER_OPTION_STRING(server, IRC_SERVER_OPTION_DEFAULT_MSG_PART));
438
 
        else
439
 
            weechat_printf (NULL, "  default_msg_part . . : %s'%s'",
440
 
                            IRC_COLOR_CHAT_VALUE,
441
 
                            weechat_config_string (server->options[IRC_SERVER_OPTION_DEFAULT_MSG_PART]));
442
 
        /* default_msg_quit */
443
 
        if (weechat_config_option_is_null (server->options[IRC_SERVER_OPTION_DEFAULT_MSG_QUIT]))
444
 
            weechat_printf (NULL, "  default_msg_quit . . :   ('%s')",
445
 
                            IRC_SERVER_OPTION_STRING(server, IRC_SERVER_OPTION_DEFAULT_MSG_QUIT));
446
 
        else
447
 
            weechat_printf (NULL, "  default_msg_quit . . : %s'%s'",
448
 
                            IRC_COLOR_CHAT_VALUE,
449
 
                            weechat_config_string (server->options[IRC_SERVER_OPTION_DEFAULT_MSG_QUIT]));
450
 
    }
451
 
    else
452
 
    {
453
 
        if (server->is_connected)
454
 
        {
455
 
            num_channels = irc_server_get_channel_count (server);
456
 
            num_pv = irc_server_get_pv_count (server);
457
 
            weechat_printf (NULL, " %s %s%s %s[%s%s%s]%s%s, %d %s, %d pv",
458
 
                            (server->is_connected) ? "*" : " ",
459
 
                            IRC_COLOR_CHAT_SERVER,
460
 
                            server->name,
461
 
                            IRC_COLOR_CHAT_DELIMITERS,
462
 
                            IRC_COLOR_RESET,
463
 
                            (server->is_connected) ?
464
 
                            _("connected") : _("not connected"),
465
 
                            IRC_COLOR_CHAT_DELIMITERS,
466
 
                            IRC_COLOR_RESET,
467
 
                            (server->temp_server) ? _(" (temporary)") : "",
468
 
                            num_channels,
469
 
                            NG_("channel", "channels", num_channels),
470
 
                            num_pv);
471
 
        }
472
 
        else
473
 
        {
474
 
            weechat_printf (NULL, "   %s%s%s%s",
475
 
                            IRC_COLOR_CHAT_SERVER,
476
 
                            server->name,
477
 
                            IRC_COLOR_RESET,
478
 
                            (server->temp_server) ? _(" (temporary)") : "");
479
 
        }
480
 
    }
481
 
}