Putting the UI for a .c file into its own .ui file seems like a good practice. It leads to fewer merge conflicts, for example. --- src/ui/gui/automake.mk | 3 +- src/ui/gui/var-sheet-dialogs.ui | 413 -------------------------------------- src/ui/gui/var-type-dialog.c | 2 +- src/ui/gui/var-type-dialog.ui | 418 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 421 insertions(+), 415 deletions(-) create mode 100644 src/ui/gui/var-type-dialog.ui
diff --git a/src/ui/gui/automake.mk b/src/ui/gui/automake.mk index 3af7038..55f8291 100644 --- a/src/ui/gui/automake.mk +++ b/src/ui/gui/automake.mk @@ -42,7 +42,8 @@ UI_FILES = \ src/ui/gui/variable-info.ui \ src/ui/gui/data-editor.ui \ src/ui/gui/output-viewer.ui \ - src/ui/gui/syntax-editor.ui + src/ui/gui/syntax-editor.ui \ + src/ui/gui/var-type-dialog.ui EXTRA_DIST += \ src/ui/gui/OChangeLog \ diff --git a/src/ui/gui/var-sheet-dialogs.ui b/src/ui/gui/var-sheet-dialogs.ui index 07dec18..cfba0b5 100644 --- a/src/ui/gui/var-sheet-dialogs.ui +++ b/src/ui/gui/var-sheet-dialogs.ui @@ -2,419 +2,6 @@ <interface> <!-- interface-requires gtk+ 2.12 --> <!-- interface-naming-policy project-wide --> - <object class="GtkWindow" id="var_type_dialog"> - <property name="border_width">6</property> - <property name="title" translatable="yes">Variable Type</property> - <property name="resizable">False</property> - <property name="modal">True</property> - <property name="default_width">485</property> - <property name="type_hint">dialog</property> - <property name="skip_taskbar_hint">True</property> - <property name="skip_pager_hint">True</property> - <child> - <object class="GtkHBox" id="hbox1"> - <property name="visible">True</property> - <property name="border_width">5</property> - <property name="spacing">5</property> - <child> - <object class="GtkVBox" id="vbox2"> - <property name="visible">True</property> - <property name="border_width">13</property> - <property name="orientation">vertical</property> - <property name="homogeneous">True</property> - <child> - <object class="GtkRadioButton" id="radiobutton1"> - <property name="label" translatable="yes">Numeric</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="use_underline">True</property> - <property name="active">True</property> - <property name="draw_indicator">True</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkRadioButton" id="radiobutton2"> - <property name="label" translatable="yes">Comma</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="use_underline">True</property> - <property name="draw_indicator">True</property> - <property name="group">radiobutton1</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">1</property> - </packing> - </child> - <child> - <object class="GtkRadioButton" id="radiobutton3"> - <property name="label" translatable="yes">Dot</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="use_underline">True</property> - <property name="draw_indicator">True</property> - <property name="group">radiobutton1</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">2</property> - </packing> - </child> - <child> - <object class="GtkRadioButton" id="radiobutton4"> - <property name="label" translatable="yes">Scientific notation</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="use_underline">True</property> - <property name="draw_indicator">True</property> - <property name="group">radiobutton1</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">3</property> - </packing> - </child> - <child> - <object class="GtkRadioButton" id="radiobutton5"> - <property name="label" translatable="yes">Date</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="use_underline">True</property> - <property name="draw_indicator">True</property> - <property name="group">radiobutton1</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">4</property> - </packing> - </child> - <child> - <object class="GtkRadioButton" id="radiobutton6"> - <property name="label" translatable="yes">Dollar</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="use_underline">True</property> - <property name="draw_indicator">True</property> - <property name="group">radiobutton1</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">5</property> - </packing> - </child> - <child> - <object class="GtkRadioButton" id="radiobutton7"> - <property name="label" translatable="yes">Custom currency</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="use_underline">True</property> - <property name="draw_indicator">True</property> - <property name="group">radiobutton1</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">6</property> - </packing> - </child> - <child> - <object class="GtkRadioButton" id="radiobutton8"> - <property name="label" translatable="yes">String</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">False</property> - <property name="use_underline">True</property> - <property name="draw_indicator">True</property> - <property name="group">radiobutton1</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">7</property> - </packing> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkVBox" id="middle_box"> - <property name="visible">True</property> - <property name="spacing">10</property> - <child> - <object class="GtkScrolledWindow" id="scrolledwindow4"> - <property name="width_request">20</property> - <property name="height_request">194</property> - <property name="can_focus">True</property> - <property name="hscrollbar_policy">never</property> - <property name="shadow_type">in</property> - <child> - <object class="GtkTreeView" id="date_format_list_view"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="headers_visible">False</property> - </object> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkHBox" id="custom_currency_hbox"> - <property name="spacing">15</property> - <child> - <object class="GtkScrolledWindow" id="scrolledwindow5"> - <property name="width_request">1</property> - <property name="height_request">120</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="hscrollbar_policy">never</property> - <property name="vscrollbar_policy">never</property> - <property name="shadow_type">in</property> - <child> - <object class="GtkTreeView" id="custom_treeview"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="headers_visible">False</property> - </object> - </child> - </object> - <packing> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkFrame" id="Sample"> - <property name="visible">True</property> - <property name="label_xalign">0</property> - <child> - <object class="GtkAlignment" id="alignment2"> - <property name="visible">True</property> - <property name="left_padding">12</property> - <child> - <object class="GtkVBox" id="vbox10"> - <property name="visible">True</property> - <property name="orientation">vertical</property> - <property name="homogeneous">True</property> - <child> - <object class="GtkLabel" id="psample_label"> - <property name="visible">True</property> - <property name="label" translatable="yes">positive</property> - </object> - <packing> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkLabel" id="nsample_label"> - <property name="visible">True</property> - <property name="label" translatable="yes">negative</property> - </object> - <packing> - <property name="position">1</property> - </packing> - </child> - </object> - </child> - </object> - </child> - <child type="label"> - <object class="GtkLabel" id="label13"> - <property name="visible">True</property> - <property name="label" translatable="yes">Sample</property> - <property name="use_markup">True</property> - </object> - </child> - </object> - <packing> - <property name="pack_type">end</property> - <property name="position">1</property> - </packing> - </child> - </object> - <packing> - <property name="position">1</property> - </packing> - </child> - <child> - <object class="GtkScrolledWindow" id="dollar_window"> - <property name="can_focus">True</property> - <property name="hscrollbar_policy">never</property> - <property name="shadow_type">in</property> - <child> - <object class="GtkTreeView" id="dollar_treeview"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="headers_visible">False</property> - </object> - </child> - </object> - <packing> - <property name="position">2</property> - </packing> - </child> - <child> - <object class="GtkTable" id="width_decimals"> - <property name="width_request">100</property> - <property name="height_request">50</property> - <property name="visible">True</property> - <property name="n_rows">2</property> - <property name="n_columns">2</property> - <property name="column_spacing">2</property> - <property name="row_spacing">1</property> - <child> - <object class="GtkHBox" id="hbox2"> - <property name="visible">True</property> - <child> - <object class="GtkLabel" id="width_label"> - <property name="visible">True</property> - <property name="label" translatable="yes">Width:</property> - <property name="justify">right</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="pack_type">end</property> - <property name="position">0</property> - </packing> - </child> - </object> - <packing> - <property name="x_options">GTK_FILL</property> - <property name="y_options">GTK_FILL</property> - </packing> - </child> - <child> - <object class="GtkEntry" id="decimals_entry"> - <property name="width_request">25</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - </object> - <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> - <property name="y_options"></property> - </packing> - </child> - <child> - <object class="GtkEntry" id="width_entry"> - <property name="width_request">25</property> - <property name="can_focus">True</property> - </object> - <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> - <property name="y_options"></property> - </packing> - </child> - <child> - <object class="GtkLabel" id="decimals_label"> - <property name="visible">True</property> - <property name="xalign">0</property> - <property name="label" translatable="yes">Decimal Places:</property> - <property name="justify">right</property> - </object> - <packing> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> - <property name="x_options">GTK_FILL</property> - <property name="y_options"></property> - </packing> - </child> - </object> - <packing> - <property name="position">3</property> - </packing> - </child> - </object> - <packing> - <property name="fill">False</property> - <property name="position">1</property> - </packing> - </child> - <child> - <object class="GtkVButtonBox" id="vbuttonbox6"> - <property name="visible">True</property> - <property name="spacing">5</property> - <property name="layout_style">start</property> - <child> - <object class="GtkButton" id="var_type_ok"> - <property name="label">gtk-ok</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="can_default">True</property> - <property name="receives_default">False</property> - <property name="use_stock">True</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkButton" id="var_type_cancel"> - <property name="label">gtk-cancel</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="can_default">True</property> - <property name="receives_default">False</property> - <property name="use_stock">True</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">1</property> - </packing> - </child> - <child> - <object class="GtkButton" id="help_button_variable_type"> - <property name="label">gtk-help</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="can_default">True</property> - <property name="receives_default">False</property> - <property name="use_stock">True</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">False</property> - <property name="position">2</property> - </packing> - </child> - </object> - <packing> - <property name="position">2</property> - </packing> - </child> - </object> - </child> - </object> <object class="GtkWindow" id="val_labs_dialog"> <property name="title" translatable="yes">Value Labels</property> <property name="modal">True</property> diff --git a/src/ui/gui/var-type-dialog.c b/src/ui/gui/var-type-dialog.c index 359ca34..21d4966 100644 --- a/src/ui/gui/var-type-dialog.c +++ b/src/ui/gui/var-type-dialog.c @@ -323,7 +323,7 @@ var_type_dialog_create (GtkWindow *toplevel) gint i; struct var_type_dialog *dialog = g_malloc (sizeof (struct var_type_dialog)); - GtkBuilder *xml = builder_new ("var-sheet-dialogs.ui"); + GtkBuilder *xml = builder_new ("var-type-dialog.ui"); dialog->window = get_widget_assert (xml,"var_type_dialog"); dialog->active_button = -1; diff --git a/src/ui/gui/var-type-dialog.ui b/src/ui/gui/var-type-dialog.ui new file mode 100644 index 0000000..12edafd --- /dev/null +++ b/src/ui/gui/var-type-dialog.ui @@ -0,0 +1,418 @@ +<?xml version="1.0"?> +<interface> + <!-- interface-requires gtk+ 2.12 --> + <!-- interface-naming-policy project-wide --> + <object class="GtkWindow" id="var_type_dialog"> + <property name="border_width">6</property> + <property name="title" translatable="yes">Variable Type</property> + <property name="resizable">False</property> + <property name="modal">True</property> + <property name="default_width">485</property> + <property name="type_hint">dialog</property> + <property name="skip_taskbar_hint">True</property> + <property name="skip_pager_hint">True</property> + <child> + <object class="GtkHBox" id="hbox1"> + <property name="visible">True</property> + <property name="border_width">5</property> + <property name="spacing">5</property> + <child> + <object class="GtkVBox" id="vbox2"> + <property name="visible">True</property> + <property name="border_width">13</property> + <property name="orientation">vertical</property> + <property name="homogeneous">True</property> + <child> + <object class="GtkRadioButton" id="radiobutton1"> + <property name="label" translatable="yes">Numeric</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="use_underline">True</property> + <property name="active">True</property> + <property name="draw_indicator">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkRadioButton" id="radiobutton2"> + <property name="label" translatable="yes">Comma</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="use_underline">True</property> + <property name="draw_indicator">True</property> + <property name="group">radiobutton1</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkRadioButton" id="radiobutton3"> + <property name="label" translatable="yes">Dot</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="use_underline">True</property> + <property name="draw_indicator">True</property> + <property name="group">radiobutton1</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">2</property> + </packing> + </child> + <child> + <object class="GtkRadioButton" id="radiobutton4"> + <property name="label" translatable="yes">Scientific notation</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="use_underline">True</property> + <property name="draw_indicator">True</property> + <property name="group">radiobutton1</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">3</property> + </packing> + </child> + <child> + <object class="GtkRadioButton" id="radiobutton5"> + <property name="label" translatable="yes">Date</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="use_underline">True</property> + <property name="draw_indicator">True</property> + <property name="group">radiobutton1</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">4</property> + </packing> + </child> + <child> + <object class="GtkRadioButton" id="radiobutton6"> + <property name="label" translatable="yes">Dollar</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="use_underline">True</property> + <property name="draw_indicator">True</property> + <property name="group">radiobutton1</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">5</property> + </packing> + </child> + <child> + <object class="GtkRadioButton" id="radiobutton7"> + <property name="label" translatable="yes">Custom currency</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="use_underline">True</property> + <property name="draw_indicator">True</property> + <property name="group">radiobutton1</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">6</property> + </packing> + </child> + <child> + <object class="GtkRadioButton" id="radiobutton8"> + <property name="label" translatable="yes">String</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="use_underline">True</property> + <property name="draw_indicator">True</property> + <property name="group">radiobutton1</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">7</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkVBox" id="middle_box"> + <property name="visible">True</property> + <property name="spacing">10</property> + <child> + <object class="GtkScrolledWindow" id="scrolledwindow4"> + <property name="width_request">20</property> + <property name="height_request">194</property> + <property name="can_focus">True</property> + <property name="hscrollbar_policy">never</property> + <property name="shadow_type">in</property> + <child> + <object class="GtkTreeView" id="date_format_list_view"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="headers_visible">False</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkHBox" id="custom_currency_hbox"> + <property name="spacing">15</property> + <child> + <object class="GtkScrolledWindow" id="scrolledwindow5"> + <property name="width_request">1</property> + <property name="height_request">120</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="hscrollbar_policy">never</property> + <property name="vscrollbar_policy">never</property> + <property name="shadow_type">in</property> + <child> + <object class="GtkTreeView" id="custom_treeview"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="headers_visible">False</property> + </object> + </child> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkFrame" id="Sample"> + <property name="visible">True</property> + <property name="label_xalign">0</property> + <child> + <object class="GtkAlignment" id="alignment2"> + <property name="visible">True</property> + <property name="left_padding">12</property> + <child> + <object class="GtkVBox" id="vbox10"> + <property name="visible">True</property> + <property name="orientation">vertical</property> + <property name="homogeneous">True</property> + <child> + <object class="GtkLabel" id="psample_label"> + <property name="visible">True</property> + <property name="label" translatable="yes">positive</property> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="nsample_label"> + <property name="visible">True</property> + <property name="label" translatable="yes">negative</property> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label13"> + <property name="visible">True</property> + <property name="label" translatable="yes">Sample</property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="pack_type">end</property> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkScrolledWindow" id="dollar_window"> + <property name="can_focus">True</property> + <property name="hscrollbar_policy">never</property> + <property name="shadow_type">in</property> + <child> + <object class="GtkTreeView" id="dollar_treeview"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="headers_visible">False</property> + </object> + </child> + </object> + <packing> + <property name="position">2</property> + </packing> + </child> + <child> + <object class="GtkTable" id="width_decimals"> + <property name="width_request">100</property> + <property name="height_request">50</property> + <property name="visible">True</property> + <property name="n_rows">2</property> + <property name="n_columns">2</property> + <property name="column_spacing">2</property> + <property name="row_spacing">1</property> + <child> + <object class="GtkHBox" id="hbox2"> + <property name="visible">True</property> + <child> + <object class="GtkLabel" id="width_label"> + <property name="visible">True</property> + <property name="label" translatable="yes">Width:</property> + <property name="justify">right</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="pack_type">end</property> + <property name="position">0</property> + </packing> + </child> + </object> + <packing> + <property name="x_options">GTK_FILL</property> + <property name="y_options">GTK_FILL</property> + </packing> + </child> + <child> + <object class="GtkEntry" id="decimals_entry"> + <property name="width_request">25</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <object class="GtkEntry" id="width_entry"> + <property name="width_request">25</property> + <property name="can_focus">True</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="y_options"></property> + </packing> + </child> + <child> + <object class="GtkLabel" id="decimals_label"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Decimal Places:</property> + <property name="justify">right</property> + </object> + <packing> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"></property> + </packing> + </child> + </object> + <packing> + <property name="position">3</property> + </packing> + </child> + </object> + <packing> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkVButtonBox" id="vbuttonbox6"> + <property name="visible">True</property> + <property name="spacing">5</property> + <property name="layout_style">start</property> + <child> + <object class="GtkButton" id="var_type_ok"> + <property name="label">gtk-ok</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="can_default">True</property> + <property name="receives_default">False</property> + <property name="use_stock">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkButton" id="var_type_cancel"> + <property name="label">gtk-cancel</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="can_default">True</property> + <property name="receives_default">False</property> + <property name="use_stock">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkButton" id="help_button_variable_type"> + <property name="label">gtk-help</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="can_default">True</property> + <property name="receives_default">False</property> + <property name="use_stock">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">2</property> + </packing> + </child> + </object> + <packing> + <property name="position">2</property> + </packing> + </child> + </object> + </child> + </object> +</interface> -- 1.7.2.5 _______________________________________________ pspp-dev mailing list pspp-dev@gnu.org https://lists.gnu.org/mailman/listinfo/pspp-dev