void script_buffer_set_current_line (int line) { int old_line; if ((line >= 0) && (line < script_repo_count_displayed)) { old_line = script_buffer_selected_line; script_buffer_selected_line = line; script_buffer_display_line_script (old_line, script_repo_search_displayed_by_number (old_line)); script_buffer_display_line_script (script_buffer_selected_line, script_repo_search_displayed_by_number (script_buffer_selected_line)); } }
void script_command_action (struct t_gui_buffer *buffer, const char *action, const char *arguments, int need_repository) { struct t_script_repo *ptr_script; char str_action[4096]; long value; char *error; int quiet; if (arguments) { /* action with arguments on command line */ quiet = 0; if (strncmp (arguments, "-q ", 3) == 0) { quiet = 1; arguments += 3; while (arguments[0] == ' ') { arguments++; } } error = NULL; value = strtol (arguments, &error, 10); if (error && !error[0]) { ptr_script = script_repo_search_displayed_by_number (value); if (ptr_script) { snprintf (str_action, sizeof (str_action), "%s%s %s", (quiet) ? "-q " : "", action, ptr_script->name_with_extension); script_action_schedule (str_action, need_repository, quiet); } } else { snprintf (str_action, sizeof (str_action), "%s%s %s", (quiet) ? "-q " : "", action, arguments); script_action_schedule (str_action, need_repository, quiet); } } else if (script_buffer && (buffer == script_buffer)) { /* action on current line of script buffer */ if (script_buffer_detail_script && ((weechat_strcasecmp (action, "show") == 0) || (weechat_strcasecmp (action, "showdiff") == 0))) { /* if detail on script is displayed, back to list */ snprintf (str_action, sizeof (str_action), "-q %s", action); script_action_schedule (str_action, need_repository, 1); } else { /* if list is displayed, execute action on script */ if (!script_buffer_detail_script) { ptr_script = script_repo_search_displayed_by_number (script_buffer_selected_line); if (ptr_script) { snprintf (str_action, sizeof (str_action), "-q %s %s", action, ptr_script->name_with_extension); script_action_schedule (str_action, need_repository, 1); } } } } }