diff --git a/ChangeLog b/ChangeLog index a43c94af21..8b10f194ef 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2006-06-16 Sven Neumann + + * plug-ins/script-fu/script-fu-scripts.c (script_fu_add_script): + use a canonical name for the automatically added run-mode parameter. + Untabbified. + 2006-06-16 Sven Neumann * app/core/gimplist.c (gimp_list_new, gimp_list_new_weak): for diff --git a/plug-ins/script-fu/script-fu-scripts.c b/plug-ins/script-fu/script-fu-scripts.c index bed4736b97..60da61e4ef 100644 --- a/plug-ins/script-fu/script-fu-scripts.c +++ b/plug-ins/script-fu/script-fu-scripts.c @@ -215,8 +215,9 @@ script_fu_add_script (LISP a) script->num_args = nlength (a) / 3; args = g_new0 (GimpParamDef, script->num_args + 1); + args[0].type = GIMP_PDB_INT32; - args[0].name = "run_mode"; + args[0].name = "run-mode"; args[0].description = "Interactive, non-interactive"; script->arg_types = g_new0 (SFArgType, script->num_args); @@ -227,73 +228,73 @@ script_fu_add_script (LISP a) if (script->num_args > 0) { for (i = 0; i < script->num_args; i++) - { - if (a != NIL) - { - if (!TYPEP (car (a), tc_flonum)) - return my_err ("script-fu-register: argument types must be integer values", NIL); - script->arg_types[i] = get_c_long (car (a)); - a = cdr (a); - } - else - return my_err ("script-fu-register: missing type specifier", NIL); + { + if (a != NIL) + { + if (!TYPEP (car (a), tc_flonum)) + return my_err ("script-fu-register: argument types must be integer values", NIL); + script->arg_types[i] = get_c_long (car (a)); + a = cdr (a); + } + else + return my_err ("script-fu-register: missing type specifier", NIL); - if (a != NIL) - { - if (!TYPEP (car (a), tc_string)) - return my_err ("script-fu-register: argument labels must be strings", NIL); - script->arg_labels[i] = g_strdup (get_c_string (car (a))); - a = cdr (a); - } - else - return my_err ("script-fu-register: missing arguments label", NIL); + if (a != NIL) + { + if (!TYPEP (car (a), tc_string)) + return my_err ("script-fu-register: argument labels must be strings", NIL); + script->arg_labels[i] = g_strdup (get_c_string (car (a))); + a = cdr (a); + } + else + return my_err ("script-fu-register: missing arguments label", NIL); - if (a != NIL) - { - switch (script->arg_types[i]) - { - case SF_IMAGE: - case SF_DRAWABLE: - case SF_LAYER: - case SF_CHANNEL: - if (!TYPEP (car (a), tc_flonum)) - return my_err ("script-fu-register: drawable defaults must be integer values", NIL); + if (a != NIL) + { + switch (script->arg_types[i]) + { + case SF_IMAGE: + case SF_DRAWABLE: + case SF_LAYER: + case SF_CHANNEL: + if (!TYPEP (car (a), tc_flonum)) + return my_err ("script-fu-register: drawable defaults must be integer values", NIL); - script->arg_defaults[i].sfa_image = + script->arg_defaults[i].sfa_image = get_c_long (car (a)); - script->arg_values[i].sfa_image = + script->arg_values[i].sfa_image = script->arg_defaults[i].sfa_image; - switch (script->arg_types[i]) - { - case SF_IMAGE: - args[i + 1].type = GIMP_PDB_IMAGE; - args[i + 1].name = "image"; - break; + switch (script->arg_types[i]) + { + case SF_IMAGE: + args[i + 1].type = GIMP_PDB_IMAGE; + args[i + 1].name = "image"; + break; - case SF_DRAWABLE: - args[i + 1].type = GIMP_PDB_DRAWABLE; - args[i + 1].name = "drawable"; - break; + case SF_DRAWABLE: + args[i + 1].type = GIMP_PDB_DRAWABLE; + args[i + 1].name = "drawable"; + break; - case SF_LAYER: - args[i + 1].type = GIMP_PDB_LAYER; - args[i + 1].name = "layer"; - break; + case SF_LAYER: + args[i + 1].type = GIMP_PDB_LAYER; + args[i + 1].name = "layer"; + break; - case SF_CHANNEL: - args[i + 1].type = GIMP_PDB_CHANNEL; - args[i + 1].name = "channel"; - break; + case SF_CHANNEL: + args[i + 1].type = GIMP_PDB_CHANNEL; + args[i + 1].name = "channel"; + break; - default: - break; - } + default: + break; + } - args[i + 1].description = script->arg_labels[i]; - break; + args[i + 1].description = script->arg_labels[i]; + break; - case SF_COLOR: + case SF_COLOR: if (TYPEP (car (a), tc_string)) { if (! gimp_rgb_parse_css (&script->arg_defaults[i].sfa_color, @@ -302,7 +303,7 @@ script_fu_add_script (LISP a) gimp_rgb_set_alpha (&script->arg_defaults[i].sfa_color, 1.0); } - else if (TYPEP (car (a), tc_cons)) + else if (TYPEP (car (a), tc_cons)) { color_list = car (a); r = CLAMP (get_c_long (car (color_list)), 0, 255); @@ -319,243 +320,243 @@ script_fu_add_script (LISP a) return my_err ("script-fu-register: color defaults must be a list of 3 integers or a color name", NIL); } - script->arg_values[i].sfa_color = - script->arg_defaults[i].sfa_color; + script->arg_values[i].sfa_color = + script->arg_defaults[i].sfa_color; - args[i + 1].type = GIMP_PDB_COLOR; - args[i + 1].name = "color"; - args[i + 1].description = script->arg_labels[i]; - break; + args[i + 1].type = GIMP_PDB_COLOR; + args[i + 1].name = "color"; + args[i + 1].description = script->arg_labels[i]; + break; - case SF_TOGGLE: - if (!TYPEP (car (a), tc_flonum)) - return my_err ("script-fu-register: toggle default must be an integer value", NIL); + case SF_TOGGLE: + if (!TYPEP (car (a), tc_flonum)) + return my_err ("script-fu-register: toggle default must be an integer value", NIL); - script->arg_defaults[i].sfa_toggle = - (get_c_long (car (a))) ? TRUE : FALSE; - script->arg_values[i].sfa_toggle = - script->arg_defaults[i].sfa_toggle; + script->arg_defaults[i].sfa_toggle = + (get_c_long (car (a))) ? TRUE : FALSE; + script->arg_values[i].sfa_toggle = + script->arg_defaults[i].sfa_toggle; - args[i + 1].type = GIMP_PDB_INT32; - args[i + 1].name = "toggle"; - args[i + 1].description = script->arg_labels[i]; - break; + args[i + 1].type = GIMP_PDB_INT32; + args[i + 1].name = "toggle"; + args[i + 1].description = script->arg_labels[i]; + break; - case SF_VALUE: - if (!TYPEP (car (a), tc_string)) - return my_err ("script-fu-register: value defaults must be string values", NIL); + case SF_VALUE: + if (!TYPEP (car (a), tc_string)) + return my_err ("script-fu-register: value defaults must be string values", NIL); - script->arg_defaults[i].sfa_value = - g_strdup (get_c_string (car (a))); - script->arg_values[i].sfa_value = - g_strdup (script->arg_defaults[i].sfa_value); + script->arg_defaults[i].sfa_value = + g_strdup (get_c_string (car (a))); + script->arg_values[i].sfa_value = + g_strdup (script->arg_defaults[i].sfa_value); - args[i + 1].type = GIMP_PDB_STRING; - args[i + 1].name = "value"; - args[i + 1].description = script->arg_labels[i]; - break; + args[i + 1].type = GIMP_PDB_STRING; + args[i + 1].name = "value"; + args[i + 1].description = script->arg_labels[i]; + break; - case SF_STRING: + case SF_STRING: case SF_TEXT: - if (!TYPEP (car (a), tc_string)) - return my_err ("script-fu-register: string defaults must be string values", NIL); + if (!TYPEP (car (a), tc_string)) + return my_err ("script-fu-register: string defaults must be string values", NIL); - script->arg_defaults[i].sfa_value = - g_strdup (get_c_string (car (a))); - script->arg_values[i].sfa_value = - g_strdup (script->arg_defaults[i].sfa_value); + script->arg_defaults[i].sfa_value = + g_strdup (get_c_string (car (a))); + script->arg_values[i].sfa_value = + g_strdup (script->arg_defaults[i].sfa_value); - args[i + 1].type = GIMP_PDB_STRING; - args[i + 1].name = "string"; - args[i + 1].description = script->arg_labels[i]; - break; + args[i + 1].type = GIMP_PDB_STRING; + args[i + 1].name = "string"; + args[i + 1].description = script->arg_labels[i]; + break; - case SF_ADJUSTMENT: - if (!TYPEP (car (a), tc_cons)) - return my_err ("script-fu-register: adjustment defaults must be a list", NIL); + case SF_ADJUSTMENT: + if (!TYPEP (car (a), tc_cons)) + return my_err ("script-fu-register: adjustment defaults must be a list", NIL); - adj_list = car (a); - script->arg_defaults[i].sfa_adjustment.value = - get_c_double (car (adj_list)); - adj_list = cdr (adj_list); - script->arg_defaults[i].sfa_adjustment.lower = - get_c_double (car (adj_list)); - adj_list = cdr (adj_list); - script->arg_defaults[i].sfa_adjustment.upper = - get_c_double (car (adj_list)); - adj_list = cdr (adj_list); - script->arg_defaults[i].sfa_adjustment.step = - get_c_double (car (adj_list)); - adj_list = cdr (adj_list); - script->arg_defaults[i].sfa_adjustment.page = - get_c_double (car (adj_list)); - adj_list = cdr (adj_list); - script->arg_defaults[i].sfa_adjustment.digits = - get_c_long (car (adj_list)); - adj_list = cdr (adj_list); - script->arg_defaults[i].sfa_adjustment.type = - get_c_long (car (adj_list)); - script->arg_values[i].sfa_adjustment.adj = NULL; + adj_list = car (a); + script->arg_defaults[i].sfa_adjustment.value = + get_c_double (car (adj_list)); + adj_list = cdr (adj_list); + script->arg_defaults[i].sfa_adjustment.lower = + get_c_double (car (adj_list)); + adj_list = cdr (adj_list); + script->arg_defaults[i].sfa_adjustment.upper = + get_c_double (car (adj_list)); + adj_list = cdr (adj_list); + script->arg_defaults[i].sfa_adjustment.step = + get_c_double (car (adj_list)); + adj_list = cdr (adj_list); + script->arg_defaults[i].sfa_adjustment.page = + get_c_double (car (adj_list)); + adj_list = cdr (adj_list); + script->arg_defaults[i].sfa_adjustment.digits = + get_c_long (car (adj_list)); + adj_list = cdr (adj_list); + script->arg_defaults[i].sfa_adjustment.type = + get_c_long (car (adj_list)); + script->arg_values[i].sfa_adjustment.adj = NULL; - script->arg_values[i].sfa_adjustment.value = - script->arg_defaults[i].sfa_adjustment.value; + script->arg_values[i].sfa_adjustment.value = + script->arg_defaults[i].sfa_adjustment.value; - args[i + 1].type = GIMP_PDB_FLOAT; - args[i + 1].name = "value"; - args[i + 1].description = script->arg_labels[i]; - break; + args[i + 1].type = GIMP_PDB_FLOAT; + args[i + 1].name = "value"; + args[i + 1].description = script->arg_labels[i]; + break; - case SF_FILENAME: - if (!TYPEP (car (a), tc_string)) - return my_err ("script-fu-register: filename defaults must be string values", NIL); + case SF_FILENAME: + if (!TYPEP (car (a), tc_string)) + return my_err ("script-fu-register: filename defaults must be string values", NIL); /* fallthrough */ - case SF_DIRNAME: - if (!TYPEP (car (a), tc_string)) - return my_err ("script-fu-register: dirname defaults must be string values", NIL); + case SF_DIRNAME: + if (!TYPEP (car (a), tc_string)) + return my_err ("script-fu-register: dirname defaults must be string values", NIL); - script->arg_defaults[i].sfa_file.filename = - g_strdup (get_c_string (car (a))); + script->arg_defaults[i].sfa_file.filename = + g_strdup (get_c_string (car (a))); #ifdef G_OS_WIN32 - /* Replace POSIX slashes with Win32 backslashes. This - * is just so script-fus can be written with only - * POSIX directory separators. - */ - val = script->arg_defaults[i].sfa_file.filename; - while (*val) - { - if (*val == '/') - *val = '\\'; - val++; - } + /* Replace POSIX slashes with Win32 backslashes. This + * is just so script-fus can be written with only + * POSIX directory separators. + */ + val = script->arg_defaults[i].sfa_file.filename; + while (*val) + { + if (*val == '/') + *val = '\\'; + val++; + } #endif - script->arg_values[i].sfa_file.filename = - g_strdup (script->arg_defaults[i].sfa_file.filename); + script->arg_values[i].sfa_file.filename = + g_strdup (script->arg_defaults[i].sfa_file.filename); - args[i + 1].type = GIMP_PDB_STRING; - args[i + 1].name = (script->arg_types[i] == SF_FILENAME ? + args[i + 1].type = GIMP_PDB_STRING; + args[i + 1].name = (script->arg_types[i] == SF_FILENAME ? "filename" : "dirname"); - args[i + 1].description = script->arg_labels[i]; - break; + args[i + 1].description = script->arg_labels[i]; + break; - case SF_FONT: - if (!TYPEP (car (a), tc_string)) - return my_err ("script-fu-register: font defaults must be string values", NIL); + case SF_FONT: + if (!TYPEP (car (a), tc_string)) + return my_err ("script-fu-register: font defaults must be string values", NIL); - script->arg_defaults[i].sfa_font = + script->arg_defaults[i].sfa_font = g_strdup (get_c_string (car (a))); - script->arg_values[i].sfa_font = + script->arg_values[i].sfa_font = g_strdup (script->arg_defaults[i].sfa_font); - args[i + 1].type = GIMP_PDB_STRING; - args[i + 1].name = "font"; - args[i + 1].description = script->arg_labels[i]; - break; + args[i + 1].type = GIMP_PDB_STRING; + args[i + 1].name = "font"; + args[i + 1].description = script->arg_labels[i]; + break; - case SF_PALETTE: - if (!TYPEP (car (a), tc_string)) - return my_err ("script-fu-register: palette defaults must be string values", NIL); + case SF_PALETTE: + if (!TYPEP (car (a), tc_string)) + return my_err ("script-fu-register: palette defaults must be string values", NIL); - script->arg_defaults[i].sfa_palette = + script->arg_defaults[i].sfa_palette = g_strdup (get_c_string (car (a))); - script->arg_values[i].sfa_palette = + script->arg_values[i].sfa_palette = g_strdup (script->arg_defaults[i].sfa_palette); - args[i + 1].type = GIMP_PDB_STRING; - args[i + 1].name = "palette"; - args[i + 1].description = script->arg_labels[i]; - break; + args[i + 1].type = GIMP_PDB_STRING; + args[i + 1].name = "palette"; + args[i + 1].description = script->arg_labels[i]; + break; - case SF_PATTERN: - if (!TYPEP (car (a), tc_string)) - return my_err ("script-fu-register: pattern defaults must be string values", NIL); + case SF_PATTERN: + if (!TYPEP (car (a), tc_string)) + return my_err ("script-fu-register: pattern defaults must be string values", NIL); - script->arg_defaults[i].sfa_pattern = - g_strdup (get_c_string (car (a))); - script->arg_values[i].sfa_pattern = - g_strdup (script->arg_defaults[i].sfa_pattern); + script->arg_defaults[i].sfa_pattern = + g_strdup (get_c_string (car (a))); + script->arg_values[i].sfa_pattern = + g_strdup (script->arg_defaults[i].sfa_pattern); - args[i + 1].type = GIMP_PDB_STRING; - args[i + 1].name = "pattern"; - args[i + 1].description = script->arg_labels[i]; - break; + args[i + 1].type = GIMP_PDB_STRING; + args[i + 1].name = "pattern"; + args[i + 1].description = script->arg_labels[i]; + break; - case SF_BRUSH: - if (!TYPEP (car (a), tc_cons)) - return my_err ("script-fu-register: brush defaults must be a list", NIL); + case SF_BRUSH: + if (!TYPEP (car (a), tc_cons)) + return my_err ("script-fu-register: brush defaults must be a list", NIL); - brush_list = car (a); - script->arg_defaults[i].sfa_brush.name = - g_strdup (get_c_string (car (brush_list))); - script->arg_values[i].sfa_brush.name = - g_strdup (script->arg_defaults[i].sfa_brush.name); + brush_list = car (a); + script->arg_defaults[i].sfa_brush.name = + g_strdup (get_c_string (car (brush_list))); + script->arg_values[i].sfa_brush.name = + g_strdup (script->arg_defaults[i].sfa_brush.name); - brush_list = cdr (brush_list); - script->arg_defaults[i].sfa_brush.opacity = - get_c_double (car (brush_list)); - script->arg_values[i].sfa_brush.opacity = - script->arg_defaults[i].sfa_brush.opacity; + brush_list = cdr (brush_list); + script->arg_defaults[i].sfa_brush.opacity = + get_c_double (car (brush_list)); + script->arg_values[i].sfa_brush.opacity = + script->arg_defaults[i].sfa_brush.opacity; - brush_list = cdr (brush_list); - script->arg_defaults[i].sfa_brush.spacing = - get_c_long (car (brush_list)); - script->arg_values[i].sfa_brush.spacing = - script->arg_defaults[i].sfa_brush.spacing; + brush_list = cdr (brush_list); + script->arg_defaults[i].sfa_brush.spacing = + get_c_long (car (brush_list)); + script->arg_values[i].sfa_brush.spacing = + script->arg_defaults[i].sfa_brush.spacing; - brush_list = cdr (brush_list); - script->arg_defaults[i].sfa_brush.paint_mode = - get_c_long (car (brush_list)); - script->arg_values[i].sfa_brush.paint_mode = - script->arg_defaults[i].sfa_brush.paint_mode; + brush_list = cdr (brush_list); + script->arg_defaults[i].sfa_brush.paint_mode = + get_c_long (car (brush_list)); + script->arg_values[i].sfa_brush.paint_mode = + script->arg_defaults[i].sfa_brush.paint_mode; - args[i + 1].type = GIMP_PDB_STRING; - args[i + 1].name = "brush"; - args[i + 1].description = script->arg_labels[i]; - break; + args[i + 1].type = GIMP_PDB_STRING; + args[i + 1].name = "brush"; + args[i + 1].description = script->arg_labels[i]; + break; - case SF_GRADIENT: - if (!TYPEP (car (a), tc_string)) - return my_err ("script-fu-register: gradient defaults must be string values", NIL); + case SF_GRADIENT: + if (!TYPEP (car (a), tc_string)) + return my_err ("script-fu-register: gradient defaults must be string values", NIL); - script->arg_defaults[i].sfa_gradient = - g_strdup (get_c_string (car (a))); - script->arg_values[i].sfa_gradient = - g_strdup (script->arg_defaults[i].sfa_gradient); + script->arg_defaults[i].sfa_gradient = + g_strdup (get_c_string (car (a))); + script->arg_values[i].sfa_gradient = + g_strdup (script->arg_defaults[i].sfa_gradient); - args[i + 1].type = GIMP_PDB_STRING; - args[i + 1].name = "gradient"; - args[i + 1].description = script->arg_labels[i]; - break; + args[i + 1].type = GIMP_PDB_STRING; + args[i + 1].name = "gradient"; + args[i + 1].description = script->arg_labels[i]; + break; - case SF_OPTION: - if (!TYPEP (car (a), tc_cons)) - return my_err ("script-fu-register: option defaults must be a list", NIL); + case SF_OPTION: + if (!TYPEP (car (a), tc_cons)) + return my_err ("script-fu-register: option defaults must be a list", NIL); - for (option_list = car (a); - option_list; - option_list = cdr (option_list)) - { - script->arg_defaults[i].sfa_option.list = - g_slist_append (script->arg_defaults[i].sfa_option.list, - g_strdup (get_c_string (car (option_list)))); - } + for (option_list = car (a); + option_list; + option_list = cdr (option_list)) + { + script->arg_defaults[i].sfa_option.list = + g_slist_append (script->arg_defaults[i].sfa_option.list, + g_strdup (get_c_string (car (option_list)))); + } - script->arg_defaults[i].sfa_option.history = 0; - script->arg_values[i].sfa_option.history = 0; + script->arg_defaults[i].sfa_option.history = 0; + script->arg_values[i].sfa_option.history = 0; - args[i + 1].type = GIMP_PDB_INT32; - args[i + 1].name = "option"; - args[i + 1].description = script->arg_labels[i]; - break; + args[i + 1].type = GIMP_PDB_INT32; + args[i + 1].name = "option"; + args[i + 1].description = script->arg_labels[i]; + break; - case SF_ENUM: - if (!TYPEP (car (a), tc_cons)) - return my_err ("script-fu-register: enum defaults must be a list", NIL); + case SF_ENUM: + if (!TYPEP (car (a), tc_cons)) + return my_err ("script-fu-register: enum defaults must be a list", NIL); option_list = car (a); if (!TYPEP (car (option_list), tc_string)) - return my_err ("script-fu-register: first element in enum defaults must be a type-name", NIL); + return my_err ("script-fu-register: first element in enum defaults must be a type-name", NIL); val = get_c_string (car (option_list)); if (g_str_has_prefix (val, "Gimp")) @@ -574,7 +575,7 @@ script_fu_add_script (LISP a) option_list = cdr (option_list); if (!TYPEP (car (option_list), tc_string)) - return my_err ("script-fu-register: second element in enum defaults must be a string", NIL); + return my_err ("script-fu-register: second element in enum defaults must be a string", NIL); enum_value = g_enum_get_value_by_nick (g_type_class_peek (enum_type), @@ -583,23 +584,23 @@ script_fu_add_script (LISP a) script->arg_defaults[i].sfa_enum.history = script->arg_values[i].sfa_enum.history = enum_value->value; - args[i + 1].type = GIMP_PDB_INT32; - args[i + 1].name = "enum"; - args[i + 1].description = script->arg_labels[i]; - break; + args[i + 1].type = GIMP_PDB_INT32; + args[i + 1].name = "enum"; + args[i + 1].description = script->arg_labels[i]; + break; - default: - break; - } + default: + break; + } - a = cdr (a); - } - else + a = cdr (a); + } + else { return my_err ("script-fu-register: missing default argument", NIL); } - } + } } script->args = args; @@ -653,7 +654,7 @@ void script_fu_error_msg (const gchar *command) { g_message (_("Error while executing\n%s\n%s"), - command, siod_get_error_msg ()); + command, siod_get_error_msg ()); } @@ -691,8 +692,8 @@ script_fu_load_script (const GimpDatafileData *file_data, */ static gboolean script_fu_install_script (gpointer foo G_GNUC_UNUSED, - GList *scripts, - gpointer bar G_GNUC_UNUSED) + GList *scripts, + gpointer bar G_GNUC_UNUSED) { GList *list; @@ -739,8 +740,8 @@ script_fu_install_menu (SFMenu *menu) */ static gboolean script_fu_remove_script (gpointer foo G_GNUC_UNUSED, - GList *scripts, - gpointer bar G_GNUC_UNUSED) + GList *scripts, + gpointer bar G_GNUC_UNUSED) { GList *list; @@ -758,10 +759,10 @@ script_fu_remove_script (gpointer foo G_GNUC_UNUSED, static void script_fu_script_proc (const gchar *name, - gint nparams, - const GimpParam *params, - gint *nreturn_vals, - GimpParam **return_vals) + gint nparams, + const GimpParam *params, + gint *nreturn_vals, + GimpParam **return_vals) { static GimpParam values[1]; GimpPDBStatusType status = GIMP_PDB_SUCCESS; @@ -778,47 +779,47 @@ script_fu_script_proc (const gchar *name, else { if (script->num_args == 0) - run_mode = GIMP_RUN_NONINTERACTIVE; + run_mode = GIMP_RUN_NONINTERACTIVE; switch (run_mode) - { - case GIMP_RUN_INTERACTIVE: - case GIMP_RUN_WITH_LAST_VALS: - /* Determine whether the script is image based (runs on an image). + { + case GIMP_RUN_INTERACTIVE: + case GIMP_RUN_WITH_LAST_VALS: + /* Determine whether the script is image based (runs on an image). * When being called from an image, nparams is 3, otherwise it's 1. */ - if (nparams == 3 && script->num_args >= 2) - { - script->arg_values[0].sfa_image = params[1].data.d_image; - script->arg_values[1].sfa_drawable = params[2].data.d_drawable; - script->image_based = TRUE; - } - else + if (nparams == 3 && script->num_args >= 2) + { + script->arg_values[0].sfa_image = params[1].data.d_image; + script->arg_values[1].sfa_drawable = params[2].data.d_drawable; + script->image_based = TRUE; + } + else { script->image_based = FALSE; } - /* First acquire information with a dialog */ - /* Skip this part if the script takes no parameters */ - min_args = (script->image_based) ? 2 : 0; - if (script->num_args > min_args) - { - script_fu_interface (script); - break; - } - /* else fallthrough */ + /* First acquire information with a dialog */ + /* Skip this part if the script takes no parameters */ + min_args = (script->image_based) ? 2 : 0; + if (script->num_args > min_args) + { + script_fu_interface (script); + break; + } + /* else fallthrough */ - case GIMP_RUN_NONINTERACTIVE: - /* Make sure all the arguments are there! */ - if (nparams != (script->num_args + 1)) + case GIMP_RUN_NONINTERACTIVE: + /* Make sure all the arguments are there! */ + if (nparams != (script->num_args + 1)) status = GIMP_PDB_CALLING_ERROR; - if (status == GIMP_PDB_SUCCESS) - { + if (status == GIMP_PDB_SUCCESS) + { GString *s; - gchar *command; - gchar buffer[G_ASCII_DTOSTR_BUF_SIZE]; - gint i; + gchar *command; + gchar buffer[G_ASCII_DTOSTR_BUF_SIZE]; + gint i; s = g_string_new ("("); g_string_append (s, script->script_name); @@ -898,17 +899,17 @@ script_fu_script_proc (const gchar *name, command = g_string_free (s, FALSE); - /* run the command through the interpreter */ - if (repl_c_string (command, 0, 0, 1) != 0) - script_fu_error_msg (command); + /* run the command through the interpreter */ + if (repl_c_string (command, 0, 0, 1) != 0) + script_fu_error_msg (command); - g_free (command); - } - break; + g_free (command); + } + break; - default: - break; - } + default: + break; + } } *nreturn_vals = 1; @@ -921,8 +922,8 @@ script_fu_script_proc (const gchar *name, /* this is a GTraverseFunction */ static gboolean script_fu_lookup_script (gpointer *foo G_GNUC_UNUSED, - GList *scripts, - gconstpointer *name) + GList *scripts, + gconstpointer *name) { GList *list;