From 042ba98f0f2d34d85fc66e06d31a88c5d82561b8 Mon Sep 17 00:00:00 2001
From: John Darrington <john@darrington.wattle.id.au>
Date: Fri, 31 Mar 2017 14:41:51 +0200
Subject: [PATCH] Allow adding new variables in the var sheet

---
 src/ui/gui/psppire-data-editor.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/src/ui/gui/psppire-data-editor.c b/src/ui/gui/psppire-data-editor.c
index d0afe99fa1..b4a08e66fa 100644
--- a/src/ui/gui/psppire-data-editor.c
+++ b/src/ui/gui/psppire-data-editor.c
@@ -218,10 +218,17 @@ change_var_property (PsppireDict *dict, gint col, gint row, GValue *value)
   /* Return the IDXth variable */
   struct variable *var =  psppire_dict_get_variable (dict, row);
 
+  if (NULL == var)
+    var = psppire_dict_insert_variable (dict, row, NULL);
+
   switch (col)
     {
     case DICT_TVM_COL_NAME:
-      dict_rename_var (dict->dict, var, g_value_get_string (value));
+      {
+	const char *name = g_value_get_string (value);
+	if (psppire_dict_check_name (dict, name, FALSE))
+	  dict_rename_var (dict->dict, var, g_value_get_string (value));
+      }
       break;
     case DICT_TVM_COL_LABEL:
       var_set_label (var, g_value_get_string (value));
@@ -768,7 +775,7 @@ set_var_popup_sensitivity (JmdSheet *sheet, gpointer selection, gpointer p)
 
   gboolean whole_row_selected = (range->start_x == 0 &&
 				 range->end_x == width - 1 - 1);
-  /*  PsppireDict has an "extra" column: TVM_COL_VAR   ^^^ */ 
+  /*  PsppireDict has an "extra" column: TVM_COL_VAR   ^^^ */
   gtk_widget_set_sensitive (de->var_clear_variables_menu_item, whole_row_selected);
 }
 
-- 
2.30.2