static void compile_terminators (StfParseOptions_t *parseoptions) { GSList *l; GO_SLIST_SORT (parseoptions->terminator, (GCompareFunc)long_string_first); parseoptions->compiled_terminator.min = 255; parseoptions->compiled_terminator.max = 0; for (l = parseoptions->terminator; l; l = l->next) { const guchar *term = l->data; parseoptions->compiled_terminator.min = MIN (parseoptions->compiled_terminator.min, *term); parseoptions->compiled_terminator.max = MAX (parseoptions->compiled_terminator.max, *term); } }
static void cb_pm_button_rescan_directories_clicked (PluginManagerGUI *pm_gui) { GOErrorInfo *error; GSList *new_plugins, *l; GtkTreeModel *model = GTK_TREE_MODEL (pm_gui->model_plugins); GtkTreeIter iter, new_iter; gboolean has_iter; go_plugins_rescan (&error, &new_plugins); if (error != NULL) { go_cmd_context_error_info (pm_gui->cc, error); go_error_info_free (error); } GO_SLIST_SORT (new_plugins, plugin_compare_name); for (has_iter = gtk_tree_model_get_iter_first (model, &iter), l = new_plugins; has_iter && l != NULL; has_iter = gtk_tree_model_iter_next (model, &iter)) { GOPlugin *old_plugin, *new_plugin; gtk_tree_model_get (model, &iter, PLUGIN_POINTER, &old_plugin, -1); while (new_plugin = l->data, plugin_compare_name (old_plugin, new_plugin) > 0) { gtk_list_store_insert_before (pm_gui->model_plugins, &new_iter, &iter); set_plugin_model_row (pm_gui, &new_iter, new_plugin); l = l->next; if (l == NULL) break; } } while (l != NULL) { gtk_list_store_append (pm_gui->model_plugins, &new_iter); set_plugin_model_row (pm_gui, &new_iter, GO_PLUGIN (l->data)); l = l->next; } g_slist_free (new_plugins); }