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.
John Darrington [Sat, 27 Jun 2020 07:19:27 +0000 (09:19 +0200)]
Revert "Fix crash in gui, when T-TEST or ONEWAY while a filter is set."
This reverts commit
d01a4986ffc8f5afa5ee7d29dd7233143b6de7ec
which caused memory leaks.
John Darrington [Sat, 27 Jun 2020 07:19:27 +0000 (09:19 +0200)]
Improve behaviour when importing trivial csv files.
This is a follow up to commit
5312cd16f3d7226d4e62a847d64849c57d4b4843
Don't activate any check button, if there is no obvious candidate.
John Darrington [Sat, 27 Jun 2020 05:27:25 +0000 (07:27 +0200)]
Add a test for bug #58598
John Darrington [Sat, 27 Jun 2020 05:27:25 +0000 (07:27 +0200)]
src/dictionary.c: Move dict_ref next to dict_unref
This make it easier for me to hack when I'm tracking
down memory (de)allocation errors.
John Darrington [Sat, 27 Jun 2020 05:27:25 +0000 (07:27 +0200)]
PsppireDataWindow: Fix use after free error
John Darrington [Sat, 27 Jun 2020 05:27:25 +0000 (07:27 +0200)]
PSPPIRE: Fix memory leaks in dialogs
John Darrington [Sat, 27 Jun 2020 05:27:25 +0000 (07:27 +0200)]
PSPPIRE: fix leaks of GtkAccelGroup
John Darrington [Sat, 27 Jun 2020 05:27:25 +0000 (07:27 +0200)]
Replace some calls to xcalloc with XCALLOC
John Darrington [Sat, 27 Jun 2020 05:27:25 +0000 (07:27 +0200)]
src/ui/gui/windows-menu.c (repopulate_windows_menu): Avoid memory leak
John Darrington [Sat, 27 Jun 2020 05:27:25 +0000 (07:27 +0200)]
Fix memory leak in src/output/table.c
John Darrington [Sat, 27 Jun 2020 05:27:25 +0000 (07:27 +0200)]
PSPPIRE: Fix memory leaks when creating windows
John Darrington [Sat, 27 Jun 2020 05:27:25 +0000 (07:27 +0200)]
PSPPIRE: Fix crash when cleaning after bad text import.
The wrong pointer was being freed after cleaning up when
attempting to import text files with very long lines.
John Darrington [Sat, 27 Jun 2020 05:27:25 +0000 (07:27 +0200)]
PSPPIRE: Avoid memory leaks from popup memnus
John Darrington [Sat, 27 Jun 2020 05:27:25 +0000 (07:27 +0200)]
GUI: Fix memory leak on startup
Friedrich Beckmann [Fri, 26 Jun 2020 16:04:17 +0000 (18:04 +0200)]
psppire-import: fixed bug with short csv file import
The import crashed with a short csv file.
Closes: https://savannah.gnu.org/bugs/?58644
Friedrich Beckmann [Fri, 26 Jun 2020 12:46:54 +0000 (14:46 +0200)]
pspp-mode.el: update elpa autoload comment
The pspp-mode is not automagically active in the 1.2.0-5 debian
release which install the emacs pspp mode. The reason was this
wrong elpa autoload comment.
Friedrich Beckmann [Fri, 26 Jun 2020 06:48:31 +0000 (08:48 +0200)]
de.po: Fixed wrong translation
Friedrich Beckmann [Fri, 26 Jun 2020 06:37:17 +0000 (08:37 +0200)]
added title to variable sheet dialogs
Friedrich Beckmann [Fri, 26 Jun 2020 06:15:52 +0000 (08:15 +0200)]
help: added help page info to variable sheet dialogs
Friedrich Beckmann [Thu, 25 Jun 2020 17:53:53 +0000 (19:53 +0200)]
help: removed yelp support
The yelp tool is broken for three years and cannot show uris with
a tag. John wrote a bug report three years ago but it is not fixed
yet.
https://gitlab.gnome.org/GNOME/yelp/-/issues/116
Once yelp works again, we can revert this commit.
Friedrich Beckmann [Thu, 25 Jun 2020 11:18:18 +0000 (13:18 +0200)]
automake.mk - added 96x96 size
Friedrich Beckmann [Wed, 24 Jun 2020 15:48:49 +0000 (17:48 +0200)]
artwork: categories icons moved according to new strategy
Friedrich Beckmann [Wed, 24 Jun 2020 15:47:04 +0000 (17:47 +0200)]
artwork: actions icons according to new strategy
Friedrich Beckmann [Wed, 24 Jun 2020 15:39:58 +0000 (17:39 +0200)]
artwork: apps - pspp.svg - removed all but scalable version from artwork
Friedrich Beckmann [Wed, 24 Jun 2020 15:16:34 +0000 (17:16 +0200)]
icons: create scaled bitmaps from one svg source
Using file-svg-load in gimp allows to scale an svg to
an arbitrary size. The artwork directory only needs
to contain svg files which differ in layout.
Friedrich Beckmann [Sun, 21 Jun 2020 22:16:04 +0000 (00:16 +0200)]
gui: added help in recode.ui subdialog
Friedrich Beckmann [Sun, 21 Jun 2020 11:57:40 +0000 (13:57 +0200)]
metainfo.xml - modified after validation
Friedrich Beckmann [Sun, 21 Jun 2020 09:48:41 +0000 (11:48 +0200)]
desktop: add mimetypes application/x-spss-sps and application/x-spss-spv
I added an xml mime package which relates the files .sps and .spv
to a mime type. Via that mime type the files can then be openend
by clicking in the file browser.
Friedrich Beckmann [Sun, 21 Jun 2020 09:39:53 +0000 (11:39 +0200)]
desktop: reversed mimetype to application/x-spss-sps
If the mimetype is of type text, then the icons are not found
or displayed in gnome Files. No application except apt seems
to define text based mime types. And for apt it does not work
either. So I reverse.
John Darrington [Sun, 21 Jun 2020 11:21:03 +0000 (13:21 +0200)]
Fixed some calls to xcalloc where the quantity and size parameters had been transposed.
John Darrington [Sun, 21 Jun 2020 07:34:11 +0000 (09:34 +0200)]
recode dialog: set "old and new values" sentivitity as appropriate.
The "Old and New Values" button should only be clickable when a row
is selected in the corresponding treeview. This was not the
case.
Fixes bug: #58557
Ben Pfaff [Sat, 20 Jun 2020 23:49:59 +0000 (23:49 +0000)]
matrix-reader: Fix possibly-zero second argument to xcalloc().
xcalloc() is documented to disallow zero for its second argument:
/* Allocate zeroed memory for N elements of S bytes, with error
checking. S must be nonzero. */
void *
xcalloc (size_t n, size_t s)
This code didn't always call it properly.
Found with AFL++.
Thanks to Andrea Fioraldi for reporting the problem.
Bug #58600.
Ben Pfaff [Sat, 20 Jun 2020 23:36:20 +0000 (23:36 +0000)]
build-aux: Ignore more files.
These entries were added automatically by running Smake.
Ben Pfaff [Sat, 20 Jun 2020 23:33:14 +0000 (23:33 +0000)]
sys-file-reader: Tolerate duplicate document records.
Ben Pfaff [Sat, 20 Jun 2020 23:26:52 +0000 (23:26 +0000)]
sys-file-reader: Tolerate invalid variable names.
This should make PSPP better at reading system files that have encoding
issues.
Ben Pfaff [Sat, 20 Jun 2020 21:52:40 +0000 (21:52 +0000)]
sys-file-reader: Accept bad variable indexes, with warnings.
The SPSS file writer software at
https://packagist.org/packages/tiamo/spss sometimes generates malformed
variable indexes for weighting variables or value label records. PSPP
until now has rejected these files entirely. This commit should make
it issue a warning instead.
Thanks to István Ignácz for reporting this issue at
https://lists.gnu.org/archive/html/pspp-users/2020-06/msg00012.html
Ben Pfaff [Sat, 20 Jun 2020 21:37:06 +0000 (21:37 +0000)]
gui: Fix compatibility with older gettext.
Older gettext does not recognize the metainfo.xml extension, only
appdata.xml. This commit allows msgfmt to work with such older setups.
CC: Friedrich Beckmann <friedrich.beckmann@gmx.de>
Fixes: 86c5d611b3f2 ("metainfo.xml: changed id to org.fsf.pspp, added more information")
John Darrington [Sat, 20 Jun 2020 18:54:28 +0000 (20:54 +0200)]
Allow /RENAME target to use the TO keyword.
Allow code such as
SAVE OUTFILE = "foo.sav" /RENAME= (A B C = v1 TO v2).
Closes bug: #57752
Friedrich Beckmann [Sat, 20 Jun 2020 13:48:57 +0000 (15:48 +0200)]
main.c: set "register-session" property for gtk_application
To open an application by clicking an associated file like
grid.sps in the Finder on Macos requires that the property
"register-session" is set for gtk_application. I did not
find a negative impact on Debian bullseye so I hope this
works also on other platforms. The gtk support for this
will be in the next gtk-3-24 release.
See: https://gitlab.gnome.org/GNOME/gtk/-/merge_requests/2098
Friedrich Beckmann [Sat, 20 Jun 2020 13:24:04 +0000 (15:24 +0200)]
desktop file: added Keywords and removed Education category
During debian packaging of 1.2.0-5 the missing Keywords entry
was mentionend. I removed the Education category because this
was mentioned also. Education and Science are both toplevel
categories. I added also two more mimetypes for .sps and .spv
files.
Friedrich Beckmann [Sat, 20 Jun 2020 11:12:43 +0000 (13:12 +0200)]
metainfo.xml: changed id to org.fsf.pspp, added more information
I read the documentation about the metainfo.xml content
https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html
and changed/added some information
- changed id from pspp.desktop to org.fsf.pspp
- added categories
- added releases
- added provides
Friedrich Beckmann [Sat, 20 Jun 2020 10:02:15 +0000 (12:02 +0200)]
desktop: changed translations to msgfmt and xgettext
During the build of the debian package 1.2.0-5 it turned out
that the pspp.appdata.xml file has a wrong structure with
respect to the translations. I did the following things
- renamed pspp.appdata.xml to org.fsf.pspp.metainfo.xml
- added gettext translation support for org.fsf.metainfo.xml
- renamed pspp.desktop to org.fsf.pspp.desktop
- replaced gen-det-desktop.sh based translation with gettext
gettext has now support for translating .desktop and .metainfo.xml
files. I took the naming conventions from the freedesktop and gnome
documentation, i.e. metainfo instead of appdata and the use of
an organization name.
John Darrington [Sat, 20 Jun 2020 14:11:32 +0000 (16:11 +0200)]
Add a test for bug #58591
John Darrington [Sat, 20 Jun 2020 05:29:11 +0000 (07:29 +0200)]
psppire-dict.c: Avoid compiler warning
John Darrington [Sat, 20 Jun 2020 05:17:06 +0000 (07:17 +0200)]
Avoid negative overflow when the text output driver tries to print
random binary data.
libpspp/u8-line.c (u8_line_find_pos): Deal properly with the case
where the target is not found in the search string.
libpspp/u8-line.c (u8_line_reserve): Add some assertions to prevent
negative overflow into lower function calls.
Reported by: Andrea Fioraldi
Fixes bug: #58591
John Darrington [Sat, 20 Jun 2020 05:17:06 +0000 (07:17 +0200)]
libpspp/str.c (ds_splice_uninit): Add assertion
John Darrington [Sat, 20 Jun 2020 05:17:06 +0000 (07:17 +0200)]
Fixed a use after free error when manipulating datasets.
Reported by: Andrea Fioraldi
Fixes bug: #58598
John Darrington [Sat, 20 Jun 2020 05:17:06 +0000 (07:17 +0200)]
spv.c: Avoid warnings about uninitialised variables
John Darrington [Sat, 20 Jun 2020 05:17:06 +0000 (07:17 +0200)]
find-dialog.c: Replace exp10 with our own integer version
A previous commit introduced the use of exp10 from the standard
math library. However the use cases here don't need floating
point operands, and it's smaller and faster to implement our
own integer version.
John Darrington [Sat, 20 Jun 2020 05:17:06 +0000 (07:17 +0200)]
Revert "exp10 replaced with pow when exp10 is not available"
This reverts commit
5f1ab307d380c4d60410b911a272b6870b65c2d8.
See the following commit for explanation.
John Darrington [Sat, 20 Jun 2020 05:17:06 +0000 (07:17 +0200)]
Fix buffer overflow in lex_ellipsize__
Reported by: Andrea Fioraldi
Fixes bug: #58586
John Darrington [Sat, 20 Jun 2020 05:17:06 +0000 (07:17 +0200)]
Fix crash when parsing a badly formatted variable string.
Reported by: Andrea Fioraldi
Fixes bug: #58594
John Darrington [Sat, 20 Jun 2020 05:17:06 +0000 (07:17 +0200)]
Fix buffer overflow in linear regression.
When the dependent variable and the indepdendent variable
are one and the same (a rather pointless situation), a buffer overflow
would occur. This change fixes that.
Reported by: Andrea Fioraldi
Fixes bug: #58599
John Darrington [Sat, 20 Jun 2020 05:17:06 +0000 (07:17 +0200)]
Fix crash when cleaning up after parsing bad MODIFY VARIABLES.
Reported by: Andrea Fioraldi
Fixes Bug: #58590
John Darrington [Sat, 20 Jun 2020 05:17:06 +0000 (07:17 +0200)]
Don't crash when parsing bad MATRIX DATA commands.
Reported by: Andrea Fioraldi
Fixes bug: #58596
John Darrington [Sat, 20 Jun 2020 05:17:06 +0000 (07:17 +0200)]
Fix use after free error in vector command.
Reported by: Andrea Fioraldi.
Fixes bug: #58592
John Darrington [Sat, 20 Jun 2020 05:17:06 +0000 (07:17 +0200)]
Don't ref or unref the inline file handle.
The special file handle 'inline_file' is a singleton. It should not
be reffed, or unreffed. Doing so causes a crash.
Reported by Andrea Fioraldi.
Fixes bug #58601
John Darrington [Sat, 20 Jun 2020 05:17:06 +0000 (07:17 +0200)]
Update spread-sheet-widget to version 0.4
John Darrington [Sun, 14 Jun 2020 15:42:45 +0000 (17:42 +0200)]
file-handle-def.h (fh_ref): Add WARN_UNUSED_RESULT qualifier
John Darrington [Sun, 14 Jun 2020 15:01:39 +0000 (17:01 +0200)]
Fix broken build when ./configure --without-gui is used
John Darrington [Sun, 14 Jun 2020 13:30:47 +0000 (15:30 +0200)]
PSPPIRE: Add feature to search for text in the syntax window.
Friedrich Beckmann [Thu, 18 Jun 2020 06:15:42 +0000 (08:15 +0200)]
exp10 replaced with pow when exp10 is not available
The exp10 function that was introduced by commit
aae1a8f067ddd9c09
in the find-dialog is not available on MacOS. I added a check
and replace it with pow if exp10 is not available.
John Darrington [Sun, 14 Jun 2020 15:07:27 +0000 (17:07 +0200)]
Replace use of deprecated GTimeVal with GDateTime
John Darrington [Sun, 14 Jun 2020 15:07:27 +0000 (17:07 +0200)]
Remove trailing whitespace at end of lines