gimp r26993 - in trunk: . plug-ins/script-fu
- From: mitch svn gnome org
- To: svn-commits-list gnome org
- Subject: gimp r26993 - in trunk: . plug-ins/script-fu
- Date: Thu, 18 Sep 2008 13:10:07 +0000 (UTC)
Author: mitch
Date: Thu Sep 18 13:10:07 2008
New Revision: 26993
URL: http://svn.gnome.org/viewvc/gimp?rev=26993&view=rev
Log:
2008-09-18 Michael Natterer <mitch gimp org>
* plug-ins/script-fu/script-fu-script.[ch]: add new functions
script_fu_script_collect_standard_args(),
script_fu_script_get_command() and
script_fu_script_get_command_from_params().
* plug-ins/script-fu/script-fu-scripts.c: remove the resp. code
here and use above functions instead.
* plug-ins/script-fu/script-fu-interface.c (script_fu_ok): changed
loop over args to only copy all widget content into the script's
values and then call script_fu_script_get_command().
Modified:
trunk/ChangeLog
trunk/plug-ins/script-fu/script-fu-interface.c
trunk/plug-ins/script-fu/script-fu-script.c
trunk/plug-ins/script-fu/script-fu-script.h
trunk/plug-ins/script-fu/script-fu-scripts.c
Modified: trunk/plug-ins/script-fu/script-fu-interface.c
==============================================================================
--- trunk/plug-ins/script-fu/script-fu-interface.c (original)
+++ trunk/plug-ins/script-fu/script-fu-interface.c Thu Sep 18 13:10:07 2008
@@ -30,6 +30,7 @@
#include "script-fu-interface.h"
#include "script-fu-scripts.h"
+#include "script-fu-script.h"
#include "script-fu-intl.h"
@@ -770,22 +771,15 @@
static void
script_fu_ok (SFScript *script)
{
- gchar *escaped;
- GString *s, *output;
+ GString *output;
gchar *command;
- gchar buffer[G_ASCII_DTOSTR_BUF_SIZE];
gint i;
- s = g_string_new ("(");
- g_string_append (s, script->name);
-
for (i = 0; i < script->n_args; i++)
{
SFArgValue *arg_value = &script->args[i].value;
GtkWidget *widget = sf_interface->widgets[i];
- g_string_append_c (s, ' ');
-
switch (script->args[i].type)
{
case SF_IMAGE:
@@ -794,39 +788,15 @@
case SF_CHANNEL:
case SF_VECTORS:
case SF_DISPLAY:
- g_string_append_printf (s, "%d", arg_value->sfa_image);
- break;
-
case SF_COLOR:
- {
- guchar r, g, b;
-
- gimp_rgb_get_uchar (&arg_value->sfa_color, &r, &g, &b);
- g_string_append_printf (s, "'(%d %d %d)",
- (gint) r, (gint) g, (gint) b);
- }
- break;
-
case SF_TOGGLE:
- g_string_append (s, arg_value->sfa_toggle ? "TRUE" : "FALSE");
break;
case SF_VALUE:
- g_free (arg_value->sfa_value);
- arg_value->sfa_value =
- g_strdup (gtk_entry_get_text (GTK_ENTRY (widget)));
-
- g_string_append (s, arg_value->sfa_value);
- break;
-
case SF_STRING:
g_free (arg_value->sfa_value);
arg_value->sfa_value =
g_strdup (gtk_entry_get_text (GTK_ENTRY (widget)));
-
- escaped = script_fu_strescape (arg_value->sfa_value);
- g_string_append_printf (s, "\"%s\"", escaped);
- g_free (escaped);
break;
case SF_TEXT:
@@ -845,66 +815,24 @@
arg_value->sfa_value = gtk_text_buffer_get_text (buffer,
&start, &end,
FALSE);
-
- escaped = script_fu_strescape (arg_value->sfa_value);
- g_string_append_printf (s, "\"%s\"", escaped);
- g_free (escaped);
}
break;
case SF_ADJUSTMENT:
- g_ascii_dtostr (buffer, sizeof (buffer),
- arg_value->sfa_adjustment.value);
- g_string_append (s, buffer);
- break;
-
case SF_FILENAME:
case SF_DIRNAME:
- escaped = script_fu_strescape (arg_value->sfa_file.filename);
- g_string_append_printf (s, "\"%s\"", escaped);
- g_free (escaped);
- break;
-
case SF_FONT:
- g_string_append_printf (s, "\"%s\"", arg_value->sfa_font);
- break;
-
case SF_PALETTE:
- g_string_append_printf (s, "\"%s\"", arg_value->sfa_palette);
- break;
-
case SF_PATTERN:
- g_string_append_printf (s, "\"%s\"", arg_value->sfa_pattern);
- break;
-
case SF_GRADIENT:
- g_string_append_printf (s, "\"%s\"", arg_value->sfa_gradient);
- break;
-
case SF_BRUSH:
- g_ascii_dtostr (buffer, sizeof (buffer),
- arg_value->sfa_brush.opacity);
-
- g_string_append_printf (s, "'(\"%s\" %s %d %d)",
- arg_value->sfa_brush.name,
- buffer,
- arg_value->sfa_brush.spacing,
- arg_value->sfa_brush.paint_mode);
- break;
-
case SF_OPTION:
- g_string_append_printf (s, "%d", arg_value->sfa_option.history);
- break;
-
case SF_ENUM:
- g_string_append_printf (s, "%d", arg_value->sfa_enum.history);
break;
}
}
- g_string_append_c (s, ')');
-
- command = g_string_free (s, FALSE);
+ command = script_fu_script_get_command (script);
/* run the command through the interpreter */
output = g_string_new (NULL);
Modified: trunk/plug-ins/script-fu/script-fu-script.c
==============================================================================
--- trunk/plug-ins/script-fu/script-fu-script.c (original)
+++ trunk/plug-ins/script-fu/script-fu-script.c Thu Sep 18 13:10:07 2008
@@ -23,9 +23,23 @@
#include <libgimp/gimp.h>
#include <libgimp/gimpui.h>
+#include "tinyscheme/scheme-private.h"
+
#include "script-fu-types.h"
#include "script-fu-script.h"
+#include "script-fu-scripts.h"
+
+
+/*
+ * Local Functions
+ */
+
+static gboolean script_fu_script_param_init (SFScript *script,
+ gint nparams,
+ const GimpParam *params,
+ SFArgType type,
+ gint n);
/*
@@ -309,3 +323,336 @@
gimp_uninstall_temp_proc (script->name);
}
+
+gint
+script_fu_script_collect_standard_args (SFScript *script,
+ gint n_params,
+ const GimpParam *params)
+{
+ gint params_consumed = 0;
+
+ g_return_val_if_fail (script != NULL, 0);
+
+ /* the first parameter may be a DISPLAY id */
+ if (script_fu_script_param_init (script,
+ n_params, params, SF_DISPLAY,
+ params_consumed))
+ {
+ params_consumed++;
+ }
+
+ /* an IMAGE id may come first or after the DISPLAY id */
+ if (script_fu_script_param_init (script,
+ n_params, params, SF_IMAGE,
+ params_consumed))
+ {
+ params_consumed++;
+
+ /* and may be followed by a DRAWABLE, LAYER, CHANNEL or
+ * VECTORS id
+ */
+ if (script_fu_script_param_init (script,
+ n_params, params, SF_DRAWABLE,
+ params_consumed) ||
+ script_fu_script_param_init (script,
+ n_params, params, SF_LAYER,
+ params_consumed) ||
+ script_fu_script_param_init (script,
+ n_params, params, SF_CHANNEL,
+ params_consumed) ||
+ script_fu_script_param_init (script,
+ n_params, params, SF_VECTORS,
+ params_consumed))
+ {
+ params_consumed++;
+ }
+ }
+
+ return params_consumed;
+}
+
+gchar *
+script_fu_script_get_command (SFScript *script)
+{
+ GString *s;
+ gint i;
+
+ g_return_val_if_fail (script != NULL, NULL);
+
+ s = g_string_new ("(");
+ g_string_append (s, script->name);
+
+ for (i = 0; i < script->n_args; i++)
+ {
+ SFArgValue *arg_value = &script->args[i].value;
+
+ g_string_append_c (s, ' ');
+
+ switch (script->args[i].type)
+ {
+ case SF_IMAGE:
+ case SF_DRAWABLE:
+ case SF_LAYER:
+ case SF_CHANNEL:
+ case SF_VECTORS:
+ case SF_DISPLAY:
+ g_string_append_printf (s, "%d", arg_value->sfa_image);
+ break;
+
+ case SF_COLOR:
+ {
+ guchar r, g, b;
+
+ gimp_rgb_get_uchar (&arg_value->sfa_color, &r, &g, &b);
+ g_string_append_printf (s, "'(%d %d %d)",
+ (gint) r, (gint) g, (gint) b);
+ }
+ break;
+
+ case SF_TOGGLE:
+ g_string_append (s, arg_value->sfa_toggle ? "TRUE" : "FALSE");
+ break;
+
+ case SF_VALUE:
+ g_string_append (s, arg_value->sfa_value);
+ break;
+
+ case SF_STRING:
+ case SF_TEXT:
+ {
+ gchar *tmp;
+
+ tmp = script_fu_strescape (arg_value->sfa_value);
+ g_string_append_printf (s, "\"%s\"", tmp);
+ g_free (tmp);
+ }
+ break;
+
+ case SF_ADJUSTMENT:
+ {
+ gchar buffer[G_ASCII_DTOSTR_BUF_SIZE];
+
+ g_ascii_dtostr (buffer, sizeof (buffer),
+ arg_value->sfa_adjustment.value);
+ g_string_append (s, buffer);
+ }
+ break;
+
+ case SF_FILENAME:
+ case SF_DIRNAME:
+ {
+ gchar *tmp;
+
+ tmp = script_fu_strescape (arg_value->sfa_file.filename);
+ g_string_append_printf (s, "\"%s\"", tmp);
+ g_free (tmp);
+ }
+ break;
+
+ case SF_FONT:
+ g_string_append_printf (s, "\"%s\"", arg_value->sfa_font);
+ break;
+
+ case SF_PALETTE:
+ g_string_append_printf (s, "\"%s\"", arg_value->sfa_palette);
+ break;
+
+ case SF_PATTERN:
+ g_string_append_printf (s, "\"%s\"", arg_value->sfa_pattern);
+ break;
+
+ case SF_GRADIENT:
+ g_string_append_printf (s, "\"%s\"", arg_value->sfa_gradient);
+ break;
+
+ case SF_BRUSH:
+ {
+ gchar buffer[G_ASCII_DTOSTR_BUF_SIZE];
+
+ g_ascii_dtostr (buffer, sizeof (buffer),
+ arg_value->sfa_brush.opacity);
+ g_string_append_printf (s, "'(\"%s\" %s %d %d)",
+ arg_value->sfa_brush.name,
+ buffer,
+ arg_value->sfa_brush.spacing,
+ arg_value->sfa_brush.paint_mode);
+ }
+ break;
+
+ case SF_OPTION:
+ g_string_append_printf (s, "%d", arg_value->sfa_option.history);
+ break;
+
+ case SF_ENUM:
+ g_string_append_printf (s, "%d", arg_value->sfa_enum.history);
+ break;
+ }
+ }
+
+ g_string_append_c (s, ')');
+
+ return g_string_free (s, FALSE);
+}
+
+gchar *
+script_fu_script_get_command_from_params (SFScript *script,
+ const GimpParam *params)
+{
+ GString *s;
+ gint i;
+
+ g_return_val_if_fail (script != NULL, NULL);
+
+ s = g_string_new ("(");
+ g_string_append (s, script->name);
+
+ for (i = 0; i < script->n_args; i++)
+ {
+ const GimpParam *param = ¶ms[i + 1];
+
+ g_string_append_c (s, ' ');
+
+ switch (script->args[i].type)
+ {
+ case SF_IMAGE:
+ case SF_DRAWABLE:
+ case SF_LAYER:
+ case SF_CHANNEL:
+ case SF_VECTORS:
+ case SF_DISPLAY:
+ g_string_append_printf (s, "%d", param->data.d_int32);
+ break;
+
+ case SF_COLOR:
+ {
+ guchar r, g, b;
+
+ gimp_rgb_get_uchar (¶m->data.d_color, &r, &g, &b);
+ g_string_append_printf (s, "'(%d %d %d)",
+ (gint) r, (gint) g, (gint) b);
+ }
+ break;
+
+ case SF_TOGGLE:
+ g_string_append_printf (s, (param->data.d_int32 ? "TRUE" : "FALSE"));
+ break;
+
+ case SF_VALUE:
+ g_string_append (s, param->data.d_string);
+ break;
+
+ case SF_STRING:
+ case SF_TEXT:
+ case SF_FILENAME:
+ case SF_DIRNAME:
+ {
+ gchar *tmp;
+
+ tmp = script_fu_strescape (param->data.d_string);
+ g_string_append_printf (s, "\"%s\"", tmp);
+ g_free (tmp);
+ }
+ break;
+
+ case SF_ADJUSTMENT:
+ {
+ gchar buffer[G_ASCII_DTOSTR_BUF_SIZE];
+
+ g_ascii_dtostr (buffer, sizeof (buffer), param->data.d_float);
+ g_string_append (s, buffer);
+ }
+ break;
+
+ case SF_FONT:
+ case SF_PALETTE:
+ case SF_PATTERN:
+ case SF_GRADIENT:
+ case SF_BRUSH:
+ g_string_append_printf (s, "\"%s\"", param->data.d_string);
+ break;
+
+ case SF_OPTION:
+ case SF_ENUM:
+ g_string_append_printf (s, "%d", param->data.d_int32);
+ break;
+ }
+ }
+
+ g_string_append_c (s, ')');
+
+ return g_string_free (s, FALSE);
+}
+
+
+/*
+ * Local Functions
+ */
+
+static gboolean
+script_fu_script_param_init (SFScript *script,
+ gint nparams,
+ const GimpParam *params,
+ SFArgType type,
+ gint n)
+{
+ SFArg *arg = &script->args[n];
+
+ if (script->n_args > n && arg->type == type && nparams > n + 1)
+ {
+ switch (type)
+ {
+ case SF_IMAGE:
+ if (params[n + 1].type == GIMP_PDB_IMAGE)
+ {
+ arg->value.sfa_image = params[n + 1].data.d_image;
+ return TRUE;
+ }
+ break;
+
+ case SF_DRAWABLE:
+ if (params[n + 1].type == GIMP_PDB_DRAWABLE)
+ {
+ arg->value.sfa_drawable = params[n + 1].data.d_drawable;
+ return TRUE;
+ }
+ break;
+
+ case SF_LAYER:
+ if (params[n + 1].type == GIMP_PDB_LAYER)
+ {
+ arg->value.sfa_layer = params[n + 1].data.d_layer;
+ return TRUE;
+ }
+ break;
+
+ case SF_CHANNEL:
+ if (params[n + 1].type == GIMP_PDB_CHANNEL)
+ {
+ arg->value.sfa_channel = params[n + 1].data.d_channel;
+ return TRUE;
+ }
+ break;
+
+ case SF_VECTORS:
+ if (params[n + 1].type == GIMP_PDB_VECTORS)
+ {
+ arg->value.sfa_vectors = params[n + 1].data.d_vectors;
+ return TRUE;
+ }
+ break;
+
+ case SF_DISPLAY:
+ if (params[n + 1].type == GIMP_PDB_DISPLAY)
+ {
+ arg->value.sfa_display = params[n + 1].data.d_display;
+ return TRUE;
+ }
+ break;
+
+ default:
+ break;
+ }
+ }
+
+ return FALSE;
+}
Modified: trunk/plug-ins/script-fu/script-fu-script.h
==============================================================================
--- trunk/plug-ins/script-fu/script-fu-script.h (original)
+++ trunk/plug-ins/script-fu/script-fu-script.h Thu Sep 18 13:10:07 2008
@@ -20,19 +20,27 @@
#define __SCRIPT_FU_SCRIPT_H__
-SFScript * script_fu_script_new (const gchar *name,
- const gchar *menu_path,
- const gchar *blurb,
- const gchar *author,
- const gchar *copyright,
- const gchar *date,
- const gchar *image_types,
- gint n_args);
-void script_fu_script_free (SFScript *script);
-
-void script_fu_script_install_proc (SFScript *script,
- GimpRunProc run_proc);
-void script_fu_script_uninstall_proc (SFScript *script);
+SFScript * script_fu_script_new (const gchar *name,
+ const gchar *menu_path,
+ const gchar *blurb,
+ const gchar *author,
+ const gchar *copyright,
+ const gchar *date,
+ const gchar *image_types,
+ gint n_args);
+void script_fu_script_free (SFScript *script);
+
+void script_fu_script_install_proc (SFScript *script,
+ GimpRunProc run_proc);
+void script_fu_script_uninstall_proc (SFScript *script);
+
+gint script_fu_script_collect_standard_args (SFScript *script,
+ gint n_params,
+ const GimpParam *params);
+
+gchar * script_fu_script_get_command (SFScript *script);
+gchar * script_fu_script_get_command_from_params (SFScript *script,
+ const GimpParam *params);
#endif /* __SCRIPT_FU_SCRIPT__ */
Modified: trunk/plug-ins/script-fu/script-fu-scripts.c
==============================================================================
--- trunk/plug-ins/script-fu/script-fu-scripts.c (original)
+++ trunk/plug-ins/script-fu/script-fu-scripts.c Thu Sep 18 13:10:07 2008
@@ -650,8 +650,12 @@
GList *list;
for (list = scripts; list; list = g_list_next (list))
- script_fu_script_install_proc (list->data,
- script_fu_script_proc);
+ {
+ SFScript *script = list->data;
+
+ script_fu_script_install_proc (script,
+ script_fu_script_proc);
+ }
return FALSE;
}
@@ -688,119 +692,6 @@
return FALSE;
}
-
-static gboolean
-script_fu_param_init (SFScript *script,
- gint nparams,
- const GimpParam *params,
- SFArgType type,
- gint n)
-{
- SFArg *arg = &script->args[n];
-
- if (script->n_args > n && arg->type == type && nparams > n + 1)
- {
- switch (type)
- {
- case SF_IMAGE:
- if (params[n + 1].type == GIMP_PDB_IMAGE)
- {
- arg->value.sfa_image = params[n + 1].data.d_image;
- return TRUE;
- }
- break;
-
- case SF_DRAWABLE:
- if (params[n + 1].type == GIMP_PDB_DRAWABLE)
- {
- arg->value.sfa_drawable = params[n + 1].data.d_drawable;
- return TRUE;
- }
- break;
-
- case SF_LAYER:
- if (params[n + 1].type == GIMP_PDB_LAYER)
- {
- arg->value.sfa_layer = params[n + 1].data.d_layer;
- return TRUE;
- }
- break;
-
- case SF_CHANNEL:
- if (params[n + 1].type == GIMP_PDB_CHANNEL)
- {
- arg->value.sfa_channel = params[n + 1].data.d_channel;
- return TRUE;
- }
- break;
-
- case SF_VECTORS:
- if (params[n + 1].type == GIMP_PDB_VECTORS)
- {
- arg->value.sfa_vectors = params[n + 1].data.d_vectors;
- return TRUE;
- }
- break;
-
- case SF_DISPLAY:
- if (params[n + 1].type == GIMP_PDB_DISPLAY)
- {
- arg->value.sfa_display = params[n + 1].data.d_display;
- return TRUE;
- }
- break;
-
- default:
- break;
- }
- }
-
- return FALSE;
-}
-
-static gint
-script_fu_collect_standard_args (SFScript *script,
- gint nparams,
- const GimpParam *params)
-{
- gint params_consumed = 0;
-
- /* the first parameter may be a DISPLAY id */
- if (script_fu_param_init (script,
- nparams, params, SF_DISPLAY, params_consumed))
- {
- params_consumed++;
- }
-
- /* an IMAGE id may come first or after the DISPLAY id */
- if (script_fu_param_init (script,
- nparams, params, SF_IMAGE, params_consumed))
- {
- params_consumed++;
-
- /* and may be followed by a DRAWABLE, LAYER, CHANNEL or
- * VECTORS id
- */
- if (script_fu_param_init (script,
- nparams, params, SF_DRAWABLE,
- params_consumed) ||
- script_fu_param_init (script,
- nparams, params, SF_LAYER,
- params_consumed) ||
- script_fu_param_init (script,
- nparams, params, SF_CHANNEL,
- params_consumed) ||
- script_fu_param_init (script,
- nparams, params, SF_VECTORS,
- params_consumed))
- {
- params_consumed++;
- }
- }
-
- return params_consumed;
-}
-
static void
script_fu_script_proc (const gchar *name,
gint nparams,
@@ -836,8 +727,8 @@
gint min_args = 0;
/* First, try to collect the standard script arguments... */
- min_args = script_fu_collect_standard_args (script,
- nparams, params);
+ min_args = script_fu_script_collect_standard_args (script,
+ nparams, params);
/* ...then acquire the rest of arguments (if any) with a dialog */
if (script->n_args > min_args)
@@ -857,91 +748,10 @@
if (status == GIMP_PDB_SUCCESS)
{
- GString *s;
- gchar *command;
- gint i;
-
- s = g_string_new ("(");
- g_string_append (s, script->name);
-
- for (i = 0; i < script->n_args; i++)
- {
- const GimpParam *param = ¶ms[i + 1];
-
- g_string_append_c (s, ' ');
-
- switch (script->args[i].type)
- {
- case SF_IMAGE:
- case SF_DRAWABLE:
- case SF_LAYER:
- case SF_CHANNEL:
- case SF_VECTORS:
- case SF_DISPLAY:
- g_string_append_printf (s, "%d", param->data.d_int32);
- break;
-
- case SF_COLOR:
- {
- guchar r, g, b;
-
- gimp_rgb_get_uchar (¶m->data.d_color, &r, &g, &b);
- g_string_append_printf (s, "'(%d %d %d)",
- (gint) r, (gint) g, (gint) b);
- }
- break;
-
- case SF_TOGGLE:
- g_string_append_printf (s, (param->data.d_int32 ?
- "TRUE" : "FALSE"));
- break;
-
- case SF_VALUE:
- g_string_append (s, param->data.d_string);
- break;
-
- case SF_STRING:
- case SF_TEXT:
- case SF_FILENAME:
- case SF_DIRNAME:
- {
- gchar *tmp;
-
- tmp = script_fu_strescape (param->data.d_string);
- g_string_append_printf (s, "\"%s\"", tmp);
- g_free (tmp);
- }
- break;
-
- case SF_ADJUSTMENT:
- {
- gchar buffer[G_ASCII_DTOSTR_BUF_SIZE];
-
- g_ascii_dtostr (buffer, sizeof (buffer),
- param->data.d_float);
- g_string_append (s, buffer);
- }
- break;
-
- case SF_FONT:
- case SF_PALETTE:
- case SF_PATTERN:
- case SF_GRADIENT:
- case SF_BRUSH:
- g_string_append_printf (s, "\"%s\"",
- param->data.d_string);
- break;
-
- case SF_OPTION:
- case SF_ENUM:
- g_string_append_printf (s, "%d", param->data.d_int32);
- break;
- }
- }
+ gchar *command;
- g_string_append_c (s, ')');
-
- command = g_string_free (s, FALSE);
+ command = script_fu_script_get_command_from_params (script,
+ params);
/* run the command through the interpreter */
if (! script_fu_run_command (command, &error))
@@ -957,126 +767,12 @@
case GIMP_RUN_WITH_LAST_VALS:
{
- GString *s;
- gchar *command;
- gint i;
+ gchar *command;
/* First, try to collect the standard script arguments */
- script_fu_collect_standard_args (script, nparams, params);
-
- s = g_string_new ("(");
- g_string_append (s, script->name);
-
- for (i = 0; i < script->n_args; i++)
- {
- SFArgValue *arg_value = &script->args[i].value;
-
- g_string_append_c (s, ' ');
-
- switch (script->args[i].type)
- {
- case SF_IMAGE:
- case SF_DRAWABLE:
- case SF_LAYER:
- case SF_CHANNEL:
- case SF_VECTORS:
- case SF_DISPLAY:
- g_string_append_printf (s, "%d", arg_value->sfa_image);
- break;
-
- case SF_COLOR:
- {
- guchar r, g, b;
-
- gimp_rgb_get_uchar (&arg_value->sfa_color, &r, &g, &b);
- g_string_append_printf (s, "'(%d %d %d)",
- (gint) r, (gint) g, (gint) b);
- }
- break;
-
- case SF_TOGGLE:
- g_string_append (s, arg_value->sfa_toggle ? "TRUE" : "FALSE");
- break;
-
- case SF_VALUE:
- g_string_append (s, arg_value->sfa_value);
- break;
-
- case SF_STRING:
- case SF_TEXT:
- {
- gchar *tmp;
-
- tmp = script_fu_strescape (arg_value->sfa_value);
- g_string_append_printf (s, "\"%s\"", tmp);
- g_free (tmp);
- }
- break;
-
- case SF_ADJUSTMENT:
- {
- gchar buffer[G_ASCII_DTOSTR_BUF_SIZE];
-
- g_ascii_dtostr (buffer, sizeof (buffer),
- arg_value->sfa_adjustment.value);
- g_string_append (s, buffer);
- }
- break;
-
- case SF_FILENAME:
- case SF_DIRNAME:
- {
- gchar *tmp;
-
- tmp = script_fu_strescape (arg_value->sfa_file.filename);
- g_string_append_printf (s, "\"%s\"", tmp);
- g_free (tmp);
- }
- break;
-
- case SF_FONT:
- g_string_append_printf (s, "\"%s\"", arg_value->sfa_font);
- break;
-
- case SF_PALETTE:
- g_string_append_printf (s, "\"%s\"", arg_value->sfa_palette);
- break;
-
- case SF_PATTERN:
- g_string_append_printf (s, "\"%s\"", arg_value->sfa_pattern);
- break;
-
- case SF_GRADIENT:
- g_string_append_printf (s, "\"%s\"", arg_value->sfa_gradient);
- break;
-
- case SF_BRUSH:
- {
- gchar buffer[G_ASCII_DTOSTR_BUF_SIZE];
-
- g_ascii_dtostr (buffer, sizeof (buffer),
- arg_value->sfa_brush.opacity);
- g_string_append_printf (s, "'(\"%s\" %s %d %d)",
- arg_value->sfa_brush.name,
- buffer,
- arg_value->sfa_brush.spacing,
- arg_value->sfa_brush.paint_mode);
- }
- break;
-
- case SF_OPTION:
- g_string_append_printf (s, "%d", arg_value->sfa_option.history);
- break;
-
- case SF_ENUM:
- g_string_append_printf (s, "%d", arg_value->sfa_enum.history);
- break;
- }
- }
-
- g_string_append_c (s, ')');
+ script_fu_script_collect_standard_args (script, nparams, params);
- command = g_string_free (s, FALSE);
+ command = script_fu_script_get_command (script);
/* run the command through the interpreter */
if (! script_fu_run_command (command, &error))
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]