Got the text file import working again
authorJohn Darrington <john@darrington.wattle.id.au>
Sat, 16 Feb 2013 15:54:57 +0000 (16:54 +0100)
committerJohn Darrington <john@darrington.wattle.id.au>
Sat, 16 Feb 2013 15:54:57 +0000 (16:54 +0100)
src/ui/gui/page-first-line.c
src/ui/gui/page-formats.c
src/ui/gui/page-separators.c
src/ui/gui/text-data-import-dialog.c

index 4109f043eec0a699463b194ab9ea5197d6801ddd..3296b50a4381334735757e8ee3c7c1a57e77ee7f 100644 (file)
@@ -50,7 +50,6 @@
 #include "ui/gui/psppire-var-sheet.h"
 #include "ui/gui/psppire-var-store.h"
 #include "ui/gui/psppire-scanf.h"
-#include "ui/syntax-gen.h"
 
 #include "gl/error.h"
 #include "gl/intprops.h"
@@ -234,3 +233,12 @@ get_first_line (struct import_assistant *ia)
   gtk_widget_set_sensitive (ia->first_line->variable_names_cb,
                             ia->skip_lines > 0);
 }
+
+
+
+void
+first_line_append_syntax (struct import_assistant *ia, struct string *s)
+{
+  if (ia->skip_lines > 0)
+    ds_put_format (s, "  /FIRSTCASE=%d\n", ia->skip_lines + 1);
+}
index 16438eeaee9d52542ac914fd75e351e952f37e98..d3d379a4f4b641a9b7625a308b77298a15a0ff20 100644 (file)
@@ -48,7 +48,6 @@
 #include "ui/gui/psppire-var-sheet.h"
 #include "ui/gui/psppire-var-store.h"
 #include "ui/gui/psppire-scanf.h"
-#include "ui/syntax-gen.h"
 
 #include "gl/error.h"
 #include "gl/intprops.h"
@@ -269,3 +268,23 @@ on_variable_change (PsppireDict *dict, int dict_idx,
 }
 
 
+
+
+void
+formats_append_syntax (struct import_assistant *ia, struct string *s)
+{
+  int i;
+  int var_cnt;
+  ds_put_cstr (s, "  /VARIABLES=\n");
+  
+  var_cnt = dict_get_var_cnt (ia->dict);
+  for (i = 0; i < var_cnt; i++)
+    {
+      struct variable *var = dict_get_var (ia->dict, i);
+      char format_string[FMT_STRING_LEN_MAX + 1];
+      fmt_to_string (var_get_print_format (var), format_string);
+      ds_put_format (s, "    %s %s%s\n",
+                    var_get_name (var), format_string,
+                    i == var_cnt - 1 ? "." : "");
+    }
+}
index fee511e0c308c99d43dd019d3323daf9289ab851..185fa5b9a452a9556946e3938bc75c469d8baba5 100644 (file)
@@ -50,7 +50,6 @@
 #include "ui/gui/psppire-var-sheet.h"
 #include "ui/gui/psppire-var-store.h"
 #include "ui/gui/psppire-scanf.h"
-#include "ui/syntax-gen.h"
 
 #include "gl/error.h"
 #include "gl/intprops.h"
@@ -589,3 +588,28 @@ on_separator_toggle (GtkToggleButton *toggle UNUSED,
   revise_fields_preview (ia);
 }
 
+
+
+void 
+separators_append_syntax (struct import_assistant *ia, struct string *s)
+{
+  int i;
+  ds_put_cstr (s, "  /DELIMITERS=\"");
+  if (ds_find_byte (&ia->separators->separators, '\t') != SIZE_MAX)
+    ds_put_cstr (s, "\\t");
+  if (ds_find_byte (&ia->separators->separators, '\\') != SIZE_MAX)
+    ds_put_cstr (s, "\\\\");
+  for (i = 0; i < ds_length (&ia->separators->separators); i++)
+    {
+      char c = ds_at (&ia->separators->separators, i);
+      if (c == '"')
+       ds_put_cstr (s, "\"\"");
+      else if (c != '\t' && c != '\\')
+       ds_put_byte (s, c);
+    }
+  ds_put_cstr (s, "\"\n");
+  if (!ds_is_empty (&ia->separators->quotes))
+    syntax_gen_pspp (s, "  /QUALIFIER=%sq\n", ds_cstr (&ia->separators->quotes));
+  if (!ds_is_empty (&ia->separators->quotes) && ia->separators->escape)
+    ds_put_cstr (s, "  /ESCAPE\n");
+}
index ab7d743b1dad384d81d7d733547af426277cc070..fe08caa9b115a4a8f039415ca41af9cbb60d2970 100644 (file)
@@ -231,50 +231,18 @@ generate_syntax (const struct import_assistant *ia)
       if (ia->file.encoding && strcmp (ia->file.encoding, "Auto"))
        syntax_gen_pspp (&s, "  /ENCODING=%sq\n", ia->file.encoding);
 
-#if 0
+
       intro_append_syntax (ia->intro, &s);
 
+
       ds_put_cstr (&s,
                   "  /ARRANGEMENT=DELIMITED\n"
                   "  /DELCASE=LINE\n");
 
-
-      if (ia->first_line->skip_lines > 0)
-       ds_put_format (&s, "  /FIRSTCASE=%d\n", ia->first_line->skip_lines + 1);
-      ds_put_cstr (&s, "  /DELIMITERS=\"");
-      if (ds_find_byte (&ia->separators->separators, '\t') != SIZE_MAX)
-       ds_put_cstr (&s, "\\t");
-      if (ds_find_byte (&ia->separators->separators, '\\') != SIZE_MAX)
-       ds_put_cstr (&s, "\\\\");
-      for (i = 0; i < ds_length (&ia->separators->separators); i++)
-       {
-         char c = ds_at (&ia->separators->separators, i);
-         if (c == '"')
-           ds_put_cstr (&s, "\"\"");
-         else if (c != '\t' && c != '\\')
-           ds_put_byte (&s, c);
-       }
-      ds_put_cstr (&s, "\"\n");
-      if (!ds_is_empty (&ia->separators->quotes))
-       syntax_gen_pspp (&s, "  /QUALIFIER=%sq\n", ds_cstr (&ia->separators->quotes));
-      if (!ds_is_empty (&ia->separators->quotes) && ia->separators->escape)
-       ds_put_cstr (&s, "  /ESCAPE\n");
-      ds_put_cstr (&s, "  /VARIABLES=\n");
-
-      var_cnt = dict_get_var_cnt (ia->formats->dict);
-      for (i = 0; i < var_cnt; i++)
-       {
-         struct variable *var = dict_get_var (ia->formats->dict, i);
-         char format_string[FMT_STRING_LEN_MAX + 1];
-         fmt_to_string (var_get_print_format (var), format_string);
-         ds_put_format (&s, "    %s %s%s\n",
-                        var_get_name (var), format_string,
-                        i == var_cnt - 1 ? "." : "");
-       }
-
-
-      apply_dict (ia->formats->dict, &s);
-#endif
+      first_line_append_syntax (ia, &s);
+      separators_append_syntax (ia, &s);
+      formats_append_syntax (ia, &s);
+      apply_dict (ia->dict, &s);
     }
   else
     {