int weechat_lua_command_cb (void *data, struct t_gui_buffer *buffer, int argc, char **argv, char **argv_eol) { char *ptr_name, *path_script; /* make C compiler happy */ (void) data; (void) buffer; if (argc == 1) { plugin_script_display_list (weechat_lua_plugin, lua_scripts, NULL, 0); } else if (argc == 2) { if (weechat_strcasecmp (argv[1], "list") == 0) { plugin_script_display_list (weechat_lua_plugin, lua_scripts, NULL, 0); } else if (weechat_strcasecmp (argv[1], "listfull") == 0) { plugin_script_display_list (weechat_lua_plugin, lua_scripts, NULL, 1); } else if (weechat_strcasecmp (argv[1], "autoload") == 0) { plugin_script_auto_load (weechat_lua_plugin, &weechat_lua_load_cb); } else if (weechat_strcasecmp (argv[1], "reload") == 0) { weechat_lua_unload_all (); plugin_script_auto_load (weechat_lua_plugin, &weechat_lua_load_cb); } else if (weechat_strcasecmp (argv[1], "unload") == 0) { weechat_lua_unload_all (); } } else { if (weechat_strcasecmp (argv[1], "list") == 0) { plugin_script_display_list (weechat_lua_plugin, lua_scripts, argv_eol[2], 0); } else if (weechat_strcasecmp (argv[1], "listfull") == 0) { plugin_script_display_list (weechat_lua_plugin, lua_scripts, argv_eol[2], 1); } else if ((weechat_strcasecmp (argv[1], "load") == 0) || (weechat_strcasecmp (argv[1], "reload") == 0) || (weechat_strcasecmp (argv[1], "unload") == 0)) { ptr_name = argv_eol[2]; if (strncmp (ptr_name, "-q ", 3) == 0) { lua_quiet = 1; ptr_name += 3; while (ptr_name[0] == ' ') { ptr_name++; } } if (weechat_strcasecmp (argv[1], "load") == 0) { /* load Lua script */ path_script = plugin_script_search_path (weechat_lua_plugin, ptr_name); weechat_lua_load ((path_script) ? path_script : ptr_name); if (path_script) free (path_script); } else if (weechat_strcasecmp (argv[1], "reload") == 0) { /* reload one Lua script */ weechat_lua_reload_name (ptr_name); } else if (weechat_strcasecmp (argv[1], "unload") == 0) { /* unload Lua script */ weechat_lua_unload_name (ptr_name); } lua_quiet = 0; } else { weechat_printf (NULL, weechat_gettext ("%s%s: unknown option for " "command \"%s\""), weechat_prefix ("error"), LUA_PLUGIN_NAME, "lua"); } } return WEECHAT_RC_OK; }
int weechat_lua_command_cb (void *data, struct t_gui_buffer *buffer, int argc, char **argv, char **argv_eol) { char *ptr_name, *path_script; /* make C compiler happy */ (void) data; (void) buffer; if (argc == 1) { plugin_script_display_list (weechat_lua_plugin, lua_scripts, NULL, 0); } else if (argc == 2) { if (weechat_strcasecmp (argv[1], "list") == 0) { plugin_script_display_list (weechat_lua_plugin, lua_scripts, NULL, 0); } else if (weechat_strcasecmp (argv[1], "listfull") == 0) { plugin_script_display_list (weechat_lua_plugin, lua_scripts, NULL, 1); } else if (weechat_strcasecmp (argv[1], "autoload") == 0) { plugin_script_auto_load (weechat_lua_plugin, &weechat_lua_load_cb); } else if (weechat_strcasecmp (argv[1], "reload") == 0) { weechat_lua_unload_all (); plugin_script_auto_load (weechat_lua_plugin, &weechat_lua_load_cb); } else if (weechat_strcasecmp (argv[1], "unload") == 0) { weechat_lua_unload_all (); } else WEECHAT_COMMAND_ERROR; } else { if (weechat_strcasecmp (argv[1], "list") == 0) { plugin_script_display_list (weechat_lua_plugin, lua_scripts, argv_eol[2], 0); } else if (weechat_strcasecmp (argv[1], "listfull") == 0) { plugin_script_display_list (weechat_lua_plugin, lua_scripts, argv_eol[2], 1); } else if ((weechat_strcasecmp (argv[1], "load") == 0) || (weechat_strcasecmp (argv[1], "reload") == 0) || (weechat_strcasecmp (argv[1], "unload") == 0)) { ptr_name = argv_eol[2]; if (strncmp (ptr_name, "-q ", 3) == 0) { lua_quiet = 1; ptr_name += 3; while (ptr_name[0] == ' ') { ptr_name++; } } if (weechat_strcasecmp (argv[1], "load") == 0) { /* load lua script */ path_script = plugin_script_search_path (weechat_lua_plugin, ptr_name); weechat_lua_load ((path_script) ? path_script : ptr_name); if (path_script) free (path_script); } else if (weechat_strcasecmp (argv[1], "reload") == 0) { /* reload one lua script */ weechat_lua_reload_name (ptr_name); } else if (weechat_strcasecmp (argv[1], "unload") == 0) { /* unload lua script */ weechat_lua_unload_name (ptr_name); } lua_quiet = 0; } else WEECHAT_COMMAND_ERROR; } return WEECHAT_RC_OK; }