Fixed a multitude of C89 compatibility warnings.
authorJohn Darrington <john@darrington.wattle.id.au>
Tue, 4 Apr 2006 12:43:21 +0000 (12:43 +0000)
committerJohn Darrington <john@darrington.wattle.id.au>
Tue, 4 Apr 2006 12:43:21 +0000 (12:43 +0000)
34 files changed:
lib/gtksheet/gsheet-column-iface.c
lib/gtksheet/gsheet-hetero-column.c
lib/gtksheet/gsheet-row-iface.c
lib/gtksheet/gsheet-uniform-column.c
lib/gtksheet/gsheetmodel.c
lib/gtksheet/gsheetmodel.h
lib/gtksheet/gtksheet.c
po/en_GB.po
po/pspp.pot
src/data/variable.c
src/language/data-io/data-list.c
src/language/stats/oneway.q
src/language/stats/rank.q
src/language/tests/moments-test.c
src/math/linreg/linreg.c
src/output/charts/cartesian.c
src/output/charts/cartesian.h
src/output/charts/plot-chart.c
src/output/charts/plot-chart.h
src/ui/gui/customentry.c
src/ui/gui/data-sheet.c
src/ui/gui/helper.c
src/ui/gui/menu-actions.c
src/ui/gui/message-dialog.c
src/ui/gui/missing-val-dialog.c
src/ui/gui/psppire-case-array.c
src/ui/gui/psppire-data-store.c
src/ui/gui/psppire-dict.c
src/ui/gui/psppire-var-store.c
src/ui/gui/psppire-variable.c
src/ui/gui/psppire.c
src/ui/gui/val-labs-dialog.c
src/ui/gui/var-sheet.c
src/ui/gui/var-type-dialog.c

index f1b915513774fece69f73729fb32d1db88abe1a5..a4cc9f36b3a54359eae56bba396f152c34b08141 100644 (file)
@@ -163,11 +163,11 @@ inline const GtkSheetButton *
 g_sheet_column_get_button(const GSheetColumn *column,
                              gint col, const GtkSheet *sheet)
 {
 g_sheet_column_get_button(const GSheetColumn *column,
                              gint col, const GtkSheet *sheet)
 {
-  g_return_val_if_fail (G_IS_SHEET_COLUMN (column), FALSE);
-
+  static GtkSheetButton button ;
   GSheetColumnIface *iface = G_SHEET_COLUMN_GET_IFACE (column);
 
   GSheetColumnIface *iface = G_SHEET_COLUMN_GET_IFACE (column);
 
-  static GtkSheetButton button ;
+  g_return_val_if_fail (G_IS_SHEET_COLUMN (column), FALSE);
+
   memcpy(&button, &default_button, sizeof (button));
 
   if ( iface->get_button_label)
   memcpy(&button, &default_button, sizeof (button));
 
   if ( iface->get_button_label)
@@ -251,13 +251,13 @@ g_sheet_column_get_column_count(const GSheetColumn *geo, const GtkSheet *sheet)
 inline gint  
 g_sheet_column_start_pixel(const GSheetColumn *geo, gint col, const GtkSheet *sheet)
 {
 inline gint  
 g_sheet_column_start_pixel(const GSheetColumn *geo, gint col, const GtkSheet *sheet)
 {
+  gint i;
+  gint start_pixel = 0;
+
   g_return_val_if_fail (G_IS_SHEET_COLUMN (geo), -1);
   g_return_val_if_fail (col < 
                        g_sheet_column_get_column_count(geo, sheet),-1);
 
   g_return_val_if_fail (G_IS_SHEET_COLUMN (geo), -1);
   g_return_val_if_fail (col < 
                        g_sheet_column_get_column_count(geo, sheet),-1);
 
-  gint i;
-  gint start_pixel = 0;
-
   for ( i = 0 ; i < col ; ++i ) 
     {
       if ( g_sheet_column_get_visibility(geo, i, sheet))
   for ( i = 0 ; i < col ; ++i ) 
     {
       if ( g_sheet_column_get_visibility(geo, i, sheet))
index a4781e9e9a56d4d59f9ced0c7bcb6b86923c52c1..575fdc8a3858c6ba080220166fe424052cb10e01 100644 (file)
@@ -84,6 +84,7 @@ static GtkSheetButton default_button;
 GObject *
 g_sheet_hetero_column_new (gint default_width, gint n_columns)
 {
 GObject *
 g_sheet_hetero_column_new (gint default_width, gint n_columns)
 {
+  gint i;
   GSheetHeteroColumn *hg;
   GObject *retval;
 
   GSheetHeteroColumn *hg;
   GObject *retval;
 
@@ -94,7 +95,6 @@ g_sheet_hetero_column_new (gint default_width, gint n_columns)
   hg->default_width = default_width;
   hg->col = g_new0(struct GSheetHeteroColumnUnit, n_columns);
 
   hg->default_width = default_width;
   hg->col = g_new0(struct GSheetHeteroColumnUnit, n_columns);
 
-  gint i;
   for (i = 0 ; i < hg->n_columns; ++i ) 
     {
       hg->col[i].button = default_button;
   for (i = 0 ; i < hg->n_columns; ++i ) 
     {
       hg->col[i].button = default_button;
index 37d246b300d41aa53dec09265132c8144b87d666..01a96afe88b66a9630b1153c96daabb8f54f5e04 100644 (file)
@@ -158,11 +158,12 @@ const GtkSheetButton *
 g_sheet_row_get_button(const GSheetRow *row_geo,
                              gint row, const GtkSheet *sheet)
 {
 g_sheet_row_get_button(const GSheetRow *row_geo,
                              gint row, const GtkSheet *sheet)
 {
-  g_return_val_if_fail (G_IS_SHEET_ROW (row_geo), FALSE);
+  static GtkSheetButton button ;
 
   GSheetRowIface *iface = G_SHEET_ROW_GET_IFACE (row_geo);
 
 
   GSheetRowIface *iface = G_SHEET_ROW_GET_IFACE (row_geo);
 
-  static GtkSheetButton button ;
+  g_return_val_if_fail (G_IS_SHEET_ROW (row_geo), FALSE);
+
   memcpy(&button, &default_button, sizeof (button));
 
   if ( iface->get_button_label)
   memcpy(&button, &default_button, sizeof (button));
 
   if ( iface->get_button_label)
@@ -198,14 +199,14 @@ g_sheet_row_get_row_count(const GSheetRow *geo, const GtkSheet *sheet)
 gint  
 g_sheet_row_start_pixel(const GSheetRow *geo, gint row, const GtkSheet *sheet)
 {
 gint  
 g_sheet_row_start_pixel(const GSheetRow *geo, gint row, const GtkSheet *sheet)
 {
+  gint i;
+  gint start_pixel = 0;
+
   g_return_val_if_fail (G_IS_SHEET_ROW (geo), -1);
   g_return_val_if_fail (row >= 0, -1);
   g_return_val_if_fail (row < 
                        g_sheet_row_get_row_count(geo, sheet),-1);
 
   g_return_val_if_fail (G_IS_SHEET_ROW (geo), -1);
   g_return_val_if_fail (row >= 0, -1);
   g_return_val_if_fail (row < 
                        g_sheet_row_get_row_count(geo, sheet),-1);
 
-  gint i;
-  gint start_pixel = 0;
-
   if ( G_SHEET_ROW_GET_IFACE(geo)->top_ypixel) 
     return (G_SHEET_ROW_GET_IFACE(geo)->top_ypixel)(geo, row, sheet);
 
   if ( G_SHEET_ROW_GET_IFACE(geo)->top_ypixel) 
     return (G_SHEET_ROW_GET_IFACE(geo)->top_ypixel)(geo, row, sheet);
 
index be7a37f9085670e44e6a0d8e3d9c50c8640ca41d..0c1573b5d5717c4ba4fd46c2a24564fcda00d3bc 100644 (file)
@@ -124,8 +124,6 @@ g_sheet_uniform_column_get_visibility(const GSheetColumn *geom, gint u)
 static const gchar *
 g_sheet_uniform_column_get_button_label(const GSheetColumn *geom, gint u)
 {
 static const gchar *
 g_sheet_uniform_column_get_button_label(const GSheetColumn *geom, gint u)
 {
-  GSheetUniformColumn *ug = G_SHEET_UNIFORM_COLUMN(geom);
-  
   static gchar *label; 
 
   g_free(label);
   static gchar *label; 
 
   g_free(label);
index 704b86e23f71a599b34f71afaff758dc3fcd2715..3f0665784a6a5a485d03e6765466b3c9b335307c 100644 (file)
@@ -122,7 +122,7 @@ g_sheet_model_base_init (gpointer g_class)
  * Retrieves the datum at location ROW, COLUMN in the form of a string.
  * Returns: The string representation of the datum, or NULL on error.
  **/
  * Retrieves the datum at location ROW, COLUMN in the form of a string.
  * Returns: The string representation of the datum, or NULL on error.
  **/
-inline const gchar *const      
+inline const gchar *
 g_sheet_model_get_string (const GSheetModel *sheet_model, 
                          gint row, gint column)
 {
 g_sheet_model_get_string (const GSheetModel *sheet_model, 
                          gint row, gint column)
 {
index 2865e78385f037830cf75971075a38ff4616a78d..50746462b93db8a8efd647b92a9cb691e98933f4 100644 (file)
@@ -84,7 +84,7 @@ struct _GSheetModelIface
 
 
   /* Virtual Table */
 
 
   /* Virtual Table */
-  const gchar *const      (* get_string)      (const GSheetModel *sheet_model, 
+  const gchar *      (* get_string)      (const GSheetModel *sheet_model, 
                                               gint row, gint column);
 
   gboolean  (* set_string) (GSheetModel *sheet_model, 
                                               gint row, gint column);
 
   gboolean  (* set_string) (GSheetModel *sheet_model, 
@@ -118,7 +118,7 @@ struct _GSheetModelIface
 GType              g_sheet_model_get_type   (void) G_GNUC_CONST;
 
 
 GType              g_sheet_model_get_type   (void) G_GNUC_CONST;
 
 
-inline const gchar *const g_sheet_model_get_string (const GSheetModel *sheet_model, 
+inline const gchar * g_sheet_model_get_string (const GSheetModel *sheet_model, 
                                               gint row, gint column);
 
 inline gboolean  g_sheet_model_set_string (GSheetModel *sheet_model, 
                                               gint row, gint column);
 
 inline gboolean  g_sheet_model_set_string (GSheetModel *sheet_model, 
index 7f5acedf4cfe3f0905cc063148fb3b048a7d0419..fbaa73c21c50a26bfe196d11e96f1aa8626b8ca6 100644 (file)
@@ -3498,52 +3498,58 @@ gtk_sheet_set_cell(GtkSheet *sheet, gint row, gint col,
                    GtkJustification justification,
                    const gchar *text)
 {
                    GtkJustification justification,
                    const gchar *text)
 {
GtkSheetRange range;
gint text_width;
- GtkSheetCellAttr attributes;
 GSheetModel *model ;
 gboolean changed ;
+  const gchar *old_text ; 
 
 
- g_return_if_fail (sheet != NULL);
- g_return_if_fail (GTK_IS_SHEET (sheet));
- if (col >= xxx_column_count(sheet) || row >= yyy_row_count(sheet)) return;
- if (col < 0 || row < 0) return;
+  GtkSheetRange range;
+  gint text_width;
+  GtkSheetCellAttr attributes;
 
 
- gtk_sheet_get_attributes(sheet, row, col, &attributes);
+  g_return_if_fail (sheet != NULL);
+  g_return_if_fail (GTK_IS_SHEET (sheet));
+  if (col >= xxx_column_count(sheet) || row >= yyy_row_count(sheet)) return;
+  if (col < 0 || row < 0) return;
 
 
attributes.justification = justification;
 gtk_sheet_get_attributes(sheet, row, col, &attributes);
 
 
GSheetModel *model =  gtk_sheet_get_model(sheet);
 attributes.justification = justification;
 
 
const gchar *old_text = g_sheet_model_get_string(model, row, col);
 model =  gtk_sheet_get_model(sheet);
 
 
gboolean changed = FALSE;
 old_text = g_sheet_model_get_string(model, row, col);
 
 
- if (0 != safe_strcmp(old_text, text))
-   changed = g_sheet_model_set_string(model, text, row, col);
+  changed = FALSE;
 
 
- if(changed && attributes.is_visible){
-   const gchar *s = gtk_sheet_cell_get_text(sheet, row, col);
-   text_width = 0;
-   if(s && strlen(s) > 0) {
-     text_width = STRING_WIDTH(GTK_WIDGET(sheet), attributes.font_desc, text);
-   }
+  if (0 != safe_strcmp(old_text, text))
+    changed = g_sheet_model_set_string(model, text, row, col);
 
 
-   range.row0 = row;
-   range.rowi = row;
-   range.col0 = sheet->view.col0;
-   range.coli = sheet->view.coli;
+  if(changed && attributes.is_visible)
+    {
+      const gchar *s = gtk_sheet_cell_get_text(sheet, row, col);
+      text_width = 0;
+      if(s && strlen(s) > 0) {
+       text_width = STRING_WIDTH(GTK_WIDGET(sheet), 
+                                 attributes.font_desc, text);
+      }
+
+    range.row0 = row;
+    range.rowi = row;
+    range.col0 = sheet->view.col0;
+    range.coli = sheet->view.coli;
 
 
-   if(gtk_sheet_autoresize(sheet) &&
-      text_width > xxx_column_width(sheet, col) - 2*CELLOFFSET-attributes.border.width){
+    if(gtk_sheet_autoresize(sheet) &&
+       text_width > xxx_column_width(sheet, col) - 2*CELLOFFSET-attributes.border.width){
       gtk_sheet_set_column_width(sheet, col, text_width+2*CELLOFFSET+attributes.border.width);
       GTK_SHEET_SET_FLAGS(sheet, GTK_SHEET_REDRAW_PENDING);
       gtk_sheet_set_column_width(sheet, col, text_width+2*CELLOFFSET+attributes.border.width);
       GTK_SHEET_SET_FLAGS(sheet, GTK_SHEET_REDRAW_PENDING);
-   }
-   else
-     if(!GTK_SHEET_IS_FROZEN(sheet))
-       gtk_sheet_range_draw(sheet, &range);
- }
+    }
+    else
+      if(!GTK_SHEET_IS_FROZEN(sheet))
+       gtk_sheet_range_draw(sheet, &range);
 }
 
 
- if ( changed ) 
-   gtk_signal_emit(GTK_OBJECT(sheet),sheet_signals[CHANGED], row, col);
 if ( changed ) 
+    gtk_signal_emit(GTK_OBJECT(sheet),sheet_signals[CHANGED], row, col);
 
 }
 
 
 }
 
@@ -3595,12 +3601,10 @@ gtk_sheet_cell_delete (GtkSheet *sheet, gint row, gint column)
 static void
 gtk_sheet_real_cell_clear (GtkSheet *sheet, gint row, gint column, gboolean delete)
 {
 static void
 gtk_sheet_real_cell_clear (GtkSheet *sheet, gint row, gint column, gboolean delete)
 {
-  const gchar *old_text;
-
-  old_text = gtk_sheet_cell_get_text(sheet, row, column); 
   GSheetModel *model =  gtk_sheet_get_model(sheet);
 
   GSheetModel *model =  gtk_sheet_get_model(sheet);
 
+  const gchar *old_text = gtk_sheet_cell_get_text(sheet, row, column); 
   if (old_text && strlen(old_text) > 0 )
     {
       g_sheet_model_datum_clear(model, row, column);
   if (old_text && strlen(old_text) > 0 )
     {
       g_sheet_model_datum_clear(model, row, column);
@@ -6665,7 +6669,6 @@ vadjustment_value_changed (GtkAdjustment * adjustment,
 {
   GtkSheet *sheet;
   gint diff, value, old_value;
 {
   GtkSheet *sheet;
   gint diff, value, old_value;
-  gint i;
   gint row, new_row;
   gint y=0;
 
   gint row, new_row;
   gint y=0;
 
@@ -6689,7 +6692,7 @@ vadjustment_value_changed (GtkAdjustment * adjustment,
   y = g_sheet_row_start_pixel(sheet->row_geometry, new_row, sheet);
 
   if (adjustment->value > sheet->old_vadjustment && sheet->old_vadjustment > 0. &&
   y = g_sheet_row_start_pixel(sheet->row_geometry, new_row, sheet);
 
   if (adjustment->value > sheet->old_vadjustment && sheet->old_vadjustment > 0. &&
-      yyy_row_height(sheet, i) > sheet->vadjustment->step_increment){
+      yyy_row_height(sheet, row) > sheet->vadjustment->step_increment){
 /* This avoids embarrassing twitching */
           if(row == new_row && row != yyy_row_count(sheet) - 1 &&
              adjustment->value - sheet->old_vadjustment >= 
 /* This avoids embarrassing twitching */
           if(row == new_row && row != yyy_row_count(sheet) - 1 &&
              adjustment->value - sheet->old_vadjustment >= 
@@ -7111,6 +7114,11 @@ gtk_sheet_set_row_height (GtkSheet * sheet,
 gboolean
 gtk_sheet_get_attributes(GtkSheet *sheet, gint row, gint col, GtkSheetCellAttr *attributes)
 {
 gboolean
 gtk_sheet_get_attributes(GtkSheet *sheet, gint row, gint col, GtkSheetCellAttr *attributes)
 {
+ const GdkColor *fg, *bg; 
+ const GtkJustification *j ; 
+ const PangoFontDescription *font_desc ;
+ const GtkSheetCellBorder *border ;
+
  g_return_val_if_fail (sheet != NULL, FALSE);
  g_return_val_if_fail (GTK_IS_SHEET (sheet), FALSE);
 
  g_return_val_if_fail (sheet != NULL, FALSE);
  g_return_val_if_fail (GTK_IS_SHEET (sheet), FALSE);
 
@@ -7124,26 +7132,23 @@ gtk_sheet_get_attributes(GtkSheet *sheet, gint row, gint col, GtkSheetCellAttr *
  attributes->is_editable = g_sheet_model_is_editable(sheet->model, row, col);
  attributes->is_visible = g_sheet_model_is_visible(sheet->model, row, col);
 
  attributes->is_editable = g_sheet_model_is_editable(sheet->model, row, col);
  attributes->is_visible = g_sheet_model_is_visible(sheet->model, row, col);
 
const GdkColor *fg = g_sheet_model_get_foreground(sheet->model, row, col);
+ fg = g_sheet_model_get_foreground(sheet->model, row, col);
  if ( fg ) 
    attributes->foreground =  *fg;
 
  if ( fg ) 
    attributes->foreground =  *fg;
 
const GdkColor *bg = g_sheet_model_get_background(sheet->model, row, col);
+ bg = g_sheet_model_get_background(sheet->model, row, col);
  if ( bg ) 
    attributes->background =  *bg;
 
  if ( bg ) 
    attributes->background =  *bg;
 
- const GtkJustification *j = g_sheet_model_get_justification(sheet->model,
-                                                              row, col);
+ j = g_sheet_model_get_justification(sheet->model, row, col);
  if (j)   attributes->justification = *j;
 
  if (j)   attributes->justification = *j;
 
- const PangoFontDescription *font_desc = 
-   g_sheet_model_get_font_desc(sheet->model, row, col);
+ font_desc = g_sheet_model_get_font_desc(sheet->model, row, col);
  if ( font_desc )  attributes->font_desc = font_desc;
 
  if ( font_desc )  attributes->font_desc = font_desc;
 
- const GtkSheetCellBorder *border = 
-  g_sheet_model_get_cell_border(sheet->model, row, col);
+ border = g_sheet_model_get_cell_border(sheet->model, row, col);
 
 
- if ( border )    attributes->border = *border;
+ if ( border ) attributes->border = *border;
 
  return TRUE;
 }
 
  return TRUE;
 }
@@ -7344,7 +7349,7 @@ gtk_sheet_button_attach           (GtkSheet *sheet,
                                 GtkWidget *widget, 
                                 gint row, gint col)
 {
                                 GtkWidget *widget, 
                                 gint row, gint col)
 {
-  GtkSheetButton *button;
+  GtkSheetButton *button = 0;
   GtkSheetChild *child;
   GtkRequisition button_requisition;
 
   GtkSheetChild *child;
   GtkRequisition button_requisition;
 
index 21f88765cc7705cd1483991fde4b16cdf1983e5a..2828fe76eefaf1201f75f52845be585a214e69f4 100644 (file)
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PSPP 0.3.1\n"
 "Report-Msgid-Bugs-To: pspp-dev@gnu.org\n"
 msgstr ""
 "Project-Id-Version: PSPP 0.3.1\n"
 "Report-Msgid-Bugs-To: pspp-dev@gnu.org\n"
-"POT-Creation-Date: 2006-04-04 09:56+0800\n"
+"POT-Creation-Date: 2006-04-04 20:32+0800\n"
 "PO-Revision-Date: 2004-01-23 13:04+0800\n"
 "Last-Translator: John Darrington <john@darrington.wattle.id.au>\n"
 "Language-Team: John Darrington <john@darrington.wattle.id.au>\n"
 "PO-Revision-Date: 2004-01-23 13:04+0800\n"
 "Last-Translator: John Darrington <john@darrington.wattle.id.au>\n"
 "Language-Team: John Darrington <john@darrington.wattle.id.au>\n"
@@ -311,21 +311,21 @@ msgstr ""
 msgid "Can't re-open %s as a %s for %s."
 msgstr ""
 
 msgid "Can't re-open %s as a %s for %s."
 msgstr ""
 
-#: src/data/filename.c:249
+#: src/data/filename.c:253
 #, c-format
 msgid "Searching for `%s'..."
 msgstr ""
 
 #, c-format
 msgid "Searching for `%s'..."
 msgstr ""
 
-#: src/data/filename.c:257 src/data/filename.c:289
+#: src/data/filename.c:261 src/data/filename.c:293
 msgid "Search unsuccessful!"
 msgstr ""
 
 msgid "Search unsuccessful!"
 msgstr ""
 
-#: src/data/filename.c:282
+#: src/data/filename.c:286
 #, c-format
 msgid "Found `%s'."
 msgstr ""
 
 #, c-format
 msgid "Found `%s'."
 msgstr ""
 
-#: src/data/filename.c:699
+#: src/data/filename.c:703
 #, c-format
 msgid "Not opening pipe file `%s' because SAFER option set."
 msgstr ""
 #, c-format
 msgid "Not opening pipe file `%s' because SAFER option set."
 msgstr ""
@@ -388,13 +388,13 @@ msgstr ""
 
 #: src/data/format.c:197 src/data/por-file-reader.c:481
 #: src/data/sys-file-reader.c:994 src/data/sys-file-reader.c:1003
 
 #: src/data/format.c:197 src/data/por-file-reader.c:481
 #: src/data/sys-file-reader.c:994 src/data/sys-file-reader.c:1003
-#: src/ui/gui/psppire-var-store.c:430
+#: src/ui/gui/psppire-var-store.c:435
 msgid "String"
 msgstr ""
 
 #: src/data/format.c:197 src/data/por-file-reader.c:481
 #: src/data/sys-file-reader.c:994 src/data/sys-file-reader.c:1003
 msgid "String"
 msgstr ""
 
 #: src/data/format.c:197 src/data/por-file-reader.c:481
 #: src/data/sys-file-reader.c:994 src/data/sys-file-reader.c:1003
-#: src/ui/gui/psppire-var-store.c:423
+#: src/ui/gui/psppire-var-store.c:428
 msgid "Numeric"
 msgstr ""
 
 msgid "Numeric"
 msgstr ""
 
@@ -926,45 +926,45 @@ msgstr ""
 msgid "number"
 msgstr ""
 
 msgid "number"
 msgstr ""
 
-#: src/data/variable.c:151
+#: src/data/variable.c:152
 #, c-format
 msgid ""
 "Character `%c' (in %s), may not appear as the first character in a variable "
 "name."
 msgstr ""
 
 #, c-format
 msgid ""
 "Character `%c' (in %s), may not appear as the first character in a variable "
 "name."
 msgstr ""
 
-#: src/data/variable.c:163
+#: src/data/variable.c:164
 #, c-format
 msgid "Character `%c' (in %s) may not appear in a variable name."
 msgstr ""
 
 #, c-format
 msgid "Character `%c' (in %s) may not appear in a variable name."
 msgstr ""
 
-#: src/data/variable.c:192
+#: src/data/variable.c:193
 msgid "Variable name cannot be empty string."
 msgstr ""
 
 msgid "Variable name cannot be empty string."
 msgstr ""
 
-#: src/data/variable.c:198
+#: src/data/variable.c:199
 #, c-format
 msgid "Variable name %s exceeds %d-character limit."
 msgstr ""
 
 #, c-format
 msgid "Variable name %s exceeds %d-character limit."
 msgstr ""
 
-#: src/data/variable.c:206
+#: src/data/variable.c:207
 #, c-format
 msgid "`%s' may not be used as a variable name because it is a reserved word."
 msgstr ""
 
 #, c-format
 msgid "`%s' may not be used as a variable name because it is a reserved word."
 msgstr ""
 
-#: src/data/variable.c:301
+#: src/data/variable.c:302
 msgid "Variable suffix too large."
 msgstr ""
 
 msgid "Variable suffix too large."
 msgstr ""
 
-#: src/data/variable.c:342
+#: src/data/variable.c:343
 msgid "ordinary"
 msgstr ""
 
 msgid "ordinary"
 msgstr ""
 
-#: src/data/variable.c:344
+#: src/data/variable.c:345
 msgid "system"
 msgstr ""
 
 msgid "system"
 msgstr ""
 
-#: src/data/variable.c:346
+#: src/data/variable.c:347
 msgid "scratch"
 msgstr ""
 
 msgid "scratch"
 msgstr ""
 
@@ -1102,96 +1102,96 @@ msgid ""
 "commands."
 msgstr ""
 
 "commands."
 msgstr ""
 
-#: src/language/data-io/data-list.c:143
+#: src/language/data-io/data-list.c:145
 msgid "DATA LIST must use the same file as the enclosing FILE TYPE."
 msgstr ""
 
 msgid "DATA LIST must use the same file as the enclosing FILE TYPE."
 msgstr ""
 
-#: src/language/data-io/data-list.c:162
+#: src/language/data-io/data-list.c:164
 msgid "The END subcommand may only be specified once."
 msgstr ""
 
 msgid "The END subcommand may only be specified once."
 msgstr ""
 
-#: src/language/data-io/data-list.c:197
+#: src/language/data-io/data-list.c:199
 msgid "Only one of FIXED, FREE, or LIST may be specified."
 msgstr ""
 
 msgid "Only one of FIXED, FREE, or LIST may be specified."
 msgstr ""
 
-#: src/language/data-io/data-list.c:347 src/language/data-io/print.c:297
+#: src/language/data-io/data-list.c:349 src/language/data-io/print.c:297
 #, c-format
 msgid ""
 "The record number specified, %ld, is before the previous record, %d.  Data "
 "fields must be listed in order of increasing record number."
 msgstr ""
 
 #, c-format
 msgid ""
 "The record number specified, %ld, is before the previous record, %d.  Data "
 "fields must be listed in order of increasing record number."
 msgstr ""
 
-#: src/language/data-io/data-list.c:376 src/language/data-io/data-list.c:1725
+#: src/language/data-io/data-list.c:378 src/language/data-io/data-list.c:1727
 msgid ""
 "SPSS-like or FORTRAN-like format specification expected after variable names."
 msgstr ""
 
 msgid ""
 "SPSS-like or FORTRAN-like format specification expected after variable names."
 msgstr ""
 
-#: src/language/data-io/data-list.c:387
+#: src/language/data-io/data-list.c:389
 msgid "At least one variable must be specified."
 msgstr ""
 
 msgid "At least one variable must be specified."
 msgstr ""
 
-#: src/language/data-io/data-list.c:392 src/language/data-io/print.c:329
+#: src/language/data-io/data-list.c:394 src/language/data-io/print.c:329
 msgid ""
 "Variables are specified on records that should not exist according to "
 "RECORDS subcommand."
 msgstr ""
 
 msgid ""
 "Variables are specified on records that should not exist according to "
 "RECORDS subcommand."
 msgstr ""
 
-#: src/language/data-io/data-list.c:425 src/language/data-io/data-list.c:439
+#: src/language/data-io/data-list.c:427 src/language/data-io/data-list.c:441
 #: src/language/data-io/print.c:521 src/language/data-io/print.c:534
 msgid "Column positions for fields must be positive."
 msgstr ""
 
 #: src/language/data-io/print.c:521 src/language/data-io/print.c:534
 msgid "Column positions for fields must be positive."
 msgstr ""
 
-#: src/language/data-io/data-list.c:444
+#: src/language/data-io/data-list.c:446
 msgid "The ending column for a field must be greater than the starting column."
 msgstr ""
 
 msgid "The ending column for a field must be greater than the starting column."
 msgstr ""
 
-#: src/language/data-io/data-list.c:458
+#: src/language/data-io/data-list.c:460
 #, c-format
 msgid "The %d columns %d-%d can't be evenly divided into %d fields."
 msgstr ""
 
 #, c-format
 msgid "The %d columns %d-%d can't be evenly divided into %d fields."
 msgstr ""
 
-#: src/language/data-io/data-list.c:478 src/language/data-io/print.c:562
+#: src/language/data-io/data-list.c:480 src/language/data-io/print.c:562
 msgid "A format specifier on this line has extra characters on the end."
 msgstr ""
 
 msgid "A format specifier on this line has extra characters on the end."
 msgstr ""
 
-#: src/language/data-io/data-list.c:493 src/language/data-io/print.c:578
+#: src/language/data-io/data-list.c:495 src/language/data-io/print.c:578
 msgid "The value for number of decimal places must be at least 1."
 msgstr ""
 
 msgid "The value for number of decimal places must be at least 1."
 msgstr ""
 
-#: src/language/data-io/data-list.c:507 src/language/data-io/print.c:591
+#: src/language/data-io/data-list.c:509 src/language/data-io/print.c:591
 #, c-format
 msgid "Input format %s doesn't accept decimal places."
 msgstr ""
 
 #, c-format
 msgid "Input format %s doesn't accept decimal places."
 msgstr ""
 
-#: src/language/data-io/data-list.c:554 src/language/data-io/data-list.c:650
-#: src/language/data-io/data-list.c:858
+#: src/language/data-io/data-list.c:556 src/language/data-io/data-list.c:652
+#: src/language/data-io/data-list.c:860
 #, c-format
 msgid "%s is a duplicate variable name."
 msgstr ""
 
 #, c-format
 msgid "%s is a duplicate variable name."
 msgstr ""
 
-#: src/language/data-io/data-list.c:559
+#: src/language/data-io/data-list.c:561
 #, c-format
 msgid "There is already a variable %s of a different type."
 msgstr ""
 
 #, c-format
 msgid "There is already a variable %s of a different type."
 msgstr ""
 
-#: src/language/data-io/data-list.c:566
+#: src/language/data-io/data-list.c:568
 #, c-format
 msgid "There is already a string variable %s of a different width."
 msgstr ""
 
 #, c-format
 msgid "There is already a string variable %s of a different width."
 msgstr ""
 
-#: src/language/data-io/data-list.c:641
+#: src/language/data-io/data-list.c:643
 msgid ""
 "The number of format specifications exceeds the given number of variable "
 "names."
 msgstr ""
 
 msgid ""
 "The number of format specifications exceeds the given number of variable "
 "names."
 msgstr ""
 
-#: src/language/data-io/data-list.c:754 src/language/data-io/print.c:767
+#: src/language/data-io/data-list.c:756 src/language/data-io/print.c:767
 msgid ""
 "There aren't enough format specifications to match the number of variable "
 "names given."
 msgstr ""
 
 msgid ""
 "There aren't enough format specifications to match the number of variable "
 "names given."
 msgstr ""
 
-#: src/language/data-io/data-list.c:781 src/language/data-io/data-list.c:899
+#: src/language/data-io/data-list.c:783 src/language/data-io/data-list.c:901
 #: src/language/data-io/print.c:798
 #: src/language/dictionary/sys-file-info.c:139
 #: src/language/dictionary/sys-file-info.c:373
 #: src/language/data-io/print.c:798
 #: src/language/dictionary/sys-file-info.c:139
 #: src/language/dictionary/sys-file-info.c:373
@@ -1199,182 +1199,182 @@ msgstr ""
 msgid "Variable"
 msgstr ""
 
 msgid "Variable"
 msgstr ""
 
-#: src/language/data-io/data-list.c:782 src/language/data-io/print.c:799
+#: src/language/data-io/data-list.c:784 src/language/data-io/print.c:799
 msgid "Record"
 msgstr ""
 
 msgid "Record"
 msgstr ""
 
-#: src/language/data-io/data-list.c:783 src/language/data-io/print.c:800
+#: src/language/data-io/data-list.c:785 src/language/data-io/print.c:800
 #: src/ui/gui/var-sheet.c:74
 msgid "Columns"
 msgstr ""
 
 #: src/ui/gui/var-sheet.c:74
 msgid "Columns"
 msgstr ""
 
-#: src/language/data-io/data-list.c:784 src/language/data-io/data-list.c:900
+#: src/language/data-io/data-list.c:786 src/language/data-io/data-list.c:902
 #: src/language/data-io/print.c:801
 msgid "Format"
 msgstr ""
 
 #: src/language/data-io/print.c:801
 msgid "Format"
 msgstr ""
 
-#: src/language/data-io/data-list.c:799
+#: src/language/data-io/data-list.c:801
 #, c-format
 msgid "Reading %d record from %s."
 msgid_plural "Reading %d records from %s."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
 msgid "Reading %d record from %s."
 msgid_plural "Reading %d records from %s."
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/language/data-io/data-list.c:915
+#: src/language/data-io/data-list.c:917
 #, c-format
 msgid "Reading free-form data from %s."
 msgstr ""
 
 #, c-format
 msgid "Reading free-form data from %s."
 msgstr ""
 
-#: src/language/data-io/data-list.c:966
+#: src/language/data-io/data-list.c:968
 #, c-format
 msgid "Quoted string missing terminating `%c'."
 msgstr ""
 
 #, c-format
 msgid "Quoted string missing terminating `%c'."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1081
+#: src/language/data-io/data-list.c:1083
 #, c-format
 msgid "Partial case of %d of %d records discarded."
 msgstr ""
 
 #, c-format
 msgid "Partial case of %d of %d records discarded."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1134
+#: src/language/data-io/data-list.c:1136
 #, c-format
 msgid "Partial case discarded.  The first variable missing was %s."
 msgstr ""
 
 #, c-format
 msgid "Partial case discarded.  The first variable missing was %s."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1177
+#: src/language/data-io/data-list.c:1179
 #, c-format
 msgid ""
 "Missing value(s) for all variables from %s onward.  These will be filled "
 "with the system-missing value or blanks, as appropriate."
 msgstr ""
 
 #, c-format
 msgid ""
 "Missing value(s) for all variables from %s onward.  These will be filled "
 "with the system-missing value or blanks, as appropriate."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1388
+#: src/language/data-io/data-list.c:1390
 msgid ""
 "REPEATING DATA must use the same file as its corresponding DATA LIST or FILE "
 "TYPE."
 msgstr ""
 
 msgid ""
 "REPEATING DATA must use the same file as its corresponding DATA LIST or FILE "
 "TYPE."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1398 src/language/data-io/data-list.c:1432
-#: src/language/data-io/data-list.c:1445 src/language/data-io/data-list.c:1458
-#: src/language/data-io/data-list.c:1492
+#: src/language/data-io/data-list.c:1400 src/language/data-io/data-list.c:1434
+#: src/language/data-io/data-list.c:1447 src/language/data-io/data-list.c:1460
+#: src/language/data-io/data-list.c:1494
 #, c-format
 msgid "%s subcommand given multiple times."
 msgstr ""
 
 #, c-format
 msgid "%s subcommand given multiple times."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1421
+#: src/language/data-io/data-list.c:1423
 #, c-format
 msgid "STARTS beginning column (%d) exceeds STARTS ending column (%d)."
 msgstr ""
 
 #, c-format
 msgid "STARTS beginning column (%d) exceeds STARTS ending column (%d)."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1478
+#: src/language/data-io/data-list.c:1480
 #, c-format
 msgid "CONTINUED beginning column (%d) exceeds CONTINUED ending column (%d)."
 msgstr ""
 
 #, c-format
 msgid "CONTINUED beginning column (%d) exceeds CONTINUED ending column (%d)."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1501
+#: src/language/data-io/data-list.c:1503
 #, c-format
 msgid "ID beginning column (%ld) must be positive."
 msgstr ""
 
 #, c-format
 msgid "ID beginning column (%ld) must be positive."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1516
+#: src/language/data-io/data-list.c:1518
 #, c-format
 msgid "ID ending column (%ld) must be positive."
 msgstr ""
 
 #, c-format
 msgid "ID ending column (%ld) must be positive."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1522
+#: src/language/data-io/data-list.c:1524
 #, c-format
 msgid "ID ending column (%ld) cannot be less than ID beginning column (%d)."
 msgstr ""
 
 #, c-format
 msgid "ID ending column (%ld) cannot be less than ID beginning column (%d)."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1562
+#: src/language/data-io/data-list.c:1564
 msgid "Missing required specification STARTS."
 msgstr ""
 
 msgid "Missing required specification STARTS."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1564
+#: src/language/data-io/data-list.c:1566
 msgid "Missing required specification OCCURS."
 msgstr ""
 
 msgid "Missing required specification OCCURS."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1571
+#: src/language/data-io/data-list.c:1573
 msgid "ID specified without CONTINUED."
 msgstr ""
 
 msgid "ID specified without CONTINUED."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1582
+#: src/language/data-io/data-list.c:1584
 #, c-format
 msgid ""
 "STARTS beginning column (%d) exceeds default STARTS ending column taken from "
 "file's record width (%d)."
 msgstr ""
 
 #, c-format
 msgid ""
 "STARTS beginning column (%d) exceeds default STARTS ending column taken from "
 "file's record width (%d)."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1595
+#: src/language/data-io/data-list.c:1597
 #, c-format
 msgid ""
 "CONTINUED beginning column (%d) exceeds default CONTINUED ending column "
 "taken from file's record width (%d)."
 msgstr ""
 
 #, c-format
 msgid ""
 "CONTINUED beginning column (%d) exceeds default CONTINUED ending column "
 "taken from file's record width (%d)."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1674
+#: src/language/data-io/data-list.c:1676
 msgid "String variable not allowed here."
 msgstr ""
 
 msgid "String variable not allowed here."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1684
+#: src/language/data-io/data-list.c:1686
 #, c-format
 msgid "%s (%d) must be at least 1."
 msgstr ""
 
 #, c-format
 msgid "%s (%d) must be at least 1."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1690
+#: src/language/data-io/data-list.c:1692
 #, c-format
 msgid "Variable or integer expected for %s."
 msgstr ""
 
 #, c-format
 msgid "Variable or integer expected for %s."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1815
+#: src/language/data-io/data-list.c:1817
 #, c-format
 msgid "Encountered mismatched record ID \"%s\" expecting \"%s\"."
 msgstr ""
 
 #, c-format
 msgid "Encountered mismatched record ID \"%s\" expecting \"%s\"."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1847
+#: src/language/data-io/data-list.c:1849
 #, c-format
 msgid ""
 "Variable %s starting in column %d extends beyond physical record length of %"
 "d."
 msgstr ""
 
 #, c-format
 msgid ""
 "Variable %s starting in column %d extends beyond physical record length of %"
 "d."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1914
+#: src/language/data-io/data-list.c:1916
 #, c-format
 msgid "Invalid value %d for OCCURS."
 msgstr ""
 
 #, c-format
 msgid "Invalid value %d for OCCURS."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1920
+#: src/language/data-io/data-list.c:1922
 #, c-format
 msgid "Beginning column for STARTS (%d) must be at least 1."
 msgstr ""
 
 #, c-format
 msgid "Beginning column for STARTS (%d) must be at least 1."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1928
+#: src/language/data-io/data-list.c:1930
 #, c-format
 msgid "Ending column for STARTS (%d) is less than beginning column (%d)."
 msgstr ""
 
 #, c-format
 msgid "Ending column for STARTS (%d) is less than beginning column (%d)."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1936
+#: src/language/data-io/data-list.c:1938
 #, c-format
 msgid "Invalid value %d for LENGTH."
 msgstr ""
 
 #, c-format
 msgid "Invalid value %d for LENGTH."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1943
+#: src/language/data-io/data-list.c:1945
 #, c-format
 msgid "Beginning column for CONTINUED (%d) must be at least 1."
 msgstr ""
 
 #, c-format
 msgid "Beginning column for CONTINUED (%d) must be at least 1."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1951
+#: src/language/data-io/data-list.c:1953
 #, c-format
 msgid "Ending column for CONTINUED (%d) is less than beginning column (%d)."
 msgstr ""
 
 #, c-format
 msgid "Ending column for CONTINUED (%d) is less than beginning column (%d)."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1983
+#: src/language/data-io/data-list.c:1985
 #, c-format
 msgid ""
 "Number of repetitions specified on OCCURS (%d) exceed number of repetitions "
 "available in space on STARTS (%d), and CONTINUED not specified."
 msgstr ""
 
 #, c-format
 msgid ""
 "Number of repetitions specified on OCCURS (%d) exceed number of repetitions "
 "available in space on STARTS (%d), and CONTINUED not specified."
 msgstr ""
 
-#: src/language/data-io/data-list.c:2001
+#: src/language/data-io/data-list.c:2003
 #, c-format
 msgid "Unexpected end of file with %d repetitions remaining out of %d."
 msgstr ""
 #, c-format
 msgid "Unexpected end of file with %d repetitions remaining out of %d."
 msgstr ""
@@ -2900,13 +2900,13 @@ msgstr ""
 
 #: src/language/stats/crosstabs.q:817 src/language/stats/crosstabs.q:1020
 #: src/language/stats/crosstabs.q:1740 src/language/stats/examine.q:859
 
 #: src/language/stats/crosstabs.q:817 src/language/stats/crosstabs.q:1020
 #: src/language/stats/crosstabs.q:1740 src/language/stats/examine.q:859
-#: src/language/stats/frequencies.q:1221 src/language/stats/oneway.q:312
-#: src/language/stats/oneway.q:475 src/language/stats/regression.q:294
+#: src/language/stats/frequencies.q:1221 src/language/stats/oneway.q:314
+#: src/language/stats/oneway.q:478 src/language/stats/regression.q:294
 msgid "Total"
 msgstr ""
 
 #: src/language/stats/crosstabs.q:827 src/language/stats/examine.q:935
 msgid "Total"
 msgstr ""
 
 #: src/language/stats/crosstabs.q:827 src/language/stats/examine.q:935
-#: src/language/stats/frequencies.q:1516 src/language/stats/oneway.q:398
+#: src/language/stats/frequencies.q:1516 src/language/stats/oneway.q:400
 #: src/language/stats/t-test.q:682 src/language/stats/t-test.q:705
 #: src/language/stats/t-test.q:830 src/language/stats/t-test.q:1365
 msgid "N"
 #: src/language/stats/t-test.q:682 src/language/stats/t-test.q:705
 #: src/language/stats/t-test.q:830 src/language/stats/t-test.q:1365
 msgid "N"
@@ -2960,8 +2960,8 @@ msgstr ""
 msgid "Statistic"
 msgstr ""
 
 msgid "Statistic"
 msgstr ""
 
-#: src/language/stats/crosstabs.q:1112 src/language/stats/oneway.q:285
-#: src/language/stats/oneway.q:687 src/language/stats/regression.q:287
+#: src/language/stats/crosstabs.q:1112 src/language/stats/oneway.q:287
+#: src/language/stats/oneway.q:690 src/language/stats/regression.q:287
 #: src/language/stats/t-test.q:980 src/language/stats/t-test.q:1172
 #: src/language/stats/t-test.q:1264
 msgid "df"
 #: src/language/stats/t-test.q:980 src/language/stats/t-test.q:1172
 #: src/language/stats/t-test.q:1264
 msgid "df"
@@ -3157,7 +3157,7 @@ msgid "%s Dependent"
 msgstr ""
 
 #: src/language/stats/descriptives.c:103 src/language/stats/examine.q:1474
 msgstr ""
 
 #: src/language/stats/descriptives.c:103 src/language/stats/examine.q:1474
-#: src/language/stats/frequencies.q:120 src/language/stats/oneway.q:399
+#: src/language/stats/frequencies.q:120 src/language/stats/oneway.q:401
 #: src/language/stats/t-test.q:683 src/language/stats/t-test.q:706
 #: src/language/stats/t-test.q:829 src/language/stats/t-test.q:1166
 msgid "Mean"
 #: src/language/stats/t-test.q:683 src/language/stats/t-test.q:706
 #: src/language/stats/t-test.q:829 src/language/stats/t-test.q:1166
 msgid "Mean"
@@ -3200,12 +3200,12 @@ msgid "Range"
 msgstr ""
 
 #: src/language/stats/descriptives.c:112 src/language/stats/examine.q:1579
 msgstr ""
 
 #: src/language/stats/descriptives.c:112 src/language/stats/examine.q:1579
-#: src/language/stats/frequencies.q:131 src/language/stats/oneway.q:411
+#: src/language/stats/frequencies.q:131 src/language/stats/oneway.q:413
 msgid "Minimum"
 msgstr ""
 
 #: src/language/stats/descriptives.c:113 src/language/stats/examine.q:1590
 msgid "Minimum"
 msgstr ""
 
 #: src/language/stats/descriptives.c:113 src/language/stats/examine.q:1590
-#: src/language/stats/frequencies.q:132 src/language/stats/oneway.q:412
+#: src/language/stats/frequencies.q:132 src/language/stats/oneway.q:414
 msgid "Maximum"
 msgstr ""
 
 msgid "Maximum"
 msgstr ""
 
@@ -3282,25 +3282,25 @@ msgstr ""
 msgid "Lowest"
 msgstr ""
 
 msgid "Lowest"
 msgstr ""
 
-#: src/language/stats/examine.q:1370 src/language/stats/oneway.q:401
-#: src/language/stats/oneway.q:685 src/language/stats/regression.q:191
+#: src/language/stats/examine.q:1370 src/language/stats/oneway.q:403
+#: src/language/stats/oneway.q:688 src/language/stats/regression.q:191
 msgid "Std. Error"
 msgstr ""
 
 msgid "Std. Error"
 msgstr ""
 
-#: src/language/stats/examine.q:1372 src/language/stats/oneway.q:415
+#: src/language/stats/examine.q:1372 src/language/stats/oneway.q:417
 msgid "Descriptives"
 msgstr ""
 
 msgid "Descriptives"
 msgstr ""
 
-#: src/language/stats/examine.q:1492 src/language/stats/oneway.q:406
+#: src/language/stats/examine.q:1492 src/language/stats/oneway.q:408
 #, c-format
 msgid "%g%% Confidence Interval for Mean"
 msgstr ""
 
 #, c-format
 msgid "%g%% Confidence Interval for Mean"
 msgstr ""
 
-#: src/language/stats/examine.q:1498 src/language/stats/oneway.q:408
+#: src/language/stats/examine.q:1498 src/language/stats/oneway.q:410
 msgid "Lower Bound"
 msgstr ""
 
 msgid "Lower Bound"
 msgstr ""
 
-#: src/language/stats/examine.q:1509 src/language/stats/oneway.q:409
+#: src/language/stats/examine.q:1509 src/language/stats/oneway.q:411
 msgid "Upper Bound"
 msgstr ""
 
 msgid "Upper Bound"
 msgstr ""
 
@@ -3313,7 +3313,7 @@ msgstr ""
 msgid "Median"
 msgstr ""
 
 msgid "Median"
 msgstr ""
 
-#: src/language/stats/examine.q:1566 src/language/stats/oneway.q:400
+#: src/language/stats/examine.q:1566 src/language/stats/oneway.q:402
 #: src/language/stats/t-test.q:684 src/language/stats/t-test.q:707
 #: src/language/stats/t-test.q:831 src/language/stats/t-test.q:1167
 msgid "Std. Deviation"
 #: src/language/stats/t-test.q:684 src/language/stats/t-test.q:707
 #: src/language/stats/t-test.q:831 src/language/stats/t-test.q:1167
 msgid "Std. Deviation"
@@ -3517,107 +3517,107 @@ msgstr ""
 msgid "TABLES subcommand may not appear more than once."
 msgstr ""
 
 msgid "TABLES subcommand may not appear more than once."
 msgstr ""
 
-#: src/language/stats/oneway.q:175
+#: src/language/stats/oneway.q:177
 msgid "Number of contrast coefficients must equal the number of groups"
 msgstr ""
 
 msgid "Number of contrast coefficients must equal the number of groups"
 msgstr ""
 
-#: src/language/stats/oneway.q:184
+#: src/language/stats/oneway.q:186
 #, c-format
 msgid "Coefficients for contrast %d do not total zero"
 msgstr ""
 
 #, c-format
 msgid "Coefficients for contrast %d do not total zero"
 msgstr ""
 
-#: src/language/stats/oneway.q:249
+#: src/language/stats/oneway.q:251
 #, c-format
 msgid "`%s' is not a variable name"
 msgstr ""
 
 #, c-format
 msgid "`%s' is not a variable name"
 msgstr ""
 
-#: src/language/stats/oneway.q:284 src/language/stats/regression.q:286
+#: src/language/stats/oneway.q:286 src/language/stats/regression.q:286
 msgid "Sum of Squares"
 msgstr ""
 
 msgid "Sum of Squares"
 msgstr ""
 
-#: src/language/stats/oneway.q:286 src/language/stats/regression.q:288
+#: src/language/stats/oneway.q:288 src/language/stats/regression.q:288
 msgid "Mean Square"
 msgstr ""
 
 msgid "Mean Square"
 msgstr ""
 
-#: src/language/stats/oneway.q:287 src/language/stats/regression.q:289
+#: src/language/stats/oneway.q:289 src/language/stats/regression.q:289
 #: src/language/stats/t-test.q:977
 msgid "F"
 msgstr ""
 
 #: src/language/stats/t-test.q:977
 msgid "F"
 msgstr ""
 
-#: src/language/stats/oneway.q:288 src/language/stats/oneway.q:541
+#: src/language/stats/oneway.q:290 src/language/stats/oneway.q:544
 #: src/language/stats/regression.q:194 src/language/stats/regression.q:290
 msgid "Significance"
 msgstr ""
 
 #: src/language/stats/regression.q:194 src/language/stats/regression.q:290
 msgid "Significance"
 msgstr ""
 
-#: src/language/stats/oneway.q:310
+#: src/language/stats/oneway.q:312
 msgid "Between Groups"
 msgstr ""
 
 msgid "Between Groups"
 msgstr ""
 
-#: src/language/stats/oneway.q:311
+#: src/language/stats/oneway.q:313
 msgid "Within Groups"
 msgstr ""
 
 msgid "Within Groups"
 msgstr ""
 
-#: src/language/stats/oneway.q:358 src/language/stats/regression.q:316
+#: src/language/stats/oneway.q:360 src/language/stats/regression.q:316
 msgid "ANOVA"
 msgstr ""
 
 msgid "ANOVA"
 msgstr ""
 
-#: src/language/stats/oneway.q:538
+#: src/language/stats/oneway.q:541
 msgid "Levene Statistic"
 msgstr ""
 
 msgid "Levene Statistic"
 msgstr ""
 
-#: src/language/stats/oneway.q:539
+#: src/language/stats/oneway.q:542
 msgid "df1"
 msgstr ""
 
 msgid "df1"
 msgstr ""
 
-#: src/language/stats/oneway.q:540
+#: src/language/stats/oneway.q:543
 msgid "df2"
 msgstr ""
 
 msgid "df2"
 msgstr ""
 
-#: src/language/stats/oneway.q:544
+#: src/language/stats/oneway.q:547
 msgid "Test of Homogeneity of Variances"
 msgstr ""
 
 msgid "Test of Homogeneity of Variances"
 msgstr ""
 
-#: src/language/stats/oneway.q:614
+#: src/language/stats/oneway.q:617
 msgid "Contrast Coefficients"
 msgstr ""
 
 msgid "Contrast Coefficients"
 msgstr ""
 
-#: src/language/stats/oneway.q:616 src/language/stats/oneway.q:683
+#: src/language/stats/oneway.q:619 src/language/stats/oneway.q:686
 msgid "Contrast"
 msgstr ""
 
 msgid "Contrast"
 msgstr ""
 
-#: src/language/stats/oneway.q:681
+#: src/language/stats/oneway.q:684
 msgid "Contrast Tests"
 msgstr ""
 
 msgid "Contrast Tests"
 msgstr ""
 
-#: src/language/stats/oneway.q:684
+#: src/language/stats/oneway.q:687
 msgid "Value of Contrast"
 msgstr ""
 
 msgid "Value of Contrast"
 msgstr ""
 
-#: src/language/stats/oneway.q:686 src/language/stats/regression.q:193
+#: src/language/stats/oneway.q:689 src/language/stats/regression.q:193
 #: src/language/stats/t-test.q:979 src/language/stats/t-test.q:1171
 #: src/language/stats/t-test.q:1263
 msgid "t"
 msgstr ""
 
 #: src/language/stats/t-test.q:979 src/language/stats/t-test.q:1171
 #: src/language/stats/t-test.q:1263
 msgid "t"
 msgstr ""
 
-#: src/language/stats/oneway.q:688 src/language/stats/t-test.q:981
+#: src/language/stats/oneway.q:691 src/language/stats/t-test.q:981
 #: src/language/stats/t-test.q:1173 src/language/stats/t-test.q:1265
 msgid "Sig. (2-tailed)"
 msgstr ""
 
 #: src/language/stats/t-test.q:1173 src/language/stats/t-test.q:1265
 msgid "Sig. (2-tailed)"
 msgstr ""
 
-#: src/language/stats/oneway.q:732
+#: src/language/stats/oneway.q:735
 msgid "Assume equal variances"
 msgstr ""
 
 msgid "Assume equal variances"
 msgstr ""
 
-#: src/language/stats/oneway.q:736
+#: src/language/stats/oneway.q:739
 msgid "Does not assume equal"
 msgstr ""
 
 msgid "Does not assume equal"
 msgstr ""
 
-#: src/language/stats/rank.q:242
+#: src/language/stats/rank.q:244
 #, c-format
 msgid "Variable %s already exists."
 msgstr ""
 
 #, c-format
 msgid "Variable %s already exists."
 msgstr ""
 
-#: src/language/stats/rank.q:247
+#: src/language/stats/rank.q:249
 msgid "Too many variables in INTO clause."
 msgstr ""
 
 msgid "Too many variables in INTO clause."
 msgstr ""
 
@@ -3821,7 +3821,7 @@ msgstr ""
 msgid "%s & %s"
 msgstr ""
 
 msgid "%s & %s"
 msgstr ""
 
-#: src/language/tests/moments-test.c:46
+#: src/language/tests/moments-test.c:49
 msgid "expecting weight value"
 msgstr ""
 
 msgid "expecting weight value"
 msgstr ""
 
@@ -4525,87 +4525,87 @@ msgstr ""
 msgid "PSPP Data Editor"
 msgstr ""
 
 msgid "PSPP Data Editor"
 msgstr ""
 
-#: src/ui/gui/menu-actions.c:105
+#: src/ui/gui/menu-actions.c:108
 msgid "Open"
 msgstr ""
 
 msgid "Open"
 msgstr ""
 
-#: src/ui/gui/menu-actions.c:114
+#: src/ui/gui/menu-actions.c:116
 msgid "System Files (*.sav)"
 msgstr ""
 
 msgid "System Files (*.sav)"
 msgstr ""
 
-#: src/ui/gui/menu-actions.c:120
+#: src/ui/gui/menu-actions.c:122
 msgid "Portable Files (*.por) "
 msgstr ""
 
 msgid "Portable Files (*.por) "
 msgstr ""
 
-#: src/ui/gui/menu-actions.c:126
+#: src/ui/gui/menu-actions.c:128
 msgid "All Files"
 msgstr ""
 
 msgid "All Files"
 msgstr ""
 
-#: src/ui/gui/menu-actions.c:223
+#: src/ui/gui/menu-actions.c:232
 msgid "Save Data As"
 msgstr ""
 
 msgid "Save Data As"
 msgstr ""
 
-#: src/ui/gui/menu-actions.c:459
+#: src/ui/gui/menu-actions.c:474
 msgid "Font Selection"
 msgstr ""
 
 msgid "Font Selection"
 msgstr ""
 
-#: src/ui/gui/message-dialog.c:75
+#: src/ui/gui/message-dialog.c:78
 msgid "Script Error"
 msgstr ""
 
 msgid "Script Error"
 msgstr ""
 
-#: src/ui/gui/message-dialog.c:80
+#: src/ui/gui/message-dialog.c:83
 msgid "Installation Error"
 msgstr ""
 
 msgid "Installation Error"
 msgstr ""
 
-#: src/ui/gui/message-dialog.c:85
+#: src/ui/gui/message-dialog.c:88
 msgid "Data File Error"
 msgstr ""
 
 msgid "Data File Error"
 msgstr ""
 
-#: src/ui/gui/message-dialog.c:92
+#: src/ui/gui/message-dialog.c:95
 msgid "PSPP Error"
 msgstr ""
 
 msgid "PSPP Error"
 msgstr ""
 
-#: src/ui/gui/message-dialog.c:153
+#: src/ui/gui/message-dialog.c:155
 msgid "Terminating NOW due to fatal error"
 msgstr ""
 
 msgid "Terminating NOW due to fatal error"
 msgstr ""
 
-#: src/ui/gui/missing-val-dialog.c:112 src/ui/gui/missing-val-dialog.c:157
+#: src/ui/gui/missing-val-dialog.c:113 src/ui/gui/missing-val-dialog.c:158
 msgid "Incorrect value for variable type"
 msgstr ""
 
 msgid "Incorrect value for variable type"
 msgstr ""
 
-#: src/ui/gui/missing-val-dialog.c:132 src/ui/gui/missing-val-dialog.c:139
+#: src/ui/gui/missing-val-dialog.c:134 src/ui/gui/missing-val-dialog.c:141
 msgid "Incorrect range specification"
 msgstr ""
 
 msgid "Incorrect range specification"
 msgstr ""
 
-#: src/ui/gui/psppire-data-store.c:638
+#: src/ui/gui/psppire-data-store.c:653
 msgid "var"
 msgstr ""
 
 msgid "var"
 msgstr ""
 
-#: src/ui/gui/psppire-var-store.c:419
+#: src/ui/gui/psppire-var-store.c:424
 msgid "None"
 msgstr ""
 
 msgid "None"
 msgstr ""
 
-#: src/ui/gui/psppire-var-store.c:424
+#: src/ui/gui/psppire-var-store.c:429
 msgid "Comma"
 msgstr ""
 
 msgid "Comma"
 msgstr ""
 
-#: src/ui/gui/psppire-var-store.c:425
+#: src/ui/gui/psppire-var-store.c:430
 msgid "Dot"
 msgstr ""
 
 msgid "Dot"
 msgstr ""
 
-#: src/ui/gui/psppire-var-store.c:426
+#: src/ui/gui/psppire-var-store.c:431
 msgid "Scientific"
 msgstr ""
 
 msgid "Scientific"
 msgstr ""
 
-#: src/ui/gui/psppire-var-store.c:427
+#: src/ui/gui/psppire-var-store.c:432
 msgid "Date"
 msgstr ""
 
 msgid "Date"
 msgstr ""
 
-#: src/ui/gui/psppire-var-store.c:428
+#: src/ui/gui/psppire-var-store.c:433
 msgid "Dollar"
 msgstr ""
 
 msgid "Dollar"
 msgstr ""
 
-#: src/ui/gui/psppire-var-store.c:429
+#: src/ui/gui/psppire-var-store.c:434
 msgid "Custom"
 msgstr ""
 
 msgid "Custom"
 msgstr ""
 
index c5dbf2c9578d631d015c92b9d489cd9f47d451ad..ccd74ae141262c5f932a471b6715d59a924bdfb3 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: pspp-dev@gnu.org\n"
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: pspp-dev@gnu.org\n"
-"POT-Creation-Date: 2006-04-04 09:56+0800\n"
+"POT-Creation-Date: 2006-04-04 20:32+0800\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -312,21 +312,21 @@ msgstr ""
 msgid "Can't re-open %s as a %s for %s."
 msgstr ""
 
 msgid "Can't re-open %s as a %s for %s."
 msgstr ""
 
-#: src/data/filename.c:249
+#: src/data/filename.c:253
 #, c-format
 msgid "Searching for `%s'..."
 msgstr ""
 
 #, c-format
 msgid "Searching for `%s'..."
 msgstr ""
 
-#: src/data/filename.c:257 src/data/filename.c:289
+#: src/data/filename.c:261 src/data/filename.c:293
 msgid "Search unsuccessful!"
 msgstr ""
 
 msgid "Search unsuccessful!"
 msgstr ""
 
-#: src/data/filename.c:282
+#: src/data/filename.c:286
 #, c-format
 msgid "Found `%s'."
 msgstr ""
 
 #, c-format
 msgid "Found `%s'."
 msgstr ""
 
-#: src/data/filename.c:699
+#: src/data/filename.c:703
 #, c-format
 msgid "Not opening pipe file `%s' because SAFER option set."
 msgstr ""
 #, c-format
 msgid "Not opening pipe file `%s' because SAFER option set."
 msgstr ""
@@ -389,13 +389,13 @@ msgstr ""
 
 #: src/data/format.c:197 src/data/por-file-reader.c:481
 #: src/data/sys-file-reader.c:994 src/data/sys-file-reader.c:1003
 
 #: src/data/format.c:197 src/data/por-file-reader.c:481
 #: src/data/sys-file-reader.c:994 src/data/sys-file-reader.c:1003
-#: src/ui/gui/psppire-var-store.c:430
+#: src/ui/gui/psppire-var-store.c:435
 msgid "String"
 msgstr ""
 
 #: src/data/format.c:197 src/data/por-file-reader.c:481
 #: src/data/sys-file-reader.c:994 src/data/sys-file-reader.c:1003
 msgid "String"
 msgstr ""
 
 #: src/data/format.c:197 src/data/por-file-reader.c:481
 #: src/data/sys-file-reader.c:994 src/data/sys-file-reader.c:1003
-#: src/ui/gui/psppire-var-store.c:423
+#: src/ui/gui/psppire-var-store.c:428
 msgid "Numeric"
 msgstr ""
 
 msgid "Numeric"
 msgstr ""
 
@@ -927,45 +927,45 @@ msgstr ""
 msgid "number"
 msgstr ""
 
 msgid "number"
 msgstr ""
 
-#: src/data/variable.c:151
+#: src/data/variable.c:152
 #, c-format
 msgid ""
 "Character `%c' (in %s), may not appear as the first character in a variable "
 "name."
 msgstr ""
 
 #, c-format
 msgid ""
 "Character `%c' (in %s), may not appear as the first character in a variable "
 "name."
 msgstr ""
 
-#: src/data/variable.c:163
+#: src/data/variable.c:164
 #, c-format
 msgid "Character `%c' (in %s) may not appear in a variable name."
 msgstr ""
 
 #, c-format
 msgid "Character `%c' (in %s) may not appear in a variable name."
 msgstr ""
 
-#: src/data/variable.c:192
+#: src/data/variable.c:193
 msgid "Variable name cannot be empty string."
 msgstr ""
 
 msgid "Variable name cannot be empty string."
 msgstr ""
 
-#: src/data/variable.c:198
+#: src/data/variable.c:199
 #, c-format
 msgid "Variable name %s exceeds %d-character limit."
 msgstr ""
 
 #, c-format
 msgid "Variable name %s exceeds %d-character limit."
 msgstr ""
 
-#: src/data/variable.c:206
+#: src/data/variable.c:207
 #, c-format
 msgid "`%s' may not be used as a variable name because it is a reserved word."
 msgstr ""
 
 #, c-format
 msgid "`%s' may not be used as a variable name because it is a reserved word."
 msgstr ""
 
-#: src/data/variable.c:301
+#: src/data/variable.c:302
 msgid "Variable suffix too large."
 msgstr ""
 
 msgid "Variable suffix too large."
 msgstr ""
 
-#: src/data/variable.c:342
+#: src/data/variable.c:343
 msgid "ordinary"
 msgstr ""
 
 msgid "ordinary"
 msgstr ""
 
-#: src/data/variable.c:344
+#: src/data/variable.c:345
 msgid "system"
 msgstr ""
 
 msgid "system"
 msgstr ""
 
-#: src/data/variable.c:346
+#: src/data/variable.c:347
 msgid "scratch"
 msgstr ""
 
 msgid "scratch"
 msgstr ""
 
@@ -1103,96 +1103,96 @@ msgid ""
 "commands."
 msgstr ""
 
 "commands."
 msgstr ""
 
-#: src/language/data-io/data-list.c:143
+#: src/language/data-io/data-list.c:145
 msgid "DATA LIST must use the same file as the enclosing FILE TYPE."
 msgstr ""
 
 msgid "DATA LIST must use the same file as the enclosing FILE TYPE."
 msgstr ""
 
-#: src/language/data-io/data-list.c:162
+#: src/language/data-io/data-list.c:164
 msgid "The END subcommand may only be specified once."
 msgstr ""
 
 msgid "The END subcommand may only be specified once."
 msgstr ""
 
-#: src/language/data-io/data-list.c:197
+#: src/language/data-io/data-list.c:199
 msgid "Only one of FIXED, FREE, or LIST may be specified."
 msgstr ""
 
 msgid "Only one of FIXED, FREE, or LIST may be specified."
 msgstr ""
 
-#: src/language/data-io/data-list.c:347 src/language/data-io/print.c:297
+#: src/language/data-io/data-list.c:349 src/language/data-io/print.c:297
 #, c-format
 msgid ""
 "The record number specified, %ld, is before the previous record, %d.  Data "
 "fields must be listed in order of increasing record number."
 msgstr ""
 
 #, c-format
 msgid ""
 "The record number specified, %ld, is before the previous record, %d.  Data "
 "fields must be listed in order of increasing record number."
 msgstr ""
 
-#: src/language/data-io/data-list.c:376 src/language/data-io/data-list.c:1725
+#: src/language/data-io/data-list.c:378 src/language/data-io/data-list.c:1727
 msgid ""
 "SPSS-like or FORTRAN-like format specification expected after variable names."
 msgstr ""
 
 msgid ""
 "SPSS-like or FORTRAN-like format specification expected after variable names."
 msgstr ""
 
-#: src/language/data-io/data-list.c:387
+#: src/language/data-io/data-list.c:389
 msgid "At least one variable must be specified."
 msgstr ""
 
 msgid "At least one variable must be specified."
 msgstr ""
 
-#: src/language/data-io/data-list.c:392 src/language/data-io/print.c:329
+#: src/language/data-io/data-list.c:394 src/language/data-io/print.c:329
 msgid ""
 "Variables are specified on records that should not exist according to "
 "RECORDS subcommand."
 msgstr ""
 
 msgid ""
 "Variables are specified on records that should not exist according to "
 "RECORDS subcommand."
 msgstr ""
 
-#: src/language/data-io/data-list.c:425 src/language/data-io/data-list.c:439
+#: src/language/data-io/data-list.c:427 src/language/data-io/data-list.c:441
 #: src/language/data-io/print.c:521 src/language/data-io/print.c:534
 msgid "Column positions for fields must be positive."
 msgstr ""
 
 #: src/language/data-io/print.c:521 src/language/data-io/print.c:534
 msgid "Column positions for fields must be positive."
 msgstr ""
 
-#: src/language/data-io/data-list.c:444
+#: src/language/data-io/data-list.c:446
 msgid "The ending column for a field must be greater than the starting column."
 msgstr ""
 
 msgid "The ending column for a field must be greater than the starting column."
 msgstr ""
 
-#: src/language/data-io/data-list.c:458
+#: src/language/data-io/data-list.c:460
 #, c-format
 msgid "The %d columns %d-%d can't be evenly divided into %d fields."
 msgstr ""
 
 #, c-format
 msgid "The %d columns %d-%d can't be evenly divided into %d fields."
 msgstr ""
 
-#: src/language/data-io/data-list.c:478 src/language/data-io/print.c:562
+#: src/language/data-io/data-list.c:480 src/language/data-io/print.c:562
 msgid "A format specifier on this line has extra characters on the end."
 msgstr ""
 
 msgid "A format specifier on this line has extra characters on the end."
 msgstr ""
 
-#: src/language/data-io/data-list.c:493 src/language/data-io/print.c:578
+#: src/language/data-io/data-list.c:495 src/language/data-io/print.c:578
 msgid "The value for number of decimal places must be at least 1."
 msgstr ""
 
 msgid "The value for number of decimal places must be at least 1."
 msgstr ""
 
-#: src/language/data-io/data-list.c:507 src/language/data-io/print.c:591
+#: src/language/data-io/data-list.c:509 src/language/data-io/print.c:591
 #, c-format
 msgid "Input format %s doesn't accept decimal places."
 msgstr ""
 
 #, c-format
 msgid "Input format %s doesn't accept decimal places."
 msgstr ""
 
-#: src/language/data-io/data-list.c:554 src/language/data-io/data-list.c:650
-#: src/language/data-io/data-list.c:858
+#: src/language/data-io/data-list.c:556 src/language/data-io/data-list.c:652
+#: src/language/data-io/data-list.c:860
 #, c-format
 msgid "%s is a duplicate variable name."
 msgstr ""
 
 #, c-format
 msgid "%s is a duplicate variable name."
 msgstr ""
 
-#: src/language/data-io/data-list.c:559
+#: src/language/data-io/data-list.c:561
 #, c-format
 msgid "There is already a variable %s of a different type."
 msgstr ""
 
 #, c-format
 msgid "There is already a variable %s of a different type."
 msgstr ""
 
-#: src/language/data-io/data-list.c:566
+#: src/language/data-io/data-list.c:568
 #, c-format
 msgid "There is already a string variable %s of a different width."
 msgstr ""
 
 #, c-format
 msgid "There is already a string variable %s of a different width."
 msgstr ""
 
-#: src/language/data-io/data-list.c:641
+#: src/language/data-io/data-list.c:643
 msgid ""
 "The number of format specifications exceeds the given number of variable "
 "names."
 msgstr ""
 
 msgid ""
 "The number of format specifications exceeds the given number of variable "
 "names."
 msgstr ""
 
-#: src/language/data-io/data-list.c:754 src/language/data-io/print.c:767
+#: src/language/data-io/data-list.c:756 src/language/data-io/print.c:767
 msgid ""
 "There aren't enough format specifications to match the number of variable "
 "names given."
 msgstr ""
 
 msgid ""
 "There aren't enough format specifications to match the number of variable "
 "names given."
 msgstr ""
 
-#: src/language/data-io/data-list.c:781 src/language/data-io/data-list.c:899
+#: src/language/data-io/data-list.c:783 src/language/data-io/data-list.c:901
 #: src/language/data-io/print.c:798
 #: src/language/dictionary/sys-file-info.c:139
 #: src/language/dictionary/sys-file-info.c:373
 #: src/language/data-io/print.c:798
 #: src/language/dictionary/sys-file-info.c:139
 #: src/language/dictionary/sys-file-info.c:373
@@ -1200,182 +1200,182 @@ msgstr ""
 msgid "Variable"
 msgstr ""
 
 msgid "Variable"
 msgstr ""
 
-#: src/language/data-io/data-list.c:782 src/language/data-io/print.c:799
+#: src/language/data-io/data-list.c:784 src/language/data-io/print.c:799
 msgid "Record"
 msgstr ""
 
 msgid "Record"
 msgstr ""
 
-#: src/language/data-io/data-list.c:783 src/language/data-io/print.c:800
+#: src/language/data-io/data-list.c:785 src/language/data-io/print.c:800
 #: src/ui/gui/var-sheet.c:74
 msgid "Columns"
 msgstr ""
 
 #: src/ui/gui/var-sheet.c:74
 msgid "Columns"
 msgstr ""
 
-#: src/language/data-io/data-list.c:784 src/language/data-io/data-list.c:900
+#: src/language/data-io/data-list.c:786 src/language/data-io/data-list.c:902
 #: src/language/data-io/print.c:801
 msgid "Format"
 msgstr ""
 
 #: src/language/data-io/print.c:801
 msgid "Format"
 msgstr ""
 
-#: src/language/data-io/data-list.c:799
+#: src/language/data-io/data-list.c:801
 #, c-format
 msgid "Reading %d record from %s."
 msgid_plural "Reading %d records from %s."
 msgstr[0] ""
 msgstr[1] ""
 
 #, c-format
 msgid "Reading %d record from %s."
 msgid_plural "Reading %d records from %s."
 msgstr[0] ""
 msgstr[1] ""
 
-#: src/language/data-io/data-list.c:915
+#: src/language/data-io/data-list.c:917
 #, c-format
 msgid "Reading free-form data from %s."
 msgstr ""
 
 #, c-format
 msgid "Reading free-form data from %s."
 msgstr ""
 
-#: src/language/data-io/data-list.c:966
+#: src/language/data-io/data-list.c:968
 #, c-format
 msgid "Quoted string missing terminating `%c'."
 msgstr ""
 
 #, c-format
 msgid "Quoted string missing terminating `%c'."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1081
+#: src/language/data-io/data-list.c:1083
 #, c-format
 msgid "Partial case of %d of %d records discarded."
 msgstr ""
 
 #, c-format
 msgid "Partial case of %d of %d records discarded."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1134
+#: src/language/data-io/data-list.c:1136
 #, c-format
 msgid "Partial case discarded.  The first variable missing was %s."
 msgstr ""
 
 #, c-format
 msgid "Partial case discarded.  The first variable missing was %s."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1177
+#: src/language/data-io/data-list.c:1179
 #, c-format
 msgid ""
 "Missing value(s) for all variables from %s onward.  These will be filled "
 "with the system-missing value or blanks, as appropriate."
 msgstr ""
 
 #, c-format
 msgid ""
 "Missing value(s) for all variables from %s onward.  These will be filled "
 "with the system-missing value or blanks, as appropriate."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1388
+#: src/language/data-io/data-list.c:1390
 msgid ""
 "REPEATING DATA must use the same file as its corresponding DATA LIST or FILE "
 "TYPE."
 msgstr ""
 
 msgid ""
 "REPEATING DATA must use the same file as its corresponding DATA LIST or FILE "
 "TYPE."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1398 src/language/data-io/data-list.c:1432
-#: src/language/data-io/data-list.c:1445 src/language/data-io/data-list.c:1458
-#: src/language/data-io/data-list.c:1492
+#: src/language/data-io/data-list.c:1400 src/language/data-io/data-list.c:1434
+#: src/language/data-io/data-list.c:1447 src/language/data-io/data-list.c:1460
+#: src/language/data-io/data-list.c:1494
 #, c-format
 msgid "%s subcommand given multiple times."
 msgstr ""
 
 #, c-format
 msgid "%s subcommand given multiple times."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1421
+#: src/language/data-io/data-list.c:1423
 #, c-format
 msgid "STARTS beginning column (%d) exceeds STARTS ending column (%d)."
 msgstr ""
 
 #, c-format
 msgid "STARTS beginning column (%d) exceeds STARTS ending column (%d)."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1478
+#: src/language/data-io/data-list.c:1480
 #, c-format
 msgid "CONTINUED beginning column (%d) exceeds CONTINUED ending column (%d)."
 msgstr ""
 
 #, c-format
 msgid "CONTINUED beginning column (%d) exceeds CONTINUED ending column (%d)."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1501
+#: src/language/data-io/data-list.c:1503
 #, c-format
 msgid "ID beginning column (%ld) must be positive."
 msgstr ""
 
 #, c-format
 msgid "ID beginning column (%ld) must be positive."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1516
+#: src/language/data-io/data-list.c:1518
 #, c-format
 msgid "ID ending column (%ld) must be positive."
 msgstr ""
 
 #, c-format
 msgid "ID ending column (%ld) must be positive."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1522
+#: src/language/data-io/data-list.c:1524
 #, c-format
 msgid "ID ending column (%ld) cannot be less than ID beginning column (%d)."
 msgstr ""
 
 #, c-format
 msgid "ID ending column (%ld) cannot be less than ID beginning column (%d)."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1562
+#: src/language/data-io/data-list.c:1564
 msgid "Missing required specification STARTS."
 msgstr ""
 
 msgid "Missing required specification STARTS."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1564
+#: src/language/data-io/data-list.c:1566
 msgid "Missing required specification OCCURS."
 msgstr ""
 
 msgid "Missing required specification OCCURS."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1571
+#: src/language/data-io/data-list.c:1573
 msgid "ID specified without CONTINUED."
 msgstr ""
 
 msgid "ID specified without CONTINUED."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1582
+#: src/language/data-io/data-list.c:1584
 #, c-format
 msgid ""
 "STARTS beginning column (%d) exceeds default STARTS ending column taken from "
 "file's record width (%d)."
 msgstr ""
 
 #, c-format
 msgid ""
 "STARTS beginning column (%d) exceeds default STARTS ending column taken from "
 "file's record width (%d)."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1595
+#: src/language/data-io/data-list.c:1597
 #, c-format
 msgid ""
 "CONTINUED beginning column (%d) exceeds default CONTINUED ending column "
 "taken from file's record width (%d)."
 msgstr ""
 
 #, c-format
 msgid ""
 "CONTINUED beginning column (%d) exceeds default CONTINUED ending column "
 "taken from file's record width (%d)."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1674
+#: src/language/data-io/data-list.c:1676
 msgid "String variable not allowed here."
 msgstr ""
 
 msgid "String variable not allowed here."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1684
+#: src/language/data-io/data-list.c:1686
 #, c-format
 msgid "%s (%d) must be at least 1."
 msgstr ""
 
 #, c-format
 msgid "%s (%d) must be at least 1."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1690
+#: src/language/data-io/data-list.c:1692
 #, c-format
 msgid "Variable or integer expected for %s."
 msgstr ""
 
 #, c-format
 msgid "Variable or integer expected for %s."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1815
+#: src/language/data-io/data-list.c:1817
 #, c-format
 msgid "Encountered mismatched record ID \"%s\" expecting \"%s\"."
 msgstr ""
 
 #, c-format
 msgid "Encountered mismatched record ID \"%s\" expecting \"%s\"."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1847
+#: src/language/data-io/data-list.c:1849
 #, c-format
 msgid ""
 "Variable %s starting in column %d extends beyond physical record length of %"
 "d."
 msgstr ""
 
 #, c-format
 msgid ""
 "Variable %s starting in column %d extends beyond physical record length of %"
 "d."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1914
+#: src/language/data-io/data-list.c:1916
 #, c-format
 msgid "Invalid value %d for OCCURS."
 msgstr ""
 
 #, c-format
 msgid "Invalid value %d for OCCURS."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1920
+#: src/language/data-io/data-list.c:1922
 #, c-format
 msgid "Beginning column for STARTS (%d) must be at least 1."
 msgstr ""
 
 #, c-format
 msgid "Beginning column for STARTS (%d) must be at least 1."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1928
+#: src/language/data-io/data-list.c:1930
 #, c-format
 msgid "Ending column for STARTS (%d) is less than beginning column (%d)."
 msgstr ""
 
 #, c-format
 msgid "Ending column for STARTS (%d) is less than beginning column (%d)."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1936
+#: src/language/data-io/data-list.c:1938
 #, c-format
 msgid "Invalid value %d for LENGTH."
 msgstr ""
 
 #, c-format
 msgid "Invalid value %d for LENGTH."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1943
+#: src/language/data-io/data-list.c:1945
 #, c-format
 msgid "Beginning column for CONTINUED (%d) must be at least 1."
 msgstr ""
 
 #, c-format
 msgid "Beginning column for CONTINUED (%d) must be at least 1."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1951
+#: src/language/data-io/data-list.c:1953
 #, c-format
 msgid "Ending column for CONTINUED (%d) is less than beginning column (%d)."
 msgstr ""
 
 #, c-format
 msgid "Ending column for CONTINUED (%d) is less than beginning column (%d)."
 msgstr ""
 
-#: src/language/data-io/data-list.c:1983
+#: src/language/data-io/data-list.c:1985
 #, c-format
 msgid ""
 "Number of repetitions specified on OCCURS (%d) exceed number of repetitions "
 "available in space on STARTS (%d), and CONTINUED not specified."
 msgstr ""
 
 #, c-format
 msgid ""
 "Number of repetitions specified on OCCURS (%d) exceed number of repetitions "
 "available in space on STARTS (%d), and CONTINUED not specified."
 msgstr ""
 
-#: src/language/data-io/data-list.c:2001
+#: src/language/data-io/data-list.c:2003
 #, c-format
 msgid "Unexpected end of file with %d repetitions remaining out of %d."
 msgstr ""
 #, c-format
 msgid "Unexpected end of file with %d repetitions remaining out of %d."
 msgstr ""
@@ -2901,13 +2901,13 @@ msgstr ""
 
 #: src/language/stats/crosstabs.q:817 src/language/stats/crosstabs.q:1020
 #: src/language/stats/crosstabs.q:1740 src/language/stats/examine.q:859
 
 #: src/language/stats/crosstabs.q:817 src/language/stats/crosstabs.q:1020
 #: src/language/stats/crosstabs.q:1740 src/language/stats/examine.q:859
-#: src/language/stats/frequencies.q:1221 src/language/stats/oneway.q:312
-#: src/language/stats/oneway.q:475 src/language/stats/regression.q:294
+#: src/language/stats/frequencies.q:1221 src/language/stats/oneway.q:314
+#: src/language/stats/oneway.q:478 src/language/stats/regression.q:294
 msgid "Total"
 msgstr ""
 
 #: src/language/stats/crosstabs.q:827 src/language/stats/examine.q:935
 msgid "Total"
 msgstr ""
 
 #: src/language/stats/crosstabs.q:827 src/language/stats/examine.q:935
-#: src/language/stats/frequencies.q:1516 src/language/stats/oneway.q:398
+#: src/language/stats/frequencies.q:1516 src/language/stats/oneway.q:400
 #: src/language/stats/t-test.q:682 src/language/stats/t-test.q:705
 #: src/language/stats/t-test.q:830 src/language/stats/t-test.q:1365
 msgid "N"
 #: src/language/stats/t-test.q:682 src/language/stats/t-test.q:705
 #: src/language/stats/t-test.q:830 src/language/stats/t-test.q:1365
 msgid "N"
@@ -2961,8 +2961,8 @@ msgstr ""
 msgid "Statistic"
 msgstr ""
 
 msgid "Statistic"
 msgstr ""
 
-#: src/language/stats/crosstabs.q:1112 src/language/stats/oneway.q:285
-#: src/language/stats/oneway.q:687 src/language/stats/regression.q:287
+#: src/language/stats/crosstabs.q:1112 src/language/stats/oneway.q:287
+#: src/language/stats/oneway.q:690 src/language/stats/regression.q:287
 #: src/language/stats/t-test.q:980 src/language/stats/t-test.q:1172
 #: src/language/stats/t-test.q:1264
 msgid "df"
 #: src/language/stats/t-test.q:980 src/language/stats/t-test.q:1172
 #: src/language/stats/t-test.q:1264
 msgid "df"
@@ -3158,7 +3158,7 @@ msgid "%s Dependent"
 msgstr ""
 
 #: src/language/stats/descriptives.c:103 src/language/stats/examine.q:1474
 msgstr ""
 
 #: src/language/stats/descriptives.c:103 src/language/stats/examine.q:1474
-#: src/language/stats/frequencies.q:120 src/language/stats/oneway.q:399
+#: src/language/stats/frequencies.q:120 src/language/stats/oneway.q:401
 #: src/language/stats/t-test.q:683 src/language/stats/t-test.q:706
 #: src/language/stats/t-test.q:829 src/language/stats/t-test.q:1166
 msgid "Mean"
 #: src/language/stats/t-test.q:683 src/language/stats/t-test.q:706
 #: src/language/stats/t-test.q:829 src/language/stats/t-test.q:1166
 msgid "Mean"
@@ -3201,12 +3201,12 @@ msgid "Range"
 msgstr ""
 
 #: src/language/stats/descriptives.c:112 src/language/stats/examine.q:1579
 msgstr ""
 
 #: src/language/stats/descriptives.c:112 src/language/stats/examine.q:1579
-#: src/language/stats/frequencies.q:131 src/language/stats/oneway.q:411
+#: src/language/stats/frequencies.q:131 src/language/stats/oneway.q:413
 msgid "Minimum"
 msgstr ""
 
 #: src/language/stats/descriptives.c:113 src/language/stats/examine.q:1590
 msgid "Minimum"
 msgstr ""
 
 #: src/language/stats/descriptives.c:113 src/language/stats/examine.q:1590
-#: src/language/stats/frequencies.q:132 src/language/stats/oneway.q:412
+#: src/language/stats/frequencies.q:132 src/language/stats/oneway.q:414
 msgid "Maximum"
 msgstr ""
 
 msgid "Maximum"
 msgstr ""
 
@@ -3283,25 +3283,25 @@ msgstr ""
 msgid "Lowest"
 msgstr ""
 
 msgid "Lowest"
 msgstr ""
 
-#: src/language/stats/examine.q:1370 src/language/stats/oneway.q:401
-#: src/language/stats/oneway.q:685 src/language/stats/regression.q:191
+#: src/language/stats/examine.q:1370 src/language/stats/oneway.q:403
+#: src/language/stats/oneway.q:688 src/language/stats/regression.q:191
 msgid "Std. Error"
 msgstr ""
 
 msgid "Std. Error"
 msgstr ""
 
-#: src/language/stats/examine.q:1372 src/language/stats/oneway.q:415
+#: src/language/stats/examine.q:1372 src/language/stats/oneway.q:417
 msgid "Descriptives"
 msgstr ""
 
 msgid "Descriptives"
 msgstr ""
 
-#: src/language/stats/examine.q:1492 src/language/stats/oneway.q:406
+#: src/language/stats/examine.q:1492 src/language/stats/oneway.q:408
 #, c-format
 msgid "%g%% Confidence Interval for Mean"
 msgstr ""
 
 #, c-format
 msgid "%g%% Confidence Interval for Mean"
 msgstr ""
 
-#: src/language/stats/examine.q:1498 src/language/stats/oneway.q:408
+#: src/language/stats/examine.q:1498 src/language/stats/oneway.q:410
 msgid "Lower Bound"
 msgstr ""
 
 msgid "Lower Bound"
 msgstr ""
 
-#: src/language/stats/examine.q:1509 src/language/stats/oneway.q:409
+#: src/language/stats/examine.q:1509 src/language/stats/oneway.q:411
 msgid "Upper Bound"
 msgstr ""
 
 msgid "Upper Bound"
 msgstr ""
 
@@ -3314,7 +3314,7 @@ msgstr ""
 msgid "Median"
 msgstr ""
 
 msgid "Median"
 msgstr ""
 
-#: src/language/stats/examine.q:1566 src/language/stats/oneway.q:400
+#: src/language/stats/examine.q:1566 src/language/stats/oneway.q:402
 #: src/language/stats/t-test.q:684 src/language/stats/t-test.q:707
 #: src/language/stats/t-test.q:831 src/language/stats/t-test.q:1167
 msgid "Std. Deviation"
 #: src/language/stats/t-test.q:684 src/language/stats/t-test.q:707
 #: src/language/stats/t-test.q:831 src/language/stats/t-test.q:1167
 msgid "Std. Deviation"
@@ -3518,107 +3518,107 @@ msgstr ""
 msgid "TABLES subcommand may not appear more than once."
 msgstr ""
 
 msgid "TABLES subcommand may not appear more than once."
 msgstr ""
 
-#: src/language/stats/oneway.q:175
+#: src/language/stats/oneway.q:177
 msgid "Number of contrast coefficients must equal the number of groups"
 msgstr ""
 
 msgid "Number of contrast coefficients must equal the number of groups"
 msgstr ""
 
-#: src/language/stats/oneway.q:184
+#: src/language/stats/oneway.q:186
 #, c-format
 msgid "Coefficients for contrast %d do not total zero"
 msgstr ""
 
 #, c-format
 msgid "Coefficients for contrast %d do not total zero"
 msgstr ""
 
-#: src/language/stats/oneway.q:249
+#: src/language/stats/oneway.q:251
 #, c-format
 msgid "`%s' is not a variable name"
 msgstr ""
 
 #, c-format
 msgid "`%s' is not a variable name"
 msgstr ""
 
-#: src/language/stats/oneway.q:284 src/language/stats/regression.q:286
+#: src/language/stats/oneway.q:286 src/language/stats/regression.q:286
 msgid "Sum of Squares"
 msgstr ""
 
 msgid "Sum of Squares"
 msgstr ""
 
-#: src/language/stats/oneway.q:286 src/language/stats/regression.q:288
+#: src/language/stats/oneway.q:288 src/language/stats/regression.q:288
 msgid "Mean Square"
 msgstr ""
 
 msgid "Mean Square"
 msgstr ""
 
-#: src/language/stats/oneway.q:287 src/language/stats/regression.q:289
+#: src/language/stats/oneway.q:289 src/language/stats/regression.q:289
 #: src/language/stats/t-test.q:977
 msgid "F"
 msgstr ""
 
 #: src/language/stats/t-test.q:977
 msgid "F"
 msgstr ""
 
-#: src/language/stats/oneway.q:288 src/language/stats/oneway.q:541
+#: src/language/stats/oneway.q:290 src/language/stats/oneway.q:544
 #: src/language/stats/regression.q:194 src/language/stats/regression.q:290
 msgid "Significance"
 msgstr ""
 
 #: src/language/stats/regression.q:194 src/language/stats/regression.q:290
 msgid "Significance"
 msgstr ""
 
-#: src/language/stats/oneway.q:310
+#: src/language/stats/oneway.q:312
 msgid "Between Groups"
 msgstr ""
 
 msgid "Between Groups"
 msgstr ""
 
-#: src/language/stats/oneway.q:311
+#: src/language/stats/oneway.q:313
 msgid "Within Groups"
 msgstr ""
 
 msgid "Within Groups"
 msgstr ""
 
-#: src/language/stats/oneway.q:358 src/language/stats/regression.q:316
+#: src/language/stats/oneway.q:360 src/language/stats/regression.q:316
 msgid "ANOVA"
 msgstr ""
 
 msgid "ANOVA"
 msgstr ""
 
-#: src/language/stats/oneway.q:538
+#: src/language/stats/oneway.q:541
 msgid "Levene Statistic"
 msgstr ""
 
 msgid "Levene Statistic"
 msgstr ""
 
-#: src/language/stats/oneway.q:539
+#: src/language/stats/oneway.q:542
 msgid "df1"
 msgstr ""
 
 msgid "df1"
 msgstr ""
 
-#: src/language/stats/oneway.q:540
+#: src/language/stats/oneway.q:543
 msgid "df2"
 msgstr ""
 
 msgid "df2"
 msgstr ""
 
-#: src/language/stats/oneway.q:544
+#: src/language/stats/oneway.q:547
 msgid "Test of Homogeneity of Variances"
 msgstr ""
 
 msgid "Test of Homogeneity of Variances"
 msgstr ""
 
-#: src/language/stats/oneway.q:614
+#: src/language/stats/oneway.q:617
 msgid "Contrast Coefficients"
 msgstr ""
 
 msgid "Contrast Coefficients"
 msgstr ""
 
-#: src/language/stats/oneway.q:616 src/language/stats/oneway.q:683
+#: src/language/stats/oneway.q:619 src/language/stats/oneway.q:686
 msgid "Contrast"
 msgstr ""
 
 msgid "Contrast"
 msgstr ""
 
-#: src/language/stats/oneway.q:681
+#: src/language/stats/oneway.q:684
 msgid "Contrast Tests"
 msgstr ""
 
 msgid "Contrast Tests"
 msgstr ""
 
-#: src/language/stats/oneway.q:684
+#: src/language/stats/oneway.q:687
 msgid "Value of Contrast"
 msgstr ""
 
 msgid "Value of Contrast"
 msgstr ""
 
-#: src/language/stats/oneway.q:686 src/language/stats/regression.q:193
+#: src/language/stats/oneway.q:689 src/language/stats/regression.q:193
 #: src/language/stats/t-test.q:979 src/language/stats/t-test.q:1171
 #: src/language/stats/t-test.q:1263
 msgid "t"
 msgstr ""
 
 #: src/language/stats/t-test.q:979 src/language/stats/t-test.q:1171
 #: src/language/stats/t-test.q:1263
 msgid "t"
 msgstr ""
 
-#: src/language/stats/oneway.q:688 src/language/stats/t-test.q:981
+#: src/language/stats/oneway.q:691 src/language/stats/t-test.q:981
 #: src/language/stats/t-test.q:1173 src/language/stats/t-test.q:1265
 msgid "Sig. (2-tailed)"
 msgstr ""
 
 #: src/language/stats/t-test.q:1173 src/language/stats/t-test.q:1265
 msgid "Sig. (2-tailed)"
 msgstr ""
 
-#: src/language/stats/oneway.q:732
+#: src/language/stats/oneway.q:735
 msgid "Assume equal variances"
 msgstr ""
 
 msgid "Assume equal variances"
 msgstr ""
 
-#: src/language/stats/oneway.q:736
+#: src/language/stats/oneway.q:739
 msgid "Does not assume equal"
 msgstr ""
 
 msgid "Does not assume equal"
 msgstr ""
 
-#: src/language/stats/rank.q:242
+#: src/language/stats/rank.q:244
 #, c-format
 msgid "Variable %s already exists."
 msgstr ""
 
 #, c-format
 msgid "Variable %s already exists."
 msgstr ""
 
-#: src/language/stats/rank.q:247
+#: src/language/stats/rank.q:249
 msgid "Too many variables in INTO clause."
 msgstr ""
 
 msgid "Too many variables in INTO clause."
 msgstr ""
 
@@ -3822,7 +3822,7 @@ msgstr ""
 msgid "%s & %s"
 msgstr ""
 
 msgid "%s & %s"
 msgstr ""
 
-#: src/language/tests/moments-test.c:46
+#: src/language/tests/moments-test.c:49
 msgid "expecting weight value"
 msgstr ""
 
 msgid "expecting weight value"
 msgstr ""
 
@@ -4526,87 +4526,87 @@ msgstr ""
 msgid "PSPP Data Editor"
 msgstr ""
 
 msgid "PSPP Data Editor"
 msgstr ""
 
-#: src/ui/gui/menu-actions.c:105
+#: src/ui/gui/menu-actions.c:108
 msgid "Open"
 msgstr ""
 
 msgid "Open"
 msgstr ""
 
-#: src/ui/gui/menu-actions.c:114
+#: src/ui/gui/menu-actions.c:116
 msgid "System Files (*.sav)"
 msgstr ""
 
 msgid "System Files (*.sav)"
 msgstr ""
 
-#: src/ui/gui/menu-actions.c:120
+#: src/ui/gui/menu-actions.c:122
 msgid "Portable Files (*.por) "
 msgstr ""
 
 msgid "Portable Files (*.por) "
 msgstr ""
 
-#: src/ui/gui/menu-actions.c:126
+#: src/ui/gui/menu-actions.c:128
 msgid "All Files"
 msgstr ""
 
 msgid "All Files"
 msgstr ""
 
-#: src/ui/gui/menu-actions.c:223
+#: src/ui/gui/menu-actions.c:232
 msgid "Save Data As"
 msgstr ""
 
 msgid "Save Data As"
 msgstr ""
 
-#: src/ui/gui/menu-actions.c:459
+#: src/ui/gui/menu-actions.c:474
 msgid "Font Selection"
 msgstr ""
 
 msgid "Font Selection"
 msgstr ""
 
-#: src/ui/gui/message-dialog.c:75
+#: src/ui/gui/message-dialog.c:78
 msgid "Script Error"
 msgstr ""
 
 msgid "Script Error"
 msgstr ""
 
-#: src/ui/gui/message-dialog.c:80
+#: src/ui/gui/message-dialog.c:83
 msgid "Installation Error"
 msgstr ""
 
 msgid "Installation Error"
 msgstr ""
 
-#: src/ui/gui/message-dialog.c:85
+#: src/ui/gui/message-dialog.c:88
 msgid "Data File Error"
 msgstr ""
 
 msgid "Data File Error"
 msgstr ""
 
-#: src/ui/gui/message-dialog.c:92
+#: src/ui/gui/message-dialog.c:95
 msgid "PSPP Error"
 msgstr ""
 
 msgid "PSPP Error"
 msgstr ""
 
-#: src/ui/gui/message-dialog.c:153
+#: src/ui/gui/message-dialog.c:155
 msgid "Terminating NOW due to fatal error"
 msgstr ""
 
 msgid "Terminating NOW due to fatal error"
 msgstr ""
 
-#: src/ui/gui/missing-val-dialog.c:112 src/ui/gui/missing-val-dialog.c:157
+#: src/ui/gui/missing-val-dialog.c:113 src/ui/gui/missing-val-dialog.c:158
 msgid "Incorrect value for variable type"
 msgstr ""
 
 msgid "Incorrect value for variable type"
 msgstr ""
 
-#: src/ui/gui/missing-val-dialog.c:132 src/ui/gui/missing-val-dialog.c:139
+#: src/ui/gui/missing-val-dialog.c:134 src/ui/gui/missing-val-dialog.c:141
 msgid "Incorrect range specification"
 msgstr ""
 
 msgid "Incorrect range specification"
 msgstr ""
 
-#: src/ui/gui/psppire-data-store.c:638
+#: src/ui/gui/psppire-data-store.c:653
 msgid "var"
 msgstr ""
 
 msgid "var"
 msgstr ""
 
-#: src/ui/gui/psppire-var-store.c:419
+#: src/ui/gui/psppire-var-store.c:424
 msgid "None"
 msgstr ""
 
 msgid "None"
 msgstr ""
 
-#: src/ui/gui/psppire-var-store.c:424
+#: src/ui/gui/psppire-var-store.c:429
 msgid "Comma"
 msgstr ""
 
 msgid "Comma"
 msgstr ""
 
-#: src/ui/gui/psppire-var-store.c:425
+#: src/ui/gui/psppire-var-store.c:430
 msgid "Dot"
 msgstr ""
 
 msgid "Dot"
 msgstr ""
 
-#: src/ui/gui/psppire-var-store.c:426
+#: src/ui/gui/psppire-var-store.c:431
 msgid "Scientific"
 msgstr ""
 
 msgid "Scientific"
 msgstr ""
 
-#: src/ui/gui/psppire-var-store.c:427
+#: src/ui/gui/psppire-var-store.c:432
 msgid "Date"
 msgstr ""
 
 msgid "Date"
 msgstr ""
 
-#: src/ui/gui/psppire-var-store.c:428
+#: src/ui/gui/psppire-var-store.c:433
 msgid "Dollar"
 msgstr ""
 
 msgid "Dollar"
 msgstr ""
 
-#: src/ui/gui/psppire-var-store.c:429
+#: src/ui/gui/psppire-var-store.c:434
 msgid "Custom"
 msgstr ""
 
 msgid "Custom"
 msgstr ""
 
index 3c170c842c943fddd2039d8932543fb1849eebee..6c1414832b7c992fe5301940a80e33aca794b29d 100644 (file)
@@ -131,6 +131,7 @@ hash_value(const union value  *v, int width)
 bool
 var_is_valid_name (const char *name, bool issue_error) 
 {
 bool
 var_is_valid_name (const char *name, bool issue_error) 
 {
+  bool plausible;
   size_t length, i;
   
   assert (name != NULL);
   size_t length, i;
   
   assert (name != NULL);
@@ -139,7 +140,7 @@ var_is_valid_name (const char *name, bool issue_error)
      CHARACTERS */
   length = strlen (name);
 
      CHARACTERS */
   length = strlen (name);
 
-  bool plausible = var_is_plausible_name(name, issue_error);
+  plausible = var_is_plausible_name(name, issue_error);
 
   if ( ! plausible ) 
     return false;
 
   if ( ! plausible ) 
     return false;
index e3324cf20f354f575315da1fbfa25b9b2d11082b..db67a367cd63f18cb3316a1be412d8c59d4aaf04 100644 (file)
@@ -43,6 +43,8 @@
 #include <data/variable.h>
 #include <procedure.h>
 
 #include <data/variable.h>
 #include <procedure.h>
 
+#include "data-list.h"
+
 #include "gettext.h"
 #define _(msgid) gettext (msgid)
 \f
 #include "gettext.h"
 #define _(msgid) gettext (msgid)
 \f
index 9837d4ceb7ad6c5ec06c82014c8051829d034f37..2ef2d4869c5c22c870dd0aad50e1350667110645 100644 (file)
@@ -45,6 +45,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 #include <math/group.h>
 #include <math/levene.h>
 
 #include <math/group.h>
 #include <math/levene.h>
 
+#include "sort-criteria.h"
+
 #include "gettext.h"
 #define _(msgid) gettext (msgid)
 
 #include "gettext.h"
 #define _(msgid) gettext (msgid)
 
@@ -428,7 +430,8 @@ show_descriptives(void)
 
       const char *s = var_to_string(vars[v]);
 
 
       const char *s = var_to_string(vars[v]);
 
-      struct group_statistics *const *gs_array = hsh_sort(gp->group_hash);
+      struct group_statistics *const *gs_array =
+       (struct group_statistics *const *) hsh_sort(gp->group_hash);
       int count = 0;
 
       tab_text (t, 0, row, TAB_LEFT | TAT_TITLE, s);
       int count = 0;
 
       tab_text (t, 0, row, TAB_LEFT | TAT_TITLE, s);
index dc0b9ddd8969276097569a7015a7da8f2192f0b0..92667f1cf0e10c9b4740b8709bd11bcf076a9dfe 100644 (file)
@@ -25,6 +25,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 #include <math/sort.h>
 #include <data/variable.h>
 
 #include <math/sort.h>
 #include <data/variable.h>
 
+#include "sort-criteria.h"
+
 #include "gettext.h"
 #define _(msgid) gettext (msgid)
 
 #include "gettext.h"
 #define _(msgid) gettext (msgid)
 
index 4b685231454eaa2a17de5d9d9dab861c6dcdd84e..c3412e0419cb2c4d564183ae2f41e55ad304c497 100644 (file)
@@ -23,6 +23,9 @@
 #include <language/command.h>
 #include <language/lexer/lexer.h>
 #include <math/moments.h>
 #include <language/command.h>
 #include <language/lexer/lexer.h>
 #include <math/moments.h>
+#include "xalloc.h"
+#include <stdlib.h>
+#include <math.h>
 
 #define _(msgid) gettext (msgid)
 
 
 #define _(msgid) gettext (msgid)
 
index 08d620b8c271d4a90290577dffe507365a3660a7..e3d02345f7776000d6c54fd210f9079b67fbbbea 100644 (file)
@@ -305,6 +305,7 @@ pspp_linreg (const gsl_vector * Y, const gsl_matrix * X,
     }
   else
     {
     }
   else
     {
+      gsl_multifit_linear_workspace *wk ;
       /*
          Use QR decomposition via GSL.
        */
       /*
          Use QR decomposition via GSL.
        */
@@ -321,8 +322,8 @@ pspp_linreg (const gsl_vector * Y, const gsl_matrix * X,
              gsl_matrix_set (design, j, i + 1, tmp);
            }
        }
              gsl_matrix_set (design, j, i + 1, tmp);
            }
        }
-      gsl_multifit_linear_workspace *wk =
-       gsl_multifit_linear_alloc (design->size1, design->size2);
+
+      wk = gsl_multifit_linear_alloc (design->size1, design->size2);
       rc = gsl_multifit_linear (design, Y, param_estimates,
                                cache->cov, &(cache->sse), wk);
       for (i = 0; i < cache->n_coeffs; i++)
       rc = gsl_multifit_linear (design, Y, param_estimates,
                                cache->cov, &(cache->sse), wk);
       for (i = 0; i < cache->n_coeffs; i++)
index a8057ba43b8152276c9ebfbb66bdbe7b130e1643..e4f8e69bdb7c51ba5fac6a4816177b5d1bae6a53 100644 (file)
@@ -45,93 +45,6 @@ static const struct dataset dataset[DATASETS] =
   };
 
 
   };
 
 
-
-
-static void
-write_legend(struct chart *chart, const char *heading, int n);
-
-
-
-/* Write the abscissa label */
-void 
-chart_write_xlabel(struct chart *ch, const char *label)
-{
-  if ( ! ch ) 
-    return ;
-
-  pl_savestate_r(ch->lp);
-
-  pl_move_r(ch->lp,ch->data_left, ch->abscissa_top);
-  pl_alabel_r(ch->lp,0,'t',label);
-
-  pl_restorestate_r(ch->lp);
-
-}
-
-
-
-/* Write the ordinate label */
-void 
-chart_write_ylabel(struct chart *ch, const char *label)
-{
-  if ( ! ch ) 
-    return ;
-
-  pl_savestate_r(ch->lp);
-
-  pl_move_r(ch->lp, ch->data_bottom, ch->ordinate_right);
-  pl_textangle_r(ch->lp, 90);
-  pl_alabel_r(ch->lp, 0, 0, label);
-
-  pl_restorestate_r(ch->lp);
-}
-
-
-
-static void
-write_legend(struct chart *chart, const char *heading, 
-            int n)
-{
-  int ds;
-
-  if ( ! chart ) 
-    return ;
-
-
-  pl_savestate_r(chart->lp);
-
-  pl_filltype_r(chart->lp,1);
-
-  pl_move_r(chart->lp, chart->legend_left, 
-           chart->data_bottom + chart->font_size * n * 1.5);
-
-  pl_alabel_r(chart->lp,0,'b',heading);
-
-  for (ds = 0 ; ds < n ; ++ds ) 
-    {
-      pl_fmove_r(chart->lp,
-                chart->legend_left,
-                chart->data_bottom + chart->font_size * ds  * 1.5);
-
-      pl_savestate_r(chart->lp);    
-      pl_fillcolorname_r(chart->lp,data_colour[ds]);
-      pl_fboxrel_r (chart->lp,
-                   0,0,
-                   chart->font_size, chart->font_size);
-      pl_restorestate_r(chart->lp);    
-
-      pl_fmove_r(chart->lp,
-                chart->legend_left + chart->font_size * 1.5,
-                chart->data_bottom + chart->font_size * ds  * 1.5);
-
-      pl_alabel_r(chart->lp,'l','b',dataset[ds].label);
-    }
-
-
-  pl_restorestate_r(chart->lp);    
-}
-
-
 /* Plot a data point */
 void
 chart_datum(struct chart *ch, int dataset UNUSED, double x, double y)
 /* Plot a data point */
 void
 chart_datum(struct chart *ch, int dataset UNUSED, double x, double y)
index 9f68ba14857cd3e6ad2bc3dda62cf6bd2d94e0a4..6a23390cb3446707cefd86b810885f1ab38ce65a 100644 (file)
@@ -30,12 +30,6 @@ enum CHART_DIM
   };
 
 
   };
 
 
-/* Write the abscissa label */
-void chart_write_xlabel(struct chart *ch, const char *label);
-
-
-/* Write the ordinate label */
-void  chart_write_ylabel(struct chart *ch, const char *label);
 
 /* Plot a data point */
 void chart_datum(struct chart *ch, int dataset UNUSED, double x, double y);
 
 /* Plot a data point */
 void chart_datum(struct chart *ch, int dataset UNUSED, double x, double y);
index 6b91045273122af627eeba060f163d3a90cc1283..497251f07eda20677029b3066196a9aa13250a15 100644 (file)
@@ -28,7 +28,6 @@
 #include <assert.h>
 #include <math.h>
 
 #include <assert.h>
 #include <math.h>
 
-#include <output/charts/plot-chart.h>
 #include <output/charts/plot-chart.h>
 
 #include <math/chart-geometry.h>
 #include <output/charts/plot-chart.h>
 
 #include <math/chart-geometry.h>
@@ -177,3 +176,38 @@ chart_write_yscale(struct chart *ch, double smin, double smax, int ticks)
               (y - ch->y_min) * ch->ordinate_scale, "%g", y);
     }
 }
               (y - ch->y_min) * ch->ordinate_scale, "%g", y);
     }
 }
+
+
+/* Write the abscissa label */
+void 
+chart_write_xlabel(struct chart *ch, const char *label)
+{
+  if ( ! ch ) 
+    return ;
+
+  pl_savestate_r(ch->lp);
+
+  pl_move_r(ch->lp,ch->data_left, ch->abscissa_top);
+  pl_alabel_r(ch->lp,0,'t',label);
+
+  pl_restorestate_r(ch->lp);
+
+}
+
+
+
+/* Write the ordinate label */
+void 
+chart_write_ylabel(struct chart *ch, const char *label)
+{
+  if ( ! ch ) 
+    return ;
+
+  pl_savestate_r(ch->lp);
+
+  pl_move_r(ch->lp, ch->data_bottom, ch->ordinate_right);
+  pl_textangle_r(ch->lp, 90);
+  pl_alabel_r(ch->lp, 0, 0, label);
+
+  pl_restorestate_r(ch->lp);
+}
index e8bb7d42ce8befdbcbf27c4e2bfb2e68959771c4..c7a1b2dfaa2cf528a439f85c839f173394b44761 100644 (file)
@@ -68,5 +68,9 @@ void  chart_write_xscale(struct chart *ch, double min, double max, int ticks);
 /* Set the scale for the ordinate */
 void  chart_write_yscale(struct chart *ch, double smin, double smax, int ticks);
 
 /* Set the scale for the ordinate */
 void  chart_write_yscale(struct chart *ch, double smin, double smax, int ticks);
 
+void chart_write_xlabel(struct chart *ch, const char *label) ;
+
+/* Write the ordinate label */
+void  chart_write_ylabel(struct chart *ch, const char *label);
 
 #endif
 
 #endif
index 9afe978c2e50dfc97192e0ed774c4224cf644e3c..6282937016bac0abf6038e5750c7d307f1b9308c 100644 (file)
@@ -253,11 +253,11 @@ static gint
 psppire_custom_entry_expose (GtkWidget      *widget,
                     GdkEventExpose *event)
 {
 psppire_custom_entry_expose (GtkWidget      *widget,
                     GdkEventExpose *event)
 {
+  PsppireCustomEntry *ce = PSPPIRE_CUSTOM_ENTRY(widget);
+
   g_return_val_if_fail (PSPPIRE_IS_CUSTOM_ENTRY (widget), FALSE);
   g_return_val_if_fail (event != NULL, FALSE);
 
   g_return_val_if_fail (PSPPIRE_IS_CUSTOM_ENTRY (widget), FALSE);
   g_return_val_if_fail (event != NULL, FALSE);
 
-  PsppireCustomEntry *ce = PSPPIRE_CUSTOM_ENTRY(widget);
-
   if (GTK_WIDGET_DRAWABLE (widget))
     {
       GtkShadowType shadow_type;
   if (GTK_WIDGET_DRAWABLE (widget))
     {
       GtkShadowType shadow_type;
index bff1af9706765d8853275642cfd8d54c17b357a1..d32e6e373f265b6fa02f7b8d139bc666cfeaeb37 100644 (file)
@@ -70,9 +70,10 @@ static gboolean
 click2column(GtkWidget *w, gint col, gpointer data)
 {
   gint current_row, current_column;
 click2column(GtkWidget *w, gint col, gpointer data)
 {
   gint current_row, current_column;
-  select_sheet(PAGE_VAR_SHEET);
   GtkWidget *var_sheet  = get_widget_assert(xml, "variable_sheet");
 
   GtkWidget *var_sheet  = get_widget_assert(xml, "variable_sheet");
 
+  select_sheet(PAGE_VAR_SHEET);
+
   gtk_sheet_get_active_cell(GTK_SHEET(var_sheet), 
                            &current_row, &current_column);
 
   gtk_sheet_get_active_cell(GTK_SHEET(var_sheet), 
                            &current_row, &current_column);
 
@@ -86,26 +87,30 @@ click2column(GtkWidget *w, gint col, gpointer data)
 static gint 
 update_data_ref_entry(GtkSheet *sheet, gint row, gint col)
 {
 static gint 
 update_data_ref_entry(GtkSheet *sheet, gint row, gint col)
 {
+
   /* The entry where the reference to the current cell is displayed */
   GtkEntry *cell_ref_entry;
 
   PsppireDataStore *data_store = PSPPIRE_DATA_STORE(gtk_sheet_get_model(sheet));
   /* The entry where the reference to the current cell is displayed */
   GtkEntry *cell_ref_entry;
 
   PsppireDataStore *data_store = PSPPIRE_DATA_STORE(gtk_sheet_get_model(sheet));
+  if (data_store)
+    {
+      const struct PsppireVariable *pv = 
+       psppire_dict_get_variable(data_store->dict, col);
 
 
+      gchar *text ;
 
 
-  if ( !xml) 
-    return FALSE;
-
-  const struct PsppireVariable *pv = 
-    psppire_dict_get_variable(data_store->dict, col);
+      if ( !xml) 
+       return FALSE;
 
 
-  gchar *text = g_strdup_printf("%d: %s", row, 
-                               pv ? psppire_variable_get_name(pv) : "");
+      text = g_strdup_printf("%d: %s", row, 
+                            pv ? psppire_variable_get_name(pv) : "");
   
   
-  cell_ref_entry = GTK_ENTRY(get_widget_assert(xml, "cell_ref_entry"));
+      cell_ref_entry = GTK_ENTRY(get_widget_assert(xml, "cell_ref_entry"));
 
 
-  gtk_entry_set_text(cell_ref_entry, text);
+      gtk_entry_set_text(cell_ref_entry, text);
 
 
-  g_free(text);
+      g_free(text);
+    }
 
   return FALSE;
 }
 
   return FALSE;
 }
@@ -119,7 +124,6 @@ psppire_data_sheet_create (gchar *widget_name, gchar *string1, gchar *string2,
                           gint int1, gint int2)
 {
   GtkWidget *sheet;
                           gint int1, gint int2)
 {
   GtkWidget *sheet;
-  gint i;
 
   const gint rows = 10046;
 
 
   const gint rows = 10046;
 
index b3d83da270472ea6b62cf3d2ea1405d82870b727..549242e6f01a1b4b4bfc952a7965242a1f74b46c 100644 (file)
@@ -35,16 +35,18 @@ text_to_value(const gchar *text, union value *v,
   if ( format.type != FMT_A) 
     {
       if ( ! text ) return FALSE;
   if ( format.type != FMT_A) 
     {
       if ( ! text ) return FALSE;
-  
-      const gchar *s = text;
-      while(*s) 
-       {
-         if ( !isspace(*s))
-           break;
-         s++;
-       }
+
+      {
+       const gchar *s = text;
+       while(*s) 
+         {
+           if ( !isspace(*s))
+             break;
+           s++;
+         }
  
  
-      if ( !*s) return FALSE;
+       if ( !*s) return FALSE;
+      }
     }
 
   di.s = text;
     }
 
   di.s = text;
@@ -62,9 +64,11 @@ text_to_value(const gchar *text, union value *v,
 GtkWidget *
 get_widget_assert(GladeXML *xml, const gchar *name)
 {
 GtkWidget *
 get_widget_assert(GladeXML *xml, const gchar *name)
 {
+  GtkWidget *w;
   g_assert(xml);
   g_assert(name);
   g_assert(xml);
   g_assert(name);
-  GtkWidget * w = glade_xml_get_widget(xml, name);
+  
+  w = glade_xml_get_widget(xml, name);
 
   if ( !w ) 
     g_warning("Widget \"%s\" could not be found\n",name);
 
   if ( !w ) 
     g_warning("Widget \"%s\" could not be found\n",name);
index d10cd5153adee192c945bc7c10bd57a187f2b0de..0271837063f7e80376432c1f3424c1b663ba04a7 100644 (file)
@@ -99,8 +99,11 @@ void
 on_open1_activate                      (GtkMenuItem     *menuitem,
                                         gpointer         user_data)
 {
 on_open1_activate                      (GtkMenuItem     *menuitem,
                                         gpointer         user_data)
 {
+  bool finished = FALSE;
+
   GtkWidget *dialog;
   GtkWidget *data_editor  = get_widget_assert(xml, "data_editor");
   GtkWidget *dialog;
   GtkWidget *data_editor  = get_widget_assert(xml, "data_editor");
+  GtkFileFilter *filter ;
  
   dialog = gtk_file_chooser_dialog_new (_("Open"),
                                        GTK_WINDOW(data_editor),
  
   dialog = gtk_file_chooser_dialog_new (_("Open"),
                                        GTK_WINDOW(data_editor),
@@ -108,7 +111,6 @@ on_open1_activate                      (GtkMenuItem     *menuitem,
                                        GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
                                        GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
                                        NULL);
                                        GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
                                        GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
                                        NULL);
-  GtkFileFilter *filter ;
 
   filter = gtk_file_filter_new();
   gtk_file_filter_set_name(filter, _("System Files (*.sav)"));
 
   filter = gtk_file_filter_new();
   gtk_file_filter_set_name(filter, _("System Files (*.sav)"));
@@ -128,18 +130,24 @@ on_open1_activate                      (GtkMenuItem     *menuitem,
   gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog), filter);
 
 
   gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog), filter);
 
 
-  bool finished = FALSE;
   do {
 
     if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
       {
   do {
 
     if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
       {
-       GtkWidget *data_sheet = get_widget_assert(xml, "data_sheet");
-       g_assert(data_sheet);
+       PsppireVarStore *var_store ;
+       PsppireDataStore *data_store ;
+       struct dictionary *new_dict;
+       struct sfm_read_info ri;
+       struct sfm_reader *reader ; 
 
 
+       GtkWidget *data_sheet = get_widget_assert(xml, "data_sheet");
        GtkWidget *var_sheet = get_widget_assert(xml, "variable_sheet");
        GtkWidget *var_sheet = get_widget_assert(xml, "variable_sheet");
+       gchar *filename;
+
+       g_assert(data_sheet);
        g_assert(var_sheet);
 
        g_assert(var_sheet);
 
-       char *filename = gtk_file_chooser_get_filename
+       filename = gtk_file_chooser_get_filename
          (GTK_FILE_CHOOSER (dialog));
 
        if ( psppire_handle ) 
          (GTK_FILE_CHOOSER (dialog));
 
        if ( psppire_handle ) 
@@ -155,9 +163,6 @@ on_open1_activate                      (GtkMenuItem     *menuitem,
            continue;
          }
 
            continue;
          }
 
-       struct dictionary *new_dict;
-       struct sfm_read_info ri;
-       struct sfm_reader *reader ; 
 
        reader = sfm_open_reader (psppire_handle, &new_dict, &ri);
       
 
        reader = sfm_open_reader (psppire_handle, &new_dict, &ri);
       
@@ -166,13 +171,13 @@ on_open1_activate                      (GtkMenuItem     *menuitem,
 
        the_dictionary = psppire_dict_new_from_dict(new_dict);
 
 
        the_dictionary = psppire_dict_new_from_dict(new_dict);
 
-       PsppireVarStore *var_store = 
+       var_store = 
          PSPPIRE_VAR_STORE(gtk_sheet_get_model(GTK_SHEET(var_sheet)));
        
        psppire_var_store_set_dictionary(var_store, the_dictionary);
 
 
          PSPPIRE_VAR_STORE(gtk_sheet_get_model(GTK_SHEET(var_sheet)));
        
        psppire_var_store_set_dictionary(var_store, the_dictionary);
 
 
-       PsppireDataStore *data_store = 
+       data_store = 
          PSPPIRE_DATA_STORE(gtk_sheet_get_model(GTK_SHEET(data_sheet)));
        
 
          PSPPIRE_DATA_STORE(gtk_sheet_get_model(GTK_SHEET(data_sheet)));
        
 
@@ -186,17 +191,21 @@ on_open1_activate                      (GtkMenuItem     *menuitem,
 
        g_free (filename);
 
 
        g_free (filename);
 
-       const int ni = dict_get_next_value_idx(the_dictionary->dict);
-       if ( ni == 0 ) 
-         goto done;
+       {
+         const int ni = dict_get_next_value_idx(the_dictionary->dict);
+         gint case_num;
+         if ( ni == 0 ) 
+           goto done;
       
       
-       gint case_num;
-       for(case_num=0;;case_num++)
-         {
-           if (!psppire_case_array_add_case(the_cases, 
-                                    populate_case_from_reader, reader))
-             break;
-         }
+
+         for(case_num=0;;case_num++)
+           {
+             if (!psppire_case_array_add_case(the_cases, 
+                                              populate_case_from_reader, 
+                                              reader))
+               break;
+           }
+       }
 
        sfm_close_reader(reader);
        finished = TRUE;
 
        sfm_close_reader(reader);
        finished = TRUE;
@@ -250,11 +259,14 @@ void
 on_save1_activate                      (GtkMenuItem     *menuitem,
                                         gpointer         user_data)
 {
 on_save1_activate                      (GtkMenuItem     *menuitem,
                                         gpointer         user_data)
 {
+  GtkSheet *data_sheet ;
+  PsppireDataStore *data_store ;
+
   if ( ! psppire_handle ) 
     recreate_save_handle(&psppire_handle);
   
   if ( ! psppire_handle ) 
     recreate_save_handle(&psppire_handle);
   
-  GtkSheet *data_sheet = GTK_SHEET(get_widget_assert(xml, "data_sheet"));
-  PsppireDataStore *data_store = PSPPIRE_DATA_STORE(gtk_sheet_get_model(data_sheet));
+  data_sheet = GTK_SHEET(get_widget_assert(xml, "data_sheet"));
+  data_store = PSPPIRE_DATA_STORE(gtk_sheet_get_model(data_sheet));
   
   if ( psppire_handle ) 
     psppire_data_store_create_system_file(data_store,
   
   if ( psppire_handle ) 
     psppire_data_store_create_system_file(data_store,
@@ -266,12 +278,15 @@ void
 on_save_as1_activate                   (GtkMenuItem     *menuitem,
                                         gpointer         user_data)
 {
 on_save_as1_activate                   (GtkMenuItem     *menuitem,
                                         gpointer         user_data)
 {
+  GtkSheet *data_sheet ;
+  PsppireDataStore *data_store ;
+
   recreate_save_handle(&psppire_handle);
   if ( ! psppire_handle ) 
     return ;
 
   recreate_save_handle(&psppire_handle);
   if ( ! psppire_handle ) 
     return ;
 
-  GtkSheet *data_sheet = GTK_SHEET(get_widget_assert(xml, "data_sheet"));
-  PsppireDataStore *data_store = PSPPIRE_DATA_STORE(gtk_sheet_get_model(data_sheet));
+  data_sheet = GTK_SHEET(get_widget_assert(xml, "data_sheet"));
+  data_store = PSPPIRE_DATA_STORE(gtk_sheet_get_model(data_sheet));
 
   if ( psppire_handle ) 
     psppire_data_store_create_system_file(data_store,
 
   if ( psppire_handle ) 
     psppire_data_store_create_system_file(data_store,
index 6e93f7e6b3a7d77d8d10a5918de1c58be87778ec..c9ca4a1c57099cbe0ca8881f70347b4769de529d 100644 (file)
@@ -44,6 +44,9 @@ vmsg(int klass, const char *fmt, va_list args)
   gchar *msg = 0;
   gchar *text = g_strdup_vprintf (fmt, args);
 
   gchar *msg = 0;
   gchar *text = g_strdup_vprintf (fmt, args);
 
+  GtkWindow *parent ;
+  GtkWidget *dialog ;
+                   
   gint message_type;
 
   switch (klass)
   gint message_type;
 
   switch (klass)
@@ -93,14 +96,13 @@ vmsg(int klass, const char *fmt, va_list args)
       break;
     };
   
       break;
     };
   
-  GtkWindow *parent = GTK_WINDOW(get_widget_assert(xml, "data_editor"));
-
-  GtkWidget *dialog  =  gtk_message_dialog_new(parent,
-                                              GTK_DIALOG_MODAL,
-                                              message_type,
-                                              GTK_BUTTONS_CLOSE,
-                                              msg);
+  parent = GTK_WINDOW(get_widget_assert(xml, "data_editor"));
 
 
+  dialog = gtk_message_dialog_new(parent,
+                                 GTK_DIALOG_MODAL,
+                                 message_type,
+                                 GTK_BUTTONS_CLOSE,
+                                 msg);
   
   gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog), text);
 
   
   gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog), text);
 
index ec136cd0cf918a429ae0249ec34756c616e43c39..f81411eb0db8220a5560ba43b04a28ed3c6a1172 100644 (file)
@@ -39,6 +39,7 @@
 static void
 err_dialog(const gchar *msg, GtkWindow *window)
 {
 static void
 err_dialog(const gchar *msg, GtkWindow *window)
 {
+  GtkWidget *hbox ;
   GtkWidget *label = gtk_label_new (msg);
 
   GtkWidget *dialog = 
   GtkWidget *label = gtk_label_new (msg);
 
   GtkWidget *dialog = 
@@ -60,7 +61,7 @@ err_dialog(const gchar *msg, GtkWindow *window)
                            G_CALLBACK (gtk_widget_destroy),
                            dialog);
 
                            G_CALLBACK (gtk_widget_destroy),
                            dialog);
 
-  GtkWidget *hbox = gtk_hbox_new(FALSE, 10);
+  hbox = gtk_hbox_new(FALSE, 10);
 
   gtk_container_add (GTK_CONTAINER (GTK_DIALOG(dialog)->vbox),
                     hbox);
 
   gtk_container_add (GTK_CONTAINER (GTK_DIALOG(dialog)->vbox),
                     hbox);
@@ -117,6 +118,7 @@ missing_val_dialog_accept(GtkWidget *w, gpointer data)
   
   if (gtk_toggle_button_get_active(dialog->button_range))
     {
   
   if (gtk_toggle_button_get_active(dialog->button_range))
     {
+      gchar *discrete_text ;
       
       union value low_val ; 
       union value high_val;
       
       union value low_val ; 
       union value high_val;
@@ -141,10 +143,9 @@ missing_val_dialog_accept(GtkWidget *w, gpointer data)
          return;
        }
 
          return;
        }
 
-      gchar *discrete_text = 
+      discrete_text = 
        g_strdup(gtk_entry_get_text(GTK_ENTRY(dialog->discrete)));
 
        g_strdup(gtk_entry_get_text(GTK_ENTRY(dialog->discrete)));
 
-
       mv_set_type(&dialog->mvl, MV_NONE);
       mv_add_num_range(&dialog->mvl, low_val.f, high_val.f);
       
       mv_set_type(&dialog->mvl, MV_NONE);
       mv_add_num_range(&dialog->mvl, low_val.f, high_val.f);
       
@@ -254,13 +255,15 @@ missing_val_dialog_create(GladeXML *xml)
 void 
 missing_val_dialog_show(struct missing_val_dialog *dialog)
 {
 void 
 missing_val_dialog_show(struct missing_val_dialog *dialog)
 {
+  const struct fmt_spec *write_spec ;
+
   gint i;
   g_return_if_fail(dialog);
   g_return_if_fail(dialog->pv);
 
   mv_copy (&dialog->mvl, psppire_variable_get_missing(dialog->pv));
 
   gint i;
   g_return_if_fail(dialog);
   g_return_if_fail(dialog->pv);
 
   mv_copy (&dialog->mvl, psppire_variable_get_missing(dialog->pv));
 
-  const struct fmt_spec *write_spec = psppire_variable_get_write_spec(dialog->pv);
+  write_spec = psppire_variable_get_write_spec(dialog->pv);
 
   /* Blank all entry boxes and make them insensitive */
   gtk_entry_set_text(GTK_ENTRY(dialog->low), "");
 
   /* Blank all entry boxes and make them insensitive */
   gtk_entry_set_text(GTK_ENTRY(dialog->low), "");
@@ -318,10 +321,11 @@ missing_val_dialog_show(struct missing_val_dialog *dialog)
        {
          if ( i < n)
            {
        {
          if ( i < n)
            {
+             gchar *text ;
              union value value;
 
              mv_peek_value(&dialog->mvl, &value, i);
              union value value;
 
              mv_peek_value(&dialog->mvl, &value, i);
-             gchar *text = value_to_text(value, *write_spec);
+             text = value_to_text(value, *write_spec);
              gtk_entry_set_text(GTK_ENTRY(dialog->mv[i]), text);
              g_free(text);
            }
              gtk_entry_set_text(GTK_ENTRY(dialog->mv[i]), text);
              g_free(text);
            }
index e6ab7f7f3d5472dc344704c67d535fde480a237b..edff51fa2833d1572f93892620189efd52a73b0e 100644 (file)
@@ -218,12 +218,13 @@ psppire_case_array_iterate_case(PsppireCaseArray *ca,
 void
 psppire_case_array_insert_case(PsppireCaseArray *ca, gint posn)
 {
 void
 psppire_case_array_insert_case(PsppireCaseArray *ca, gint posn)
 {
+  gint i;
+
   g_return_if_fail(posn >= 0);
   g_return_if_fail(posn <= ca->size);
 
   g_assert(ca->size + 1 <= ca->capacity);
 
   g_return_if_fail(posn >= 0);
   g_return_if_fail(posn <= ca->size);
 
   g_assert(ca->size + 1 <= ca->capacity);
 
-  gint i;
 
   for(i = ca->size; i > posn ; --i)
       case_move(&ca->cases[i], &ca->cases[i - 1]);
 
   for(i = ca->size; i > posn ; --i)
       case_move(&ca->cases[i], &ca->cases[i - 1]);
@@ -237,11 +238,12 @@ psppire_case_array_insert_case(PsppireCaseArray *ca, gint posn)
 void
 psppire_case_array_delete_cases(PsppireCaseArray *ca, gint first, gint n_cases)
 {
 void
 psppire_case_array_delete_cases(PsppireCaseArray *ca, gint first, gint n_cases)
 {
+  gint i;
+
   g_return_if_fail(n_cases > 0);
   g_return_if_fail(first >= 0);
   g_return_if_fail(first + n_cases < ca->size);
   
   g_return_if_fail(n_cases > 0);
   g_return_if_fail(first >= 0);
   g_return_if_fail(first + n_cases < ca->size);
   
-  gint i;
 
   /* FIXME: Is this right ?? */
   for ( i = first; i < first + n_cases ; ++i ) 
 
   /* FIXME: Is this right ?? */
   for ( i = first; i < first + n_cases ; ++i ) 
@@ -290,13 +292,17 @@ psppire_case_array_set_value(PsppireCaseArray *ca, gint c, gint idx,
                          value_fill_func_t ff,
                          gpointer data)
 {
                          value_fill_func_t ff,
                          gpointer data)
 {
+  struct ccase *cc ;
+  union value *val ;
+  gboolean changed ;
+
   g_return_if_fail(c < ca->size);
 
   g_return_if_fail(c < ca->size);
 
-  struct ccase *cc = &ca->cases[c];
+  cc = &ca->cases[c];
 
 
-  union value *val = case_data_rw(cc, idx);
+  val = case_data_rw(cc, idx);
 
 
-  gboolean changed = ff(val, data);
+  changed = ff(val, data);
 
   case_unshare(cc);
 
 
   case_unshare(cc);
 
index 63e6f9c15689de5a3fa2baacc323d8a90ad4c1fa..e8537bcc1bce2d85a6b25dd83135bdc86a140340 100644 (file)
@@ -169,9 +169,11 @@ gboolean always_true()
 static void
 delete_cases_callback(GtkWidget *w, gint first, gint n_cases, gpointer data)
 {
 static void
 delete_cases_callback(GtkWidget *w, gint first, gint n_cases, gpointer data)
 {
+  PsppireDataStore *store  ;
+
   g_return_if_fail (data);
 
   g_return_if_fail (data);
 
-  PsppireDataStore *store  = PSPPIRE_DATA_STORE(data);
+  store  = PSPPIRE_DATA_STORE(data);
 
   g_assert(first >= 0);
 
 
   g_assert(first >= 0);
 
@@ -182,9 +184,10 @@ delete_cases_callback(GtkWidget *w, gint first, gint n_cases, gpointer data)
 static void
 insert_case_callback(GtkWidget *w, gint casenum, gpointer data)
 {
 static void
 insert_case_callback(GtkWidget *w, gint casenum, gpointer data)
 {
+  PsppireDataStore *store  ;
   g_return_if_fail (data);
 
   g_return_if_fail (data);
 
-  PsppireDataStore *store  = PSPPIRE_DATA_STORE(data);
+  store  = PSPPIRE_DATA_STORE(data);
   
   g_sheet_model_range_changed (G_SHEET_MODEL(store),
                                 casenum, -1,
   
   g_sheet_model_range_changed (G_SHEET_MODEL(store),
                                 casenum, -1,
@@ -196,11 +199,11 @@ insert_case_callback(GtkWidget *w, gint casenum, gpointer data)
 static void
 changed_case_callback(GtkWidget *w, gint casenum, gpointer data)
 {
 static void
 changed_case_callback(GtkWidget *w, gint casenum, gpointer data)
 {
+  PsppireDataStore *store  ;
   g_return_if_fail (data);
 
   g_return_if_fail (data);
 
-  PsppireDataStore *store  = PSPPIRE_DATA_STORE(data);
+  store  = PSPPIRE_DATA_STORE(data);
   
   
-
   g_sheet_model_range_changed (G_SHEET_MODEL(store),
                                 casenum, -1,
                                 casenum, -1);
   g_sheet_model_range_changed (G_SHEET_MODEL(store),
                                 casenum, -1,
                                 casenum, -1);
@@ -211,9 +214,11 @@ changed_case_callback(GtkWidget *w, gint casenum, gpointer data)
 static void
 delete_variables_callback(GtkWidget *w, gint var_num, gint n_vars, gpointer data)
 {
 static void
 delete_variables_callback(GtkWidget *w, gint var_num, gint n_vars, gpointer data)
 {
+  PsppireDataStore *store ;
+
   g_return_if_fail (data);
 
   g_return_if_fail (data);
 
-  PsppireDataStore *store  = PSPPIRE_DATA_STORE(data);
+  store  = PSPPIRE_DATA_STORE(data);
 
   g_sheet_column_columns_deleted(G_SHEET_COLUMN(store),
                                   var_num, n_vars);
 
   g_sheet_column_columns_deleted(G_SHEET_COLUMN(store),
                                   var_num, n_vars);
@@ -223,9 +228,11 @@ delete_variables_callback(GtkWidget *w, gint var_num, gint n_vars, gpointer data
 static void
 insert_variable_callback(GtkWidget *w, gint var_num, gpointer data)
 {
 static void
 insert_variable_callback(GtkWidget *w, gint var_num, gpointer data)
 {
+  PsppireDataStore *store;
+
   g_return_if_fail (data);
 
   g_return_if_fail (data);
 
-  PsppireDataStore *store  = PSPPIRE_DATA_STORE(data);
+  store  = PSPPIRE_DATA_STORE(data);
   
   /* 
   g_sheet_model_range_changed (G_SHEET_MODEL(store),
   
   /* 
   g_sheet_model_range_changed (G_SHEET_MODEL(store),
@@ -322,6 +329,9 @@ psppire_data_store_finalize (GObject *object)
 static const gchar *const 
 psppire_data_store_get_string(GSheetModel *model, gint row, gint column)
 {
 static const gchar *const 
 psppire_data_store_get_string(GSheetModel *model, gint row, gint column)
 {
+  const struct fmt_spec *fp ;
+  const struct PsppireVariable *pv ;
+  const union value *v ;
   static gchar s[255];
   PsppireDataStore *store = PSPPIRE_DATA_STORE(model);
 
   static gchar s[255];
   PsppireDataStore *store = PSPPIRE_DATA_STORE(model);
 
@@ -334,14 +344,11 @@ psppire_data_store_get_string(GSheetModel *model, gint row, gint column)
   if ( row >= psppire_case_array_get_n_cases(store->cases))
     return NULL;
 
   if ( row >= psppire_case_array_get_n_cases(store->cases))
     return NULL;
 
-  const struct PsppireVariable *pv = psppire_dict_get_variable(store->dict, column);
-
+  pv = psppire_dict_get_variable(store->dict, column);
 
 
-  const union value *v = 
-    psppire_case_array_get_value(store->cases, row, 
+  v =  psppire_case_array_get_value(store->cases, row, 
                              psppire_variable_get_index(pv));
 
                              psppire_variable_get_index(pv));
 
-
   if ( store->show_labels) 
     {
       const struct val_labs * vl = psppire_variable_get_value_labels(pv);
   if ( store->show_labels) 
     {
       const struct val_labs * vl = psppire_variable_get_value_labels(pv);
@@ -353,7 +360,7 @@ psppire_data_store_get_string(GSheetModel *model, gint row, gint column)
        }
     }
 
        }
     }
 
-  const struct fmt_spec *fp = psppire_variable_get_write_spec(pv);
+  fp = psppire_variable_get_write_spec(pv);
 
   if ( psppire_variable_get_type(pv) == NUMERIC ) 
     {
 
   if ( psppire_variable_get_type(pv) == NUMERIC ) 
     {
@@ -370,22 +377,24 @@ psppire_data_store_get_string(GSheetModel *model, gint row, gint column)
       s[len] = '\0';
     }
 
       s[len] = '\0';
     }
 
-  static gchar buf[255];
-  GError *err = NULL;
-  gchar *text = g_locale_to_utf8(s, fp->w, 0, 0, &err);
-  if ( !err ) 
-    { 
-      g_snprintf(buf, 255, text);
-      g_free(text);
-    }
-  else
-    {
-      g_warning("Cannot convert string \"%s\" to utf-8: %s\n", s, err->message);
-      g_error_free(err);
-      return NULL;
-    }
+  {
+    static gchar buf[255];
+    GError *err = NULL;
+    gchar *text = g_locale_to_utf8(s, fp->w, 0, 0, &err);
+    if ( !err ) 
+      { 
+       g_snprintf(buf, 255, text);
+       g_free(text);
+      }
+    else
+      {
+       g_warning("Cannot convert string \"%s\" to utf-8: %s\n", s, err->message);
+       g_error_free(err);
+       return NULL;
+      }
 
   return buf ;
 
   return buf ;
+  }
 }
 
 
 }
 
 
@@ -462,17 +471,19 @@ psppire_data_store_set_string(GSheetModel *model,
        psppire_data_store_clear_datum(model, r, c);
     }
 
        psppire_data_store_clear_datum(model, r, c);
     }
 
-  const gint index = psppire_variable_get_index(pv);
+  {
+    const gint index = psppire_variable_get_index(pv);
 
 
-  struct data_in d_in;
-  d_in.s = text;
-  d_in.e = text + strlen(text);
-  d_in.v = 0;
-  d_in.f1 = d_in.f2 = 0;
-  d_in.format = * psppire_variable_get_write_spec(pv);
-  d_in.flags = 0;
+    struct data_in d_in;
+    d_in.s = text;
+    d_in.e = text + strlen(text);
+    d_in.v = 0;
+    d_in.f1 = d_in.f2 = 0;
+    d_in.format = * psppire_variable_get_write_spec(pv);
+    d_in.flags = 0;
 
 
-  psppire_case_array_set_value(store->cases, row, index, fillit, &d_in);
+    psppire_case_array_set_value(store->cases, row, index, fillit, &d_in);
+  }
 
   return TRUE;
 }
 
   return TRUE;
 }
@@ -521,15 +532,17 @@ void
 psppire_data_store_create_system_file(PsppireDataStore *store,
                              struct file_handle *handle)
 {
 psppire_data_store_create_system_file(PsppireDataStore *store,
                              struct file_handle *handle)
 {
-  g_assert(handle);
-
   const struct sfm_write_options wo = {
     true, /* writeable */
     false, /* dont compress */
     3 /* version */
   }; 
 
   const struct sfm_write_options wo = {
     true, /* writeable */
     false, /* dont compress */
     3 /* version */
   }; 
 
-  struct sfm_writer *writer = sfm_open_writer(handle, store->dict->dict, wo);
+  struct sfm_writer *writer ;
+
+  g_assert(handle);
+
+  writer = sfm_open_writer(handle, store->dict->dict, wo);
 
   if ( ! writer) 
     return;
 
   if ( ! writer) 
     return;
@@ -557,13 +570,13 @@ static guint
 M_width(GtkSheet *sheet, gint row, gint col)
 {
   GtkSheetCellAttr attributes;
 M_width(GtkSheet *sheet, gint row, gint col)
 {
   GtkSheetCellAttr attributes;
-
-  gtk_sheet_get_attributes(sheet, row, col, &attributes);
-
   PangoRectangle rect;
   /* FIXME: make this a member of the data store */
   static PangoLayout *layout = 0;
 
   PangoRectangle rect;
   /* FIXME: make this a member of the data store */
   static PangoLayout *layout = 0;
 
+
+  gtk_sheet_get_attributes(sheet, row, col, &attributes);
+
   if (! layout ) 
     layout = gtk_widget_create_pango_layout (GTK_WIDGET(sheet), "M");
   
   if (! layout ) 
     layout = gtk_widget_create_pango_layout (GTK_WIDGET(sheet), "M");
   
@@ -592,13 +605,14 @@ columnWidthToPixels(GtkSheet *sheet, gint column, guint width)
 static gint
 geometry_get_width(const GSheetColumn *geom, gint unit, GtkSheet *sheet)
 {
 static gint
 geometry_get_width(const GSheetColumn *geom, gint unit, GtkSheet *sheet)
 {
+  const struct PsppireVariable *pv ;
   PsppireDataStore *ds = PSPPIRE_DATA_STORE(geom);
 
   if ( unit >= psppire_dict_get_var_cnt(ds->dict) )
     return 75;
 
   /* FIXME: We can optimise this by caching the widths until they're resized */
   PsppireDataStore *ds = PSPPIRE_DATA_STORE(geom);
 
   if ( unit >= psppire_dict_get_var_cnt(ds->dict) )
     return 75;
 
   /* FIXME: We can optimise this by caching the widths until they're resized */
-  const struct PsppireVariable *pv = psppire_dict_get_variable(ds->dict, unit);
+  pv = psppire_dict_get_variable(ds->dict, unit);
 
   return columnWidthToPixels(sheet, unit, psppire_variable_get_columns(pv));
 }
 
   return columnWidthToPixels(sheet, unit, psppire_variable_get_columns(pv));
 }
@@ -622,12 +636,13 @@ static GtkJustification
 geometry_get_justification(const GSheetColumn *geom, gint unit)
 {
   PsppireDataStore *ds = PSPPIRE_DATA_STORE(geom);
 geometry_get_justification(const GSheetColumn *geom, gint unit)
 {
   PsppireDataStore *ds = PSPPIRE_DATA_STORE(geom);
+  const struct PsppireVariable *pv ;
 
 
   if ( unit >= psppire_dict_get_var_cnt(ds->dict) )
     return GTK_JUSTIFY_LEFT;
 
 
 
   if ( unit >= psppire_dict_get_var_cnt(ds->dict) )
     return GTK_JUSTIFY_LEFT;
 
-  const struct PsppireVariable *pv = psppire_dict_get_variable(ds->dict, unit);
+  pv = psppire_dict_get_variable(ds->dict, unit);
 
   /* Kludge: Happily GtkJustification is defined similarly
      to enum alignment from pspp/variable.h */
 
   /* Kludge: Happily GtkJustification is defined similarly
      to enum alignment from pspp/variable.h */
@@ -640,12 +655,13 @@ static const gchar null_var_name[]=_("var");
 static const gchar *
 geometry_get_button_label(const GSheetColumn *geom, gint unit)
 {
 static const gchar *
 geometry_get_button_label(const GSheetColumn *geom, gint unit)
 {
+  struct PsppireVariable *pv ;
   PsppireDataStore *ds = PSPPIRE_DATA_STORE(geom);
 
   if ( unit >= psppire_dict_get_var_cnt(ds->dict) )
     return null_var_name;
 
   PsppireDataStore *ds = PSPPIRE_DATA_STORE(geom);
 
   if ( unit >= psppire_dict_get_var_cnt(ds->dict) )
     return null_var_name;
 
-  struct PsppireVariable *pv = psppire_dict_get_variable(ds->dict, unit);
+  pv = psppire_dict_get_variable(ds->dict, unit);
 
   return psppire_variable_get_name(pv);
 }
 
   return psppire_variable_get_name(pv);
 }
index 357ec031b5504aae5de48c72355b4dbf146642df..f919650491d993f565acc7cb74b9150f30064f70 100644 (file)
@@ -228,6 +228,7 @@ auto_generate_var_name(PsppireDict *dict)
 void
 psppire_dict_insert_variable(PsppireDict *d, gint idx, const gchar *name)
 {
 void
 psppire_dict_insert_variable(PsppireDict *d, gint idx, const gchar *name)
 {
+  struct variable *var ;
   gint i;
   g_return_if_fail(d);
   g_return_if_fail(G_IS_PSPPIRE_DICT(d));
   gint i;
   g_return_if_fail(d);
   g_return_if_fail(G_IS_PSPPIRE_DICT(d));
@@ -257,12 +258,10 @@ psppire_dict_insert_variable(PsppireDict *d, gint idx, const gchar *name)
   if ( ! name ) 
     name = auto_generate_var_name(d);
   
   if ( ! name ) 
     name = auto_generate_var_name(d);
   
-  struct variable *var = 
-    dict_create_var(d->dict, name, 0);
+  var = dict_create_var(d->dict, name, 0);
 
   dict_reorder_var(d->dict, var, idx);
 
 
   dict_reorder_var(d->dict, var, idx);
 
-
   d->variables[idx] = g_malloc(sizeof (struct PsppireVariable));
   d->variables[idx]->v = var;
   d->variables[idx]->dict = d;
   d->variables[idx] = g_malloc(sizeof (struct PsppireVariable));
   d->variables[idx]->v = var;
   d->variables[idx]->dict = d;
@@ -332,6 +331,7 @@ psppire_dict_set_name(PsppireDict* d, gint idx, const gchar *name)
 struct PsppireVariable *
 psppire_dict_get_variable(PsppireDict *d, gint idx)
 {
 struct PsppireVariable *
 psppire_dict_get_variable(PsppireDict *d, gint idx)
 {
+  struct PsppireVariable *var ;
   g_return_val_if_fail(d, NULL);
   g_return_val_if_fail(d->dict, NULL);
   g_return_val_if_fail(d->variables, NULL);
   g_return_val_if_fail(d, NULL);
   g_return_val_if_fail(d->dict, NULL);
   g_return_val_if_fail(d->variables, NULL);
@@ -339,7 +339,7 @@ psppire_dict_get_variable(PsppireDict *d, gint idx)
   if (idx < 0 || idx >= psppire_dict_get_var_cnt(d))
     return NULL;
 
   if (idx < 0 || idx >= psppire_dict_get_var_cnt(d))
     return NULL;
 
-  struct PsppireVariable *var = d->variables[idx] ; 
+  var = d->variables[idx] ; 
 
   if (! var ) 
     {
 
   if (! var ) 
     {
@@ -394,19 +394,21 @@ psppire_dict_clear(PsppireDict *d)
   g_return_if_fail(d);
   g_return_if_fail(d->dict);
 
   g_return_if_fail(d);
   g_return_if_fail(d->dict);
 
-  const gint n_vars = dict_get_var_cnt(d->dict);
-  gint i;
+  {
+    const gint n_vars = dict_get_var_cnt(d->dict);
+    gint i;
   
   
-  dict_clear(d->dict);
+    dict_clear(d->dict);
 
 
-  /* Invalidate the entire cache */
-  for ( i = 0 ; i < d->cache_size ; ++i ) 
-    {
-      g_free(d->variables[i]);
-      d->variables[i] = 0;
-    }
+    /* Invalidate the entire cache */
+    for ( i = 0 ; i < d->cache_size ; ++i ) 
+      {
+       g_free(d->variables[i]);
+       d->variables[i] = 0;
+      }
 
 
-  g_signal_emit(d, signal[VARIABLES_DELETED], 0, 0, n_vars );  
+    g_signal_emit(d, signal[VARIABLES_DELETED], 0, 0, n_vars );  
+  }
 }
 
 
 }
 
 
index b6966f6a83f719c04b4e53fc90b0ad7047d282e5..1aefb8f98bdfdce96f6640b0417d6da4288dac65 100644 (file)
@@ -115,11 +115,10 @@ psppire_var_store_class_init (PsppireVarStoreClass *class)
 static void
 psppire_var_store_init (PsppireVarStore *var_store)
 {
 static void
 psppire_var_store_init (PsppireVarStore *var_store)
 {
+  GdkColormap *colormap = gdk_colormap_get_system();
 
   g_assert(gdk_color_parse("gray", &var_store->disabled));
 
 
   g_assert(gdk_color_parse("gray", &var_store->disabled));
 
-  GdkColormap *colormap = gdk_colormap_get_system();
-
   gdk_colormap_alloc_color (colormap, &var_store->disabled, FALSE, TRUE);
 
   var_store->dict = 0;
   gdk_colormap_alloc_color (colormap, &var_store->disabled, FALSE, TRUE);
 
   var_store->dict = 0;
@@ -128,6 +127,7 @@ psppire_var_store_init (PsppireVarStore *var_store)
 static gboolean
 psppire_var_store_item_editable(PsppireVarStore *var_store, gint row, gint column)
 {
 static gboolean
 psppire_var_store_item_editable(PsppireVarStore *var_store, gint row, gint column)
 {
+  const struct fmt_spec *write_spec ;
 
   struct PsppireVariable *pv = psppire_var_store_get_variable(var_store, row);
 
 
   struct PsppireVariable *pv = psppire_var_store_get_variable(var_store, row);
 
@@ -137,7 +137,7 @@ psppire_var_store_item_editable(PsppireVarStore *var_store, gint row, gint colum
   if ( ALPHA == psppire_variable_get_type(pv) && column == COL_DECIMALS ) 
     return FALSE;
 
   if ( ALPHA == psppire_variable_get_type(pv) && column == COL_DECIMALS ) 
     return FALSE;
 
-  const struct fmt_spec *write_spec = psppire_variable_get_write_spec(pv);
+  write_spec = psppire_variable_get_write_spec(pv);
 
   switch ( write_spec->type ) 
     {
 
   switch ( write_spec->type ) 
     {
@@ -298,6 +298,8 @@ psppire_var_store_finalize (GObject *object)
 static const gchar *const 
 psppire_var_store_get_string(GSheetModel *model, gint row, gint column)
 {
 static const gchar *const 
 psppire_var_store_get_string(GSheetModel *model, gint row, gint column)
 {
+  const gchar *s ;
+
   PsppireVarStore *store = PSPPIRE_VAR_STORE(model);
 
   struct PsppireVariable *pv;
   PsppireVarStore *store = PSPPIRE_VAR_STORE(model);
 
   struct PsppireVariable *pv;
@@ -307,7 +309,7 @@ psppire_var_store_get_string(GSheetModel *model, gint row, gint column)
   
   pv = psppire_dict_get_variable (store->dict, row);
   
   
   pv = psppire_dict_get_variable (store->dict, row);
   
-  const gchar *s = text_for_column(pv, column);
+  s = text_for_column(pv, column);
 
   return s;
 }
 
   return s;
 }
@@ -332,12 +334,14 @@ psppire_var_store_get_variable(PsppireVarStore *store, gint row)
 static gboolean 
 psppire_var_store_clear(GSheetModel *model,  gint row, gint col)
 {
 static gboolean 
 psppire_var_store_clear(GSheetModel *model,  gint row, gint col)
 {
+  struct PsppireVariable *pv ;
+
   PsppireVarStore *var_store = PSPPIRE_VAR_STORE(model);
 
   if ( row >= psppire_dict_get_var_cnt(var_store->dict))
       return FALSE;
 
   PsppireVarStore *var_store = PSPPIRE_VAR_STORE(model);
 
   if ( row >= psppire_dict_get_var_cnt(var_store->dict))
       return FALSE;
 
-  struct PsppireVariable *pv = psppire_var_store_get_variable(var_store, row);
+  pv = psppire_var_store_get_variable(var_store, row);
 
   if ( !pv ) 
     return FALSE;
 
   if ( !pv ) 
     return FALSE;
@@ -361,13 +365,14 @@ static gboolean
 psppire_var_store_set_string(GSheetModel *model, 
                          const gchar *text, gint row, gint col)
 {
 psppire_var_store_set_string(GSheetModel *model, 
                          const gchar *text, gint row, gint col)
 {
+  struct PsppireVariable *pv ;
+
   PsppireVarStore *var_store = PSPPIRE_VAR_STORE(model);
 
   if ( row >= psppire_dict_get_var_cnt(var_store->dict))
       return FALSE;
 
   PsppireVarStore *var_store = PSPPIRE_VAR_STORE(model);
 
   if ( row >= psppire_dict_get_var_cnt(var_store->dict))
       return FALSE;
 
-  struct PsppireVariable *pv = psppire_var_store_get_variable(var_store, row);
-
+  pv = psppire_var_store_get_variable(var_store, row);
   if ( !pv ) 
     return FALSE;
 
   if ( !pv ) 
     return FALSE;
 
@@ -583,11 +588,12 @@ text_for_column(const struct PsppireVariable *pv, gint c)
 
            g_assert(vl);
 
 
            g_assert(vl);
 
-           gchar *const vstr = value_to_text(vl->value, *write_spec);
-
-           g_snprintf(buf, MAX_CELL_TEXT_LEN, "{%s,\"%s\"}_", vstr, vl->label);
+           {
+             gchar *const vstr = value_to_text(vl->value, *write_spec);
 
 
-           g_free(vstr);
+             g_snprintf(buf, MAX_CELL_TEXT_LEN, "{%s,\"%s\"}_", vstr, vl->label);
+             g_free(vstr);
+           }
 
            val_labs_done(&ip);
 
 
            val_labs_done(&ip);
 
index 7d23f48bfbcaf6bea6dbdc3e1c96ac8793acb101..49dd84b6566fb56b4d2f5246873cbb2c18ca512c 100644 (file)
@@ -87,11 +87,13 @@ psppire_variable_set_label(struct PsppireVariable *pv, const gchar *label)
 gboolean
 psppire_variable_set_decimals(struct PsppireVariable *pv, gint decimals)
 {
 gboolean
 psppire_variable_set_decimals(struct PsppireVariable *pv, gint decimals)
 {
+  struct fmt_spec fmt;
+
   g_return_val_if_fail(pv, FALSE);
   g_return_val_if_fail(pv->dict, FALSE);
   g_return_val_if_fail(pv->v, FALSE);
 
   g_return_val_if_fail(pv, FALSE);
   g_return_val_if_fail(pv->dict, FALSE);
   g_return_val_if_fail(pv->v, FALSE);
 
-  struct fmt_spec fmt = pv->v->write;
+  fmt = pv->v->write;
 
   fmt.d = decimals;
 
 
   fmt.d = decimals;
 
@@ -103,11 +105,12 @@ psppire_variable_set_decimals(struct PsppireVariable *pv, gint decimals)
 gboolean
 psppire_variable_set_width(struct PsppireVariable *pv, gint width)
 {
 gboolean
 psppire_variable_set_width(struct PsppireVariable *pv, gint width)
 {
+  struct fmt_spec fmt ;
   g_return_val_if_fail(pv, FALSE);
   g_return_val_if_fail(pv->dict, FALSE);
   g_return_val_if_fail(pv->v, FALSE);
 
   g_return_val_if_fail(pv, FALSE);
   g_return_val_if_fail(pv->dict, FALSE);
   g_return_val_if_fail(pv->v, FALSE);
 
-  struct fmt_spec fmt = pv->v->write;
+  fmt = pv->v->write;
 
   fmt.w = width;
 
 
   fmt.w = width;
 
index d18788150fbb97eb5f66edac01ffebe1efade87d..58264d99b0520c1abb4742f7d2b22f6d7b6cf196 100644 (file)
@@ -56,6 +56,11 @@ static bool parse_command_line (int *argc, char ***argv);
 int 
 main(int argc, char *argv[]) 
 {
 int 
 main(int argc, char *argv[]) 
 {
+  PsppireVarStore *var_store ;
+  GtkWidget *data_editor ;
+  GtkSheet *var_sheet ; 
+  GtkSheet *data_sheet ;
+
   if ( ! parse_command_line(&argc, &argv) ) 
     return 0;
 
   if ( ! parse_command_line(&argc, &argv) ) 
     return 0;
 
@@ -66,7 +71,7 @@ main(int argc, char *argv[])
   the_dictionary = psppire_dict_new();
 
   /* Create the model for the var_sheet */
   the_dictionary = psppire_dict_new();
 
   /* Create the model for the var_sheet */
-  PsppireVarStore *var_store = psppire_var_store_new(the_dictionary);
+  var_store = psppire_var_store_new(the_dictionary);
 
   /* Create the model for the data sheet */
   the_cases = psppire_case_array_new(100, 20);
 
   /* Create the model for the data sheet */
   the_cases = psppire_case_array_new(100, 20);
@@ -78,15 +83,15 @@ main(int argc, char *argv[])
 
   if ( !xml ) return 1;
 
 
   if ( !xml ) return 1;
 
-  GtkWidget *data_editor = get_widget_assert(xml, "data_editor");
+  data_editor = get_widget_assert(xml, "data_editor");
   gtk_window_set_icon_from_file(GTK_WINDOW(data_editor), 
                                PKGDATADIR "/psppicon.png",0);
 
   /* connect the signals in the interface */
   glade_xml_signal_autoconnect(xml);
 
   gtk_window_set_icon_from_file(GTK_WINDOW(data_editor), 
                                PKGDATADIR "/psppicon.png",0);
 
   /* connect the signals in the interface */
   glade_xml_signal_autoconnect(xml);
 
-  GtkSheet *var_sheet  = GTK_SHEET(get_widget_assert(xml, "variable_sheet"));
-  GtkSheet *data_sheet = GTK_SHEET(get_widget_assert(xml, "data_sheet"));
+  var_sheet  = GTK_SHEET(get_widget_assert(xml, "variable_sheet"));
+  data_sheet = GTK_SHEET(get_widget_assert(xml, "data_sheet"));
 
   gtk_sheet_set_model(var_sheet, G_SHEET_MODEL(var_store));
   
 
   gtk_sheet_set_model(var_sheet, G_SHEET_MODEL(var_store));
   
index 070a4f50da0aa93db7ea00f294bbce785a025b47..c8be70b9f8a9221f9a714ecfe6df5e4f2b9e4531 100644 (file)
 static void
 on_label_entry_change(GtkEntry *entry, gpointer data)
 {
 static void
 on_label_entry_change(GtkEntry *entry, gpointer data)
 {
+  union value v;
+  const gchar *text ;
   struct val_labs_dialog *dialog = data;
   g_assert(dialog->labs);
 
   struct val_labs_dialog *dialog = data;
   g_assert(dialog->labs);
 
-  union value v;
-  const gchar *text = gtk_entry_get_text(GTK_ENTRY(dialog->value_entry));
+  text = gtk_entry_get_text(GTK_ENTRY(dialog->value_entry));
 
   text_to_value(text, &v, 
                *psppire_variable_get_write_spec(dialog->pv));
 
   text_to_value(text, &v, 
                *psppire_variable_get_write_spec(dialog->pv));
@@ -61,6 +62,8 @@ on_label_entry_change(GtkEntry *entry, gpointer data)
 static void
 select_treeview_from_value(GtkTreeView *treeview, union value *val)
 {
 static void
 select_treeview_from_value(GtkTreeView *treeview, union value *val)
 {
+  GtkTreePath *path ;
+  
   /*
     We do this with a linear search through the model --- hardly 
     efficient, but the list is short ... */
   /*
     We do this with a linear search through the model --- hardly 
     efficient, but the list is short ... */
@@ -73,11 +76,11 @@ select_treeview_from_value(GtkTreeView *treeview, union value *val)
        success;
        success = gtk_tree_model_iter_next(model, &iter))
     {
        success;
        success = gtk_tree_model_iter_next(model, &iter))
     {
+      union value v;
       GValue gvalue = {0};
 
       gtk_tree_model_get_value(model, &iter, 1, &gvalue);
          
       GValue gvalue = {0};
 
       gtk_tree_model_get_value(model, &iter, 1, &gvalue);
          
-      union value v;
       v.f = g_value_get_double(&gvalue);
 
       if ( 0 == memcmp(&v, val, sizeof (union value)))
       v.f = g_value_get_double(&gvalue);
 
       if ( 0 == memcmp(&v, val, sizeof (union value)))
@@ -86,7 +89,7 @@ select_treeview_from_value(GtkTreeView *treeview, union value *val)
        }
     }
        
        }
     }
        
-  GtkTreePath *path = gtk_tree_model_get_path(model, &iter);
+  path = gtk_tree_model_get_path(model, &iter);
   if ( path ) 
     {
       gtk_tree_view_set_cursor(treeview, path, 0, 0);
   if ( path ) 
     {
       gtk_tree_view_set_cursor(treeview, path, 0, 0);
@@ -101,6 +104,8 @@ select_treeview_from_value(GtkTreeView *treeview, union value *val)
 static void
 on_value_entry_change(GtkEntry *entry, gpointer data)
 {
 static void
 on_value_entry_change(GtkEntry *entry, gpointer data)
 {
+  char *s;
+  
   struct val_labs_dialog *dialog = data;
 
   const gchar *text = gtk_entry_get_text(GTK_ENTRY(dialog->value_entry));
   struct val_labs_dialog *dialog = data;
 
   const gchar *text = gtk_entry_get_text(GTK_ENTRY(dialog->value_entry));
@@ -116,7 +121,6 @@ on_value_entry_change(GtkEntry *entry, gpointer data)
   gtk_entry_set_text(GTK_ENTRY(dialog->label_entry),"");
 
 
   gtk_entry_set_text(GTK_ENTRY(dialog->label_entry),"");
 
 
-  char *s;
   if ( (s = val_labs_find (dialog->labs, v)) ) 
     {
       gtk_entry_set_text(GTK_ENTRY(dialog->label_entry), s);
   if ( (s = val_labs_find (dialog->labs, v)) ) 
     {
       gtk_entry_set_text(GTK_ENTRY(dialog->label_entry), s);
@@ -302,6 +306,10 @@ on_select_row                  (GtkTreeView *treeview,
 struct val_labs_dialog *
 val_labs_dialog_create(GladeXML *xml)
 {
 struct val_labs_dialog *
 val_labs_dialog_create(GladeXML *xml)
 {
+  GtkTreeViewColumn *column;
+
+  GtkCellRenderer *renderer ;
+
   struct val_labs_dialog *dialog = g_malloc(sizeof(*dialog));
 
   dialog->window = get_widget_assert(xml,"val_labs_dialog");
   struct val_labs_dialog *dialog = g_malloc(sizeof(*dialog));
 
   dialog->window = get_widget_assert(xml,"val_labs_dialog");
@@ -321,9 +329,7 @@ val_labs_dialog_create(GladeXML *xml)
 
   gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(dialog->treeview), FALSE);
 
 
   gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(dialog->treeview), FALSE);
 
-  GtkTreeViewColumn *column;
-
-  GtkCellRenderer *renderer = gtk_cell_renderer_text_new();
+  renderer = gtk_cell_renderer_text_new();
   
   column = gtk_tree_view_column_new_with_attributes ("Title",
                                                     renderer,
   
   column = gtk_tree_view_column_new_with_attributes ("Title",
                                                     renderer,
index b38806bb1644dea49f20010011d65ac682b25baa..e04d48955d571f3edec16d54e858b6c11f8fca23 100644 (file)
@@ -81,9 +81,9 @@ static gboolean
 click2row(GtkWidget *w, gint row, gpointer data)
 {
   gint current_row, current_column;
 click2row(GtkWidget *w, gint row, gpointer data)
 {
   gint current_row, current_column;
+  GtkWidget *data_sheet  = get_widget_assert(xml, "data_sheet");
 
   select_sheet(PAGE_DATA_SHEET);
 
   select_sheet(PAGE_DATA_SHEET);
-  GtkWidget *data_sheet  = get_widget_assert(xml, "data_sheet");
 
   gtk_sheet_get_active_cell(GTK_SHEET(data_sheet), 
                            &current_row, &current_column);
 
   gtk_sheet_get_active_cell(GTK_SHEET(data_sheet), 
                            &current_row, &current_column);
@@ -112,13 +112,14 @@ const gchar *measures[]={
 static GtkListStore *
 create_label_list(const gchar **labels)
 {
 static GtkListStore *
 create_label_list(const gchar **labels)
 {
+  const gchar *s;
   gint i = 0;
   GtkTreeIter iter;
 
   GtkListStore *list_store;
   list_store = gtk_list_store_new (1, G_TYPE_STRING);
 
   gint i = 0;
   GtkTreeIter iter;
 
   GtkListStore *list_store;
   list_store = gtk_list_store_new (1, G_TYPE_STRING);
 
-  const gchar *s;
+
   while ( (s = labels[i++]))
     {
       gtk_list_store_append (list_store, &iter);
   while ( (s = labels[i++]))
     {
       gtk_list_store_append (list_store, &iter);
@@ -206,9 +207,13 @@ static gboolean
 var_sheet_cell_change_entry (GtkSheet * sheet, gint row, gint column, 
                             gpointer leaving)
 {
 var_sheet_cell_change_entry (GtkSheet * sheet, gint row, gint column, 
                             gpointer leaving)
 {
+  GtkSheetCellAttr attributes;
+  PsppireVarStore *var_store ;
+  struct PsppireVariable *pv ;
+
   g_return_val_if_fail(sheet != NULL, FALSE);
 
   g_return_val_if_fail(sheet != NULL, FALSE);
 
-  PsppireVarStore *var_store = PSPPIRE_VAR_STORE(gtk_sheet_get_model(sheet));
+  var_store = PSPPIRE_VAR_STORE(gtk_sheet_get_model(sheet));
 
   if ( row >= psppire_var_store_get_var_cnt(var_store))
     return TRUE;
 
   if ( row >= psppire_var_store_get_var_cnt(var_store))
     return TRUE;
@@ -219,10 +224,10 @@ var_sheet_cell_change_entry (GtkSheet * sheet, gint row, gint column,
       return TRUE;
     }
 
       return TRUE;
     }
 
-  GtkSheetCellAttr attributes;
+
   gtk_sheet_get_attributes(sheet, row, column, &attributes);
 
   gtk_sheet_get_attributes(sheet, row, column, &attributes);
 
-  struct PsppireVariable *pv = psppire_var_store_get_variable(var_store, row);
+  pv = psppire_var_store_get_variable(var_store, row);
 
   switch (column)
     {
 
   switch (column)
     {
@@ -351,40 +356,43 @@ var_sheet_cell_change_entry (GtkSheet * sheet, gint row, gint column,
            if (!s) 
              return FALSE;
 
            if (!s) 
              return FALSE;
 
-           const gint current_value  = atoi(s);
-
-           const struct fmt_spec *fmt = psppire_variable_get_write_spec(pv);
-           switch (column) 
-             {
-             case COL_WIDTH:
-               r_min = fmt->d + 1;
-               r_max = (psppire_variable_get_type(pv) == ALPHA) ? 255 : 40;
-               break;
-             case COL_DECIMALS:
-               r_min = 0 ; 
-               r_max = min(fmt->w - 1, 16);
-               break;
-             case COL_COLUMNS:
-               r_min = 1;
-               r_max = 255 ; /* Is this a sensible value ? */
-               break;
-             default:
-               g_assert_not_reached();
-             }
-
-           GtkObject *adj =  
-             gtk_adjustment_new(current_value,
-                                r_min, r_max,
-                                1.0, 1.0, 1.0 /* steps */
-                                );
-
-           gtk_sheet_change_entry(sheet, GTK_TYPE_SPIN_BUTTON);
-
-           GtkSpinButton *spinButton = 
-             GTK_SPIN_BUTTON(gtk_sheet_get_entry(sheet));
-
-           gtk_spin_button_set_adjustment(spinButton, GTK_ADJUSTMENT(adj));
-           gtk_spin_button_set_digits(spinButton, 0);
+           {
+             GtkSpinButton *spinButton ;
+             const gint current_value  = atoi(s);
+             GtkObject *adj ;
+
+             const struct fmt_spec *fmt = psppire_variable_get_write_spec(pv);
+             switch (column) 
+               {
+               case COL_WIDTH:
+                 r_min = fmt->d + 1;
+                 r_max = (psppire_variable_get_type(pv) == ALPHA) ? 255 : 40;
+                 break;
+               case COL_DECIMALS:
+                 r_min = 0 ; 
+                 r_max = min(fmt->w - 1, 16);
+                 break;
+               case COL_COLUMNS:
+                 r_min = 1;
+                 r_max = 255 ; /* Is this a sensible value ? */
+                 break;
+               default:
+                 g_assert_not_reached();
+               }
+
+             adj = gtk_adjustment_new(current_value,
+                                      r_min, r_max,
+                                      1.0, 1.0, 1.0 /* steps */
+                                      );
+
+             gtk_sheet_change_entry(sheet, GTK_TYPE_SPIN_BUTTON);
+
+             spinButton = 
+               GTK_SPIN_BUTTON(gtk_sheet_get_entry(sheet));
+
+             gtk_spin_button_set_adjustment(spinButton, GTK_ADJUSTMENT(adj));
+             gtk_spin_button_set_digits(spinButton, 0);
+           }
          }
       }
       break; 
          }
       }
       break; 
index 3a6f67eb13bcdbba372400b05b523c54c8c3f0f6..12583f57f9504bf437ab2cb0330d00853b8e86fe 100644 (file)
@@ -217,28 +217,31 @@ dollar_format_template(const struct fmt_spec *fmt)
   static gchar buf[LEN];
   g_assert( fmt->type == FMT_DOLLAR);
 
   static gchar buf[LEN];
   g_assert( fmt->type == FMT_DOLLAR);
 
-  gint int_part = fmt->w - fmt->d;
-  if ( fmt->d > 0 ) --int_part;
-  g_assert(int_part > 0);
+  {
+    gint c ;
+    gint int_part = fmt->w - fmt->d;
+    if ( fmt->d > 0 ) --int_part;
+    g_assert(int_part > 0);
 
 
-  g_strlcpy(buf, "$", LEN);
+    g_strlcpy(buf, "$", LEN);
 
 
-  gint c = int_part - 1;
-  while(c > 0)
-    {
-      g_strlcat(buf, "#", LEN);
-      if(--c % 4 == 0 && c > 0 ) 
+    c = int_part - 1;
+    while(c > 0)
       {
       {
-       g_strlcat(buf, ",", LEN);
-       --c;
-      }
-    }
-  if ( fmt->d > 0 ) 
-    {
-      g_strlcat(buf, ".", LEN);
-      for ( c = 0 ; c < fmt->d ; ++c ) 
        g_strlcat(buf, "#", LEN);
        g_strlcat(buf, "#", LEN);
-    }
+       if(--c % 4 == 0 && c > 0 ) 
+         {
+           g_strlcat(buf, ",", LEN);
+           --c;
+         }
+      }
+    if ( fmt->d > 0 ) 
+      {
+       g_strlcat(buf, ".", LEN);
+       for ( c = 0 ; c < fmt->d ; ++c ) 
+         g_strlcat(buf, "#", LEN);
+      }
+  }
 
   return buf;
 }
 
   return buf;
 }
@@ -255,9 +258,10 @@ add_to_group(GtkWidget *w, gpointer data)
 static void
 update_width_decimals(const struct var_type_dialog *dialog)
 {
 static void
 update_width_decimals(const struct var_type_dialog *dialog)
 {
+  gchar *text;
   g_assert(dialog);
 
   g_assert(dialog);
 
-  gchar *text = g_strdup_printf("%d", dialog->fmt_l.w);
+  text = g_strdup_printf("%d", dialog->fmt_l.w);
   gtk_entry_set_text(GTK_ENTRY(dialog->entry_width), text);
   g_free(text);
 
   gtk_entry_set_text(GTK_ENTRY(dialog->entry_width), text);
   g_free(text);
 
@@ -271,12 +275,14 @@ update_width_decimals(const struct var_type_dialog *dialog)
 static void
 preview_custom(GtkWidget *w, gpointer data)
 {
 static void
 preview_custom(GtkWidget *w, gpointer data)
 {
+  const gchar *text ;
+
   struct var_type_dialog *dialog = data;
 
   if ( dialog->active_button != BUTTON_CUSTOM ) 
     return;
 
   struct var_type_dialog *dialog = data;
 
   if ( dialog->active_button != BUTTON_CUSTOM ) 
     return;
 
-  const gchar *text = gtk_entry_get_text(GTK_ENTRY(dialog->entry_decimals));
+  text = gtk_entry_get_text(GTK_ENTRY(dialog->entry_decimals));
   dialog->fmt_l.d = atoi(text);
 
   text = gtk_entry_get_text(GTK_ENTRY(dialog->entry_width));
   dialog->fmt_l.d = atoi(text);
 
   text = gtk_entry_get_text(GTK_ENTRY(dialog->entry_width));
@@ -356,10 +362,10 @@ struct var_type_dialog *
 var_type_dialog_create(GladeXML *xml)
 {
   gint i;
 var_type_dialog_create(GladeXML *xml)
 {
   gint i;
-  g_assert(xml);
-
   struct var_type_dialog *dialog = g_malloc(sizeof(struct var_type_dialog));
 
   struct var_type_dialog *dialog = g_malloc(sizeof(struct var_type_dialog));
 
+  g_assert(xml);
+
   dialog->window = get_widget_assert(xml,"var_type_dialog");
 
   gtk_window_set_transient_for(GTK_WINDOW(dialog->window), 
   dialog->window = get_widget_assert(xml,"var_type_dialog");
 
   gtk_window_set_transient_for(GTK_WINDOW(dialog->window), 
@@ -408,16 +414,24 @@ var_type_dialog_create(GladeXML *xml)
   dialog->ok = get_widget_assert(xml,"var_type_ok");
 
 
   dialog->ok = get_widget_assert(xml,"var_type_ok");
 
 
+  {
+  GtkTreeIter iter;
+  GtkListStore *list_store ;
+
+  GtkTreeViewColumn *column;
+  GtkCellRenderer *renderer ;
+
+  static struct tgs tgs[num_BUTTONS];
   /* The "middle_box" is a vbox with serveral children.
      However only one child is ever shown at a time.
      We need to make sure that they all have the same width, to avoid
      upleasant resizing effects */
   GtkSizeGroup *sizeGroup = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
   /* The "middle_box" is a vbox with serveral children.
      However only one child is ever shown at a time.
      We need to make sure that they all have the same width, to avoid
      upleasant resizing effects */
   GtkSizeGroup *sizeGroup = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL);
+
   gtk_container_foreach(GTK_CONTAINER(get_widget_assert(xml, "middle_box")), 
                        add_to_group, sizeGroup);
 
   gtk_container_foreach(GTK_CONTAINER(get_widget_assert(xml, "middle_box")), 
                        add_to_group, sizeGroup);
 
-  
-  static struct tgs tgs[num_BUTTONS];
+
   for (i = 0 ; i < num_BUTTONS; ++i ) 
     {
       tgs[i].dialog = dialog;
   for (i = 0 ; i < num_BUTTONS; ++i ) 
     {
       tgs[i].dialog = dialog;
@@ -433,9 +447,7 @@ var_type_dialog_create(GladeXML *xml)
   dialog->date_format_treeview = GTK_TREE_VIEW(get_widget_assert(xml, 
                                              "date_format_list_view"));
 
   dialog->date_format_treeview = GTK_TREE_VIEW(get_widget_assert(xml, 
                                              "date_format_list_view"));
 
-  GtkTreeViewColumn *column;
-
-  GtkCellRenderer *renderer = gtk_cell_renderer_text_new();
+  renderer = gtk_cell_renderer_text_new();
   
   column = gtk_tree_view_column_new_with_attributes ("Title",
                                                     renderer,
   
   column = gtk_tree_view_column_new_with_attributes ("Title",
                                                     renderer,
@@ -447,9 +459,7 @@ var_type_dialog_create(GladeXML *xml)
                               column);
 
 
                               column);
 
 
-  GtkTreeIter iter;
-  GtkListStore *list_store = gtk_list_store_new (2, G_TYPE_STRING, 
-                                                G_TYPE_POINTER);
+  list_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_POINTER);
 
   for ( i = 0 ; i < sizeof(format_option) / sizeof(format_option[0]) ; ++i ) 
     {
 
   for ( i = 0 ; i < sizeof(format_option) / sizeof(format_option[0]) ; ++i ) 
     {
@@ -567,6 +577,9 @@ var_type_dialog_create(GladeXML *xml)
   g_signal_connect(dialog->ok, "clicked", G_CALLBACK(on_var_type_ok_clicked), 
                   dialog);
 
   g_signal_connect(dialog->ok, "clicked", G_CALLBACK(on_var_type_ok_clicked), 
                   dialog);
 
+
+  }
+
   return dialog;
 }
 
   return dialog;
 }
 
@@ -586,6 +599,8 @@ var_type_dialog_set_active_button(struct var_type_dialog *dialog, gint b)
 static void
 select_treeview_from_format(GtkTreeView *treeview, const struct fmt_spec *fmt)
 {
 static void
 select_treeview_from_format(GtkTreeView *treeview, const struct fmt_spec *fmt)
 {
+  GtkTreePath *path ;
+
   /*
     We do this with a linear search through the model --- hardly 
     efficient, but the list is short ... */
   /*
     We do this with a linear search through the model --- hardly 
     efficient, but the list is short ... */
@@ -598,11 +613,13 @@ select_treeview_from_format(GtkTreeView *treeview, const struct fmt_spec *fmt)
        success;
        success = gtk_tree_model_iter_next(model, &iter))
     {
        success;
        success = gtk_tree_model_iter_next(model, &iter))
     {
+      const struct fmt_spec *spec;
+
       GValue value = {0};
 
       gtk_tree_model_get_value(model, &iter, 1, &value);
          
       GValue value = {0};
 
       gtk_tree_model_get_value(model, &iter, 1, &value);
          
-      const struct fmt_spec *spec = g_value_get_pointer(&value);
+      spec = g_value_get_pointer(&value);
 
       if ( 0 == memcmp(spec, fmt, sizeof (struct fmt_spec)))
        {
 
       if ( 0 == memcmp(spec, fmt, sizeof (struct fmt_spec)))
        {
@@ -610,7 +627,7 @@ select_treeview_from_format(GtkTreeView *treeview, const struct fmt_spec *fmt)
        }
     }
        
        }
     }
        
-  GtkTreePath *path = gtk_tree_model_get_path(model, &iter);
+  path = gtk_tree_model_get_path(model, &iter);
   if ( path ) 
     {
       gtk_tree_view_set_cursor(treeview, path, 0, 0);
   if ( path ) 
     {
       gtk_tree_view_set_cursor(treeview, path, 0, 0);
@@ -627,7 +644,9 @@ static void
 select_treeview_from_format_type(GtkTreeView *treeview, 
                                 const int fmt_type)
 {
 select_treeview_from_format_type(GtkTreeView *treeview, 
                                 const int fmt_type)
 {
-  /*
+  GtkTreePath *path ;
+ /*
     We do this with a linear search through the model --- hardly 
     efficient, but the list is short ... */
   GtkTreeIter iter;
     We do this with a linear search through the model --- hardly 
     efficient, but the list is short ... */
   GtkTreeIter iter;
@@ -639,17 +658,19 @@ select_treeview_from_format_type(GtkTreeView *treeview,
        success;
        success = gtk_tree_model_iter_next(model, &iter))
     {
        success;
        success = gtk_tree_model_iter_next(model, &iter))
     {
+      int spec ;
+      
       GValue value = {0};
 
       gtk_tree_model_get_value(model, &iter, 1, &value);
          
       GValue value = {0};
 
       gtk_tree_model_get_value(model, &iter, 1, &value);
          
-      const int spec = * ((int *) g_value_get_pointer(&value));
+      spec = * ((int *) g_value_get_pointer(&value));
 
       if ( spec == fmt_type)
        break;
     }
        
 
       if ( spec == fmt_type)
        break;
     }
        
-  GtkTreePath *path = gtk_tree_model_get_path(model, &iter);
+  path = gtk_tree_model_get_path(model, &iter);
   if ( path ) 
     {
       gtk_tree_view_set_cursor(treeview, path, 0, 0);
   if ( path ) 
     {
       gtk_tree_view_set_cursor(treeview, path, 0, 0);
@@ -664,14 +685,15 @@ select_treeview_from_format_type(GtkTreeView *treeview,
 static void
 var_type_dialog_set_state(struct var_type_dialog *dialog)
 {
 static void
 var_type_dialog_set_state(struct var_type_dialog *dialog)
 {
+  const struct fmt_spec *write_spec ;
+  GString *str = g_string_new("");
+
   g_assert(dialog);
   g_assert(dialog->pv);
 
   /* Populate width and decimals */
   g_assert(dialog);
   g_assert(dialog->pv);
 
   /* Populate width and decimals */
-  const struct fmt_spec *write_spec = psppire_variable_get_write_spec(dialog->pv);
+  write_spec = psppire_variable_get_write_spec(dialog->pv);
 
 
-  GString *str = g_string_new("");
-  
   g_string_printf(str, "%d", write_spec->d);
 
   gtk_entry_set_text(GTK_ENTRY(dialog->entry_decimals), 
   g_string_printf(str, "%d", write_spec->d);
 
   gtk_entry_set_text(GTK_ENTRY(dialog->entry_decimals), 
@@ -781,57 +803,59 @@ on_var_type_ok_clicked(GtkWidget *w, gpointer data)
   g_assert(dialog);
   g_assert(dialog->pv);
 
   g_assert(dialog);
   g_assert(dialog->pv);
 
-  gint width = atoi(gtk_entry_get_text
-              (GTK_ENTRY(dialog->entry_width)));
+  {
+    gint width = atoi(gtk_entry_get_text
+                     (GTK_ENTRY(dialog->entry_width)));
 
 
-  gint decimals = atoi(gtk_entry_get_text
-                (GTK_ENTRY(dialog->entry_decimals)));
+    gint decimals = atoi(gtk_entry_get_text
+                        (GTK_ENTRY(dialog->entry_decimals)));
 
 
-  gint new_type = NUMERIC;
-  gint new_width = 0;
-  bool result = false;
-  struct fmt_spec spec;
-  switch (dialog->active_button) 
-    {
-    case BUTTON_STRING:
-      new_type = ALPHA;
-      new_width = width;
-      result = make_output_format_try(&spec, FMT_A, width, 0);
-      break;
-    case BUTTON_NUMERIC:
-      result = make_output_format_try(&spec, FMT_F, width, decimals);
-      break;
-    case BUTTON_COMMA:
-      result = make_output_format_try(&spec, FMT_COMMA, width, decimals);
-      break;
-    case BUTTON_DOT:
-      result = make_output_format_try(&spec, FMT_DOT, width, decimals);
-      break;
-    case BUTTON_SCIENTIFIC:
-      result = make_output_format_try(&spec, FMT_E, width, decimals);
-      break;
-    case BUTTON_DATE:
-    case BUTTON_CUSTOM:
-      g_assert(check_output_specifier(&dialog->fmt_l, TRUE));
-      result = memcpy(&spec, &dialog->fmt_l, sizeof(struct fmt_spec));
-      break;
-    case BUTTON_DOLLAR:
-      result = make_output_format_try(&spec, FMT_DOLLAR, width, decimals);
-      break;
-    default:
-      g_print("Unknown variable type: %d\n", dialog->active_button) ;
-      result = false;
-      break;
-    }
+    gint new_type = NUMERIC;
+    gint new_width = 0;
+    bool result = false;
+    struct fmt_spec spec;
+    switch (dialog->active_button) 
+      {
+      case BUTTON_STRING:
+       new_type = ALPHA;
+       new_width = width;
+       result = make_output_format_try(&spec, FMT_A, width, 0);
+       break;
+      case BUTTON_NUMERIC:
+       result = make_output_format_try(&spec, FMT_F, width, decimals);
+       break;
+      case BUTTON_COMMA:
+       result = make_output_format_try(&spec, FMT_COMMA, width, decimals);
+       break;
+      case BUTTON_DOT:
+       result = make_output_format_try(&spec, FMT_DOT, width, decimals);
+       break;
+      case BUTTON_SCIENTIFIC:
+       result = make_output_format_try(&spec, FMT_E, width, decimals);
+       break;
+      case BUTTON_DATE:
+      case BUTTON_CUSTOM:
+       g_assert(check_output_specifier(&dialog->fmt_l, TRUE));
+       result = memcpy(&spec, &dialog->fmt_l, sizeof(struct fmt_spec));
+       break;
+      case BUTTON_DOLLAR:
+       result = make_output_format_try(&spec, FMT_DOLLAR, width, decimals);
+       break;
+      default:
+       g_print("Unknown variable type: %d\n", dialog->active_button) ;
+       result = false;
+       break;
+      }
 
 
-  if ( result == true ) 
-    {
-      psppire_variable_set_type(dialog->pv, new_type);
-      psppire_variable_set_width(dialog->pv, new_width);
-      psppire_variable_set_write_spec(dialog->pv, spec);
-      psppire_variable_set_print_spec(dialog->pv, spec);
-    }
+    if ( result == true ) 
+      {
+       psppire_variable_set_type(dialog->pv, new_type);
+       psppire_variable_set_width(dialog->pv, new_width);
+       psppire_variable_set_write_spec(dialog->pv, spec);
+       psppire_variable_set_print_spec(dialog->pv, spec);
+      }
 
 
+  }
   gtk_widget_hide(dialog->window);
 
   return FALSE;
   gtk_widget_hide(dialog->window);
 
   return FALSE;