changeset 1743:1cc12c4b841a

start_editor_from_filelist_full fixes fixed return value from start_editor_from_filelist_full() call editor_command_parse to detect possible problems early enough
author nadvornik
date Mon, 07 Sep 2009 20:44:29 +0000
parents eb64f542341b
children 2ce6b6bfd40a
files src/editors.c src/utilops.c
diffstat 2 files changed, 10 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/editors.c	Mon Sep 07 20:04:22 2009 +0000
+++ b/src/editors.c	Mon Sep 07 20:44:29 2009 +0000
@@ -1225,14 +1225,18 @@
 {
 	EditorFlags error;
 	EditorDescription *editor;
-	if (!key) return FALSE;
+	if (!key) return EDITOR_ERROR_EMPTY;
 	
 	editor = g_hash_table_lookup(editors, key);
 
-	if (!editor) return FALSE;
-	if (!list && !(editor->flags & EDITOR_NO_PARAM)) return FALSE;
+	if (!editor) return EDITOR_ERROR_EMPTY;
+	if (!list && !(editor->flags & EDITOR_NO_PARAM)) return EDITOR_ERROR_NO_FILE;
 
-	error = editor_command_start(editor, editor->name, list, working_directory, cb, data);
+	error = editor_command_parse(editor, list, TRUE, NULL);
+
+	if (EDITOR_ERRORS(error)) return error;
+
+	error |= editor_command_start(editor, editor->name, list, working_directory, cb, data);
 
 	if (EDITOR_ERRORS(error))
 		{
@@ -1242,7 +1246,7 @@
 		g_free(text);
 		}
 
-	return error;
+	return EDITOR_ERRORS(error);
 }
 
 EditorFlags start_editor_from_filelist(const gchar *key, GList *list)
--- a/src/utilops.c	Mon Sep 07 20:04:22 2009 +0000
+++ b/src/utilops.c	Mon Sep 07 20:44:29 2009 +0000
@@ -872,7 +872,7 @@
 				}
 			}
 
-		if (flags)
+		if (EDITOR_ERRORS(flags))
 			{
 			gchar *text = g_strdup_printf(_("%s\nUnable to start external command.\n"), editor_get_error_str(flags));
 			file_util_warning_dialog(ud->messages.fail, text, GTK_STOCK_DIALOG_ERROR, NULL);