Ben Pfaff [Tue, 11 Aug 2009 05:38:21 +0000 (22:38 -0700)]
Delete tab_raw function and tab_alloc macro.
This function and macro were only used within crosstabs.q. They violate
encapsulation (though not too badly) and since it is not difficult to
remove them, this commit does so.
Ben Pfaff [Tue, 11 Aug 2009 04:53:18 +0000 (21:53 -0700)]
Separate table functions that format their arguments from those that don't.
The tab_text, tab_joint_text, and tab_output_text functions, until now,
had an option bit TAT_PRINTF that specified whether they passed their text
argument through sprintf. This interface was bad because it made it
impossible for GCC to tell whether it needed to verify a printf format
string or not.
This commit solves the problem by breaking each of these functions into one
that does format its argument and one that doesn't.
This is cross-ported from a similar commit on the master branch.
Ben Pfaff [Thu, 6 Aug 2009 04:34:42 +0000 (21:34 -0700)]
output: Always use helper functions to access struct tab_table members.
The implementation of "struct tab_table" will be changing, so by always
using the helper functions we can reduce the amount of code that has to
change later to support those changes.
Ben Pfaff [Wed, 5 Aug 2009 03:46:33 +0000 (20:46 -0700)]
output: Remove write-only "col_group' member from struct tab_table.
It probably makes sense to revive support for this feature at some point,
but that time has not yet arrived. Instead, since it's currently not used
and not implemented, just remove it.
Ben Pfaff [Thu, 30 Jul 2009 04:19:41 +0000 (21:19 -0700)]
output: Use Cairo and Pango to draw charts, instead of libplot.
This paves the way for adding support for charts to the PSPPIRE GUI, since
Cairo can render to a window in GTK+ whereas libplot cannot.
I am aware of the following regressions versus the state before this
commit:
1. Alignment of text in charts on the baseline is not properly implemented.
This makes the labels in pie charts look funny.
2. Chart titles are drawn in the same font size as other chart text.
3. Building without Cairo and Pango is broken.
4. The postscript output driver (as opposed to the cairo output driver in
PostScript output mode) no longer supports charts.
I plan to fix #1, #2, and #3. #4 is fixable too, but I don't know whether
it is worth it; I might prefer to delete the postscript output driver
altogether.
Ben Pfaff [Wed, 29 Jul 2009 03:20:51 +0000 (20:20 -0700)]
output: Make chart geometry the responsibility of the output driver.
Currently, with libplot, all charts have the same geometry, because
libplot allows us to reasonably set the dimensions of the drawing area
to the same 1000x1000 size. But cairo will produce strangely scaled
results if we attempt to do the same thing there (distorted font sizes,
etc.). So make the output drivers responsible for setting up the chart
geometry, so that the output drivers can tell the chart drawing routines
the size of the drawing area.
John Darrington [Tue, 28 Jul 2009 04:46:24 +0000 (06:46 +0200)]
Fix clipboard export of non-ascii strings.
Fixed problem pasting sheet data from psppire to
openoffice.org and gnumeric which contained non-ascii
characters. Tested with openoffice.org 2.4 and
gnumeric 1.8.3
John Darrington [Mon, 27 Jul 2009 09:22:00 +0000 (11:22 +0200)]
Redraw selection when reducing its area.
This change ensures that the area of the selection
is properly indicated when it's in the process of
being decreasing its area as well as increasing it.
John Darrington [Sat, 25 Jul 2009 14:27:30 +0000 (16:27 +0200)]
Disable extend_selection call.
Temporarily disable the call to psppire_sheet_extend_selection
since it interferes with the active cell border and selection
is currently not working anyway.
John Darrington [Sat, 25 Jul 2009 08:53:05 +0000 (10:53 +0200)]
Add "dictionary" property to PsppireVarStore and use it.
Instead of abusing the encapsulation of PsppireVarStore,
by accessing the internal dictionary member directly, add
a "dictionary" property. This should also take care of the
reference counting of the dict, which wasn't working properly.
Ben Pfaff [Mon, 20 Jul 2009 00:11:21 +0000 (17:11 -0700)]
Move implementation of NP plots out of EXAMINE into the charts engine.
This seems like a helpful cleanup. It should also ease making it possible
to again build PSPP without libplot, which was broken a number of commits
ago.
John Darrington [Sun, 19 Jul 2009 11:35:35 +0000 (13:35 +0200)]
Fix cleanup of ROC command.
Properly deallocate variables, and use correct
symbols for parser return values. Also, delete
roc.h which is unnecessary. Thanks to Ben Pfaff
for pointing out these problems.
John Darrington [Sat, 18 Jul 2009 10:08:04 +0000 (12:08 +0200)]
Use data_out_pool in crosstabs.q
We were erroneously allocating a buffer before
the size of the contents were known. Using
data_out_pool avoids this problem. Thanks to
Ben Pfaff for pointing this out.
Jason Stover [Fri, 17 Jul 2009 20:02:02 +0000 (16:02 -0400)]
pspp_linreg(): Use cache->n_coeffs to set the dimensions of sw, instead of
cache->n_indeps, which may give incorrect dimension in the case
of categorical variables. Fixes bug referenced in bug report
26861.
Ben Pfaff [Thu, 16 Jul 2009 05:12:07 +0000 (22:12 -0700)]
i18n: Reduce translatable strings in SHOW command.
All the output from the SHOW command is of the form "%s is %s." but the
translators were being asked to translate similar strings over and over
again. Reduce their load by getting rid of many translatable strings.
Ben Pfaff [Thu, 16 Jul 2009 05:10:17 +0000 (22:10 -0700)]
i18n: Change some strings to reduce work of translation.
PSPP has a number of strings that happen to be phrased differently for no
particular reason. This commit changes some of those strings to be
exactly the same as other ones, to make the work of translators easier.
Ben Pfaff [Thu, 16 Jul 2009 04:15:39 +0000 (21:15 -0700)]
Separate table functions that format their arguments from those that don't.
The tab_text, tab_joint_text, and tab_output_text functions, until now,
had an option bit TAT_PRINTF that specified whether they passed their text
argument through sprintf. This interface was bad because it made it
impossible for GCC to tell whether it needed to verify a printf format
string or not.
This commit solves the problem by breaking each of these functions into one
that does format its argument and one that doesn't.