Changeset 808825e


Ignore:
Timestamp:
2016-05-26T02:48:08Z (8 years ago)
Author:
jgeboski <jgeboski@…>
Branches:
master
Children:
35712b7
Parents:
d28fe1c4
git-author:
jgeboski <jgeboski@…> (15-05-16 20:40:15)
git-committer:
jgeboski <jgeboski@…> (26-05-16 02:48:08)
Message:

Show the enabled/disabled protocols in the 'plugins' command output

Files:
4 edited

Legend:

Unmodified
Added
Removed
  • doc/user-guide/commands.xml

    rd28fe1c4 r808825e  
    18361836
    18371837        <bitlbee-command name="plugins">
    1838                 <short-description>List all the external plugins</short-description>
     1838                <short-description>List all the external plugins and protocols</short-description>
    18391839                <syntax>plugins</syntax>
    18401840
    18411841                <description>
    18421842                        <para>
    1843                                 This gives you a list of all the external plugins.
     1843                                This gives you a list of all the external plugins and protocols.
    18441844                        </para>
    18451845                </description>
  • protocols/nogaim.c

    rd28fe1c4 r808825e  
    228228        load_plugins();
    229229#endif
     230}
     231
     232GList *get_protocols()
     233{
     234        return protocols;
     235}
     236
     237GList *get_protocols_disabled()
     238{
     239        return disabled_protocols;
    230240}
    231241
  • protocols/nogaim.h

    rd28fe1c4 r808825e  
    287287/* im_api core stuff. */
    288288void nogaim_init();
     289G_MODULE_EXPORT GList *get_protocols();
     290G_MODULE_EXPORT GList *get_protocols_disabled();
    289291G_MODULE_EXPORT GSList *get_connections();
    290292G_MODULE_EXPORT struct prpl *find_protocol(const char *name);
  • root_commands.c

    rd28fe1c4 r808825e  
    11071107}
    11081108
     1109static gint prplcmp(gconstpointer a, gconstpointer b)
     1110{
     1111        const struct prpl *pa = a;
     1112        const struct prpl *pb = b;
     1113
     1114        return g_strcasecmp(pa->name, pb->name);
     1115}
     1116
     1117static void prplstr(GList *prpls, GString *gstr)
     1118{
     1119        const char *last = NULL;
     1120        GList *l;
     1121        struct prpl *p;
     1122
     1123        prpls = g_list_copy(prpls);
     1124        prpls = g_list_sort(prpls, prplcmp);
     1125
     1126        for (l = prpls; l; l = l->next) {
     1127                p = l->data;
     1128
     1129                if (last && g_strcasecmp(p->name, last) == 0) {
     1130                        /* Ignore duplicates (mainly for libpurple) */
     1131                        continue;
     1132                }
     1133
     1134                if (gstr->len != 0) {
     1135                        g_string_append(gstr, ", ");
     1136                }
     1137
     1138                g_string_append(gstr, p->name);
     1139                last = p->name;
     1140        }
     1141
     1142        g_list_free(prpls);
     1143}
     1144
     1145static void cmd_plugins(irc_t *irc, char **cmd)
     1146{
     1147        GList *prpls;
     1148        GString *gstr;
     1149
    11091150#ifdef WITH_PLUGINS
    1110 static void cmd_plugins(irc_t *irc, char **cmd)
    1111 {
    11121151        GList *l;
    11131152        struct plugin_info *info;
     
    11301169                }
    11311170
    1132                 if (l->next) {
    1133                         irc_rootmsg(irc, "");
    1134                 }
    1135         }
    1136 }
     1171                irc_rootmsg(irc, "");
     1172        }
    11371173#endif
     1174
     1175        gstr = g_string_new(NULL);
     1176        prpls = get_protocols();
     1177
     1178        if (prpls) {
     1179                prplstr(prpls, gstr);
     1180                irc_rootmsg(irc, "Enabled Protocols: %s", gstr->str);
     1181                g_string_truncate(gstr, 0);
     1182        }
     1183
     1184        prpls = get_protocols_disabled();
     1185
     1186        if (prpls) {
     1187                prplstr(prpls, gstr);
     1188                irc_rootmsg(irc, "Disabled Protocols: %s", gstr->str);
     1189        }
     1190
     1191        g_string_free(gstr, TRUE);
     1192}
    11381193
    11391194static void cmd_qlist(irc_t *irc, char **cmd)
     
    13881443        { "nick",           1, cmd_nick,           0 },
    13891444        { "no",             0, cmd_yesno,          0 },
    1390 #ifdef WITH_PLUGINS
    13911445        { "plugins",        0, cmd_plugins,        0 },
    1392 #endif
    13931446        { "qlist",          0, cmd_qlist,          0 },
    13941447        { "register",       0, cmd_register,       0 },
Note: See TracChangeset for help on using the changeset viewer.