changed GimpDatafileLoaderFunc to take a separate "gpointer user_data"

2003-07-02  Michael Natterer  <mitch@gimp.org>

	* libgimpbase/gimpbasetypes.h: changed GimpDatafileLoaderFunc to
	take a separate "gpointer user_data" parameter (passing user_data
	in a struct was a quite nonstandard API design). Made the
	GimpDatafileData pointer const.

	* libgimpbase/gimpdatafiles.[ch]: removed user_data from the
	GimpDatafileData struct and added "const gchar *basename" so we
	don't need to g_path_get_basename() in many callbacks.

	* libgimp/gimpmiscui.[ch]: changed gimp_plug_in_parse_path() to
	gimp_plug_in_get_path() and return the unparsed path.

	* app/core/gimpdatafactory.c
	* app/core/gimpenvirontable.c
	* app/gui/gui.c
	* app/plug-in/plug-ins.c
	* libgimpmodule/gimpmoduledb.c
	* plug-ins/script-fu/script-fu-scripts.c: changed accordingly.

	* plug-ins/FractalExplorer/Dialogs.c
	* plug-ins/FractalExplorer/FractalExplorer.[ch]
	* plug-ins/FractalExplorer/Globals.c
	* plug-ins/gfig/gfig.c
	* plug-ins/gflare/gflare.c: use gimp_datafiles_read_directories()
	instead of fiddling with g_dir_open() manually. Random cleanups.
This commit is contained in:
Michael Natterer 2003-07-02 17:11:00 +00:00 committed by Michael Natterer
parent 5143aa7c4b
commit 74710fccf4
21 changed files with 377 additions and 411 deletions

View File

@ -1,3 +1,31 @@
2003-07-02 Michael Natterer <mitch@gimp.org>
* libgimpbase/gimpbasetypes.h: changed GimpDatafileLoaderFunc to
take a separate "gpointer user_data" parameter (passing user_data
in a struct was a quite nonstandard API design). Made the
GimpDatafileData pointer const.
* libgimpbase/gimpdatafiles.[ch]: removed user_data from the
GimpDatafileData struct and added "const gchar *basename" so we
don't need to g_path_get_basename() in many callbacks.
* libgimp/gimpmiscui.[ch]: changed gimp_plug_in_parse_path() to
gimp_plug_in_get_path() and return the unparsed path.
* app/core/gimpdatafactory.c
* app/core/gimpenvirontable.c
* app/gui/gui.c
* app/plug-in/plug-ins.c
* libgimpmodule/gimpmoduledb.c
* plug-ins/script-fu/script-fu-scripts.c: changed accordingly.
* plug-ins/FractalExplorer/Dialogs.c
* plug-ins/FractalExplorer/FractalExplorer.[ch]
* plug-ins/FractalExplorer/Globals.c
* plug-ins/gfig/gfig.c
* plug-ins/gflare/gflare.c: use gimp_datafiles_read_directories()
instead of fiddling with g_dir_open() manually. Random cleanups.
2003-07-02 Sven Neumann <sven@gimp.org>
* plug-ins: last bunch of plug-ins adapted to libgimp changes.

View File

@ -49,7 +49,8 @@ static void gimp_data_factory_finalize (GObject *object);
static gsize gimp_data_factory_get_memsize (GimpObject *object);
static void gimp_data_factory_load_callback (GimpDatafileData *file_data);
static void gimp_data_factory_load_data (const GimpDatafileData *file_data,
gpointer user_data);
static GimpObjectClass *parent_class = NULL;
@ -205,7 +206,7 @@ gimp_data_factory_data_init (GimpDataFactory *factory,
gimp_datafiles_read_directories (path,
G_FILE_TEST_EXISTS,
gimp_data_factory_load_callback,
gimp_data_factory_load_data,
factory);
}
@ -415,12 +416,13 @@ gimp_data_factory_data_get_standard (GimpDataFactory *factory)
}
static void
gimp_data_factory_load_callback (GimpDatafileData *file_data)
gimp_data_factory_load_data (const GimpDatafileData *file_data,
gpointer user_data)
{
GimpDataFactory *factory;
gint i;
factory = (GimpDataFactory *) file_data->user_data;
factory = GIMP_DATA_FACTORY (user_data);
for (i = 0; i < factory->n_loader_entries; i++)
{

View File

@ -54,7 +54,8 @@ static void gimp_environ_table_init (GimpEnvironTable *enviro
static void gimp_environ_table_finalize (GObject *object);
static void gimp_environ_table_load_env_file (GimpDatafileData *file_data);
static void gimp_environ_table_load_env_file (const GimpDatafileData *file_data,
gpointer user_data);
static gboolean gimp_environ_table_legal_name (gchar *name);
static void gimp_environ_table_populate (GimpEnvironTable *environ_table);
@ -240,7 +241,8 @@ gimp_environ_table_get_envp (GimpEnvironTable *environ_table)
/* private */
static void
gimp_environ_table_load_env_file (GimpDatafileData *file_data)
gimp_environ_table_load_env_file (const GimpDatafileData *file_data,
gpointer user_data)
{
GimpEnvironTable *environ_table;
FILE *env;
@ -249,7 +251,7 @@ gimp_environ_table_load_env_file (GimpDatafileData *file_data)
gchar *name, *value, *separator, *p, *q;
GimpEnvironValue *val;
environ_table = GIMP_ENVIRON_TABLE (file_data->user_data);
environ_table = GIMP_ENVIRON_TABLE (user_data);
env = fopen (file_data->filename, "r");
if (! env)

View File

@ -79,7 +79,8 @@ static void gui_message (Gimp *gimp,
static GimpObject * gui_display_new (GimpImage *gimage,
guint scale);
static void gui_themes_dir_foreach_func (GimpDatafileData *file_data);
static void gui_themes_dir_foreach_func (const GimpDatafileData *file_data,
gpointer user_data);
static gboolean gui_exit_callback (Gimp *gimp,
gboolean kill_it);
static gboolean gui_exit_finish_callback (Gimp *gimp,
@ -456,20 +457,19 @@ gui_display_new (GimpImage *gimage,
}
static void
gui_themes_dir_foreach_func (GimpDatafileData *file_data)
gui_themes_dir_foreach_func (const GimpDatafileData *file_data,
gpointer user_data)
{
Gimp *gimp;
gchar *basename;
Gimp *gimp;
gimp = (Gimp *) file_data->user_data;
basename = g_path_get_basename (file_data->filename);
gimp = GIMP (user_data);
if (gimp->be_verbose)
g_print (_("Adding theme '%s' (%s)\n"), basename, file_data->filename);
g_print (_("Adding theme '%s' (%s)\n"),
file_data->basename, file_data->filename);
g_hash_table_insert (themes_hash,
basename,
g_strdup (file_data->basename),
g_strdup (file_data->filename));
}

View File

@ -54,7 +54,8 @@ static void gimp_environ_table_init (GimpEnvironTable *enviro
static void gimp_environ_table_finalize (GObject *object);
static void gimp_environ_table_load_env_file (GimpDatafileData *file_data);
static void gimp_environ_table_load_env_file (const GimpDatafileData *file_data,
gpointer user_data);
static gboolean gimp_environ_table_legal_name (gchar *name);
static void gimp_environ_table_populate (GimpEnvironTable *environ_table);
@ -240,7 +241,8 @@ gimp_environ_table_get_envp (GimpEnvironTable *environ_table)
/* private */
static void
gimp_environ_table_load_env_file (GimpDatafileData *file_data)
gimp_environ_table_load_env_file (const GimpDatafileData *file_data,
gpointer user_data)
{
GimpEnvironTable *environ_table;
FILE *env;
@ -249,7 +251,7 @@ gimp_environ_table_load_env_file (GimpDatafileData *file_data)
gchar *name, *value, *separator, *p, *q;
GimpEnvironValue *val;
environ_table = GIMP_ENVIRON_TABLE (file_data->user_data);
environ_table = GIMP_ENVIRON_TABLE (user_data);
env = fopen (file_data->filename, "r");
if (! env)

View File

@ -75,7 +75,8 @@ struct _PlugInHelpPathDef
};
static void plug_ins_init_file (GimpDatafileData *file_data);
static void plug_ins_init_file (const GimpDatafileData *file_data,
gpointer user_data);
static void plug_ins_add_to_db (Gimp *gimp);
static PlugInProcDef * plug_ins_proc_def_insert (Gimp *gimp,
PlugInProcDef *proc_def);
@ -796,16 +797,14 @@ plug_ins_image_types_parse (gchar *image_types)
/* private functions */
static void
plug_ins_init_file (GimpDatafileData *file_data)
plug_ins_init_file (const GimpDatafileData *file_data,
gpointer user_data)
{
PlugInDef *plug_in_def;
GSList **plug_in_defs;
GSList *list;
gchar *basename;
plug_in_defs = file_data->user_data;
basename = g_path_get_basename (file_data->filename);
plug_in_defs = (GSList **) user_data;
for (list = *plug_in_defs; list; list = g_slist_next (list))
{
@ -815,13 +814,12 @@ plug_ins_init_file (GimpDatafileData *file_data)
plug_in_name = g_path_get_basename (plug_in_def->prog);
if (g_ascii_strcasecmp (basename, plug_in_name) == 0)
if (g_ascii_strcasecmp (file_data->basename, plug_in_name) == 0)
{
g_print ("skipping duplicate plug-in: \"%s\"\n",
file_data->filename);
g_free (plug_in_name);
g_free (basename);
return;
}
@ -829,8 +827,6 @@ plug_ins_init_file (GimpDatafileData *file_data)
g_free (plug_in_name);
}
g_free (basename);
plug_in_def = plug_in_def_new (file_data->filename);
plug_in_def_set_mtime (plug_in_def, file_data->mtime);

View File

@ -75,7 +75,8 @@ struct _PlugInHelpPathDef
};
static void plug_ins_init_file (GimpDatafileData *file_data);
static void plug_ins_init_file (const GimpDatafileData *file_data,
gpointer user_data);
static void plug_ins_add_to_db (Gimp *gimp);
static PlugInProcDef * plug_ins_proc_def_insert (Gimp *gimp,
PlugInProcDef *proc_def);
@ -796,16 +797,14 @@ plug_ins_image_types_parse (gchar *image_types)
/* private functions */
static void
plug_ins_init_file (GimpDatafileData *file_data)
plug_ins_init_file (const GimpDatafileData *file_data,
gpointer user_data)
{
PlugInDef *plug_in_def;
GSList **plug_in_defs;
GSList *list;
gchar *basename;
plug_in_defs = file_data->user_data;
basename = g_path_get_basename (file_data->filename);
plug_in_defs = (GSList **) user_data;
for (list = *plug_in_defs; list; list = g_slist_next (list))
{
@ -815,13 +814,12 @@ plug_ins_init_file (GimpDatafileData *file_data)
plug_in_name = g_path_get_basename (plug_in_def->prog);
if (g_ascii_strcasecmp (basename, plug_in_name) == 0)
if (g_ascii_strcasecmp (file_data->basename, plug_in_name) == 0)
{
g_print ("skipping duplicate plug-in: \"%s\"\n",
file_data->filename);
g_free (plug_in_name);
g_free (basename);
return;
}
@ -829,8 +827,6 @@ plug_ins_init_file (GimpDatafileData *file_data)
g_free (plug_in_name);
}
g_free (basename);
plug_in_def = plug_in_def_new (file_data->filename);
plug_in_def_set_mtime (plug_in_def, file_data->mtime);

View File

@ -509,45 +509,41 @@ gimp_fixme_preview_fill_scaled (GimpFixMePreview *preview,
preview->height = GTK_PREVIEW (preview->widget)->buffer_height;
}
GList *
gimp_plug_in_parse_path (const gchar *path_name,
const gchar *dir_name)
gchar *
gimp_plug_in_get_path (const gchar *path_name,
const gchar *dir_name)
{
GList *path_list = NULL;
gchar *path;
g_return_val_if_fail (path_name != NULL, NULL);
g_return_val_if_fail (dir_name != NULL, NULL);
path = gimp_gimprc_query (path_name);
if (!path)
if (! path)
{
gchar *gimprc = gimp_personal_rc_file ("gimprc");
gchar *full_path;
gchar *esc_path;
full_path = g_strconcat
("${gimp_dir}", G_DIR_SEPARATOR_S, dir_name,
G_SEARCHPATH_SEPARATOR_S,
"${gimp_data_dir}", G_DIR_SEPARATOR_S, dir_name,
NULL);
full_path =
g_strconcat ("${gimp_dir}", G_DIR_SEPARATOR_S, dir_name,
G_SEARCHPATH_SEPARATOR_S,
"${gimp_data_dir}", G_DIR_SEPARATOR_S, dir_name,
NULL);
esc_path = g_strescape (full_path, NULL);
g_free (full_path);
g_message (_("No %s in gimprc:\n"
"You need to add an entry like\n"
"(%s \"%s\")\n"
"to your %s file."), path_name, path_name, esc_path,
gimprc);
"to your %s file."),
path_name, path_name, esc_path, gimprc);
g_free (gimprc);
g_free (full_path);
g_free (esc_path);
return NULL;
}
path_list = gimp_path_parse (path, 16, TRUE, NULL);
g_free (path);
return path_list;
return path;
}

View File

@ -94,7 +94,7 @@ void gimp_fixme_preview_get_pixel (GimpFixMePreview *preview,
gint y,
guchar *pixel);
GList * gimp_plug_in_parse_path (const gchar *path_name,
gchar * gimp_plug_in_get_path (const gchar *path_name,
const gchar *dir_name);

View File

@ -33,7 +33,8 @@ typedef struct _GimpParasite GimpParasite;
typedef struct _GimpDatafileData GimpDatafileData;
typedef void (* GimpDatafileLoaderFunc) (GimpDatafileData *file_data);
typedef void (* GimpDatafileLoaderFunc) (const GimpDatafileData *file_data,
gpointer user_data);
typedef enum

View File

@ -131,24 +131,22 @@ gimp_datafiles_read_directories (const gchar *path_str,
g_return_if_fail (path_str != NULL);
g_return_if_fail (loader_func != NULL);
file_data.user_data = user_data;
local_path = g_strdup (path_str);
#ifdef __EMX__
/*
* Change drive so opendir works.
*/
if (local_path[1] == ':')
{
_chdrive (local_path[0]);
}
#endif
path = gimp_path_parse (local_path, 16, TRUE, NULL);
for (list = path; list; list = g_list_next (list))
{
#ifdef __EMX__
/*
* Change drive so opendir works.
*/
if (((gchar *) list->data)[1] == ':')
{
_chdrive (((gchar *) list->data)[0]);
}
#endif
dir = g_dir_open ((gchar *) list->data, 0, NULL);
if (dir)
@ -158,10 +156,10 @@ gimp_datafiles_read_directories (const gchar *path_str,
filename = g_build_filename ((gchar *) list->data,
dir_ent, NULL);
/* Check the file and see that it is not a sub-directory */
err = stat (filename, &filestat);
file_data.filename = filename;
file_data.basename = dir_ent;
file_data.atime = filestat.st_atime;
file_data.mtime = filestat.st_mtime;
file_data.ctime = filestat.st_ctime;
@ -170,23 +168,23 @@ gimp_datafiles_read_directories (const gchar *path_str,
{
if (flags & G_FILE_TEST_EXISTS)
{
(* loader_func) (&file_data);
(* loader_func) (&file_data, user_data);
}
else if ((flags & G_FILE_TEST_IS_REGULAR) &&
S_ISREG (filestat.st_mode))
{
(* loader_func) (&file_data);
(* loader_func) (&file_data, user_data);
}
else if ((flags & G_FILE_TEST_IS_DIR) &&
S_ISDIR (filestat.st_mode))
{
(* loader_func) (&file_data);
(* loader_func) (&file_data, user_data);
}
#ifndef G_OS_WIN32
else if ((flags & G_FILE_TEST_IS_SYMLINK) &&
S_ISLNK (filestat.st_mode))
{
(* loader_func) (&file_data);
(* loader_func) (&file_data, user_data);
}
#endif
else if ((flags & G_FILE_TEST_IS_EXECUTABLE) &&
@ -195,7 +193,7 @@ gimp_datafiles_read_directories (const gchar *path_str,
(S_ISREG (filestat.st_mode) &&
is_script (filename))))
{
(* loader_func) (&file_data);
(* loader_func) (&file_data, user_data);
}
}

View File

@ -28,12 +28,11 @@
struct _GimpDatafileData
{
const gchar *filename;
const gchar *basename;
time_t atime;
time_t mtime;
time_t ctime;
gpointer user_data;
};

View File

@ -56,7 +56,8 @@ static void gimp_module_db_init (GimpModuleDB *db);
static void gimp_module_db_finalize (GObject *object);
static void gimp_module_db_module_initialize (GimpDatafileData *file_data);
static void gimp_module_db_module_initialize (const GimpDatafileData *file_data,
gpointer user_data);
static GimpModule * gimp_module_db_module_find_by_path (GimpModuleDB *db,
const char *fullpath);
@ -389,13 +390,14 @@ valid_module_name (const gchar *filename)
}
static void
gimp_module_db_module_initialize (GimpDatafileData *file_data)
gimp_module_db_module_initialize (const GimpDatafileData *file_data,
gpointer user_data)
{
GimpModuleDB *db;
GimpModule *module;
gboolean load_inhibit;
db = GIMP_MODULE_DB (file_data->user_data);
db = GIMP_MODULE_DB (user_data);
if (! valid_module_name (file_data->filename))
return;

View File

@ -276,7 +276,8 @@ explorer_dialog (void)
gimp_ui_init ("fractalexplorer", TRUE);
plug_in_parse_fractalexplorer_path ();
fractalexplorer_path = gimp_plug_in_get_path ("fractalexplorer-path",
"fractalexplorer");
wint.wimage = g_new (guchar, preview_width * preview_height * 3);
elements = g_new (DialogElements, 1);
@ -1743,11 +1744,14 @@ create_file_selection (void)
{
gtk_file_selection_set_filename (GTK_FILE_SELECTION (window), tpath);
}
else if (fractalexplorer_path_list)
else if (fractalexplorer_path)
{
GList *path_list;
gchar *dir;
dir = gimp_path_get_user_writable_dir (fractalexplorer_path_list);
path_list = gimp_path_parse (fractalexplorer_path, 16, FALSE, NULL);
dir = gimp_path_get_user_writable_dir (path_list);
if (!dir)
dir = g_strdup (gimp_directory ());
@ -1755,6 +1759,7 @@ create_file_selection (void)
gtk_file_selection_set_filename (GTK_FILE_SELECTION (window), dir);
g_free (dir);
gimp_path_free (path_list);
}
else
{

View File

@ -151,7 +151,7 @@ static void fractalexplorer_list_free_all (void);
static fractalexplorerOBJ * fractalexplorer_load (const gchar *filename,
const gchar *name);
static void fractalexplorer_list_load_all (GList *plist);
static void fractalexplorer_list_load_all (const gchar *path);
static void fractalexplorer_rescan_ok_callback (GtkWidget *widget,
gpointer data);
static void fractalexplorer_rescan_list (void);
@ -1113,13 +1113,6 @@ list_button_press (GtkWidget *widget,
return FALSE;
}
void
plug_in_parse_fractalexplorer_path (void)
{
fractalexplorer_path_list =
gimp_plug_in_parse_path ("fractalexplorer-path", "fractalexplorer");
}
static void
fractalexplorer_free (fractalexplorerOBJ *fractalexplorer)
{
@ -1208,59 +1201,39 @@ fractalexplorer_load (const gchar *filename,
}
static void
fractalexplorer_list_load_all (GList *plist)
fractalexplorer_list_load_one (const GimpDatafileData *file_data,
gpointer user_data)
{
fractalexplorerOBJ *fractalexplorer;
GList *list;
gchar *path;
gchar *filename;
GDir *dir;
const gchar *dir_ent;
fractalexplorer = fractalexplorer_load (file_data->filename,
file_data->basename);
if (fractalexplorer)
{
/* Read only ?*/
if (access (filename, W_OK))
fractalexplorer->obj_status |= fractalexplorer_READONLY;
fractalexplorer_list_insert (fractalexplorer);
}
}
static void
fractalexplorer_list_load_all (const gchar *path)
{
/* Make sure to clear any existing fractalexplorers */
current_obj = pic_obj = NULL;
fractalexplorer_list_free_all ();
list = plist;
while (list)
gimp_datafiles_read_directories (path, G_FILE_TEST_IS_REGULAR,
fractalexplorer_list_load_one,
NULL);
if (! fractalexplorer_list)
{
path = list->data;
list = list->next;
fractalexplorerOBJ *fractalexplorer;
/* Open directory */
dir = g_dir_open (path, 0, NULL);
if (!dir)
{
g_warning ("error reading fractalexplorer folder \"%s\"", path);
}
else
{
while ((dir_ent = g_dir_read_name (dir)))
{
filename = g_build_filename (path, dir_ent, NULL);
if (g_file_test (filename, G_FILE_TEST_IS_REGULAR))
{
fractalexplorer = fractalexplorer_load (filename, dir_ent);
if (fractalexplorer)
{
/* Read only ?*/
if (access (filename, W_OK))
fractalexplorer->obj_status |= fractalexplorer_READONLY;
fractalexplorer_list_insert (fractalexplorer);
}
}
g_free (filename);
}
g_dir_close (dir);
}
}
if (!fractalexplorer_list)
{
/* lets have at least one! */
fractalexplorer = fractalexplorer_new ();
fractalexplorer->draw_name = g_strdup (_("My first fractal"));
@ -1306,7 +1279,7 @@ add_objects_list (void)
list);
gtk_widget_show (list);
fractalexplorer_list_load_all (fractalexplorer_path_list);
fractalexplorer_list_load_all (fractalexplorer_path);
build_list_items (list);
/* Put buttons in */
@ -1342,26 +1315,20 @@ fractalexplorer_rescan_ok_callback (GtkWidget *widget,
gpointer data)
{
GtkWidget *patheditor;
gchar *raw_path;
gtk_widget_set_sensitive (GTK_WIDGET (data), FALSE);
gimp_path_free (fractalexplorer_path_list);
fractalexplorer_path_list = NULL;
patheditor = GTK_WIDGET (g_object_get_data (G_OBJECT (data),
"patheditor"));
raw_path = gimp_path_editor_get_path (GIMP_PATH_EDITOR (patheditor));
g_free (fractalexplorer_path);
fractalexplorer_path =
gimp_path_editor_get_path (GIMP_PATH_EDITOR (patheditor));
fractalexplorer_path_list = gimp_path_parse (raw_path, 16, FALSE, NULL);
g_free (raw_path);
if (fractalexplorer_path_list)
if (fractalexplorer_path)
{
gtk_list_clear_items (GTK_LIST (fractalexplorer_gtk_list), 0, -1);
fractalexplorer_list_load_all (fractalexplorer_path_list);
fractalexplorer_list_load_all (fractalexplorer_path);
build_list_items (fractalexplorer_gtk_list);
list_button_update (current_obj);
}
@ -1375,7 +1342,6 @@ fractalexplorer_rescan_list (void)
static GtkWidget *dlg = NULL;
GtkWidget *patheditor;
gchar *path;
if (dlg)
{
@ -1400,16 +1366,13 @@ fractalexplorer_rescan_list (void)
G_CALLBACK (gtk_widget_destroyed),
&dlg);
path = gimp_path_to_str (fractalexplorer_path_list);
patheditor = gimp_path_editor_new (_("Add FractalExplorer Path"), path);
patheditor = gimp_path_editor_new (_("Add FractalExplorer Path"),
fractalexplorer_path);
gtk_container_set_border_width (GTK_CONTAINER (patheditor), 6);
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dlg)->vbox), patheditor,
TRUE, TRUE, 0);
gtk_widget_show (patheditor);
g_free (path);
g_object_set_data (G_OBJECT (dlg), "patheditor", patheditor);
gtk_widget_show (dlg);

View File

@ -163,27 +163,26 @@ extern fractalexplorerOBJ *current_obj;
extern fractalexplorerOBJ *pic_obj;
extern GtkWidget *delete_dialog;
GtkWidget * add_objects_list (void);
void plug_in_parse_fractalexplorer_path (void);
GtkWidget * add_objects_list (void);
/**********************************************************************
Global variables
*********************************************************************/
extern double xmin,
xmax,
ymin,
ymax;
extern double xbild,
ybild,
xdiff,
ydiff;
extern double x_press,
y_press;
extern double x_release,
y_release;
extern float cx;
extern float cy;
extern gdouble xmin;
extern gdouble xmax;
extern gdouble ymin;
extern gdouble ymax;
extern gdouble xbild;
extern gdouble ybild;
extern gdouble xdiff;
extern gdouble ydiff;
extern gdouble x_press;
extern gdouble y_press;
extern gdouble x_release;
extern gdouble y_release;
extern gfloat cx;
extern gfloat cy;
extern GimpDrawable *drawable;
extern gint tile_width,
tile_height;
@ -224,7 +223,7 @@ extern gdouble *gg;
extern int line_no;
extern gchar *filename;
extern clrmap colormap;
extern GList *fractalexplorer_path_list;
extern gchar *fractalexplorer_path;
extern GList *fractalexplorer_list;
extern GList *gradient_list;
extern gchar *tpath;

View File

@ -10,41 +10,41 @@
Global variables
*********************************************************************/
double xmin = -2,
xmax = 1,
ymin = -1.5,
ymax = 1.5;
double xbild,
ybild,
xdiff,
ydiff;
double x_press = -1.0,
y_press = -1.0;
double x_release = -1.0,
y_release = -1.0;
float cx = -0.75;
float cy = -0.2;
gdouble xmin = -2;
gdouble xmax = 1;
gdouble ymin = -1.5;
gdouble ymax = 1.5;
gdouble xbild;
gdouble ybild;
gdouble xdiff;
gdouble ydiff;
gdouble x_press = -1.0;
gdouble y_press = -1.0;
gdouble x_release = -1.0;
gdouble y_release = -1.0;
gfloat cx = -0.75;
gfloat cy = -0.2;
GimpDrawable *drawable;
gint tile_width,
tile_height;
gint img_width,
img_height,
img_bpp;
gint sel_x1,
sel_y1,
sel_x2,
sel_y2;
gint sel_width,
sel_height;
gint preview_width,
preview_height;
GimpTile *the_tile = NULL;
double cen_x,
cen_y;
double xpos,
ypos,
oldxpos = -1,
oldypos = -1;
gint tile_width;
gint tile_height;
gint img_width;
gint img_height;
gint img_bpp;
gint sel_x1;
gint sel_y1;
gint sel_x2;
gint sel_y2;
gint sel_width;
gint sel_height;
gint preview_width;
gint preview_height;
GimpTile *the_tile = NULL;
gdouble cen_x;
gdouble cen_y;
gdouble xpos;
gdouble ypos;
gdouble oldxpos = -1;
gdouble oldypos = -1;
GtkWidget *maindlg;
GtkWidget *logodlg;
GtkWidget *cmap_preview;
@ -53,19 +53,19 @@ GtkWidget *fractalexplorer_gtk_list;
GtkWidget *save_menu_item;
GtkWidget *fractalexplorer_op_menu;
GdkCursor *MyCursor;
int ready_now = FALSE;
gboolean ready_now = FALSE;
explorer_vals_t zooms[100];
DialogElements *elements = NULL;
int zoomindex = 1;
int zoommax = 1;
gint zoomindex = 1;
gint zoommax = 1;
gdouble *gg;
int line_no;
gint line_no;
gchar *filename;
clrmap colormap;
GList *fractalexplorer_path_list = NULL;
gchar *fractalexplorer_path = NULL;
GList *fractalexplorer_list = NULL;
GList *gradient_list = NULL;
gchar *tpath = NULL;
GList *gradient_list = NULL;
gchar *tpath = NULL;
fractalexplorerOBJ *fractalexplorer_obj_for_menu;
GList *rescan_list = NULL;

View File

@ -416,8 +416,8 @@ struct selection_option
};
static GList *gfig_path_list = NULL;
static GList *gfig_list = NULL;
static gchar *gfig_path = NULL;
static GList *gfig_list = NULL;
static gint line_no;
static gint poly_num_sides = 3; /* Default to three sided object */
@ -900,61 +900,39 @@ gfig_list_free_all (void)
gfig_list = NULL;
}
static void
gfig_list_load_one (const GimpDatafileData *file_data,
gpointer user_data)
{
GFigObj *gfig;
gfig = gfig_load (file_data->filename, file_data->basename);
if (gfig)
{
/* Read only ?*/
if (access (file_data->filename, W_OK))
gfig->obj_status |= GFIG_READONLY;
gfig_list_insert (gfig);
}
}
static void
gfig_list_load_all (GList *plist)
gfig_list_load_all (const gchar *path)
{
GFigObj *gfig;
GList *list;
gchar *path;
gchar *filename;
GDir *dir;
const gchar *dir_ent;
/* Make sure to clear any existing gfigs */
current_obj = pic_obj = NULL;
gfig_list_free_all ();
list = plist;
while (list)
gimp_datafiles_read_directories (path, G_FILE_TEST_EXISTS,
gfig_list_load_one,
NULL);
if (! gfig_list)
{
path = list->data;
list = list->next;
GFigObj *gfig;
/* Open directory */
dir = g_dir_open (path, 0, NULL);
if (!dir)
g_warning ("Error reading Gfig folder \"%s\"", path);
else
{
while ((dir_ent = g_dir_read_name (dir)))
{
filename = g_build_filename (path, dir_ent, NULL);
/* Check the file and see that it is not a sub-directory */
if (g_file_test (filename, G_FILE_TEST_IS_REGULAR))
{
gfig = gfig_load (filename, dir_ent);
if (gfig)
{
/* Read only ?*/
if (access (filename, W_OK))
gfig->obj_status |= GFIG_READONLY;
gfig_list_insert (gfig);
}
}
g_free (filename);
}
g_dir_close (dir);
}
}
if (!gfig_list)
{
/* lets have at least one! */
gfig = gfig_new ();
gfig->draw_name = g_strdup (_("First Gfig"));
@ -1472,13 +1450,16 @@ create_file_selection (GFigObj *obj,
{
gtk_file_selection_set_filename (GTK_FILE_SELECTION (window), tpath);
}
else if (gfig_path_list)
else if (gfig_path)
{
GList *list;
gchar *dir;
dir = gimp_path_get_user_writable_dir (gfig_path_list);
list = gimp_path_parse (gfig_path, 16, FALSE, 0);
dir = gimp_path_get_user_writable_dir (list);
gimp_path_free (list);
if (!dir)
if (! dir)
dir = g_strdup (gimp_directory ());
gtk_file_selection_set_filename (GTK_FILE_SELECTION (window), dir);
@ -1492,8 +1473,7 @@ create_file_selection (GFigObj *obj,
gtk_file_selection_set_filename (GTK_FILE_SELECTION (window), tmp);
}
if (!GTK_WIDGET_VISIBLE (window))
gtk_widget_show (window);
gtk_window_present (GTK_WINDOW (window));
}
static void
@ -3387,7 +3367,7 @@ add_objects_list (void)
gtk_widget_show (list);
/* Load saved objects */
gfig_list_load_all (gfig_path_list);
gfig_list_load_all (gfig_path);
/* Put list in */
build_list_items (list);
@ -3760,7 +3740,7 @@ gfig_dialog (void)
xxx = gdk_rgb_get_colormap ();
gfig_path_list = gimp_plug_in_parse_path ("gfig-path", "gfig");
gfig_path = gimp_plug_in_get_path ("gfig-path", "gfig");
/*cache_preview (); Get the preview image and store it also set has_alpha */
@ -4272,26 +4252,19 @@ gfig_rescan_ok_callback (GtkWidget *widget,
gpointer data)
{
GtkWidget *patheditor;
gchar *raw_path;
gtk_widget_set_sensitive (GTK_WIDGET (data), FALSE);
gimp_path_free (gfig_path_list);
gfig_path_list = NULL;
patheditor = GTK_WIDGET (g_object_get_data (G_OBJECT (data),
"patheditor"));
raw_path = gimp_path_editor_get_path (GIMP_PATH_EDITOR (patheditor));
g_free (gfig_path);
gfig_path = gimp_path_editor_get_path (GIMP_PATH_EDITOR (patheditor));
gfig_path_list = gimp_path_parse (raw_path, 16, FALSE, NULL);
g_free (raw_path);
if (gfig_path_list)
if (gfig_path)
{
clear_list_items (GTK_LIST (gfig_gtk_list));
gfig_list_load_all (gfig_path_list);
gfig_list_load_all (gfig_path);
build_list_items (gfig_gtk_list);
list_button_update (current_obj);
}
@ -4305,7 +4278,6 @@ gfig_rescan_list (void)
static GtkWidget *dlg = NULL;
GtkWidget *patheditor;
gchar *path;
if (dlg)
{
@ -4331,16 +4303,12 @@ gfig_rescan_list (void)
G_CALLBACK (gtk_widget_destroyed),
&dlg);
path = gimp_path_to_str (gfig_path_list);
patheditor = gimp_path_editor_new (_("Add Gfig Path"), path);
patheditor = gimp_path_editor_new (_("Add Gfig Path"), gfig_path);
gtk_container_set_border_width (GTK_CONTAINER (patheditor), 6);
gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dlg)->vbox), patheditor,
TRUE, TRUE, 0);
gtk_widget_show (patheditor);
g_free (path);
g_object_set_data (G_OBJECT (dlg), "patheditor", patheditor);
gtk_widget_show (dlg);

View File

@ -586,8 +586,8 @@ static GimpPixelFetcher *tk_write;
static GFlareDialog *dlg = NULL;
static GFlareEditor *ed = NULL;
static GList *gflares_list = NULL;
static gint num_gflares = 0;
static GList *gflare_path_list = NULL;
static gint num_gflares = 0;
static gchar *gflare_path = NULL;
static CalcParams calc;
static GList *gradient_menus;
static gchar **gradient_names = NULL;
@ -824,13 +824,13 @@ plugin_query (void)
{ GIMP_PDB_FLOAT, "asupsample_threshold", "Threshold for adaptive supersampling"}
};
gchar *help_string =
" This plug-in produces a lense flare effect using custom gradients."
" In interactive call, the user can edit his/her own favorite lense flare"
" (GFlare) and render it. Edited gflare is saved automatically to"
" the folder in gflare-path, if it is defined in gimprc."
" In non-interactive call, the user can only render one of GFlare"
" which has been stored in gflare-path already.";
const gchar *help_string =
"This plug-in produces a lense flare effect using custom gradients. "
"In interactive call, the user can edit his/her own favorite lense flare "
"(GFlare) and render it. Edited gflare is saved automatically to "
"the folder in gflare-path, if it is defined in gimprc. "
"In non-interactive call, the user can only render one of GFlare "
"which has been stored in gflare-path already.";
gimp_install_procedure ("plug_in_gflare",
"Produce lense flare effect using custom gradients",
@ -890,8 +890,7 @@ plugin_run (const gchar *name,
* Parse gflare path from gimprc and load gflares
*/
gflare_path_list =
gimp_plug_in_parse_path ("gflare-path", "gflare");
gflare_path = gimp_plug_in_get_path ("gflare-path", "gflare");
gflares_list_load_all ();
gimp_tile_cache_ntiles (drawable->width / gimp_tile_width () + 2);
@ -1185,11 +1184,13 @@ plugin_progress_func (gint y1,
*/
static GFlare *
gflare_new ()
gflare_new (void)
{
GFlare *gflare = g_new0 (GFlare, 1);
gflare->name = NULL;
gflare->name = NULL;
gflare->filename = NULL;
return gflare;
}
@ -1200,7 +1201,8 @@ gflare_new_with_default (const gchar *new_name)
}
static GFlare *
gflare_dup (const GFlare *src, const gchar *new_name)
gflare_dup (const GFlare *src,
const gchar *new_name)
{
GFlare *dest = g_new0 (GFlare, 1);
@ -1213,7 +1215,8 @@ gflare_dup (const GFlare *src, const gchar *new_name)
}
static void
gflare_copy (GFlare *dest, const GFlare *src)
gflare_copy (GFlare *dest,
const GFlare *src)
{
gchar *name, *filename;
@ -1238,7 +1241,8 @@ gflare_free (GFlare *gflare)
}
GFlare *
gflare_load (const gchar *filename, const gchar *name)
gflare_load (const gchar *filename,
const gchar *name)
{
FILE *fp;
GFlareFile *gf;
@ -1323,7 +1327,8 @@ gflare_load (const gchar *filename, const gchar *name)
}
static void
gflare_read_int (gint *intvar, GFlareFile *gf)
gflare_read_int (gint *intvar,
GFlareFile *gf)
{
if (gf->error)
return;
@ -1333,7 +1338,8 @@ gflare_read_int (gint *intvar, GFlareFile *gf)
}
static void
gflare_read_double (gdouble *dblvar, GFlareFile *gf)
gflare_read_double (gdouble *dblvar,
GFlareFile *gf)
{
gchar buf[30];
@ -1421,33 +1427,41 @@ gflare_save (GFlare *gflare)
if (gflare->filename == NULL)
{
if (gflare_path_list == NULL)
GList *list;
if (gflare_path == NULL)
{
if (!message_ok)
if (! message_ok)
{
gchar *gimprc = gimp_personal_rc_file ("gimprc");
gchar *gflare_path = g_strescape
("${gimp_dir}" G_DIR_SEPARATOR_S "gflare",
NULL);
gchar *dir = gimp_personal_rc_file ("gflare");
gchar *gimprc = gimp_personal_rc_file ("gimprc");
gchar *dir = gimp_personal_rc_file ("gflare");
gchar *gflare_dir;
gflare_dir =
g_strescape ("${gimp_dir}" G_DIR_SEPARATOR_S "gflare", NULL);
g_message (_("GFlare `%s' is not saved.\n"
"If you add a new entry in %s, like:\n"
"(gflare-path \"%s\")\n"
"and make a folder %s,\n"
"then you can save your own GFlare's into that folder."),
gflare->name, gimprc, gflare_path, dir);
"then you can save your own GFlares into that folder."),
gflare->name, gimprc, gflare_dir, dir);
g_free (gimprc);
g_free (gflare_path);
g_free (gflare_dir);
g_free (dir);
message_ok = TRUE;
}
return;
}
path = gimp_path_get_user_writable_dir (gflare_path_list);
list = gimp_path_parse (gflare_path, 16, FALSE, NULL);
path = gimp_path_get_user_writable_dir (list);
gimp_path_free (list);
if (!path)
if (! path)
path = g_strdup (gimp_directory ());
gflare->filename = g_build_filename (path, gflare->name, NULL);
@ -1502,7 +1516,8 @@ gflare_save (GFlare *gflare)
}
static void
gflare_write_gradient_name (GradientName name, FILE *fp)
gflare_write_gradient_name (GradientName name,
FILE *fp)
{
gchar enc[1024];
@ -1515,7 +1530,8 @@ gflare_write_gradient_name (GradientName name, FILE *fp)
}
static void
gflare_name_copy (gchar *dest, const gchar *src)
gflare_name_copy (gchar *dest,
const gchar *src)
{
strncpy (dest, src, GFLARE_NAME_MAX);
dest[GFLARE_NAME_MAX-1] = '\0';
@ -1528,7 +1544,8 @@ gflare_name_copy (gchar *dest, const gchar *src)
/*************************************************************************/
static gint
gflare_compare (const GFlare *flare1, const GFlare *flare2)
gflare_compare (const GFlare *flare1,
const GFlare *flare2)
{
return strcmp (flare1->name, flare2->name);
}
@ -1543,7 +1560,8 @@ gflares_list_insert (GFlare *gflare)
}
static gint
gflare_compare_name (const GFlare *flare, const gchar *name)
gflare_compare_name (const GFlare *flare,
const gchar *name)
{
return strcmp (flare->name, name);
}
@ -1590,50 +1608,27 @@ gflares_list_remove (GFlare *gflare)
/*
* Load all gflares, which are founded in gflare-path-list, into gflares_list.
*/
static void
gflares_list_load_one (const GimpDatafileData *file_data,
gpointer user_data)
{
GFlare *gflare;
gflare = gflare_load (file_data->filename, file_data->basename);
if (gflare)
gflares_list_insert (gflare);
}
static void
gflares_list_load_all (void)
{
GFlare *gflare;
GList *list;
gchar *path;
gchar *filename;
GDir *dir;
const gchar *dir_ent;
/* Make sure to clear any existing gflares */
gflares_list_free_all ();
list = gflare_path_list;
while (list)
{
path = list->data;
list = list->next;
/* Open directory */
dir = g_dir_open (path, 0, NULL);
if (!dir)
g_message (_("Error reading GFlare folder '%s'"), path);
else
{
while ((dir_ent = g_dir_read_name (dir)))
{
filename = g_build_filename (path, dir_ent, NULL);
/* Check the file and see that it is not a sub-directory */
if (g_file_test (filename, G_FILE_TEST_IS_REGULAR))
{
gflare = gflare_load (filename, dir_ent);
if (gflare)
gflares_list_insert (gflare);
}
g_free (filename);
} /* while */
g_dir_close (dir);
} /* else */
}
gimp_datafiles_read_directories (gflare_path, G_FILE_TEST_EXISTS,
gflares_list_load_one,
NULL);
}
static void
@ -1660,29 +1655,34 @@ gflares_list_free_all (void)
*/
static void
calc_init_params (GFlare *gflare, gint calc_type,
gdouble xcenter, gdouble ycenter,
gdouble radius, gdouble rotation, gdouble hue,
gdouble vangle, gdouble vlength)
calc_init_params (GFlare *gflare,
gint calc_type,
gdouble xcenter,
gdouble ycenter,
gdouble radius,
gdouble rotation,
gdouble hue,
gdouble vangle,
gdouble vlength)
{
calc.type = calc_type;
calc.gflare = gflare;
calc.xcenter = xcenter;
calc.ycenter = ycenter;
calc.radius = radius;
calc.rotation = rotation * G_PI / 180.0;
calc.hue = hue;
calc.vangle = vangle * G_PI / 180.0;
calc.vlength = radius * vlength / 100.0;
calc.glow_radius = radius * gflare->glow_size / 100.0;
calc.rays_radius = radius * gflare->rays_size / 100.0;
calc.sflare_radius = radius * gflare->sflare_size / 100.0;
calc.glow_rotation = (rotation + gflare->glow_rotation) * G_PI / 180.0;
calc.rays_rotation = (rotation + gflare->rays_rotation) * G_PI / 180.0;
calc.type = calc_type;
calc.gflare = gflare;
calc.xcenter = xcenter;
calc.ycenter = ycenter;
calc.radius = radius;
calc.rotation = rotation * G_PI / 180.0;
calc.hue = hue;
calc.vangle = vangle * G_PI / 180.0;
calc.vlength = radius * vlength / 100.0;
calc.glow_radius = radius * gflare->glow_size / 100.0;
calc.rays_radius = radius * gflare->rays_size / 100.0;
calc.sflare_radius = radius * gflare->sflare_size / 100.0;
calc.glow_rotation = (rotation + gflare->glow_rotation) * G_PI / 180.0;
calc.rays_rotation = (rotation + gflare->rays_rotation) * G_PI / 180.0;
calc.sflare_rotation = (rotation + gflare->sflare_rotation) * G_PI / 180.0;
calc.glow_opacity = gflare->glow_opacity * 255 / 100.0;
calc.rays_opacity = gflare->rays_opacity * 255 / 100.0;
calc.sflare_opacity = gflare->sflare_opacity * 255 / 100.0;
calc.glow_opacity = gflare->glow_opacity * 255 / 100.0;
calc.rays_opacity = gflare->rays_opacity * 255 / 100.0;
calc.sflare_opacity = gflare->sflare_opacity * 255 / 100.0;
calc.glow_bounds.x0 = calc.xcenter - calc.glow_radius - 0.1;
calc.glow_bounds.x1 = calc.xcenter + calc.glow_radius + 0.1;
@ -1694,9 +1694,9 @@ calc_init_params (GFlare *gflare, gint calc_type,
calc.rays_bounds.y1 = calc.ycenter + calc.rays_radius + 0.1;
/* Thanks to Marcelo Malheiros for this algorithm */
calc.rays_thinness = log (gflare->rays_thickness / 100.0) / log(0.8);
calc.rays_thinness = log (gflare->rays_thickness / 100.0) / log(0.8);
calc.rays_spike_mod = 1.0 / (2 * gflare->rays_nspikes);
calc.rays_spike_mod = 1.0 / (2 * gflare->rays_nspikes);
/*
Initialize part of sflare
@ -1710,21 +1710,21 @@ calc_init_params (GFlare *gflare, gint calc_type,
calc.sflare_factor = 1.0 / cos (calc.sflare_angle);
}
calc.glow_radial = NULL;
calc.glow_angular = NULL;
calc.glow_angular_size = NULL;
calc.rays_radial = NULL;
calc.rays_angular = NULL;
calc.rays_angular_size = NULL;
calc.sflare_radial = NULL;
calc.sflare_sizefac = NULL;
calc.glow_radial = NULL;
calc.glow_angular = NULL;
calc.glow_angular_size = NULL;
calc.rays_radial = NULL;
calc.rays_angular = NULL;
calc.rays_angular_size = NULL;
calc.sflare_radial = NULL;
calc.sflare_sizefac = NULL;
calc.sflare_probability = NULL;
calc.init = TRUE;
}
static int
calc_init_progress ()
calc_init_progress (void)
{
if (calc_sample_one_gradient ())
return TRUE;
@ -1737,7 +1737,7 @@ calc_init_progress ()
this routine is called during Calc initialization
this code is very messy... :( */
static int
calc_sample_one_gradient ()
calc_sample_one_gradient (void)
{
static struct {
guchar **values;
@ -1823,7 +1823,7 @@ calc_sample_one_gradient ()
}
static void
calc_place_sflare ()
calc_place_sflare (void)
{
GFlare *gflare;
CalcSFlare *sflare;
@ -1894,7 +1894,7 @@ calc_place_sflare ()
}
static void
calc_deinit ()
calc_deinit (void)
{
if (!calc.init)
{
@ -1931,7 +1931,7 @@ calc_deinit ()
* guchar pix[4]
*/
static void
calc_get_gradient(guchar *pix, guchar *gradient, gdouble pos)
calc_get_gradient (guchar *pix, guchar *gradient, gdouble pos)
{
gint ipos;
gdouble frac;
@ -2475,7 +2475,8 @@ ed_preview_calc_window (void)
}
static gboolean
dlg_preview_handle_event (GtkWidget *widget, GdkEvent *event)
dlg_preview_handle_event (GtkWidget *widget,
GdkEvent *event)
{
GdkEventButton *bevent;
gint bx, by, x, y;
@ -2517,7 +2518,7 @@ dlg_preview_handle_event (GtkWidget *widget, GdkEvent *event)
}
static void
dlg_preview_update ()
dlg_preview_update (void)
{
if (!dlg->init && dlg->update_preview)
{
@ -3905,7 +3906,7 @@ ed_put_gradient_menu (GtkWidget *table,
gchar *caption,
GradientMenu *gm)
{
GtkWidget *label;
GtkWidget *label;
label = gtk_label_new (caption);
gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5);
@ -3924,9 +3925,10 @@ ed_put_gradient_menu (GtkWidget *table,
}
static void
ed_mode_menu_callback (GtkWidget *widget, gpointer data)
ed_mode_menu_callback (GtkWidget *widget,
gpointer data)
{
GFlareMode *mode_var;
GFlareMode *mode_var;
mode_var = data;
*mode_var = (GFlareMode) gtk_object_get_user_data (GTK_OBJECT (widget));
@ -3935,7 +3937,8 @@ ed_mode_menu_callback (GtkWidget *widget, gpointer data)
}
static void
ed_gradient_menu_callback (const gchar *gradient_name, gpointer data)
ed_gradient_menu_callback (const gchar *gradient_name,
gpointer data)
{
gchar *dest_string = data;
@ -3954,9 +3957,10 @@ ed_shape_radio_callback (GtkWidget *widget,
}
static void
ed_ientry_callback (GtkWidget *widget, gpointer data)
ed_ientry_callback (GtkWidget *widget,
gpointer data)
{
gint new_val;
gint new_val;
new_val = atoi (gtk_entry_get_text (GTK_ENTRY (widget)));
*(gint *)data = new_val;
@ -3969,9 +3973,10 @@ ed_ientry_callback (GtkWidget *widget, gpointer data)
signal of changing pages of gtknotebook.
*/
static void
ed_page_map_callback (GtkWidget *widget, gpointer data)
ed_page_map_callback (GtkWidget *widget,
gpointer data)
{
gint page_num = GPOINTER_TO_INT (data);
gint page_num = GPOINTER_TO_INT (data);
DEBUG_PRINT(("ed_page_map_callback\n"));
@ -3981,7 +3986,7 @@ ed_page_map_callback (GtkWidget *widget, gpointer data)
static void
ed_preview_update ()
ed_preview_update (void)
{
if (ed->init)
return;

View File

@ -141,7 +141,8 @@ extern long nlength (LISP obj);
* Local Functions
*/
static void script_fu_load_script (GimpDatafileData *file_data);
static void script_fu_load_script (const GimpDatafileData *file_data,
gpointer user_data);
static gboolean script_fu_install_script (gpointer foo,
SFScript *script,
gpointer bar);
@ -660,7 +661,8 @@ script_fu_report_cc (gchar *command)
/* private functions */
static void
script_fu_load_script (GimpDatafileData *file_data)
script_fu_load_script (const GimpDatafileData *file_data,
gpointer user_data)
{
if (gimp_datafiles_check_extension (file_data->filename, ".scm"))
{

View File

@ -141,7 +141,8 @@ extern long nlength (LISP obj);
* Local Functions
*/
static void script_fu_load_script (GimpDatafileData *file_data);
static void script_fu_load_script (const GimpDatafileData *file_data,
gpointer user_data);
static gboolean script_fu_install_script (gpointer foo,
SFScript *script,
gpointer bar);
@ -660,7 +661,8 @@ script_fu_report_cc (gchar *command)
/* private functions */
static void
script_fu_load_script (GimpDatafileData *file_data)
script_fu_load_script (const GimpDatafileData *file_data,
gpointer user_data)
{
if (gimp_datafiles_check_extension (file_data->filename, ".scm"))
{