Friedrich Beckmann [Mon, 17 Aug 2020 17:43:37 +0000 (19:43 +0200)]
limit the number of variables in barchart from crosstabs #58968
The barchart was created with more than two variables from
the crosstabs subcommand. I added an assertion and limit
the number of variables to two. This bug resulted in a
regression failure (crash) for test
493: CROSSTABS barchart
on i386 architecture.
see: https://savannah.gnu.org/bugs/?58968
Friedrich Beckmann [Mon, 17 Aug 2020 09:52:47 +0000 (11:52 +0200)]
fixed range check in parse_record_placement (32Bit/64Bit issue) #58968
The regression failed for test "lexer crash due to overflow" (403)
on i386 architecture. The reason is that long is 64Bit on amd64 while
it is 32Bit on i386. The code used long as type that can hold larger
values than int which does not work on 32Bit systems.
The change keeps the value as double as long as the range checks are done.
see: https://savannah.gnu.org/bugs/?58968
Friedrich Beckmann [Mon, 17 Aug 2020 10:22:04 +0000 (12:22 +0200)]
fixed git distribution check for .gitattributes added in previous commit
Friedrich Beckmann [Mon, 17 Aug 2020 09:45:07 +0000 (11:45 +0200)]
added .gitattributes file such that lexer.at shows diff
Friedrich Beckmann [Sun, 16 Aug 2020 15:28:49 +0000 (17:28 +0200)]
factor.c: added translation hint
John Darrington [Sun, 16 Aug 2020 18:56:06 +0000 (20:56 +0200)]
Removed stray newline in acinclude.m4
Reported-by: Michel Boaventura
John Darrington [Sun, 16 Aug 2020 12:32:31 +0000 (14:32 +0200)]
Fixed error running 'make distcheck'
John Darrington [Sun, 16 Aug 2020 10:36:00 +0000 (12:36 +0200)]
Fixed some errors in format and orthography of printed strings.
Reported-by: Anonymous https://lists.gnu.org/archive/html/bug-gnu-pspp/2020-08/msg00004.html
Friedrich Beckmann [Sun, 16 Aug 2020 08:43:04 +0000 (10:43 +0200)]
pspp-convert.1 - fixed a syntax typo
The debian build checks reported a bug in the man page:
troff: <standard input>:129: '\-' is not allowed in an escape name
The man page can be checked with:
LC_ALL=en_US.UTF-8 MANROFFSEQ='' MANWIDTH=80 \
man --warnings -E UTF-8 -l -Tutf8 -Z ./pspp-convert.1 >/dev/null
John Darrington [Mon, 10 Aug 2020 07:15:09 +0000 (09:15 +0200)]
Revive psppire's glade compatibility
John Darrington [Sun, 9 Aug 2020 16:16:27 +0000 (18:16 +0200)]
PsppireSelector: Don't attempt to unref a null pointer
John Darrington [Sun, 9 Aug 2020 14:37:45 +0000 (16:37 +0200)]
Update GtkBuilder files to mention gtk+ version 3.22
jdarrington [Sun, 9 Aug 2020 14:21:33 +0000 (16:21 +0200)]
src/language/stats/chart-category.h: Add #include directive
jdarrington [Sun, 9 Aug 2020 14:19:16 +0000 (16:19 +0200)]
PsppireVarView: Use g_realloc instead of xrealloc
jdarrington [Sun, 9 Aug 2020 11:19:03 +0000 (13:19 +0200)]
src/ui/gui/automake.mk: Sort the manifest
jdarrington [Sun, 9 Aug 2020 11:10:47 +0000 (13:10 +0200)]
Rename PsppireButtonbox to PsppireButtonBox
This is more consistent with other names.
John Darrington [Sun, 2 Aug 2020 17:17:19 +0000 (19:17 +0200)]
src/ui/gui/psppire-conf.c: On error, give a reason for failure to create file
John Darrington [Sun, 2 Aug 2020 09:44:18 +0000 (11:44 +0200)]
Avoid warnings about ! being passed a non-boolean
John Darrington [Sun, 19 Jul 2020 09:35:56 +0000 (11:35 +0200)]
PsppireImportAssistant: Proceed to next page when a file is double clicked
John Darrington [Sun, 19 Jul 2020 07:51:09 +0000 (09:51 +0200)]
Remove/Replace some obsolete gnulib modules
John Darrington [Mon, 10 Aug 2020 08:44:22 +0000 (10:44 +0200)]
Smake: create build-aux/config.rpath
jdarrington [Sun, 9 Aug 2020 10:53:32 +0000 (12:53 +0200)]
Update to more recent GNULIB
John Darrington [Sun, 16 Aug 2020 06:57:16 +0000 (08:57 +0200)]
Bump version to 1.5.0
Ben Pfaff [Sat, 15 Aug 2020 22:53:21 +0000 (22:53 +0000)]
Release PSPP version 1.4.0.
Friedrich Beckmann [Fri, 14 Aug 2020 00:53:11 +0000 (02:53 +0200)]
sys-file-reader: get_text_token did not set delimiter - bug #58943
parse_mrsets used loop local variables which were not initialized.
The regression worked with low compiler optimization levels because
the value for "delimiter" was kept over the loop iterations.
get_text_token did not set the delimiter value when only delimiters
are left in the string. I set the delimiter value to the last value
in the string in that case. I initialized the variables to see the
bug also in -O0.
Closes: https://savannah.gnu.org/bugs/?58943
Ben Pfaff [Mon, 3 Aug 2020 04:31:22 +0000 (04:31 +0000)]
render-test: Initialize i18n to make tests pass on mingw.
On mingw, filename recoding requires i18n to be initialized.
Ben Pfaff [Mon, 3 Aug 2020 04:30:44 +0000 (04:30 +0000)]
tests: Tolerate 3-digit exponents in output for chart tick format.
This makes the test pass on mingw.
Ben Pfaff [Mon, 3 Aug 2020 04:28:38 +0000 (04:28 +0000)]
tests: Ignore Pango warnings when generating charts.
On mingw, Pango complains about font names. It's harmless. I don't know
a way to suppress the warning.
Ben Pfaff [Mon, 3 Aug 2020 00:44:40 +0000 (00:44 +0000)]
placement-parser: Properly handle LONG_MAX != INT_MAX.
Also, delete spurious null bytes from the related test. The null
bytes spurred a test failure on mingw although I am not sure why.
Ben Pfaff [Sun, 2 Aug 2020 21:26:31 +0000 (21:26 +0000)]
tests: More character encoding issues on command line.
Unix-like systems don't have a command-line encoding, so we can pass
whatever bytes we want. mingw uses some particular encoding for
command line arguments, so this screws up trying to pass UTF-8 in. This
commit side-steps the problem by passing only ASCII characters on the
command line and making the test program decode the bytes.
This fixes several test failures under mingw.
Ben Pfaff [Sun, 2 Aug 2020 22:10:42 +0000 (22:10 +0000)]
tests: Use AUTOTEST_PATH to find chart test programs.
Otherwise the test wrappers feature can't help to find it on mingw, so
the chart geometry tests fail.
Ben Pfaff [Sun, 2 Aug 2020 21:57:31 +0000 (21:57 +0000)]
zip-test: Open files in binary mode.
Fixes a test failure on mingw.
Ben Pfaff [Sun, 2 Aug 2020 21:26:31 +0000 (21:26 +0000)]
tests: Avoid dealing with character encoding issues on command line.
Unix-like systems don't have a command-line encoding, so we can pass
whatever bytes we want. mingw uses some particular encoding for
command line arguments, so this screws up trying to pass UTF-8 in. This
commit side-steps the problem by passing only ASCII characters on the
command line and making the test program decode the bytes.
This fixes several test failures under mingw.
Ben Pfaff [Sun, 2 Aug 2020 20:44:14 +0000 (20:44 +0000)]
tests: Tolerate carriage-returns in output for SAMPLE test.
This fixes a test failure with mingw.
Ben Pfaff [Sun, 2 Aug 2020 19:05:52 +0000 (19:05 +0000)]
tests: Always set a paper size.
Normally PSPP can find a default paper size but this isn't necessarily true
inside, e.g., a build container, so set a default to avoid test failures.
Ben Pfaff [Sun, 2 Aug 2020 19:03:42 +0000 (19:03 +0000)]
tests: Don't output to PDF without a good reason.
PDF output can cause spurious error messages from Pango to appear in the
output (which would be nice to fix but I'm not sure how) and it's not
always configured in, so omit it in MRSETS where it's not really needed.
Ben Pfaff [Sun, 2 Aug 2020 18:23:35 +0000 (18:23 +0000)]
tests: Fix synthetic system file reader tests on Windows.
The system files were being written as text files, so any \n character was
getting translated into \r\n, corrupting the output.
Friedrich Beckmann [Fri, 31 Jul 2020 14:10:11 +0000 (16:10 +0200)]
Smake: added 16x16, 32x32 and 256x256 pspp.png icons
John Darrington [Sun, 26 Jul 2020 18:54:57 +0000 (20:54 +0200)]
Recent spread-sheet-widget to version 0.6
John Darrington [Sun, 19 Jul 2020 13:07:33 +0000 (15:07 +0200)]
Fix typo in po/automake.mk
John Darrington [Sat, 18 Jul 2020 06:00:37 +0000 (08:00 +0200)]
Recent spread-sheet-widget to 0.5 or later
John Darrington [Sun, 12 Jul 2020 09:43:39 +0000 (11:43 +0200)]
Import Assistant Sheet Page: Set the sheet selector sentitivity
Friedrich Beckmann [Sun, 12 Jul 2020 19:32:28 +0000 (21:32 +0200)]
gui: normalize clipboard cut selection rectangle (#58756)
With this patch the selection rectangle for the clipboard cut
operation is normalize, i.e. it does not matter in which corner
you start the selection.
Closes: https://savannah.gnu.org/bugs/index.php?58756
Friedrich Beckmann [Sun, 12 Jul 2020 18:59:35 +0000 (20:59 +0200)]
gui: clipboard CUT and COPY store same data with/without label
clipboard store data with or without value labels depending on
the setting in the data view. clipboard cut was always storing
the raw data.
With this patch copy and cut both store raw data or labels
depending on the view setting.
Closes: https://savannah.gnu.org/bugs/?58757
Friedrich Beckmann [Sun, 12 Jul 2020 16:36:16 +0000 (18:36 +0200)]
gui: Pasting also considers labels as valid data
With this patch pasting from clipboard also interprets labels as
valid data. First it is checked if the pasted data is a label for
the destination variable. Then the corresponding data is stored.
John Darrington [Sat, 11 Jul 2020 19:49:00 +0000 (21:49 +0200)]
psppire-import-assistant (struct _PsppireImportAssistant): Remove unused member.
John Darrington [Sat, 11 Jul 2020 15:35:57 +0000 (17:35 +0200)]
Fix memory leak in the value labels dialog
John Darrington [Sat, 11 Jul 2020 13:31:33 +0000 (15:31 +0200)]
src/ui/gui/org.fsf.pspp.desktop.in: Add translator hint
Add an instruction to not translate the Icon name. Recent versions of
xgettext (correctly) ignore this entry. But earlier versions erroneously
include it in the list of strings to translate.
John Darrington [Sat, 11 Jul 2020 10:58:41 +0000 (12:58 +0200)]
psppire-data-window.c: Remove ssw api protection
John Darrington [Sat, 11 Jul 2020 09:08:23 +0000 (11:08 +0200)]
SpreadLevel Plot: Don't try to take the logarithm of a negative
John Darrington [Sat, 11 Jul 2020 07:35:29 +0000 (09:35 +0200)]
src/output/cairo-chart.h (xrchart_write_scale): Check the range and deal with the consequences.
If a chart was requested where either scale had an range of zero
(the minimum value and the maximum value were equal), then all
sorts of memory errors could occur later in the chart's rendering.
This change checks for this condition early and refuses to draw the
chart in this case.
John Darrington [Sat, 11 Jul 2020 05:46:14 +0000 (07:46 +0200)]
psppire-data-window.c (on_cut): Do not append trailing whitespace to clip.
John Darrington [Sat, 11 Jul 2020 05:40:09 +0000 (07:40 +0200)]
psppire-data-window.c (on_cut): Deal properly with string variables.
John Darrington [Sat, 11 Jul 2020 05:32:30 +0000 (07:32 +0200)]
Do not attempt to use the output driver while it's being destroyed.
John Darrington [Sat, 11 Jul 2020 05:24:25 +0000 (07:24 +0200)]
src/ui/gui/automake.mk: Remove OBSOLETE
This definition is indeed obsolete.
John Darrington [Sat, 11 Jul 2020 05:09:11 +0000 (07:09 +0200)]
#undef close which was causing problems on w32
John Darrington [Sat, 11 Jul 2020 04:55:28 +0000 (06:55 +0200)]
Revert "Conditional Compilation per GCS 3.5"
This reverts commit
002a30f274ced97769ebc3373c493a8e5329c2bc.
John Darrington [Sat, 11 Jul 2020 04:55:28 +0000 (06:55 +0200)]
Revert "Keep systems happy which do not have sys/resource.h"
This reverts commit
f4ba0d4b24301f389dfb76a66094b093125fac9b.
John Darrington [Sat, 11 Jul 2020 04:37:36 +0000 (06:37 +0200)]
Histogram Dialog: Allow only numeric variables to be selected
John Darrington [Sat, 11 Jul 2020 04:37:36 +0000 (06:37 +0200)]
Reduce the length of the icon names.
This was causing problems for the autobuilder.
John Darrington [Sat, 11 Jul 2020 04:37:36 +0000 (06:37 +0200)]
po/metainfo.its: New file.
Add a ITS file for metainfo.xml format, and use it when extracting strings for
for translation.
Friedrich Beckmann [Wed, 8 Jul 2020 11:49:42 +0000 (13:49 +0200)]
gui: cut from editable to clipboard when cell is focused
When a cell is focused, then the cut operation
must operate on the selection in the cell editable
and not on the complete cell, i.e. the store content.
Friedrich Beckmann [Wed, 8 Jul 2020 07:53:51 +0000 (09:53 +0200)]
gui: trim displayed string for string variables (spaces)
The current gui always renders strings in the datasheet view
with the full width by adding spaces to the end of a string.
This patch renders the strings in the same way as they are rendered
in the status edit box above the cells array, i.e. trailing whitespace
is removed. Editing strings is straightforward.
Friedrich Beckmann [Wed, 8 Jul 2020 07:44:55 +0000 (09:44 +0200)]
gui: render empty string for numeric system missing value
Numeric cells which contain the system missing value are currently rendered
as a number of spaces, a dot and a number of spaces depending on the
current variable width and decimal places settings. When the cell is
edited, then this string is pretty confusing.
With the patch system missing values for numeric variables are rendered
as empty strings. Editing the cell is then straightforward and starts
with an empty cell.
John Darrington [Mon, 6 Jul 2020 19:44:57 +0000 (21:44 +0200)]
Keep systems happy which do not have sys/resource.h
Ben Pfaff [Mon, 6 Jul 2020 18:05:48 +0000 (18:05 +0000)]
configure.ac: Select ustar format for distribution.
This format allows for longer filenames, which is needed for some of the
long icon names used by PSPPIRE.
Ben Pfaff [Mon, 6 Jul 2020 16:04:11 +0000 (16:04 +0000)]
Document /*...*/ style comments.
Friedrich Beckmann [Sun, 5 Jul 2020 20:47:01 +0000 (22:47 +0200)]
icons: added psppire- prefix to action items #58708, #50026
The edit-find action icon is already available in the default
gnome and kde icon themes. Therefore the default icon is always found
first. I added the psppire- prefix to the action icon names such that
the icons are unique.
Closes: https://savannah.gnu.org/bugs/?58708
Closes: https://savannah.gnu.org/bugs/?50026
John Darrington [Sun, 5 Jul 2020 09:40:04 +0000 (11:40 +0200)]
Remove pspp-mode.el
This is now distributed at elpa.gnu.org/packages/pspp-mode.html
John Darrington [Sat, 4 Jul 2020 11:18:08 +0000 (13:18 +0200)]
HTML output driver: Correct typo
VALIGN was incorrectly typed as ALIGN
John Darrington [Sat, 4 Jul 2020 10:29:18 +0000 (12:29 +0200)]
Autorecode Dialog: Use correct dictionary pointer
John Darrington [Sat, 4 Jul 2020 10:25:06 +0000 (12:25 +0200)]
psppire_box_pack_start_defaults: Change to static inline
This is a simple, one line wrapper around another function.
So having it inline makes sense.
John Darrington [Sat, 4 Jul 2020 10:25:06 +0000 (12:25 +0200)]
src/ui/gui/helper.c: Remove unused functions
John Darrington [Sat, 4 Jul 2020 09:52:39 +0000 (11:52 +0200)]
Remove the default help function.
This function is no longer reachable.
John Darrington [Sat, 4 Jul 2020 09:30:29 +0000 (11:30 +0200)]
Audit and cleanup dispose methods of classes which have them.
Ensure that all non-trivial dispose methods use the dispose_has_run
flag and that only unreffing takes place within dispose.
John Darrington [Sat, 4 Jul 2020 09:15:04 +0000 (11:15 +0200)]
Mitigate bug #48050
This bug caused an assertion failure in src/data/datasheet.c The change here
traps the faulty condition earlier and raises a G_CRITICAL rather than an
assertion.
John Darrington [Sat, 4 Jul 2020 09:11:47 +0000 (11:11 +0200)]
Fix memory leak displaying string values in the data sheet
John Darrington [Sat, 4 Jul 2020 09:11:47 +0000 (11:11 +0200)]
Value variant: Don't over allocate string values
John Darrington [Sat, 4 Jul 2020 09:11:47 +0000 (11:11 +0200)]
pspp-mode.el: Make all keywords case insensitive
John Darrington [Sat, 4 Jul 2020 08:42:22 +0000 (10:42 +0200)]
pspp-mode.el: Make indentation closer to what lisp people like.
John Darrington [Sat, 4 Jul 2020 08:42:22 +0000 (10:42 +0200)]
Add finalize methods to some classes which don't have them.
These may not be strictly necessary, but can make tracking
for leaks easier by placing a diagnostic in the method.
John Darrington [Sat, 4 Jul 2020 06:38:33 +0000 (08:38 +0200)]
Unref variables after fetching from treeview model.
Commit
e511c5a34a8dd5863c5f71c820609c3c0e363cc9 added a reference
to boxed variable pointers. This means they have to be unreffed
after fetching one with gtk_tree_model_get.
John Darrington [Sat, 4 Jul 2020 06:38:33 +0000 (08:38 +0200)]
gtk.in.h: Remove redundant macro replacements.
Today configure.ac insists upon Gtk+ 3.22 so working around older
Gtk+ versions is no longer required.
John Darrington [Sat, 4 Jul 2020 06:38:33 +0000 (08:38 +0200)]
lib/ptukey.c: Use the standard macro INFINITY from the math library
John Darrington [Sat, 4 Jul 2020 06:38:33 +0000 (08:38 +0200)]
Change all instances of "help_page" to "help-page".
Signal and property names are documented as treating
'-' and '_' as equivalent. However it helps when grepping
files if we use just one orthography.
John Darrington [Sat, 4 Jul 2020 06:38:33 +0000 (08:38 +0200)]
Conditional Compilation per GCS 3.5
Deal with conditional compilation using the way recommended by
the GNU Coding Standards Section 3.5
https://www.gnu.org/prep/standards/html_node/Conditional-Compilation.html#Conditional-Compilation
John Darrington [Sat, 4 Jul 2020 06:38:33 +0000 (08:38 +0200)]
Conform to GNU nomenclature.
John Darrington [Sat, 4 Jul 2020 06:38:33 +0000 (08:38 +0200)]
John Darrington [Sat, 4 Jul 2020 06:38:33 +0000 (08:38 +0200)]
Follow-up to bugfix #58664
If the width of a variable changes, then implicitly so does its
missing values --- even if the number of missing values is zero.
This is because the variable's width is cached in the missing_value
struct itself.
John Darrington [Sat, 4 Jul 2020 06:38:33 +0000 (08:38 +0200)]
Fix bug #58664
Friedrich Beckmann [Sun, 28 Jun 2020 19:51:09 +0000 (21:51 +0200)]
trim.c: avoid zero size xnrealloc memory allocation
Without the patch the regression fails on test
GET with /KEEP=ALL crashes -- uncompressed
when I compile with -fsanitize=address on MacOS. The reason
is that xnrealloc is called with a zero size allocation. I
simply avoid this, although it might be perfectly o.k. to do so.
Friedrich Beckmann [Sun, 28 Jun 2020 16:46:43 +0000 (18:46 +0200)]
desktop: open a file via xdg-open without additional output window
Currently there is a difference between opening an additional data
file via the Edit->Open menu or by opening a file via xdg-open (same
for doubleclick on Filebrowser). In the latter case the on_open
callback is called which runs an additional post_initialize. That
results in an additional output window.
I changed the behavior such that post_initialize is only called
when there is no psppire window yet. That happens when psppire
is started from a terminal with the file as argument on linux.
Further I check if there is an empty datawindow and replace that
in the same way as it is done via the Edit->Open menu.
John Darrington [Sat, 27 Jun 2020 16:00:16 +0000 (18:00 +0200)]
Fix bug #54784 (again).
Certain GUI entities hold pointers to variables. To ensure that
the variables survive the lifetime of the entity which holds the
pointer, the entity must take a reference.
This is particularly important where a transformation which involves
TEMPORARY of a filter is involved.
John Darrington [Sat, 27 Jun 2020 15:36:48 +0000 (17:36 +0200)]
Introduce reference counting for variables.
Necessary for upcomming commit.
John Darrington [Sat, 27 Jun 2020 11:26:39 +0000 (13:26 +0200)]
psppire-output-view.c (psppire_output_view_destroy): Fix memory leak.
John Darrington [Sat, 27 Jun 2020 11:15:31 +0000 (13:15 +0200)]
dictionary.c: Don't emit callbacks when the dictionary is destroyed.
Also reorder some functions in order of dependence.
John Darrington [Sat, 27 Jun 2020 11:15:31 +0000 (13:15 +0200)]
data_parser: Keep a reference to the dictionary
John Darrington [Sat, 27 Jun 2020 11:15:31 +0000 (13:15 +0200)]
Revert "Fixed a use after free error when manipulating datasets."
This reverts commit
1d06ba6d498b9446d5fb8c432d24efb2bee713a9
which caused memory leaks.
Friedrich Beckmann [Sat, 27 Jun 2020 08:11:01 +0000 (10:11 +0200)]
typo in title - Lable -> Label
Friedrich Beckmann [Sat, 27 Jun 2020 07:44:16 +0000 (09:44 +0200)]
switched to portable control key <Primary> for accellerators
gtk supports the "Primary" key which translates to the "CMD" key
on MacOS and "Ctrl" on linux. So this is a portable way to
say the "Copy" via key.