remove plug_ins_add_internal() and made plug_ins_procedure_insert() public

2006-04-09  Michael Natterer  <mitch@gimp.org>

	* app/plug-in/plug-ins.[ch]: remove plug_ins_add_internal() and
	made plug_ins_procedure_insert() public as plug_ins_procedure_add().
	There's no reason internal plug-ins should be treated differently.

	* app/xcf/xcf.c: use plug_ins_procedure_add().

	* app/plug-in/plug-ins-help.c: fix comment.
This commit is contained in:
Michael Natterer 2006-04-09 20:35:15 +00:00 committed by Michael Natterer
parent d411d1c0dd
commit 47d60f4803
7 changed files with 131 additions and 141 deletions

View File

@ -1,3 +1,13 @@
2006-04-09 Michael Natterer <mitch@gimp.org>
* app/plug-in/plug-ins.[ch]: remove plug_ins_add_internal() and
made plug_ins_procedure_insert() public as plug_ins_procedure_add().
There's no reason internal plug-ins should be treated differently.
* app/xcf/xcf.c: use plug_ins_procedure_add().
* app/plug-in/plug-ins-help.c: fix comment.
2006-04-09 Michael Natterer <mitch@gimp.org> 2006-04-09 Michael Natterer <mitch@gimp.org>
* app/plug-in/plug-in-params.[ch] (plug_in_params_destroy): * app/plug-in/plug-in-params.[ch] (plug_in_params_destroy):

View File

@ -60,8 +60,6 @@ static void plug_ins_add_from_rc (Gimp *gimp,
PlugInDef *plug_in_def); PlugInDef *plug_in_def);
static void plug_ins_add_to_db (Gimp *gimp, static void plug_ins_add_to_db (Gimp *gimp,
GimpContext *context); GimpContext *context);
static void plug_ins_procedure_insert (Gimp *gimp,
GimpPlugInProcedure *proc);
static gint plug_ins_file_proc_compare (gconstpointer a, static gint plug_ins_file_proc_compare (gconstpointer a,
gconstpointer b, gconstpointer b,
gpointer data); gpointer data);
@ -217,7 +215,7 @@ plug_ins_init (Gimp *gimp,
status_callback (NULL, "", 1.0); status_callback (NULL, "", 1.0);
/* insert the procedures */ /* add the procedures to gimp->plug_in_procedures */
for (list = gimp->plug_in_defs; list; list = list->next) for (list = gimp->plug_in_defs; list; list = list->next)
{ {
PlugInDef *plug_in_def = list->data; PlugInDef *plug_in_def = list->data;
@ -225,7 +223,7 @@ plug_ins_init (Gimp *gimp,
for (list2 = plug_in_def->procedures; list2; list2 = list2->next) for (list2 = plug_in_def->procedures; list2; list2 = list2->next)
{ {
plug_ins_procedure_insert (gimp, list2->data); plug_ins_procedure_add (gimp, list2->data);
} }
} }
@ -363,17 +361,6 @@ plug_ins_exit (Gimp *gimp)
gimp->plug_in_procedures = NULL; gimp->plug_in_procedures = NULL;
} }
void
plug_ins_add_internal (Gimp *gimp,
GimpPlugInProcedure *proc)
{
g_return_if_fail (GIMP_IS_GIMP (gimp));
g_return_if_fail (GIMP_IS_PLUG_IN_PROCEDURE (proc));
gimp->plug_in_procedures = g_slist_prepend (gimp->plug_in_procedures,
g_object_ref (proc));
}
GimpPlugInProcedure * GimpPlugInProcedure *
plug_ins_file_register_magic (Gimp *gimp, plug_ins_file_register_magic (Gimp *gimp,
const gchar *name, const gchar *name,
@ -450,6 +437,56 @@ plug_ins_file_register_thumb_loader (Gimp *gimp,
return proc; return proc;
} }
void
plug_ins_procedure_add (Gimp *gimp,
GimpPlugInProcedure *proc)
{
GSList *list;
g_return_if_fail (GIMP_IS_GIMP (gimp));
g_return_if_fail (GIMP_IS_PLUG_IN_PROCEDURE (proc));
for (list = gimp->plug_in_procedures; list; list = list->next)
{
GimpPlugInProcedure *tmp_proc = list->data;
if (strcmp (GIMP_OBJECT (proc)->name,
GIMP_OBJECT (tmp_proc)->name) == 0)
{
GSList *list2;
list->data = g_object_ref (proc);
g_printerr ("removing duplicate PDB procedure \"%s\" "
"registered by '%s'\n",
GIMP_OBJECT (tmp_proc)->name,
gimp_filename_to_utf8 (tmp_proc->prog));
/* search the plugin list to see if any plugins had references to
* the tmp_proc.
*/
for (list2 = gimp->plug_in_defs; list2; list2 = list2->next)
{
PlugInDef *plug_in_def = list2->data;
if (g_slist_find (plug_in_def->procedures, tmp_proc))
plug_in_def_remove_procedure (plug_in_def, tmp_proc);
}
/* also remove it from the lists of load and save procs */
gimp->load_procs = g_slist_remove (gimp->load_procs, tmp_proc);
gimp->save_procs = g_slist_remove (gimp->save_procs, tmp_proc);
g_object_unref (tmp_proc);
return;
}
}
gimp->plug_in_procedures = g_slist_prepend (gimp->plug_in_procedures,
g_object_ref (proc));
}
void void
plug_ins_temp_procedure_add (Gimp *gimp, plug_ins_temp_procedure_add (Gimp *gimp,
GimpTemporaryProcedure *proc) GimpTemporaryProcedure *proc)
@ -695,53 +732,6 @@ plug_ins_add_to_db (Gimp *gimp,
} }
} }
static void
plug_ins_procedure_insert (Gimp *gimp,
GimpPlugInProcedure *proc)
{
GSList *list;
for (list = gimp->plug_in_procedures; list; list = list->next)
{
GimpPlugInProcedure *tmp_proc = list->data;
if (strcmp (GIMP_OBJECT (proc)->name,
GIMP_OBJECT (tmp_proc)->name) == 0)
{
GSList *list2;
list->data = g_object_ref (proc);
g_printerr ("removing duplicate PDB procedure \"%s\" "
"registered by '%s'\n",
GIMP_OBJECT (tmp_proc)->name,
gimp_filename_to_utf8 (tmp_proc->prog));
/* search the plugin list to see if any plugins had references to
* the tmp_proc.
*/
for (list2 = gimp->plug_in_defs; list2; list2 = list2->next)
{
PlugInDef *plug_in_def = list2->data;
if (g_slist_find (plug_in_def->procedures, tmp_proc))
plug_in_def_remove_procedure (plug_in_def, tmp_proc);
}
/* also remove it from the lists of load and save procs */
gimp->load_procs = g_slist_remove (gimp->load_procs, tmp_proc);
gimp->save_procs = g_slist_remove (gimp->save_procs, tmp_proc);
g_object_unref (tmp_proc);
return;
}
}
gimp->plug_in_procedures = g_slist_prepend (gimp->plug_in_procedures,
g_object_ref (proc));
}
static gint static gint
plug_ins_file_proc_compare (gconstpointer a, plug_ins_file_proc_compare (gconstpointer a,
gconstpointer b, gconstpointer b,

View File

@ -35,13 +35,6 @@ void plug_ins_init (Gimp *gimp,
GimpInitStatusFunc status_callback); GimpInitStatusFunc status_callback);
void plug_ins_exit (Gimp *gimp); void plug_ins_exit (Gimp *gimp);
/* Register an internal plug-in. This is for file load-save
* handlers, which are organized around the plug-in data structure.
* This could all be done a little better, but oh well. -josh
*/
void plug_ins_add_internal (Gimp *gimp,
GimpPlugInProcedure *proc);
/* Add in the file load/save handler fields procedure. */ /* Add in the file load/save handler fields procedure. */
GimpPlugInProcedure * plug_ins_file_register_magic (Gimp *gimp, GimpPlugInProcedure * plug_ins_file_register_magic (Gimp *gimp,
const gchar *name, const gchar *name,
@ -58,6 +51,13 @@ GimpPlugInProcedure * plug_ins_file_register_thumb_loader
const gchar *load_proc, const gchar *load_proc,
const gchar *thumb_proc); const gchar *thumb_proc);
/* Register a plug-in. This function is public for file load-save
* handlers, which are organized around the plug-in data structure.
* This could all be done a little better, but oh well. -josh
*/
void plug_ins_procedure_add (Gimp *gimp,
GimpPlugInProcedure *proc);
/* Add/Remove temporary procedures. */ /* Add/Remove temporary procedures. */
void plug_ins_temp_procedure_add (Gimp *gimp, void plug_ins_temp_procedure_add (Gimp *gimp,
GimpTemporaryProcedure *proc); GimpTemporaryProcedure *proc);

View File

@ -1,7 +1,7 @@
/* The GIMP -- an image manipulation program /* The GIMP -- an image manipulation program
* Copyright (C) 1995 Spencer Kimball and Peter Mattis * Copyright (C) 1995 Spencer Kimball and Peter Mattis
* *
* plug-ins.c * plug-ins-help.c
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by

View File

@ -60,8 +60,6 @@ static void plug_ins_add_from_rc (Gimp *gimp,
PlugInDef *plug_in_def); PlugInDef *plug_in_def);
static void plug_ins_add_to_db (Gimp *gimp, static void plug_ins_add_to_db (Gimp *gimp,
GimpContext *context); GimpContext *context);
static void plug_ins_procedure_insert (Gimp *gimp,
GimpPlugInProcedure *proc);
static gint plug_ins_file_proc_compare (gconstpointer a, static gint plug_ins_file_proc_compare (gconstpointer a,
gconstpointer b, gconstpointer b,
gpointer data); gpointer data);
@ -217,7 +215,7 @@ plug_ins_init (Gimp *gimp,
status_callback (NULL, "", 1.0); status_callback (NULL, "", 1.0);
/* insert the procedures */ /* add the procedures to gimp->plug_in_procedures */
for (list = gimp->plug_in_defs; list; list = list->next) for (list = gimp->plug_in_defs; list; list = list->next)
{ {
PlugInDef *plug_in_def = list->data; PlugInDef *plug_in_def = list->data;
@ -225,7 +223,7 @@ plug_ins_init (Gimp *gimp,
for (list2 = plug_in_def->procedures; list2; list2 = list2->next) for (list2 = plug_in_def->procedures; list2; list2 = list2->next)
{ {
plug_ins_procedure_insert (gimp, list2->data); plug_ins_procedure_add (gimp, list2->data);
} }
} }
@ -363,17 +361,6 @@ plug_ins_exit (Gimp *gimp)
gimp->plug_in_procedures = NULL; gimp->plug_in_procedures = NULL;
} }
void
plug_ins_add_internal (Gimp *gimp,
GimpPlugInProcedure *proc)
{
g_return_if_fail (GIMP_IS_GIMP (gimp));
g_return_if_fail (GIMP_IS_PLUG_IN_PROCEDURE (proc));
gimp->plug_in_procedures = g_slist_prepend (gimp->plug_in_procedures,
g_object_ref (proc));
}
GimpPlugInProcedure * GimpPlugInProcedure *
plug_ins_file_register_magic (Gimp *gimp, plug_ins_file_register_magic (Gimp *gimp,
const gchar *name, const gchar *name,
@ -450,6 +437,56 @@ plug_ins_file_register_thumb_loader (Gimp *gimp,
return proc; return proc;
} }
void
plug_ins_procedure_add (Gimp *gimp,
GimpPlugInProcedure *proc)
{
GSList *list;
g_return_if_fail (GIMP_IS_GIMP (gimp));
g_return_if_fail (GIMP_IS_PLUG_IN_PROCEDURE (proc));
for (list = gimp->plug_in_procedures; list; list = list->next)
{
GimpPlugInProcedure *tmp_proc = list->data;
if (strcmp (GIMP_OBJECT (proc)->name,
GIMP_OBJECT (tmp_proc)->name) == 0)
{
GSList *list2;
list->data = g_object_ref (proc);
g_printerr ("removing duplicate PDB procedure \"%s\" "
"registered by '%s'\n",
GIMP_OBJECT (tmp_proc)->name,
gimp_filename_to_utf8 (tmp_proc->prog));
/* search the plugin list to see if any plugins had references to
* the tmp_proc.
*/
for (list2 = gimp->plug_in_defs; list2; list2 = list2->next)
{
PlugInDef *plug_in_def = list2->data;
if (g_slist_find (plug_in_def->procedures, tmp_proc))
plug_in_def_remove_procedure (plug_in_def, tmp_proc);
}
/* also remove it from the lists of load and save procs */
gimp->load_procs = g_slist_remove (gimp->load_procs, tmp_proc);
gimp->save_procs = g_slist_remove (gimp->save_procs, tmp_proc);
g_object_unref (tmp_proc);
return;
}
}
gimp->plug_in_procedures = g_slist_prepend (gimp->plug_in_procedures,
g_object_ref (proc));
}
void void
plug_ins_temp_procedure_add (Gimp *gimp, plug_ins_temp_procedure_add (Gimp *gimp,
GimpTemporaryProcedure *proc) GimpTemporaryProcedure *proc)
@ -695,53 +732,6 @@ plug_ins_add_to_db (Gimp *gimp,
} }
} }
static void
plug_ins_procedure_insert (Gimp *gimp,
GimpPlugInProcedure *proc)
{
GSList *list;
for (list = gimp->plug_in_procedures; list; list = list->next)
{
GimpPlugInProcedure *tmp_proc = list->data;
if (strcmp (GIMP_OBJECT (proc)->name,
GIMP_OBJECT (tmp_proc)->name) == 0)
{
GSList *list2;
list->data = g_object_ref (proc);
g_printerr ("removing duplicate PDB procedure \"%s\" "
"registered by '%s'\n",
GIMP_OBJECT (tmp_proc)->name,
gimp_filename_to_utf8 (tmp_proc->prog));
/* search the plugin list to see if any plugins had references to
* the tmp_proc.
*/
for (list2 = gimp->plug_in_defs; list2; list2 = list2->next)
{
PlugInDef *plug_in_def = list2->data;
if (g_slist_find (plug_in_def->procedures, tmp_proc))
plug_in_def_remove_procedure (plug_in_def, tmp_proc);
}
/* also remove it from the lists of load and save procs */
gimp->load_procs = g_slist_remove (gimp->load_procs, tmp_proc);
gimp->save_procs = g_slist_remove (gimp->save_procs, tmp_proc);
g_object_unref (tmp_proc);
return;
}
}
gimp->plug_in_procedures = g_slist_prepend (gimp->plug_in_procedures,
g_object_ref (proc));
}
static gint static gint
plug_ins_file_proc_compare (gconstpointer a, plug_ins_file_proc_compare (gconstpointer a,
gconstpointer b, gconstpointer b,

View File

@ -35,13 +35,6 @@ void plug_ins_init (Gimp *gimp,
GimpInitStatusFunc status_callback); GimpInitStatusFunc status_callback);
void plug_ins_exit (Gimp *gimp); void plug_ins_exit (Gimp *gimp);
/* Register an internal plug-in. This is for file load-save
* handlers, which are organized around the plug-in data structure.
* This could all be done a little better, but oh well. -josh
*/
void plug_ins_add_internal (Gimp *gimp,
GimpPlugInProcedure *proc);
/* Add in the file load/save handler fields procedure. */ /* Add in the file load/save handler fields procedure. */
GimpPlugInProcedure * plug_ins_file_register_magic (Gimp *gimp, GimpPlugInProcedure * plug_ins_file_register_magic (Gimp *gimp,
const gchar *name, const gchar *name,
@ -58,6 +51,13 @@ GimpPlugInProcedure * plug_ins_file_register_thumb_loader
const gchar *load_proc, const gchar *load_proc,
const gchar *thumb_proc); const gchar *thumb_proc);
/* Register a plug-in. This function is public for file load-save
* handlers, which are organized around the plug-in data structure.
* This could all be done a little better, but oh well. -josh
*/
void plug_ins_procedure_add (Gimp *gimp,
GimpPlugInProcedure *proc);
/* Add/Remove temporary procedures. */ /* Add/Remove temporary procedures. */
void plug_ins_temp_procedure_add (Gimp *gimp, void plug_ins_temp_procedure_add (Gimp *gimp,
GimpTemporaryProcedure *proc); GimpTemporaryProcedure *proc);

View File

@ -200,7 +200,7 @@ xcf_init (Gimp *gimp)
"file, in UTF-8", "file, in UTF-8",
FALSE, FALSE, NULL, FALSE, FALSE, NULL,
GIMP_PARAM_READWRITE)); GIMP_PARAM_READWRITE));
plug_ins_add_internal (gimp, proc); plug_ins_procedure_add (gimp, proc);
g_object_unref (procedure); g_object_unref (procedure);
/* gimp-xcf-load */ /* gimp-xcf-load */
@ -261,7 +261,7 @@ xcf_init (Gimp *gimp)
"Output image", "Output image",
gimp, gimp,
GIMP_PARAM_READWRITE)); GIMP_PARAM_READWRITE));
plug_ins_add_internal (gimp, proc); plug_ins_procedure_add (gimp, proc);
g_object_unref (procedure); g_object_unref (procedure);
} }