Ben Pfaff [Tue, 29 Dec 2020 01:47:31 +0000 (17:47 -0800)]
html: Step toward better handling of text_items.
There's more work to do to get the fonts, especially, correct.
Ben Pfaff [Fri, 1 Jan 2021 18:54:33 +0000 (10:54 -0800)]
pivot-table: Fix memory leak in pivot_table_destroy()
John Darrington [Fri, 1 Jan 2021 08:04:45 +0000 (09:04 +0100)]
PSPPIRE: Add user hints dialog on startup
Ben Pfaff [Fri, 1 Jan 2021 06:43:57 +0000 (22:43 -0800)]
tests: Break off --draw-mode from render-test into ascii-test.
My plan is for render-test to go away in favor of a comprehensive test for
pivot tables, which are the only kinds of tables that actually matter.
The --draw-mode tests are a different kind of beast, so it makes sense to
keep them and put them in a different place.
Ben Pfaff [Fri, 1 Jan 2021 05:57:30 +0000 (21:57 -0800)]
output: Improve comments.
Ben Pfaff [Fri, 1 Jan 2021 05:04:12 +0000 (21:04 -0800)]
pivot-table: Update comments to drop mention of omit_empty.
Commit
0200682d517f ("pivot-table: Change the default format to omit
empty rows and columns.") eliminated the need for this.
Ben Pfaff [Fri, 1 Jan 2021 04:46:56 +0000 (20:46 -0800)]
pspp-output: New feature for retrieving the default look.
Ben Pfaff [Fri, 1 Jan 2021 02:27:50 +0000 (18:27 -0800)]
pivot-table: Don't allow data cells for nonexistent categories.
Ben Pfaff [Fri, 1 Jan 2021 01:43:04 +0000 (17:43 -0800)]
spv-file-format: Footnotes can't refer to footnotes.
Ben Pfaff [Thu, 31 Dec 2020 22:19:11 +0000 (14:19 -0800)]
pivot-output: Fix vertical line presence and style.
This code failed to draw dividers between groups and it didn't
follow the same pattern as SPSS for choosing between
"dimension" and "category" style for vertical dividers. This
commit fixes both problems.
Ben Pfaff [Thu, 31 Dec 2020 20:23:03 +0000 (12:23 -0800)]
pivot-output: Fix drawing lines between dimensions within a heading.
Ben Pfaff [Thu, 31 Dec 2020 19:07:31 +0000 (11:07 -0800)]
pivot-output: Replicate dimension headings when divided by vertical rules.
This introduces a comment into compose_headings() that explains the
problem that it fixes.
John Darrington [Thu, 31 Dec 2020 17:21:42 +0000 (18:21 +0100)]
perl-module/README: update version references
Ben Pfaff [Thu, 31 Dec 2020 03:45:07 +0000 (19:45 -0800)]
pivot-output: Really fix formatting of the corner cell.
Commit
981e88e2f5b4 ("pivot-output: Fill corner cell even without
corner text.") purported to do this, but it missed the most
important issue.
Ben Pfaff [Thu, 31 Dec 2020 03:27:10 +0000 (19:27 -0800)]
output: Remove superscript support.
The previous commit
df5005061c03 ("pivot-output: Implement superscript.")
finished this support, but on further inspection, there's nothing in the
non-legacy .spv format that can set a superscript. The legacy .spv format
appears to be able to do it; I'll worry about that if it gets implemented
later.
Ben Pfaff [Thu, 31 Dec 2020 01:26:04 +0000 (17:26 -0800)]
pivot-output: Implement superscript.
Ben Pfaff [Wed, 30 Dec 2020 22:54:30 +0000 (14:54 -0800)]
spv-file-format: Document "show-title" option.
Ben Pfaff [Thu, 31 Dec 2020 00:06:01 +0000 (16:06 -0800)]
ascii: Support dashed lines in output.
Unicode has thick lines too, so that's another opportunity for future
expansion.
Ben Pfaff [Wed, 30 Dec 2020 23:39:30 +0000 (15:39 -0800)]
ascii: Refactor definition of box characters.
Ben Pfaff [Wed, 30 Dec 2020 23:11:28 +0000 (15:11 -0800)]
cairo-fsm: Implement dashed lines.
Ben Pfaff [Wed, 30 Dec 2020 20:28:56 +0000 (12:28 -0800)]
pivot-table: Fix incorrect allocation count in pivot_table_dump().
Ben Pfaff [Wed, 30 Dec 2020 18:15:37 +0000 (10:15 -0800)]
tests: Be consistent about adding to $(check_PROGRAMS).
Some tests were added at the top of the file, some just above the
definition of their sources, and some in both places (!).
Ben Pfaff [Tue, 29 Dec 2020 18:48:43 +0000 (10:48 -0800)]
table: Add comment.
Ben Pfaff [Tue, 29 Dec 2020 18:48:31 +0000 (10:48 -0800)]
spv-file-format: Document CSS in more detail.
Ben Pfaff [Tue, 29 Dec 2020 18:48:07 +0000 (10:48 -0800)]
spv-css-parser: Parse text color also.
Ben Pfaff [Tue, 29 Dec 2020 18:46:16 +0000 (10:46 -0800)]
spv-css-parser: The font-size is really "px" even though it says "pt".
Ben Pfaff [Tue, 29 Dec 2020 18:45:21 +0000 (10:45 -0800)]
output: Eliminate duplicated color parsing code.
Ben Pfaff [Mon, 28 Dec 2020 22:13:43 +0000 (14:13 -0800)]
html: Make <th> cells be font-weight: normal by default.
This overrides typical web browser defaults. That seems reasonable, since
the driver styles all the cells according to the user specifications. We
could just use <td> for all cells, but there might be semantic value in
having properly marked header cells.
Ben Pfaff [Mon, 28 Dec 2020 22:12:34 +0000 (14:12 -0800)]
html: Implement rotated cells.
Ben Pfaff [Mon, 28 Dec 2020 21:54:01 +0000 (13:54 -0800)]
cairo-fsm: Always center rotated cells.
Ben Pfaff [Mon, 28 Dec 2020 21:29:12 +0000 (13:29 -0800)]
pivot-output: Implement header rotation correctly.
This code had the wrong notion of which headers to rotate. It also didn't
implement the observed behavior of rotated headers always being centered
both horizontally and vertically.
Ben Pfaff [Mon, 28 Dec 2020 18:50:37 +0000 (10:50 -0800)]
html: Implement more styling features.
Ben Pfaff [Mon, 28 Dec 2020 19:39:45 +0000 (11:39 -0800)]
pivot-output: Fill corner cell even without corner text.
This ensure that any background in the corner style is drawn.
Ben Pfaff [Mon, 28 Dec 2020 19:39:12 +0000 (11:39 -0800)]
spv-file-format: Better document MANIFEST.MF.
Ben Pfaff [Mon, 28 Dec 2020 05:40:36 +0000 (21:40 -0800)]
pivot-table: Include pivot table subtype in pivot_table_dump() output.
Ben Pfaff [Mon, 28 Dec 2020 18:53:58 +0000 (10:53 -0800)]
html: Fix border-right for non-square tables.
Fixes: b11b5d874764 ("table: Get rid of accessor functions for 'h' and 'n' members.")
John Darrington [Sun, 27 Dec 2020 07:47:51 +0000 (08:47 +0100)]
Remove dummy-prerequisite rule
As Ben pointed out, this probably did more harm than good. So instead,
this change adds some explicit dependencies where prerequisites are
known to be necessary.
Ben Pfaff [Sun, 27 Dec 2020 06:23:58 +0000 (22:23 -0800)]
spv-file-format: Better describe structure member labels and table notes.
Ben Pfaff [Sun, 27 Dec 2020 06:22:32 +0000 (22:22 -0800)]
psppire-output-view: Set tooltips on tables from table_item notes.
Ben Pfaff [Sun, 27 Dec 2020 06:16:39 +0000 (22:16 -0800)]
psppire-window: Fix use-after-free error in read_spv_file().
spv_item_get_table() returns a borrowed reference, but read_spv_file()
treated it as if it owned it. This fixes the problem.
This fixes crashes opening .spv files in PSPPIRE with File|Open.
Also, change spv_item_get_table() to return a const pointer, to make it
clearer that the reference is a borrowed one.
Ben Pfaff [Sun, 27 Dec 2020 04:27:05 +0000 (20:27 -0800)]
table: Get rid of accessor functions for 'h' and 'n' members.
It's easier to read them directly.
Ben Pfaff [Sun, 27 Dec 2020 04:26:37 +0000 (20:26 -0800)]
table: Delete some functions that were unused or barely used.
Ben Pfaff [Sun, 27 Dec 2020 04:24:53 +0000 (20:24 -0800)]
message-item: Fix reference counting in message_item_to_text_item().
This function should take ownership of the message_item passed in, but it
leaked a reference to it.
Ben Pfaff [Sun, 27 Dec 2020 01:57:46 +0000 (17:57 -0800)]
render: Only scale to fit vertically with drivers that support it.
Fixes: bdd73954cd30 ("cairo: Support scaling tables to fit page width and page length.")
Ben Pfaff [Sun, 27 Dec 2020 01:54:56 +0000 (17:54 -0800)]
html: Pop up tooltip with table notes in output.
I can't see how to do this for ODP or PDF output. (PDF supports tooltips
but Cairo doesn't expose the feature; ODP doesn't seem to support it at
all.)
Ben Pfaff [Sun, 27 Dec 2020 01:54:07 +0000 (17:54 -0800)]
cairo: Label pages in PDFs with page numbers.
These normally wouldn't do much, but PSPP does support an "initial page
number" setting, and if that is set to anything but 1 then it will make
a difference.
Ben Pfaff [Sun, 27 Dec 2020 01:47:50 +0000 (17:47 -0800)]
cairo: Support scaling tables to fit page width and page length.
Ben Pfaff [Sat, 26 Dec 2020 23:52:16 +0000 (15:52 -0800)]
cairo-fsm: Remove code that was #if'd out.
This was missed during an earlier refactoring.
Ben Pfaff [Sat, 26 Dec 2020 18:24:16 +0000 (10:24 -0800)]
po: Update French translation from translationproject.org.
Thanks to Stéphane Aulery <lkppo@free.fr>.
John Darrington [Sat, 26 Dec 2020 13:10:30 +0000 (14:10 +0100)]
tex-rendering.c: Add missing include directive
John Darrington [Sat, 26 Dec 2020 12:23:53 +0000 (13:23 +0100)]
Make cross-building slightly more reliable
John Darrington [Sat, 26 Dec 2020 10:13:46 +0000 (11:13 +0100)]
Fix reproducibility issues in png files
John Darrington [Sat, 26 Dec 2020 09:47:47 +0000 (10:47 +0100)]
Start of a crosstabs example
John Darrington [Sat, 26 Dec 2020 09:11:56 +0000 (10:11 +0100)]
Add copyright and licence notices to files which lack them
John Darrington [Sat, 26 Dec 2020 08:34:41 +0000 (09:34 +0100)]
Fix compiler warning
John Darrington [Sat, 26 Dec 2020 07:44:38 +0000 (08:44 +0100)]
pspp-dev (Graphic User Interface): New chapter.
Ben Pfaff [Fri, 25 Dec 2020 20:14:38 +0000 (12:14 -0800)]
cairo-pager: Add outline to PDF output.
Ben Pfaff [Sat, 26 Dec 2020 05:54:48 +0000 (21:54 -0800)]
cairo: Avoid using cairo_t for a destroyed cairo_surface_t.
xr_pager_destroy() would destroy the latest cairo_t, if there was one.
Generally there wasn't, since in the common case it got destroyed by
xr_pager_run() when the fsm emptied out, but in the case of the last page
in a produced output file, xr_destroy() would call xr_pager_destroy()
after first destroying the surface_t it was drawing on. I don't think this
is an actual bug, because everything is properly reference-counted inside
Cairo (the cairo_t holds a reference on its cairo_surface_t) but I found it
confusing.
Ben Pfaff [Sat, 26 Dec 2020 05:55:57 +0000 (21:55 -0800)]
doc: Suppress fontconfig warnings from Leak Sanitizer running pspp-output.
Otherwise building the docs fails if one builds with Address Sanitizer or
Leak Sanitizer.
Ben Pfaff [Sat, 26 Dec 2020 00:22:14 +0000 (16:22 -0800)]
Fix memory leaks reported by Address Sanitizer.
Ben Pfaff [Sat, 26 Dec 2020 05:56:53 +0000 (21:56 -0800)]
Add more Valgrind leak report suppressions.
These leaks seem unavoidable and they are not worth reporting.
Valgrind still reports a lot of leaks that I haven't determined to either
be fixable or unavoidable.
Ben Pfaff [Fri, 25 Dec 2020 20:17:36 +0000 (12:17 -0800)]
cairo: Add missing new-lines at the end of messages written to stderr.
Ben Pfaff [Tue, 22 Dec 2020 07:49:26 +0000 (23:49 -0800)]
Add --table-look command line option and SET TLOOK command.
John Darrington [Sun, 20 Dec 2020 22:06:11 +0000 (23:06 +0100)]
Fix building --without-cairo
John Darrington [Sun, 20 Dec 2020 21:49:20 +0000 (22:49 +0100)]
configure.ac: Abort attempts to cross build in source
John Darrington [Sun, 20 Dec 2020 19:11:10 +0000 (20:11 +0100)]
New function width_of_m to get the width of M rendered in a widget.
helper.c (width_of_m): New function.
John Darrington [Sun, 20 Dec 2020 09:40:27 +0000 (10:40 +0100)]
Add new popup menu to the dictionary view widget
Some users have expressed a wish to be able to view details
of variables from within dialogs. Hopefully this change will
fulfill this requirement.
John Darrington [Sun, 20 Dec 2020 08:43:21 +0000 (09:43 +0100)]
Fix make distcheck
The generated figure files have to depend on utilities/pspp-output
John Darrington [Sun, 20 Dec 2020 21:38:28 +0000 (22:38 +0100)]
Reimplement the variable info dialog.
Instead of using a rendered output fragment, display the information
in Gtk+ widgets.
John Darrington [Sun, 20 Dec 2020 09:42:15 +0000 (10:42 +0100)]
PsppireButtonBox: Allow widget to be explicitly created.
* psppire-buttonbox.h (psppire_button_box_new): New function
* psppire-buttonbox.c (psppire_button_box_new): New function
Ben Pfaff [Mon, 21 Dec 2020 07:10:59 +0000 (23:10 -0800)]
pivot-table: Make pivot_table_look a refcounted object.
This is a first step toward adding a default pivot_table_look as a user
setting.
Ben Pfaff [Mon, 21 Dec 2020 04:33:57 +0000 (20:33 -0800)]
MEANS: Remove one more assignment to omit_empty missed in previous commit.
I missed this in preparing commit
0200682d517f ("pivot-table: Change the
default format to omit empty rows and columns.")
Ben Pfaff [Mon, 21 Dec 2020 04:30:18 +0000 (20:30 -0800)]
pivot-table: Change the default format to omit empty rows and columns.
By making this the default, it doesn't become necessary to make a lot of
procedures that yield output change the format to produce reasonable
output. This means that the user's settings for the format won't get
overridden.
This changes a lot of output that had empty columns, in particular
anything that used DISPLAY DICTIONARY with a dictionary that had no
variable labels or missing values. This commit also updates the expected
output to match.
An unexpected side effect was that some tables became empty entirely, for
example LIST with no rows. This seemed undesirable, so I changed
pivot_table_enumerate_axis() so if an axis was entirely empty due to
omit_empty, then omit_empty was suppressed for that axis.
Ben Pfaff [Mon, 21 Dec 2020 00:22:57 +0000 (16:22 -0800)]
doc: Fix formatting of output in formats that use text output.
This fixes a mistake introduced in commit
1d447973271c ("doc: Add .png
output to the Info manual.").
Ben Pfaff [Sun, 20 Dec 2020 23:38:21 +0000 (15:38 -0800)]
doc: Add .png output to the Info manual.
Ben Pfaff [Sat, 19 Dec 2020 08:12:28 +0000 (00:12 -0800)]
cairo: Add support for png and trim.
This also allows dropping the librsvg dependency.
Ben Pfaff [Sat, 12 Dec 2020 07:20:56 +0000 (23:20 -0800)]
cairo-pager: New.
Ben Pfaff [Tue, 15 Dec 2020 07:36:31 +0000 (23:36 -0800)]
cairo: Use pango_cairo_context_set_resolution() to get font sizes correct.
I never understood before why fonts didn't appear the right side in PDF
and PostScript output. This fixes the problem.
Ben Pfaff [Wed, 9 Dec 2020 17:34:10 +0000 (09:34 -0800)]
cairo: Use arrays for page sizes and margins, to simplify code.
Ben Pfaff [Mon, 7 Dec 2020 06:06:57 +0000 (22:06 -0800)]
cairo: Move chart code into cairo-chart.
Ben Pfaff [Mon, 7 Dec 2020 05:50:59 +0000 (21:50 -0800)]
cairo: Get rid of unused PangoLayouts.
Ben Pfaff [Sun, 6 Dec 2020 22:18:26 +0000 (14:18 -0800)]
cairo: Factor out code for basic rendering.
Ben Pfaff [Sun, 6 Dec 2020 21:33:00 +0000 (13:33 -0800)]
cairo: Remove "emphasis" font option because it had no real effect.
Ben Pfaff [Sat, 19 Dec 2020 08:00:28 +0000 (00:00 -0800)]
options: Make parse_color() parse alpha.
cell_color includes an alpha channel so we might as well use it.
Ben Pfaff [Sun, 20 Dec 2020 23:57:29 +0000 (15:57 -0800)]
doc: Use "rm", not nonexistent variable $(RM), in uninstall-local.
Ben Pfaff [Sun, 20 Dec 2020 23:02:37 +0000 (15:02 -0800)]
doc: Use $(infodir) for Info, not $(prefix)/share/info.
John Darrington [Sun, 20 Dec 2020 14:10:27 +0000 (15:10 +0100)]
Fix make distcheck
John Darrington [Sun, 20 Dec 2020 13:52:30 +0000 (14:52 +0100)]
Add missing parentheses
John Darrington [Sat, 19 Dec 2020 16:14:22 +0000 (17:14 +0100)]
Fix reproducibility issues when generating .eps files
John Darrington [Sat, 19 Dec 2020 15:34:21 +0000 (16:34 +0100)]
Use clean-temp module instead of tmpdir module
psppire-output_view.c: Use gnulib's clean-temp module instead of the
path_search function.
John Darrington [Sat, 19 Dec 2020 15:22:49 +0000 (16:22 +0100)]
Install the documentation screenshots in the correct place.
The screenshots should be installed into $prefix/info/screenshots
NOT $prefix/info
Reported by: opensuse.lietuviu.kalba <opensuse.lietuviu.kalba@gmail.com>
Ben Pfaff [Sun, 6 Dec 2020 21:08:34 +0000 (13:08 -0800)]
render: Make struct render_params a little smaller.
This factors out pieces that currently in practice are always the same for
a particular driver.
Ben Pfaff [Sun, 6 Dec 2020 21:08:24 +0000 (13:08 -0800)]
page-eject-item: Factor out of text_item.
These really don't have much in common.
Ben Pfaff [Sun, 6 Dec 2020 01:07:12 +0000 (17:07 -0800)]
psppire-output-view: Consistently apply "transparent" and "systemcolors".
Commit
81dece3642da ("output view: make items selectable and use system
colours") add transparency and system colors to the driver in the GUI,
but it did so somewhat after the driver was created. I don't know why.
It makes more sense to me to set these options when creating the driver.
This commit makes that change. It also deletes the function to change
the options; it had no other user.
Ben Pfaff [Sun, 6 Dec 2020 01:35:24 +0000 (17:35 -0800)]
cairo: Drop unused line_spacing, line_width members from xr_driver.
Ben Pfaff [Sun, 6 Dec 2020 22:18:15 +0000 (14:18 -0800)]
render: Add comment.
Ben Pfaff [Sun, 6 Dec 2020 21:05:41 +0000 (13:05 -0800)]
output: Fix typos in copyright notices.
Ben Pfaff [Sat, 19 Dec 2020 05:10:28 +0000 (21:10 -0800)]
sys-file-reader: Omit @(#) from file strings in sfm_get_strings().
This function returns strings so that the user can figure out the file's
correct encoding. @(#) has different interpretations in a few encodings
(sometimes 0x23 is not #) and there's no value in displaying different
versions of it, so skip it.
Ben Pfaff [Thu, 17 Dec 2020 07:45:30 +0000 (23:45 -0800)]
expressions: Improve error messages.
Also, introduce tests to trigger the error messages.
Prompted by bug #59697.
Thanks to Stéphane Aulery for reporting the poor error messages.
Ben Pfaff [Thu, 17 Dec 2020 06:41:06 +0000 (22:41 -0800)]
tests: Restore tests that were commented out by buggy commit.
These were commented out by commit
691a034d7f21 ("Add copyright and
licence notices to files which lack them."). Subsequent commit
691a034d7f21 ("Add copyright and licence notices to files which lack
them.") fixed some but not all of the bugs. I think that this
commit fixes the rest.
Also, fix the one test that was broken in the meantime.