e9544333d0
Push G:A OBS-URL: https://build.opensuse.org/request/show/121476 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/inkscape?expand=0&rev=58
84 lines
2.8 KiB
Diff
84 lines
2.8 KiB
Diff
--- inkscape-0.48.3.1/src/main.cpp.orig 2012-04-18 20:25:28.000000000 +0200
|
|
+++ inkscape-0.48.3.1/src/main.cpp 2012-04-19 17:42:14.731534000 +0200
|
|
@@ -986,12 +986,13 @@ sp_main_gui(int argc, char const **argv)
|
|
}
|
|
|
|
/**
|
|
* Process file list
|
|
*/
|
|
-void sp_process_file_list(GSList *fl)
|
|
+int sp_process_file_list(GSList *fl)
|
|
{
|
|
+ int retVal = 0;
|
|
while (fl) {
|
|
const gchar *filename = (gchar *)fl->data;
|
|
|
|
SPDocument *doc = NULL;
|
|
try {
|
|
@@ -1011,10 +1012,11 @@ void sp_process_file_list(GSList *fl)
|
|
doc = NULL;
|
|
}
|
|
}
|
|
if (doc == NULL) {
|
|
g_warning("Specified document %s cannot be opened (does not exist or not a valid SVG file)", filename);
|
|
+ retVal++;
|
|
} else {
|
|
if (sp_vacuum_defs) {
|
|
vacuum_document(doc);
|
|
}
|
|
if (sp_vacuum_defs && !sp_export_svg) {
|
|
@@ -1060,10 +1062,11 @@ void sp_process_file_list(GSList *fl)
|
|
|
|
delete doc;
|
|
}
|
|
fl = g_slist_remove(fl, fl->data);
|
|
}
|
|
+ return retVal;
|
|
}
|
|
|
|
/**
|
|
* Run the application as an interactive shell, parsing command lines from stdin
|
|
* Returns -1 on error.
|
|
@@ -1115,19 +1118,21 @@ int sp_main_shell(char const* command_na
|
|
if ( g_shell_parse_argv(command_line, &argc, &argv, &parseError) ) {
|
|
poptContext ctx = poptGetContext(NULL, argc, const_cast<const gchar**>(argv), options, 0);
|
|
poptSetOtherOptionHelp(ctx, _("[OPTIONS...] [FILE...]\n\nAvailable options:"));
|
|
if ( ctx ) {
|
|
GSList *fl = sp_process_args(ctx);
|
|
- sp_process_file_list(fl);
|
|
+ if (sp_process_file_list(fl))
|
|
+ retval = -1;
|
|
poptFreeContext(ctx);
|
|
} else {
|
|
retval = 1; // not sure why. But this was the previous return value
|
|
}
|
|
resetCommandlineGlobals();
|
|
g_strfreev(argv);
|
|
} else {
|
|
g_warning("Cannot parse commandline: %s", useme);
|
|
+ retval = -1;
|
|
}
|
|
}
|
|
}
|
|
} // if (linedata...
|
|
} while (linedata && (retval == 0));
|
|
@@ -1160,14 +1165,15 @@ int sp_main_console(int argc, char const
|
|
}
|
|
|
|
inkscape_application_init(argv[0], false);
|
|
|
|
if (sp_shell) {
|
|
- sp_main_shell(argv[0]); // Run as interactive shell
|
|
- exit(0);
|
|
+ int retVal = sp_main_shell(argv[0]); // Run as interactive shell
|
|
+ exit((retVal < 0) ? 1 : 0);
|
|
} else {
|
|
- sp_process_file_list(fl); // Normal command line invokation
|
|
+ int retVal = sp_process_file_list(fl); // Normal command line invokation
|
|
+ if (retVal) exit(1);
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|