pspp
13 years agopsppire-sheet: Avoid CRITICAL unselecting range before window created.
Ben Pfaff [Mon, 9 May 2011 04:24:17 +0000 (21:24 -0700)]
psppire-sheet: Avoid CRITICAL unselecting range before window created.

Without this change, File|Open that opens a new datasheet yields:

Gdk-CRITICAL **: gdk_window_invalidate_rect_full: assertion
`GDK_IS_WINDOW (window)' failed

I'm not 100% certain that this is the correct fix--perhaps the client
is at fault for calling this function before a window exists?--but it
does avoid the message.

13 years agogui: Avoid creating empty output window at startup time.
Ben Pfaff [Sun, 8 May 2011 05:03:31 +0000 (22:03 -0700)]
gui: Avoid creating empty output window at startup time.

Reported by Harry Thijssen.
Bug #33234.

13 years agogui: Label message output items in the output viewer treeview. 20110508030508/pspp 20110509030503/pspp
Ben Pfaff [Sun, 8 May 2011 05:02:25 +0000 (22:02 -0700)]
gui: Label message output items in the output viewer treeview.

Until now, messages (such as errors and warnings) simply had blank
lines in the output viewer summary treeview.  This made for funny gaps
and a generally puzzling appearance.  This fixes the problem.

13 years agogui: Only unselect range from first data sheet when data changes.
Ben Pfaff [Sat, 7 May 2011 21:19:12 +0000 (14:19 -0700)]
gui: Only unselect range from first data sheet when data changes.

commit 5080068 "gui: Unselect data in data editor when the datasheet
is replaced" unselected all the data in each of the possible four
datasheets (supposing that the "split" view is selected), but if the
"split" view is not in effect then three of the data sheets don't have
windows and this results in "Gdk-CRITICAL **:
gdk_window_invalidate_rect_full: assertion `GDK_IS_WINDOW (window)'
failed".

This commit switches to unselecting the range only from the first data
sheet, which seems to be just as effective at solving the original
problem and does not cause Gdk-CRITICAL messages.

13 years agoext-array: Speed up with unlocked versions of I/O functions.
Ben Pfaff [Sat, 7 May 2011 20:02:34 +0000 (13:02 -0700)]
ext-array: Speed up with unlocked versions of I/O functions.

In my tests this reduced a 2.0 second run to only 1.5 seconds.

Bug #33260.

13 years agotemp-file: Use 64 kB buffer for temporary files.
Ben Pfaff [Sat, 7 May 2011 20:01:02 +0000 (13:01 -0700)]
temp-file: Use 64 kB buffer for temporary files.

Generally PSPP uses temporary files because it has a lot of data to
write to them.  The default glibc buffer is only 4 kB.  In my tests
using a 64 kB reduced runtime from 2.5 seconds to 2.0 seconds, but
increasing the buffer to 1 MB had no additional effect, so 64 kB is a
reasonable choice.

Bug #33260.

13 years agocairo: Left-justify text items rendered in the GUI.
Ben Pfaff [Sat, 7 May 2011 18:55:22 +0000 (11:55 -0700)]
cairo: Left-justify text items rendered in the GUI.

Otherwise multi-line syntax comes out right-justified, which looks
really funny.

Bug #33261.

13 years agogui: Use GTK+ accessor functions instead of deprecated macros.
Ben Pfaff [Sat, 7 May 2011 17:35:47 +0000 (10:35 -0700)]
gui: Use GTK+ accessor functions instead of deprecated macros.

These are now available on all GTK+ versions due to the <gtk/gtk.h>
wrapper added in the previous commit.

13 years agogui: Add <gtk/gtk.h> wrapper with functions from GTK+ 2.18 and 2.20.
Ben Pfaff [Sat, 7 May 2011 17:25:44 +0000 (10:25 -0700)]
gui: Add <gtk/gtk.h> wrapper with functions from GTK+ 2.18 and 2.20.

Suggested by John Darrington.

13 years agodataset: Fix memory leak.
Ben Pfaff [Sat, 7 May 2011 16:37:00 +0000 (09:37 -0700)]
dataset: Fix memory leak.

Reported by John Darrington.

13 years agogui: Add workaround for GTK+ 2.20 crash at startup.
Ben Pfaff [Sat, 7 May 2011 16:32:09 +0000 (09:32 -0700)]
gui: Add workaround for GTK+ 2.20 crash at startup.

Based on this patch against Inkscape:
https://launchpadlibrarian.net/60175914/copy_renamed_icons.patch

Reported by Fredrik Clementz.
With input from John Darrington and Harry Thijssen.
Tested by Mindaugus.
Bug #31511.

13 years agogui: Provide substitute for gtk_widget_get_realized() for GTK+ < 2.20. 20110507030503/pspp
Ben Pfaff [Sat, 7 May 2011 03:56:18 +0000 (20:56 -0700)]
gui: Provide substitute for gtk_widget_get_realized() for GTK+ < 2.20.

Problem reported by "Mindaugas Baranauskas" <embar@super.lt>.

13 years agopo: Update Dutch translation from translation-project.org.
Ben Pfaff [Fri, 6 May 2011 16:03:28 +0000 (09:03 -0700)]
po: Update Dutch translation from translation-project.org.

13 years agoUpdated the Lithuanian translation from http://translationproject.org. 20110506030503/pspp
Ben Pfaff [Fri, 6 May 2011 03:05:18 +0000 (20:05 -0700)]
Updated the Lithuanian translation from translationproject.org.

13 years agointern: Fix GCC warning. 20110505030505/pspp
Ben Pfaff [Thu, 5 May 2011 04:16:39 +0000 (21:16 -0700)]
intern: Fix GCC warning.

Otherwise, GCC issues the following warning:

intern.c:83: warning: comparison of distinct pointer types lacks a
cast.

13 years agogui: Unselect data in data editor when the datasheet is replaced.
Ben Pfaff [Wed, 4 May 2011 04:30:01 +0000 (21:30 -0700)]
gui: Unselect data in data editor when the datasheet is replaced.

The active cell in the PsppireSheet remembers its contents even if
the whole sheet gets replaced, so we have to unselect the cell when
this happens to avoid replacing the cell's contents by whatever was
there before.

Bug #30502.
Thanks to Michel Boaventura for reporting the problem and John
Darrington for diagnosing it.

13 years agoIncrement version to 0.7.8 to send to Translation Project.
Ben Pfaff [Thu, 5 May 2011 01:51:34 +0000 (18:51 -0700)]
Increment version to 0.7.8 to send to Translation Project.

13 years agopsql-reader: Fix build when PostgreSQL is installed. 20110504030502/pspp
Ben Pfaff [Wed, 4 May 2011 04:53:17 +0000 (21:53 -0700)]
psql-reader: Fix build when PostgreSQL is installed.

Problem reported by "Mindaugas Baranauskas" <embar@super.lt>.

13 years agoNEWS: Consolidate post-0.6.2 NEWS.
Ben Pfaff [Wed, 4 May 2011 04:10:10 +0000 (21:10 -0700)]
NEWS: Consolidate post-0.6.2 NEWS.

Suggested by John Darrington.

13 years agogui: Change View|Data and View|Variables to radio button menu items.
Ben Pfaff [Sun, 1 May 2011 05:30:28 +0000 (22:30 -0700)]
gui: Change View|Data and View|Variables to radio button menu items.

I didn't know what View|Variables did until I tried it, at which
point I was surprised that it changed into View|Data.  I think that
a pair of radio button menu items better communicates the intent.
Also, this situation seems to fit well what the GNOME Human Interface
Guidelines say about radio button menu items:

    Radio button menu items show which of two or more
    mutually-exclusive settings are currently selected, and allow
    the user to choose a different setting by selecting its menu
    item.

    * If you need to offer a choice of two mutually-exclusive
      settings to the user, use a group of two radio button items
      instead of a single check box menu item if the settings are
      not clearly opposites. For example, represent View as Icons
      and View as List as two radio button items.

13 years agogui: Add ellipsis to menu items that require further input.
Ben Pfaff [Sun, 1 May 2011 05:00:33 +0000 (22:00 -0700)]
gui: Add ellipsis to menu items that require further input.

The GNOME Human Interface Guidelines say:

    Label the menu item with a trailing ellipsis ("...") only if
    the command requires further input from the user before it
    can be performed. Do not add an ellipsis to items that only
    present a confirmation dialog (such as Delete), or that do
    not require further input (such as Properties, Preferences or
    About).

Most PSPPIRE menu items fit this description, so they should have
trailing ellipses, which this commit adds.

Some GTK+ programs use the Unicode HORIZONTAL ELLIPSIS (U+2026)
character instead of three periods in menu items.  In a quick check
on my own machine, however, three periods were over twice as common.
In an informal survey on pspp-dev, the best argument presented in
favor of one or the other was that three periods may be more familiar
for translators and thus cause less confusion in translation.

13 years agoImplement DATASET commands.
Ben Pfaff [Sat, 30 Apr 2011 04:45:15 +0000 (21:45 -0700)]
Implement DATASET commands.

13 years agogui: New "entry-dialog" module for prompting for a text string.
Ben Pfaff [Sun, 1 May 2011 04:08:01 +0000 (21:08 -0700)]
gui: New "entry-dialog" module for prompting for a text string.

This will be used in an upcoming commit to implement File|Rename
Dataset.  It is made general-purpose, rather than specifically
for that purpose, because it is not any harder to do so and might
be useful somewhere else in the future.

13 years agopsppire-buttonbox: Add "default" property.
Ben Pfaff [Tue, 3 May 2011 13:47:24 +0000 (06:47 -0700)]
psppire-buttonbox: Add "default" property.

This property allows the default button to be controlled from a
GtkBuilder description, instead of forcing the default to Continue.

Only a single bit should be set in the "default" mask.

13 years agogui: Fix g_object_get() memory leaks for PsppireWindow's filename.
Ben Pfaff [Mon, 4 Apr 2011 05:02:47 +0000 (22:02 -0700)]
gui: Fix g_object_get() memory leaks for PsppireWindow's filename.

g_object_get() makes a copy of strings that it returns, so every call
for "filename" was returning a copied string that the caller did not
free.

13 years agogui: Fix File|Open in syntax editor.
Ben Pfaff [Fri, 29 Apr 2011 04:12:27 +0000 (21:12 -0700)]
gui: Fix File|Open in syntax editor.

It didn't do anything.

13 years agogui: Eliminate dataset-related global variables.
Ben Pfaff [Fri, 29 Apr 2011 13:59:55 +0000 (06:59 -0700)]
gui: Eliminate dataset-related global variables.

This should make it easier to introduce support for multiple datasets
later.

13 years agogui: Make syntax execution functions take a PsppireDataWindow argument.
Ben Pfaff [Wed, 30 Mar 2011 04:29:13 +0000 (21:29 -0700)]
gui: Make syntax execution functions take a PsppireDataWindow argument.

The argument specifies which dataset the syntax is meant to apply to.
For now, this is obvious, because there is only one dataset, but in
the future there will be more than one.

13 years agogui: Prefer NULL to 0 for initializing pointers.
Ben Pfaff [Wed, 8 Sep 2010 04:51:03 +0000 (21:51 -0700)]
gui: Prefer NULL to 0 for initializing pointers.

Using NULL instead of 0 is better modern C style.

13 years agogui: Remove obviously unnecessary #include directives.
Ben Pfaff [Wed, 8 Sep 2010 04:44:46 +0000 (21:44 -0700)]
gui: Remove obviously unnecessary #include directives.

These simple header files #include <gtk/gtk.h> but do not reference
anything from GTK+, so they do not to #include its header.

13 years agogui: Include only <gtk/gtk.h> to use GTK+.
Ben Pfaff [Wed, 8 Sep 2010 04:40:40 +0000 (21:40 -0700)]
gui: Include only <gtk/gtk.h> to use GTK+.

The GTK+ manual says: "The recommended way of using GTK+ has always been
to only include the toplevel headers gtk.h, gdk.h, gdk-pixbuf.h."  We
might as well follow this practice, since it only makes life easier.

13 years agopsppire-window: Use g_string_append_unichar() instead of global var.
Ben Pfaff [Mon, 4 Apr 2011 00:24:26 +0000 (17:24 -0700)]
psppire-window: Use g_string_append_unichar() instead of global var.

Seems slightly cleaner.

13 years agogui: Use dispose instead of finalize method in PsppireDataWindow.
Ben Pfaff [Sat, 2 Apr 2011 04:14:49 +0000 (21:14 -0700)]
gui: Use dispose instead of finalize method in PsppireDataWindow.

According to the GObject reference manual, "When dispose ends, the
object should not hold any reference to any other member object."
That is, references should be dropped in dispose, not in finalize.

13 years agogui: Drop null base_finalize function from PsppireDataWindow.
Ben Pfaff [Wed, 30 Mar 2011 04:51:42 +0000 (21:51 -0700)]
gui: Drop null base_finalize function from PsppireDataWindow.

According to the GObject manual, base_finalize is "Never used in
practice. Unlikely you will need it." so I don't see a reason to keep
a stub here.

13 years agogui: Fix const-ness warning in create_lines_tree_view().
Ben Pfaff [Sat, 2 Apr 2011 04:12:54 +0000 (21:12 -0700)]
gui: Fix const-ness warning in create_lines_tree_view().

This fixes this warning from GCC:

src/ui/gui/text-data-import-dialog.c: In function ‘create_lines_tree_view’:
src/ui/gui/text-data-import-dialog.c:875: warning: initialization
discards qualifiers from pointer target type

13 years agogui: Fix const-ness warning for measure_to_string() return type.
Ben Pfaff [Sat, 2 Apr 2011 04:11:47 +0000 (21:11 -0700)]
gui: Fix const-ness warning for measure_to_string() return type.

This fixes the following GCC warning:

src/ui/gui/var-display.c: In function ‘measure_to_string’:
rc/ui/gui/var-display.c:25: warning: return discards qualifiers from
pointer target type

13 years agogui: Put a separator line before list of windows in Windows menus.
Ben Pfaff [Wed, 6 Apr 2011 04:30:34 +0000 (21:30 -0700)]
gui: Put a separator line before list of windows in Windows menus.

I found it a bit confusing before, that the list of windows in the
Windows menu was not separated from the list of actions of windows.
This fixes the problem.

Simply adding a separator item to the .ui files doesn't work, because
GtkUIManager removes it.  The same thing happens if we add a separator
without adding a real menu item at the same time.

Thanks to John Darrington for suggesting the root of the problem.

13 years agogui: Always convert file names to UTF-8 for use in syntax.
Ben Pfaff [Thu, 31 Mar 2011 04:39:01 +0000 (21:39 -0700)]
gui: Always convert file names to UTF-8 for use in syntax.

Syntax as understood by the lexer is always in UTF-8, so file names
have to be in UTF-8 too.  (The PSPP code that opens files based on
strings from syntax is already using utf8_to_filename() to convert
them properly before opening.)

Before commit 9ade26c8349 "lexer: Reimplement for better
testability and internationalization", the encoding of syntax
files was not well-defined.  It was reasonable, then, to put file
names in generated syntax in the file name encoding.

Commit 9ade26c8349 changed the encoding of syntax so that it was
always in UTF-8.  This meant that file names in syntax had to be
converted back into the file name encoding before trying to open
the files, and I made that change (you can see, for example, the
call to utf8_to_filename in do_insert() in
src/language/utilities/include.c).  But I forgot that the GUI
needs to convert its file names into UTF-8 when it is generating
syntax, so this commit fixes that up.

13 years agopo: Update Spanish translation from translation-project.org. 20110503030504/pspp
Ben Pfaff [Tue, 3 May 2011 04:01:35 +0000 (21:01 -0700)]
po: Update Spanish translation from translation-project.org.

13 years agopo: Update Catalan translation from translation-project.org.
Ben Pfaff [Tue, 3 May 2011 04:01:23 +0000 (21:01 -0700)]
po: Update Catalan translation from translation-project.org.

13 years agoFACTOR: Use %s for literal string. 20110427030503/pspp 20110428030504/pspp 20110429030503/pspp 20110430030503/pspp 20110501030503/pspp 20110502030502/pspp
Ben Pfaff [Wed, 27 Apr 2011 04:53:26 +0000 (21:53 -0700)]
FACTOR: Use %s for literal string.

tab_title() treats its parameter as a printf format string, so it's
necessary to use %s.

Found on Mac OS X with help from Jeremy Lavergne.

13 years agoUse %zu, not %d, to format a size_t.
Ben Pfaff [Wed, 27 Apr 2011 04:52:27 +0000 (21:52 -0700)]
Use %zu, not %d, to format a size_t.

Found on Mac OS X with help from Jeremy Lavergne.

13 years agoencoding-guesser: Don't guess UTF-8 for ASCII if it is the fallback.
Ben Pfaff [Wed, 27 Apr 2011 04:36:24 +0000 (21:36 -0700)]
encoding-guesser: Don't guess UTF-8 for ASCII if it is the fallback.

When the text presented to the encoding guesser is all ASCII, normally
the encoding guesser will report ASCII as its guess.  But if the
fallback encoding is UTF-8, then it reports UTF-8 instead.
Unfortunately, this makes the encoding guesser a bit harder to test,
because guesses depend on the system's locale.  It's easier to test
if all-ASCII always yields ASCII as the guess, so this changes the
encoding guesser to do that.

This fixes a test failure on Mac OS X.  Thanks to Jeremy Lavergne for
reporting the problem.

13 years agoi18n: Fix type of objects passed as u8_mbtouc()'s character parameter.
Ben Pfaff [Wed, 27 Apr 2011 04:22:41 +0000 (21:22 -0700)]
i18n: Fix type of objects passed as u8_mbtouc()'s character parameter.

Thanks to Jeremy Lavergne for making a Mac OS build system available.

13 years agoQUICK CLUSTER: Adjust comment style.
Ben Pfaff [Tue, 26 Apr 2011 03:06:19 +0000 (20:06 -0700)]
QUICK CLUSTER: Adjust comment style.

PSPP uses primarily /**/ style comments so the use of // comments in
this file sticks out.

Also we generally wrap comments (and code) at 79 columns and try to
write comments as whole sentences, at least where there is room.

Also, usually PSPP avoids multiple blank lines in a row.

13 years agoQUICK CLUSTER: Update #include directives to match current style.
Ben Pfaff [Tue, 26 Apr 2011 02:59:01 +0000 (19:59 -0700)]
QUICK CLUSTER: Update #include directives to match current style.

These days, usually system header files are #included first, using
<> notation, and then PSPP's one header files, using "" notation.
Each group is alphabetized.

13 years agoQUICK CLUSTER: Fold quick-cluster.h into quick-cluster.c.
Ben Pfaff [Tue, 26 Apr 2011 02:56:42 +0000 (19:56 -0700)]
QUICK CLUSTER: Fold quick-cluster.h into quick-cluster.c.

It's unusual to put 'static' function prototypes into a header file:
header files are usually used to export declarations for use by other
source files, but 'static' functions cannot be called outside their
own source files.

13 years agoQUICK CLUSTER: New command.
Mehmet Hakan Satman [Tue, 26 Apr 2011 02:53:15 +0000 (19:53 -0700)]
QUICK CLUSTER: New command.

13 years agosys-file: Add test to write non-ASCII to most .sav string fields. 20110426030507/pspp
Ben Pfaff [Tue, 26 Apr 2011 04:37:18 +0000 (21:37 -0700)]
sys-file: Add test to write non-ASCII to most .sav string fields.

Bug #33036.

13 years agosys-file-reader: Add tests for non-ASCII characters and encodings.
Ben Pfaff [Mon, 25 Apr 2011 04:42:54 +0000 (21:42 -0700)]
sys-file-reader: Add tests for non-ASCII characters and encodings.

13 years agoDISPLAY FILE LABEL: Display in a more natural way.
Ben Pfaff [Mon, 25 Apr 2011 04:41:30 +0000 (21:41 -0700)]
DISPLAY FILE LABEL: Display in a more natural way.

13 years agoMRSETS: Recode counted value to UTF-8 before displaying.
Ben Pfaff [Mon, 25 Apr 2011 04:41:02 +0000 (21:41 -0700)]
MRSETS: Recode counted value to UTF-8 before displaying.

Otherwise they display incorrectly if a counted value contains
non-ASCII characters.

13 years agosys-file-reader, sys-file-writer: Fix encoding problems for mrsets.
Ben Pfaff [Sun, 24 Apr 2011 20:19:15 +0000 (13:19 -0700)]
sys-file-reader, sys-file-writer: Fix encoding problems for mrsets.

13 years agosys-file-writer: Fix encoding of several string fields.
Ben Pfaff [Sun, 24 Apr 2011 03:15:18 +0000 (20:15 -0700)]
sys-file-writer: Fix encoding of several string fields.

PSPP keeps most string data in the dictionary in UTF-8.  The system
file writer needs to recode this data into the correct encoding, but
in several cases it failed to do so.  This fixes the problem.

Thanks to Mindaugas for reporting the problem and to John Darrington
for help diagnosing it.

Bug #33036.

13 years agosys-file-reader: Take string encoding into account for text records.
Ben Pfaff [Sun, 24 Apr 2011 05:10:20 +0000 (22:10 -0700)]
sys-file-reader: Take string encoding into account for text records.

The 'encoding' member of struct sfm_reader was not filled in anywhere,
so it was always NULL, which meant that the recode operation in
open_text_record() was a no-op.

13 years agovariable: Make var_set_label() use the variable's own encoding.
Ben Pfaff [Sun, 24 Apr 2011 04:45:19 +0000 (21:45 -0700)]
variable: Make var_set_label() use the variable's own encoding.

I don't see any reason to make the caller supply this.  It just makes
code harder to read and write.

13 years agodictionary: Make dict_create() take the new dictionary's encoding.
Ben Pfaff [Sun, 24 Apr 2011 04:40:48 +0000 (21:40 -0700)]
dictionary: Make dict_create() take the new dictionary's encoding.

There are several places in the PSPP tree that create dictionaries,
but few of them actually set an encoding.  This causes most
dictionaries to be in the default encoding, which is often not
correct.

By making dict_create() take the encoding as a parameter we force
the caller to think about the encoding issue up-front.

13 years agodictionary: Set encoding early when cloning a dictionary.
Ben Pfaff [Sat, 23 Apr 2011 19:01:35 +0000 (12:01 -0700)]
dictionary: Set encoding early when cloning a dictionary.

Many operations that involve the names of variables and other entities
in a dictionary depend on the dictionary's encoding, so it is
potentially important to have the encoding set properly when adding
other entities to the dictionary.

I did not check that this fixes an actual bug.

13 years agoshort-names: Consider character encoding when making short names.
Ben Pfaff [Sat, 23 Apr 2011 18:59:49 +0000 (11:59 -0700)]
short-names: Consider character encoding when making short names.

Variable names and short names are always in UTF-8, but the length of
short names needs to be limited to 8 bytes in the dictionary encoding,
not in UTF-8.  This commit fixes that problem.

13 years agoshort-names: Drop redundant call to var_set_short_name().
Ben Pfaff [Sat, 23 Apr 2011 18:40:42 +0000 (11:40 -0700)]
short-names: Drop redundant call to var_set_short_name().

This function always calls var_set_short_name() twice, so we can drop
the first call.

13 years agodissect-sysfile: Don't omit the last in a series of text tokens.
Ben Pfaff [Sun, 24 Apr 2011 04:59:38 +0000 (21:59 -0700)]
dissect-sysfile: Don't omit the last in a series of text tokens.

Otherwise dissect-sysfile would not print the last long string
variable name written by sys-file-writer, because it did not include
a separator byte after the last record.  (This was obvious running
dissect-sysfile on a system file with only one variable.)

13 years agostr: Always null-terminate string in str_format_26adic().
Ben Pfaff [Sat, 23 Apr 2011 19:02:04 +0000 (12:02 -0700)]
str: Always null-terminate string in str_format_26adic().

It seems like a good idea to always supply a null terminator, even on
error.

13 years agoReformat src/language/stats/automake.mk.
Ben Pfaff [Tue, 26 Apr 2011 01:28:20 +0000 (18:28 -0700)]
Reformat src/language/stats/automake.mk.

It seems more consistent with most of our Makefiles to just write one
file per line.

13 years agoUpdated the Lithuanian translation from http://translationproject.org. 20110424030507/pspp 20110425030507/pspp
Ben Pfaff [Sat, 23 Apr 2011 18:00:49 +0000 (11:00 -0700)]
Updated the Lithuanian translation from translationproject.org.

13 years agoSmake: Add unilbrk/u8-possible-linebreaks Gnulib module.
Ben Pfaff [Sat, 23 Apr 2011 14:54:56 +0000 (07:54 -0700)]
Smake: Add unilbrk/u8-possible-linebreaks Gnulib module.

The ASCII output driver now requires this module, as of commit
14b3603043 "ascii: Add support for multibyte characters."

Reported by John Darrington.

13 years agoAdd new output/ascii.h header to the distribution, fixing "make dist".
Ben Pfaff [Sat, 23 Apr 2011 14:53:00 +0000 (07:53 -0700)]
Add new output/ascii.h header to the distribution, fixing "make dist".

13 years agoascii: Print syntax in output single-spaced. 20110423030508/pspp
Ben Pfaff [Sat, 23 Apr 2011 05:29:19 +0000 (22:29 -0700)]
ascii: Print syntax in output single-spaced.

When SET PRINTBACK=ON was in effect, the ASCII output driver would
put a blank line between successive lines of syntax, because each line
was output separately.  This commit fixes that, by causing the output
core to combine successive syntax output items into a single item that
contains multiple lines of text.  This was essentially what the HTML
output driver was doing anyhow, so putting this into the core also
allows removing the corresponding logic from the HTML driver.

13 years agoascii: Don't print command names in output.
Ben Pfaff [Sat, 23 Apr 2011 05:10:04 +0000 (22:10 -0700)]
ascii: Don't print command names in output.

This seems to be closer to what users expect.

I think that having the command names in output was being confused
by users with SET PRINTBACK=ON (see e.g. bug #31561) even though I
really just added that so that there are clear titles for the output
that goes with each procedure.  This change should help, I think.

It might make sense to make drivers only print the titles of
procedures that have other output, but this commit doesn't do that.

13 years agoodt: Write command name in output both only before command, not after.
Ben Pfaff [Sat, 23 Apr 2011 05:07:52 +0000 (22:07 -0700)]
odt: Write command name in output both only before command, not after.

13 years agoascii: Add support for multibyte characters.
Ben Pfaff [Sat, 23 Apr 2011 03:21:57 +0000 (20:21 -0700)]
ascii: Add support for multibyte characters.

This commit modifies render.at, changing hyphens to non-breaking
hyphens.  This change is only to ensure that the output for the tests
in render.at are the same afterward.  Without these changes, these
tests wrap these tables differently, because they break after the
hyphens; before, only spaces were considered valid breakpoints.

Bug #31478.

13 years agoascii: Drop useless 'wrap_mode' parameter from ascii_layout_cell().
Ben Pfaff [Sun, 17 Apr 2011 01:43:56 +0000 (18:43 -0700)]
ascii: Drop useless 'wrap_mode' parameter from ascii_layout_cell().

This parameter is always supplied as WRAP_WORD, so there's no point
in having it at all.

13 years agoUpdated the Lithuanian translation from http://translationproject.org. 20110418030503/pspp 20110419030503/pspp 20110420030502/pspp 20110421030503/pspp 20110422030503/pspp
Ben Pfaff [Sun, 17 Apr 2011 23:55:09 +0000 (16:55 -0700)]
Updated the Lithuanian translation from translationproject.org.

13 years agogui: Add Lithuanian translation and MIME type to pspp.desktop
Mindaugas [Sun, 17 Apr 2011 23:52:41 +0000 (16:52 -0700)]
gui: Add Lithuanian translation and MIME type to pspp.desktop

13 years agoUpdated the Lithuanian translation from http://translationproject.org. 20110417030505/pspp
Ben Pfaff [Sat, 16 Apr 2011 20:40:43 +0000 (13:40 -0700)]
Updated the Lithuanian translation from translationproject.org.

13 years agogui: Fix crash in executor when inline data is missing.
Ben Pfaff [Sat, 16 Apr 2011 18:20:59 +0000 (11:20 -0700)]
gui: Fix crash in executor when inline data is missing.

Without this commit, typing "DATA LIST /x 1." into an otherwise empty
syntax window and executing it caused a crash because the lexer was
being accessed after it was destroyed.  This commit averts the crash.

13 years agoCROSSTABS: Fix output of multiway statistics tables.
Ben Pfaff [Sat, 16 Apr 2011 16:52:34 +0000 (09:52 -0700)]
CROSSTABS: Fix output of multiway statistics tables.

Bug #27452.

13 years agoUpdated the Lithuanian translation from http://translationproject.org.
Ben Pfaff [Sat, 16 Apr 2011 16:30:10 +0000 (09:30 -0700)]
Updated the Lithuanian translation from translationproject.org.

13 years agotable-casereader: Put space between columns. 20110416030505/pspp
Ben Pfaff [Sat, 16 Apr 2011 05:49:00 +0000 (22:49 -0700)]
table-casereader: Put space between columns.

When table_casereaders are pasted together next to each other, there
should normally be a little bit of space between neighboring columns,
instead of having them directly abutting.  This makes the output of
LIST, for example, much more readable.

Without this commit, LIST output for three variables named x, y, and
z, all with F1.0 format, looks something like this:

xyz
---
111
222
311
412
521
612
711
811
912

With this commit, it looks like this:

x y z
-----
1 1 1
2 2 2
3 1 1
4 1 2
5 2 1
6 1 2
7 1 1
8 1 1
9 1 2

13 years agorender: Fix rendering of TAL_GAP rules.
Ben Pfaff [Sat, 16 Apr 2011 05:26:43 +0000 (22:26 -0700)]
render: Fix rendering of TAL_GAP rules.

A rule that is set to TAL_GAP is supposed to have the same width or
height as a rule of type TAL_1, but without drawing the line.  That
is, it is supposed to be a small blank space between rows or columns.

Unfortunately, TAL_GAP was not implemented properly in the rendering
code.  It was treated just like TAL_0, which meant that it was ignored
and no gap appeared.

This commit implements TAL_GAP, fixing the problem.

13 years agoconfigure: Invoke AM_GNU_GETTEXT by hand.
Ben Pfaff [Sat, 16 Apr 2011 03:16:02 +0000 (20:16 -0700)]
configure: Invoke AM_GNU_GETTEXT by hand.

The Gnulib "gettext" module does not invoke AM_GNU_GETTEXT, because
gnulib-tool uses "sed" to filter it out.  So we must invoke it
ourselves.

John Darrington narrowed the problem down to the commit b54a5702b6
"Fix up build following dropping ulc-width-linebreaks module" that
started using the gettext Gnulib module.

Bug #33083.
Reported by Mindaugus.

13 years agogui: Add missing scroll bar in K related samples variables list. 20110415030503/pspp
Ben Pfaff [Fri, 15 Apr 2011 04:09:00 +0000 (21:09 -0700)]
gui: Add missing scroll bar in K related samples variables list.

Reported by and fix from Mindaugas Baranauskas <embar@super.lt>.
Reviewed by John Darrington.

13 years agovalue-labels: Interpret \n as new-line in value labels. 20110414030503/pspp
Ben Pfaff [Thu, 14 Apr 2011 04:24:30 +0000 (21:24 -0700)]
value-labels: Interpret \n as new-line in value labels.

Bug #18497.

13 years agointern: New function intern_strlen().
Ben Pfaff [Wed, 13 Apr 2011 05:19:45 +0000 (22:19 -0700)]
intern: New function intern_strlen().

13 years agointern: Use UP_CAST macro instad of open-coding it.
Ben Pfaff [Wed, 13 Apr 2011 03:42:47 +0000 (20:42 -0700)]
intern: Use UP_CAST macro instad of open-coding it.

13 years agopo: Update Dutch translation. 20110413030503/pspp
Ben Pfaff [Wed, 13 Apr 2011 03:33:13 +0000 (20:33 -0700)]
po: Update Dutch translation.

Thanks to the Dutch translation team and the translationproject.org
coordinators.

13 years agovalue-parser: Make parse_value() accept variable's print format also.
Ben Pfaff [Tue, 12 Apr 2011 13:48:08 +0000 (06:48 -0700)]
value-parser: Make parse_value() accept variable's print format also.

Previously commands such as VALUE LABELS required numeric values to
be given as plain numbers, but this makes it difficult to add
meaningful value labels for variables with date and time formats.
This commit allows values for this command and a few others to be
given in a variable's print format instead.

Bug #18497.

13 years agovalue-labels: Fix comment.
Ben Pfaff [Tue, 12 Apr 2011 13:45:53 +0000 (06:45 -0700)]
value-labels: Fix comment.

13 years agoDISPLAY: Display values for value labels using the variable's format.
Ben Pfaff [Tue, 12 Apr 2011 13:45:33 +0000 (06:45 -0700)]
DISPLAY: Display values for value labels using the variable's format.

Until now, the values in value labels have been displayed as plain
numbers, but this makes the values for variables with date and time
formats unreadable.  Changing them to use the variable's own format
makes them easier to read.

13 years agotab: Make tab_value() take a variable instead of a dictionary.
Ben Pfaff [Tue, 12 Apr 2011 13:43:04 +0000 (06:43 -0700)]
tab: Make tab_value() take a variable instead of a dictionary.

It seems far more likely that callers will have the variable handy
than the dictionary.  Also, when the variable is used the format can
be optional since tab_value() can get it from the variable's print
format.

13 years agoFORMATS: Allow an optional slash before each set of variable names. 20110412030503/pspp
Ben Pfaff [Tue, 12 Apr 2011 05:49:01 +0000 (22:49 -0700)]
FORMATS: Allow an optional slash before each set of variable names.

This increases compatibility.

13 years agoFORMATS: Allow setting formats of string variables.
Ben Pfaff [Tue, 12 Apr 2011 05:48:08 +0000 (22:48 -0700)]
FORMATS: Allow setting formats of string variables.

Thanks to John Darrington for reporting this bug.
Bug #22012.

13 years agogui: psppire-var-view: Change "<unset>" to null string. 20110411030503/pspp
Ben Pfaff [Sun, 10 Apr 2011 16:52:31 +0000 (09:52 -0700)]
gui: psppire-var-view: Change "<unset>" to null string.

Commit 0cb2b9c42 caused NULL variables to be displayed as "<unset>".
This commit changes that to the empty string, which doesn't require
translation and is equally clear.

Suggested by John Darrington <john@darrington.wattle.id.au>.

13 years agoLIST: Fix crash when SPLIT FILE was used. 20110410030503/pspp
Ben Pfaff [Sun, 10 Apr 2011 02:11:44 +0000 (19:11 -0700)]
LIST: Fix crash when SPLIT FILE was used.

Thanks to John Darrington for reporting the problem and to Michel
Boaventura for reducing the problem to a simple test case.

13 years agogui: Fix crash in Paired T-Test dialog on selecting first variable.
Ben Pfaff [Sat, 9 Apr 2011 23:53:26 +0000 (16:53 -0700)]
gui: Fix crash in Paired T-Test dialog on selecting first variable.

When a variable is moved into the list of selected variables in the
Paired T-Test dialog, that row of the treeview has one nonnull
variable and one null variable.  Calling var_get_name(NULL) causes a
segfault.

I'm not certain that this is the correct fix, but it fixes the
segfault.  The missing variable is now shown as <unset> until a second
variable is moved into the treeview.

Bug #32958.

13 years agogui: Fix Glib warnings for dialogs in realize and configure callbacks.
Ben Pfaff [Sat, 9 Apr 2011 23:50:44 +0000 (16:50 -0700)]
gui: Fix Glib warnings for dialogs in realize and configure callbacks.

The GtkBuilder documentation says:

    Prior to 2.20, GtkBuilder was setting the "name" property of
    constructed widgets to the "id" attribute. In GTK+ 2.20 or newer,
    you have to use gtk_buildable_get_name() instead of
    gtk_widget_get_name() to obtain the "id", or set the "name"
    property in your UI definition.

This commit fixes the problem by switching from using the "name"
property to calling gtk_buildable_get_name().

13 years agogui: Link against $(LIBICONV) too.
Ben Pfaff [Sat, 9 Apr 2011 17:57:55 +0000 (10:57 -0700)]
gui: Link against $(LIBICONV) too.

The GUI now uses iconv, so we need to link libiconv too.

Problem reported by Harry Thijssen <harry.thijssen@gmail.com>.
Fix suggested by John Darrington <john@darrington.wattle.id.au>.

13 years agou8-istream: Add cast to iconv() to suppress warnings on some systems.
Ben Pfaff [Sat, 9 Apr 2011 17:55:53 +0000 (10:55 -0700)]
u8-istream: Add cast to iconv() to suppress warnings on some systems.

Problem reported by Harry Thijssen <harry.thijssen@gmail.com>.
Fix suggested by John Darrington <john@darrington.wattle.id.au>.

13 years agou8-istream: Include <limits.h> for definition of MB_LEN_MAX.
Ben Pfaff [Sat, 9 Apr 2011 16:25:59 +0000 (09:25 -0700)]
u8-istream: Include <limits.h> for definition of MB_LEN_MAX.

Problem reported by Harry Thijssen <pspp@sjpaes.nl>.
Fix suggested by John Darrington <john@darrington.wattle.id.au>.

13 years agosegment: Fix uninitialized variable in segmenter_parse_comment_2__(). 20110409030503/pspp
Ben Pfaff [Sat, 9 Apr 2011 04:14:13 +0000 (21:14 -0700)]
segment: Fix uninitialized variable in segmenter_parse_comment_2__().

This caused a couple of test failures on Mac OS X.

Thanks to Jeremy Lavergne <jeremy@lavergne.gotdns.org> for reporting
the problem.

13 years agotests: Only check MODE=360 when EBCDIC is supported. 20110408030502/pspp
Ben Pfaff [Fri, 8 Apr 2011 04:49:13 +0000 (21:49 -0700)]
tests: Only check MODE=360 when EBCDIC is supported.

Jeremy Lavergne <jeremy@lavergne.gotdns.org> reported that these tests
fail on Mac OS X.  testsuite.log showed that Mac OS X did not support
the EBCDIC-US encoding, so this OS cannot support these tests.