int weechat_ruby_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_ruby_plugin, ruby_scripts, NULL, 0); } else if (argc == 2) { if (weechat_strcasecmp (argv[1], "list") == 0) { plugin_script_display_list (weechat_ruby_plugin, ruby_scripts, NULL, 0); } else if (weechat_strcasecmp (argv[1], "listfull") == 0) { plugin_script_display_list (weechat_ruby_plugin, ruby_scripts, NULL, 1); } else if (weechat_strcasecmp (argv[1], "autoload") == 0) { plugin_script_auto_load (weechat_ruby_plugin, &weechat_ruby_load_cb); } else if (weechat_strcasecmp (argv[1], "reload") == 0) { weechat_ruby_unload_all (); plugin_script_auto_load (weechat_ruby_plugin, &weechat_ruby_load_cb); } else if (weechat_strcasecmp (argv[1], "unload") == 0) { weechat_ruby_unload_all (); } else return WEECHAT_RC_ERROR; } else { if (weechat_strcasecmp (argv[1], "list") == 0) { plugin_script_display_list (weechat_ruby_plugin, ruby_scripts, argv_eol[2], 0); } else if (weechat_strcasecmp (argv[1], "listfull") == 0) { plugin_script_display_list (weechat_ruby_plugin, ruby_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) { ruby_quiet = 1; ptr_name += 3; while (ptr_name[0] == ' ') { ptr_name++; } } if (weechat_strcasecmp (argv[1], "load") == 0) { /* load ruby script */ path_script = plugin_script_search_path (weechat_ruby_plugin, ptr_name); weechat_ruby_load ((path_script) ? path_script : ptr_name); if (path_script) free (path_script); } else if (weechat_strcasecmp (argv[1], "reload") == 0) { /* reload one ruby script */ weechat_ruby_reload_name (ptr_name); } else if (weechat_strcasecmp (argv[1], "unload") == 0) { /* unload ruby script */ weechat_ruby_unload_name (ptr_name); } ruby_quiet = 0; } else return WEECHAT_RC_ERROR; } return WEECHAT_RC_OK; }
int weechat_ruby_command_cb (void *data, struct t_gui_buffer *buffer, int argc, char **argv, char **argv_eol) { char *path_script; /* make C compiler happy */ (void) data; (void) buffer; if (argc == 1) { script_display_list (weechat_ruby_plugin, ruby_scripts, NULL, 0); } else if (argc == 2) { if (weechat_strcasecmp (argv[1], "list") == 0) { script_display_list (weechat_ruby_plugin, ruby_scripts, NULL, 0); } else if (weechat_strcasecmp (argv[1], "listfull") == 0) { script_display_list (weechat_ruby_plugin, ruby_scripts, NULL, 1); } else if (weechat_strcasecmp (argv[1], "autoload") == 0) { script_auto_load (weechat_ruby_plugin, &weechat_ruby_load_cb); } else if (weechat_strcasecmp (argv[1], "reload") == 0) { weechat_ruby_unload_all (); script_auto_load (weechat_ruby_plugin, &weechat_ruby_load_cb); } else if (weechat_strcasecmp (argv[1], "unload") == 0) { weechat_ruby_unload_all (); } } else { if (weechat_strcasecmp (argv[1], "list") == 0) { script_display_list (weechat_ruby_plugin, ruby_scripts, argv_eol[2], 0); } else if (weechat_strcasecmp (argv[1], "listfull") == 0) { script_display_list (weechat_ruby_plugin, ruby_scripts, argv_eol[2], 1); } else if (weechat_strcasecmp (argv[1], "load") == 0) { /* load Ruby script */ path_script = script_search_path (weechat_ruby_plugin, argv_eol[2]); weechat_ruby_load ((path_script) ? path_script : argv_eol[2]); if (path_script) free (path_script); } else if (weechat_strcasecmp (argv[1], "reload") == 0) { /* reload one Ruby script */ weechat_ruby_reload_name (argv_eol[2]); } else if (weechat_strcasecmp (argv[1], "unload") == 0) { /* unload Ruby script */ weechat_ruby_unload_name (argv_eol[2]); } else { weechat_printf (NULL, weechat_gettext ("%s%s: unknown option for " "command \"%s\""), weechat_prefix ("error"), RUBY_PLUGIN_NAME, "ruby"); } } return WEECHAT_RC_OK; }