speed are his work.
* John Darrington wrote the graphical user interface, and the T-TEST,
-ONEWAY, EXAMINE, RANK and NPAR TESTS commands, implemented support
-for long variable names, psql and gnumeric and made numerous revisions
-to other modules.
+ONEWAY, EXAMINE, RANK and NPAR TESTS commands, implemented support for
+long variable names, PostgreSQL and Gnumeric and made numerous
+revisions to other modules.
* Jason Stover contributed statistical and numerical functionality,
including lib/gslextras and the linear regression features. Jason
trunc \
unilbrk/ulc-width-linebreaks \
unistd \
+ unistr/u8-strlen \
+ unistr/u8-strncat \
unlocked-io \
vasprintf-posix \
vfprintf-posix \
fi
AM_CONDITIONAL(PSQL_SUPPORT, test -n "$PG_CONFIG")
-dnl Checks needed for gnumeric reader
+dnl Checks needed for Gnumeric reader
gnm_support=yes;
PKG_CHECK_MODULES(LIBXML2, libxml-2.0,,
[PSPP_OPTIONAL_PREREQ([libxml2]); gnm_support=no;]);
These functions provide the ability to convert data fields into
@union{value}s and vice versa.
-@deftypefun bool data_in (struct substring @var{input}, enum legacy_encoding @var{legacy_encoding}, enum fmt_type @var{type}, int @var{implied_decimals}, int @var{first_column}, union value *@var{output}, int @var{width})
+@deftypefun bool data_in (struct substring @var{input}, const char *@var{encoding}, enum fmt_type @var{type}, int @var{implied_decimals}, int @var{first_column}, const struct dictionary *@var{dict}, union value *@var{output}, int @var{width})
Parses @var{input} as a field containing data in the given format
@var{type}. The resulting value is stored in @var{output}, which the
caller must have initialized with the given @var{width}. For
consistency, @var{width} must be 0 if
@var{type} is a numeric format type and greater than 0 if @var{type}
is a string format type.
-
-Ordinarily @var{legacy_encoding} should be @code{LEGACY_NATIVE},
-indicating that @var{input} is encoded in the character set
-conventionally used on the host machine. It may be set to
-@code{LEGACY_EBCDIC} to cause @var{input} to be re-encoded from EBCDIC
-during data parsing.
+@var{encoding} should be set to indicate the character
+encoding of @var{input}.
+@var{dict} must be a pointer to the dictionary with which @var{output}
+is associated.
If @var{input} is the empty string (with length 0), @var{output} is
set to the value set on SET BLANKS (@pxref{SET BLANKS,,,pspp, PSPP
This function is declared in @file{data/data-in.h}.
@end deftypefun
-@deftypefun void data_out (const union value *@var{input}, const struct fmt_spec *@var{format}, char *@var{output})
-@deftypefunx void data_out_legacy (const union value *@var{input}, enum legacy_encoding @var{legacy_encoding}, const struct fmt_spec *@var{format}, char *@var{output})
-Converts the data pointed to by @var{input} into a data field in
-@var{output} according to output format specifier @var{format}, which
-must be a valid output format. Exactly @code{@var{format}->w} bytes
-are written to @var{output}. The width of @var{input} is also
+@deftypefun char * data_out (const union value *@var{input}, const struct fmt_spec *@var{format})
+@deftypefunx char * data_out_legacy (const union value *@var{input}, const char *@var{encoding}, const struct fmt_spec *@var{format})
+Converts the data pointed to by @var{input} into a string value, which
+will be encoded in UTF-8, according to output format specifier @var{format}.
+Format
+must be a valid output format. The width of @var{input} is
inferred from @var{format} using an algorithm equivalent to
@func{fmt_var_width}.
-If @func{data_out} is called, or @func{data_out_legacy} is called with
-@var{legacy_encoding} set to @code{LEGACY_NATIVE}, @var{output} will
-be encoded in the character set conventionally used on the host
-machine. If @var{legacy_encoding} is set to @code{LEGACY_EBCDIC},
-@var{output} will be re-encoded from EBCDIC during data output.
-
When @var{input} contains data that cannot be represented in the given
@var{format}, @func{data_out} may output a message using @func{msg},
@c (@pxref{msg}),
dictionary's character set.
-
@section System files
@file{*.sav} files contain a field which is supposed to identify the encoding
of the data they contain (@pxref{Machine Integer Info Record}).
longer required.
@end deftypefun
+In order to minimise the number of conversions required, and to simplify
+design, PSPP attempts to store all internal strings in UTF8 encoding.
+Thus, when reading system and portable files (or any other data source),
+the following items are immediately converted to UTF8 encoding:
+@itemize
+@item Variable names
+@item Variable labels
+@item Value labels
+@end itemize
+Conversely, when writing system files, these are converted back to the
+encoding of that system file.
-For example, in order to display a string variable's value in a label widget in the psppire gui one would use code similar to
-@example
-
-struct variable *var = /* assigned from somewhere */
-struct case c = /* from somewhere else */
-
-const union value *val = case_data (&c, var);
-
-char *utf8string = recode_string (UTF8, dict_get_encoding (dict), val->s,
- var_get_width (var));
-
-GtkWidget *entry = gtk_entry_new();
-gtk_entry_set_text (entry, utf8string);
-gtk_widget_show (entry);
-
-free (utf8string);
-
-@end example
+String data stored in union values are left in their original encoding.
+These will be converted by the data_in/data_out functions.
#include <data/sys-file-writer.h>
#include <data/sys-file-reader.h>
#include <data/value.h>
+#include <data/vardict.h>
#include <data/value-labels.h>
#include <data/format.h>
#include <data/data-in.h>
+#include <data/data-out.h>
#include <string.h>
typedef struct fmt_spec input_format ;
const char *ver
CODE:
assert (0 == strcmp (ver, bare_version));
+ i18n_init ();
msg_init (NULL, message_handler);
settings_init (0, 0);
fh_init ();
CODE:
SV *ret;
const struct fmt_spec *fmt = var_get_print_format (var);
+ const struct dictionary *dict = var_get_vardict (var)->dict;
union value uv;
char *s;
make_value_from_scalar (&uv, val, var);
- s = malloc (fmt->w);
- memset (s, '\0', fmt->w);
- data_out (&uv, fmt, s);
+ s = data_out (&uv, dict_get_encoding (dict), fmt);
value_destroy (&uv, var_get_width (var));
ret = newSVpv (s, fmt->w);
free (s);
CODE:
var_clear_value_labels (var);
+SV *
+get_write_format (var)
+ struct variable *var
+CODE:
+ HV *fmthash = (HV *) sv_2mortal ((SV *) newHV());
+ const struct fmt_spec *fmt = var_get_write_format (var);
+
+ hv_store (fmthash, "fmt", 3, newSVnv (fmt->type), 0);
+ hv_store (fmthash, "decimals", 8, newSVnv (fmt->d), 0);
+ hv_store (fmthash, "width", 5, newSVnv (fmt->w), 0);
+
+ RETVAL = newRV ((SV *) fmthash);
+ OUTPUT:
+RETVAL
+
+SV *
+get_print_format (var)
+ struct variable *var
+CODE:
+ HV *fmthash = (HV *) sv_2mortal ((SV *) newHV());
+ const struct fmt_spec *fmt = var_get_print_format (var);
+
+ hv_store (fmthash, "fmt", 3, newSVnv (fmt->type), 0);
+ hv_store (fmthash, "decimals", 8, newSVnv (fmt->d), 0);
+ hv_store (fmthash, "width", 5, newSVnv (fmt->w), 0);
+
+ RETVAL = newRV ((SV *) fmthash);
+ OUTPUT:
+RETVAL
+
+
void
pxs_set_write_format (var, fmt)
struct variable *var
{
struct substring ss = ss_cstr (SvPV_nolen (sv));
if ( ! data_in (ss, LEGACY_NATIVE, ifmt->type, 0, 0, 0,
+ sfi->dict,
case_data_rw (c, v),
var_get_width (v)) )
{
=item width
-An integer denoting the number of width of the format.
+An integer denoting the width of the format.
=back
=pod
+
+=head3 get_write_format ()
+
+Returns a reference to a hash containing the write format for the variable.
+
+
+=head3 get_print_format ()
+
+Returns a reference to a hash containing the print format for the variable.
+
=head3 set_output_format (%fmt)
Sets the write and print formats to C<fmt>. This is the same as
=head3 PSPP::format_value ($value, $variable)
-Returns a scalar containing a string representing C<value> formatted accoring
+Returns a scalar containing a string representing C<value> formatted according
to the print format of C<variable>.
In the most common ussage, C<value> should be a value of C<variable>.
msgstr ""
"Project-Id-Version: PSPP 0.7.0\n"
"Report-Msgid-Bugs-To: pspp-dev@gnu.org\n"
-"POT-Creation-Date: 2009-05-16 07:00+0800\n"
+"POT-Creation-Date: 2009-07-17 15:23+0800\n"
"PO-Revision-Date: 2008-11-05 08:17+0900\n"
"Last-Translator: John Darrington <john@darrington.wattle.id.au>\n"
"Language-Team: John Darrington <john@darrington.wattle.id.au>\n"
"system-missing, zero, or negative. These case(s) were ignored."
msgstr ""
-#: src/data/case-tmpfile.c:57
-#, c-format
-msgid "failed to create temporary file"
-msgstr ""
-
-#: src/data/case-tmpfile.c:131
-#, c-format
-msgid "seeking in temporary file"
-msgstr ""
-
-#: src/data/case-tmpfile.c:153
-#, c-format
-msgid "reading temporary file"
-msgstr ""
-
-#: src/data/case-tmpfile.c:155
-#, c-format
-msgid "unexpected end of file reading temporary file"
-msgstr ""
-
-#: src/data/case-tmpfile.c:175
-#, c-format
-msgid "writing to temporary file"
-msgstr ""
-
-#: src/data/data-in.c:262 src/data/data-in.c:452
+#: src/data/data-in.c:263 src/data/data-in.c:453
msgid "Field contents are not numeric."
msgstr ""
-#: src/data/data-in.c:264 src/data/data-in.c:454
+#: src/data/data-in.c:265 src/data/data-in.c:455
msgid "Number followed by garbage."
msgstr ""
-#: src/data/data-in.c:275
+#: src/data/data-in.c:276
msgid "Invalid numeric syntax."
msgstr ""
-#: src/data/data-in.c:284 src/data/data-in.c:467
+#: src/data/data-in.c:285 src/data/data-in.c:468
msgid "Too-large number set to system-missing."
msgstr ""
-#: src/data/data-in.c:289 src/data/data-in.c:472
+#: src/data/data-in.c:290 src/data/data-in.c:473
msgid "Too-small number set to zero."
msgstr ""
-#: src/data/data-in.c:315
+#: src/data/data-in.c:316
msgid "All characters in field must be digits."
msgstr ""
-#: src/data/data-in.c:338
+#: src/data/data-in.c:339
msgid "Unrecognized character in field."
msgstr "Unrecognised character in field."
-#: src/data/data-in.c:362 src/data/data-in.c:636
+#: src/data/data-in.c:363 src/data/data-in.c:638
msgid "Field must have even length."
msgstr ""
-#: src/data/data-in.c:367 src/data/data-in.c:647
+#: src/data/data-in.c:368 src/data/data-in.c:649
msgid "Field must contain only hex digits."
msgstr ""
-#: src/data/data-in.c:686 src/data/data-in.c:733
+#: src/data/data-in.c:688 src/data/data-in.c:735
msgid "Syntax error in date field."
msgstr ""
-#: src/data/data-in.c:702
+#: src/data/data-in.c:704
#, c-format
msgid "Day (%ld) must be between 1 and 31."
msgstr ""
-#: src/data/data-in.c:749
+#: src/data/data-in.c:751
msgid "Delimiter expected between fields in date."
msgstr ""
-#: src/data/data-in.c:823
+#: src/data/data-in.c:825
msgid ""
"Unrecognized month format. Months may be specified as Arabic or Roman "
"numerals or as at least 3 letters of their English names."
"Unrecognised month format. Months may be specified as Arabic or Roman \n"
"numerals or as at least 3 letters of their English names."
-#: src/data/data-in.c:850
+#: src/data/data-in.c:852
#, c-format
msgid "Year (%ld) must be between 1582 and 19999."
msgstr ""
-#: src/data/data-in.c:862
+#: src/data/data-in.c:864
#, c-format
msgid "Trailing garbage \"%.*s\" following date."
msgstr ""
-#: src/data/data-in.c:878
+#: src/data/data-in.c:880
msgid "Julian day must have exactly three digits."
msgstr ""
-#: src/data/data-in.c:883
+#: src/data/data-in.c:885
#, c-format
msgid "Julian day (%ld) must be between 1 and 366."
msgstr ""
-#: src/data/data-in.c:907
+#: src/data/data-in.c:909
#, c-format
msgid "Quarter (%ld) must be between 1 and 4."
msgstr ""
-#: src/data/data-in.c:927
+#: src/data/data-in.c:929
#, c-format
msgid "Week (%ld) must be between 1 and 53."
msgstr ""
-#: src/data/data-in.c:940
+#: src/data/data-in.c:942
msgid "Delimiter expected between fields in time."
msgstr ""
-#: src/data/data-in.c:960
+#: src/data/data-in.c:962
#, c-format
msgid "Minute (%ld) must be between 0 and 59."
msgstr ""
-#: src/data/data-in.c:1000
+#: src/data/data-in.c:1002
msgid ""
"Unrecognized weekday name. At least the first two letters of an English "
"weekday name must be specified."
"Unrecognised weekday name. At least the first two letters of an English "
"weekday name must be specified."
-#: src/data/data-in.c:1138
+#: src/data/data-in.c:1140
#, c-format
msgid "`%c' expected in date field."
msgstr ""
-#: src/data/data-in.c:1179
+#: src/data/data-in.c:1181
#, c-format
msgid "column %d"
msgstr ""
-#: src/data/data-in.c:1181
+#: src/data/data-in.c:1183
#, c-format
msgid "columns %d-%d"
msgstr ""
-#: src/data/data-in.c:1185
+#: src/data/data-in.c:1187
#, c-format
msgid "%s field) "
msgstr ""
-#: src/data/data-out.c:446
+#: src/data/data-out.c:449
#, c-format
msgid "Weekday number %f is not between 1 and 7."
msgstr ""
-#: src/data/data-out.c:467
+#: src/data/data-out.c:470
#, c-format
msgid "Month number %f is not between 1 and 12."
msgstr ""
msgid "scratch"
msgstr ""
-#: src/data/dictionary.c:926
+#: src/data/dictionary.c:940
msgid ""
"At least one case in the data file had a weight value that was user-missing, "
"system-missing, zero, or negative. These case(s) were ignored."
msgstr ""
-#: src/data/dictionary.c:1228
+#: src/data/dictionary.c:1263
#, c-format
msgid "Truncating document line to %d bytes."
msgstr ""
msgid "%s variables are not compatible with %s format %s."
msgstr ""
-#: src/data/format.c:327 src/data/sys-file-reader.c:657
-#: src/ui/gui/psppire.glade:2034 src/ui/gui/psppire-var-store.c:575
+#: src/data/format.c:327 src/data/sys-file-reader.c:663
+#: src/ui/gui/psppire.glade:2009 src/ui/gui/psppire-var-store.c:584
#: src/ui/gui/var-sheet-dialogs.glade:139
msgid "String"
msgstr ""
-#: src/data/format.c:327 src/data/sys-file-reader.c:657
-#: src/ui/gui/psppire.glade:2109 src/ui/gui/psppire-var-store.c:568
+#: src/data/format.c:327 src/data/sys-file-reader.c:663
+#: src/ui/gui/psppire.glade:2084 src/ui/gui/psppire-var-store.c:577
#: src/ui/gui/var-sheet-dialogs.glade:28
msgid "Numeric"
msgstr ""
-#: src/data/format.c:328 src/data/sys-file-reader.c:1214
-#: src/data/sys-file-reader.c:1216
+#: src/data/format.c:328 src/data/sys-file-reader.c:1228
+#: src/data/sys-file-reader.c:1230
#: src/language/dictionary/apply-dictionary.c:78
#: src/language/dictionary/apply-dictionary.c:79
-#: src/language/xforms/recode.c:489 src/language/xforms/recode.c:490
-#: src/language/xforms/recode.c:502 src/language/xforms/recode.c:503
+#: src/language/xforms/recode.c:490 src/language/xforms/recode.c:491
+#: src/language/xforms/recode.c:503 src/language/xforms/recode.c:504
msgid "numeric"
msgstr ""
-#: src/data/format.c:328 src/data/sys-file-reader.c:1214
-#: src/data/sys-file-reader.c:1216
+#: src/data/format.c:328 src/data/sys-file-reader.c:1228
+#: src/data/sys-file-reader.c:1230
#: src/language/dictionary/apply-dictionary.c:78
#: src/language/dictionary/apply-dictionary.c:79
-#: src/language/xforms/recode.c:489 src/language/xforms/recode.c:490
-#: src/language/xforms/recode.c:502 src/language/xforms/recode.c:503
+#: src/language/xforms/recode.c:490 src/language/xforms/recode.c:491
+#: src/language/xforms/recode.c:503 src/language/xforms/recode.c:504
msgid "string"
msgstr ""
msgid "String variable with width %d is not compatible with format %s."
msgstr ""
-#: src/data/gnumeric-reader.c:33
+#: src/data/gnumeric-reader.c:36
msgid ""
"Support for Gnumeric files was not compiled into this installation of PSPP"
msgstr ""
-#: src/data/gnumeric-reader.c:362
+#: src/data/gnumeric-reader.c:368
#, c-format
-msgid "Error opening \"%s\" for reading as a gnumeric file: %s."
+msgid "Error opening \"%s\" for reading as a Gnumeric file: %s."
msgstr ""
-#: src/data/gnumeric-reader.c:382
+#: src/data/gnumeric-reader.c:388
#, c-format
msgid "Invalid cell range \"%s\""
msgstr ""
-#: src/data/gnumeric-reader.c:518 src/data/psql-reader.c:182
+#: src/data/gnumeric-reader.c:520 src/data/psql-reader.c:187
#, c-format
msgid "Cannot create variable name from %s"
msgstr ""
-#: src/data/gnumeric-reader.c:530
+#: src/data/gnumeric-reader.c:532
#, c-format
msgid "Selected sheet or range of spreadsheet \"%s\" is empty."
msgstr ""
#. TRANSLATORS: this fragment will be interpolated into
#. messages in fh_lock() that identify types of files.
-#: src/data/por-file-reader.c:268 src/data/por-file-writer.c:148
+#: src/data/por-file-reader.c:267 src/data/por-file-writer.c:149
msgid "portable file"
msgstr ""
-#: src/data/por-file-reader.c:276
+#: src/data/por-file-reader.c:275
#, c-format
msgid ""
"An error occurred while opening \"%s\" for reading as a portable file: %s."
msgstr ""
-#: src/data/por-file-reader.c:297
+#: src/data/por-file-reader.c:296
msgid "Data record expected."
msgstr ""
-#: src/data/por-file-reader.c:379
+#: src/data/por-file-reader.c:378
msgid "Number expected."
msgstr ""
-#: src/data/por-file-reader.c:407
+#: src/data/por-file-reader.c:406
msgid "Missing numeric terminator."
msgstr ""
-#: src/data/por-file-reader.c:430
+#: src/data/por-file-reader.c:429
msgid "Invalid integer."
msgstr ""
-#: src/data/por-file-reader.c:441
+#: src/data/por-file-reader.c:440
#, c-format
msgid "Bad string length %d."
msgstr ""
-#: src/data/por-file-reader.c:502
+#: src/data/por-file-reader.c:501
#, c-format
msgid "%s: Not a portable file."
msgstr ""
-#: src/data/por-file-reader.c:519
+#: src/data/por-file-reader.c:518
#, c-format
msgid "Unrecognized version code `%c'."
msgstr "Unrecognised version code `%c'."
-#: src/data/por-file-reader.c:528
+#: src/data/por-file-reader.c:527
#, c-format
msgid "Bad date string length %zu."
msgstr ""
-#: src/data/por-file-reader.c:530
+#: src/data/por-file-reader.c:529
#, c-format
msgid "Bad time string length %zu."
msgstr ""
-#: src/data/por-file-reader.c:572
+#: src/data/por-file-reader.c:571
#, c-format
msgid ""
"%s: Bad format specifier byte (%d). Variable will be assigned a default "
"format."
msgstr ""
-#: src/data/por-file-reader.c:593
+#: src/data/por-file-reader.c:592
#, c-format
msgid "Numeric variable %s has invalid format specifier %s."
msgstr ""
-#: src/data/por-file-reader.c:597
+#: src/data/por-file-reader.c:596
#, c-format
msgid "String variable %s with width %d has invalid format specifier %s."
msgstr ""
-#: src/data/por-file-reader.c:621
+#: src/data/por-file-reader.c:620
msgid "Expected variable count record."
msgstr ""
-#: src/data/por-file-reader.c:625
+#: src/data/por-file-reader.c:624
#, c-format
msgid "Invalid number of variables %d."
msgstr ""
-#: src/data/por-file-reader.c:635
+#: src/data/por-file-reader.c:633
#, c-format
msgid "Weight variable name (%s) truncated."
msgstr ""
-#: src/data/por-file-reader.c:650
+#: src/data/por-file-reader.c:648
msgid "Expected variable record."
msgstr ""
-#: src/data/por-file-reader.c:654
+#: src/data/por-file-reader.c:652
#, c-format
msgid "Invalid variable width %d."
msgstr ""
-#: src/data/por-file-reader.c:662
+#: src/data/por-file-reader.c:659
#, c-format
msgid "Invalid variable name `%s' in position %d."
msgstr ""
-#: src/data/por-file-reader.c:666
+#: src/data/por-file-reader.c:663 src/data/sys-file-reader.c:521
#, c-format
msgid "Bad width %d for variable %s."
msgstr ""
-#: src/data/por-file-reader.c:681
+#: src/data/por-file-reader.c:678
#, c-format
msgid "Duplicate variable name %s in position %d."
msgstr ""
-#: src/data/por-file-reader.c:682
+#: src/data/por-file-reader.c:679
#, c-format
msgid "Duplicate variable name %s in position %d renamed to %s."
msgstr ""
-#: src/data/por-file-reader.c:725
+#: src/data/por-file-reader.c:728
#, c-format
msgid "Weighting variable %s not present in dictionary."
msgstr ""
"Cannot assign value labels to %s and %s, which have different variable types."
msgstr ""
-#: src/data/por-file-writer.c:140
+#: src/data/por-file-writer.c:141
#, c-format
msgid "Invalid decimal digits count %d. Treating as %d."
msgstr ""
-#: src/data/por-file-writer.c:160
+#: src/data/por-file-writer.c:161
#, c-format
msgid "Error opening \"%s\" for writing as a portable file: %s."
msgstr ""
-#: src/data/por-file-writer.c:500
+#: src/data/por-file-writer.c:506
#, c-format
msgid "An I/O error occurred writing portable file \"%s\"."
msgstr ""
-#: src/data/psql-reader.c:42
+#: src/data/psql-reader.c:46
msgid ""
"Support for reading postgres databases was not compiled into this "
"installation of PSPP"
msgstr ""
-#: src/data/psql-reader.c:237
+#: src/data/psql-reader.c:242
msgid "Memory error whilst opening psql source"
msgstr ""
-#: src/data/psql-reader.c:243
+#: src/data/psql-reader.c:248
#, c-format
msgid "Error opening psql source: %s."
msgstr ""
-#: src/data/psql-reader.c:258
+#: src/data/psql-reader.c:263
#, c-format
msgid ""
"Postgres server is version %s. Reading from versions earlier than 8.0 is not "
"supported."
msgstr ""
-#: src/data/psql-reader.c:278
+#: src/data/psql-reader.c:283
msgid ""
"Connection is unencrypted, but unencrypted connections have not been "
"permitted."
msgstr ""
-#: src/data/psql-reader.c:317 src/data/psql-reader.c:342
-#: src/data/psql-reader.c:352
+#: src/data/psql-reader.c:322 src/data/psql-reader.c:347
+#: src/data/psql-reader.c:357
#, c-format
msgid "Error from psql source: %s."
msgstr ""
-#: src/data/psql-reader.c:447
+#: src/data/psql-reader.c:452
#, c-format
msgid "Unsupported OID %d. SYSMIS values will be inserted."
msgstr ""
#. TRANSLATORS: this fragment will be interpolated into
#. messages in fh_lock() that identify types of files.
-#: src/data/scratch-writer.c:67 src/language/data-io/file-handle.q:181
+#: src/data/scratch-writer.c:66 src/language/data-io/file-handle.q:181
msgid "scratch file"
msgstr ""
-#: src/data/settings.c:685
+#: src/data/settings.c:686
#, c-format
msgid ""
"%s: Custom currency string `%s' does not contain exactly three periods or "
#. TRANSLATORS: this fragment will be interpolated into
#. messages in fh_lock() that identify types of files.
-#: src/data/sys-file-reader.c:216 src/data/sys-file-writer.c:200
+#: src/data/sys-file-reader.c:219 src/data/sys-file-writer.c:202
msgid "system file"
msgstr ""
-#: src/data/sys-file-reader.c:223
+#: src/data/sys-file-reader.c:226
#, c-format
msgid "Error opening \"%s\" for reading as a system file: %s."
msgstr ""
-#: src/data/sys-file-reader.c:262
+#: src/data/sys-file-reader.c:265
msgid "Misplaced type 4 record."
msgstr ""
-#: src/data/sys-file-reader.c:273
+#: src/data/sys-file-reader.c:276
#, c-format
msgid "Unrecognized record type %d."
msgstr "Unrecognised record type %d."
-#: src/data/sys-file-reader.c:312
+#: src/data/sys-file-reader.c:315
#, c-format
msgid "File header claims %d variable positions but %d were read from file."
msgstr ""
-#: src/data/sys-file-reader.c:352
+#: src/data/sys-file-reader.c:355
#, c-format
msgid "Error closing system file \"%s\": %s."
msgstr ""
-#: src/data/sys-file-reader.c:417 src/data/sys-file-reader.c:427
+#: src/data/sys-file-reader.c:420 src/data/sys-file-reader.c:430
msgid "This is not an SPSS system file."
msgstr ""
-#: src/data/sys-file-reader.c:446
+#: src/data/sys-file-reader.c:449
msgid ""
"Compression bias is not the usual value of 100, or system file uses "
"unrecognized floating-point format."
"Compression bias is not the usual value of 100, or system file uses \n"
"unrecognised floating-point format."
-#: src/data/sys-file-reader.c:514
+#: src/data/sys-file-reader.c:517
#, c-format
msgid "Invalid variable name `%s'."
msgstr ""
-#: src/data/sys-file-reader.c:518
-#, c-format
-msgid "Bad variable width %d."
-msgstr ""
-
-#: src/data/sys-file-reader.c:522
+#: src/data/sys-file-reader.c:525
#, c-format
msgid "Duplicate variable name `%s' within system file."
msgstr ""
-#: src/data/sys-file-reader.c:530
+#: src/data/sys-file-reader.c:533
msgid "Variable label indicator field is not 0 or 1."
msgstr ""
-#: src/data/sys-file-reader.c:538
+#: src/data/sys-file-reader.c:541
#, c-format
msgid "Variable %s has label of invalid length %zu."
msgstr ""
-#: src/data/sys-file-reader.c:557
+#: src/data/sys-file-reader.c:560
msgid "Numeric missing value indicator field is not -3, -2, 0, 1, 2, or 3."
msgstr ""
-#: src/data/sys-file-reader.c:572
+#: src/data/sys-file-reader.c:578
msgid "String missing value indicator field is not 0, 1, 2, or 3."
msgstr ""
-#: src/data/sys-file-reader.c:575
-#, c-format
-msgid ""
-"Ignoring missing values on long string variable %s, which PSPP does not yet "
-"support."
-msgstr ""
-
-#: src/data/sys-file-reader.c:604
+#: src/data/sys-file-reader.c:610
msgid "Missing string continuation record."
msgstr ""
-#: src/data/sys-file-reader.c:638
+#: src/data/sys-file-reader.c:644
#, c-format
msgid "Unknown variable format %<PRIu8>."
msgstr ""
-#: src/data/sys-file-reader.c:656
+#: src/data/sys-file-reader.c:662
#, c-format
msgid "%s variable %s has invalid %s format %s."
msgstr ""
-#: src/data/sys-file-reader.c:659
+#: src/data/sys-file-reader.c:665
msgid "print"
msgstr ""
-#: src/data/sys-file-reader.c:659
+#: src/data/sys-file-reader.c:665
msgid "write"
msgstr ""
-#: src/data/sys-file-reader.c:663
+#: src/data/sys-file-reader.c:669
msgid "Suppressing further invalid format warnings."
msgstr ""
-#: src/data/sys-file-reader.c:681
+#: src/data/sys-file-reader.c:687
msgid "Weighting variable must be numeric."
msgstr ""
-#: src/data/sys-file-reader.c:695
+#: src/data/sys-file-reader.c:701
msgid "Multiple type 6 (document) records."
msgstr ""
-#: src/data/sys-file-reader.c:699
+#: src/data/sys-file-reader.c:705
#, c-format
msgid "Number of document lines (%d) must be greater than 0."
msgstr ""
-#: src/data/sys-file-reader.c:707
+#: src/data/sys-file-reader.c:713
msgid "Document line contains null byte."
msgstr ""
-#: src/data/sys-file-reader.c:793
-msgid ""
-"Ignoring value labels for long string variables, which PSPP does not yet "
-"support."
-msgstr ""
-
-#: src/data/sys-file-reader.c:798
+#: src/data/sys-file-reader.c:803
#, c-format
msgid ""
"Unrecognized record type 7, subtype %d. Please send a copy of this file, "
"and the syntax which created it to %s"
msgstr ""
-#: src/data/sys-file-reader.c:825
+#: src/data/sys-file-reader.c:830
#, c-format
msgid "Bad size (%zu) or count (%zu) field on record type 7, subtype 3."
msgstr ""
-#: src/data/sys-file-reader.c:845
+#: src/data/sys-file-reader.c:850
#, c-format
msgid ""
"Floating-point representation indicated by system file (%d) differs from "
"expected (%d)."
msgstr ""
-#: src/data/sys-file-reader.c:858
+#: src/data/sys-file-reader.c:863
msgid "little-endian"
msgstr ""
-#: src/data/sys-file-reader.c:858
+#: src/data/sys-file-reader.c:863
msgid "big-endian"
msgstr ""
-#: src/data/sys-file-reader.c:859
+#: src/data/sys-file-reader.c:864
#, c-format
msgid ""
"Integer format indicated by system file (%s) differs from expected (%s)."
msgstr ""
-#: src/data/sys-file-reader.c:916
+#: src/data/sys-file-reader.c:921
#, c-format
msgid "Bad size (%zu) or count (%zu) on extension 4."
msgstr ""
-#: src/data/sys-file-reader.c:920
-#, c-format
-msgid "File specifies unexpected value %g as SYSMIS."
-msgstr ""
-
-#: src/data/sys-file-reader.c:922
-#, c-format
-msgid "File specifies unexpected value %g as HIGHEST."
-msgstr ""
-
-#: src/data/sys-file-reader.c:924
+#: src/data/sys-file-reader.c:925 src/data/sys-file-reader.c:929
+#: src/data/sys-file-reader.c:933
#, c-format
-msgid "File specifies unexpected value %g as LOWEST."
+msgid "File specifies unexpected value %g as %s."
msgstr ""
-#: src/data/sys-file-reader.c:940
+#: src/data/sys-file-reader.c:950
#, c-format
msgid "Bad size %zu on extension 11."
msgstr ""
-#: src/data/sys-file-reader.c:952
+#: src/data/sys-file-reader.c:962
#, c-format
msgid "Extension 11 has bad count %zu (for %zu variables)."
msgstr ""
-#: src/data/sys-file-reader.c:973
+#: src/data/sys-file-reader.c:983
#, c-format
msgid ""
"Invalid variable display parameters for variable %zu (%s). Default "
"parameters substituted."
msgstr ""
-#: src/data/sys-file-reader.c:1017
+#: src/data/sys-file-reader.c:1027
#, c-format
msgid "Long variable mapping from %s to invalid variable name `%s'."
msgstr ""
-#: src/data/sys-file-reader.c:1027
+#: src/data/sys-file-reader.c:1037
#, c-format
msgid "Duplicate long variable name `%s' within system file."
msgstr ""
-#: src/data/sys-file-reader.c:1080
+#: src/data/sys-file-reader.c:1090
#, c-format
msgid "%s listed as string of invalid length %s in very length string record."
msgstr ""
-#: src/data/sys-file-reader.c:1090
+#: src/data/sys-file-reader.c:1100
#, c-format
msgid ""
"%s listed in very long string record with width %s, which requires only one "
"segment."
msgstr ""
-#: src/data/sys-file-reader.c:1096
+#: src/data/sys-file-reader.c:1106
#, c-format
msgid "Very long string %s overflows dictionary."
msgstr ""
-#: src/data/sys-file-reader.c:1110
+#: src/data/sys-file-reader.c:1120
#, c-format
msgid ""
"Very long string with width %ld has segment %d of width %d (expected %d)"
msgstr ""
-#: src/data/sys-file-reader.c:1155
+#: src/data/sys-file-reader.c:1166
#, c-format
msgid "Invalid number of labels: %d. Ignoring labels."
msgstr ""
-#: src/data/sys-file-reader.c:1186
+#: src/data/sys-file-reader.c:1197
msgid ""
"Variable index record (type 4) does not immediately follow value label "
"record (type 3) as it should."
msgstr ""
-#: src/data/sys-file-reader.c:1193
+#: src/data/sys-file-reader.c:1204
#, c-format
msgid ""
"Number of variables associated with a value label (%d) is not between 1 and "
"the number of variables (%zu)."
msgstr ""
-#: src/data/sys-file-reader.c:1203
+#: src/data/sys-file-reader.c:1215
#, c-format
-msgid "Value labels are not allowed on long string variables (%s)."
+msgid ""
+"Value labels may not be added to long string variables (e.g. %s) using "
+"records types 3 and 4."
msgstr ""
-#: src/data/sys-file-reader.c:1210
+#: src/data/sys-file-reader.c:1224
#, c-format
msgid ""
"Variables associated with value label are not all of identical type. "
"Variable %s is %s, but variable %s is %s."
msgstr ""
-#: src/data/sys-file-reader.c:1243
+#: src/data/sys-file-reader.c:1258
#, c-format
msgid "Duplicate value label for %g on %s."
msgstr ""
-#: src/data/sys-file-reader.c:1246
+#: src/data/sys-file-reader.c:1261 src/data/sys-file-reader.c:1442
#, c-format
msgid "Duplicate value label for \"%.*s\" on %s."
msgstr ""
-#: src/data/sys-file-reader.c:1284
+#: src/data/sys-file-reader.c:1299
#, c-format
msgid "Error parsing attribute value %s[%d]"
msgstr ""
-#: src/data/sys-file-reader.c:1298
+#: src/data/sys-file-reader.c:1313
#, c-format
msgid "Attribute value %s[%d] is not quoted: %s"
msgstr ""
-#: src/data/sys-file-reader.c:1414
-msgid "File ends in partial case."
+#: src/data/sys-file-reader.c:1376
+#, c-format
+msgid ""
+"Variable name length in long string value label record (%d) exceeds %d-byte "
+"limit."
+msgstr ""
+
+#: src/data/sys-file-reader.c:1386
+#, c-format
+msgid "Ignoring long string value record for unknown variable %s."
+msgstr ""
+
+#: src/data/sys-file-reader.c:1393
+#, c-format
+msgid "Ignoring long string value record for numeric variable %s."
+msgstr ""
+
+#: src/data/sys-file-reader.c:1400
+#, c-format
+msgid ""
+"Ignoring long string value record for variable %s because the record's width "
+"(%d) does not match the variable's width (%d)"
msgstr ""
#: src/data/sys-file-reader.c:1422
#, c-format
+msgid ""
+"Ignoring long string value %zu for variable %s, with width %d, that has bad "
+"value width %zu."
+msgstr ""
+
+#: src/data/sys-file-reader.c:1537
+msgid "File ends in partial case."
+msgstr ""
+
+#: src/data/sys-file-reader.c:1545
+#, c-format
msgid "Error reading case from file %s."
msgstr ""
-#: src/data/sys-file-reader.c:1519 src/data/sys-file-reader.c:1555
+#: src/data/sys-file-reader.c:1642 src/data/sys-file-reader.c:1678
msgid "Compressed data is corrupt."
msgstr ""
-#: src/data/sys-file-reader.c:1642
+#: src/data/sys-file-reader.c:1765
#, c-format
msgid "Variable index %d not in valid range 1...%d."
msgstr ""
-#: src/data/sys-file-reader.c:1647
+#: src/data/sys-file-reader.c:1770
#, c-format
msgid "Variable index %d refers to long string continuation."
msgstr ""
-#: src/data/sys-file-reader.c:1715
+#: src/data/sys-file-reader.c:1838
#, c-format
msgid "Suppressed %d additional related warnings."
msgstr ""
-#: src/data/sys-file-reader.c:1756
+#: src/data/sys-file-reader.c:1879
#, c-format
msgid "Variable map refers to unknown variable %s."
msgstr ""
-#: src/data/sys-file-reader.c:1864
+#: src/data/sys-file-reader.c:1987
#, c-format
msgid "System error: %s."
msgstr ""
-#: src/data/sys-file-reader.c:1866
+#: src/data/sys-file-reader.c:1989
msgid "Unexpected end of file."
msgstr ""
-#: src/data/sys-file-writer.c:173
+#: src/data/sys-file-writer.c:175
#, c-format
msgid "Unknown system file version %d. Treating as version %d."
msgstr ""
-#: src/data/sys-file-writer.c:212
+#: src/data/sys-file-writer.c:214
#, c-format
msgid "Error opening \"%s\" for writing as a system file: %s."
msgstr ""
-#: src/data/sys-file-writer.c:837
+#: src/data/sys-file-writer.c:917
#, c-format
msgid "An I/O error occurred writing system file \"%s\"."
msgstr ""
-#: src/data/variable.c:240
+#: src/data/variable.c:242
#, c-format
msgid ""
"Character `%c' (in %s) may not appear as the first character in a variable "
"name."
msgstr ""
-#: src/data/variable.c:252
+#: src/data/variable.c:254
#, c-format
msgid "Character `%c' (in %s) may not appear in a variable name."
msgstr ""
-#: src/data/variable.c:280
+#: src/data/variable.c:282
msgid "Variable name cannot be empty string."
msgstr ""
-#: src/data/variable.c:286
+#: src/data/variable.c:288
#, c-format
msgid "Variable name %s exceeds %d-character limit."
msgstr ""
-#: src/data/variable.c:294
+#: src/data/variable.c:296
#, c-format
msgid "`%s' may not be used as a variable name because it is a reserved word."
msgstr ""
-#: src/language/command.c:208
+#: src/language/command.c:208 src/language/expressions/parse.c:1267
#, c-format
-msgid "%s is unimplemented."
+msgid "%s is not yet implemented."
msgstr ""
#: src/language/command.c:214
"name."
msgstr ""
-#: src/language/data-io/combine-files.c:757
+#: src/language/data-io/combine-files.c:762
#, c-format
msgid "Encountered %zu sets of duplicate cases in the master file."
msgstr ""
#: src/language/dictionary/split-file.c:84
#: src/language/dictionary/sys-file-info.c:169
#: src/language/dictionary/sys-file-info.c:393
-#: src/language/dictionary/sys-file-info.c:716
+#: src/language/dictionary/sys-file-info.c:725
#: src/language/stats/descriptives.c:885 src/ui/gui/psppire-dictview.c:502
msgid "Variable"
msgstr ""
msgstr ""
#: src/language/data-io/data-parser.c:646 src/language/data-io/print.c:405
-#: src/ui/gui/crosstabs.glade:92 src/ui/gui/psppire-var-sheet.c:545
-#: src/ui/gui/psppire-var-store.c:791
+#: src/ui/gui/crosstabs.glade:92 src/ui/gui/psppire-var-sheet.c:534
+#: src/ui/gui/psppire-var-store.c:800
msgid "Columns"
msgstr ""
"specified on FIXCASE, %d."
msgstr ""
-#: src/language/data-io/inpt-pgm.c:129
+#: src/language/data-io/inpt-pgm.c:130
msgid "Unexpected end-of-file within INPUT PROGRAM."
msgstr ""
-#: src/language/data-io/inpt-pgm.c:142
+#: src/language/data-io/inpt-pgm.c:143
msgid "Input program did not create any variables."
msgstr ""
-#: src/language/data-io/inpt-pgm.c:286
+#: src/language/data-io/inpt-pgm.c:288
msgid "COLUMN subcommand multiply specified."
msgstr ""
-#: src/language/data-io/inpt-pgm.c:336
+#: src/language/data-io/inpt-pgm.c:338
msgid ""
"REREAD: Column numbers must be positive finite numbers. Column set to 1."
msgstr ""
msgid "Output calls for %d records but %zu specified on RECORDS subcommand."
msgstr ""
-#: src/language/data-io/print.c:436
+#: src/language/data-io/print.c:437
#, c-format
msgid "Writing %d record to %s."
msgid_plural "Writing %d records to %s."
msgstr[0] ""
msgstr[1] ""
-#: src/language/data-io/print.c:440
+#: src/language/data-io/print.c:441
#, c-format
msgid "Writing %d record."
msgid_plural "Writing %d records."
msgstr[0] ""
msgstr[1] ""
-#: src/language/data-io/print-space.c:73 src/language/lexer/lexer.c:479
+#: src/language/data-io/print-space.c:73 src/language/lexer/lexer.c:478
#: src/language/stats/autorecode.c:154 src/language/xforms/select-if.c:60
msgid "expecting end of command"
msgstr ""
msgid "Variable %s is %s in target file, but %s in source file."
msgstr ""
-#: src/language/dictionary/apply-dictionary.c:99
-#, c-format
-msgid "Cannot add value labels from source file to long string variable %s."
-msgstr ""
-
-#: src/language/dictionary/apply-dictionary.c:113
-#, c-format
-msgid ""
-"Cannot apply missing values from source file to long string variable %s."
-msgstr ""
-
-#: src/language/dictionary/apply-dictionary.c:129
+#: src/language/dictionary/apply-dictionary.c:115
msgid "No matching variables found between the source and target files."
msgstr ""
"a single list."
msgstr ""
-#: src/language/dictionary/missing-values.c:117
+#: src/language/dictionary/missing-values.c:116
#, c-format
-msgid "Truncating missing value to short string length (%d characters)."
+msgid "Truncating missing value to maximum acceptable length (%d bytes)."
msgstr ""
-#: src/language/dictionary/missing-values.c:139
+#: src/language/dictionary/missing-values.c:138
#, c-format
msgid "Missing values provided are too long to assign to variable of width %d."
msgstr ""
msgstr ""
#: src/language/dictionary/split-file.c:85
-#: src/language/dictionary/sys-file-info.c:487
-#: src/language/dictionary/sys-file-info.c:636
-#: src/language/stats/crosstabs.q:1167 src/language/stats/crosstabs.q:1194
-#: src/language/stats/crosstabs.q:1214 src/language/stats/crosstabs.q:1236
-#: src/language/stats/examine.q:1958 src/language/stats/frequencies.q:1059
-#: src/language/stats/frequencies.q:1184 src/language/stats/reliability.q:581
-#: src/language/stats/reliability.q:592
+#: src/language/dictionary/sys-file-info.c:486
+#: src/language/dictionary/sys-file-info.c:641
+#: src/language/stats/crosstabs.q:1231 src/language/stats/crosstabs.q:1258
+#: src/language/stats/crosstabs.q:1282 src/language/stats/crosstabs.q:1307
+#: src/language/stats/examine.q:1959 src/language/stats/frequencies.q:1048
+#: src/language/stats/frequencies.q:1173 src/language/stats/reliability.q:582
+#: src/language/stats/reliability.q:593
msgid "Value"
msgstr ""
#: src/language/dictionary/split-file.c:86
#: src/language/dictionary/sys-file-info.c:397
-#: src/language/dictionary/sys-file-info.c:637 src/ui/gui/crosstabs.glade:275
-#: src/ui/gui/psppire.glade:1999 src/ui/gui/psppire-var-sheet.c:542
-#: src/ui/gui/psppire-var-store.c:788
+#: src/language/dictionary/sys-file-info.c:642 src/ui/gui/crosstabs.glade:275
+#: src/ui/gui/psppire.glade:1974 src/ui/gui/psppire-var-sheet.c:531
+#: src/ui/gui/psppire-var-store.c:797
msgid "Label"
msgstr ""
msgid "File:"
msgstr ""
-#: src/language/dictionary/sys-file-info.c:115 src/ui/gui/psppire.glade:1938
+#: src/language/dictionary/sys-file-info.c:115 src/ui/gui/psppire.glade:1913
#: src/ui/gui/recode.glade:841
msgid "Label:"
msgstr ""
#: src/language/dictionary/sys-file-info.c:171
#: src/language/dictionary/sys-file-info.c:399
-#: src/language/dictionary/sys-file-info.c:715
+#: src/language/dictionary/sys-file-info.c:724
msgid "Position"
msgstr ""
msgid "Documents in the active file:"
msgstr ""
-#: src/language/dictionary/sys-file-info.c:486
+#: src/language/dictionary/sys-file-info.c:485
msgid "Attribute"
msgstr ""
-#: src/language/dictionary/sys-file-info.c:544
+#: src/language/dictionary/sys-file-info.c:543
#, c-format
msgid "Format: %s"
msgstr ""
-#: src/language/dictionary/sys-file-info.c:551
+#: src/language/dictionary/sys-file-info.c:550
#, c-format
msgid "Print Format: %s"
msgstr ""
msgid "Write Format: %s"
msgstr ""
-#: src/language/dictionary/sys-file-info.c:566
+#: src/language/dictionary/sys-file-info.c:567
#, c-format
msgid "Measure: %s"
msgstr ""
-#: src/language/dictionary/sys-file-info.c:567
+#: src/language/dictionary/sys-file-info.c:568
#: src/ui/gui/psppire-var-sheet.c:111
msgid "Nominal"
msgstr ""
-#: src/language/dictionary/sys-file-info.c:568
+#: src/language/dictionary/sys-file-info.c:569
#: src/ui/gui/psppire-var-sheet.c:112
msgid "Ordinal"
msgstr ""
-#: src/language/dictionary/sys-file-info.c:569
+#: src/language/dictionary/sys-file-info.c:570
#: src/ui/gui/psppire-var-sheet.c:113
msgid "Scale"
msgstr ""
-#: src/language/dictionary/sys-file-info.c:572
+#: src/language/dictionary/sys-file-info.c:573
#, c-format
msgid "Display Alignment: %s"
msgstr ""
-#: src/language/dictionary/sys-file-info.c:573
+#: src/language/dictionary/sys-file-info.c:574
#: src/ui/gui/psppire-var-sheet.c:104
msgid "Left"
msgstr ""
-#: src/language/dictionary/sys-file-info.c:574
+#: src/language/dictionary/sys-file-info.c:575
#: src/ui/gui/psppire-var-sheet.c:106
msgid "Center"
msgstr "Centre"
-#: src/language/dictionary/sys-file-info.c:575
+#: src/language/dictionary/sys-file-info.c:576
#: src/ui/gui/psppire-var-sheet.c:105
msgid "Right"
msgstr ""
-#: src/language/dictionary/sys-file-info.c:578
+#: src/language/dictionary/sys-file-info.c:579
#, c-format
msgid "Display Width: %d"
msgstr ""
-#: src/language/dictionary/sys-file-info.c:590
+#: src/language/dictionary/sys-file-info.c:593
msgid "Missing Values: "
msgstr ""
-#: src/language/dictionary/sys-file-info.c:693
+#: src/language/dictionary/sys-file-info.c:702
msgid "No vectors defined."
msgstr ""
-#: src/language/dictionary/sys-file-info.c:714
+#: src/language/dictionary/sys-file-info.c:723
msgid "Vector"
msgstr ""
-#: src/language/dictionary/sys-file-info.c:717
+#: src/language/dictionary/sys-file-info.c:726
msgid "Print Format"
msgstr ""
-#: src/language/dictionary/value-labels.c:121
-#, c-format
-msgid ""
-"It is not possible to assign value labels to long string variables such as %"
-"s."
-msgstr ""
-
-#: src/language/dictionary/value-labels.c:157 src/language/lexer/lexer.c:632
-msgid "expecting string"
-msgstr ""
-
-#: src/language/dictionary/value-labels.c:166 src/language/lexer/lexer.c:659
-msgid "expecting number"
-msgstr ""
-
-#: src/language/dictionary/value-labels.c:182
+#: src/language/dictionary/value-labels.c:150
msgid "Truncating value label to 60 characters."
msgstr ""
-#: src/language/dictionary/variable-display.c:119
+#: src/language/dictionary/variable-display.c:120
msgid "Variable display width must be a positive integer."
msgstr ""
msgid "The weighting variable may not be scratch."
msgstr ""
-#: src/language/expressions/evaluate.c:154
+#: src/language/expressions/evaluate.c:155
msgid "expecting number or string"
msgstr ""
-#: src/language/expressions/evaluate.c:168
+#: src/language/expressions/evaluate.c:169
#, c-format
msgid "Duplicate variable name %s."
msgstr ""
msgid "%s is a PSPP extension."
msgstr ""
-#: src/language/expressions/parse.c:1267
-#, c-format
-msgid "%s is not yet implemented."
-msgstr ""
-
#: src/language/expressions/parse.c:1273
#, c-format
msgid "%s may not appear after TEMPORARY."
#: src/language/lexer/lexer.c:389
#, c-format
-msgid "Bad character in input: `%c'."
+msgid "Bad character in input: `%s'."
msgstr ""
-#: src/language/lexer/lexer.c:391
-#, c-format
-msgid "Bad character in input: `\\%o'."
-msgstr ""
-
-#: src/language/lexer/lexer.c:427
+#: src/language/lexer/lexer.c:426
#, c-format
msgid "Subcommand %s may only be specified once."
msgstr ""
-#: src/language/lexer/lexer.c:435
+#: src/language/lexer/lexer.c:434
#, c-format
msgid "missing required subcommand %s"
msgstr ""
-#: src/language/lexer/lexer.c:464
+#: src/language/lexer/lexer.c:463
#, c-format
msgid "Syntax error %s at %s."
msgstr ""
-#: src/language/lexer/lexer.c:467
+#: src/language/lexer/lexer.c:466
#, c-format
msgid "Syntax error at %s."
msgstr ""
-#: src/language/lexer/lexer.c:601 src/language/lexer/lexer.c:618
+#: src/language/lexer/lexer.c:600 src/language/lexer/lexer.c:617
#, c-format
msgid "expecting `%s'"
msgstr ""
-#: src/language/lexer/lexer.c:646
+#: src/language/lexer/lexer.c:631
+msgid "expecting string"
+msgstr ""
+
+#: src/language/lexer/lexer.c:645
msgid "expecting integer"
msgstr ""
-#: src/language/lexer/lexer.c:671
+#: src/language/lexer/lexer.c:658
+msgid "expecting number"
+msgstr ""
+
+#: src/language/lexer/lexer.c:670
msgid "expecting identifier"
msgstr ""
-#: src/language/lexer/lexer.c:1065
+#: src/language/lexer/lexer.c:1064
msgid "binary"
msgstr ""
-#: src/language/lexer/lexer.c:1070
+#: src/language/lexer/lexer.c:1069
msgid "octal"
msgstr ""
-#: src/language/lexer/lexer.c:1075
+#: src/language/lexer/lexer.c:1074
msgid "hex"
msgstr ""
-#: src/language/lexer/lexer.c:1085
+#: src/language/lexer/lexer.c:1084
#, c-format
msgid "String of %s digits has %zu characters, which is not a multiple of %d."
msgstr ""
-#: src/language/lexer/lexer.c:1114
+#: src/language/lexer/lexer.c:1113
#, c-format
msgid "`%c' is not a valid %s digit."
msgstr ""
-#: src/language/lexer/lexer.c:1148
+#: src/language/lexer/lexer.c:1147
msgid "Unterminated string constant."
msgstr ""
-#: src/language/lexer/lexer.c:1202
+#: src/language/lexer/lexer.c:1201
msgid "Unexpected end of file in string concatenation."
msgstr ""
-#: src/language/lexer/lexer.c:1210
+#: src/language/lexer/lexer.c:1209
msgid "String expected following `+'."
msgstr ""
-#: src/language/lexer/lexer.c:1223
+#: src/language/lexer/lexer.c:1222
#, c-format
msgid "String exceeds 255 characters in length (%zu characters)."
msgstr ""
-#: src/language/lexer/range-parser.c:60
+#: src/language/lexer/value-parser.c:60
#, c-format
msgid ""
"Low end of range (%g) is below high end (%g). The range will be treated as "
"reversed."
msgstr ""
-#: src/language/lexer/range-parser.c:68
+#: src/language/lexer/value-parser.c:68
#, c-format
msgid "Ends of range are equal (%g)."
msgstr ""
-#: src/language/lexer/range-parser.c:76
+#: src/language/lexer/value-parser.c:76
msgid "LO or LOWEST must be part of a range."
msgstr ""
-#: src/language/lexer/range-parser.c:108
+#: src/language/lexer/value-parser.c:108
msgid "System-missing value is not valid here."
msgstr ""
-#: src/language/lexer/range-parser.c:116
+#: src/language/lexer/value-parser.c:116
msgid "expecting number or data string"
msgstr ""
msgid "Duplicate variable name %s among target variables."
msgstr ""
-#: src/language/stats/binomial.c:142
+#: src/language/stats/binomial.c:141
#, c-format
msgid "Variable %s is not dichotomous"
msgstr ""
-#: src/language/stats/binomial.c:207
+#: src/language/stats/binomial.c:194
msgid "Binomial Test"
msgstr ""
-#: src/language/stats/binomial.c:238
+#: src/language/stats/binomial.c:224
msgid "Group1"
msgstr ""
-#: src/language/stats/binomial.c:239
+#: src/language/stats/binomial.c:225
msgid "Group2"
msgstr ""
-#: src/language/stats/binomial.c:240 src/language/stats/chisquare.c:224
-#: src/language/stats/chisquare.c:284 src/language/stats/crosstabs.q:868
-#: src/language/stats/crosstabs.q:1074 src/language/stats/crosstabs.q:1797
-#: src/language/stats/examine.q:1214 src/language/stats/frequencies.q:1136
-#: src/language/stats/oneway.q:305 src/language/stats/oneway.q:475
-#: src/language/stats/regression.q:309 src/language/stats/reliability.q:717
-#: src/language/stats/sign.c:93 src/language/stats/wilcoxon.c:246
+#: src/language/stats/binomial.c:226 src/language/stats/chisquare.c:202
+#: src/language/stats/chisquare.c:262 src/language/stats/crosstabs.q:843
+#: src/language/stats/crosstabs.q:1170 src/language/stats/crosstabs.q:1594
+#: src/language/stats/examine.q:1216 src/language/stats/frequencies.q:1125
+#: src/language/stats/oneway.q:305 src/language/stats/oneway.q:476
+#: src/language/stats/regression.q:309 src/language/stats/reliability.q:718
+#: src/language/stats/sign.c:94 src/language/stats/wilcoxon.c:262
#: src/ui/gui/crosstabs-dialog.c:59
msgid "Total"
msgstr ""
-#: src/language/stats/binomial.c:273 src/language/stats/chisquare.c:247
-#: src/language/stats/crosstabs.q:1192 src/language/stats/crosstabs.q:1233
+#: src/language/stats/binomial.c:259 src/language/stats/chisquare.c:225
+#: src/language/stats/crosstabs.q:1256 src/language/stats/crosstabs.q:1304
msgid "Category"
msgstr ""
-#: src/language/stats/binomial.c:274 src/language/stats/crosstabs.q:878
-#: src/language/stats/examine.q:1287 src/language/stats/frequencies.q:1407
+#: src/language/stats/binomial.c:260 src/language/stats/crosstabs.q:850
+#: src/language/stats/examine.q:1289 src/language/stats/frequencies.q:1396
#: src/language/stats/npar-summary.c:123 src/language/stats/oneway.q:389
-#: src/language/stats/reliability.q:720 src/language/stats/sign.c:73
-#: src/language/stats/t-test.q:700 src/language/stats/t-test.q:724
-#: src/language/stats/t-test.q:863 src/language/stats/t-test.q:1425
-#: src/language/stats/wilcoxon.c:229
+#: src/language/stats/reliability.q:721 src/language/stats/sign.c:74
+#: src/language/stats/t-test.q:506 src/language/stats/t-test.q:526
+#: src/language/stats/t-test.q:626 src/language/stats/t-test.q:1105
+#: src/language/stats/wilcoxon.c:245
msgid "N"
msgstr ""
-#: src/language/stats/binomial.c:275
+#: src/language/stats/binomial.c:261
msgid "Observed Prop."
msgstr ""
-#: src/language/stats/binomial.c:276
+#: src/language/stats/binomial.c:262
msgid "Test Prop."
msgstr ""
-#: src/language/stats/binomial.c:279
+#: src/language/stats/binomial.c:265
#, c-format
msgid "Exact Sig. (%d-tailed)"
msgstr ""
-#: src/language/stats/chisquare.c:194
+#: src/language/stats/chisquare.c:172
#, c-format
msgid ""
"CHISQUARE test specified %d expected values, but %d distinct values were "
"encountered in variable %s."
msgstr ""
-#: src/language/stats/chisquare.c:208 src/language/stats/chisquare.c:248
+#: src/language/stats/chisquare.c:186 src/language/stats/chisquare.c:226
msgid "Observed N"
msgstr ""
-#: src/language/stats/chisquare.c:209 src/language/stats/chisquare.c:249
+#: src/language/stats/chisquare.c:187 src/language/stats/chisquare.c:227
msgid "Expected N"
msgstr ""
-#: src/language/stats/chisquare.c:210 src/language/stats/chisquare.c:250
+#: src/language/stats/chisquare.c:188 src/language/stats/chisquare.c:228
#: src/language/stats/regression.q:308 src/ui/gui/crosstabs-dialog.c:61
msgid "Residual"
msgstr ""
-#: src/language/stats/chisquare.c:243 src/language/stats/sign.c:61
+#: src/language/stats/chisquare.c:221 src/language/stats/sign.c:62
msgid "Frequencies"
msgstr ""
-#: src/language/stats/chisquare.c:298 src/language/stats/sign.c:114
-#: src/language/stats/wilcoxon.c:297
+#: src/language/stats/chisquare.c:276 src/language/stats/sign.c:115
+#: src/language/stats/wilcoxon.c:313
msgid "Test Statistics"
msgstr ""
-#: src/language/stats/chisquare.c:312
+#: src/language/stats/chisquare.c:290
msgid "Chi-Square"
msgstr ""
-#: src/language/stats/chisquare.c:313 src/language/stats/crosstabs.q:1168
-#: src/language/stats/oneway.q:278 src/language/stats/oneway.q:689
-#: src/language/stats/regression.q:302 src/language/stats/t-test.q:1026
-#: src/language/stats/t-test.q:1219 src/language/stats/t-test.q:1316
+#: src/language/stats/chisquare.c:291 src/language/stats/crosstabs.q:1232
+#: src/language/stats/oneway.q:278 src/language/stats/oneway.q:691
+#: src/language/stats/regression.q:302 src/language/stats/t-test.q:753
+#: src/language/stats/t-test.q:924 src/language/stats/t-test.q:1011
msgid "df"
msgstr ""
-#: src/language/stats/chisquare.c:314
+#: src/language/stats/chisquare.c:292
msgid "Asymp. Sig."
msgstr ""
-#: src/language/stats/crosstabs.q:278
+#: src/language/stats/crosstabs.q:325
msgid ""
"Missing mode REPORT not allowed in general mode. Assuming MISSING=TABLE."
msgstr ""
-#: src/language/stats/crosstabs.q:288
-msgid "Write mode ALL not allowed in general mode. Assuming WRITE=CELLS."
-msgstr ""
-
-#: src/language/stats/crosstabs.q:364
+#: src/language/stats/crosstabs.q:414
msgid "Too many cross-tabulation variables or dimensions."
msgstr ""
-#: src/language/stats/crosstabs.q:374
+#: src/language/stats/crosstabs.q:424
msgid "expecting BY"
msgstr ""
-#: src/language/stats/crosstabs.q:441
+#: src/language/stats/crosstabs.q:484
msgid "VARIABLES must be specified before TABLES."
msgstr ""
-#: src/language/stats/crosstabs.q:479
+#: src/language/stats/crosstabs.q:522
#, c-format
msgid "Maximum value (%ld) less than minimum value (%ld)."
msgstr ""
-#: src/language/stats/crosstabs.q:863
+#: src/language/stats/crosstabs.q:838
msgid "Summary."
msgstr ""
-#: src/language/stats/crosstabs.q:865 src/language/stats/examine.q:1275
-#: src/language/stats/reliability.q:708
+#: src/language/stats/crosstabs.q:840 src/language/stats/examine.q:1277
+#: src/language/stats/reliability.q:709
msgid "Cases"
msgstr ""
-#: src/language/stats/crosstabs.q:866 src/language/stats/examine.q:1212
-#: src/language/stats/frequencies.q:1057 src/language/stats/frequencies.q:1408
-#: src/language/stats/reliability.q:711
+#: src/language/stats/crosstabs.q:841 src/language/stats/examine.q:1214
+#: src/language/stats/frequencies.q:1046 src/language/stats/frequencies.q:1397
+#: src/language/stats/reliability.q:712
msgid "Valid"
msgstr ""
-#: src/language/stats/crosstabs.q:867 src/language/stats/examine.q:1213
-#: src/language/stats/frequencies.q:1127 src/language/stats/frequencies.q:1409
-#: src/ui/gui/psppire-var-sheet.c:544 src/ui/gui/psppire-var-store.c:790
+#: src/language/stats/crosstabs.q:842 src/language/stats/examine.q:1215
+#: src/language/stats/frequencies.q:1116 src/language/stats/frequencies.q:1398
+#: src/ui/gui/psppire-var-sheet.c:533 src/ui/gui/psppire-var-store.c:799
msgid "Missing"
msgstr ""
-#: src/language/stats/crosstabs.q:879 src/language/stats/examine.q:1290
-#: src/language/stats/frequencies.q:1061 src/language/stats/frequencies.q:1062
-#: src/language/stats/frequencies.q:1063
+#: src/language/stats/crosstabs.q:851 src/language/stats/examine.q:1292
+#: src/language/stats/frequencies.q:1050 src/language/stats/frequencies.q:1051
+#: src/language/stats/frequencies.q:1052
msgid "Percent"
msgstr ""
-#: src/language/stats/crosstabs.q:1126
+#: src/language/stats/crosstabs.q:1131
msgid "count"
msgstr ""
-#: src/language/stats/crosstabs.q:1127
+#: src/language/stats/crosstabs.q:1132
msgid "row %"
msgstr ""
-#: src/language/stats/crosstabs.q:1128
+#: src/language/stats/crosstabs.q:1133
msgid "column %"
msgstr ""
-#: src/language/stats/crosstabs.q:1129
+#: src/language/stats/crosstabs.q:1134
msgid "total %"
msgstr ""
-#: src/language/stats/crosstabs.q:1130
+#: src/language/stats/crosstabs.q:1135
msgid "expected"
msgstr ""
-#: src/language/stats/crosstabs.q:1131
+#: src/language/stats/crosstabs.q:1136
msgid "residual"
msgstr ""
-#: src/language/stats/crosstabs.q:1132
+#: src/language/stats/crosstabs.q:1137
msgid "std. resid."
msgstr ""
-#: src/language/stats/crosstabs.q:1133
+#: src/language/stats/crosstabs.q:1138
msgid "adj. resid."
msgstr ""
-#: src/language/stats/crosstabs.q:1163
+#: src/language/stats/crosstabs.q:1227
msgid "Chi-square tests."
msgstr ""
-#: src/language/stats/crosstabs.q:1166 src/language/stats/crosstabs.q:1193
-#: src/language/stats/crosstabs.q:1213 src/language/stats/crosstabs.q:1234
-#: src/language/stats/examine.q:1752 src/ui/gui/checkbox-treeview.c:92
+#: src/language/stats/crosstabs.q:1230 src/language/stats/crosstabs.q:1257
+#: src/language/stats/crosstabs.q:1281 src/language/stats/crosstabs.q:1305
+#: src/language/stats/examine.q:1753 src/ui/gui/checkbox-treeview.c:92
msgid "Statistic"
msgstr ""
-#: src/language/stats/crosstabs.q:1170
+#: src/language/stats/crosstabs.q:1234
msgid "Asymp. Sig. (2-sided)"
msgstr ""
-#: src/language/stats/crosstabs.q:1172
-msgid "Exact. Sig. (2-sided)"
+#: src/language/stats/crosstabs.q:1236
+msgid "Exact Sig. (2-sided)"
msgstr ""
-#: src/language/stats/crosstabs.q:1174
-msgid "Exact. Sig. (1-sided)"
+#: src/language/stats/crosstabs.q:1238
+msgid "Exact Sig. (1-sided)"
msgstr ""
-#: src/language/stats/crosstabs.q:1189
+#: src/language/stats/crosstabs.q:1253
msgid "Symmetric measures."
msgstr ""
-#: src/language/stats/crosstabs.q:1195 src/language/stats/crosstabs.q:1237
+#: src/language/stats/crosstabs.q:1259 src/language/stats/crosstabs.q:1308
msgid "Asymp. Std. Error"
msgstr ""
-#: src/language/stats/crosstabs.q:1196 src/language/stats/crosstabs.q:1238
+#: src/language/stats/crosstabs.q:1260 src/language/stats/crosstabs.q:1309
msgid "Approx. T"
msgstr ""
-#: src/language/stats/crosstabs.q:1197 src/language/stats/crosstabs.q:1239
+#: src/language/stats/crosstabs.q:1261 src/language/stats/crosstabs.q:1310
msgid "Approx. Sig."
msgstr ""
-#: src/language/stats/crosstabs.q:1208
+#: src/language/stats/crosstabs.q:1276
msgid "Risk estimate."
msgstr ""
-#: src/language/stats/crosstabs.q:1212
+#: src/language/stats/crosstabs.q:1280
#, c-format
msgid "95%% Confidence Interval"
msgstr ""
-#: src/language/stats/crosstabs.q:1215 src/language/stats/t-test.q:1030
-#: src/language/stats/t-test.q:1216 src/language/stats/t-test.q:1319
+#: src/language/stats/crosstabs.q:1283 src/language/stats/t-test.q:757
+#: src/language/stats/t-test.q:921 src/language/stats/t-test.q:1014
msgid "Lower"
msgstr ""
-#: src/language/stats/crosstabs.q:1216 src/language/stats/t-test.q:1031
-#: src/language/stats/t-test.q:1217 src/language/stats/t-test.q:1320
+#: src/language/stats/crosstabs.q:1284 src/language/stats/t-test.q:758
+#: src/language/stats/t-test.q:922 src/language/stats/t-test.q:1015
msgid "Upper"
msgstr ""
-#: src/language/stats/crosstabs.q:1230
+#: src/language/stats/crosstabs.q:1301
msgid "Directional measures."
msgstr ""
-#: src/language/stats/crosstabs.q:1235 src/ui/gui/psppire.glade:2124
-#: src/ui/gui/psppire-var-sheet.c:539 src/ui/gui/psppire-var-store.c:785
+#: src/language/stats/crosstabs.q:1306 src/ui/gui/psppire.glade:2099
+#: src/ui/gui/psppire-var-sheet.c:528 src/ui/gui/psppire-var-store.c:794
msgid "Type"
msgstr ""
-#: src/language/stats/crosstabs.q:1991
+#: src/language/stats/crosstabs.q:1774
msgid "Pearson Chi-Square"
msgstr ""
-#: src/language/stats/crosstabs.q:1992
+#: src/language/stats/crosstabs.q:1775
msgid "Likelihood Ratio"
msgstr ""
-#: src/language/stats/crosstabs.q:1993
+#: src/language/stats/crosstabs.q:1776
msgid "Fisher's Exact Test"
msgstr ""
-#: src/language/stats/crosstabs.q:1994
+#: src/language/stats/crosstabs.q:1777
msgid "Continuity Correction"
msgstr ""
-#: src/language/stats/crosstabs.q:1995
+#: src/language/stats/crosstabs.q:1778
msgid "Linear-by-Linear Association"
msgstr ""
-#: src/language/stats/crosstabs.q:2032 src/language/stats/crosstabs.q:2105
-#: src/language/stats/crosstabs.q:2167
+#: src/language/stats/crosstabs.q:1813 src/language/stats/crosstabs.q:1888
+#: src/language/stats/crosstabs.q:1953
msgid "N of Valid Cases"
msgstr ""
-#: src/language/stats/crosstabs.q:2051 src/language/stats/crosstabs.q:2183
+#: src/language/stats/crosstabs.q:1832 src/language/stats/crosstabs.q:1971
msgid "Nominal by Nominal"
msgstr ""
-#: src/language/stats/crosstabs.q:2052 src/language/stats/crosstabs.q:2184
+#: src/language/stats/crosstabs.q:1833 src/language/stats/crosstabs.q:1972
msgid "Ordinal by Ordinal"
msgstr ""
-#: src/language/stats/crosstabs.q:2053
+#: src/language/stats/crosstabs.q:1834
msgid "Interval by Interval"
msgstr ""
-#: src/language/stats/crosstabs.q:2054
+#: src/language/stats/crosstabs.q:1835
msgid "Measure of Agreement"
msgstr ""
-#: src/language/stats/crosstabs.q:2059 src/ui/gui/crosstabs-dialog.c:41
+#: src/language/stats/crosstabs.q:1840 src/ui/gui/crosstabs-dialog.c:41
msgid "Phi"
msgstr ""
-#: src/language/stats/crosstabs.q:2060
+#: src/language/stats/crosstabs.q:1841
msgid "Cramer's V"
msgstr ""
-#: src/language/stats/crosstabs.q:2061
+#: src/language/stats/crosstabs.q:1842
msgid "Contingency Coefficient"
msgstr ""
-#: src/language/stats/crosstabs.q:2062
+#: src/language/stats/crosstabs.q:1843
msgid "Kendall's tau-b"
msgstr ""
-#: src/language/stats/crosstabs.q:2063
+#: src/language/stats/crosstabs.q:1844
msgid "Kendall's tau-c"
msgstr ""
-#: src/language/stats/crosstabs.q:2064 src/ui/gui/crosstabs-dialog.c:48
+#: src/language/stats/crosstabs.q:1845 src/ui/gui/crosstabs-dialog.c:48
msgid "Gamma"
msgstr ""
-#: src/language/stats/crosstabs.q:2065
+#: src/language/stats/crosstabs.q:1846
msgid "Spearman Correlation"
msgstr ""
-#: src/language/stats/crosstabs.q:2066
+#: src/language/stats/crosstabs.q:1847
msgid "Pearson's R"
msgstr ""
-#: src/language/stats/crosstabs.q:2067 src/ui/gui/crosstabs-dialog.c:50
+#: src/language/stats/crosstabs.q:1848 src/ui/gui/crosstabs-dialog.c:50
msgid "Kappa"
msgstr ""
-#: src/language/stats/crosstabs.q:2140
+#: src/language/stats/crosstabs.q:1926
#, c-format
msgid "Odds Ratio for %s (%g / %g)"
msgstr ""
-#: src/language/stats/crosstabs.q:2143
+#: src/language/stats/crosstabs.q:1929
#, c-format
msgid "Odds Ratio for %s (%.*s / %.*s)"
msgstr ""
-#: src/language/stats/crosstabs.q:2151
+#: src/language/stats/crosstabs.q:1937
#, c-format
msgid "For cohort %s = %g"
msgstr ""
-#: src/language/stats/crosstabs.q:2154
+#: src/language/stats/crosstabs.q:1940
#, c-format
msgid "For cohort %s = %.*s"
msgstr ""
-#: src/language/stats/crosstabs.q:2185
+#: src/language/stats/crosstabs.q:1973
msgid "Nominal by Interval"
msgstr ""
-#: src/language/stats/crosstabs.q:2190 src/ui/gui/crosstabs-dialog.c:43
+#: src/language/stats/crosstabs.q:1978 src/ui/gui/crosstabs-dialog.c:43
msgid "Lambda"
msgstr ""
-#: src/language/stats/crosstabs.q:2191
+#: src/language/stats/crosstabs.q:1979
msgid "Goodman and Kruskal tau"
msgstr ""
-#: src/language/stats/crosstabs.q:2192
+#: src/language/stats/crosstabs.q:1980
msgid "Uncertainty Coefficient"
msgstr ""
-#: src/language/stats/crosstabs.q:2193
+#: src/language/stats/crosstabs.q:1981
msgid "Somers' d"
msgstr ""
-#: src/language/stats/crosstabs.q:2194 src/ui/gui/crosstabs-dialog.c:51
+#: src/language/stats/crosstabs.q:1982 src/ui/gui/crosstabs-dialog.c:51
msgid "Eta"
msgstr ""
-#: src/language/stats/crosstabs.q:2199
+#: src/language/stats/crosstabs.q:1987
msgid "Symmetric"
msgstr ""
-#: src/language/stats/crosstabs.q:2200 src/language/stats/crosstabs.q:2201
+#: src/language/stats/crosstabs.q:1988 src/language/stats/crosstabs.q:1989
#, c-format
msgid "%s Dependent"
msgstr ""
-#: src/language/stats/descriptives.c:102 src/language/stats/examine.q:1557
+#: src/language/stats/descriptives.c:102 src/language/stats/examine.q:1559
#: src/language/stats/frequencies.q:123 src/language/stats/npar-summary.c:126
-#: src/language/stats/oneway.q:390 src/language/stats/t-test.q:701
-#: src/language/stats/t-test.q:725 src/language/stats/t-test.q:862
-#: src/language/stats/t-test.q:1213 src/ui/gui/descriptives-dialog.c:39
+#: src/language/stats/oneway.q:390 src/language/stats/t-test.q:507
+#: src/language/stats/t-test.q:527 src/language/stats/t-test.q:625
+#: src/language/stats/t-test.q:918 src/ui/gui/descriptives-dialog.c:39
#: src/ui/gui/frequencies-dialog.c:40
msgid "Mean"
msgstr ""
msgid "Std Dev"
msgstr ""
-#: src/language/stats/descriptives.c:105 src/language/stats/examine.q:1588
+#: src/language/stats/descriptives.c:105 src/language/stats/examine.q:1589
#: src/language/stats/frequencies.q:128 src/ui/gui/descriptives-dialog.c:46
#: src/ui/gui/frequencies-dialog.c:45
msgid "Variance"
msgstr ""
-#: src/language/stats/descriptives.c:106 src/language/stats/examine.q:1624
+#: src/language/stats/descriptives.c:106 src/language/stats/examine.q:1625
#: src/language/stats/frequencies.q:129 src/ui/gui/descriptives-dialog.c:47
#: src/ui/gui/frequencies-dialog.c:50
msgid "Kurtosis"
msgid "S E Kurt"
msgstr ""
-#: src/language/stats/descriptives.c:108 src/language/stats/examine.q:1619
+#: src/language/stats/descriptives.c:108 src/language/stats/examine.q:1620
#: src/language/stats/frequencies.q:131 src/ui/gui/descriptives-dialog.c:48
#: src/ui/gui/frequencies-dialog.c:46
msgid "Skewness"
msgid "S E Skew"
msgstr ""
-#: src/language/stats/descriptives.c:110 src/language/stats/examine.q:1608
+#: src/language/stats/descriptives.c:110 src/language/stats/examine.q:1609
#: src/language/stats/frequencies.q:133 src/ui/gui/descriptives-dialog.c:43
#: src/ui/gui/frequencies-dialog.c:48
msgid "Range"
msgstr ""
-#: src/language/stats/descriptives.c:111 src/language/stats/examine.q:1598
+#: src/language/stats/descriptives.c:111 src/language/stats/examine.q:1599
#: src/language/stats/frequencies.q:134 src/language/stats/npar-summary.c:132
-#: src/language/stats/oneway.q:403 src/ui/gui/descriptives-dialog.c:41
+#: src/language/stats/oneway.q:404 src/ui/gui/descriptives-dialog.c:41
#: src/ui/gui/frequencies-dialog.c:42
msgid "Minimum"
msgstr ""
-#: src/language/stats/descriptives.c:112 src/language/stats/examine.q:1603
+#: src/language/stats/descriptives.c:112 src/language/stats/examine.q:1604
#: src/language/stats/frequencies.q:135 src/language/stats/npar-summary.c:135
-#: src/language/stats/oneway.q:404 src/ui/gui/descriptives-dialog.c:42
+#: src/language/stats/oneway.q:405 src/ui/gui/descriptives-dialog.c:42
#: src/ui/gui/frequencies-dialog.c:43
msgid "Maximum"
msgstr ""
msgid "Valid cases = %g; cases with missing value(s) = %g."
msgstr ""
-#: src/language/stats/examine.q:343 src/language/stats/examine.q:496
-#: src/language/stats/examine.q:1058
+#: src/language/stats/examine.q:346 src/language/stats/examine.q:499
+#: src/language/stats/examine.q:1060
msgid "Not creating plot because data set is empty."
msgstr ""
-#: src/language/stats/examine.q:353
+#: src/language/stats/examine.q:356
#, c-format
msgid "Normal Q-Q Plot of %s"
msgstr ""
-#: src/language/stats/examine.q:354 src/language/stats/examine.q:359
+#: src/language/stats/examine.q:357 src/language/stats/examine.q:362
msgid "Observed Value"
msgstr ""
-#: src/language/stats/examine.q:355
+#: src/language/stats/examine.q:358
msgid "Expected Normal"
msgstr ""
-#: src/language/stats/examine.q:357
+#: src/language/stats/examine.q:360
#, c-format
msgid "Detrended Normal Q-Q Plot of %s"
msgstr ""
-#: src/language/stats/examine.q:360
+#: src/language/stats/examine.q:363
msgid "Dev from Normal"
msgstr ""
-#: src/language/stats/examine.q:513
+#: src/language/stats/examine.q:516
#, c-format
msgid "Boxplot of %s vs. %s"
msgstr ""
-#: src/language/stats/examine.q:517
+#: src/language/stats/examine.q:520
#, c-format
msgid "Boxplot of %s"
msgstr ""
-#: src/language/stats/examine.q:753 src/language/stats/examine.q:766
+#: src/language/stats/examine.q:756 src/language/stats/examine.q:769
#, c-format
msgid "%s and %s are mutually exclusive"
msgstr ""
-#: src/language/stats/examine.q:1270 src/language/stats/reliability.q:685
+#: src/language/stats/examine.q:1272 src/language/stats/reliability.q:686
msgid "Case Processing Summary"
msgstr ""
-#: src/language/stats/examine.q:1562 src/language/stats/oneway.q:398
+#: src/language/stats/examine.q:1564 src/language/stats/oneway.q:398
#, c-format
msgid "%g%% Confidence Interval for Mean"
msgstr ""
-#: src/language/stats/examine.q:1568 src/language/stats/oneway.q:400
+#: src/language/stats/examine.q:1570 src/language/stats/oneway.q:401
msgid "Lower Bound"
msgstr ""
-#: src/language/stats/examine.q:1573 src/language/stats/oneway.q:401
+#: src/language/stats/examine.q:1575 src/language/stats/oneway.q:402
msgid "Upper Bound"
msgstr ""
-#: src/language/stats/examine.q:1578
-#, c-format
-msgid "5%% Trimmed Mean"
+#: src/language/stats/examine.q:1579
+msgid "5% Trimmed Mean"
msgstr ""
-#: src/language/stats/examine.q:1583 src/language/stats/frequencies.q:125
+#: src/language/stats/examine.q:1584 src/language/stats/frequencies.q:125
#: src/ui/gui/frequencies-dialog.c:52
msgid "Median"
msgstr ""
-#: src/language/stats/examine.q:1593 src/language/stats/npar-summary.c:129
-#: src/language/stats/oneway.q:391 src/language/stats/t-test.q:702
-#: src/language/stats/t-test.q:726 src/language/stats/t-test.q:864
-#: src/language/stats/t-test.q:1214
+#: src/language/stats/examine.q:1594 src/language/stats/npar-summary.c:129
+#: src/language/stats/oneway.q:391 src/language/stats/t-test.q:508
+#: src/language/stats/t-test.q:528 src/language/stats/t-test.q:627
+#: src/language/stats/t-test.q:919
msgid "Std. Deviation"
msgstr ""
-#: src/language/stats/examine.q:1613
+#: src/language/stats/examine.q:1614
msgid "Interquartile Range"
msgstr ""
-#: src/language/stats/examine.q:1749 src/language/stats/oneway.q:407
+#: src/language/stats/examine.q:1750 src/language/stats/oneway.q:408
#: src/ui/gui/examine.glade:310
msgid "Descriptives"
msgstr ""
-#: src/language/stats/examine.q:1755 src/language/stats/oneway.q:392
-#: src/language/stats/oneway.q:687 src/language/stats/regression.q:203
+#: src/language/stats/examine.q:1756 src/language/stats/oneway.q:392
+#: src/language/stats/oneway.q:689 src/language/stats/regression.q:203
msgid "Std. Error"
msgstr ""
-#: src/language/stats/examine.q:1852 src/language/stats/examine.q:1857
-#: src/ui/gui/psppire-data-store.c:756 src/ui/gui/psppire-var-store.c:646
-#: src/ui/gui/psppire-var-store.c:656 src/ui/gui/psppire-var-store.c:666
-#: src/ui/gui/psppire-var-store.c:777
-#, c-format
-msgid "%d"
-msgstr ""
-
-#: src/language/stats/examine.q:1938
+#: src/language/stats/examine.q:1939
msgid "Highest"
msgstr ""
-#: src/language/stats/examine.q:1943
+#: src/language/stats/examine.q:1944
msgid "Lowest"
msgstr ""
-#: src/language/stats/examine.q:1950
+#: src/language/stats/examine.q:1951
msgid "Extreme Values"
msgstr ""
-#: src/language/stats/examine.q:1954
+#: src/language/stats/examine.q:1955
msgid "Case Number"
msgstr ""
-#: src/language/stats/examine.q:2076
+#: src/language/stats/examine.q:2077
msgid "Tukey's Hinges"
msgstr ""
-#: src/language/stats/examine.q:2116 src/language/stats/examine.q:2134
-#: src/language/stats/frequencies.q:1418 src/language/stats/npar-summary.c:142
+#: src/language/stats/examine.q:2117 src/language/stats/examine.q:2134
+#: src/language/stats/frequencies.q:1407 src/language/stats/npar-summary.c:142
#: src/ui/gui/examine.glade:333
msgid "Percentiles"
msgstr ""
-#: src/language/stats/examine.q:2123
+#: src/language/stats/examine.q:2124
#, c-format
msgid "%g"
msgstr ""
"FLIP ignores TEMPORARY. Temporary transformations will be made permanent."
msgstr ""
-#: src/language/stats/flip.c:151
+#: src/language/stats/flip.c:147
msgid "Could not create temporary file for FLIP."
msgstr ""
-#: src/language/stats/flip.c:162
-#, c-format
-msgid "Error writing FLIP file: %s."
-msgstr ""
-
-#: src/language/stats/flip.c:262
-#, c-format
-msgid "Could not create acceptable variant for variable %s."
-msgstr ""
-
-#: src/language/stats/flip.c:278
-msgid "Cannot create more than 99999 variable names."
-msgstr ""
-
-#: src/language/stats/flip.c:394
+#: src/language/stats/flip.c:324
#, c-format
msgid "Error rewinding FLIP file: %s."
msgstr ""
-#: src/language/stats/flip.c:401
+#: src/language/stats/flip.c:331
msgid "Error creating FLIP source file."
msgstr ""
-#: src/language/stats/flip.c:414
+#: src/language/stats/flip.c:344
#, c-format
msgid "Error reading FLIP file: %s."
msgstr ""
-#: src/language/stats/flip.c:416
+#: src/language/stats/flip.c:346
msgid "Unexpected end of file reading FLIP file."
msgstr ""
-#: src/language/stats/flip.c:432
+#: src/language/stats/flip.c:362
#, c-format
msgid "Error seeking FLIP source file: %s."
msgstr ""
-#: src/language/stats/flip.c:440
+#: src/language/stats/flip.c:370
#, c-format
msgid "Error writing FLIP source file: %s."
msgstr ""
-#: src/language/stats/flip.c:451
+#: src/language/stats/flip.c:381
#, c-format
msgid "Error closing FLIP source file: %s."
msgstr ""
-#: src/language/stats/flip.c:459
+#: src/language/stats/flip.c:389
#, c-format
msgid "Error rewinding FLIP source file: %s."
msgstr ""
-#: src/language/stats/flip.c:487
+#: src/language/stats/flip.c:419
#, c-format
msgid "Error reading FLIP temporary file: %s."
msgstr ""
-#: src/language/stats/flip.c:490
+#: src/language/stats/flip.c:422
msgid "Unexpected end of file reading FLIP temporary file."
msgstr ""
msgid "S.E. Skew"
msgstr ""
-#: src/language/stats/frequencies.q:409
+#: src/language/stats/frequencies.q:405
msgid ""
"At most one of BARCHART, HISTOGRAM, or HBAR should be given. HBAR will be "
"assumed. Argument values will be given precedence increasing along the "
"order given."
msgstr ""
-#: src/language/stats/frequencies.q:492
+#: src/language/stats/frequencies.q:488
#, c-format
msgid ""
"MAX must be greater than or equal to MIN, if both are specified. However, "
"MIN was specified as %g and MAX as %g. MIN and MAX will be ignored."
msgstr ""
-#: src/language/stats/frequencies.q:757
+#: src/language/stats/frequencies.q:752
#, c-format
msgid "Variable %s specified multiple times on VARIABLES subcommand."
msgstr ""
-#: src/language/stats/frequencies.q:820
+#: src/language/stats/frequencies.q:809
msgid "`)' expected after GROUPED interval list."
msgstr ""
-#: src/language/stats/frequencies.q:832
+#: src/language/stats/frequencies.q:821
#, c-format
msgid "Variables %s specified on GROUPED but not on VARIABLES."
msgstr ""
-#: src/language/stats/frequencies.q:839
+#: src/language/stats/frequencies.q:828
#, c-format
msgid "Variables %s specified multiple times on GROUPED subcommand."
msgstr ""
-#: src/language/stats/frequencies.q:1058 src/language/stats/frequencies.q:1151
-#: src/language/stats/frequencies.q:1152 src/language/stats/frequencies.q:1187
+#: src/language/stats/frequencies.q:1047 src/language/stats/frequencies.q:1140
+#: src/language/stats/frequencies.q:1141 src/language/stats/frequencies.q:1176
msgid "Cum"
msgstr ""
-#: src/language/stats/frequencies.q:1060 src/output/charts/plot-hist.c:140
+#: src/language/stats/frequencies.q:1049 src/output/charts/plot-hist.c:140
msgid "Frequency"
msgstr ""
-#: src/language/stats/frequencies.q:1081
+#: src/language/stats/frequencies.q:1070
msgid "Value Label"
msgstr ""
-#: src/language/stats/frequencies.q:1185
+#: src/language/stats/frequencies.q:1174
msgid "Freq"
msgstr ""
-#: src/language/stats/frequencies.q:1186 src/language/stats/frequencies.q:1188
+#: src/language/stats/frequencies.q:1175 src/language/stats/frequencies.q:1177
msgid "Pct"
msgstr ""
-#: src/language/stats/frequencies.q:1381
+#: src/language/stats/frequencies.q:1370
#, c-format
msgid "No valid data for variable %s; statistics not displayed."
msgstr ""
-#: src/language/stats/frequencies.q:1422
+#: src/language/stats/frequencies.q:1411
msgid "50 (Median)"
msgstr ""
"exactly %d values."
msgstr ""
-#: src/language/stats/npar.q:441 src/language/stats/t-test.q:501
+#: src/language/stats/npar.q:441 src/language/stats/t-test.q:379
#, c-format
msgid ""
"PAIRED was specified but the number of variables preceding WITH (%zu) did "
msgstr ""
#: src/language/stats/oneway.q:280 src/language/stats/regression.q:304
-#: src/language/stats/t-test.q:1023
+#: src/language/stats/t-test.q:750
msgid "F"
msgstr ""
-#: src/language/stats/oneway.q:281 src/language/stats/oneway.q:538
+#: src/language/stats/oneway.q:281 src/language/stats/oneway.q:539
#: src/language/stats/regression.q:206 src/language/stats/regression.q:305
msgid "Significance"
msgstr ""
msgid "ANOVA"
msgstr ""
-#: src/language/stats/oneway.q:535
+#: src/language/stats/oneway.q:536
msgid "Levene Statistic"
msgstr ""
-#: src/language/stats/oneway.q:536
+#: src/language/stats/oneway.q:537
msgid "df1"
msgstr ""
-#: src/language/stats/oneway.q:537
+#: src/language/stats/oneway.q:538
msgid "df2"
msgstr ""
-#: src/language/stats/oneway.q:540
+#: src/language/stats/oneway.q:541
msgid "Test of Homogeneity of Variances"
msgstr ""
msgid "Contrast Coefficients"
msgstr ""
-#: src/language/stats/oneway.q:610 src/language/stats/oneway.q:685
+#: src/language/stats/oneway.q:610 src/language/stats/oneway.q:687
msgid "Contrast"
msgstr ""
-#: src/language/stats/oneway.q:683
+#: src/language/stats/oneway.q:685
msgid "Contrast Tests"
msgstr ""
-#: src/language/stats/oneway.q:686
+#: src/language/stats/oneway.q:688
msgid "Value of Contrast"
msgstr ""
-#: src/language/stats/oneway.q:688 src/language/stats/regression.q:205
-#: src/language/stats/t-test.q:1025 src/language/stats/t-test.q:1218
-#: src/language/stats/t-test.q:1315
+#: src/language/stats/oneway.q:690 src/language/stats/regression.q:205
+#: src/language/stats/t-test.q:752 src/language/stats/t-test.q:923
+#: src/language/stats/t-test.q:1010
msgid "t"
msgstr ""
-#: src/language/stats/oneway.q:690 src/language/stats/t-test.q:1027
-#: src/language/stats/t-test.q:1220 src/language/stats/t-test.q:1317
+#: src/language/stats/oneway.q:692 src/language/stats/t-test.q:754
+#: src/language/stats/t-test.q:925 src/language/stats/t-test.q:1012
msgid "Sig. (2-tailed)"
msgstr ""
-#: src/language/stats/oneway.q:734
+#: src/language/stats/oneway.q:736
msgid "Assume equal variances"
msgstr ""
-#: src/language/stats/oneway.q:738
+#: src/language/stats/oneway.q:740
msgid "Does not assume equal"
msgstr ""
msgid "%s into %s(%s of %s using %s BY %s)"
msgstr ""
-#: src/language/stats/rank.q:729
+#: src/language/stats/rank.q:728
#, c-format
msgid "%s into %s(%s of %s BY %s)"
msgstr ""
-#: src/language/stats/rank.q:743
+#: src/language/stats/rank.q:741
#, c-format
msgid "%s into %s(%s of %s using %s)"
msgstr ""
-#: src/language/stats/rank.q:753
+#: src/language/stats/rank.q:750
#, c-format
msgid "%s into %s(%s of %s)"
msgstr ""
-#: src/language/stats/rank.q:766
+#: src/language/stats/rank.q:762
msgid ""
"FRACTION has been specified, but NORMAL and PROPORTION rank functions have "
"not been requested. The FRACTION subcommand will be ignored."
msgstr ""
-#: src/language/stats/rank.q:857
+#: src/language/stats/rank.q:853
#, c-format
msgid "Variable %s already exists."
msgstr ""
-#: src/language/stats/rank.q:862
+#: src/language/stats/rank.q:858
msgid "Too many variables in INTO clause."
msgstr ""
msgid "Dependent variable must be numeric."
msgstr ""
-#: src/language/stats/reliability.q:432
+#: src/language/stats/reliability.q:433
msgid "Reliability Statistics"
msgstr ""
-#: src/language/stats/reliability.q:475
+#: src/language/stats/reliability.q:476
msgid "Item-Total Statistics"
msgstr ""
-#: src/language/stats/reliability.q:497
+#: src/language/stats/reliability.q:498
msgid "Scale Mean if Item Deleted"
msgstr ""
-#: src/language/stats/reliability.q:500
+#: src/language/stats/reliability.q:501
msgid "Scale Variance if Item Deleted"
msgstr ""
-#: src/language/stats/reliability.q:503
+#: src/language/stats/reliability.q:504
msgid "Corrected Item-Total Correlation"
msgstr ""
-#: src/language/stats/reliability.q:506
+#: src/language/stats/reliability.q:507
msgid "Cronbach's Alpha if Item Deleted"
msgstr ""
-#: src/language/stats/reliability.q:556 src/language/stats/reliability.q:575
+#: src/language/stats/reliability.q:557 src/language/stats/reliability.q:576
msgid "Cronbach's Alpha"
msgstr ""
-#: src/language/stats/reliability.q:559
+#: src/language/stats/reliability.q:560
msgid "N of items"
msgstr ""
-#: src/language/stats/reliability.q:578
+#: src/language/stats/reliability.q:579
msgid "Part 1"
msgstr ""
-#: src/language/stats/reliability.q:584 src/language/stats/reliability.q:595
+#: src/language/stats/reliability.q:585 src/language/stats/reliability.q:596
msgid "N of Items"
msgstr ""
-#: src/language/stats/reliability.q:589
+#: src/language/stats/reliability.q:590
msgid "Part 2"
msgstr ""
-#: src/language/stats/reliability.q:600
+#: src/language/stats/reliability.q:601
msgid "Total N of Items"
msgstr ""
-#: src/language/stats/reliability.q:603
+#: src/language/stats/reliability.q:604
msgid "Correlation Between Forms"
msgstr ""
-#: src/language/stats/reliability.q:607
+#: src/language/stats/reliability.q:608
msgid "Spearman-Brown Coefficient"
msgstr ""
-#: src/language/stats/reliability.q:610
+#: src/language/stats/reliability.q:611
msgid "Equal Length"
msgstr ""
-#: src/language/stats/reliability.q:613
+#: src/language/stats/reliability.q:614
msgid "Unequal Length"
msgstr ""
-#: src/language/stats/reliability.q:617
+#: src/language/stats/reliability.q:618
msgid "Guttman Split-Half Coefficient"
msgstr ""
-#: src/language/stats/reliability.q:714
+#: src/language/stats/reliability.q:715
msgid "Excluded"
msgstr ""
#: src/language/stats/reliability.q:723
-#, c-format
-msgid "%%"
+msgid "%"
msgstr ""
-#: src/language/stats/sign.c:90
+#: src/language/stats/sign.c:91
msgid "Negative Differences"
msgstr ""
-#: src/language/stats/sign.c:91
+#: src/language/stats/sign.c:92
msgid "Positive Differences"
msgstr ""
-#: src/language/stats/sign.c:92 src/language/stats/wilcoxon.c:245
+#: src/language/stats/sign.c:93 src/language/stats/wilcoxon.c:261
msgid "Ties"
msgstr ""
-#: src/language/stats/sign.c:133
+#: src/language/stats/sign.c:134 src/language/stats/wilcoxon.c:331
msgid "Exact Sig. (2-tailed)"
msgstr ""
-#: src/language/stats/sign.c:136
+#: src/language/stats/sign.c:137 src/language/stats/wilcoxon.c:332
msgid "Exact Sig. (1-tailed)"
msgstr ""
-#: src/language/stats/sign.c:139 src/language/stats/wilcoxon.c:319
+#: src/language/stats/sign.c:140 src/language/stats/wilcoxon.c:335
msgid "Point Probability"
msgstr ""
msgid "Variable %s specified twice in sort criteria."
msgstr ""
-#: src/language/stats/t-test.q:280
-msgid "TESTVAL, GROUPS and PAIRS subcommands are mutually exclusive."
+#: src/language/stats/t-test.q:189
+msgid "Exactly one of TESTVAL, GROUPS and PAIRS subcommands must be specified."
msgstr ""
-#: src/language/stats/t-test.q:298
-msgid "VARIABLES subcommand is not appropriate with PAIRS"
+#: src/language/stats/t-test.q:210
+msgid "VARIABLES subcommand may not be used with PAIRS."
msgstr ""
-#: src/language/stats/t-test.q:336
+#: src/language/stats/t-test.q:229
msgid "One or more VARIABLES must be specified."
msgstr ""
-#: src/language/stats/t-test.q:386
-#, c-format
-msgid "Long string variable %s is not valid here."
-msgstr ""
-
-#: src/language/stats/t-test.q:406 src/language/stats/t-test.q:420
+#: src/language/stats/t-test.q:323
msgid ""
"When applying GROUPS to a string variable, two values must be specified."
msgstr ""
-#: src/language/stats/t-test.q:518
+#: src/language/stats/t-test.q:394
msgid "At least two variables must be specified on PAIRS."
msgstr ""
-#: src/language/stats/t-test.q:698
+#: src/language/stats/t-test.q:504
msgid "One-Sample Statistics"
msgstr ""
-#: src/language/stats/t-test.q:703 src/language/stats/t-test.q:727
-#: src/language/stats/t-test.q:865
+#: src/language/stats/t-test.q:509 src/language/stats/t-test.q:529
+#: src/language/stats/t-test.q:628
msgid "SE. Mean"
msgstr ""
-#: src/language/stats/t-test.q:722
+#: src/language/stats/t-test.q:523
msgid "Group Statistics"
msgstr ""
-#: src/language/stats/t-test.q:859
+#: src/language/stats/t-test.q:622
msgid "Paired Sample Statistics"
msgstr ""
-#: src/language/stats/t-test.q:885 src/language/stats/t-test.q:1243
-#: src/language/stats/t-test.q:1442
+#: src/language/stats/t-test.q:642 src/language/stats/t-test.q:945
+#: src/language/stats/t-test.q:1119
#, c-format
msgid "Pair %d"
msgstr ""
-#: src/language/stats/t-test.q:1011
+#: src/language/stats/t-test.q:738
msgid "Independent Samples Test"
msgstr ""
-#: src/language/stats/t-test.q:1019
+#: src/language/stats/t-test.q:746
msgid "Levene's Test for Equality of Variances"
msgstr ""
-#: src/language/stats/t-test.q:1021
+#: src/language/stats/t-test.q:748
msgid "t-test for Equality of Means"
msgstr ""
-#: src/language/stats/t-test.q:1024 src/language/stats/t-test.q:1427
+#: src/language/stats/t-test.q:751 src/language/stats/t-test.q:1107
msgid "Sig."
msgstr ""
-#: src/language/stats/t-test.q:1028 src/language/stats/t-test.q:1318
+#: src/language/stats/t-test.q:755 src/language/stats/t-test.q:1013
msgid "Mean Difference"
msgstr ""
-#: src/language/stats/t-test.q:1029
+#: src/language/stats/t-test.q:756
msgid "Std. Error Difference"
msgstr ""
-#: src/language/stats/t-test.q:1034 src/language/stats/t-test.q:1210
-#: src/language/stats/t-test.q:1310
+#: src/language/stats/t-test.q:761 src/language/stats/t-test.q:915
+#: src/language/stats/t-test.q:1005
#, c-format
msgid "%g%% Confidence Interval of the Difference"
msgstr ""
-#: src/language/stats/t-test.q:1090
+#: src/language/stats/t-test.q:815
msgid "Equal variances assumed"
msgstr ""
-#: src/language/stats/t-test.q:1142
+#: src/language/stats/t-test.q:861
msgid "Equal variances not assumed"
msgstr ""
-#: src/language/stats/t-test.q:1200
+#: src/language/stats/t-test.q:905
msgid "Paired Samples Test"
msgstr ""
-#: src/language/stats/t-test.q:1203
+#: src/language/stats/t-test.q:908
msgid "Paired Differences"
msgstr ""
-#: src/language/stats/t-test.q:1215
+#: src/language/stats/t-test.q:920
msgid "Std. Error Mean"
msgstr ""
-#: src/language/stats/t-test.q:1299
+#: src/language/stats/t-test.q:994
msgid "One-Sample Test"
msgstr ""
-#: src/language/stats/t-test.q:1304
+#: src/language/stats/t-test.q:999
#, c-format
msgid "Test Value = %f"
msgstr ""
-#: src/language/stats/t-test.q:1422
+#: src/language/stats/t-test.q:1102
msgid "Paired Samples Correlations"
msgstr ""
-#: src/language/stats/t-test.q:1426
+#: src/language/stats/t-test.q:1106
msgid "Correlation"
msgstr ""
-#: src/language/stats/t-test.q:1445
+#: src/language/stats/t-test.q:1121
#, c-format
msgid "%s & %s"
msgstr ""
-#: src/language/stats/wilcoxon.c:216
+#: src/language/stats/wilcoxon.c:232
msgid "Ranks"
msgstr ""
-#: src/language/stats/wilcoxon.c:230
+#: src/language/stats/wilcoxon.c:246
msgid "Mean Rank"
msgstr ""
-#: src/language/stats/wilcoxon.c:231
+#: src/language/stats/wilcoxon.c:247
msgid "Sum of Ranks"
msgstr ""
-#: src/language/stats/wilcoxon.c:243
+#: src/language/stats/wilcoxon.c:259
msgid "Negative Ranks"
msgstr ""
-#: src/language/stats/wilcoxon.c:244
+#: src/language/stats/wilcoxon.c:260
msgid "Positive Ranks"
msgstr ""
-#: src/language/stats/wilcoxon.c:310
+#: src/language/stats/wilcoxon.c:326
msgid "Z"
msgstr ""
-#: src/language/stats/wilcoxon.c:311
-msgid "Asymp. Sig (2-tailed)"
-msgstr ""
-
-#: src/language/stats/wilcoxon.c:315
-msgid "Exact Sig (2-tailed)"
-msgstr ""
-
-#: src/language/stats/wilcoxon.c:316
-msgid "Exact Sig (1-tailed)"
+#: src/language/stats/wilcoxon.c:327
+msgid "Asymp. Sig. (2-tailed)"
msgstr ""
#: src/language/syntax-file.c:88
msgid "Opening `%s': %s."
msgstr ""
-#: src/language/syntax-file.c:106
+#: src/language/syntax-file.c:107
#, c-format
msgid "Reading `%s': %s."
msgstr ""
-#: src/language/syntax-file.c:126
+#: src/language/syntax-file.c:127
#, c-format
msgid "Closing `%s': %s."
msgstr ""
-#: src/language/tests/check-model.q:138
-msgid "PATH and SEARCH subcommands are mutually exclusive. Ignoring PATH."
-msgstr ""
-
-#: src/language/tests/check-model.q:156
-msgid "At least one value must be specified on PATH."
-msgstr ""
-
-#: src/language/tests/check-model.q:167
-#, c-format
-msgid "Hash bits adjusted to %d."
-msgstr ""
-
-#: src/language/tests/check-model.q:208
-#, c-format
-msgid "error opening \"%s\" for writing"
-msgstr ""
-
#: src/language/tests/float-format.c:124
#, c-format
msgid "%zu-byte string needed but %zu-byte string supplied."
"is of type string."
msgstr ""
-#: src/language/utilities/set.q:522
-msgid "BLANKS is SYSMIS."
-msgstr ""
-
-#: src/language/utilities/set.q:524
-#, c-format
-msgid "BLANKS is %g."
+#: src/language/utilities/set.q:668
+msgid "ISL (32-bit IEEE 754 single, little-endian)"
msgstr ""
-#: src/language/utilities/set.q:559
-#, c-format
-msgid "%s is \"%s\"."
+#: src/language/utilities/set.q:671
+msgid "ISB (32-bit IEEE 754 single, big-endian)"
msgstr ""
-#: src/language/utilities/set.q:595
-#, c-format
-msgid "DECIMAL is \"%c\"."
-msgstr ""
-
-#: src/language/utilities/set.q:601
-#, c-format
-msgid "ENDCMD is \"%c\"."
+#: src/language/utilities/set.q:674
+msgid "IDL (64-bit IEEE 754 double, little-endian)"
msgstr ""
-#: src/language/utilities/set.q:609
-#, c-format
-msgid "ERRORS is \"%s\"."
+#: src/language/utilities/set.q:677
+msgid "IDB (64-bit IEEE 754 double, big-endian)"
msgstr ""
-#: src/language/utilities/set.q:620
-#, c-format
-msgid "FORMAT is %s."
+#: src/language/utilities/set.q:681
+msgid "VF (32-bit VAX F, VAX-endian)"
msgstr ""
-#: src/language/utilities/set.q:626
-#, c-format
-msgid "LENGTH is %d."
+#: src/language/utilities/set.q:684
+msgid "VD (64-bit VAX D, VAX-endian)"
msgstr ""
-#: src/language/utilities/set.q:632
-#, c-format
-msgid "LOCALE is %s"
+#: src/language/utilities/set.q:687
+msgid "VG (64-bit VAX G, VAX-endian)"
msgstr ""
-#: src/language/utilities/set.q:638
-#, c-format
-msgid "MXERRS is %d."
+#: src/language/utilities/set.q:691
+msgid "ZS (32-bit IBM Z hexadecimal short, big-endian)"
msgstr ""
-#: src/language/utilities/set.q:644
-#, c-format
-msgid "MXLOOPS is %d."
+#: src/language/utilities/set.q:694
+msgid "ZL (64-bit IBM Z hexadecimal long, big-endian)"
msgstr ""
-#: src/language/utilities/set.q:650
+#: src/language/utilities/set.q:793
#, c-format
-msgid "MXWARNS is %d."
-msgstr ""
-
-#: src/language/utilities/set.q:657 src/language/utilities/set.q:708
-#, c-format
-msgid "%s is %s (%s)."
-msgstr ""
-
-#: src/language/utilities/set.q:729
-msgid "SCOMPRESSION is ON."
-msgstr ""
-
-#: src/language/utilities/set.q:731
-msgid "SCOMPRESSION is OFF."
-msgstr ""
-
-#: src/language/utilities/set.q:738
-msgid "UNDEFINED is WARN."
-msgstr ""
-
-#: src/language/utilities/set.q:740
-msgid "UNDEFINED is NOWARN."
-msgstr ""
-
-#: src/language/utilities/set.q:748
-msgid "WEIGHT is off."
-msgstr ""
-
-#: src/language/utilities/set.q:750
-#, c-format
-msgid "WEIGHT is variable %s."
-msgstr ""
-
-#: src/language/utilities/set.q:768
-#, c-format
-msgid "WIDTH is %d."
+msgid "%s is %s."
msgstr ""
#: src/language/utilities/title.c:68
"When executing COMPUTE: %g is not a valid value as an index into vector %s."
msgstr ""
-#: src/language/xforms/compute.c:354
+#: src/language/xforms/compute.c:353
#, c-format
msgid "There is no vector named %s."
msgstr ""
msgid "Destination cannot be a string variable."
msgstr ""
-#: src/language/xforms/recode.c:251
+#: src/language/xforms/recode.c:245
msgid ""
"Inconsistent target variable types. Target variables must be all numeric or "
"all string."
msgstr ""
-#: src/language/xforms/recode.c:272
+#: src/language/xforms/recode.c:266
msgid "CONVERT requires string input values and numeric output values."
msgstr ""
-#: src/language/xforms/recode.c:329
+#: src/language/xforms/recode.c:321
msgid "THRU is not allowed with string variables."
msgstr ""
-#: src/language/xforms/recode.c:407
+#: src/language/xforms/recode.c:400
msgid "expecting output value"
msgstr ""
-#: src/language/xforms/recode.c:456
+#: src/language/xforms/recode.c:457
#, c-format
msgid ""
"%zu variable(s) cannot be recoded into %zu variable(s). Specify the same "
"number of variables as source and target variables."
msgstr ""
-#: src/language/xforms/recode.c:471
+#: src/language/xforms/recode.c:472
#, c-format
msgid ""
"There is no variable named %s. (All string variables specified on INTO must "
"already exist. Use the STRING command to create a string variable.)"
msgstr ""
-#: src/language/xforms/recode.c:487
+#: src/language/xforms/recode.c:488
#, c-format
msgid "INTO is required with %s input values and %s output values."
msgstr ""
-#: src/language/xforms/recode.c:500
+#: src/language/xforms/recode.c:501
#, c-format
msgid "Type mismatch. Cannot store %s data in %s variable %s."
msgstr ""
msgid "hash table:"
msgstr ""
+#: src/libpspp/tmpfile.c:55
+#, c-format
+msgid "failed to create temporary file"
+msgstr ""
+
+#: src/libpspp/tmpfile.c:96
+#, c-format
+msgid "seeking in temporary file"
+msgstr ""
+
+#: src/libpspp/tmpfile.c:115
+#, c-format
+msgid "reading temporary file"
+msgstr ""
+
+#: src/libpspp/tmpfile.c:117
+#, c-format
+msgid "unexpected end of file reading temporary file"
+msgstr ""
+
+#: src/libpspp/tmpfile.c:136
+#, c-format
+msgid "writing to temporary file"
+msgstr ""
+
#: src/math/percentiles.c:35
msgid "HAverage"
msgstr ""
"bad box: (%d+%d=%d,%d+%d=%d)-(%d+%d=%d,%d+%d=%d) in table size (%d,%d)\n"
msgstr ""
+#: src/ui/gui/about.c:64
+msgid "A program for the analysis of sampled data"
+msgstr ""
+
+#: src/ui/gui/about.c:73
+msgid "translator-credits"
+msgstr "John Darrington"
+
#: src/ui/gui/comments-dialog.c:58
#, c-format
msgid "Column Number: %d"
#: src/ui/gui/crosstabs-dialog.c:53 src/ui/gui/crosstabs-dialog.c:64
#: src/ui/gui/crosstabs-dialog.c:99 src/ui/gui/crosstabs-dialog.c:107
-#: src/ui/gui/psppire-var-store.c:559 src/ui/gui/var-display.c:16
+#: src/ui/gui/psppire-var-store.c:568 src/ui/gui/var-display.c:16
#: src/ui/gui/variable-info-dialog.c:40
msgid "None"
msgstr ""
msgid "Pivot"
msgstr ""
-#: src/ui/gui/crosstabs.glade:253 src/ui/gui/psppire.glade:781
+#: src/ui/gui/crosstabs.glade:253 src/ui/gui/psppire.glade:756
msgid "Ascending"
msgstr ""
msgstr ""
#: src/ui/gui/data-editor.glade:174 src/ui/gui/data-editor.glade:843
-#: src/ui/gui/psppire-data-window.c:844 src/ui/gui/psppire-data-window.c:934
+#: src/ui/gui/psppire-data-window.c:843 src/ui/gui/psppire-data-window.c:933
msgid "Insert Variable"
msgstr ""
msgid "Open"
msgstr ""
-#: src/ui/gui/data-editor.glade:712 src/ui/gui/psppire-data-window.c:582
+#: src/ui/gui/data-editor.glade:712 src/ui/gui/psppire-data-window.c:581
msgid "Save"
msgstr ""
msgid "Find"
msgstr ""
-#: src/ui/gui/data-editor.glade:831 src/ui/gui/psppire-data-window.c:898
+#: src/ui/gui/data-editor.glade:831 src/ui/gui/psppire-data-window.c:897
msgid "Insert Case"
msgstr ""
msgid "Missing Values"
msgstr ""
-#: src/ui/gui/find-dialog.c:657
+#: src/ui/gui/find-dialog.c:658
#, c-format
msgid "Bad regular expression: %s"
msgstr ""
msgid "Standard error of the kurtosis"
msgstr ""
-#: src/ui/gui/frequencies.glade:98 src/ui/gui/psppire.glade:277
+#: src/ui/gui/frequencies.glade:98 src/ui/gui/psppire.glade:252
#: src/ui/gui/rank.glade:103
msgid "Variable(s):"
msgstr ""
msgid "Variable View"
msgstr ""
-#: src/ui/gui/psppire-data-store.c:746
+#: src/ui/gui/psppire-data-store.c:761
msgid "var"
msgstr ""
+#: src/ui/gui/psppire-data-store.c:771 src/ui/gui/psppire-var-store.c:655
+#: src/ui/gui/psppire-var-store.c:665 src/ui/gui/psppire-var-store.c:675
+#: src/ui/gui/psppire-var-store.c:786
+#, c-format
+msgid "%d"
+msgstr ""
+
#: src/ui/gui/psppire-data-window.c:213
msgid "Transformations Pending"
msgstr ""
msgid "Weight by %s"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:387 src/ui/gui/psppire-data-window.c:590
+#: src/ui/gui/psppire-data-window.c:387 src/ui/gui/psppire-data-window.c:589
msgid "System Files (*.sav)"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:393 src/ui/gui/psppire-data-window.c:596
+#: src/ui/gui/psppire-data-window.c:393 src/ui/gui/psppire-data-window.c:595
msgid "Portable Files (*.por) "
msgstr ""
-#: src/ui/gui/psppire-data-window.c:399 src/ui/gui/psppire-data-window.c:602
+#: src/ui/gui/psppire-data-window.c:399 src/ui/gui/psppire-data-window.c:601
#: src/ui/gui/psppire-syntax-window.c:298
#: src/ui/gui/psppire-syntax-window.c:385
msgid "All Files"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:610
+#: src/ui/gui/psppire-data-window.c:609
msgid "System File"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:615
+#: src/ui/gui/psppire-data-window.c:614
msgid "Portable File"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:765
+#: src/ui/gui/psppire-data-window.c:764
msgid "Font Selection"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:833
+#: src/ui/gui/psppire-data-window.c:832
msgid "Sort Ascending"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:839
+#: src/ui/gui/psppire-data-window.c:838
msgid "Sort Descending"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:847 src/ui/gui/psppire-data-window.c:901
-#: src/ui/gui/psppire-data-window.c:937 src/ui/gui/psppire-data-window.c:1302
-#: src/ui/gui/psppire-data-window.c:1320
+#: src/ui/gui/psppire-data-window.c:846 src/ui/gui/psppire-data-window.c:900
+#: src/ui/gui/psppire-data-window.c:936 src/ui/gui/psppire-data-window.c:1301
+#: src/ui/gui/psppire-data-window.c:1319
msgid "Clear"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1179
+#: src/ui/gui/psppire-data-window.c:1178
msgid "Open a data file"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1197
+#: src/ui/gui/psppire-data-window.c:1196
msgid "New data file"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1212
+#: src/ui/gui/psppire-data-window.c:1211
msgid "Import text data file"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1228 src/ui/gui/psppire-data-window.c:1245
+#: src/ui/gui/psppire-data-window.c:1227 src/ui/gui/psppire-data-window.c:1244
msgid "Save data to file"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1244
+#: src/ui/gui/psppire-data-window.c:1243
msgid "Save As"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1283
+#: src/ui/gui/psppire-data-window.c:1282
msgid "Show/hide value labels"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1303
+#: src/ui/gui/psppire-data-window.c:1302
msgid "Delete the cases at the selected position(s)"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1321
+#: src/ui/gui/psppire-data-window.c:1320
msgid "Delete the variables at the selected position(s)"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1339
+#: src/ui/gui/psppire-data-window.c:1338
msgid "Create a new variable at the current position"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1354
+#: src/ui/gui/psppire-data-window.c:1353
msgid "Create a new case at the current position"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1370
+#: src/ui/gui/psppire-data-window.c:1369
msgid "Jump to a Case in the Data Sheet"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1386
+#: src/ui/gui/psppire-data-window.c:1385
msgid "Weight cases by variable"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1400
+#: src/ui/gui/psppire-data-window.c:1399
msgid "Transpose the cases with the variables"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1414
+#: src/ui/gui/psppire-data-window.c:1413
msgid "Split the active file"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1429
+#: src/ui/gui/psppire-data-window.c:1428
msgid "Sort cases in the active file"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1443
+#: src/ui/gui/psppire-data-window.c:1442
msgid "Select cases from the active file"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1457
+#: src/ui/gui/psppire-data-window.c:1456
msgid "Compute new values for a variable"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1471
+#: src/ui/gui/psppire-data-window.c:1470
msgid "Perform one way analysis of variance"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1486
+#: src/ui/gui/psppire-data-window.c:1485
msgid "Calculate T Test for samples from independent groups"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1500
+#: src/ui/gui/psppire-data-window.c:1499
msgid "Calculate T Test for paired samples"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1514
+#: src/ui/gui/psppire-data-window.c:1513
msgid "Calculate T Test for sample from a single distribution"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1529
+#: src/ui/gui/psppire-data-window.c:1528
msgid "Commentary text for the data file"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1555
+#: src/ui/gui/psppire-data-window.c:1554
msgid "Rank Cases"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1569
+#: src/ui/gui/psppire-data-window.c:1568
msgid "Recode values into the same variables"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1583
+#: src/ui/gui/psppire-data-window.c:1582
msgid "Recode values into different variables"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1597
+#: src/ui/gui/psppire-data-window.c:1596
msgid "Jump to variable"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1610
+#: src/ui/gui/psppire-data-window.c:1609
msgid "Calculate descriptive statistics (mean, variance, ...)"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1624
+#: src/ui/gui/psppire-data-window.c:1623
msgid "Generate frequency statistics"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1638
+#: src/ui/gui/psppire-data-window.c:1637
msgid "Generate crosstabulations"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1653
+#: src/ui/gui/psppire-data-window.c:1652
msgid "Examine Data by Factors"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1667
+#: src/ui/gui/psppire-data-window.c:1666
msgid "Estimate parameters of the linear model"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1681 src/ui/gui/reliability.glade:7
+#: src/ui/gui/psppire-data-window.c:1680 src/ui/gui/reliability.glade:7
msgid "Reliability Analysis"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1844
+#: src/ui/gui/psppire-data-window.c:1843
msgid "Split the window vertically and horizontally"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1886
+#: src/ui/gui/psppire-data-window.c:1885
msgid "Data Editor"
msgstr ""
msgid "Prefer variable labels"
msgstr ""
-#: src/ui/gui/psppire.glade:10
-msgid ""
-"This is beta status software. Please report bugs to bug-gnu-pspp@gnu.org"
-msgstr ""
-
-#: src/ui/gui/psppire.glade:72 src/ui/gui/psppire.glade:155
+#: src/ui/gui/psppire.glade:47 src/ui/gui/psppire.glade:130
#: src/ui/gui/weight-cases-dialog.c:79
msgid "Do not weight cases"
msgstr ""
-#: src/ui/gui/psppire.glade:83
+#: src/ui/gui/psppire.glade:58
msgid "Weight cases by"
msgstr ""
-#: src/ui/gui/psppire.glade:108
+#: src/ui/gui/psppire.glade:83
msgid "Frequency Variable"
msgstr ""
-#: src/ui/gui/psppire.glade:148
+#: src/ui/gui/psppire.glade:123
msgid "Current Status: "
msgstr ""
-#: src/ui/gui/psppire.glade:244
+#: src/ui/gui/psppire.glade:219
msgid "Name Variable:"
msgstr ""
-#: src/ui/gui/psppire.glade:429
+#: src/ui/gui/psppire.glade:404
msgid "Analyze all cases. Do not create groups."
msgstr "Analyse all cases. Do not create groups."
-#: src/ui/gui/psppire.glade:440
+#: src/ui/gui/psppire.glade:415
msgid "Compare groups."
msgstr ""
-#: src/ui/gui/psppire.glade:454
+#: src/ui/gui/psppire.glade:429
msgid "Organize output by groups."
msgstr "Organise output by groups."
-#: src/ui/gui/psppire.glade:502
+#: src/ui/gui/psppire.glade:477
msgid "Groups based on:"
msgstr ""
-#: src/ui/gui/psppire.glade:565
+#: src/ui/gui/psppire.glade:540
msgid "Sort the file by grouping variables."
msgstr ""
-#: src/ui/gui/psppire.glade:577
+#: src/ui/gui/psppire.glade:552
msgid "File is already sorted."
msgstr ""
-#: src/ui/gui/psppire.glade:622
+#: src/ui/gui/psppire.glade:597
msgid "Current Status : "
msgstr ""
-#: src/ui/gui/psppire.glade:630
+#: src/ui/gui/psppire.glade:605
msgid "Analysis by groups is off"
msgstr ""
-#: src/ui/gui/psppire.glade:729
+#: src/ui/gui/psppire.glade:704
msgid "Sort by:"
msgstr ""
-#: src/ui/gui/psppire.glade:792
+#: src/ui/gui/psppire.glade:767
msgid "Descending"
msgstr ""
-#: src/ui/gui/psppire.glade:809
+#: src/ui/gui/psppire.glade:784
msgid "Sort Order"
msgstr ""
-#: src/ui/gui/psppire.glade:878
+#: src/ui/gui/psppire.glade:853
msgid "Target Variable:"
msgstr ""
-#: src/ui/gui/psppire.glade:909
+#: src/ui/gui/psppire.glade:884
msgid "Type & Label"
msgstr ""
-#: src/ui/gui/psppire.glade:949
+#: src/ui/gui/psppire.glade:924
msgid "="
msgstr ""
-#: src/ui/gui/psppire.glade:995
+#: src/ui/gui/psppire.glade:970
msgid "Numeric Expressions:"
msgstr ""
-#: src/ui/gui/psppire.glade:1049
+#: src/ui/gui/psppire.glade:1024
msgid "Functions:"
msgstr ""
-#: src/ui/gui/psppire.glade:1112 src/ui/gui/psppire.glade:1516
+#: src/ui/gui/psppire.glade:1087 src/ui/gui/psppire.glade:1491
#: src/ui/gui/recode.glade:731
msgid "If..."
msgstr ""
-#: src/ui/gui/psppire.glade:1345
+#: src/ui/gui/psppire.glade:1320
msgid "Use filter variable"
msgstr ""
-#: src/ui/gui/psppire.glade:1398
+#: src/ui/gui/psppire.glade:1373
msgid "Based on time or case range"
msgstr ""
-#: src/ui/gui/psppire.glade:1411
+#: src/ui/gui/psppire.glade:1386
msgid "Range..."
msgstr ""
-#: src/ui/gui/psppire.glade:1450
+#: src/ui/gui/psppire.glade:1425
msgid "Random sample of cases"
msgstr ""
-#: src/ui/gui/psppire.glade:1464
+#: src/ui/gui/psppire.glade:1439
msgid "Sample..."
msgstr ""
-#: src/ui/gui/psppire.glade:1502
+#: src/ui/gui/psppire.glade:1477
msgid "If condition is satisfied"
msgstr ""
-#: src/ui/gui/psppire.glade:1551
+#: src/ui/gui/psppire.glade:1526
msgid "All Cases"
msgstr ""
-#: src/ui/gui/psppire.glade:1566
+#: src/ui/gui/psppire.glade:1541
msgid "Select"
msgstr ""
-#: src/ui/gui/psppire.glade:1595
+#: src/ui/gui/psppire.glade:1570
msgid "Filtered"
msgstr ""
-#: src/ui/gui/psppire.glade:1606
+#: src/ui/gui/psppire.glade:1581
msgid "Deleted"
msgstr ""
-#: src/ui/gui/psppire.glade:1624
+#: src/ui/gui/psppire.glade:1599
msgid "Unselected Cases Are"
msgstr ""
-#: src/ui/gui/psppire.glade:1689
+#: src/ui/gui/psppire.glade:1664
msgid "Comments:"
msgstr ""
-#: src/ui/gui/psppire.glade:1731
+#: src/ui/gui/psppire.glade:1706
msgid "Display comments in output"
msgstr ""
-#: src/ui/gui/psppire.glade:1746
+#: src/ui/gui/psppire.glade:1721
msgid "Column Number: 0"
msgstr ""
-#: src/ui/gui/psppire.glade:1829
+#: src/ui/gui/psppire.glade:1804
msgid "First case"
msgstr ""
-#: src/ui/gui/psppire.glade:1842
+#: src/ui/gui/psppire.glade:1817
msgid "Last case"
msgstr ""
-#: src/ui/gui/psppire.glade:1855
+#: src/ui/gui/psppire.glade:1830
msgid "Observation"
msgstr ""
-#: src/ui/gui/psppire.glade:1919
+#: src/ui/gui/psppire.glade:1894
msgid "Use expression as label"
msgstr ""
-#: src/ui/gui/psppire.glade:2045 src/ui/gui/psppire-var-sheet.c:540
-#: src/ui/gui/psppire-var-store.c:786
+#: src/ui/gui/psppire.glade:2020 src/ui/gui/psppire-var-sheet.c:529
+#: src/ui/gui/psppire-var-store.c:795
msgid "Width"
msgstr ""
-#: src/ui/gui/psppire.glade:2175
+#: src/ui/gui/psppire.glade:2150
msgid "Goto Case Number:"
msgstr ""
-#: src/ui/gui/psppire.glade:2312
+#: src/ui/gui/psppire.glade:2287
msgid "Sample Size"
msgstr ""
msgid "Cannot load syntax file '%s'"
msgstr ""
-#: src/ui/gui/psppire-var-sheet.c:538 src/ui/gui/psppire-var-store.c:784
+#: src/ui/gui/psppire-var-sheet.c:527 src/ui/gui/psppire-var-store.c:793
msgid "Name"
msgstr ""
-#: src/ui/gui/psppire-var-sheet.c:541 src/ui/gui/psppire-var-store.c:787
+#: src/ui/gui/psppire-var-sheet.c:530 src/ui/gui/psppire-var-store.c:796
msgid "Decimals"
msgstr ""
-#: src/ui/gui/psppire-var-sheet.c:543 src/ui/gui/psppire-var-store.c:789
+#: src/ui/gui/psppire-var-sheet.c:532 src/ui/gui/psppire-var-store.c:798
msgid "Values"
msgstr ""
-#: src/ui/gui/psppire-var-sheet.c:546 src/ui/gui/psppire-var-store.c:792
+#: src/ui/gui/psppire-var-sheet.c:535 src/ui/gui/psppire-var-store.c:801
msgid "Align"
msgstr ""
-#: src/ui/gui/psppire-var-sheet.c:547 src/ui/gui/psppire-var-store.c:793
+#: src/ui/gui/psppire-var-sheet.c:536 src/ui/gui/psppire-var-store.c:802
msgid "Measure"
msgstr ""
-#: src/ui/gui/psppire-var-store.c:569 src/ui/gui/var-sheet-dialogs.glade:43
+#: src/ui/gui/psppire-var-store.c:578 src/ui/gui/var-sheet-dialogs.glade:43
msgid "Comma"
msgstr ""
-#: src/ui/gui/psppire-var-store.c:570 src/ui/gui/var-sheet-dialogs.glade:59
+#: src/ui/gui/psppire-var-store.c:579 src/ui/gui/var-sheet-dialogs.glade:59
msgid "Dot"
msgstr ""
-#: src/ui/gui/psppire-var-store.c:571
+#: src/ui/gui/psppire-var-store.c:580
msgid "Scientific"
msgstr ""
-#: src/ui/gui/psppire-var-store.c:572 src/ui/gui/var-sheet-dialogs.glade:91
+#: src/ui/gui/psppire-var-store.c:581 src/ui/gui/var-sheet-dialogs.glade:91
msgid "Date"
msgstr ""
-#: src/ui/gui/psppire-var-store.c:573 src/ui/gui/var-sheet-dialogs.glade:107
+#: src/ui/gui/psppire-var-store.c:582 src/ui/gui/var-sheet-dialogs.glade:107
msgid "Dollar"
msgstr ""
-#: src/ui/gui/psppire-var-store.c:574
+#: src/ui/gui/psppire-var-store.c:583
msgid "Custom"
msgstr ""
msgid "Measurement Level: %s\n"
msgstr ""
-#: src/ui/gui/variable-info-dialog.c:124
+#: src/ui/gui/variable-info-dialog.c:125
msgid "Value Labels:\n"
msgstr ""
-#: src/ui/gui/variable-info-dialog.c:137
+#: src/ui/gui/variable-info-dialog.c:138
#, c-format
msgid "%s %s\n"
msgstr ""
msgstr ""
"Project-Id-Version: nl\n"
"Report-Msgid-Bugs-To: pspp-dev@gnu.org\n"
-"POT-Creation-Date: 2009-05-16 07:00+0800\n"
+"POT-Creation-Date: 2009-07-17 15:23+0800\n"
"PO-Revision-Date: 2009-05-15 18:24+0200\n"
"Last-Translator: <pspp@sjpaes.nl>\n"
"Language-Team: Dutch\n"
"Ten minste een case in de gelezen data heeft een gewicht waarde 'user-"
"missing, system-missing, zero, of negatief. Deze case(s) zijn genegeerd."
-#: src/data/case-tmpfile.c:57
-#, c-format
-msgid "failed to create temporary file"
-msgstr "aanmaken van een tijdelijk bestand is mislukt"
-
-#: src/data/case-tmpfile.c:131
-#, c-format
-msgid "seeking in temporary file"
-msgstr "zoeken in tijdelijk bestand"
-
-#: src/data/case-tmpfile.c:153
-#, c-format
-msgid "reading temporary file"
-msgstr "lezen tijdelijk bestand"
-
-#: src/data/case-tmpfile.c:155
-#, c-format
-msgid "unexpected end of file reading temporary file"
-msgstr "onverwacht einde bestand bij het lezen van tijdelijk bestand"
-
-#: src/data/case-tmpfile.c:175
-#, c-format
-msgid "writing to temporary file"
-msgstr "schrijven naar tijdelijk bestand"
-
-#: src/data/data-in.c:262 src/data/data-in.c:452
+#: src/data/data-in.c:263 src/data/data-in.c:453
msgid "Field contents are not numeric."
msgstr "Veld inhoud is niet numeriek."
-#: src/data/data-in.c:264 src/data/data-in.c:454
+#: src/data/data-in.c:265 src/data/data-in.c:455
msgid "Number followed by garbage."
msgstr "Nummer gevolgd door rommel."
-#: src/data/data-in.c:275
+#: src/data/data-in.c:276
msgid "Invalid numeric syntax."
msgstr "Ongeldige numerieke syntax."
-#: src/data/data-in.c:284 src/data/data-in.c:467
+#: src/data/data-in.c:285 src/data/data-in.c:468
msgid "Too-large number set to system-missing."
msgstr "Te groot getal, is op system-missing gezet."
-#: src/data/data-in.c:289 src/data/data-in.c:472
+#: src/data/data-in.c:290 src/data/data-in.c:473
msgid "Too-small number set to zero."
msgstr "Te klein getal, is op nul gezet."
-#: src/data/data-in.c:315
+#: src/data/data-in.c:316
msgid "All characters in field must be digits."
msgstr "Alle karakters in veld moeten cijfers zijn."
-#: src/data/data-in.c:338
+#: src/data/data-in.c:339
msgid "Unrecognized character in field."
msgstr "Onherkenbaar karakter in veld."
-#: src/data/data-in.c:362 src/data/data-in.c:636
+#: src/data/data-in.c:363 src/data/data-in.c:638
msgid "Field must have even length."
msgstr "Veld moet een even lengte hebben."
-#: src/data/data-in.c:367 src/data/data-in.c:647
+#: src/data/data-in.c:368 src/data/data-in.c:649
msgid "Field must contain only hex digits."
msgstr "Veld mag alleen hex cijfers bevatten."
-#: src/data/data-in.c:686 src/data/data-in.c:733
+#: src/data/data-in.c:688 src/data/data-in.c:735
msgid "Syntax error in date field."
msgstr "Syntax fout in datum veld."
-#: src/data/data-in.c:702
+#: src/data/data-in.c:704
#, c-format
msgid "Day (%ld) must be between 1 and 31."
msgstr "Dag (%ld) moet tussen 1 en 31 zijn."
-#: src/data/data-in.c:749
+#: src/data/data-in.c:751
msgid "Delimiter expected between fields in date."
msgstr "Veldscheider verwacht tussen velden in datum."
-#: src/data/data-in.c:823
+#: src/data/data-in.c:825
msgid ""
"Unrecognized month format. Months may be specified as Arabic or Roman "
"numerals or as at least 3 letters of their English names."
"of Romeins numeriek of als tenminste de eerste 3 letters van hun Engelse "
"naam."
-#: src/data/data-in.c:850
+#: src/data/data-in.c:852
#, c-format
msgid "Year (%ld) must be between 1582 and 19999."
msgstr "Jaar (%ld) moet tussen 1582 en 19999 zijn."
-#: src/data/data-in.c:862
+#: src/data/data-in.c:864
#, c-format
msgid "Trailing garbage \"%.*s\" following date."
msgstr "Afsluitende rommel \"%.*s\" achter datum."
-#: src/data/data-in.c:878
+#: src/data/data-in.c:880
msgid "Julian day must have exactly three digits."
msgstr "Juliaanse datum moet bestaan uit precies 3 cijfers."
-#: src/data/data-in.c:883
+#: src/data/data-in.c:885
#, c-format
msgid "Julian day (%ld) must be between 1 and 366."
msgstr "Juliaanse dag (%ld) moet tussen 1 en 366 zijn."
-#: src/data/data-in.c:907
+#: src/data/data-in.c:909
#, c-format
msgid "Quarter (%ld) must be between 1 and 4."
msgstr "Kwartaal (%ld) moet tussen 1 en 4 zijn."
-#: src/data/data-in.c:927
+#: src/data/data-in.c:929
#, c-format
msgid "Week (%ld) must be between 1 and 53."
msgstr "Week (%ld) moet tussen 1 en 53 zijn."
-#: src/data/data-in.c:940
+#: src/data/data-in.c:942
msgid "Delimiter expected between fields in time."
msgstr "Veldscheider verwacht tussen velden in tijd."
-#: src/data/data-in.c:960
+#: src/data/data-in.c:962
#, c-format
msgid "Minute (%ld) must be between 0 and 59."
msgstr "Minuut (%ld) moet tussen 0 en 59 zijn."
-#: src/data/data-in.c:1000
+#: src/data/data-in.c:1002
msgid ""
"Unrecognized weekday name. At least the first two letters of an English "
"weekday name must be specified."
"Niet herkende weekdag naam. Tenminste de eerste 2 letters van een Engelse "
"weekdag naam moeten opgegeven worden."
-#: src/data/data-in.c:1138
+#: src/data/data-in.c:1140
#, c-format
msgid "`%c' expected in date field."
msgstr "`%c' verwacht in datum veld."
-#: src/data/data-in.c:1179
+#: src/data/data-in.c:1181
#, c-format
msgid "column %d"
msgstr "kolom %d"
-#: src/data/data-in.c:1181
+#: src/data/data-in.c:1183
#, c-format
msgid "columns %d-%d"
msgstr "kolommen %d-%d"
-#: src/data/data-in.c:1185
+#: src/data/data-in.c:1187
#, c-format
msgid "%s field) "
msgstr "%s veld) "
-#: src/data/data-out.c:446
+#: src/data/data-out.c:449
#, c-format
msgid "Weekday number %f is not between 1 and 7."
msgstr "Weekdag nummer %f is niet tussen 1 en 7."
-#: src/data/data-out.c:467
+#: src/data/data-out.c:470
#, c-format
msgid "Month number %f is not between 1 and 12."
msgstr "Maand nummer %f is niet tussen 1 en 12."
msgid "scratch"
msgstr ""
-#: src/data/dictionary.c:926
+#: src/data/dictionary.c:940
msgid ""
"At least one case in the data file had a weight value that was user-missing, "
"system-missing, zero, or negative. These case(s) were ignored."
"Op zijn minst een case in het data bestand heeft een gewicht waarde user-"
"missing, system-missing, nul, of negatief. Deze case(s) zijn genegeerd."
-#: src/data/dictionary.c:1228
+#: src/data/dictionary.c:1263
#, c-format
msgid "Truncating document line to %d bytes."
msgstr "Document regel afgekapt tot %d bytes."
msgid "%s variables are not compatible with %s format %s."
msgstr "%s variabelen zijn niet compatibel met %s formaat %s."
-#: src/data/format.c:327 src/data/sys-file-reader.c:657
-#: src/ui/gui/psppire.glade:2034 src/ui/gui/psppire-var-store.c:575
+#: src/data/format.c:327 src/data/sys-file-reader.c:663
+#: src/ui/gui/psppire.glade:2009 src/ui/gui/psppire-var-store.c:584
#: src/ui/gui/var-sheet-dialogs.glade:139
msgid "String"
msgstr ""
-#: src/data/format.c:327 src/data/sys-file-reader.c:657
-#: src/ui/gui/psppire.glade:2109 src/ui/gui/psppire-var-store.c:568
+#: src/data/format.c:327 src/data/sys-file-reader.c:663
+#: src/ui/gui/psppire.glade:2084 src/ui/gui/psppire-var-store.c:577
#: src/ui/gui/var-sheet-dialogs.glade:28
msgid "Numeric"
msgstr "Numeriek"
-#: src/data/format.c:328 src/data/sys-file-reader.c:1214
-#: src/data/sys-file-reader.c:1216
+#: src/data/format.c:328 src/data/sys-file-reader.c:1228
+#: src/data/sys-file-reader.c:1230
#: src/language/dictionary/apply-dictionary.c:78
#: src/language/dictionary/apply-dictionary.c:79
-#: src/language/xforms/recode.c:489 src/language/xforms/recode.c:490
-#: src/language/xforms/recode.c:502 src/language/xforms/recode.c:503
+#: src/language/xforms/recode.c:490 src/language/xforms/recode.c:491
+#: src/language/xforms/recode.c:503 src/language/xforms/recode.c:504
msgid "numeric"
msgstr "numeriek"
-#: src/data/format.c:328 src/data/sys-file-reader.c:1214
-#: src/data/sys-file-reader.c:1216
+#: src/data/format.c:328 src/data/sys-file-reader.c:1228
+#: src/data/sys-file-reader.c:1230
#: src/language/dictionary/apply-dictionary.c:78
#: src/language/dictionary/apply-dictionary.c:79
-#: src/language/xforms/recode.c:489 src/language/xforms/recode.c:490
-#: src/language/xforms/recode.c:502 src/language/xforms/recode.c:503
+#: src/language/xforms/recode.c:490 src/language/xforms/recode.c:491
+#: src/language/xforms/recode.c:503 src/language/xforms/recode.c:504
msgid "string"
msgstr ""
msgid "String variable with width %d is not compatible with format %s."
msgstr "String variabele met breedte %d is niet compatibel met formaat %s."
-#: src/data/gnumeric-reader.c:33
+#: src/data/gnumeric-reader.c:36
msgid ""
"Support for Gnumeric files was not compiled into this installation of PSPP"
msgstr ""
"Ondersteuning voor Gnumeric bestanden is niet gecompileerd in deze "
"installatie van PSPP"
-#: src/data/gnumeric-reader.c:362
-#, c-format
-msgid "Error opening \"%s\" for reading as a gnumeric file: %s."
+#: src/data/gnumeric-reader.c:368
+#, fuzzy, c-format
+msgid "Error opening \"%s\" for reading as a Gnumeric file: %s."
msgstr ""
"Fout bij het openen van \"%s\" voor het lezen als een gnumeric bestand: %s."
-#: src/data/gnumeric-reader.c:382
+#: src/data/gnumeric-reader.c:388
#, c-format
msgid "Invalid cell range \"%s\""
msgstr "Ongeldige cel range \"%s\""
-#: src/data/gnumeric-reader.c:518 src/data/psql-reader.c:182
+#: src/data/gnumeric-reader.c:520 src/data/psql-reader.c:187
#, c-format
msgid "Cannot create variable name from %s"
msgstr "Kan geen variabele naam creëren van %s"
-#: src/data/gnumeric-reader.c:530
+#: src/data/gnumeric-reader.c:532
#, c-format
msgid "Selected sheet or range of spreadsheet \"%s\" is empty."
msgstr "Geselecteerd blad of range van werkblad \"%s\" is leeg."
#. TRANSLATORS: this fragment will be interpolated into
#. messages in fh_lock() that identify types of files.
-#: src/data/por-file-reader.c:268 src/data/por-file-writer.c:148
+#: src/data/por-file-reader.c:267 src/data/por-file-writer.c:149
msgid "portable file"
msgstr "overdraagbaar (portable) bestand"
-#: src/data/por-file-reader.c:276
+#: src/data/por-file-reader.c:275
#, c-format
msgid ""
"An error occurred while opening \"%s\" for reading as a portable file: %s."
"Er is een fout opgetreden tijdens het openen van \"%s\" voor het lezen als "
"overdraagbaar (portable) bestand: %s."
-#: src/data/por-file-reader.c:297
+#: src/data/por-file-reader.c:296
msgid "Data record expected."
msgstr "Data record verwacht."
-#: src/data/por-file-reader.c:379
+#: src/data/por-file-reader.c:378
msgid "Number expected."
msgstr "Nummer verwacht."
-#: src/data/por-file-reader.c:407
+#: src/data/por-file-reader.c:406
msgid "Missing numeric terminator."
msgstr "Ontbrekende numerieke afsluiter."
-#: src/data/por-file-reader.c:430
+#: src/data/por-file-reader.c:429
msgid "Invalid integer."
msgstr "Ongeldige integer."
-#: src/data/por-file-reader.c:441
+#: src/data/por-file-reader.c:440
#, c-format
msgid "Bad string length %d."
msgstr "Foutieve string lengte %d."
-#: src/data/por-file-reader.c:502
+#: src/data/por-file-reader.c:501
#, c-format
msgid "%s: Not a portable file."
msgstr "%s: Geen overdraagbaar (portable) bestand."
-#: src/data/por-file-reader.c:519
+#: src/data/por-file-reader.c:518
#, c-format
msgid "Unrecognized version code `%c'."
msgstr "Niet herkende versie code `%c'."
-#: src/data/por-file-reader.c:528
+#: src/data/por-file-reader.c:527
#, c-format
msgid "Bad date string length %zu."
msgstr "Foutieve datum string lengte %zu."
-#: src/data/por-file-reader.c:530
+#: src/data/por-file-reader.c:529
#, c-format
msgid "Bad time string length %zu."
msgstr "Foutieve tijd string lengte %zu."
-#: src/data/por-file-reader.c:572
+#: src/data/por-file-reader.c:571
#, c-format
msgid ""
"%s: Bad format specifier byte (%d). Variable will be assigned a default "
"%s: Foutief formaat specificatie byte (%d). Variabele krijgt een default "
"formaat."
-#: src/data/por-file-reader.c:593
+#: src/data/por-file-reader.c:592
#, c-format
msgid "Numeric variable %s has invalid format specifier %s."
msgstr "Numerieke variabele %s heeft een ongeldige formaat specificatie %s."
-#: src/data/por-file-reader.c:597
+#: src/data/por-file-reader.c:596
#, c-format
msgid "String variable %s with width %d has invalid format specifier %s."
msgstr ""
"String variabele %s met breedte %d heeft ongeldige formaat specificatie %s."
-#: src/data/por-file-reader.c:621
+#: src/data/por-file-reader.c:620
msgid "Expected variable count record."
msgstr "Variabele teller record verwacht."
-#: src/data/por-file-reader.c:625
+#: src/data/por-file-reader.c:624
#, c-format
msgid "Invalid number of variables %d."
msgstr "Ongeldig aantal variabelen %d."
-#: src/data/por-file-reader.c:635
+#: src/data/por-file-reader.c:633
#, c-format
msgid "Weight variable name (%s) truncated."
msgstr "Weging variabele naam (%s) afgekapt."
-#: src/data/por-file-reader.c:650
+#: src/data/por-file-reader.c:648
msgid "Expected variable record."
msgstr "Variabel record verwacht."
-#: src/data/por-file-reader.c:654
+#: src/data/por-file-reader.c:652
#, c-format
msgid "Invalid variable width %d."
msgstr "Ongeldige variabele breedte %d."
-#: src/data/por-file-reader.c:662
+#: src/data/por-file-reader.c:659
#, c-format
msgid "Invalid variable name `%s' in position %d."
msgstr "Ongeldige variabele naam '%s' in positie %d."
-#: src/data/por-file-reader.c:666
+#: src/data/por-file-reader.c:663 src/data/sys-file-reader.c:521
#, c-format
msgid "Bad width %d for variable %s."
msgstr "Foutieve breedte %d voor variabele %s."
-#: src/data/por-file-reader.c:681
+#: src/data/por-file-reader.c:678
#, c-format
msgid "Duplicate variable name %s in position %d."
msgstr "Dubbele variabele naam %s in positie %d."
-#: src/data/por-file-reader.c:682
+#: src/data/por-file-reader.c:679
#, c-format
msgid "Duplicate variable name %s in position %d renamed to %s."
msgstr "Dubbele variabele naam %s in positie %d hernoemd naar %s."
-#: src/data/por-file-reader.c:725
+#: src/data/por-file-reader.c:728
#, c-format
msgid "Weighting variable %s not present in dictionary."
msgstr "Weging variabele %s niet aanwezig in woordenboek."
"Kan geen waarde labels toekennen aan %s en %s, die verschillende variabele "
"types hebben."
-#: src/data/por-file-writer.c:140
+#: src/data/por-file-writer.c:141
#, c-format
msgid "Invalid decimal digits count %d. Treating as %d."
msgstr "Ongeldige decimaal cijfers teller %d. Behandeld als %d."
-#: src/data/por-file-writer.c:160
+#: src/data/por-file-writer.c:161
#, c-format
msgid "Error opening \"%s\" for writing as a portable file: %s."
msgstr ""
"Fout tijdens openen \"%s\" voor het schrijven als een overdraagbaar "
"(portable) bestand: %s."
-#: src/data/por-file-writer.c:500
+#: src/data/por-file-writer.c:506
#, c-format
msgid "An I/O error occurred writing portable file \"%s\"."
msgstr ""
"Een I/O fout opgetreden tijdens het schrijven van overdraagbaar (portable) "
"bestand \"%s\"."
-#: src/data/psql-reader.c:42
+#: src/data/psql-reader.c:46
msgid ""
"Support for reading postgres databases was not compiled into this "
"installation of PSPP"
"Ondersteuning voor het lezen van postgres databases was niet gecompileerd in "
"deze installatie van PSPP"
-#: src/data/psql-reader.c:237
+#: src/data/psql-reader.c:242
msgid "Memory error whilst opening psql source"
msgstr "Geheugen fout tijdens het openen van psql source"
-#: src/data/psql-reader.c:243
+#: src/data/psql-reader.c:248
#, c-format
msgid "Error opening psql source: %s."
msgstr "Fout tijdens openen psql source: %s."
-#: src/data/psql-reader.c:258
+#: src/data/psql-reader.c:263
#, c-format
msgid ""
"Postgres server is version %s. Reading from versions earlier than 8.0 is not "
"Postgres server is versie %s. Lezen van versies ouder dan 8.0 wordt niet "
"ondersteund."
-#: src/data/psql-reader.c:278
+#: src/data/psql-reader.c:283
msgid ""
"Connection is unencrypted, but unencrypted connections have not been "
"permitted."
"Connectie is niet geëncrypt, maar niet geëncrypte connecties zijn niet "
"toegestaan."
-#: src/data/psql-reader.c:317 src/data/psql-reader.c:342
-#: src/data/psql-reader.c:352
+#: src/data/psql-reader.c:322 src/data/psql-reader.c:347
+#: src/data/psql-reader.c:357
#, c-format
msgid "Error from psql source: %s."
msgstr "Fout van psql source: %s."
-#: src/data/psql-reader.c:447
+#: src/data/psql-reader.c:452
#, c-format
msgid "Unsupported OID %d. SYSMIS values will be inserted."
msgstr "Niet ondersteunde OID %d. SYSMIS waarde wordt ingevoegd."
#. TRANSLATORS: this fragment will be interpolated into
#. messages in fh_lock() that identify types of files.
-#: src/data/scratch-writer.c:67 src/language/data-io/file-handle.q:181
+#: src/data/scratch-writer.c:66 src/language/data-io/file-handle.q:181
msgid "scratch file"
msgstr "scratch bestand"
-#: src/data/settings.c:685
+#: src/data/settings.c:686
#, c-format
msgid ""
"%s: Custom currency string `%s' does not contain exactly three periods or "
#. TRANSLATORS: this fragment will be interpolated into
#. messages in fh_lock() that identify types of files.
-#: src/data/sys-file-reader.c:216 src/data/sys-file-writer.c:200
+#: src/data/sys-file-reader.c:219 src/data/sys-file-writer.c:202
msgid "system file"
msgstr "systeem bestand"
-#: src/data/sys-file-reader.c:223
+#: src/data/sys-file-reader.c:226
#, c-format
msgid "Error opening \"%s\" for reading as a system file: %s."
msgstr ""
"Fout bij het openen van \"%s\" voor het lezen als een systeem file: %s."
-#: src/data/sys-file-reader.c:262
+#: src/data/sys-file-reader.c:265
msgid "Misplaced type 4 record."
msgstr "Verkeerd geplaatst type 4 record. "
-#: src/data/sys-file-reader.c:273
+#: src/data/sys-file-reader.c:276
#, c-format
msgid "Unrecognized record type %d."
msgstr "Niet herkend record type %d."
-#: src/data/sys-file-reader.c:312
+#: src/data/sys-file-reader.c:315
#, c-format
msgid "File header claims %d variable positions but %d were read from file."
msgstr ""
"Bestand kop claimt %d variabele posities maar er zijn er %d gelezen van het "
"bestand."
-#: src/data/sys-file-reader.c:352
+#: src/data/sys-file-reader.c:355
#, c-format
msgid "Error closing system file \"%s\": %s."
msgstr "Fout bij het sluiten van system file \"%s\": %s."
-#: src/data/sys-file-reader.c:417 src/data/sys-file-reader.c:427
+#: src/data/sys-file-reader.c:420 src/data/sys-file-reader.c:430
msgid "This is not an SPSS system file."
msgstr "Dit is geen SPSS systeem bestand."
-#: src/data/sys-file-reader.c:446
+#: src/data/sys-file-reader.c:449
msgid ""
"Compression bias is not the usual value of 100, or system file uses "
"unrecognized floating-point format."
msgstr ""
-#: src/data/sys-file-reader.c:514
+#: src/data/sys-file-reader.c:517
#, c-format
msgid "Invalid variable name `%s'."
msgstr "Ongeldige variabele naam '%s'."
-#: src/data/sys-file-reader.c:518
-#, c-format
-msgid "Bad variable width %d."
-msgstr "Foutieve variabele breedte %d."
-
-#: src/data/sys-file-reader.c:522
+#: src/data/sys-file-reader.c:525
#, c-format
msgid "Duplicate variable name `%s' within system file."
msgstr "Dubbele variabele naam '%s' binnen system file."
-#: src/data/sys-file-reader.c:530
+#: src/data/sys-file-reader.c:533
msgid "Variable label indicator field is not 0 or 1."
msgstr "Variabel label indicator veld is niet 0 of 1."
-#: src/data/sys-file-reader.c:538
+#: src/data/sys-file-reader.c:541
#, c-format
msgid "Variable %s has label of invalid length %zu."
msgstr "Variabele %s heeft label van ongeldige lengte %zu."
-#: src/data/sys-file-reader.c:557
+#: src/data/sys-file-reader.c:560
msgid "Numeric missing value indicator field is not -3, -2, 0, 1, 2, or 3."
msgstr ""
"Numeriek ontbrekende waarde indicator veld is niet -3, -2, 0, 1, 2, of 3."
-#: src/data/sys-file-reader.c:572
+#: src/data/sys-file-reader.c:578
msgid "String missing value indicator field is not 0, 1, 2, or 3."
msgstr "String missing waarde indicator veld is niet 0, 1, 2, of 3."
-#: src/data/sys-file-reader.c:575
-#, c-format
-msgid ""
-"Ignoring missing values on long string variable %s, which PSPP does not yet "
-"support."
-msgstr ""
-"Negeren van missing values voor lange string variabele %s, wat PSPP nog niet "
-"ondersteunt."
-
-#: src/data/sys-file-reader.c:604
+#: src/data/sys-file-reader.c:610
msgid "Missing string continuation record."
msgstr "Mis string continuering record."
-#: src/data/sys-file-reader.c:638
+#: src/data/sys-file-reader.c:644
#, c-format
msgid "Unknown variable format %<PRIu8>."
msgstr "Onbekend variabele formaat %<PRIu8>."
-#: src/data/sys-file-reader.c:656
+#: src/data/sys-file-reader.c:662
#, c-format
msgid "%s variable %s has invalid %s format %s."
msgstr "%s variabele %s heeft ongeldig %s formaat %s."
-#: src/data/sys-file-reader.c:659
+#: src/data/sys-file-reader.c:665
msgid "print"
msgstr "afdrukken"
-#: src/data/sys-file-reader.c:659
+#: src/data/sys-file-reader.c:665
msgid "write"
msgstr "schrijf"
-#: src/data/sys-file-reader.c:663
+#: src/data/sys-file-reader.c:669
msgid "Suppressing further invalid format warnings."
msgstr "Onderdrukt verdere ongeldige formaat waarschuwingen."
-#: src/data/sys-file-reader.c:681
+#: src/data/sys-file-reader.c:687
msgid "Weighting variable must be numeric."
msgstr "Weging variabele moet numeriek zijn."
-#: src/data/sys-file-reader.c:695
+#: src/data/sys-file-reader.c:701
msgid "Multiple type 6 (document) records."
msgstr "Meerdere type 6 (document) records."
-#: src/data/sys-file-reader.c:699
+#: src/data/sys-file-reader.c:705
#, c-format
msgid "Number of document lines (%d) must be greater than 0."
msgstr "Aantal document regels (%d) moet groter dan 0 zijn."
-#: src/data/sys-file-reader.c:707
+#: src/data/sys-file-reader.c:713
msgid "Document line contains null byte."
msgstr "Document regel bevat null byte."
-#: src/data/sys-file-reader.c:793
-msgid ""
-"Ignoring value labels for long string variables, which PSPP does not yet "
-"support."
-msgstr ""
-"Negeer waarde labels voor lange string variabelen, die door PSPP nog niet "
-"ondersteund worden."
-
-#: src/data/sys-file-reader.c:798
+#: src/data/sys-file-reader.c:803
#, c-format
msgid ""
"Unrecognized record type 7, subtype %d. Please send a copy of this file, "
"Niet herkend type 7, subtype %d. Stuur s.v.p. een kopie van dit bestand en "
"de syntax waarmee het is aangemaakt naar %s "
-#: src/data/sys-file-reader.c:825
+#: src/data/sys-file-reader.c:830
#, c-format
msgid "Bad size (%zu) or count (%zu) field on record type 7, subtype 3."
msgstr ""
"Foutieve lengte (%zu) of aantal (%zu) veld in record type 7, subtype 3."
-#: src/data/sys-file-reader.c:845
+#: src/data/sys-file-reader.c:850
#, c-format
msgid ""
"Floating-point representation indicated by system file (%d) differs from "
"Drijvende komma representatie aangegeven door systeem bestand %d verschilt "
"van verwachting (%d)."
-#: src/data/sys-file-reader.c:858
+#: src/data/sys-file-reader.c:863
msgid "little-endian"
msgstr ""
-#: src/data/sys-file-reader.c:858
+#: src/data/sys-file-reader.c:863
msgid "big-endian"
msgstr ""
-#: src/data/sys-file-reader.c:859
+#: src/data/sys-file-reader.c:864
#, c-format
msgid ""
"Integer format indicated by system file (%s) differs from expected (%s)."
"Integer formaat aangegeven door systeem bestand (%s) verschilt van verwacht "
"(%s). "
-#: src/data/sys-file-reader.c:916
+#: src/data/sys-file-reader.c:921
#, c-format
msgid "Bad size (%zu) or count (%zu) on extension 4."
msgstr "Foutieve lengte (%zu) of aantal (%zu) bij extensie 4."
-#: src/data/sys-file-reader.c:920
-#, c-format
-msgid "File specifies unexpected value %g as SYSMIS."
+#: src/data/sys-file-reader.c:925 src/data/sys-file-reader.c:929
+#: src/data/sys-file-reader.c:933
+#, fuzzy, c-format
+msgid "File specifies unexpected value %g as %s."
msgstr "Bestand specificeert onverwachte waarde %g als SYSMIS."
-#: src/data/sys-file-reader.c:922
-#, c-format
-msgid "File specifies unexpected value %g as HIGHEST."
-msgstr "Bestand specificeert onverwachte waarde %g als HIGHEST."
-
-#: src/data/sys-file-reader.c:924
-#, c-format
-msgid "File specifies unexpected value %g as LOWEST."
-msgstr "Bestand specificeert onverwachte waarde %g als LOWEST."
-
-#: src/data/sys-file-reader.c:940
+#: src/data/sys-file-reader.c:950
#, c-format
msgid "Bad size %zu on extension 11."
msgstr "Foutieve lengte %zu voor extensie 11."
-#: src/data/sys-file-reader.c:952
+#: src/data/sys-file-reader.c:962
#, c-format
msgid "Extension 11 has bad count %zu (for %zu variables)."
msgstr "Extensie 11 heeft een foutief aantal %zu (voor %zu variabelen)."
-#: src/data/sys-file-reader.c:973
+#: src/data/sys-file-reader.c:983
#, c-format
msgid ""
"Invalid variable display parameters for variable %zu (%s). Default "
"Ongeldige variabele toon parameters voor variabele %zu (%s). Default "
"parameters ingevuld."
-#: src/data/sys-file-reader.c:1017
+#: src/data/sys-file-reader.c:1027
#, c-format
msgid "Long variable mapping from %s to invalid variable name `%s'."
msgstr "Lange variabele afbeelding van %s tot ongeldige naam '%s'. "
-#: src/data/sys-file-reader.c:1027
+#: src/data/sys-file-reader.c:1037
#, c-format
msgid "Duplicate long variable name `%s' within system file."
msgstr "Dubbele lange variabele naam `%s' binnen systeem bestand."
-#: src/data/sys-file-reader.c:1080
+#: src/data/sys-file-reader.c:1090
#, c-format
msgid "%s listed as string of invalid length %s in very length string record."
msgstr ""
-#: src/data/sys-file-reader.c:1090
+#: src/data/sys-file-reader.c:1100
#, c-format
msgid ""
"%s listed in very long string record with width %s, which requires only one "
"%s vermeld in erg lang string record met breedte %s, dat slechts een segment "
"vereist."
-#: src/data/sys-file-reader.c:1096
+#: src/data/sys-file-reader.c:1106
#, c-format
msgid "Very long string %s overflows dictionary."
msgstr "Erg lange string %s is te groot voor woordenboek."
-#: src/data/sys-file-reader.c:1110
+#: src/data/sys-file-reader.c:1120
#, c-format
msgid ""
"Very long string with width %ld has segment %d of width %d (expected %d)"
"Erg lange string met breedte %ld heeft segment %d van breedte %d (verwacht %"
"d)"
-#: src/data/sys-file-reader.c:1155
+#: src/data/sys-file-reader.c:1166
#, c-format
msgid "Invalid number of labels: %d. Ignoring labels."
msgstr "Ongeldig aantal labels: %d. Labels worden genegeerd."
-#: src/data/sys-file-reader.c:1186
+#: src/data/sys-file-reader.c:1197
msgid ""
"Variable index record (type 4) does not immediately follow value label "
"record (type 3) as it should."
"Variabele index record (type 4) volgt niet onmiddellijk waarde label record "
"(type 3) zoals het moet."
-#: src/data/sys-file-reader.c:1193
+#: src/data/sys-file-reader.c:1204
#, c-format
msgid ""
"Number of variables associated with a value label (%d) is not between 1 and "
"Aantal variabelen geassocieerd aan waarde label (%d) is niet tussen 1 en het "
"aantal variabelen (%zu)."
-#: src/data/sys-file-reader.c:1203
-#, c-format
-msgid "Value labels are not allowed on long string variables (%s)."
+#: src/data/sys-file-reader.c:1215
+#, fuzzy, c-format
+msgid ""
+"Value labels may not be added to long string variables (e.g. %s) using "
+"records types 3 and 4."
msgstr "Waarde labels zijn niet toegestaan bij lange string variabelen (%s)."
-#: src/data/sys-file-reader.c:1210
+#: src/data/sys-file-reader.c:1224
#, c-format
msgid ""
"Variables associated with value label are not all of identical type. "
"Variabelen geassocieerd met waarde label zijn niet allemaal van het "
"identieke type. Variabele %s is %s, maar variabele %s is %s."
-#: src/data/sys-file-reader.c:1243
+#: src/data/sys-file-reader.c:1258
#, c-format
msgid "Duplicate value label for %g on %s."
msgstr "Dubbel waarde label voor %g op %s."
-#: src/data/sys-file-reader.c:1246
+#: src/data/sys-file-reader.c:1261 src/data/sys-file-reader.c:1442
#, c-format
msgid "Duplicate value label for \"%.*s\" on %s."
msgstr "Dubbel waarde label voor \"%.*s\" on %s."
-#: src/data/sys-file-reader.c:1284
+#: src/data/sys-file-reader.c:1299
#, c-format
msgid "Error parsing attribute value %s[%d]"
msgstr "Fout bij het ontleden van attribuut waarde %s[%d]"
-#: src/data/sys-file-reader.c:1298
+#: src/data/sys-file-reader.c:1313
#, c-format
msgid "Attribute value %s[%d] is not quoted: %s"
msgstr "Attribuut waarde %s[%d] is niet geciteerd: %s"
-#: src/data/sys-file-reader.c:1414
+#: src/data/sys-file-reader.c:1376
+#, c-format
+msgid ""
+"Variable name length in long string value label record (%d) exceeds %d-byte "
+"limit."
+msgstr ""
+
+#: src/data/sys-file-reader.c:1386
+#, fuzzy, c-format
+msgid "Ignoring long string value record for unknown variable %s."
+msgstr "Variabele afbeelding refereert aan onbekende variabele %s."
+
+#: src/data/sys-file-reader.c:1393
+#, fuzzy, c-format
+msgid "Ignoring long string value record for numeric variable %s."
+msgstr ""
+"Kan missing values uit bron bestand niet toepassen op lange string variabele "
+"%s."
+
+#: src/data/sys-file-reader.c:1400
+#, c-format
+msgid ""
+"Ignoring long string value record for variable %s because the record's width "
+"(%d) does not match the variable's width (%d)"
+msgstr ""
+
+#: src/data/sys-file-reader.c:1422
+#, c-format
+msgid ""
+"Ignoring long string value %zu for variable %s, with width %d, that has bad "
+"value width %zu."
+msgstr ""
+
+#: src/data/sys-file-reader.c:1537
msgid "File ends in partial case."
msgstr "Bestand eindigt in gedeeltelijke case."
-#: src/data/sys-file-reader.c:1422
+#: src/data/sys-file-reader.c:1545
#, c-format
msgid "Error reading case from file %s."
msgstr "Fout tijdens lezen case van bestand %s."
-#: src/data/sys-file-reader.c:1519 src/data/sys-file-reader.c:1555
+#: src/data/sys-file-reader.c:1642 src/data/sys-file-reader.c:1678
msgid "Compressed data is corrupt."
msgstr "Gecomprimeerde data is corrupt."
-#: src/data/sys-file-reader.c:1642
+#: src/data/sys-file-reader.c:1765
#, c-format
msgid "Variable index %d not in valid range 1...%d."
msgstr "Variabele index %d niet in geldige range 1...%d."
-#: src/data/sys-file-reader.c:1647
+#: src/data/sys-file-reader.c:1770
#, c-format
msgid "Variable index %d refers to long string continuation."
msgstr "Variabele index %d verwijst naar lange string voortzetting."
-#: src/data/sys-file-reader.c:1715
+#: src/data/sys-file-reader.c:1838
#, c-format
msgid "Suppressed %d additional related warnings."
msgstr "Onderdrukt %d extra gerelateerde waarschuwingen."
-#: src/data/sys-file-reader.c:1756
+#: src/data/sys-file-reader.c:1879
#, c-format
msgid "Variable map refers to unknown variable %s."
msgstr "Variabele afbeelding refereert aan onbekende variabele %s."
-#: src/data/sys-file-reader.c:1864
+#: src/data/sys-file-reader.c:1987
#, c-format
msgid "System error: %s."
msgstr "Systeem fout: %s."
-#: src/data/sys-file-reader.c:1866
+#: src/data/sys-file-reader.c:1989
msgid "Unexpected end of file."
msgstr "Onverwacht bestand einde."
-#: src/data/sys-file-writer.c:173
+#: src/data/sys-file-writer.c:175
#, c-format
msgid "Unknown system file version %d. Treating as version %d."
msgstr "Onbekende systeem bestand versie %d. Behandeld als versie %d."
-#: src/data/sys-file-writer.c:212
+#: src/data/sys-file-writer.c:214
#, c-format
msgid "Error opening \"%s\" for writing as a system file: %s."
msgstr ""
"Fout bij het openen van \"%s\" voor het schrijven als een systeem bestand: %"
"s."
-#: src/data/sys-file-writer.c:837
+#: src/data/sys-file-writer.c:917
#, c-format
msgid "An I/O error occurred writing system file \"%s\"."
msgstr ""
"Een I/O fout is opgetreden tijdens het schrijven van systeem bestand \"%s\"."
-#: src/data/variable.c:240
+#: src/data/variable.c:242
#, c-format
msgid ""
"Character `%c' (in %s) may not appear as the first character in a variable "
"Karakter '%c' (in %s) mag niet als eerste karakter in een variabele naam "
"voorkomen. "
-#: src/data/variable.c:252
+#: src/data/variable.c:254
#, c-format
msgid "Character `%c' (in %s) may not appear in a variable name."
msgstr "Karakter '%c' (in %s) mag niet in een variabele naam voorkomen."
-#: src/data/variable.c:280
+#: src/data/variable.c:282
msgid "Variable name cannot be empty string."
msgstr "Variabele naam kan geen lege string zijn."
-#: src/data/variable.c:286
+#: src/data/variable.c:288
#, c-format
msgid "Variable name %s exceeds %d-character limit."
msgstr "Variabele naam %s overschrijdt de limiet van %d-karakters."
-#: src/data/variable.c:294
+#: src/data/variable.c:296
#, c-format
msgid "`%s' may not be used as a variable name because it is a reserved word."
msgstr ""
"'%s' mag niet gebruikt worden als variabele naam omdat het een gereserveerd "
"woord is."
-#: src/language/command.c:208
+#: src/language/command.c:208 src/language/expressions/parse.c:1267
#, c-format
-msgid "%s is unimplemented."
-msgstr "%s is niet geïmplementeerd."
+msgid "%s is not yet implemented."
+msgstr "%s is nog niet geïmplementeerd."
#: src/language/command.c:214
#, c-format
"Variabele naam %s gespecificeerd op %s subopdracht dupliceert een bestaande "
"variabele naam."
-#: src/language/data-io/combine-files.c:757
+#: src/language/data-io/combine-files.c:762
#, c-format
msgid "Encountered %zu sets of duplicate cases in the master file."
msgstr "Ontmoet %zu sets van dubbele cases in het master bestand. "
#: src/language/dictionary/split-file.c:84
#: src/language/dictionary/sys-file-info.c:169
#: src/language/dictionary/sys-file-info.c:393
-#: src/language/dictionary/sys-file-info.c:716
+#: src/language/dictionary/sys-file-info.c:725
#: src/language/stats/descriptives.c:885 src/ui/gui/psppire-dictview.c:502
msgid "Variable"
msgstr "Variabele"
msgstr ""
#: src/language/data-io/data-parser.c:646 src/language/data-io/print.c:405
-#: src/ui/gui/crosstabs.glade:92 src/ui/gui/psppire-var-sheet.c:545
-#: src/ui/gui/psppire-var-store.c:791
+#: src/ui/gui/crosstabs.glade:92 src/ui/gui/psppire-var-sheet.c:534
+#: src/ui/gui/psppire-var-store.c:800
msgid "Columns"
msgstr "Kolommen"
"Het gespecificeerde record nummer, %ld, overschrijdt het aantal records per "
"case zoals gespecificeerd in FIXCASE, %d."
-#: src/language/data-io/inpt-pgm.c:129
+#: src/language/data-io/inpt-pgm.c:130
msgid "Unexpected end-of-file within INPUT PROGRAM."
msgstr "Onverwacht einde-bestand binnen INPUT PROGRAM."
-#: src/language/data-io/inpt-pgm.c:142
+#: src/language/data-io/inpt-pgm.c:143
msgid "Input program did not create any variables."
msgstr "Input program heeft geen variabelen gecreëerd."
-#: src/language/data-io/inpt-pgm.c:286
+#: src/language/data-io/inpt-pgm.c:288
msgid "COLUMN subcommand multiply specified."
msgstr "COLUMN subopdracht meerdere keren gespecificeerd."
-#: src/language/data-io/inpt-pgm.c:336
+#: src/language/data-io/inpt-pgm.c:338
msgid ""
"REREAD: Column numbers must be positive finite numbers. Column set to 1."
msgstr ""
msgstr ""
"De output vraagt %d records maar %zu gespecificeerd bij RECORDS subopdracht. "
-#: src/language/data-io/print.c:436
+#: src/language/data-io/print.c:437
#, c-format
msgid "Writing %d record to %s."
msgid_plural "Writing %d records to %s."
msgstr[0] "Schrijven van %d record naar %s."
msgstr[1] "Schrijven van %d records naar %s."
-#: src/language/data-io/print.c:440
+#: src/language/data-io/print.c:441
#, c-format
msgid "Writing %d record."
msgid_plural "Writing %d records."
msgstr[0] "Schrijven van %d record."
msgstr[1] "Schrijven van %d records."
-#: src/language/data-io/print-space.c:73 src/language/lexer/lexer.c:479
+#: src/language/data-io/print-space.c:73 src/language/lexer/lexer.c:478
#: src/language/stats/autorecode.c:154 src/language/xforms/select-if.c:60
msgid "expecting end of command"
msgstr "verwacht einde van opdracht "
msgid "Variable %s is %s in target file, but %s in source file."
msgstr "Variabele %s is %s in doel bestand, maar %s in bron bestand."
-#: src/language/dictionary/apply-dictionary.c:99
-#, c-format
-msgid "Cannot add value labels from source file to long string variable %s."
-msgstr ""
-"Kan geen value labels van bron bestand toevoegen aan lange string variabele %"
-"s."
-
-#: src/language/dictionary/apply-dictionary.c:113
-#, c-format
-msgid ""
-"Cannot apply missing values from source file to long string variable %s."
-msgstr ""
-"Kan missing values uit bron bestand niet toepassen op lange string variabele "
-"%s."
-
-#: src/language/dictionary/apply-dictionary.c:129
+#: src/language/dictionary/apply-dictionary.c:115
msgid "No matching variables found between the source and target files."
msgstr ""
"Geen overeenkomende variabelen gevonden tussen het bron en het doel bestand."
"Kan numerieke variabelen (b.v. %s) en string variabelen (b.v. %s) niet mixen "
"binnen een enkele lijst."
-#: src/language/dictionary/missing-values.c:117
-#, c-format
-msgid "Truncating missing value to short string length (%d characters)."
+#: src/language/dictionary/missing-values.c:116
+#, fuzzy, c-format
+msgid "Truncating missing value to maximum acceptable length (%d bytes)."
msgstr "Afkappen missing value naar short string lengte (%d karakters)."
-#: src/language/dictionary/missing-values.c:139
+#: src/language/dictionary/missing-values.c:138
#, c-format
msgid "Missing values provided are too long to assign to variable of width %d."
msgstr ""
msgstr "Hernoemen zou variabele naam %s dupliceren."
#: src/language/dictionary/split-file.c:85
-#: src/language/dictionary/sys-file-info.c:487
-#: src/language/dictionary/sys-file-info.c:636
-#: src/language/stats/crosstabs.q:1167 src/language/stats/crosstabs.q:1194
-#: src/language/stats/crosstabs.q:1214 src/language/stats/crosstabs.q:1236
-#: src/language/stats/examine.q:1958 src/language/stats/frequencies.q:1059
-#: src/language/stats/frequencies.q:1184 src/language/stats/reliability.q:581
-#: src/language/stats/reliability.q:592
+#: src/language/dictionary/sys-file-info.c:486
+#: src/language/dictionary/sys-file-info.c:641
+#: src/language/stats/crosstabs.q:1231 src/language/stats/crosstabs.q:1258
+#: src/language/stats/crosstabs.q:1282 src/language/stats/crosstabs.q:1307
+#: src/language/stats/examine.q:1959 src/language/stats/frequencies.q:1048
+#: src/language/stats/frequencies.q:1173 src/language/stats/reliability.q:582
+#: src/language/stats/reliability.q:593
msgid "Value"
msgstr "Waarde"
#: src/language/dictionary/split-file.c:86
#: src/language/dictionary/sys-file-info.c:397
-#: src/language/dictionary/sys-file-info.c:637 src/ui/gui/crosstabs.glade:275
-#: src/ui/gui/psppire.glade:1999 src/ui/gui/psppire-var-sheet.c:542
-#: src/ui/gui/psppire-var-store.c:788
+#: src/language/dictionary/sys-file-info.c:642 src/ui/gui/crosstabs.glade:275
+#: src/ui/gui/psppire.glade:1974 src/ui/gui/psppire-var-sheet.c:531
+#: src/ui/gui/psppire-var-store.c:797
msgid "Label"
msgstr ""
msgid "File:"
msgstr "Bestand:"
-#: src/language/dictionary/sys-file-info.c:115 src/ui/gui/psppire.glade:1938
+#: src/language/dictionary/sys-file-info.c:115 src/ui/gui/psppire.glade:1913
#: src/ui/gui/recode.glade:841
msgid "Label:"
msgstr ""
#: src/language/dictionary/sys-file-info.c:171
#: src/language/dictionary/sys-file-info.c:399
-#: src/language/dictionary/sys-file-info.c:715
+#: src/language/dictionary/sys-file-info.c:724
msgid "Position"
msgstr "Positie"
msgid "Documents in the active file:"
msgstr "Documenten in het actieve bestand:"
-#: src/language/dictionary/sys-file-info.c:486
+#: src/language/dictionary/sys-file-info.c:485
msgid "Attribute"
msgstr "Attribuut"
-#: src/language/dictionary/sys-file-info.c:544
+#: src/language/dictionary/sys-file-info.c:543
#, c-format
msgid "Format: %s"
msgstr "Formaat: %s"
-#: src/language/dictionary/sys-file-info.c:551
+#: src/language/dictionary/sys-file-info.c:550
#, c-format
msgid "Print Format: %s"
msgstr "Print Formaat: %s"
msgid "Write Format: %s"
msgstr "Schrijf Formaat: %s"
-#: src/language/dictionary/sys-file-info.c:566
+#: src/language/dictionary/sys-file-info.c:567
#, c-format
msgid "Measure: %s"
msgstr "Meting: %s"
-#: src/language/dictionary/sys-file-info.c:567
+#: src/language/dictionary/sys-file-info.c:568
#: src/ui/gui/psppire-var-sheet.c:111
msgid "Nominal"
msgstr "Nominaal"
-#: src/language/dictionary/sys-file-info.c:568
+#: src/language/dictionary/sys-file-info.c:569
#: src/ui/gui/psppire-var-sheet.c:112
msgid "Ordinal"
msgstr "Ordinaal"
-#: src/language/dictionary/sys-file-info.c:569
+#: src/language/dictionary/sys-file-info.c:570
#: src/ui/gui/psppire-var-sheet.c:113
msgid "Scale"
msgstr "Schaal"
-#: src/language/dictionary/sys-file-info.c:572
+#: src/language/dictionary/sys-file-info.c:573
#, c-format
msgid "Display Alignment: %s"
msgstr "Toon Groepering: %s"
-#: src/language/dictionary/sys-file-info.c:573
+#: src/language/dictionary/sys-file-info.c:574
#: src/ui/gui/psppire-var-sheet.c:104
msgid "Left"
msgstr "Links"
-#: src/language/dictionary/sys-file-info.c:574
+#: src/language/dictionary/sys-file-info.c:575
#: src/ui/gui/psppire-var-sheet.c:106
msgid "Center"
msgstr "Centreer"
-#: src/language/dictionary/sys-file-info.c:575
+#: src/language/dictionary/sys-file-info.c:576
#: src/ui/gui/psppire-var-sheet.c:105
msgid "Right"
msgstr "Rechts"
-#: src/language/dictionary/sys-file-info.c:578
+#: src/language/dictionary/sys-file-info.c:579
#, c-format
msgid "Display Width: %d"
msgstr "Toonbreedte: %d"
-#: src/language/dictionary/sys-file-info.c:590
+#: src/language/dictionary/sys-file-info.c:593
msgid "Missing Values: "
msgstr "Ontbrekende Waardes:"
-#: src/language/dictionary/sys-file-info.c:693
+#: src/language/dictionary/sys-file-info.c:702
msgid "No vectors defined."
msgstr "Geen vectoren gedefinieerd."
-#: src/language/dictionary/sys-file-info.c:714
+#: src/language/dictionary/sys-file-info.c:723
msgid "Vector"
msgstr ""
-#: src/language/dictionary/sys-file-info.c:717
+#: src/language/dictionary/sys-file-info.c:726
msgid "Print Format"
msgstr "Print Formaat"
-#: src/language/dictionary/value-labels.c:121
-#, c-format
-msgid ""
-"It is not possible to assign value labels to long string variables such as %"
-"s."
-msgstr ""
-"Het is niet mogelijk om waarde labels aan lange string variabelen als %s toe "
-"te kennen."
-
-#: src/language/dictionary/value-labels.c:157 src/language/lexer/lexer.c:632
-msgid "expecting string"
-msgstr "string verwacht"
-
-#: src/language/dictionary/value-labels.c:166 src/language/lexer/lexer.c:659
-msgid "expecting number"
-msgstr "nummer verwacht"
-
-#: src/language/dictionary/value-labels.c:182
+#: src/language/dictionary/value-labels.c:150
msgid "Truncating value label to 60 characters."
msgstr "Afkappen waarde label tot 60 karakters."
-#: src/language/dictionary/variable-display.c:119
+#: src/language/dictionary/variable-display.c:120
msgid "Variable display width must be a positive integer."
msgstr "Variabele toonbreedte moet een positieve integer zijn."
msgid "The weighting variable may not be scratch."
msgstr "De weging variabele mag geen scratch zijn."
-#: src/language/expressions/evaluate.c:154
+#: src/language/expressions/evaluate.c:155
msgid "expecting number or string"
msgstr "verwacht nummer of string"
-#: src/language/expressions/evaluate.c:168
+#: src/language/expressions/evaluate.c:169
#, c-format
msgid "Duplicate variable name %s."
msgstr "Dubbele variabele naam %s."
msgid "%s is a PSPP extension."
msgstr "%s is een PSPP extensie."
-#: src/language/expressions/parse.c:1267
-#, c-format
-msgid "%s is not yet implemented."
-msgstr "%s is nog niet geïmplementeerd."
-
#: src/language/expressions/parse.c:1273
#, c-format
msgid "%s may not appear after TEMPORARY."
msgstr "%s vormt geen geldig nummer."
#: src/language/lexer/lexer.c:389
-#, c-format
-msgid "Bad character in input: `%c'."
+#, fuzzy, c-format
+msgid "Bad character in input: `%s'."
msgstr "Fout karakter in input: '%c'."
-#: src/language/lexer/lexer.c:391
-#, c-format
-msgid "Bad character in input: `\\%o'."
-msgstr "Fout karakter in input: '\\%o'."
-
-#: src/language/lexer/lexer.c:427
+#: src/language/lexer/lexer.c:426
#, c-format
msgid "Subcommand %s may only be specified once."
msgstr "Subopdracht %s mag slechts een keer gespecificeerd worden."
-#: src/language/lexer/lexer.c:435
+#: src/language/lexer/lexer.c:434
#, c-format
msgid "missing required subcommand %s"
msgstr "mis verplichte subopdracht %s"
-#: src/language/lexer/lexer.c:464
+#: src/language/lexer/lexer.c:463
#, c-format
msgid "Syntax error %s at %s."
msgstr "Syntax fout %s op %s."
-#: src/language/lexer/lexer.c:467
+#: src/language/lexer/lexer.c:466
#, c-format
msgid "Syntax error at %s."
msgstr "Syntax fout op %s."
-#: src/language/lexer/lexer.c:601 src/language/lexer/lexer.c:618
+#: src/language/lexer/lexer.c:600 src/language/lexer/lexer.c:617
#, c-format
msgid "expecting `%s'"
msgstr "verwacht '%s'"
-#: src/language/lexer/lexer.c:646
+#: src/language/lexer/lexer.c:631
+msgid "expecting string"
+msgstr "string verwacht"
+
+#: src/language/lexer/lexer.c:645
msgid "expecting integer"
msgstr "verwacht integer"
-#: src/language/lexer/lexer.c:671
+#: src/language/lexer/lexer.c:658
+msgid "expecting number"
+msgstr "nummer verwacht"
+
+#: src/language/lexer/lexer.c:670
msgid "expecting identifier"
msgstr "verwacht herkenningsteken"
-#: src/language/lexer/lexer.c:1065
+#: src/language/lexer/lexer.c:1064
msgid "binary"
msgstr "binair"
-#: src/language/lexer/lexer.c:1070
+#: src/language/lexer/lexer.c:1069
msgid "octal"
msgstr "octaal"
-#: src/language/lexer/lexer.c:1075
+#: src/language/lexer/lexer.c:1074
msgid "hex"
msgstr ""
-#: src/language/lexer/lexer.c:1085
+#: src/language/lexer/lexer.c:1084
#, c-format
msgid "String of %s digits has %zu characters, which is not a multiple of %d."
msgstr ""
"String van %s cijfers heeft %zu karakters, wat geen meervoud van %d is."
-#: src/language/lexer/lexer.c:1114
+#: src/language/lexer/lexer.c:1113
#, c-format
msgid "`%c' is not a valid %s digit."
msgstr "'%c' is geen geldig %s cijfer."
-#: src/language/lexer/lexer.c:1148
+#: src/language/lexer/lexer.c:1147
msgid "Unterminated string constant."
msgstr "Geen einde aan string constante."
-#: src/language/lexer/lexer.c:1202
+#: src/language/lexer/lexer.c:1201
msgid "Unexpected end of file in string concatenation."
msgstr "Onverwacht bestandseinde in string samenvoeging."
-#: src/language/lexer/lexer.c:1210
+#: src/language/lexer/lexer.c:1209
msgid "String expected following `+'."
msgstr "String verwacht achter '+'."
-#: src/language/lexer/lexer.c:1223
+#: src/language/lexer/lexer.c:1222
#, c-format
msgid "String exceeds 255 characters in length (%zu characters)."
msgstr "String overschrijdt de lengte van 255 karakters (%zu karakters)."
-#: src/language/lexer/range-parser.c:60
+#: src/language/lexer/value-parser.c:60
#, c-format
msgid ""
"Low end of range (%g) is below high end (%g). The range will be treated as "
"Ondergrens van range (%g) is lager dan bovengrens (%g). De range wordt "
"behandeld als omgekeerd."
-#: src/language/lexer/range-parser.c:68
+#: src/language/lexer/value-parser.c:68
#, c-format
msgid "Ends of range are equal (%g)."
msgstr "Eindes van range zijn gelijk (%g)."
-#: src/language/lexer/range-parser.c:76
+#: src/language/lexer/value-parser.c:76
msgid "LO or LOWEST must be part of a range."
msgstr "LO of LOWEST moet een onderdeel van een range zijn."
-#: src/language/lexer/range-parser.c:108
+#: src/language/lexer/value-parser.c:108
msgid "System-missing value is not valid here."
msgstr "System-missing waarde is hier niet geldig."
-#: src/language/lexer/range-parser.c:116
+#: src/language/lexer/value-parser.c:116
msgid "expecting number or data string"
msgstr "nummer of data string verwacht"
msgid "Duplicate variable name %s among target variables."
msgstr "Dubbele variabele naam %s tussen doel variabelen."
-#: src/language/stats/binomial.c:142
+#: src/language/stats/binomial.c:141
#, c-format
msgid "Variable %s is not dichotomous"
msgstr "Variabele %s is niet dichotomisch "
-#: src/language/stats/binomial.c:207
+#: src/language/stats/binomial.c:194
msgid "Binomial Test"
msgstr ""
-#: src/language/stats/binomial.c:238
+#: src/language/stats/binomial.c:224
msgid "Group1"
msgstr "Groep1 "
-#: src/language/stats/binomial.c:239
+#: src/language/stats/binomial.c:225
msgid "Group2"
msgstr "Groep2"
-#: src/language/stats/binomial.c:240 src/language/stats/chisquare.c:224
-#: src/language/stats/chisquare.c:284 src/language/stats/crosstabs.q:868
-#: src/language/stats/crosstabs.q:1074 src/language/stats/crosstabs.q:1797
-#: src/language/stats/examine.q:1214 src/language/stats/frequencies.q:1136
-#: src/language/stats/oneway.q:305 src/language/stats/oneway.q:475
-#: src/language/stats/regression.q:309 src/language/stats/reliability.q:717
-#: src/language/stats/sign.c:93 src/language/stats/wilcoxon.c:246
+#: src/language/stats/binomial.c:226 src/language/stats/chisquare.c:202
+#: src/language/stats/chisquare.c:262 src/language/stats/crosstabs.q:843
+#: src/language/stats/crosstabs.q:1170 src/language/stats/crosstabs.q:1594
+#: src/language/stats/examine.q:1216 src/language/stats/frequencies.q:1125
+#: src/language/stats/oneway.q:305 src/language/stats/oneway.q:476
+#: src/language/stats/regression.q:309 src/language/stats/reliability.q:718
+#: src/language/stats/sign.c:94 src/language/stats/wilcoxon.c:262
#: src/ui/gui/crosstabs-dialog.c:59
msgid "Total"
msgstr "Totaal"
-#: src/language/stats/binomial.c:273 src/language/stats/chisquare.c:247
-#: src/language/stats/crosstabs.q:1192 src/language/stats/crosstabs.q:1233
+#: src/language/stats/binomial.c:259 src/language/stats/chisquare.c:225
+#: src/language/stats/crosstabs.q:1256 src/language/stats/crosstabs.q:1304
msgid "Category"
msgstr "Categorie"
-#: src/language/stats/binomial.c:274 src/language/stats/crosstabs.q:878
-#: src/language/stats/examine.q:1287 src/language/stats/frequencies.q:1407
+#: src/language/stats/binomial.c:260 src/language/stats/crosstabs.q:850
+#: src/language/stats/examine.q:1289 src/language/stats/frequencies.q:1396
#: src/language/stats/npar-summary.c:123 src/language/stats/oneway.q:389
-#: src/language/stats/reliability.q:720 src/language/stats/sign.c:73
-#: src/language/stats/t-test.q:700 src/language/stats/t-test.q:724
-#: src/language/stats/t-test.q:863 src/language/stats/t-test.q:1425
-#: src/language/stats/wilcoxon.c:229
+#: src/language/stats/reliability.q:721 src/language/stats/sign.c:74
+#: src/language/stats/t-test.q:506 src/language/stats/t-test.q:526
+#: src/language/stats/t-test.q:626 src/language/stats/t-test.q:1105
+#: src/language/stats/wilcoxon.c:245
msgid "N"
msgstr ""
-#: src/language/stats/binomial.c:275
+#: src/language/stats/binomial.c:261
msgid "Observed Prop."
msgstr ""
-#: src/language/stats/binomial.c:276
+#: src/language/stats/binomial.c:262
msgid "Test Prop."
msgstr ""
-#: src/language/stats/binomial.c:279
+#: src/language/stats/binomial.c:265
#, c-format
msgid "Exact Sig. (%d-tailed)"
msgstr ""
-#: src/language/stats/chisquare.c:194
+#: src/language/stats/chisquare.c:172
#, c-format
msgid ""
"CHISQUARE test specified %d expected values, but %d distinct values were "
"CHISQUARE test specificeert %d verwachte waardes, maar %d verschillende "
"waardes werden gevonden in variabele %s."
-#: src/language/stats/chisquare.c:208 src/language/stats/chisquare.c:248
+#: src/language/stats/chisquare.c:186 src/language/stats/chisquare.c:226
msgid "Observed N"
msgstr "Waargenomen N"
-#: src/language/stats/chisquare.c:209 src/language/stats/chisquare.c:249
+#: src/language/stats/chisquare.c:187 src/language/stats/chisquare.c:227
msgid "Expected N"
msgstr "Verwacht N"
-#: src/language/stats/chisquare.c:210 src/language/stats/chisquare.c:250
+#: src/language/stats/chisquare.c:188 src/language/stats/chisquare.c:228
#: src/language/stats/regression.q:308 src/ui/gui/crosstabs-dialog.c:61
msgid "Residual"
msgstr "Overblijvend"
-#: src/language/stats/chisquare.c:243 src/language/stats/sign.c:61
+#: src/language/stats/chisquare.c:221 src/language/stats/sign.c:62
msgid "Frequencies"
msgstr "Frequenties"
-#: src/language/stats/chisquare.c:298 src/language/stats/sign.c:114
-#: src/language/stats/wilcoxon.c:297
+#: src/language/stats/chisquare.c:276 src/language/stats/sign.c:115
+#: src/language/stats/wilcoxon.c:313
msgid "Test Statistics"
msgstr ""
-#: src/language/stats/chisquare.c:312
+#: src/language/stats/chisquare.c:290
msgid "Chi-Square"
msgstr ""
-#: src/language/stats/chisquare.c:313 src/language/stats/crosstabs.q:1168
-#: src/language/stats/oneway.q:278 src/language/stats/oneway.q:689
-#: src/language/stats/regression.q:302 src/language/stats/t-test.q:1026
-#: src/language/stats/t-test.q:1219 src/language/stats/t-test.q:1316
+#: src/language/stats/chisquare.c:291 src/language/stats/crosstabs.q:1232
+#: src/language/stats/oneway.q:278 src/language/stats/oneway.q:691
+#: src/language/stats/regression.q:302 src/language/stats/t-test.q:753
+#: src/language/stats/t-test.q:924 src/language/stats/t-test.q:1011
msgid "df"
msgstr ""
-#: src/language/stats/chisquare.c:314
+#: src/language/stats/chisquare.c:292
msgid "Asymp. Sig."
msgstr ""
-#: src/language/stats/crosstabs.q:278
+#: src/language/stats/crosstabs.q:325
msgid ""
"Missing mode REPORT not allowed in general mode. Assuming MISSING=TABLE."
msgstr ""
"Missing modus REPORT niet toegestaan in algemene modus. MISSING=TABLE "
"aangenomen."
-#: src/language/stats/crosstabs.q:288
-msgid "Write mode ALL not allowed in general mode. Assuming WRITE=CELLS."
-msgstr ""
-"Write modus ALL niet toegestaan in algemen modus. WRITE=CELLS aangenomen."
-
-#: src/language/stats/crosstabs.q:364
+#: src/language/stats/crosstabs.q:414
msgid "Too many cross-tabulation variables or dimensions."
msgstr "Te veel cross-tabulation variabelen of dimensies."
-#: src/language/stats/crosstabs.q:374
+#: src/language/stats/crosstabs.q:424
msgid "expecting BY"
msgstr "BY verwacht"
-#: src/language/stats/crosstabs.q:441
+#: src/language/stats/crosstabs.q:484
msgid "VARIABLES must be specified before TABLES."
msgstr "VARIABLES dient voor TABLES gespecificeerd te worden."
-#: src/language/stats/crosstabs.q:479
+#: src/language/stats/crosstabs.q:522
#, c-format
msgid "Maximum value (%ld) less than minimum value (%ld)."
msgstr "Maximum waarde (%ld) is kleiner dan minimum waarde (%ld)."
-#: src/language/stats/crosstabs.q:863
+#: src/language/stats/crosstabs.q:838
msgid "Summary."
msgstr "Overzicht."
-#: src/language/stats/crosstabs.q:865 src/language/stats/examine.q:1275
-#: src/language/stats/reliability.q:708
+#: src/language/stats/crosstabs.q:840 src/language/stats/examine.q:1277
+#: src/language/stats/reliability.q:709
msgid "Cases"
msgstr ""
-#: src/language/stats/crosstabs.q:866 src/language/stats/examine.q:1212
-#: src/language/stats/frequencies.q:1057 src/language/stats/frequencies.q:1408
-#: src/language/stats/reliability.q:711
+#: src/language/stats/crosstabs.q:841 src/language/stats/examine.q:1214
+#: src/language/stats/frequencies.q:1046 src/language/stats/frequencies.q:1397
+#: src/language/stats/reliability.q:712
msgid "Valid"
msgstr "Geldig"
-#: src/language/stats/crosstabs.q:867 src/language/stats/examine.q:1213
-#: src/language/stats/frequencies.q:1127 src/language/stats/frequencies.q:1409
-#: src/ui/gui/psppire-var-sheet.c:544 src/ui/gui/psppire-var-store.c:790
+#: src/language/stats/crosstabs.q:842 src/language/stats/examine.q:1215
+#: src/language/stats/frequencies.q:1116 src/language/stats/frequencies.q:1398
+#: src/ui/gui/psppire-var-sheet.c:533 src/ui/gui/psppire-var-store.c:799
msgid "Missing"
msgstr "Ontbrekend"
-#: src/language/stats/crosstabs.q:879 src/language/stats/examine.q:1290
-#: src/language/stats/frequencies.q:1061 src/language/stats/frequencies.q:1062
-#: src/language/stats/frequencies.q:1063
+#: src/language/stats/crosstabs.q:851 src/language/stats/examine.q:1292
+#: src/language/stats/frequencies.q:1050 src/language/stats/frequencies.q:1051
+#: src/language/stats/frequencies.q:1052
msgid "Percent"
msgstr "Procent"
-#: src/language/stats/crosstabs.q:1126
+#: src/language/stats/crosstabs.q:1131
msgid "count"
msgstr "aantal"
-#: src/language/stats/crosstabs.q:1127
+#: src/language/stats/crosstabs.q:1132
msgid "row %"
msgstr "rij %"
-#: src/language/stats/crosstabs.q:1128
+#: src/language/stats/crosstabs.q:1133
msgid "column %"
msgstr "kolom %"
-#: src/language/stats/crosstabs.q:1129
+#: src/language/stats/crosstabs.q:1134
msgid "total %"
msgstr "totaal %"
-#: src/language/stats/crosstabs.q:1130
+#: src/language/stats/crosstabs.q:1135
msgid "expected"
msgstr "verwacht"
-#: src/language/stats/crosstabs.q:1131
+#: src/language/stats/crosstabs.q:1136
msgid "residual"
msgstr "overblijvend"
-#: src/language/stats/crosstabs.q:1132
+#: src/language/stats/crosstabs.q:1137
msgid "std. resid."
msgstr ""
-#: src/language/stats/crosstabs.q:1133
+#: src/language/stats/crosstabs.q:1138
msgid "adj. resid."
msgstr ""
-#: src/language/stats/crosstabs.q:1163
+#: src/language/stats/crosstabs.q:1227
msgid "Chi-square tests."
msgstr ""
-#: src/language/stats/crosstabs.q:1166 src/language/stats/crosstabs.q:1193
-#: src/language/stats/crosstabs.q:1213 src/language/stats/crosstabs.q:1234
-#: src/language/stats/examine.q:1752 src/ui/gui/checkbox-treeview.c:92
+#: src/language/stats/crosstabs.q:1230 src/language/stats/crosstabs.q:1257
+#: src/language/stats/crosstabs.q:1281 src/language/stats/crosstabs.q:1305
+#: src/language/stats/examine.q:1753 src/ui/gui/checkbox-treeview.c:92
msgid "Statistic"
msgstr ""
-#: src/language/stats/crosstabs.q:1170
+#: src/language/stats/crosstabs.q:1234
msgid "Asymp. Sig. (2-sided)"
msgstr ""
-#: src/language/stats/crosstabs.q:1172
-msgid "Exact. Sig. (2-sided)"
+#: src/language/stats/crosstabs.q:1236
+msgid "Exact Sig. (2-sided)"
msgstr ""
-#: src/language/stats/crosstabs.q:1174
-msgid "Exact. Sig. (1-sided)"
+#: src/language/stats/crosstabs.q:1238
+msgid "Exact Sig. (1-sided)"
msgstr ""
-#: src/language/stats/crosstabs.q:1189
+#: src/language/stats/crosstabs.q:1253
msgid "Symmetric measures."
msgstr "Symmetrische metingen."
-#: src/language/stats/crosstabs.q:1195 src/language/stats/crosstabs.q:1237
+#: src/language/stats/crosstabs.q:1259 src/language/stats/crosstabs.q:1308
msgid "Asymp. Std. Error"
msgstr ""
-#: src/language/stats/crosstabs.q:1196 src/language/stats/crosstabs.q:1238
+#: src/language/stats/crosstabs.q:1260 src/language/stats/crosstabs.q:1309
msgid "Approx. T"
msgstr ""
-#: src/language/stats/crosstabs.q:1197 src/language/stats/crosstabs.q:1239
+#: src/language/stats/crosstabs.q:1261 src/language/stats/crosstabs.q:1310
msgid "Approx. Sig."
msgstr ""
-#: src/language/stats/crosstabs.q:1208
+#: src/language/stats/crosstabs.q:1276
msgid "Risk estimate."
msgstr ""
-#: src/language/stats/crosstabs.q:1212
+#: src/language/stats/crosstabs.q:1280
#, c-format
msgid "95%% Confidence Interval"
msgstr ""
-#: src/language/stats/crosstabs.q:1215 src/language/stats/t-test.q:1030
-#: src/language/stats/t-test.q:1216 src/language/stats/t-test.q:1319
+#: src/language/stats/crosstabs.q:1283 src/language/stats/t-test.q:757
+#: src/language/stats/t-test.q:921 src/language/stats/t-test.q:1014
msgid "Lower"
msgstr "Lager"
-#: src/language/stats/crosstabs.q:1216 src/language/stats/t-test.q:1031
-#: src/language/stats/t-test.q:1217 src/language/stats/t-test.q:1320
+#: src/language/stats/crosstabs.q:1284 src/language/stats/t-test.q:758
+#: src/language/stats/t-test.q:922 src/language/stats/t-test.q:1015
msgid "Upper"
msgstr "Hoger"
-#: src/language/stats/crosstabs.q:1230
+#: src/language/stats/crosstabs.q:1301
msgid "Directional measures."
msgstr "Directioneel metingen."
-#: src/language/stats/crosstabs.q:1235 src/ui/gui/psppire.glade:2124
-#: src/ui/gui/psppire-var-sheet.c:539 src/ui/gui/psppire-var-store.c:785
+#: src/language/stats/crosstabs.q:1306 src/ui/gui/psppire.glade:2099
+#: src/ui/gui/psppire-var-sheet.c:528 src/ui/gui/psppire-var-store.c:794
msgid "Type"
msgstr ""
-#: src/language/stats/crosstabs.q:1991
+#: src/language/stats/crosstabs.q:1774
msgid "Pearson Chi-Square"
msgstr ""
-#: src/language/stats/crosstabs.q:1992
+#: src/language/stats/crosstabs.q:1775
msgid "Likelihood Ratio"
msgstr ""
-#: src/language/stats/crosstabs.q:1993
+#: src/language/stats/crosstabs.q:1776
msgid "Fisher's Exact Test"
msgstr ""
-#: src/language/stats/crosstabs.q:1994
+#: src/language/stats/crosstabs.q:1777
msgid "Continuity Correction"
msgstr ""
-#: src/language/stats/crosstabs.q:1995
+#: src/language/stats/crosstabs.q:1778
msgid "Linear-by-Linear Association"
msgstr ""
-#: src/language/stats/crosstabs.q:2032 src/language/stats/crosstabs.q:2105
-#: src/language/stats/crosstabs.q:2167
+#: src/language/stats/crosstabs.q:1813 src/language/stats/crosstabs.q:1888
+#: src/language/stats/crosstabs.q:1953
msgid "N of Valid Cases"
msgstr ""
-#: src/language/stats/crosstabs.q:2051 src/language/stats/crosstabs.q:2183
+#: src/language/stats/crosstabs.q:1832 src/language/stats/crosstabs.q:1971
msgid "Nominal by Nominal"
msgstr ""
-#: src/language/stats/crosstabs.q:2052 src/language/stats/crosstabs.q:2184
+#: src/language/stats/crosstabs.q:1833 src/language/stats/crosstabs.q:1972
msgid "Ordinal by Ordinal"
msgstr ""
-#: src/language/stats/crosstabs.q:2053
+#: src/language/stats/crosstabs.q:1834
msgid "Interval by Interval"
msgstr ""
-#: src/language/stats/crosstabs.q:2054
+#: src/language/stats/crosstabs.q:1835
msgid "Measure of Agreement"
msgstr ""
-#: src/language/stats/crosstabs.q:2059 src/ui/gui/crosstabs-dialog.c:41
+#: src/language/stats/crosstabs.q:1840 src/ui/gui/crosstabs-dialog.c:41
msgid "Phi"
msgstr ""
-#: src/language/stats/crosstabs.q:2060
+#: src/language/stats/crosstabs.q:1841
msgid "Cramer's V"
msgstr ""
-#: src/language/stats/crosstabs.q:2061
+#: src/language/stats/crosstabs.q:1842
msgid "Contingency Coefficient"
msgstr ""
-#: src/language/stats/crosstabs.q:2062
+#: src/language/stats/crosstabs.q:1843
msgid "Kendall's tau-b"
msgstr ""
-#: src/language/stats/crosstabs.q:2063
+#: src/language/stats/crosstabs.q:1844
msgid "Kendall's tau-c"
msgstr ""
-#: src/language/stats/crosstabs.q:2064 src/ui/gui/crosstabs-dialog.c:48
+#: src/language/stats/crosstabs.q:1845 src/ui/gui/crosstabs-dialog.c:48
msgid "Gamma"
msgstr ""
-#: src/language/stats/crosstabs.q:2065
+#: src/language/stats/crosstabs.q:1846
msgid "Spearman Correlation"
msgstr ""
-#: src/language/stats/crosstabs.q:2066
+#: src/language/stats/crosstabs.q:1847
msgid "Pearson's R"
msgstr ""
-#: src/language/stats/crosstabs.q:2067 src/ui/gui/crosstabs-dialog.c:50
+#: src/language/stats/crosstabs.q:1848 src/ui/gui/crosstabs-dialog.c:50
msgid "Kappa"
msgstr ""
-#: src/language/stats/crosstabs.q:2140
+#: src/language/stats/crosstabs.q:1926
#, c-format
msgid "Odds Ratio for %s (%g / %g)"
msgstr ""
-#: src/language/stats/crosstabs.q:2143
+#: src/language/stats/crosstabs.q:1929
#, c-format
msgid "Odds Ratio for %s (%.*s / %.*s)"
msgstr ""
-#: src/language/stats/crosstabs.q:2151
+#: src/language/stats/crosstabs.q:1937
#, c-format
msgid "For cohort %s = %g"
msgstr "Voor cohort %s = %g"
-#: src/language/stats/crosstabs.q:2154
+#: src/language/stats/crosstabs.q:1940
#, c-format
msgid "For cohort %s = %.*s"
msgstr "Voor cohort %s = %.*s"
-#: src/language/stats/crosstabs.q:2185
+#: src/language/stats/crosstabs.q:1973
msgid "Nominal by Interval"
msgstr ""
-#: src/language/stats/crosstabs.q:2190 src/ui/gui/crosstabs-dialog.c:43
+#: src/language/stats/crosstabs.q:1978 src/ui/gui/crosstabs-dialog.c:43
msgid "Lambda"
msgstr ""
-#: src/language/stats/crosstabs.q:2191
+#: src/language/stats/crosstabs.q:1979
msgid "Goodman and Kruskal tau"
msgstr ""
-#: src/language/stats/crosstabs.q:2192
+#: src/language/stats/crosstabs.q:1980
msgid "Uncertainty Coefficient"
msgstr ""
-#: src/language/stats/crosstabs.q:2193
+#: src/language/stats/crosstabs.q:1981
msgid "Somers' d"
msgstr ""
-#: src/language/stats/crosstabs.q:2194 src/ui/gui/crosstabs-dialog.c:51
+#: src/language/stats/crosstabs.q:1982 src/ui/gui/crosstabs-dialog.c:51
msgid "Eta"
msgstr ""
-#: src/language/stats/crosstabs.q:2199
+#: src/language/stats/crosstabs.q:1987
msgid "Symmetric"
msgstr ""
-#: src/language/stats/crosstabs.q:2200 src/language/stats/crosstabs.q:2201
+#: src/language/stats/crosstabs.q:1988 src/language/stats/crosstabs.q:1989
#, c-format
msgid "%s Dependent"
msgstr ""
-#: src/language/stats/descriptives.c:102 src/language/stats/examine.q:1557
+#: src/language/stats/descriptives.c:102 src/language/stats/examine.q:1559
#: src/language/stats/frequencies.q:123 src/language/stats/npar-summary.c:126
-#: src/language/stats/oneway.q:390 src/language/stats/t-test.q:701
-#: src/language/stats/t-test.q:725 src/language/stats/t-test.q:862
-#: src/language/stats/t-test.q:1213 src/ui/gui/descriptives-dialog.c:39
+#: src/language/stats/oneway.q:390 src/language/stats/t-test.q:507
+#: src/language/stats/t-test.q:527 src/language/stats/t-test.q:625
+#: src/language/stats/t-test.q:918 src/ui/gui/descriptives-dialog.c:39
#: src/ui/gui/frequencies-dialog.c:40
msgid "Mean"
msgstr "Gemiddeld"
msgid "Std Dev"
msgstr ""
-#: src/language/stats/descriptives.c:105 src/language/stats/examine.q:1588
+#: src/language/stats/descriptives.c:105 src/language/stats/examine.q:1589
#: src/language/stats/frequencies.q:128 src/ui/gui/descriptives-dialog.c:46
#: src/ui/gui/frequencies-dialog.c:45
msgid "Variance"
msgstr ""
-#: src/language/stats/descriptives.c:106 src/language/stats/examine.q:1624
+#: src/language/stats/descriptives.c:106 src/language/stats/examine.q:1625
#: src/language/stats/frequencies.q:129 src/ui/gui/descriptives-dialog.c:47
#: src/ui/gui/frequencies-dialog.c:50
msgid "Kurtosis"
msgid "S E Kurt"
msgstr ""
-#: src/language/stats/descriptives.c:108 src/language/stats/examine.q:1619
+#: src/language/stats/descriptives.c:108 src/language/stats/examine.q:1620
#: src/language/stats/frequencies.q:131 src/ui/gui/descriptives-dialog.c:48
#: src/ui/gui/frequencies-dialog.c:46
msgid "Skewness"
msgid "S E Skew"
msgstr ""
-#: src/language/stats/descriptives.c:110 src/language/stats/examine.q:1608
+#: src/language/stats/descriptives.c:110 src/language/stats/examine.q:1609
#: src/language/stats/frequencies.q:133 src/ui/gui/descriptives-dialog.c:43
#: src/ui/gui/frequencies-dialog.c:48
msgid "Range"
msgstr ""
-#: src/language/stats/descriptives.c:111 src/language/stats/examine.q:1598
+#: src/language/stats/descriptives.c:111 src/language/stats/examine.q:1599
#: src/language/stats/frequencies.q:134 src/language/stats/npar-summary.c:132
-#: src/language/stats/oneway.q:403 src/ui/gui/descriptives-dialog.c:41
+#: src/language/stats/oneway.q:404 src/ui/gui/descriptives-dialog.c:41
#: src/ui/gui/frequencies-dialog.c:42
msgid "Minimum"
msgstr ""
-#: src/language/stats/descriptives.c:112 src/language/stats/examine.q:1603
+#: src/language/stats/descriptives.c:112 src/language/stats/examine.q:1604
#: src/language/stats/frequencies.q:135 src/language/stats/npar-summary.c:135
-#: src/language/stats/oneway.q:404 src/ui/gui/descriptives-dialog.c:42
+#: src/language/stats/oneway.q:405 src/ui/gui/descriptives-dialog.c:42
#: src/ui/gui/frequencies-dialog.c:43
msgid "Maximum"
msgstr ""
msgid "Valid cases = %g; cases with missing value(s) = %g."
msgstr "Geldige cases = %g; cases met missing value(s) = %g."
-#: src/language/stats/examine.q:343 src/language/stats/examine.q:496
-#: src/language/stats/examine.q:1058
+#: src/language/stats/examine.q:346 src/language/stats/examine.q:499
+#: src/language/stats/examine.q:1060
msgid "Not creating plot because data set is empty."
msgstr "Er wordt geen plot aangemaakt omdat de data set leeg is."
-#: src/language/stats/examine.q:353
+#: src/language/stats/examine.q:356
#, c-format
msgid "Normal Q-Q Plot of %s"
msgstr "Normal Q-Q Plot van %s"
-#: src/language/stats/examine.q:354 src/language/stats/examine.q:359
+#: src/language/stats/examine.q:357 src/language/stats/examine.q:362
msgid "Observed Value"
msgstr "Waargenomen Waarde"
-#: src/language/stats/examine.q:355
+#: src/language/stats/examine.q:358
msgid "Expected Normal"
msgstr ""
-#: src/language/stats/examine.q:357
+#: src/language/stats/examine.q:360
#, c-format
msgid "Detrended Normal Q-Q Plot of %s"
msgstr "Detrended Normal Q-Q Plot van %s"
-#: src/language/stats/examine.q:360
+#: src/language/stats/examine.q:363
msgid "Dev from Normal"
msgstr ""
-#: src/language/stats/examine.q:513
+#: src/language/stats/examine.q:516
#, c-format
msgid "Boxplot of %s vs. %s"
msgstr ""
-#: src/language/stats/examine.q:517
+#: src/language/stats/examine.q:520
#, c-format
msgid "Boxplot of %s"
msgstr ""
-#: src/language/stats/examine.q:753 src/language/stats/examine.q:766
+#: src/language/stats/examine.q:756 src/language/stats/examine.q:769
#, c-format
msgid "%s and %s are mutually exclusive"
msgstr "%s en %s zijn wederzijds exclusief"
-#: src/language/stats/examine.q:1270 src/language/stats/reliability.q:685
+#: src/language/stats/examine.q:1272 src/language/stats/reliability.q:686
msgid "Case Processing Summary"
msgstr "Case Bewerkings Overzicht"
-#: src/language/stats/examine.q:1562 src/language/stats/oneway.q:398
+#: src/language/stats/examine.q:1564 src/language/stats/oneway.q:398
#, c-format
msgid "%g%% Confidence Interval for Mean"
msgstr ""
-#: src/language/stats/examine.q:1568 src/language/stats/oneway.q:400
+#: src/language/stats/examine.q:1570 src/language/stats/oneway.q:401
msgid "Lower Bound"
msgstr "Beneden Grens"
-#: src/language/stats/examine.q:1573 src/language/stats/oneway.q:401
+#: src/language/stats/examine.q:1575 src/language/stats/oneway.q:402
msgid "Upper Bound"
msgstr "Boven Grens"
-#: src/language/stats/examine.q:1578
-#, c-format
-msgid "5%% Trimmed Mean"
+#: src/language/stats/examine.q:1579
+msgid "5% Trimmed Mean"
msgstr ""
-#: src/language/stats/examine.q:1583 src/language/stats/frequencies.q:125
+#: src/language/stats/examine.q:1584 src/language/stats/frequencies.q:125
#: src/ui/gui/frequencies-dialog.c:52
msgid "Median"
msgstr ""
-#: src/language/stats/examine.q:1593 src/language/stats/npar-summary.c:129
-#: src/language/stats/oneway.q:391 src/language/stats/t-test.q:702
-#: src/language/stats/t-test.q:726 src/language/stats/t-test.q:864
-#: src/language/stats/t-test.q:1214
+#: src/language/stats/examine.q:1594 src/language/stats/npar-summary.c:129
+#: src/language/stats/oneway.q:391 src/language/stats/t-test.q:508
+#: src/language/stats/t-test.q:528 src/language/stats/t-test.q:627
+#: src/language/stats/t-test.q:919
msgid "Std. Deviation"
msgstr ""
-#: src/language/stats/examine.q:1613
+#: src/language/stats/examine.q:1614
msgid "Interquartile Range"
msgstr ""
-#: src/language/stats/examine.q:1749 src/language/stats/oneway.q:407
+#: src/language/stats/examine.q:1750 src/language/stats/oneway.q:408
#: src/ui/gui/examine.glade:310
msgid "Descriptives"
msgstr ""
-#: src/language/stats/examine.q:1755 src/language/stats/oneway.q:392
-#: src/language/stats/oneway.q:687 src/language/stats/regression.q:203
+#: src/language/stats/examine.q:1756 src/language/stats/oneway.q:392
+#: src/language/stats/oneway.q:689 src/language/stats/regression.q:203
msgid "Std. Error"
msgstr ""
-#: src/language/stats/examine.q:1852 src/language/stats/examine.q:1857
-#: src/ui/gui/psppire-data-store.c:756 src/ui/gui/psppire-var-store.c:646
-#: src/ui/gui/psppire-var-store.c:656 src/ui/gui/psppire-var-store.c:666
-#: src/ui/gui/psppire-var-store.c:777
-#, c-format
-msgid "%d"
-msgstr ""
-
-#: src/language/stats/examine.q:1938
+#: src/language/stats/examine.q:1939
msgid "Highest"
msgstr "Hoogste"
-#: src/language/stats/examine.q:1943
+#: src/language/stats/examine.q:1944
msgid "Lowest"
msgstr "Laagste"
-#: src/language/stats/examine.q:1950
+#: src/language/stats/examine.q:1951
msgid "Extreme Values"
msgstr "Extreme Waardes"
-#: src/language/stats/examine.q:1954
+#: src/language/stats/examine.q:1955
msgid "Case Number"
msgstr "Case Nummer"
-#: src/language/stats/examine.q:2076
+#: src/language/stats/examine.q:2077
msgid "Tukey's Hinges"
msgstr ""
-#: src/language/stats/examine.q:2116 src/language/stats/examine.q:2134
-#: src/language/stats/frequencies.q:1418 src/language/stats/npar-summary.c:142
+#: src/language/stats/examine.q:2117 src/language/stats/examine.q:2134
+#: src/language/stats/frequencies.q:1407 src/language/stats/npar-summary.c:142
#: src/ui/gui/examine.glade:333
msgid "Percentiles"
msgstr ""
-#: src/language/stats/examine.q:2123
+#: src/language/stats/examine.q:2124
#, c-format
msgid "%g"
msgstr ""
msgstr ""
"FLIP negeert TEMPORARY. Tijdelijke transformaties worden permanent gemaakt."
-#: src/language/stats/flip.c:151
+#: src/language/stats/flip.c:147
msgid "Could not create temporary file for FLIP."
msgstr "Kon geen tijdelijk bestand voor FLIP aanmaken."
-#: src/language/stats/flip.c:162
-#, c-format
-msgid "Error writing FLIP file: %s."
-msgstr "Fout tijdens het schrijven van FLIP bestand: %s."
-
-#: src/language/stats/flip.c:262
-#, c-format
-msgid "Could not create acceptable variant for variable %s."
-msgstr "Kon geen acceptabele variant voor variabele %s creëren."
-
-#: src/language/stats/flip.c:278
-msgid "Cannot create more than 99999 variable names."
-msgstr "Kan niet meer dan 99999 variabele namen creëren."
-
-#: src/language/stats/flip.c:394
+#: src/language/stats/flip.c:324
#, c-format
msgid "Error rewinding FLIP file: %s."
msgstr "Fout tijdens terugdraaien FLIP bestand: %s."
-#: src/language/stats/flip.c:401
+#: src/language/stats/flip.c:331
msgid "Error creating FLIP source file."
msgstr "Fout tijdens het creëren van FLIP bron bestand."
-#: src/language/stats/flip.c:414
+#: src/language/stats/flip.c:344
#, c-format
msgid "Error reading FLIP file: %s."
msgstr "Fout tijdens lezen FLIP bestand: %s."
-#: src/language/stats/flip.c:416
+#: src/language/stats/flip.c:346
msgid "Unexpected end of file reading FLIP file."
msgstr "Onverwacht einde bestand tijdens lezen FLIP bestand."
-#: src/language/stats/flip.c:432
+#: src/language/stats/flip.c:362
#, c-format
msgid "Error seeking FLIP source file: %s."
msgstr "Fout tijdens zoeken FLIP bron bestand: %s."
-#: src/language/stats/flip.c:440
+#: src/language/stats/flip.c:370
#, c-format
msgid "Error writing FLIP source file: %s."
msgstr "Fout tijdens schrijven FLIP bron bestand: %s."
-#: src/language/stats/flip.c:451
+#: src/language/stats/flip.c:381
#, c-format
msgid "Error closing FLIP source file: %s."
msgstr "Fout tijdens sluiten FLIP bron bestand: %s."
-#: src/language/stats/flip.c:459
+#: src/language/stats/flip.c:389
#, c-format
msgid "Error rewinding FLIP source file: %s."
msgstr "Fout tijdens terugdraaien FLIP bron bestand: %s."
-#: src/language/stats/flip.c:487
+#: src/language/stats/flip.c:419
#, c-format
msgid "Error reading FLIP temporary file: %s."
msgstr "Fout tijdens lezen FLIP tijdelijk bestand: %s."
-#: src/language/stats/flip.c:490
+#: src/language/stats/flip.c:422
msgid "Unexpected end of file reading FLIP temporary file."
msgstr "Onverwacht einde bestand tijdens lezen FLIP tijdelijk bestand."
msgid "S.E. Skew"
msgstr ""
-#: src/language/stats/frequencies.q:409
+#: src/language/stats/frequencies.q:405
msgid ""
"At most one of BARCHART, HISTOGRAM, or HBAR should be given. HBAR will be "
"assumed. Argument values will be given precedence increasing along the "
"HBAR wordt aangenomen. Argument waardes zullen gebruikt worden in opgegeven "
"volgorde."
-#: src/language/stats/frequencies.q:492
+#: src/language/stats/frequencies.q:488
#, c-format
msgid ""
"MAX must be greater than or equal to MIN, if both are specified. However, "
"MAX moet groter of gelijk zijn aan MIN, als beiden zijn opgegeven. Maar, MIN "
"was opgegeven als %g en MAX als %g. MIN en MAX worden genegeerd."
-#: src/language/stats/frequencies.q:757
+#: src/language/stats/frequencies.q:752
#, c-format
msgid "Variable %s specified multiple times on VARIABLES subcommand."
msgstr "Variabele %s is meerdere keren opgegeven bij VARIABLES subopdracht."
-#: src/language/stats/frequencies.q:820
+#: src/language/stats/frequencies.q:809
msgid "`)' expected after GROUPED interval list."
msgstr "')' verwacht na GROUPED interval lijst."
-#: src/language/stats/frequencies.q:832
+#: src/language/stats/frequencies.q:821
#, c-format
msgid "Variables %s specified on GROUPED but not on VARIABLES."
msgstr "Variabele %s gespecificeerd bij GROUPED maar niet bij VARIABLES."
-#: src/language/stats/frequencies.q:839
+#: src/language/stats/frequencies.q:828
#, c-format
msgid "Variables %s specified multiple times on GROUPED subcommand."
msgstr "Variabele %s is meerdere keren gespecificeerd bij GROUPED subopdracht."
-#: src/language/stats/frequencies.q:1058 src/language/stats/frequencies.q:1151
-#: src/language/stats/frequencies.q:1152 src/language/stats/frequencies.q:1187
+#: src/language/stats/frequencies.q:1047 src/language/stats/frequencies.q:1140
+#: src/language/stats/frequencies.q:1141 src/language/stats/frequencies.q:1176
msgid "Cum"
msgstr ""
-#: src/language/stats/frequencies.q:1060 src/output/charts/plot-hist.c:140
+#: src/language/stats/frequencies.q:1049 src/output/charts/plot-hist.c:140
msgid "Frequency"
msgstr "Frequenties"
-#: src/language/stats/frequencies.q:1081
+#: src/language/stats/frequencies.q:1070
msgid "Value Label"
msgstr "Waarde Label"
-#: src/language/stats/frequencies.q:1185
+#: src/language/stats/frequencies.q:1174
msgid "Freq"
msgstr ""
-#: src/language/stats/frequencies.q:1186 src/language/stats/frequencies.q:1188
+#: src/language/stats/frequencies.q:1175 src/language/stats/frequencies.q:1177
msgid "Pct"
msgstr ""
-#: src/language/stats/frequencies.q:1381
+#: src/language/stats/frequencies.q:1370
#, c-format
msgid "No valid data for variable %s; statistics not displayed."
msgstr "Geen geldige data voor variabele %s; statistieken worden niet getoond."
-#: src/language/stats/frequencies.q:1422
+#: src/language/stats/frequencies.q:1411
msgid "50 (Median)"
msgstr ""
"%d verwachte waardes waren opgegeven, maar de opgegeven range (%d-%d) "
"vereist precies %d waardes."
-#: src/language/stats/npar.q:441 src/language/stats/t-test.q:501
+#: src/language/stats/npar.q:441 src/language/stats/t-test.q:379
#, c-format
msgid ""
"PAIRED was specified but the number of variables preceding WITH (%zu) did "
msgstr ""
#: src/language/stats/oneway.q:280 src/language/stats/regression.q:304
-#: src/language/stats/t-test.q:1023
+#: src/language/stats/t-test.q:750
msgid "F"
msgstr ""
-#: src/language/stats/oneway.q:281 src/language/stats/oneway.q:538
+#: src/language/stats/oneway.q:281 src/language/stats/oneway.q:539
#: src/language/stats/regression.q:206 src/language/stats/regression.q:305
msgid "Significance"
msgstr "Significantie "
msgid "ANOVA"
msgstr ""
-#: src/language/stats/oneway.q:535
+#: src/language/stats/oneway.q:536
msgid "Levene Statistic"
msgstr ""
-#: src/language/stats/oneway.q:536
+#: src/language/stats/oneway.q:537
msgid "df1"
msgstr ""
-#: src/language/stats/oneway.q:537
+#: src/language/stats/oneway.q:538
msgid "df2"
msgstr ""
-#: src/language/stats/oneway.q:540
+#: src/language/stats/oneway.q:541
msgid "Test of Homogeneity of Variances"
msgstr ""
msgid "Contrast Coefficients"
msgstr ""
-#: src/language/stats/oneway.q:610 src/language/stats/oneway.q:685
+#: src/language/stats/oneway.q:610 src/language/stats/oneway.q:687
msgid "Contrast"
msgstr ""
-#: src/language/stats/oneway.q:683
+#: src/language/stats/oneway.q:685
msgid "Contrast Tests"
msgstr ""
-#: src/language/stats/oneway.q:686
+#: src/language/stats/oneway.q:688
msgid "Value of Contrast"
msgstr ""
-#: src/language/stats/oneway.q:688 src/language/stats/regression.q:205
-#: src/language/stats/t-test.q:1025 src/language/stats/t-test.q:1218
-#: src/language/stats/t-test.q:1315
+#: src/language/stats/oneway.q:690 src/language/stats/regression.q:205
+#: src/language/stats/t-test.q:752 src/language/stats/t-test.q:923
+#: src/language/stats/t-test.q:1010
msgid "t"
msgstr ""
-#: src/language/stats/oneway.q:690 src/language/stats/t-test.q:1027
-#: src/language/stats/t-test.q:1220 src/language/stats/t-test.q:1317
+#: src/language/stats/oneway.q:692 src/language/stats/t-test.q:754
+#: src/language/stats/t-test.q:925 src/language/stats/t-test.q:1012
msgid "Sig. (2-tailed)"
msgstr ""
-#: src/language/stats/oneway.q:734
+#: src/language/stats/oneway.q:736
msgid "Assume equal variances"
msgstr "Veronderstelt gelijke variantie"
-#: src/language/stats/oneway.q:738
+#: src/language/stats/oneway.q:740
msgid "Does not assume equal"
msgstr "Veronderstelt niet gelijk"
msgid "%s into %s(%s of %s using %s BY %s)"
msgstr "%s in %s(%s van %s gebruikt %s PER %s)"
-#: src/language/stats/rank.q:729
+#: src/language/stats/rank.q:728
#, c-format
msgid "%s into %s(%s of %s BY %s)"
msgstr "%s in %s(%s van %s PER %s)"
-#: src/language/stats/rank.q:743
+#: src/language/stats/rank.q:741
#, c-format
msgid "%s into %s(%s of %s using %s)"
msgstr "%s in %s(%s van %s gebruikt %s"
-#: src/language/stats/rank.q:753
+#: src/language/stats/rank.q:750
#, c-format
msgid "%s into %s(%s of %s)"
msgstr "%s in %s(%s van %s)"
-#: src/language/stats/rank.q:766
+#: src/language/stats/rank.q:762
msgid ""
"FRACTION has been specified, but NORMAL and PROPORTION rank functions have "
"not been requested. The FRACTION subcommand will be ignored."
"FRACTION is gespecificeerd maar NORMAL en PROPORTION rangschik functies ziin "
"niet gevraagd. De FRACTION subopdracht wordt genegeerd."
-#: src/language/stats/rank.q:857
+#: src/language/stats/rank.q:853
#, c-format
msgid "Variable %s already exists."
msgstr "Variabele %s bestaat al."
-#: src/language/stats/rank.q:862
+#: src/language/stats/rank.q:858
msgid "Too many variables in INTO clause."
msgstr "Te veel variabelen in INTO clause."
msgid "Dependent variable must be numeric."
msgstr "Afhankelijke variabele moet numeriek zijn."
-#: src/language/stats/reliability.q:432
+#: src/language/stats/reliability.q:433
msgid "Reliability Statistics"
msgstr ""
-#: src/language/stats/reliability.q:475
+#: src/language/stats/reliability.q:476
msgid "Item-Total Statistics"
msgstr ""
-#: src/language/stats/reliability.q:497
+#: src/language/stats/reliability.q:498
msgid "Scale Mean if Item Deleted"
msgstr ""
-#: src/language/stats/reliability.q:500
+#: src/language/stats/reliability.q:501
msgid "Scale Variance if Item Deleted"
msgstr ""
-#: src/language/stats/reliability.q:503
+#: src/language/stats/reliability.q:504
msgid "Corrected Item-Total Correlation"
msgstr ""
-#: src/language/stats/reliability.q:506
+#: src/language/stats/reliability.q:507
msgid "Cronbach's Alpha if Item Deleted"
msgstr ""
-#: src/language/stats/reliability.q:556 src/language/stats/reliability.q:575
+#: src/language/stats/reliability.q:557 src/language/stats/reliability.q:576
msgid "Cronbach's Alpha"
msgstr ""
-#: src/language/stats/reliability.q:559
+#: src/language/stats/reliability.q:560
msgid "N of items"
msgstr ""
-#: src/language/stats/reliability.q:578
+#: src/language/stats/reliability.q:579
msgid "Part 1"
msgstr "Deel 1"
-#: src/language/stats/reliability.q:584 src/language/stats/reliability.q:595
+#: src/language/stats/reliability.q:585 src/language/stats/reliability.q:596
msgid "N of Items"
msgstr ""
-#: src/language/stats/reliability.q:589
+#: src/language/stats/reliability.q:590
msgid "Part 2"
msgstr "Deel 2"
-#: src/language/stats/reliability.q:600
+#: src/language/stats/reliability.q:601
msgid "Total N of Items"
msgstr ""
-#: src/language/stats/reliability.q:603
+#: src/language/stats/reliability.q:604
msgid "Correlation Between Forms"
msgstr ""
-#: src/language/stats/reliability.q:607
+#: src/language/stats/reliability.q:608
msgid "Spearman-Brown Coefficient"
msgstr ""
-#: src/language/stats/reliability.q:610
+#: src/language/stats/reliability.q:611
msgid "Equal Length"
msgstr "Gelijke Lengte"
-#: src/language/stats/reliability.q:613
+#: src/language/stats/reliability.q:614
msgid "Unequal Length"
msgstr "Ongelijke Lengte"
-#: src/language/stats/reliability.q:617
+#: src/language/stats/reliability.q:618
msgid "Guttman Split-Half Coefficient"
msgstr ""
-#: src/language/stats/reliability.q:714
+#: src/language/stats/reliability.q:715
msgid "Excluded"
msgstr "Uitgesloten"
#: src/language/stats/reliability.q:723
-#, c-format
-msgid "%%"
+msgid "%"
msgstr ""
-#: src/language/stats/sign.c:90
+#: src/language/stats/sign.c:91
msgid "Negative Differences"
msgstr "Negatieve Verschillen"
-#: src/language/stats/sign.c:91
+#: src/language/stats/sign.c:92
msgid "Positive Differences"
msgstr "Positieve Verschillen"
-#: src/language/stats/sign.c:92 src/language/stats/wilcoxon.c:245
+#: src/language/stats/sign.c:93 src/language/stats/wilcoxon.c:261
msgid "Ties"
msgstr ""
-#: src/language/stats/sign.c:133
+#: src/language/stats/sign.c:134 src/language/stats/wilcoxon.c:331
msgid "Exact Sig. (2-tailed)"
msgstr ""
-#: src/language/stats/sign.c:136
+#: src/language/stats/sign.c:137 src/language/stats/wilcoxon.c:332
msgid "Exact Sig. (1-tailed)"
msgstr ""
-#: src/language/stats/sign.c:139 src/language/stats/wilcoxon.c:319
+#: src/language/stats/sign.c:140 src/language/stats/wilcoxon.c:335
msgid "Point Probability"
msgstr ""
msgid "Variable %s specified twice in sort criteria."
msgstr "Variabele %s 2 keer opgegeven in sort criteria."
-#: src/language/stats/t-test.q:280
-msgid "TESTVAL, GROUPS and PAIRS subcommands are mutually exclusive."
+#: src/language/stats/t-test.q:189
+#, fuzzy
+msgid "Exactly one of TESTVAL, GROUPS and PAIRS subcommands must be specified."
msgstr "TESTVAL, GROUPS en PAIRS subopdracht zijn wederzijds uitsluitend."
-#: src/language/stats/t-test.q:298
-msgid "VARIABLES subcommand is not appropriate with PAIRS"
+#: src/language/stats/t-test.q:210
+#, fuzzy
+msgid "VARIABLES subcommand may not be used with PAIRS."
msgstr "VARIABLES subprogramma is niet het juiste met PAIRS"
-#: src/language/stats/t-test.q:336
+#: src/language/stats/t-test.q:229
msgid "One or more VARIABLES must be specified."
msgstr "Een of meer VARIABLES moeten gespecificeerd zijn."
-#: src/language/stats/t-test.q:386
-#, c-format
-msgid "Long string variable %s is not valid here."
-msgstr "Lange string variabele %s is niet geldig hier."
-
-#: src/language/stats/t-test.q:406 src/language/stats/t-test.q:420
+#: src/language/stats/t-test.q:323
msgid ""
"When applying GROUPS to a string variable, two values must be specified."
msgstr ""
"By het toepassen van GROUPS op een string variabele moeten twee waardes "
"opgegeven zijn."
-#: src/language/stats/t-test.q:518
+#: src/language/stats/t-test.q:394
msgid "At least two variables must be specified on PAIRS."
msgstr "Ten minste 2 variabelen moeten opgegeven worden bij PAIRS."
-#: src/language/stats/t-test.q:698
+#: src/language/stats/t-test.q:504
msgid "One-Sample Statistics"
msgstr ""
-#: src/language/stats/t-test.q:703 src/language/stats/t-test.q:727
-#: src/language/stats/t-test.q:865
+#: src/language/stats/t-test.q:509 src/language/stats/t-test.q:529
+#: src/language/stats/t-test.q:628
msgid "SE. Mean"
msgstr ""
-#: src/language/stats/t-test.q:722
+#: src/language/stats/t-test.q:523
msgid "Group Statistics"
msgstr ""
-#: src/language/stats/t-test.q:859
+#: src/language/stats/t-test.q:622
msgid "Paired Sample Statistics"
msgstr ""
-#: src/language/stats/t-test.q:885 src/language/stats/t-test.q:1243
-#: src/language/stats/t-test.q:1442
+#: src/language/stats/t-test.q:642 src/language/stats/t-test.q:945
+#: src/language/stats/t-test.q:1119
#, c-format
msgid "Pair %d"
msgstr ""
-#: src/language/stats/t-test.q:1011
+#: src/language/stats/t-test.q:738
msgid "Independent Samples Test"
msgstr ""
-#: src/language/stats/t-test.q:1019
+#: src/language/stats/t-test.q:746
msgid "Levene's Test for Equality of Variances"
msgstr ""
-#: src/language/stats/t-test.q:1021
+#: src/language/stats/t-test.q:748
msgid "t-test for Equality of Means"
msgstr ""
-#: src/language/stats/t-test.q:1024 src/language/stats/t-test.q:1427
+#: src/language/stats/t-test.q:751 src/language/stats/t-test.q:1107
msgid "Sig."
msgstr ""
-#: src/language/stats/t-test.q:1028 src/language/stats/t-test.q:1318
+#: src/language/stats/t-test.q:755 src/language/stats/t-test.q:1013
msgid "Mean Difference"
msgstr "Gemiddelde Verschil"
-#: src/language/stats/t-test.q:1029
+#: src/language/stats/t-test.q:756
msgid "Std. Error Difference"
msgstr ""
-#: src/language/stats/t-test.q:1034 src/language/stats/t-test.q:1210
-#: src/language/stats/t-test.q:1310
+#: src/language/stats/t-test.q:761 src/language/stats/t-test.q:915
+#: src/language/stats/t-test.q:1005
#, c-format
msgid "%g%% Confidence Interval of the Difference"
msgstr ""
-#: src/language/stats/t-test.q:1090
+#: src/language/stats/t-test.q:815
msgid "Equal variances assumed"
msgstr ""
-#: src/language/stats/t-test.q:1142
+#: src/language/stats/t-test.q:861
msgid "Equal variances not assumed"
msgstr ""
-#: src/language/stats/t-test.q:1200
+#: src/language/stats/t-test.q:905
msgid "Paired Samples Test"
msgstr ""
-#: src/language/stats/t-test.q:1203
+#: src/language/stats/t-test.q:908
msgid "Paired Differences"
msgstr ""
-#: src/language/stats/t-test.q:1215
+#: src/language/stats/t-test.q:920
msgid "Std. Error Mean"
msgstr ""
-#: src/language/stats/t-test.q:1299
+#: src/language/stats/t-test.q:994
msgid "One-Sample Test"
msgstr ""
-#: src/language/stats/t-test.q:1304
+#: src/language/stats/t-test.q:999
#, c-format
msgid "Test Value = %f"
msgstr ""
-#: src/language/stats/t-test.q:1422
+#: src/language/stats/t-test.q:1102
msgid "Paired Samples Correlations"
msgstr ""
-#: src/language/stats/t-test.q:1426
+#: src/language/stats/t-test.q:1106
msgid "Correlation"
msgstr "Correlatie"
-#: src/language/stats/t-test.q:1445
+#: src/language/stats/t-test.q:1121
#, c-format
msgid "%s & %s"
msgstr ""
-#: src/language/stats/wilcoxon.c:216
+#: src/language/stats/wilcoxon.c:232
msgid "Ranks"
msgstr "Rangen"
-#: src/language/stats/wilcoxon.c:230
+#: src/language/stats/wilcoxon.c:246
msgid "Mean Rank"
msgstr "Gemiddelde Rang"
-#: src/language/stats/wilcoxon.c:231
+#: src/language/stats/wilcoxon.c:247
msgid "Sum of Ranks"
msgstr "Totaal van de Rangen"
-#: src/language/stats/wilcoxon.c:243
+#: src/language/stats/wilcoxon.c:259
msgid "Negative Ranks"
msgstr "Negatieve Rangen"
-#: src/language/stats/wilcoxon.c:244
+#: src/language/stats/wilcoxon.c:260
msgid "Positive Ranks"
msgstr "Positieve Rangen"
-#: src/language/stats/wilcoxon.c:310
+#: src/language/stats/wilcoxon.c:326
msgid "Z"
msgstr ""
-#: src/language/stats/wilcoxon.c:311
-msgid "Asymp. Sig (2-tailed)"
-msgstr ""
-
-#: src/language/stats/wilcoxon.c:315
-msgid "Exact Sig (2-tailed)"
-msgstr ""
-
-#: src/language/stats/wilcoxon.c:316
-msgid "Exact Sig (1-tailed)"
+#: src/language/stats/wilcoxon.c:327
+msgid "Asymp. Sig. (2-tailed)"
msgstr ""
#: src/language/syntax-file.c:88
msgid "Opening `%s': %s."
msgstr "Openen '%s': %s."
-#: src/language/syntax-file.c:106
+#: src/language/syntax-file.c:107
#, c-format
msgid "Reading `%s': %s."
msgstr "Lezen '%s': %s."
-#: src/language/syntax-file.c:126
+#: src/language/syntax-file.c:127
#, c-format
msgid "Closing `%s': %s."
msgstr "Sluiten '%s': %s."
-#: src/language/tests/check-model.q:138
-msgid "PATH and SEARCH subcommands are mutually exclusive. Ignoring PATH."
-msgstr ""
-"PATH en SEARCH subopdrachten zijn wederzijds uitsluitend. PATH genegeerd. "
-
-#: src/language/tests/check-model.q:156
-msgid "At least one value must be specified on PATH."
-msgstr "Tenminste 1 waarde dient bij PATH opgegeven te zijn."
-
-#: src/language/tests/check-model.q:167
-#, c-format
-msgid "Hash bits adjusted to %d."
-msgstr "Hash bits aangepast naar %d."
-
-#: src/language/tests/check-model.q:208
-#, c-format
-msgid "error opening \"%s\" for writing"
-msgstr "fout bij openen \"%s\" voor schrijven"
-
#: src/language/tests/float-format.c:124
#, c-format
msgid "%zu-byte string needed but %zu-byte string supplied."
"FORMAT vereist numeriek uitvoer formaat als een argument. Opgegeven formaat %"
"s is van het type string."
-#: src/language/utilities/set.q:522
-msgid "BLANKS is SYSMIS."
-msgstr ""
-
-#: src/language/utilities/set.q:524
-#, c-format
-msgid "BLANKS is %g."
-msgstr ""
-
-#: src/language/utilities/set.q:559
-#, c-format
-msgid "%s is \"%s\"."
-msgstr ""
-
-#: src/language/utilities/set.q:595
-#, c-format
-msgid "DECIMAL is \"%c\"."
+#: src/language/utilities/set.q:668
+msgid "ISL (32-bit IEEE 754 single, little-endian)"
msgstr ""
-#: src/language/utilities/set.q:601
-#, c-format
-msgid "ENDCMD is \"%c\"."
+#: src/language/utilities/set.q:671
+msgid "ISB (32-bit IEEE 754 single, big-endian)"
msgstr ""
-#: src/language/utilities/set.q:609
-#, c-format
-msgid "ERRORS is \"%s\"."
+#: src/language/utilities/set.q:674
+msgid "IDL (64-bit IEEE 754 double, little-endian)"
msgstr ""
-#: src/language/utilities/set.q:620
-#, c-format
-msgid "FORMAT is %s."
+#: src/language/utilities/set.q:677
+msgid "IDB (64-bit IEEE 754 double, big-endian)"
msgstr ""
-#: src/language/utilities/set.q:626
-#, c-format
-msgid "LENGTH is %d."
+#: src/language/utilities/set.q:681
+msgid "VF (32-bit VAX F, VAX-endian)"
msgstr ""
-#: src/language/utilities/set.q:632
-#, c-format
-msgid "LOCALE is %s"
+#: src/language/utilities/set.q:684
+msgid "VD (64-bit VAX D, VAX-endian)"
msgstr ""
-#: src/language/utilities/set.q:638
-#, c-format
-msgid "MXERRS is %d."
+#: src/language/utilities/set.q:687
+msgid "VG (64-bit VAX G, VAX-endian)"
msgstr ""
-#: src/language/utilities/set.q:644
-#, c-format
-msgid "MXLOOPS is %d."
+#: src/language/utilities/set.q:691
+msgid "ZS (32-bit IBM Z hexadecimal short, big-endian)"
msgstr ""
-#: src/language/utilities/set.q:650
-#, c-format
-msgid "MXWARNS is %d."
+#: src/language/utilities/set.q:694
+msgid "ZL (64-bit IBM Z hexadecimal long, big-endian)"
msgstr ""
-#: src/language/utilities/set.q:657 src/language/utilities/set.q:708
-#, c-format
-msgid "%s is %s (%s)."
-msgstr ""
-
-#: src/language/utilities/set.q:729
-msgid "SCOMPRESSION is ON."
-msgstr ""
-
-#: src/language/utilities/set.q:731
-msgid "SCOMPRESSION is OFF."
-msgstr ""
-
-#: src/language/utilities/set.q:738
-msgid "UNDEFINED is WARN."
-msgstr ""
-
-#: src/language/utilities/set.q:740
-msgid "UNDEFINED is NOWARN."
-msgstr ""
-
-#: src/language/utilities/set.q:748
-msgid "WEIGHT is off."
-msgstr "WEGING is uit."
-
-#: src/language/utilities/set.q:750
-#, c-format
-msgid "WEIGHT is variable %s."
-msgstr "WEGING is variabele %s."
-
-#: src/language/utilities/set.q:768
-#, c-format
-msgid "WIDTH is %d."
-msgstr "BREEDTE is %d."
+#: src/language/utilities/set.q:793
+#, fuzzy, c-format
+msgid "%s is %s."
+msgstr "%s van %s"
#: src/language/utilities/title.c:68
#, c-format
"Tijdens uitvoeren van COMPUTE: %g is geen geldige waarde als een index in "
"vector %s."
-#: src/language/xforms/compute.c:354
+#: src/language/xforms/compute.c:353
#, c-format
msgid "There is no vector named %s."
msgstr "Er is geen vector genaamd %s."
msgid "Destination cannot be a string variable."
msgstr "Bestemming kan geen string variabele zijn."
-#: src/language/xforms/recode.c:251
+#: src/language/xforms/recode.c:245
msgid ""
"Inconsistent target variable types. Target variables must be all numeric or "
"all string."
"Inconsistent doel variabele types. Doel variabelen moeten allemaal numeriek "
"of allemaal string zijn. "
-#: src/language/xforms/recode.c:272
+#: src/language/xforms/recode.c:266
msgid "CONVERT requires string input values and numeric output values."
msgstr "CONVERT vereist string invoer waardes en numerieke uitvoer waardes."
-#: src/language/xforms/recode.c:329
+#: src/language/xforms/recode.c:321
msgid "THRU is not allowed with string variables."
msgstr "THRU is niet toegestaan met string variabelen."
-#: src/language/xforms/recode.c:407
+#: src/language/xforms/recode.c:400
msgid "expecting output value"
msgstr "verwacht uitvoer waarde"
-#: src/language/xforms/recode.c:456
+#: src/language/xforms/recode.c:457
#, c-format
msgid ""
"%zu variable(s) cannot be recoded into %zu variable(s). Specify the same "
"%zu variabel(en) kunnen niet gehercodeerd worden in %zu variabel(en). "
"Specificeer hetzelfde aantal variabelen als bron en als doel variabelen."
-#: src/language/xforms/recode.c:471
+#: src/language/xforms/recode.c:472
#, c-format
msgid ""
"There is no variable named %s. (All string variables specified on INTO must "
"INTO dienen al te bestaan. Gebruik de STRING opdracht om een string "
"variabele aan te maken.)"
-#: src/language/xforms/recode.c:487
+#: src/language/xforms/recode.c:488
#, c-format
msgid "INTO is required with %s input values and %s output values."
msgstr "INTO is vereist met %s invoer waardes en %s uitvoer waardes."
-#: src/language/xforms/recode.c:500
+#: src/language/xforms/recode.c:501
#, c-format
msgid "Type mismatch. Cannot store %s data in %s variable %s."
msgstr "Type fout. Kan %s data niet in %s variabele %s opslaan. "
msgid "hash table:"
msgstr "hash tabel:"
+#: src/libpspp/tmpfile.c:55
+#, c-format
+msgid "failed to create temporary file"
+msgstr "aanmaken van een tijdelijk bestand is mislukt"
+
+#: src/libpspp/tmpfile.c:96
+#, c-format
+msgid "seeking in temporary file"
+msgstr "zoeken in tijdelijk bestand"
+
+#: src/libpspp/tmpfile.c:115
+#, c-format
+msgid "reading temporary file"
+msgstr "lezen tijdelijk bestand"
+
+#: src/libpspp/tmpfile.c:117
+#, c-format
+msgid "unexpected end of file reading temporary file"
+msgstr "onverwacht einde bestand bij het lezen van tijdelijk bestand"
+
+#: src/libpspp/tmpfile.c:136
+#, c-format
+msgid "writing to temporary file"
+msgstr "schrijven naar tijdelijk bestand"
+
#: src/math/percentiles.c:35
msgid "HAverage"
msgstr ""
"bad box: (%d+%d=%d,%d+%d=%d)-(%d+%d=%d,%d+%d=%d) in table size (%d,%d)\n"
msgstr ""
+#: src/ui/gui/about.c:64
+msgid "A program for the analysis of sampled data"
+msgstr ""
+
+#: src/ui/gui/about.c:73
+msgid "translator-credits"
+msgstr ""
+
#: src/ui/gui/comments-dialog.c:58
#, c-format
msgid "Column Number: %d"
#: src/ui/gui/crosstabs-dialog.c:53 src/ui/gui/crosstabs-dialog.c:64
#: src/ui/gui/crosstabs-dialog.c:99 src/ui/gui/crosstabs-dialog.c:107
-#: src/ui/gui/psppire-var-store.c:559 src/ui/gui/var-display.c:16
+#: src/ui/gui/psppire-var-store.c:568 src/ui/gui/var-display.c:16
#: src/ui/gui/variable-info-dialog.c:40
msgid "None"
msgstr "Geen"
msgid "Pivot"
msgstr ""
-#: src/ui/gui/crosstabs.glade:253 src/ui/gui/psppire.glade:781
+#: src/ui/gui/crosstabs.glade:253 src/ui/gui/psppire.glade:756
msgid "Ascending"
msgstr "Oplopend"
msgstr ""
#: src/ui/gui/data-editor.glade:174 src/ui/gui/data-editor.glade:843
-#: src/ui/gui/psppire-data-window.c:844 src/ui/gui/psppire-data-window.c:934
+#: src/ui/gui/psppire-data-window.c:843 src/ui/gui/psppire-data-window.c:933
msgid "Insert Variable"
msgstr "Invoegen Variabele"
msgid "Open"
msgstr ""
-#: src/ui/gui/data-editor.glade:712 src/ui/gui/psppire-data-window.c:582
+#: src/ui/gui/data-editor.glade:712 src/ui/gui/psppire-data-window.c:581
msgid "Save"
msgstr "Opslaan"
msgid "Find"
msgstr "Vind"
-#: src/ui/gui/data-editor.glade:831 src/ui/gui/psppire-data-window.c:898
+#: src/ui/gui/data-editor.glade:831 src/ui/gui/psppire-data-window.c:897
msgid "Insert Case"
msgstr "Invoegen Case"
msgid "Missing Values"
msgstr "Ontbrekende Waardes"
-#: src/ui/gui/find-dialog.c:657
+#: src/ui/gui/find-dialog.c:658
#, c-format
msgid "Bad regular expression: %s"
msgstr "Foutieve regulaire expressie: %s"
msgid "Standard error of the kurtosis"
msgstr ""
-#: src/ui/gui/frequencies.glade:98 src/ui/gui/psppire.glade:277
+#: src/ui/gui/frequencies.glade:98 src/ui/gui/psppire.glade:252
#: src/ui/gui/rank.glade:103
msgid "Variable(s):"
msgstr "Variabele(n):"
msgid "Variable View"
msgstr "Variabele Weergave"
-#: src/ui/gui/psppire-data-store.c:746
+#: src/ui/gui/psppire-data-store.c:761
msgid "var"
msgstr ""
+#: src/ui/gui/psppire-data-store.c:771 src/ui/gui/psppire-var-store.c:655
+#: src/ui/gui/psppire-var-store.c:665 src/ui/gui/psppire-var-store.c:675
+#: src/ui/gui/psppire-var-store.c:786
+#, c-format
+msgid "%d"
+msgstr ""
+
#: src/ui/gui/psppire-data-window.c:213
msgid "Transformations Pending"
msgstr "Transformaties Uitstaand"
msgid "Weight by %s"
msgstr "Weeg op %s"
-#: src/ui/gui/psppire-data-window.c:387 src/ui/gui/psppire-data-window.c:590
+#: src/ui/gui/psppire-data-window.c:387 src/ui/gui/psppire-data-window.c:589
msgid "System Files (*.sav)"
msgstr "Systeem Bestand (*.sav)"
-#: src/ui/gui/psppire-data-window.c:393 src/ui/gui/psppire-data-window.c:596
+#: src/ui/gui/psppire-data-window.c:393 src/ui/gui/psppire-data-window.c:595
msgid "Portable Files (*.por) "
msgstr "Overdraagbaar (Portable) Bestand (*.por)"
-#: src/ui/gui/psppire-data-window.c:399 src/ui/gui/psppire-data-window.c:602
+#: src/ui/gui/psppire-data-window.c:399 src/ui/gui/psppire-data-window.c:601
#: src/ui/gui/psppire-syntax-window.c:298
#: src/ui/gui/psppire-syntax-window.c:385
msgid "All Files"
msgstr "Alle bestanden"
-#: src/ui/gui/psppire-data-window.c:610
+#: src/ui/gui/psppire-data-window.c:609
msgid "System File"
msgstr "Systeem Bestand"
-#: src/ui/gui/psppire-data-window.c:615
+#: src/ui/gui/psppire-data-window.c:614
msgid "Portable File"
msgstr "Overdraagbaar (Portable) Bestand"
-#: src/ui/gui/psppire-data-window.c:765
+#: src/ui/gui/psppire-data-window.c:764
msgid "Font Selection"
msgstr "Font Selectie"
-#: src/ui/gui/psppire-data-window.c:833
+#: src/ui/gui/psppire-data-window.c:832
msgid "Sort Ascending"
msgstr "Sorteer oplopend"
-#: src/ui/gui/psppire-data-window.c:839
+#: src/ui/gui/psppire-data-window.c:838
msgid "Sort Descending"
msgstr "Sorteer aflopend"
-#: src/ui/gui/psppire-data-window.c:847 src/ui/gui/psppire-data-window.c:901
-#: src/ui/gui/psppire-data-window.c:937 src/ui/gui/psppire-data-window.c:1302
-#: src/ui/gui/psppire-data-window.c:1320
+#: src/ui/gui/psppire-data-window.c:846 src/ui/gui/psppire-data-window.c:900
+#: src/ui/gui/psppire-data-window.c:936 src/ui/gui/psppire-data-window.c:1301
+#: src/ui/gui/psppire-data-window.c:1319
msgid "Clear"
msgstr "Ruimop"
-#: src/ui/gui/psppire-data-window.c:1179
+#: src/ui/gui/psppire-data-window.c:1178
msgid "Open a data file"
msgstr "Open een data bestand"
-#: src/ui/gui/psppire-data-window.c:1197
+#: src/ui/gui/psppire-data-window.c:1196
msgid "New data file"
msgstr "Nieuw data bestand"
-#: src/ui/gui/psppire-data-window.c:1212
+#: src/ui/gui/psppire-data-window.c:1211
msgid "Import text data file"
msgstr "Importeer text data bestand"
-#: src/ui/gui/psppire-data-window.c:1228 src/ui/gui/psppire-data-window.c:1245
+#: src/ui/gui/psppire-data-window.c:1227 src/ui/gui/psppire-data-window.c:1244
msgid "Save data to file"
msgstr "Data opslaan als bestand"
-#: src/ui/gui/psppire-data-window.c:1244
+#: src/ui/gui/psppire-data-window.c:1243
msgid "Save As"
msgstr "Opslaan Als"
-#: src/ui/gui/psppire-data-window.c:1283
+#: src/ui/gui/psppire-data-window.c:1282
msgid "Show/hide value labels"
msgstr "Show/verberg waarde labels"
-#: src/ui/gui/psppire-data-window.c:1303
+#: src/ui/gui/psppire-data-window.c:1302
msgid "Delete the cases at the selected position(s)"
msgstr "Verwijder de cases op de geselecteerde positie(s)"
-#: src/ui/gui/psppire-data-window.c:1321
+#: src/ui/gui/psppire-data-window.c:1320
msgid "Delete the variables at the selected position(s)"
msgstr "Verwijder de variabele op de geselecteerde positie(s)"
-#: src/ui/gui/psppire-data-window.c:1339
+#: src/ui/gui/psppire-data-window.c:1338
msgid "Create a new variable at the current position"
msgstr "Creëer een nieuwe variabele op de huidige positie"
-#: src/ui/gui/psppire-data-window.c:1354
+#: src/ui/gui/psppire-data-window.c:1353
msgid "Create a new case at the current position"
msgstr "Creëer een nieuwe case op de huidige positie"
-#: src/ui/gui/psppire-data-window.c:1370
+#: src/ui/gui/psppire-data-window.c:1369
msgid "Jump to a Case in the Data Sheet"
msgstr "Spring naar een Case in het Data Blad"
-#: src/ui/gui/psppire-data-window.c:1386
+#: src/ui/gui/psppire-data-window.c:1385
msgid "Weight cases by variable"
msgstr "Weeg cases per variabele"
-#: src/ui/gui/psppire-data-window.c:1400
+#: src/ui/gui/psppire-data-window.c:1399
msgid "Transpose the cases with the variables"
msgstr "Herschik de cases met de variabelen"
-#: src/ui/gui/psppire-data-window.c:1414
+#: src/ui/gui/psppire-data-window.c:1413
msgid "Split the active file"
msgstr "Splits het actieve bestand"
-#: src/ui/gui/psppire-data-window.c:1429
+#: src/ui/gui/psppire-data-window.c:1428
msgid "Sort cases in the active file"
msgstr "Sorteer cases in het actieve bestand"
-#: src/ui/gui/psppire-data-window.c:1443
+#: src/ui/gui/psppire-data-window.c:1442
msgid "Select cases from the active file"
msgstr "Selecteer cases van het actieve bestand"
-#: src/ui/gui/psppire-data-window.c:1457
+#: src/ui/gui/psppire-data-window.c:1456
msgid "Compute new values for a variable"
msgstr "Bereken nieuwe waardes voor een variabele"
-#: src/ui/gui/psppire-data-window.c:1471
+#: src/ui/gui/psppire-data-window.c:1470
msgid "Perform one way analysis of variance"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1486
+#: src/ui/gui/psppire-data-window.c:1485
msgid "Calculate T Test for samples from independent groups"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1500
+#: src/ui/gui/psppire-data-window.c:1499
msgid "Calculate T Test for paired samples"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1514
+#: src/ui/gui/psppire-data-window.c:1513
msgid "Calculate T Test for sample from a single distribution"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1529
+#: src/ui/gui/psppire-data-window.c:1528
msgid "Commentary text for the data file"
msgstr "Commentaar tekst voor het data bestand"
-#: src/ui/gui/psppire-data-window.c:1555
+#: src/ui/gui/psppire-data-window.c:1554
msgid "Rank Cases"
msgstr "Rangschik Cases"
-#: src/ui/gui/psppire-data-window.c:1569
+#: src/ui/gui/psppire-data-window.c:1568
msgid "Recode values into the same variables"
msgstr "Hercodeer waardes in dezelfde Variabelen"
-#: src/ui/gui/psppire-data-window.c:1583
+#: src/ui/gui/psppire-data-window.c:1582
msgid "Recode values into different variables"
msgstr "Hercodeer waardes in andere Variabelen"
-#: src/ui/gui/psppire-data-window.c:1597
+#: src/ui/gui/psppire-data-window.c:1596
msgid "Jump to variable"
msgstr "Spring naar Variabele"
-#: src/ui/gui/psppire-data-window.c:1610
+#: src/ui/gui/psppire-data-window.c:1609
msgid "Calculate descriptive statistics (mean, variance, ...)"
msgstr "Bereken descriptive statistieken (mean, variance, ...)"
-#: src/ui/gui/psppire-data-window.c:1624
+#: src/ui/gui/psppire-data-window.c:1623
msgid "Generate frequency statistics"
msgstr "Genereer frequentie statistieken"
-#: src/ui/gui/psppire-data-window.c:1638
+#: src/ui/gui/psppire-data-window.c:1637
msgid "Generate crosstabulations"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1653
+#: src/ui/gui/psppire-data-window.c:1652
msgid "Examine Data by Factors"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1667
+#: src/ui/gui/psppire-data-window.c:1666
msgid "Estimate parameters of the linear model"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1681 src/ui/gui/reliability.glade:7
+#: src/ui/gui/psppire-data-window.c:1680 src/ui/gui/reliability.glade:7
msgid "Reliability Analysis"
msgstr ""
-#: src/ui/gui/psppire-data-window.c:1844
+#: src/ui/gui/psppire-data-window.c:1843
msgid "Split the window vertically and horizontally"
msgstr "Splits het venster verticaal en horizontaal"
-#: src/ui/gui/psppire-data-window.c:1886
+#: src/ui/gui/psppire-data-window.c:1885
msgid "Data Editor"
msgstr ""
msgid "Prefer variable labels"
msgstr "Prefereer variabele labels"
-#: src/ui/gui/psppire.glade:10
-msgid ""
-"This is beta status software. Please report bugs to bug-gnu-pspp@gnu.org"
-msgstr ""
-"Dit is beta status software. Rapporteer bugs s.v.p. bij bug-gnu-pspp@gnu.org"
-
-#: src/ui/gui/psppire.glade:72 src/ui/gui/psppire.glade:155
+#: src/ui/gui/psppire.glade:47 src/ui/gui/psppire.glade:130
#: src/ui/gui/weight-cases-dialog.c:79
msgid "Do not weight cases"
msgstr "Weeg cases niet"
-#: src/ui/gui/psppire.glade:83
+#: src/ui/gui/psppire.glade:58
msgid "Weight cases by"
msgstr "Weeg cases op"
-#: src/ui/gui/psppire.glade:108
+#: src/ui/gui/psppire.glade:83
msgid "Frequency Variable"
msgstr "Frequencie Variabele"
-#: src/ui/gui/psppire.glade:148
+#: src/ui/gui/psppire.glade:123
msgid "Current Status: "
msgstr "Huidige Status:"
-#: src/ui/gui/psppire.glade:244
+#: src/ui/gui/psppire.glade:219
msgid "Name Variable:"
msgstr "Naam Variabele:"
-#: src/ui/gui/psppire.glade:429
+#: src/ui/gui/psppire.glade:404
msgid "Analyze all cases. Do not create groups."
msgstr "Analyseer alle cases. Creëer geen groepen."
-#: src/ui/gui/psppire.glade:440
+#: src/ui/gui/psppire.glade:415
msgid "Compare groups."
msgstr "Vergelijk groepen."
-#: src/ui/gui/psppire.glade:454
+#: src/ui/gui/psppire.glade:429
msgid "Organize output by groups."
msgstr "Organiseer uitvoer per groepen."
-#: src/ui/gui/psppire.glade:502
+#: src/ui/gui/psppire.glade:477
msgid "Groups based on:"
msgstr "Groepen gebaseerd op:"
-#: src/ui/gui/psppire.glade:565
+#: src/ui/gui/psppire.glade:540
msgid "Sort the file by grouping variables."
msgstr "Sorteer bestand op groepering variabelen."
-#: src/ui/gui/psppire.glade:577
+#: src/ui/gui/psppire.glade:552
msgid "File is already sorted."
msgstr "Bestand is al gesorteerd."
-#: src/ui/gui/psppire.glade:622
+#: src/ui/gui/psppire.glade:597
msgid "Current Status : "
msgstr "Huidige Status : "
-#: src/ui/gui/psppire.glade:630
+#: src/ui/gui/psppire.glade:605
msgid "Analysis by groups is off"
msgstr "Analyseer per groep is uit"
-#: src/ui/gui/psppire.glade:729
+#: src/ui/gui/psppire.glade:704
msgid "Sort by:"
msgstr "Sorteer op:"
-#: src/ui/gui/psppire.glade:792
+#: src/ui/gui/psppire.glade:767
msgid "Descending"
msgstr "Aflopend"
-#: src/ui/gui/psppire.glade:809
+#: src/ui/gui/psppire.glade:784
msgid "Sort Order"
msgstr "Sorteer Volgorde"
-#: src/ui/gui/psppire.glade:878
+#: src/ui/gui/psppire.glade:853
msgid "Target Variable:"
msgstr "Doel Variabele:"
-#: src/ui/gui/psppire.glade:909
+#: src/ui/gui/psppire.glade:884
msgid "Type & Label"
msgstr ""
-#: src/ui/gui/psppire.glade:949
+#: src/ui/gui/psppire.glade:924
msgid "="
msgstr ""
-#: src/ui/gui/psppire.glade:995
+#: src/ui/gui/psppire.glade:970
msgid "Numeric Expressions:"
msgstr "Numerieke Expressies:"
-#: src/ui/gui/psppire.glade:1049
+#: src/ui/gui/psppire.glade:1024
msgid "Functions:"
msgstr "Functies:"
-#: src/ui/gui/psppire.glade:1112 src/ui/gui/psppire.glade:1516
+#: src/ui/gui/psppire.glade:1087 src/ui/gui/psppire.glade:1491
#: src/ui/gui/recode.glade:731
msgid "If..."
msgstr "Als..."
-#: src/ui/gui/psppire.glade:1345
+#: src/ui/gui/psppire.glade:1320
msgid "Use filter variable"
msgstr "Gebruik filter variabele"
-#: src/ui/gui/psppire.glade:1398
+#: src/ui/gui/psppire.glade:1373
msgid "Based on time or case range"
msgstr "Gebaseerd op tijd of case volgorde"
-#: src/ui/gui/psppire.glade:1411
+#: src/ui/gui/psppire.glade:1386
msgid "Range..."
msgstr ""
-#: src/ui/gui/psppire.glade:1450
+#: src/ui/gui/psppire.glade:1425
msgid "Random sample of cases"
msgstr "Random steekproef van cases"
-#: src/ui/gui/psppire.glade:1464
+#: src/ui/gui/psppire.glade:1439
msgid "Sample..."
msgstr "Steekproef..."
-#: src/ui/gui/psppire.glade:1502
+#: src/ui/gui/psppire.glade:1477
msgid "If condition is satisfied"
msgstr "Aan If conditie is voldaan"
-#: src/ui/gui/psppire.glade:1551
+#: src/ui/gui/psppire.glade:1526
msgid "All Cases"
msgstr "Alle Cases"
-#: src/ui/gui/psppire.glade:1566
+#: src/ui/gui/psppire.glade:1541
msgid "Select"
msgstr "Selecteer"
-#: src/ui/gui/psppire.glade:1595
+#: src/ui/gui/psppire.glade:1570
msgid "Filtered"
msgstr "Gefilterd"
-#: src/ui/gui/psppire.glade:1606
+#: src/ui/gui/psppire.glade:1581
msgid "Deleted"
msgstr "Verwijderd"
-#: src/ui/gui/psppire.glade:1624
+#: src/ui/gui/psppire.glade:1599
msgid "Unselected Cases Are"
msgstr "Niet geselecteerde Cases zijn"
-#: src/ui/gui/psppire.glade:1689
+#: src/ui/gui/psppire.glade:1664
msgid "Comments:"
msgstr "Commentaren:"
-#: src/ui/gui/psppire.glade:1731
+#: src/ui/gui/psppire.glade:1706
msgid "Display comments in output"
msgstr "Toon commentaren in uitvoer"
-#: src/ui/gui/psppire.glade:1746
+#: src/ui/gui/psppire.glade:1721
msgid "Column Number: 0"
msgstr "Kolom Nummer: 0"
-#: src/ui/gui/psppire.glade:1829
+#: src/ui/gui/psppire.glade:1804
msgid "First case"
msgstr "Eerste case"
-#: src/ui/gui/psppire.glade:1842
+#: src/ui/gui/psppire.glade:1817
msgid "Last case"
msgstr "Laatste case"
-#: src/ui/gui/psppire.glade:1855
+#: src/ui/gui/psppire.glade:1830
msgid "Observation"
msgstr "Observatie"
-#: src/ui/gui/psppire.glade:1919
+#: src/ui/gui/psppire.glade:1894
msgid "Use expression as label"
msgstr "Gebruik expressie als label"
-#: src/ui/gui/psppire.glade:2045 src/ui/gui/psppire-var-sheet.c:540
-#: src/ui/gui/psppire-var-store.c:786
+#: src/ui/gui/psppire.glade:2020 src/ui/gui/psppire-var-sheet.c:529
+#: src/ui/gui/psppire-var-store.c:795
msgid "Width"
msgstr "Breedte"
-#: src/ui/gui/psppire.glade:2175
+#: src/ui/gui/psppire.glade:2150
msgid "Goto Case Number:"
msgstr "Ga naar Case Nummer:"
-#: src/ui/gui/psppire.glade:2312
+#: src/ui/gui/psppire.glade:2287
msgid "Sample Size"
msgstr "Steekproef Grootte"
msgid "Cannot load syntax file '%s'"
msgstr "Kan syntax bestand \"%s\" niet laden"
-#: src/ui/gui/psppire-var-sheet.c:538 src/ui/gui/psppire-var-store.c:784
+#: src/ui/gui/psppire-var-sheet.c:527 src/ui/gui/psppire-var-store.c:793
msgid "Name"
msgstr "Naam"
-#: src/ui/gui/psppire-var-sheet.c:541 src/ui/gui/psppire-var-store.c:787
+#: src/ui/gui/psppire-var-sheet.c:530 src/ui/gui/psppire-var-store.c:796
msgid "Decimals"
msgstr "Decimalen"
-#: src/ui/gui/psppire-var-sheet.c:543 src/ui/gui/psppire-var-store.c:789
+#: src/ui/gui/psppire-var-sheet.c:532 src/ui/gui/psppire-var-store.c:798
msgid "Values"
msgstr "Waardes"
-#: src/ui/gui/psppire-var-sheet.c:546 src/ui/gui/psppire-var-store.c:792
+#: src/ui/gui/psppire-var-sheet.c:535 src/ui/gui/psppire-var-store.c:801
msgid "Align"
msgstr "Uitlijnen"
-#: src/ui/gui/psppire-var-sheet.c:547 src/ui/gui/psppire-var-store.c:793
+#: src/ui/gui/psppire-var-sheet.c:536 src/ui/gui/psppire-var-store.c:802
msgid "Measure"
msgstr "Meting"
-#: src/ui/gui/psppire-var-store.c:569 src/ui/gui/var-sheet-dialogs.glade:43
+#: src/ui/gui/psppire-var-store.c:578 src/ui/gui/var-sheet-dialogs.glade:43
msgid "Comma"
msgstr "Komma"
-#: src/ui/gui/psppire-var-store.c:570 src/ui/gui/var-sheet-dialogs.glade:59
+#: src/ui/gui/psppire-var-store.c:579 src/ui/gui/var-sheet-dialogs.glade:59
msgid "Dot"
msgstr "Punt"
-#: src/ui/gui/psppire-var-store.c:571
+#: src/ui/gui/psppire-var-store.c:580
msgid "Scientific"
msgstr "Wetenschappelijk"
-#: src/ui/gui/psppire-var-store.c:572 src/ui/gui/var-sheet-dialogs.glade:91
+#: src/ui/gui/psppire-var-store.c:581 src/ui/gui/var-sheet-dialogs.glade:91
msgid "Date"
msgstr "Datum"
-#: src/ui/gui/psppire-var-store.c:573 src/ui/gui/var-sheet-dialogs.glade:107
+#: src/ui/gui/psppire-var-store.c:582 src/ui/gui/var-sheet-dialogs.glade:107
msgid "Dollar"
msgstr "Euro"
-#: src/ui/gui/psppire-var-store.c:574
+#: src/ui/gui/psppire-var-store.c:583
msgid "Custom"
msgstr "Aangepast"
msgid "Measurement Level: %s\n"
msgstr "Meetniveau: %s\n"
-#: src/ui/gui/variable-info-dialog.c:124
+#: src/ui/gui/variable-info-dialog.c:125
msgid "Value Labels:\n"
msgstr "Waarde Labels:\n"
-#: src/ui/gui/variable-info-dialog.c:137
+#: src/ui/gui/variable-info-dialog.c:138
#, c-format
msgid "%s %s\n"
msgstr ""
msgid "Start an interactive session"
msgstr "Start een interactieve sessie"
+#~ msgid "Bad variable width %d."
+#~ msgstr "Foutieve variabele breedte %d."
+
+#~ msgid "File specifies unexpected value %g as HIGHEST."
+#~ msgstr "Bestand specificeert onverwachte waarde %g als HIGHEST."
+
+#~ msgid "File specifies unexpected value %g as LOWEST."
+#~ msgstr "Bestand specificeert onverwachte waarde %g als LOWEST."
+
+#~ msgid "%s is unimplemented."
+#~ msgstr "%s is niet geïmplementeerd."
+
+#~ msgid "Bad character in input: `\\%o'."
+#~ msgstr "Fout karakter in input: '\\%o'."
+
+#~ msgid "WEIGHT is off."
+#~ msgstr "WEGING is uit."
+
+#~ msgid "WEIGHT is variable %s."
+#~ msgstr "WEGING is variabele %s."
+
+#~ msgid "WIDTH is %d."
+#~ msgstr "BREEDTE is %d."
+
+#~ msgid ""
+#~ "Ignoring missing values on long string variable %s, which PSPP does not "
+#~ "yet support."
+#~ msgstr ""
+#~ "Negeren van missing values voor lange string variabele %s, wat PSPP nog "
+#~ "niet ondersteunt."
+
+#~ msgid ""
+#~ "Ignoring value labels for long string variables, which PSPP does not yet "
+#~ "support."
+#~ msgstr ""
+#~ "Negeer waarde labels voor lange string variabelen, die door PSPP nog niet "
+#~ "ondersteund worden."
+
+#~ msgid "Cannot add value labels from source file to long string variable %s."
+#~ msgstr ""
+#~ "Kan geen value labels van bron bestand toevoegen aan lange string "
+#~ "variabele %s."
+
+#~ msgid ""
+#~ "It is not possible to assign value labels to long string variables such "
+#~ "as %s."
+#~ msgstr ""
+#~ "Het is niet mogelijk om waarde labels aan lange string variabelen als %s "
+#~ "toe te kennen."
+
+#~ msgid "Write mode ALL not allowed in general mode. Assuming WRITE=CELLS."
+#~ msgstr ""
+#~ "Write modus ALL niet toegestaan in algemen modus. WRITE=CELLS aangenomen."
+
+#~ msgid "Error writing FLIP file: %s."
+#~ msgstr "Fout tijdens het schrijven van FLIP bestand: %s."
+
+#~ msgid "Could not create acceptable variant for variable %s."
+#~ msgstr "Kon geen acceptabele variant voor variabele %s creëren."
+
+#~ msgid "Cannot create more than 99999 variable names."
+#~ msgstr "Kan niet meer dan 99999 variabele namen creëren."
+
+#~ msgid "Long string variable %s is not valid here."
+#~ msgstr "Lange string variabele %s is niet geldig hier."
+
+#~ msgid "PATH and SEARCH subcommands are mutually exclusive. Ignoring PATH."
+#~ msgstr ""
+#~ "PATH en SEARCH subopdrachten zijn wederzijds uitsluitend. PATH genegeerd. "
+
+#~ msgid "At least one value must be specified on PATH."
+#~ msgstr "Tenminste 1 waarde dient bij PATH opgegeven te zijn."
+
+#~ msgid "Hash bits adjusted to %d."
+#~ msgstr "Hash bits aangepast naar %d."
+
+#~ msgid "error opening \"%s\" for writing"
+#~ msgstr "fout bij openen \"%s\" voor schrijven"
+
+#~ msgid ""
+#~ "This is beta status software. Please report bugs to bug-gnu-pspp@gnu.org"
+#~ msgstr ""
+#~ "Dit is beta status software. Rapporteer bugs s.v.p. bij bug-gnu-pspp@gnu."
+#~ "org"
+
#~ msgid "Diagnositic options:"
#~ msgstr "Diagnostische opties:"
Like the strings embedded in all "union value"s, the return
value is not null-terminated. */
-const char *
+const uint8_t *
case_str (const struct ccase *c, const struct variable *v)
{
size_t idx = var_get_case_index (v);
Like the strings embedded in all "union value"s, the return
value is not null-terminated. */
-const char *
+const uint8_t *
case_str_idx (const struct ccase *c, size_t idx)
{
assert (idx < c->proto->n_widths);
Like the strings embedded in all "union value"s, the return
value is not null-terminated. */
-char *
+uint8_t *
case_str_rw (struct ccase *c, const struct variable *v)
{
size_t idx = var_get_case_index (v);
Like the strings embedded in all "union value"s, the return
value is not null-terminated. */
-char *
+uint8_t *
case_str_rw_idx (struct ccase *c, size_t idx)
{
assert (idx < c->proto->n_widths);
double case_num (const struct ccase *, const struct variable *);
double case_num_idx (const struct ccase *, size_t idx);
-const char *case_str (const struct ccase *, const struct variable *);
-const char *case_str_idx (const struct ccase *, size_t idx);
-char *case_str_rw (struct ccase *, const struct variable *);
-char *case_str_rw_idx (struct ccase *, size_t idx);
+const uint8_t *case_str (const struct ccase *, const struct variable *);
+const uint8_t *case_str_idx (const struct ccase *, size_t idx);
+uint8_t *case_str_rw (struct ccase *, const struct variable *);
+uint8_t *case_str_rw_idx (struct ccase *, size_t idx);
int case_compare (const struct ccase *, const struct ccase *,
const struct variable *const *, size_t n_vars);
#include "settings.h"
#include "value.h"
#include "format.h"
+#include "dictionary.h"
#include <libpspp/assertion.h>
#include <libpspp/legacy-encoding.h>
+#include <libpspp/i18n.h>
#include <libpspp/compiler.h>
#include <libpspp/integer-format.h>
#include <libpspp/message.h>
/* Information about parsing one data field. */
struct data_in
{
- enum legacy_encoding encoding;/* Encoding of source. */
+ const char *src_enc; /* Encoding of source. */
struct substring input; /* Source. */
enum fmt_type format; /* Input format. */
int implied_decimals; /* Number of implied decimal places. */
representation in OUTPUT, which the caller must have
initialized with the given WIDTH (0 for a numeric field,
otherwise the string width).
+ Iff FORMAT is a string format, then DICT must be a pointer
+ to the dictionary associated with OUTPUT. Otherwise, DICT
+ may be null.
If no decimal point is included in a numeric format, then
IMPLIED_DECIMALS decimal places are implied. Specify 0 if no
FIRST_COLUMN plus the length of the input because of the
possibility of escaped quotes in strings, etc.) */
bool
-data_in (struct substring input, enum legacy_encoding encoding,
+data_in (struct substring input, const char *encoding,
enum fmt_type format, int implied_decimals,
- int first_column, int last_column, union value *output, int width)
+ int first_column, int last_column,
+ const struct dictionary *dict,
+ union value *output, int width)
{
static data_in_parser_func *const handlers[FMT_NUMBER_OF_FORMATS] =
{
};
struct data_in i;
- void *copy = NULL;
+
bool ok;
assert ((width != 0) == fmt_is_string (format));
- if (encoding == LEGACY_NATIVE
- || fmt_get_category (format) & (FMT_CAT_BINARY | FMT_CAT_STRING))
- {
- i.input = input;
- i.encoding = encoding;
- }
- else
- {
- ss_alloc_uninit (&i.input, ss_length (input));
- legacy_recode (encoding, ss_data (input), LEGACY_NATIVE,
- ss_data (i.input), ss_length (input));
- i.encoding = LEGACY_NATIVE;
- copy = ss_data (i.input);
- }
i.format = format;
i.implied_decimals = implied_decimals;
i.first_column = first_column;
i.last_column = last_column;
+ i.src_enc = encoding;
- if (!ss_is_empty (i.input))
+ if (ss_is_empty (input))
{
- ok = handlers[i.format] (&i);
- if (!ok)
- default_result (&i);
+ default_result (&i);
+ return true;
+ }
+
+ if (fmt_get_category (format) & ( FMT_CAT_BINARY | FMT_CAT_HEXADECIMAL | FMT_CAT_LEGACY))
+ {
+ i.input = input;
}
else
{
- default_result (&i);
- ok = true;
+ const char *dest_encoding;
+ char *s = NULL;
+ if ( dict == NULL)
+ {
+ assert (0 == (fmt_get_category (format) & (FMT_CAT_BINARY | FMT_CAT_STRING)));
+ dest_encoding = LEGACY_NATIVE;
+ }
+ else
+ dest_encoding = dict_get_encoding (dict);
+
+ s = recode_string (dest_encoding, i.src_enc, ss_data (input), ss_length (input));
+ ss_alloc_uninit (&i.input, strlen (s));
+ memcpy (ss_data (i.input), s, ss_length (input));
+ free (s);
}
- if (copy)
- free (copy);
+ ok = handlers[i.format] (&i);
+ if (!ok)
+ default_result (&i);
return ok;
}
{
/* This is equivalent to buf_copy_rpad, except that we posibly
do a character set recoding in the middle. */
- char *dst = value_str_rw (i->output, i->width);
+ uint8_t *dst = value_str_rw (i->output, i->width);
size_t dst_size = i->width;
const char *src = ss_data (i->input);
size_t src_size = ss_length (i->input);
- legacy_recode (i->encoding, src, LEGACY_NATIVE, dst, MIN (src_size, dst_size));
+ memcpy (dst, src, MIN (src_size, dst_size));
+
if (dst_size > src_size)
memset (&dst[src_size], ' ', dst_size - src_size);
static bool
parse_AHEX (struct data_in *i)
{
- char *s = value_str_rw (i->output, i->width);
+ uint8_t *s = value_str_rw (i->output, i->width);
size_t j;
for (j = 0; ; j++)
return false;
}
- if (i->encoding != LEGACY_NATIVE)
+ if (0 != strcmp (i->src_enc, LEGACY_NATIVE))
{
- hi = legacy_to_native (i->encoding, hi);
- lo = legacy_to_native (i->encoding, lo);
+ hi = legacy_to_native (i->src_enc, hi);
+ lo = legacy_to_native (i->src_enc, lo);
}
if (!c_isxdigit (hi) || !c_isxdigit (lo))
{
enum fmt_type;
union value;
-bool data_in (struct substring input, enum legacy_encoding,
+struct dictionary;
+bool data_in (struct substring input, const char *encoding,
enum fmt_type, int implied_decimals,
int first_column, int last_column,
+ const struct dictionary *dict,
union value *output, int width);
#endif /* data/data-in.h */
#include <libpspp/message.h>
#include <libpspp/misc.h>
#include <libpspp/str.h>
+#include <libpspp/pool.h>
+#include <libpspp/i18n.h>
#include "minmax.h"
char *);
static void output_hex (const void *, size_t bytes, char *);
\f
-/* Same as data_out, and additionally recodes the output from
- native form into the given legacy character ENCODING. */
-void
-data_out_legacy (const union value *input, enum legacy_encoding encoding,
- const struct fmt_spec *format, char *output)
-{
- static data_out_converter_func *const converters[FMT_NUMBER_OF_FORMATS] =
+
+static data_out_converter_func *const converters[FMT_NUMBER_OF_FORMATS] =
{
#define FMT(NAME, METHOD, IMIN, OMIN, IO, CATEGORY) output_##METHOD,
#include "format.def"
};
+/* Similar to data_out. Additionally recodes the output from
+ native form into the given legacy character ENCODING.
+ OUTPUT must be provided by the caller and must be at least
+ FORMAT->w long. No null terminator is appended to OUTPUT.
+*/
+void
+data_out_legacy (const union value *input, const char *encoding,
+ const struct fmt_spec *format, char *output)
+{
assert (fmt_check_output (format));
converters[format->type] (input, format, output);
- if (encoding != LEGACY_NATIVE
+ if (0 != strcmp (encoding, LEGACY_NATIVE)
&& fmt_get_category (format->type) != FMT_CAT_BINARY)
- legacy_recode (LEGACY_NATIVE, output, encoding, output, format->w);
+ {
+ char *s = recode_string (encoding, LEGACY_NATIVE, output, format->w );
+ memcpy (output, s, format->w);
+ free (s);
+ }
}
-/* Converts the INPUT value into printable form in the exactly
- FORMAT->W characters in OUTPUT according to format
- specification FORMAT. No null terminator is appended to the
- buffer.
+/* Converts the INPUT value into a UTF8 encoded string, according
+ to format specification FORMAT.
VALUE must be the correct width for FORMAT, that is, its
- width must be fmt_var_width(FORMAT). */
-void
-data_out (const union value *input, const struct fmt_spec *format,
- char *output)
+ width must be fmt_var_width(FORMAT).
+
+ ENCODING must be the encoding of INPUT. Normally this can
+ be obtained by calling dict_get_encoding on the dictionary
+ with which INPUT is associated.
+
+ The return value is dynamically allocated, and must be freed
+ by the caller. If POOL is non-null, then the return value is
+ allocated on that pool.
+*/
+char *
+data_out_pool (const union value *input, const char *encoding,
+ const struct fmt_spec *format, struct pool *pool)
+{
+ char *output = xmalloc (format->w + 1);
+ char *t ;
+ assert (fmt_check_output (format));
+
+ converters[format->type] (input, format, output);
+ output[format->w] = '\0';
+
+ t = recode_string_pool (UTF8, encoding, output, format->w, pool);
+ free (output);
+ return t;
+}
+
+char *
+data_out (const union value *input, const char *encoding, const struct fmt_spec *format)
{
- return data_out_legacy (input, LEGACY_NATIVE, format, output);
+ return data_out_pool (input, encoding, format, NULL);
}
\f
struct fmt_spec;
union value;
-void data_out (const union value *, const struct fmt_spec *, char *);
+char * data_out (const union value *, const char *encoding, const struct fmt_spec *);
-void data_out_legacy (const union value *, enum legacy_encoding,
- const struct fmt_spec *, char *);
+char * data_out_pool (const union value *, const char *encoding, const struct fmt_spec *, struct pool *pool);
+
+void data_out_legacy (const union value *input, const char *encoding,
+ const struct fmt_spec *format, char *output);
#endif /* data-out.h */
/* FH_REF_FILE only. */
char *file_name; /* File name as provided by user. */
enum fh_mode mode; /* File mode. */
- enum legacy_encoding encoding;/* File encoding. */
+ const char *encoding; /* File encoding. */
/* FH_REF_FILE and FH_REF_INLINE only. */
size_t record_width; /* Length of fixed-format records. */
}
/* Returns the encoding of characters read from HANDLE. */
-enum legacy_encoding
+const char *
fh_get_legacy_encoding (const struct file_handle *handle)
{
assert (handle->referent & (FH_REF_FILE | FH_REF_INLINE));
enum fh_mode mode; /* File mode. */
size_t record_width; /* Length of fixed-format records. */
size_t tab_width; /* Tab width, 0=do not expand tabs. */
- enum legacy_encoding encoding;/* ASCII or EBCDIC? */
+ const char *encoding; /* ASCII or EBCDIC? */
};
void fh_init (void);
/* Properties of FH_REF_FILE and FH_REF_INLINE file handles. */
size_t fh_get_record_width (const struct file_handle *);
size_t fh_get_tab_width (const struct file_handle *);
-enum legacy_encoding fh_get_legacy_encoding (const struct file_handle *);
+const char *fh_get_legacy_encoding (const struct file_handle *);
/* Properties of FH_REF_SCRATCH file handles. */
struct scratch_handle *fh_get_scratch_handle (const struct file_handle *);
if ( NULL == gz)
{
- msg (ME, _("Error opening \"%s\" for reading as a gnumeric file: %s."),
+ msg (ME, _("Error opening \"%s\" for reading as a Gnumeric file: %s."),
gri->file_name, strerror (errno));
goto error;
Returns true if successful, false if MV has no more room for
missing values or if S is not an acceptable missing value. */
bool
-mv_add_str (struct missing_values *mv, const char s[])
+mv_add_str (struct missing_values *mv, const uint8_t s[])
{
union value v;
bool ok;
MV must be a set of string missing values.
S[] must contain exactly as many characters as MV's width. */
static bool
-is_str_user_missing (const struct missing_values *mv, const char s[])
+is_str_user_missing (const struct missing_values *mv, const uint8_t s[])
{
const union value *v = mv->values;
assert (mv->width > 0);
MV must be a set of string missing values.
S[] must contain exactly as many characters as MV's width. */
bool
-mv_is_str_missing (const struct missing_values *mv, const char s[],
+mv_is_str_missing (const struct missing_values *mv, const uint8_t s[],
enum mv_class class)
{
assert (mv->width > 0);
bool mv_is_value_missing (const struct missing_values *, const union value *,
enum mv_class);
bool mv_is_num_missing (const struct missing_values *, double, enum mv_class);
-bool mv_is_str_missing (const struct missing_values *, const char[],
+bool mv_is_str_missing (const struct missing_values *, const uint8_t[],
enum mv_class);
/* Initializing missing value sets. */
/* Adding and modifying discrete values. */
bool mv_add_value (struct missing_values *, const union value *);
-bool mv_add_str (struct missing_values *, const char[]);
+bool mv_add_str (struct missing_values *, const uint8_t[]);
bool mv_add_num (struct missing_values *, double);
void mv_pop_value (struct missing_values *, union value *);
bool mv_replace_value (struct missing_values *, const union value *, int idx);
*buf = '\0';
}
+
+/* Reads a string into BUF, which must have room for 256
+ characters.
+ Returns the number of bytes read.
+*/
+static size_t
+read_bytes (struct pfm_reader *r, uint8_t *buf)
+{
+ int n = read_int (r);
+ if (n < 0 || n > 255)
+ error (r, _("Bad string length %d."), n);
+
+ while (n-- > 0)
+ {
+ *buf++ = r->cc;
+ advance (r);
+ }
+ return n;
+}
+
+
+
/* Reads a string and returns a copy of it allocated from R's
pool. */
static char *
value_init (v, width);
if (width > 0)
{
- char string[256];
- read_string (r, string);
- value_copy_str_rpad (v, width, string, ' ');
+ uint8_t buf[256];
+ size_t n_bytes = read_bytes (r, buf);
+ value_copy_buf_rpad (v, width, buf, n_bytes, ' ');
}
else
v->f = read_float (r);
case_data_rw_idx (c, i)->f = read_float (r);
else
{
- char string[256];
- read_string (r, string);
- buf_copy_str_rpad (case_str_rw_idx (c, i), width, string, ' ');
+ uint8_t buf[256];
+ size_t n_bytes = read_bytes (r, buf);
+ u8_buf_copy_rpad (case_str_rw_idx (c, i), width, buf, n_bytes, ' ');
}
}
#include <setjmp.h>
#include <stdlib.h>
+#include <libpspp/i18n.h>
#include <libpspp/assertion.h>
#include <libpspp/message.h>
#include <libpspp/compiler.h>
size_t size, size_t count,
struct dictionary *);
+/* Convert all the strings in DICT from the dict encoding to UTF8 */
+static void
+recode_strings (struct dictionary *dict)
+{
+ int i;
+
+ const char *enc = dict_get_encoding (dict);
+
+ if ( NULL == enc)
+ enc = get_default_encoding ();
+
+ for (i = 0 ; i < dict_get_var_cnt (dict); ++i)
+ {
+ /* Convert the long variable name */
+ struct variable *var = dict_get_var (dict, i);
+ const char *native_name = var_get_name (var);
+ char *utf8_name = recode_string (UTF8, enc, native_name, -1);
+ if ( 0 != strcmp (utf8_name, native_name))
+ {
+ if ( NULL == dict_lookup_var (dict, utf8_name))
+ dict_rename_var (dict, var, utf8_name);
+ else
+ msg (MW,
+ _("Recoded variable name duplicates an existing `%s' within system file."), utf8_name);
+ }
+
+ free (utf8_name);
+
+ /* Convert the variable label */
+ if (var_has_label (var))
+ {
+ char *utf8_label = recode_string (UTF8, enc, var_get_label (var), -1);
+ var_set_label (var, utf8_label);
+ free (utf8_label);
+ }
+
+ if (var_has_value_labels (var))
+ {
+ const struct val_lab *vl = NULL;
+ const struct val_labs *vlabs = var_get_value_labels (var);
+
+ for (vl = val_labs_first (vlabs); vl != NULL; vl = val_labs_next (vlabs, vl))
+ {
+ const union value *val = val_lab_get_value (vl);
+ const char *label = val_lab_get_label (vl);
+ char *new_label = NULL;
+
+ new_label = recode_string (UTF8, enc, label, -1);
+
+ var_replace_value_label (var, val, new_label);
+ free (new_label);
+ }
+ }
+ }
+}
+
/* Opens the system file designated by file handle FH for
reading. Reads the system file's dictionary into *DICT.
If INFO is non-null, then it receives additional info about the
r->has_long_var_names = true;
}
+ recode_strings (*dict);
+
/* Read record 999 data, which is just filler. */
read_int (r);
/* Create variable. */
if (width < 0 || width > 255)
- sys_error (r, _("Bad variable width %d."), width);
+ sys_error (r, _("Bad width %d for variable %s."), width, name);
var = dict_create_var (dict, name, width);
if (var == NULL)
sys_error (r,
value_set_missing (&value, mv_width);
for (i = 0; i < missing_value_code; i++)
{
- char *s = value_str_rw (&value, mv_width);
+ uint8_t *s = value_str_rw (&value, mv_width);
read_bytes (r, s, 8);
mv_add_str (&mv, s);
}
size, count);
if (sysmis != SYSMIS)
- sys_warn (r, _("File specifies unexpected value %g as SYSMIS."), sysmis);
+ sys_warn (r, _("File specifies unexpected value %g as %s."),
+ sysmis, "SYSMIS");
+
if (highest != HIGHEST)
- sys_warn (r, _("File specifies unexpected value %g as HIGHEST."), highest);
+ sys_warn (r, _("File specifies unexpected value %g as %s."),
+ highest, "HIGHEST");
+
if (lowest != LOWEST)
- sys_warn (r, _("File specifies unexpected value %g as LOWEST."), lowest);
+ sys_warn (r, _("File specifies unexpected value %g as %s."),
+ lowest, "LOWEST");
}
/* Read record type 7, subtype 11, which specifies how variables
struct label
{
- char raw_value[8]; /* Value as uninterpreted bytes. */
+ uint8_t raw_value[8]; /* Value as uninterpreted bytes. */
union value value; /* Value. */
char *label; /* Null-terminated label string. */
};
value_init_pool (subpool, &label->value, max_width);
if (var_is_alpha (var[0]))
- buf_copy_rpad (value_str_rw (&label->value, max_width), max_width,
+ u8_buf_copy_rpad (value_str_rw (&label->value, max_width), max_width,
label->raw_value, sizeof label->raw_value, ' ');
else
label->value.f = float_get_double (r->float_format, label->raw_value);
/* Read value. */
value_length = read_int (r);
if (value_length == width)
- read_string (r, value_str_rw (&value, width), width + 1);
+ read_bytes (r, value_str_rw (&value, width), width);
else
{
sys_warn (r, _("Ignoring long string value %zu for variable %s, "
static void read_error (struct casereader *, const struct sfm_reader *);
static bool read_case_number (struct sfm_reader *, double *);
-static bool read_case_string (struct sfm_reader *, char *, size_t);
+static bool read_case_string (struct sfm_reader *, uint8_t *, size_t);
static int read_opcode (struct sfm_reader *);
static bool read_compressed_number (struct sfm_reader *, double *);
-static bool read_compressed_string (struct sfm_reader *, char *);
-static bool read_whole_strings (struct sfm_reader *, char *, size_t);
+static bool read_compressed_string (struct sfm_reader *, uint8_t *);
+static bool read_whole_strings (struct sfm_reader *, uint8_t *, size_t);
static bool skip_whole_strings (struct sfm_reader *, size_t);
/* Reads and returns one case from READER's file. Returns a null
}
else
{
- char *s = value_str_rw (v, sv->var_width);
+ uint8_t *s = value_str_rw (v, sv->var_width);
if (!read_case_string (r, s + sv->offset, sv->segment_width))
goto eof;
if (!skip_whole_strings (r, ROUND_DOWN (sv->padding, 8)))
Returns true if successful, false if end of file is
reached immediately. */
static bool
-read_case_string (struct sfm_reader *r, char *s, size_t length)
+read_case_string (struct sfm_reader *r, uint8_t *s, size_t length)
{
size_t whole = ROUND_DOWN (length, 8);
size_t partial = length % 8;
if (partial)
{
- char bounce[8];
+ uint8_t bounce[8];
if (!read_whole_strings (r, bounce, sizeof bounce))
{
if (whole)
Returns true if successful, false if end of file is
reached immediately. */
static bool
-read_compressed_string (struct sfm_reader *r, char *dst)
+read_compressed_string (struct sfm_reader *r, uint8_t *dst)
{
switch (read_opcode (r))
{
Returns true if successful, false if end of file is
reached immediately. */
static bool
-read_whole_strings (struct sfm_reader *r, char *s, size_t length)
+read_whole_strings (struct sfm_reader *r, uint8_t *s, size_t length)
{
assert (length % 8 == 0);
if (!r->compressed)
static bool
skip_whole_strings (struct sfm_reader *r, size_t length)
{
- char buffer[1024];
+ uint8_t buffer[1024];
assert (length < sizeof buffer);
return read_whole_strings (r, buffer, length);
}
#include <libpspp/message.h>
#include <libpspp/misc.h>
#include <libpspp/str.h>
+#include <libpspp/i18n.h>
#include <libpspp/version.h>
#include <data/attributes.h>
static const struct casewriter_class sys_file_casewriter_class;
static void write_header (struct sfm_writer *, const struct dictionary *);
-static void write_variable (struct sfm_writer *, const struct variable *);
+static void write_variable (struct sfm_writer *, const struct variable *, const struct dictionary *);
static void write_value_labels (struct sfm_writer *,
- struct variable *, int idx);
+ struct variable *, int idx, const struct dictionary *);
static void write_integer_info_record (struct sfm_writer *);
static void write_float_info_record (struct sfm_writer *);
/* Write basic variable info. */
short_names_assign (d);
for (i = 0; i < dict_get_var_cnt (d); i++)
- write_variable (w, dict_get_var (d, i));
+ write_variable (w, dict_get_var (d, i), d);
/* Write out value labels. */
idx = 0;
{
struct variable *v = dict_get_var (d, i);
- write_value_labels (w, v, idx);
+ write_value_labels (w, v, idx, d);
idx += sfm_width_to_octs (var_get_width (v));
}
/* Write the variable record(s) for variable V to system file
W. */
static void
-write_variable (struct sfm_writer *w, const struct variable *v)
+write_variable (struct sfm_writer *w, const struct variable *v, const struct dictionary *dict)
{
int width = var_get_width (v);
int segment_cnt = sfm_width_to_segments (width);
if (var_has_label (v))
{
const char *label = var_get_label (v);
- size_t padded_len = ROUND_UP (MIN (strlen (label), 255), 4);
+ char *l = recode_string (dict_get_encoding (dict), UTF8, label, -1);
+ size_t padded_len = ROUND_UP (MIN (strlen (l), 255), 4);
write_int (w, padded_len);
- write_string (w, label, padded_len);
+ write_string (w, l, padded_len);
+ free (l);
}
/* Write the missing values, if any, range first. */
Value labels for long string variables are written separately,
by write_long_string_value_labels. */
static void
-write_value_labels (struct sfm_writer *w, struct variable *v, int idx)
+write_value_labels (struct sfm_writer *w, struct variable *v, int idx, const struct dictionary *dict)
{
const struct val_labs *val_labs;
const struct val_lab **labels;
for (i = 0; i < n_labels; i++)
{
const struct val_lab *vl = labels[i];
- const char *label = val_lab_get_label (vl);
+ char *label = recode_string (dict_get_encoding (dict), UTF8, val_lab_get_label (vl), -1);
uint8_t len = MIN (strlen (label), 255);
write_value (w, val_lab_get_value (vl), var_get_width (v));
write_bytes (w, &len, 1);
write_bytes (w, label, len);
write_zeros (w, REM_RND_UP (len + 1, 8));
+ free (label);
}
free (labels);
for (i = 0; i < dict_get_var_cnt (dict); i++)
{
struct variable *v = dict_get_var (dict, i);
+ char *longname = recode_string (dict_get_encoding (dict), UTF8, var_get_name (v), -1);
if (i)
ds_put_char (&map, '\t');
ds_put_format (&map, "%s=%s",
- var_get_short_name (v, 0), var_get_name (v));
+ var_get_short_name (v, 0), longname);
+ free (longname);
}
write_int (w, 7); /* Record type. */
#include <libpspp/hash.h>
#include <libpspp/pool.h>
#include <libpspp/str.h>
+#include <gl/unistr.h>
#include "minmax.h"
#include "xalloc.h"
const union value *src, int src_width,
char pad)
{
- buf_copy_rpad (value_str_rw (dst, dst_width), dst_width,
+ u8_buf_copy_rpad (value_str_rw (dst, dst_width), dst_width,
value_str (src, src_width), src_width,
pad);
}
DST was initialized. Passing, e.g., a smaller value in order
to modify only a prefix of DST will not work in every case. */
void
-value_copy_str_rpad (union value *dst, int dst_width, const char *src,
+value_copy_str_rpad (union value *dst, int dst_width, const uint8_t *src,
char pad)
{
- value_copy_buf_rpad (dst, dst_width, src, strlen (src), pad);
+ value_copy_buf_rpad (dst, dst_width, src, u8_strlen (src), pad);
}
/* Copies the SRC_LEN bytes at SRC to string value DST with width
to modify only a prefix of DST will not work in every case. */
void
value_copy_buf_rpad (union value *dst, int dst_width,
- const char *src, size_t src_len, char pad)
+ const uint8_t *src, size_t src_len, char pad)
{
- buf_copy_rpad (value_str_rw (dst, dst_width), dst_width, src, src_len, pad);
+ u8_buf_copy_rpad (value_str_rw (dst, dst_width), dst_width, src, src_len, pad);
}
/* Sets V to the system-missing value for data of the given
return false;
else
{
- const char *str = value_str (value, old_width);
+ const uint8_t *str = value_str (value, old_width);
int i;
for (i = new_width; i < old_width; i++)
{
if (new_width > MAX_SHORT_STRING)
{
- char *new_long_string = pool_alloc_unaligned (pool, new_width);
+ uint8_t *new_long_string = pool_alloc_unaligned (pool, new_width);
memcpy (new_long_string, value_str (value, old_width), old_width);
value->long_string = new_long_string;
}
#include <assert.h>
#include <stdbool.h>
#include <stdlib.h>
+#include <stdint.h>
#include <string.h>
#include "xalloc.h"
\f
union value
{
double f;
- char short_string[MAX_SHORT_STRING];
- char *long_string;
+ uint8_t short_string[MAX_SHORT_STRING];
+ uint8_t *long_string;
};
static inline void value_init (union value *, int width);
static inline void value_destroy (union value *, int width);
static inline double value_num (const union value *);
-static inline const char *value_str (const union value *, int width);
-static inline char *value_str_rw (union value *, int width);
-
-int compare_values (const void *, const void *, const void *var);
-unsigned hash_value (const void *, const void *var);
+static inline const uint8_t *value_str (const union value *, int width);
+static inline uint8_t *value_str_rw (union value *, int width);
static inline void value_copy (union value *, const union value *, int width);
void value_copy_rpad (union value *, int dst_width,
const union value *, int src_width,
char pad);
-void value_copy_str_rpad (union value *, int dst_width, const char *,
+void value_copy_str_rpad (union value *, int dst_width, const uint8_t *,
char pad);
void value_copy_buf_rpad (union value *dst, int dst_width,
- const char *src, size_t src_len, char pad);
+ const uint8_t *src, size_t src_len, char pad);
void value_set_missing (union value *, int width);
int value_compare_3way (const union value *, const union value *, int width);
bool value_equal (const union value *, const union value *, int width);
-size_t value_hash (const union value *, int width, unsigned int basis);
+unsigned int value_hash (const union value *, int width, unsigned int basis);
bool value_is_resizable (const union value *, int old_width, int new_width);
bool value_needs_resize (int old_width, int new_width);
It is important that WIDTH be the actual value that was passed
to value_init. Passing, e.g., a smaller value because only
that number of bytes will be accessed will not always work. */
-static inline const char *
+static inline const uint8_t *
value_str (const union value *v, int width)
{
assert (width > 0);
It is important that WIDTH be the actual value that was passed
to value_init. Passing, e.g., a smaller value because only
that number of bytes will be accessed will not always work. */
-static inline char *
+static inline uint8_t *
value_str_rw (union value *v, int width)
{
assert (width > 0);
return new_var;
}
-/* Create a variable to be used for internal calculations only.
- The variable is assigned a unique dictionary index and a case
- index of CASE_IDX. */
+/* Create a variable of the specified WIDTH to be used for
+ internal calculations only. The variable is assigned a unique
+ dictionary index and a case index of CASE_IDX. */
struct variable *
-var_create_internal (int case_idx)
+var_create_internal (int case_idx, int width)
{
- struct variable *v = var_create ("$internal", 0);
+ struct variable *v = var_create ("$internal", width);
struct vardict_info vdi;
static int counter = INT_MAX / 2;
S[] must contain exactly as many characters as V's width.
V must be a string variable. */
bool
-var_is_str_missing (const struct variable *v, const char s[],
+var_is_str_missing (const struct variable *v, const uint8_t s[],
enum mv_class class)
{
return mv_is_str_missing (&v->miss, s, class);
struct string *str)
{
const char *name = var_lookup_value_label (v, value);
+ const struct dictionary *dict = var_get_vardict (v)->dict;
if (name == NULL)
{
- char *s = ds_put_uninit (str, v->print.w);
- data_out (value, &v->print, s);
+ char *s = data_out (value, dict_get_encoding (dict), &v->print);
+ ds_put_cstr (str, s);
+ free (s);
}
else
ds_put_cstr (str, name);
struct variable *var_create (const char *name, int width);
struct variable *var_clone (const struct variable *);
void var_destroy (struct variable *);
-struct variable *var_create_internal (int case_idx);
+struct variable *var_create_internal (int case_idx, int width);
/* Variable names. */
bool var_is_value_missing (const struct variable *, const union value *,
enum mv_class);
bool var_is_num_missing (const struct variable *, double, enum mv_class);
-bool var_is_str_missing (const struct variable *, const char[], enum mv_class);
+bool var_is_str_missing (const struct variable *, const uint8_t[], enum mv_class);
/* Value labels. */
const char *var_lookup_value_label (const struct variable *,
/* PSPP - a program for statistical analysis.
- Copyright (C) 1997-9, 2000 Free Software Foundation, Inc.
+ Copyright (C) 1997-9, 2000, 2009 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
}
else if (command->function == NULL)
{
- msg (SE, _("%s is unimplemented."), command->name);
+ msg (SE, _("%s is not yet implemented."), command->name);
result = CMD_NOT_IMPLEMENTED;
goto finish;
}
bool ok;
dict = in_input_program () ? dataset_dict (ds) : dict_create ();
- parser = data_parser_create ();
+ parser = data_parser_create (dict);
reader = NULL;
table = -1; /* Print table if nonzero, -1=undecided. */
/* Data parser for textual data like that read by DATA LIST. */
struct data_parser
{
+ const struct dictionary *dict; /*Dictionary of destination */
enum data_parser_type type; /* Type of data to parse. */
int skip_records; /* Records to skip before first real data. */
casenumber max_cases; /* Max number of cases to read. */
/* Creates and returns a new data parser. */
struct data_parser *
-data_parser_create (void)
+data_parser_create (const struct dictionary *dict)
{
struct data_parser *parser = xmalloc (sizeof *parser);
parser->fields = NULL;
parser->field_cnt = 0;
parser->field_allocated = 0;
+ parser->dict = dict;
parser->span = true;
parser->empty_line_has_field = false;
parse_fixed (const struct data_parser *parser, struct dfm_reader *reader,
struct ccase *c)
{
- enum legacy_encoding encoding = dfm_reader_get_legacy_encoding (reader);
+ const char *encoding = dfm_reader_get_legacy_encoding (reader);
struct field *f;
int row;
f->format.w),
encoding, f->format.type, f->format.d,
f->first_column, f->first_column + f->format.w,
+ parser->dict,
case_data_rw_idx (c, f->case_idx),
fmt_var_width (&f->format));
parse_delimited_span (const struct data_parser *parser,
struct dfm_reader *reader, struct ccase *c)
{
- enum legacy_encoding encoding = dfm_reader_get_legacy_encoding (reader);
+ const char *encoding = dfm_reader_get_legacy_encoding (reader);
struct string tmp = DS_EMPTY_INITIALIZER;
struct field *f;
data_in (s, encoding, f->format.type, 0,
first_column, last_column,
+ parser->dict,
case_data_rw_idx (c, f->case_idx),
fmt_var_width (&f->format));
}
parse_delimited_no_span (const struct data_parser *parser,
struct dfm_reader *reader, struct ccase *c)
{
- enum legacy_encoding encoding = dfm_reader_get_legacy_encoding (reader);
+ const char *encoding = dfm_reader_get_legacy_encoding (reader);
struct string tmp = DS_EMPTY_INITIALIZER;
struct substring s;
struct field *f;
data_in (s, encoding, f->format.type, 0,
first_column, last_column,
+ parser->dict,
case_data_rw_idx (c, f->case_idx),
fmt_var_width (&f->format));
}
int row = i + 1;
tab_text (t, 0, row, TAB_LEFT, f->name);
- tab_text (t, 1, row, TAT_PRINTF, "%d", f->record);
- tab_text (t, 2, row, TAT_PRINTF, "%3d-%3d",
- f->first_column, f->first_column + f->format.w - 1);
+ tab_text_format (t, 1, row, 0, "%d", f->record);
+ tab_text_format (t, 2, row, 0, "%3d-%3d",
+ f->first_column, f->first_column + f->format.w - 1);
tab_text (t, 3, row, TAB_LEFT | TAB_FIX,
fmt_to_string (&f->format, fmt_string));
}
};
/* Creating and configuring any parser. */
-struct data_parser *data_parser_create (void);
+struct data_parser *data_parser_create (const struct dictionary *dict);
void data_parser_destroy (struct data_parser *);
enum data_parser_type data_parser_get_type (const struct data_parser *);
}
/* Returns the legacy character encoding of data read from READER. */
-enum legacy_encoding
+const char *
dfm_reader_get_legacy_encoding (const struct dfm_reader *reader)
{
return fh_get_legacy_encoding (reader->fh);
unsigned dfm_eof (struct dfm_reader *);
struct substring dfm_get_record (struct dfm_reader *);
void dfm_expand_tabs (struct dfm_reader *);
-enum legacy_encoding dfm_reader_get_legacy_encoding (
- const struct dfm_reader *);
+const char *dfm_reader_get_legacy_encoding (const struct dfm_reader *);
int dfm_get_percent_read (const struct dfm_reader *);
/* Line control. */
}
/* Returns the legacy character encoding of data written to WRITER. */
-enum legacy_encoding
+const char *
dfm_writer_get_legacy_encoding (const struct dfm_writer *writer)
{
return fh_get_legacy_encoding (writer->fh);
bool dfm_close_writer (struct dfm_writer *);
bool dfm_write_error (const struct dfm_writer *);
bool dfm_put_record (struct dfm_writer *, const char *rec, size_t len);
-enum legacy_encoding dfm_writer_get_legacy_encoding (
- const struct dfm_writer *);
+const char *dfm_writer_get_legacy_encoding (const struct dfm_writer *);
#endif /* data-writer.h */
properties.mode = FH_MODE_VARIABLE;
break;
case FH_360:
- properties.encoding = LEGACY_EBCDIC;
+ properties.encoding = "EBCDIC-US";
if (cmd.recform == FH_FIXED || cmd.recform == FH_F)
properties.mode = FH_MODE_FIXED;
else if (cmd.recform == FH_VARIABLE || cmd.recform == FH_V)
parse_get_txt (struct lexer *lexer, struct dataset *ds)
{
struct data_parser *parser = NULL;
- struct dictionary *dict = NULL;
+ struct dictionary *dict = dict_create ();
struct file_handle *fh = NULL;
struct dfm_reader *reader = NULL;
if (fh == NULL)
goto error;
- parser = data_parser_create ();
+ parser = data_parser_create (dict);
has_type = false;
data_parser_set_type (parser, DP_DELIMITED);
data_parser_set_span (parser, false);
}
lex_match (lexer, '=');
- dict = dict_create ();
+
record = 1;
type = data_parser_get_type (parser);
do
if (fmt_is_string (print->type)
|| dict_contains_var (dict, v))
{
- data_out (case_data (c, v), print,
- ds_put_uninit (&line_buffer, print->w));
+ char *s = data_out (case_data (c, v), dict_get_encoding (dict), print);
+ ds_put_cstr (&line_buffer, s);
+ free (s);
}
else
{
+ char *s;
union value case_idx_value;
case_idx_value.f = case_idx;
- data_out (&case_idx_value, print,
- ds_put_uninit (&line_buffer,print->w));
+ s = data_out (&case_idx_value, dict_get_encoding (dict), print);
+ ds_put_cstr (&line_buffer, s);
+ free (s);
}
- ds_put_char(&line_buffer, ' ');
+ ds_put_char (&line_buffer, ' ');
}
if (!n_lines_remaining (d))
{
const struct variable *v = cmd.v_variables[column];
const struct fmt_spec *print = var_get_print_format (v);
- char buf[256];
+ char *s = NULL;
if (fmt_is_string (print->type)
|| dict_contains_var (dict, v))
- data_out (case_data (c, v), print, buf);
+ s = data_out (case_data (c, v), dict_get_encoding (dict), print);
else
{
union value case_idx_value;
case_idx_value.f = case_idx;
- data_out (&case_idx_value, print, buf);
+ s = data_out (&case_idx_value, dict_get_encoding (dict), print);
}
fputs (" <TD>", x->file);
- html_put_cell_contents (d, TAB_FIX, ss_buffer (buf, print->w));
+ html_put_cell_contents (d, TAB_FIX, ss_buffer (s, print->w));
+ free (s);
fputs ("</TD>\n", x->file);
}
#include <language/lexer/lexer.h>
#include <language/lexer/variable-parser.h>
#include <libpspp/assertion.h>
+#include <libpspp/i18n.h>
#include <libpspp/compiler.h>
#include <libpspp/ll.h>
#include <libpspp/message.h>
struct pool *pool; /* Stores related data. */
bool eject; /* Eject page before printing? */
bool include_prefix; /* Prefix lines with space? */
- enum legacy_encoding encoding; /* Encoding to use for output. */
+ const char *encoding; /* Encoding to use for output. */
struct dfm_writer *writer; /* Output file, NULL=listing file. */
struct ll_list specs; /* List of struct prt_out_specs. */
size_t record_cnt; /* Number of records to write. */
switch (spec->type)
{
case PRT_LITERAL:
- tab_text (t, 0, row, TAB_LEFT | TAB_FIX | TAT_PRINTF, "\"%.*s\"",
- (int) ds_length (&spec->string), ds_data (&spec->string));
+ tab_text_format (t, 0, row, TAB_LEFT | TAB_FIX, "\"%.*s\"",
+ (int) ds_length (&spec->string),
+ ds_data (&spec->string));
width = ds_length (&spec->string);
break;
case PRT_VAR:
default:
NOT_REACHED ();
}
- tab_text (t, 1, row, TAT_PRINTF, "%d", spec->record);
- tab_text (t, 2, row, TAT_PRINTF, "%3d-%3d",
- spec->first_column, spec->first_column + width - 1);
+ tab_text_format (t, 1, row, 0, "%d", spec->record);
+ tab_text_format (t, 2, row, 0, "%3d-%3d",
+ spec->first_column, spec->first_column + width - 1);
row++;
}
else
{
ds_put_substring (&trns->line, ds_ss (&spec->string));
- if (trns->encoding != LEGACY_NATIVE)
+ if (0 != strcmp (trns->encoding, LEGACY_NATIVE))
{
size_t length = ds_length (&spec->string);
char *data = ss_data (ds_tail (&trns->line, length));
- legacy_recode (LEGACY_NATIVE, data,
- trns->encoding, data, length);
+ char *s = recode_string (trns->encoding, LEGACY_NATIVE, data, length);
+ memcpy (data, s, length);
+ free (s);
}
}
}
mv_init (&mv, MV_MAX_STRING);
while (!lex_match (lexer, ')'))
{
- char value[MV_MAX_STRING];
+ uint8_t value[MV_MAX_STRING];
size_t length;
if (!lex_force_string (lexer))
for (i = 0; i < split_cnt; i++)
{
const struct variable *v = split[i];
- char temp_buf[80];
+ char *s;
const char *val_lab;
const struct fmt_spec *print = var_get_print_format (v);
- tab_text (t, 0, i + 1, TAB_LEFT | TAT_PRINTF, "%s", var_get_name (v));
+ tab_text_format (t, 0, i + 1, TAB_LEFT, "%s", var_get_name (v));
- data_out (case_data (c, v), print, temp_buf);
- temp_buf[print->w] = 0;
-
- tab_text (t, 1, i + 1, TAT_PRINTF, "%.*s", print->w, temp_buf);
+ s = data_out (case_data (c, v), dict_get_encoding (dict), print);
+ tab_text_format (t, 1, i + 1, 0, "%.*s", print->w, s);
+ free (s);
+
val_lab = var_lookup_value_label (v, case_data (c, v));
if (val_lab)
tab_text (t, 2, i + 1, TAB_LEFT, val_lab);
tab_text (t, 1, 1, TAB_LEFT, label);
}
tab_text (t, 0, 2, TAB_LEFT, _("Created:"));
- tab_text (t, 1, 2, TAB_LEFT | TAT_PRINTF, "%s %s by %s",
- info.creation_date, info.creation_time, info.product);
+ tab_text_format (t, 1, 2, TAB_LEFT, "%s %s by %s",
+ info.creation_date, info.creation_time, info.product);
tab_text (t, 0, 3, TAB_LEFT, _("Integer Format:"));
tab_text (t, 1, 3, TAB_LEFT,
info.integer_format == INTEGER_MSB_FIRST ? _("Big Endian.")
: info.float_format == FLOAT_Z_LONG ? _("IBM 390 Hex Long.")
: _("Unknown."));
tab_text (t, 0, 5, TAB_LEFT, _("Variables:"));
- tab_text (t, 1, 5, TAB_LEFT | TAT_PRINTF, "%zu", dict_get_var_cnt (d));
+ tab_text_format (t, 1, 5, TAB_LEFT, "%zu", dict_get_var_cnt (d));
tab_text (t, 0, 6, TAB_LEFT, _("Cases:"));
- tab_text (t, 1, 6, TAB_LEFT | TAT_PRINTF,
- info.case_cnt == -1 ? _("Unknown") : "%ld",
- (long int) info.case_cnt);
+ tab_text_format (t, 1, 6, TAB_LEFT,
+ info.case_cnt == -1 ? _("Unknown") : "%ld",
+ (long int) info.case_cnt);
tab_text (t, 0, 7, TAB_LEFT, _("Type:"));
tab_text (t, 1, 7, TAB_LEFT, _("System File."));
tab_text (t, 0, 8, TAB_LEFT, _("Weight:"));
? var_get_name (weight_var) : _("Not weighted.")));
}
tab_text (t, 0, 9, TAB_LEFT, _("Mode:"));
- tab_text (t, 1, 9, TAB_LEFT | TAT_PRINTF,
- _("Compression %s."), info.compressed ? _("on") : _("off"));
+ tab_text_format (t, 1, 9, TAB_LEFT,
+ _("Compression %s."), info.compressed ? _("on") : _("off"));
tab_text (t, 0, 10, TAB_LEFT, _("Charset:"));
- tab_text (t, 1, 10, TAB_LEFT | TAT_PRINTF,
- dict_get_encoding(d) ? dict_get_encoding(d) : _("Unknown"));
+ tab_text_format (t, 1, 10, TAB_LEFT,
+ dict_get_encoding(d) ? dict_get_encoding(d) : _("Unknown"));
tab_dim (t, tab_natural_dimensions, NULL);
for (i = 0; i < n_values; i++)
{
if (n_values > 1)
- tab_text (t, c, r, TAB_LEFT | TAT_PRINTF, "%s[%d]",
- name, i + 1);
+ tab_text_format (t, c, r, TAB_LEFT, "%s[%d]", name, i + 1);
else
tab_text (t, c, r, TAB_LEFT, name);
tab_text (t, c + 1, r, TAB_LEFT, attribute_get_value (attr, i));
/* Put the name, var label, and position into the first row. */
tab_text (t, 0, r, TAB_LEFT, var_get_name (v));
if (flags & DF_DICT_INDEX)
- tab_text (t, pc, r, TAT_PRINTF, "%zu", var_get_dict_index (v) + 1);
+ tab_text_format (t, pc, r, 0, "%zu", var_get_dict_index (v) + 1);
if (flags & DF_VARIABLE_LABELS && var_has_label (v))
{
if (fmt_equal (print, write))
{
char str[FMT_STRING_LEN_MAX + 1];
- tab_joint_text (t, 1, r, 2, r, TAB_LEFT | TAT_PRINTF,
- _("Format: %s"), fmt_to_string (print, str));
+ tab_joint_text_format (t, 1, r, 2, r, TAB_LEFT,
+ _("Format: %s"), fmt_to_string (print, str));
r++;
}
else
{
char str[FMT_STRING_LEN_MAX + 1];
- tab_joint_text (t, 1, r, 2, r, TAB_LEFT | TAT_PRINTF,
- _("Print Format: %s"), fmt_to_string (print, str));
+ tab_joint_text_format (t, 1, r, 2, r, TAB_LEFT,
+ _("Print Format: %s"),
+ fmt_to_string (print, str));
r++;
- tab_joint_text (t, 1, r, 2, r, TAB_LEFT | TAT_PRINTF,
- _("Write Format: %s"), fmt_to_string (write, str));
+ tab_joint_text_format (t, 1, r, 2, r, TAB_LEFT,
+ _("Write Format: %s"),
+ fmt_to_string (write, str));
r++;
}
}
enum measure m = var_get_measure (v);
enum alignment a = var_get_alignment (v);
- tab_joint_text (t, 1, r, 2, r, TAB_LEFT | TAT_PRINTF,
- _("Measure: %s"),
- m == MEASURE_NOMINAL ? _("Nominal")
- : m == MEASURE_ORDINAL ? _("Ordinal")
- : _("Scale"));
+ tab_joint_text_format (t, 1, r, 2, r, TAB_LEFT,
+ _("Measure: %s"),
+ m == MEASURE_NOMINAL ? _("Nominal")
+ : m == MEASURE_ORDINAL ? _("Ordinal")
+ : _("Scale"));
r++;
- tab_joint_text (t, 1, r, 2, r, TAB_LEFT | TAT_PRINTF,
- _("Display Alignment: %s"),
- a == ALIGN_LEFT ? _("Left")
- : a == ALIGN_CENTRE ? _("Center")
- : _("Right"));
+ tab_joint_text_format (t, 1, r, 2, r, TAB_LEFT,
+ _("Display Alignment: %s"),
+ a == ALIGN_LEFT ? _("Left")
+ : a == ALIGN_CENTRE ? _("Center")
+ : _("Right"));
r++;
- tab_joint_text (t, 1, r, 2, r, TAB_LEFT | TAT_PRINTF,
- _("Display Width: %d"), var_get_display_width (v));
+ tab_joint_text_format (t, 1, r, 2, r, TAB_LEFT,
+ _("Display Width: %d"),
+ var_get_display_width (v));
r++;
}
char fmt_string[FMT_STRING_LEN_MAX + 1];
fmt_to_string (var_get_print_format (var), fmt_string);
- tab_text (t, 1, row, TAB_RIGHT | TAT_PRINTF, "%zu", j + 1);
+ tab_text_format (t, 1, row, TAB_RIGHT, "%zu", j + 1);
tab_text (t, 2, row, TAB_LEFT, var_get_name (var));
tab_text (t, 3, row, TAB_LEFT, fmt_string);
row++;
function NUMBER (string s, ni_format f)
{
union value out;
- data_in (ss_head (s, f->w), LEGACY_NATIVE, f->type, f->d, 0, 0, &out, 0);
+ data_in (ss_head (s, f->w), LEGACY_NATIVE, f->type, f->d, 0, 0, NULL, &out, 0);
return out.f;
}
{
union value v;
struct substring dst;
+ char *s;
v.f = x;
- dst = alloc_string (e, f->w);
+
assert (!fmt_is_string (f->type));
- data_out (&v, f, dst.string);
+ s = data_out (&v, LEGACY_NATIVE, f);
+ dst = alloc_string (e, strlen (s));
+ strcpy (dst.string, s);
+ free (s);
return dst;
}
else
{
unsigned char c = *lexer->prog++;
- if (c_isgraph (c))
- msg (SE, _("Bad character in input: `%c'."), c);
- else
- msg (SE, _("Bad character in input: `\\%o'."), c);
+ char *c_name = xasprintf (c_isgraph (c) ? "%c" : "\\%o", c);
+ msg (SE, _("Bad character in input: `%s'."), c_name);
+ free (c_name);
continue;
}
}
else if (lex_token (lexer) == T_STRING && format != NULL)
{
union value v;
+ assert (! (fmt_get_category (*format) & ( FMT_CAT_STRING )));
data_in (ds_ss (lex_tokstr (lexer)), LEGACY_NATIVE,
- *format, 0, 0, 0, &v, 0);
+ *format, 0, 0, 0, NULL, &v, 0);
lex_get (lexer);
*x = v.f;
if (*x == SYSMIS)
proto = caseproto_add_width (proto, 0);
if ( ! iter->subject)
- iter->subject = var_create_internal (0);
+ iter->subject = var_create_internal (0, 0);
if ( ! iter->weight)
- iter->weight = var_create_internal (1);
+ iter->weight = var_create_internal (1, 0);
subcase_init_var (&ordering, iter->subject, SC_ASCEND);
iter->writer = sort_create_writer (&ordering, proto);
tab_text (table, 4, 0, TAB_CENTER, _("Observed Prop."));
tab_text (table, 5, 0, TAB_CENTER, _("Test Prop."));
- tab_text (table, 6, 0, TAB_CENTER | TAT_PRINTF,
- _("Exact Sig. (%d-tailed)"),
- bst->p == 0.5 ? 2: 1);
+ tab_text_format (table, 6, 0, TAB_CENTER,
+ _("Exact Sig. (%d-tailed)"),
+ bst->p == 0.5 ? 2 : 1);
tab_vline (table, TAL_2, 2, 0, tab_nr (table) -1);
tab_submit (table);
struct crosstabs_proc
{
+ const struct dictionary *dict;
enum { INTEGER, GENERAL } mode;
enum mv_class exclude;
bool pivot;
init_proc (struct crosstabs_proc *proc, struct dataset *ds)
{
const struct variable *wv = dict_get_weight (dataset_dict (ds));
+ proc->dict = dataset_dict (ds);
proc->bad_warn = true;
proc->variables = NULL;
proc->n_variables = 0;
{
tab_double (summary, i * 2 + 1, 0, TAB_RIGHT, n[i],
&proc->weight_format);
- tab_text (summary, i * 2 + 2, 0, TAB_RIGHT | TAT_PRINTF, "%.1f%%",
- n[i] / n[2] * 100.);
+ tab_text_format (summary, i * 2 + 2, 0, TAB_RIGHT, "%.1f%%",
+ n[i] / n[2] * 100.);
}
tab_next_row (summary);
{
const struct variable *var = pt->const_vars[i];
size_t ofs;
+ char *s = NULL;
ds_put_format (&title, ", %s=", var_get_name (var));
/* Insert the formatted value of the variable, then trim
leading spaces in what was just inserted. */
ofs = ds_length (&title);
- data_out (&pt->const_values[i], var_get_print_format (var),
- ds_put_uninit (&title, var_get_width (var)));
+ s = data_out (&pt->const_values[i], dict_get_encoding (proc->dict), var_get_print_format (var));
+ ds_put_cstr (&title, s);
+ free (s);
ds_remove (&title, ofs, ss_cspan (ds_substr (&title, ofs, SIZE_MAX),
ss_cstr (" ")));
}
tab_text (chisq, 3, 0, TAB_RIGHT | TAT_TITLE,
_("Asymp. Sig. (2-sided)"));
tab_text (chisq, 4, 0, TAB_RIGHT | TAT_TITLE,
- _("Exact. Sig. (2-sided)"));
+ _("Exact Sig. (2-sided)"));
tab_text (chisq, 5, 0, TAB_RIGHT | TAT_TITLE,
- _("Exact. Sig. (1-sided)"));
+ _("Exact Sig. (1-sided)"));
tab_offset (chisq, 0, 1);
return chisq;
tab_title (risk, _("Risk estimate."));
tab_offset (risk, pt->n_vars - 2, 0);
- tab_joint_text (risk, 2, 0, 3, 0, TAB_CENTER | TAT_TITLE | TAT_PRINTF,
- _("95%% Confidence Interval"));
+ tab_joint_text_format (risk, 2, 0, 3, 0, TAB_CENTER | TAT_TITLE,
+ _("95%% Confidence Interval"));
tab_text (risk, 0, 1, TAB_LEFT | TAT_TITLE, _("Statistic"));
tab_text (risk, 1, 1, TAB_RIGHT | TAT_TITLE, _("Value"));
tab_text (risk, 2, 1, TAB_RIGHT | TAT_TITLE, _("Lower"));
return;
}
- s.string = tab_alloc (table, print->w);
- data_out (v, print, s.string);
- s.length = print->w;
+ s = ss_cstr (data_out_pool (v, dict_get_encoding (proc->dict), print,
+ table->container));
if (proc->exclude == MV_NEVER && var_is_num_missing (var, v->f, MV_USER))
s.string[s.length++] = 'M';
while (s.length && *s.string == ' ')
additionally suffixed with a letter `M'. */
static void
format_cell_entry (struct tab_table *table, int c, int r, double value,
- char suffix, bool mark_missing)
+ char suffix, bool mark_missing, const struct dictionary *dict)
{
const struct fmt_spec f = {FMT_F, 10, 1};
union value v;
struct substring s;
- s.length = 10;
- s.string = tab_alloc (table, 16);
v.f = value;
- data_out (&v, &f, s.string);
+ s = ss_cstr (data_out_pool (&v, dict_get_encoding (dict), &f, table->container));
+
while (*s.string == ' ')
{
s.length--;
default:
NOT_REACHED ();
}
- format_cell_entry (table, c, i, v, suffix, mark_missing);
+ format_cell_entry (table, c, i, v, suffix, mark_missing, proc->dict);
}
mp++;
NOT_REACHED ();
}
- format_cell_entry (table, pt->n_cols, 0, v, suffix, mark_missing);
+ format_cell_entry (table, pt->n_cols, 0, v, suffix, mark_missing, proc->dict);
tab_next_row (table);
}
}
NOT_REACHED ();
}
- format_cell_entry (table, c, i, v, suffix, mark_missing);
+ format_cell_entry (table, c, i, v, suffix, mark_missing, proc->dict);
}
last_row = i;
}
else
string = var_get_name (pt->vars[1]);
- tab_text (direct, j, 0, TAB_LEFT | TAT_PRINTF,
- gettext (stats_names[j][k]), string);
+ tab_text_format (direct, j, 0, TAB_LEFT,
+ gettext (stats_names[j][k]), string);
}
}
}
nc = 0;
tab_text (t, nc++, i + 1, TAB_LEFT, var_get_name (dv->v));
- tab_text (t, nc++, i + 1, TAT_PRINTF, "%g", dv->valid);
+ tab_text_format (t, nc++, i + 1, 0, "%g", dv->valid);
if (dsc->format == DSC_SERIAL)
- tab_text (t, nc++, i + 1, TAT_PRINTF, "%g", dv->missing);
+ tab_text_format (t, nc++, i + 1, 0, "%g", dv->missing);
for (j = 0; j < DSC_N_STATS; j++)
if (dsc->show_stats & (1ul << j))
TAB_LEFT,
n, wfmt);
- tab_text (tbl, heading_columns + 1,
- heading_rows + j + v * ll_count (&fctr->result_list),
- TAB_RIGHT | TAT_PRINTF,
- "%g%%", n * 100.0 / result->metrics[v].n);
+ tab_text_format (tbl, heading_columns + 1,
+ heading_rows + j + v * ll_count (&fctr->result_list),
+ TAB_RIGHT,
+ "%g%%", n * 100.0 / result->metrics[v].n);
/* Total Missing */
tab_double (tbl, heading_columns + 2,
result->metrics[v].n - n,
wfmt);
- tab_text (tbl, heading_columns + 3,
- heading_rows + j + v * ll_count (&fctr->result_list),
- TAB_RIGHT | TAT_PRINTF,
- "%g%%",
- (result->metrics[v].n - n) * 100.0 / result->metrics[v].n
- );
+ tab_text_format (tbl, heading_columns + 3,
+ heading_rows + j + v * ll_count (&fctr->result_list),
+ TAB_RIGHT,
+ "%g%%",
+ (result->metrics[v].n - n) * 100.0 / result->metrics[v].n
+ );
/* Total Valid + Missing */
tab_double (tbl, heading_columns + 4,
result->metrics[v].n,
wfmt);
- tab_text (tbl, heading_columns + 5,
- heading_rows + j + v * ll_count (&fctr->result_list),
- TAB_RIGHT | TAT_PRINTF,
- "%g%%",
- (result->metrics[v].n) * 100.0 / result->metrics[v].n
- );
+ tab_text_format (tbl, heading_columns + 5,
+ heading_rows + j + v * ll_count (&fctr->result_list),
+ TAB_RIGHT,
+ "%g%%",
+ ((result->metrics[v].n) * 100.0
+ / result->metrics[v].n));
++j;
}
TAB_LEFT,
_("Mean"));
- tab_text (tbl, n_cols - 4,
- heading_rows + row_var_start + 1 + i * DESCRIPTIVE_ROWS,
- TAB_LEFT | TAT_PRINTF,
- _("%g%% Confidence Interval for Mean"),
- cmd.n_cinterval[0]);
+ tab_text_format (tbl, n_cols - 4,
+ heading_rows + row_var_start + 1 + i * DESCRIPTIVE_ROWS,
+ TAB_LEFT,
+ _("%g%% Confidence Interval for Mean"),
+ cmd.n_cinterval[0]);
tab_text (tbl, n_cols - 3,
heading_rows + row_var_start + 1 + i * DESCRIPTIVE_ROWS,
_("Upper Bound"));
tab_text (tbl, n_cols - 4,
- heading_rows + row_var_start + 3 + i * DESCRIPTIVE_ROWS,
- TAB_LEFT | TAT_PRINTF,
- _("5%% Trimmed Mean"));
+ heading_rows + row_var_start + 3 + i * DESCRIPTIVE_ROWS,
+ TAB_LEFT, _("5% Trimmed Mean"));
tab_text (tbl, n_cols - 4,
heading_rows + row_var_start + 4 + i * DESCRIPTIVE_ROWS,
for ( e = 1; e <= cmd.st_n; ++e )
{
- tab_text (tbl, n_cols - 3,
- heading_rows + row_var_start + row_result_start + e - 1,
- TAB_RIGHT | TAT_PRINTF,
- _("%d"), e);
-
- tab_text (tbl, n_cols - 3,
- heading_rows + row_var_start + row_result_start + cmd.st_n + e - 1,
- TAB_RIGHT | TAT_PRINTF,
- _("%d"), e);
+ tab_text_format (tbl, n_cols - 3,
+ heading_rows + row_var_start + row_result_start + e - 1,
+ TAB_RIGHT,
+ "%d", e);
+
+ tab_text_format (tbl, n_cols - 3,
+ heading_rows + row_var_start + row_result_start + cmd.st_n + e - 1,
+ TAB_RIGHT,
+ "%d", e);
}
for (i = 0 ; i < n_percentiles; ++i )
{
- tab_text (tbl, n_cols - n_percentiles + i, 1,
- TAB_CENTER | TAT_TITLE | TAT_PRINTF,
- _("%g"),
- subc_list_double_at (&percentile_list, i)
- );
+ tab_text_format (tbl, n_cols - n_percentiles + i, 1,
+ TAB_CENTER | TAT_TITLE,
+ _("%g"),
+ subc_list_double_at (&percentile_list, i));
}
struct hsh_table *data; /* Undifferentiated data. */
struct freq_mutable *valid; /* Valid freqs. */
int n_valid; /* Number of total freqs. */
+ const struct dictionary *dict; /* The dict from whence entries in the table
+ come */
struct freq_mutable *missing; /* Missing freqs. */
int n_missing; /* Number of missing freqs. */
}
vf = var_attach_aux (v, xmalloc (sizeof *vf), var_dtor_free);
vf->tab.valid = vf->tab.missing = NULL;
+ vf->tab.dict = dataset_dict (ds);
vf->n_groups = 0;
vf->groups = NULL;
vf->width = var_get_width (v);
tab_text (t, 0, r, TAB_LEFT, label);
}
- tab_value (t, 0 + lab, r, TAB_NONE, &f->value, &vf->print);
+ tab_value (t, 0 + lab, r, TAB_NONE, &f->value, ft->dict, &vf->print);
tab_double (t, 1 + lab, r, TAB_NONE, f->count, wfmt);
tab_double (t, 2 + lab, r, TAB_NONE, percent, NULL);
tab_double (t, 3 + lab, r, TAB_NONE, valid_percent, NULL);
tab_text (t, 0, r, TAB_LEFT, label);
}
- tab_value (t, 0 + lab, r, TAB_NONE, &f->value, &vf->print);
+ tab_value (t, 0 + lab, r, TAB_NONE, &f->value, ft->dict, &vf->print);
tab_double (t, 1 + lab, r, TAB_NONE, f->count, wfmt);
tab_double (t, 2 + lab, r, TAB_NONE,
f->count / ft->total_cases * 100.0, NULL);
percent = f->count / ft->total_cases * 100.0;
cum_total += f->count / ft->valid_cases * 100.0;
- tab_value (t, 0, r, TAB_NONE, &f->value, &vf->print);
+ tab_value (t, 0, r, TAB_NONE, &f->value, ft->dict, &vf->print);
tab_double (t, 1, r, TAB_NONE, f->count, wfmt);
tab_double (t, 2, r, TAB_NONE, percent, NULL);
tab_double (t, 3, r, TAB_NONE, cum_total, NULL);
}
for (; f < &ft->valid[n_categories]; f++)
{
- tab_value (t, 0, r, TAB_NONE, &f->value, &vf->print);
+ tab_value (t, 0, r, TAB_NONE, &f->value, ft->dict, &vf->print);
tab_double (t, 1, r, TAB_NONE, f->count, wfmt);
tab_double (t, 2, r, TAB_NONE,
f->count / ft->total_cases * 100.0, NULL);
tab_vline (t, TAL_0, 7, 0, 0);
tab_hline (t, TAL_1, 6, 7, 1);
- tab_joint_text (t, 6, 0, 7, 0, TAB_CENTER | TAT_TITLE | TAT_PRINTF,
- _("%g%% Confidence Interval for Mean"), confidence*100.0);
+ tab_joint_text_format (t, 6, 0, 7, 0, TAB_CENTER | TAT_TITLE,
+ _("%g%% Confidence Interval for Mean"),
+ confidence*100.0);
tab_text (t, 6, 1, TAB_CENTER | TAT_TITLE, _("Lower Bound"));
tab_text (t, 7, 1, TAB_CENTER | TAT_TITLE, _("Upper Bound"));
for (i = 0; i < cmd.sbc_contrast; ++i )
{
- tab_text (t, 1, i + 2, TAB_CENTER | TAT_PRINTF, "%d", i + 1);
+ tab_text_format (t, 1, i + 2, TAB_CENTER, "%d", i + 1);
if ( bad_contrast[i] )
tab_text (t, count + 2, i + 2, TAB_RIGHT, "?" );
else
- tab_text (t, count + 2, i + 2, TAB_RIGHT | TAT_PRINTF, "%g",
- subc_list_double_at (&cmd.dl_contrast[i], count)
- );
+ tab_text_format (t, count + 2, i + 2, TAB_RIGHT, "%g",
+ subc_list_double_at (&cmd.dl_contrast[i], count));
}
}
_("Does not assume equal"));
}
- tab_text (t, 2, (v * lines_per_variable) + i + 1,
- TAB_CENTER | TAT_TITLE | TAT_PRINTF, "%d", i + 1);
+ tab_text_format (t, 2, (v * lines_per_variable) + i + 1,
+ TAB_CENTER | TAT_TITLE, "%d", i + 1);
- tab_text (t, 2, (v * lines_per_variable) + i + 1 + cmd.sbc_contrast,
- TAB_CENTER | TAT_TITLE | TAT_PRINTF, "%d", i + 1);
+ tab_text_format (t, 2,
+ (v * lines_per_variable) + i + 1 + cmd.sbc_contrast,
+ TAB_CENTER | TAT_TITLE, "%d", i + 1);
if ( bad_contrast[i])
if ( rank_specs[i].rfunc == NORMAL ||
rank_specs[i].rfunc == PROPORTION )
- tab_output_text (TAT_PRINTF,
- _("%s into %s(%s of %s using %s BY %s)"),
- var_get_name (src_vars[v]),
- var_get_name (rank_specs[i].destvars[v]),
- function_name[rank_specs[i].rfunc],
- var_get_name (src_vars[v]),
- fraction_name(),
- ds_cstr (&varlist)
- );
+ tab_output_text_format (0,
+ _("%s into %s(%s of %s using %s BY %s)"),
+ var_get_name (src_vars[v]),
+ var_get_name (rank_specs[i].destvars[v]),
+ function_name[rank_specs[i].rfunc],
+ var_get_name (src_vars[v]),
+ fraction_name(),
+ ds_cstr (&varlist));
else
- tab_output_text (TAT_PRINTF,
- _("%s into %s(%s of %s BY %s)"),
- var_get_name (src_vars[v]),
- var_get_name (rank_specs[i].destvars[v]),
- function_name[rank_specs[i].rfunc],
- var_get_name (src_vars[v]),
- ds_cstr (&varlist)
- );
+ tab_output_text_format (0,
+ _("%s into %s(%s of %s BY %s)"),
+ var_get_name (src_vars[v]),
+ var_get_name (rank_specs[i].destvars[v]),
+ function_name[rank_specs[i].rfunc],
+ var_get_name (src_vars[v]),
+ ds_cstr (&varlist));
ds_destroy (&varlist);
}
else
{
if ( rank_specs[i].rfunc == NORMAL ||
rank_specs[i].rfunc == PROPORTION )
- tab_output_text (TAT_PRINTF,
- _("%s into %s(%s of %s using %s)"),
- var_get_name (src_vars[v]),
- var_get_name (rank_specs[i].destvars[v]),
- function_name[rank_specs[i].rfunc],
- var_get_name (src_vars[v]),
- fraction_name()
- );
+ tab_output_text_format (0,
+ _("%s into %s(%s of %s using %s)"),
+ var_get_name (src_vars[v]),
+ var_get_name (rank_specs[i].destvars[v]),
+ function_name[rank_specs[i].rfunc],
+ var_get_name (src_vars[v]),
+ fraction_name());
else
- tab_output_text (TAT_PRINTF,
- _("%s into %s(%s of %s)"),
- var_get_name (src_vars[v]),
- var_get_name (rank_specs[i].destvars[v]),
- function_name[rank_specs[i].rfunc],
- var_get_name (src_vars[v])
- );
+ tab_output_text_format (0,
+ _("%s into %s(%s of %s)"),
+ var_get_name (src_vars[v]),
+ var_get_name (rank_specs[i].destvars[v]),
+ function_name[rank_specs[i].rfunc],
+ var_get_name (src_vars[v]));
}
}
}
/* Degrees of freedom */
- tab_text (t, 3, 1, TAB_RIGHT | TAT_PRINTF, "%g", c->dfm);
- tab_text (t, 3, 2, TAB_RIGHT | TAT_PRINTF, "%g", c->dfe);
- tab_text (t, 3, 3, TAB_RIGHT | TAT_PRINTF, "%g", c->dft);
+ tab_text_format (t, 3, 1, TAB_RIGHT, "%g", c->dfm);
+ tab_text_format (t, 3, 2, TAB_RIGHT, "%g", c->dfe);
+ tab_text_format (t, 3, 3, TAB_RIGHT, "%g", c->dft);
/* Mean Squares */
tab_double (t, 4, 1, TAB_RIGHT, msm, NULL);
lopts.get_indep_mean_std[i] = 1;
}
models[k] = pspp_linreg_cache_alloc (dep_var, (const struct variable **) indep_vars,
- X->m->size1, X->m->size2);
+ X->m->size1, n_indep);
models[k]->depvar = dep_var;
/*
For large data sets, use QR decomposition.
tab_dim (tab, tab_natural_dimensions, NULL);
tab_flags (tab, SOMF_NO_TITLE );
- tab_text(tab, 0, 0, TAT_PRINTF, "Scale: %s", ds_cstr (&rel->scale_name));
+ tab_text_format (tab, 0, 0, 0, "Scale: %s", ds_cstr (&rel->scale_name));
tab_submit(tab);
}
tab_text (tbl, heading_columns, 0, TAB_CENTER | TAT_TITLE,
_("N"));
- tab_text (tbl, heading_columns + 1, 0, TAB_CENTER | TAT_TITLE | TAT_PRINTF,
- _("%%"));
+ tab_text (tbl, heading_columns + 1, 0, TAB_CENTER | TAT_TITLE, _("%"));
total = n_missing + n_valid;
tab_text (ssb->t, 0, i * 2 + 1, TAB_LEFT,
var_get_name (proc->vars[i]));
- tab_text (ssb->t, 1, i * 2 + 1, TAB_LEFT | TAT_PRINTF,
- "%s%s", prefix[0], val_lab[0]);
- tab_text (ssb->t, 1, i * 2 + 1+ 1, TAB_LEFT | TAT_PRINTF,
- "%s%s", prefix[1], val_lab[1]);
+ tab_text_format (ssb->t, 1, i * 2 + 1, TAB_LEFT,
+ "%s%s", prefix[0], val_lab[0]);
+ tab_text_format (ssb->t, 1, i * 2 + 1+ 1, TAB_LEFT,
+ "%s%s", prefix[1], val_lab[1]);
/* Fill in the group statistics */
for (count = 0; count < 2; count++)
struct pair *p = &proc->pairs[i];
int j;
- tab_text (ssb->t, 0, i * 2 + 1, TAB_LEFT | TAT_PRINTF, _("Pair %d"), i);
+ tab_text_format (ssb->t, 0, i * 2 + 1, TAB_LEFT, _("Pair %d"), i);
for (j=0; j < 2; j++)
{
/* Titles */
tab_text (self->t, 9, 2, TAB_CENTER | TAT_TITLE, _("Lower"));
tab_text (self->t, 10, 2, TAB_CENTER | TAT_TITLE, _("Upper"));
- tab_joint_text (self->t, 9, 1, 10, 1, TAB_CENTER | TAT_PRINTF,
- _("%g%% Confidence Interval of the Difference"),
- proc->criteria * 100.0);
+ tab_joint_text_format (self->t, 9, 1, 10, 1, TAB_CENTER,
+ _("%g%% Confidence Interval of the Difference"),
+ proc->criteria * 100.0);
}
/* Populate the independent samples trbox */
tab_hline (self->t, TAL_1, 5, 6, 2);
tab_vline (self->t, TAL_GAP, 6, 0, 1);
- tab_joint_text (self->t, 5, 1, 6, 1, TAB_CENTER | TAT_PRINTF,
- _("%g%% Confidence Interval of the Difference"),
- proc->criteria*100.0);
+ tab_joint_text_format (self->t, 5, 1, 6, 1, TAB_CENTER,
+ _("%g%% Confidence Interval of the Difference"),
+ proc->criteria*100.0);
tab_text (self->t, 2, 2, TAB_CENTER | TAT_TITLE, _("Mean"));
tab_text (self->t, 3, 2, TAB_CENTER | TAT_TITLE, _("Std. Deviation"));
double t;
double df = n - 1;
- tab_text (trb->t, 0, i + 3, TAB_LEFT | TAT_PRINTF, _("Pair %d"), i);
- tab_text (trb->t, 1, i + 3, TAB_LEFT | TAT_PRINTF, "%s - %s",
- var_get_name (pair->v[0]),
- var_get_name (pair->v[1]));
+ tab_text_format (trb->t, 0, i + 3, TAB_LEFT, _("Pair %d"), i);
+ tab_text_format (trb->t, 1, i + 3, TAB_LEFT, "%s - %s",
+ var_get_name (pair->v[0]),
+ var_get_name (pair->v[1]));
tab_double (trb->t, 2, i + 3, TAB_RIGHT, pair->mean_diff, NULL);
tab_double (trb->t, 3, i + 3, TAB_RIGHT, pair->std_dev_diff, NULL);
tab_hline (self->t, TAL_1, 1, hsize - 1, 1);
tab_vline (self->t, TAL_2, 1, 0, vsize - 1);
- tab_joint_text (self->t, 1, 0, hsize - 1, 0, TAB_CENTER | TAT_PRINTF,
- _("Test Value = %f"), proc->testval);
+ tab_joint_text_format (self->t, 1, 0, hsize - 1, 0, TAB_CENTER,
+ _("Test Value = %f"), proc->testval);
tab_box (self->t, -1, -1, -1, TAL_1, 1, 1, hsize - 1, vsize - 1);
- tab_joint_text (self->t, 5, 1, 6, 1, TAB_CENTER | TAT_PRINTF,
- _("%g%% Confidence Interval of the Difference"),
- proc->criteria * 100.0);
+ tab_joint_text_format (self->t, 5, 1, 6, 1, TAB_CENTER,
+ _("%g%% Confidence Interval of the Difference"),
+ proc->criteria * 100.0);
tab_vline (self->t, TAL_GAP, 6, 1, 1);
tab_hline (self->t, TAL_1, 5, 6, 2);
sqrt (1 - pow2 (pair->correlation)));
/* row headings */
- tab_text (table, 0, i + 1, TAB_LEFT | TAT_TITLE | TAT_PRINTF,
- _("Pair %d"), i);
- tab_text (table, 1, i + 1, TAB_LEFT | TAT_TITLE | TAT_PRINTF,
- _("%s & %s"),
- var_get_name (pair->v[0]),
- var_get_name (pair->v[1]));
+ tab_text_format (table, 0, i + 1, TAB_LEFT | TAT_TITLE,
+ _("Pair %d"), i);
+ tab_text_format (table, 1, i + 1, TAB_LEFT | TAT_TITLE,
+ _("%s & %s"),
+ var_get_name (pair->v[0]),
+ var_get_name (pair->v[1]));
/* row data */
tab_double (table, 2, i + 1, TAB_RIGHT, pair->n, &proc->weight_format);
struct wilcoxon_state *ws = xcalloc (sizeof (*ws), t2s->n_pairs);
const struct variable *weight = dict_get_weight (dict);
- struct variable *weightx = var_create_internal (WEIGHT_IDX);
+ struct variable *weightx = var_create_internal (WEIGHT_IDX, 0);
struct caseproto *proto;
input =
struct subcase ordering;
variable_pair *vp = &t2s->pairs[i];
- ws[i].sign = var_create_internal (0);
- ws[i].absdiff = var_create_internal (1);
+ ws[i].sign = var_create_internal (0, 0);
+ ws[i].absdiff = var_create_internal (1, 0);
r = casereader_create_filter_missing (r, *vp, 2,
exclude,
tab_text (table, 0, 1, TAB_LEFT, _("Z"));
- tab_text (table, 0, 2, TAB_LEFT, _("Asymp. Sig (2-tailed)"));
+ tab_text (table, 0, 2, TAB_LEFT, _("Asymp. Sig. (2-tailed)"));
if ( exact )
{
- tab_text (table, 0, 3, TAB_LEFT, _("Exact Sig (2-tailed)"));
- tab_text (table, 0, 4, TAB_LEFT, _("Exact Sig (1-tailed)"));
+ tab_text (table, 0, 3, TAB_LEFT, _("Exact Sig. (2-tailed)"));
+ tab_text (table, 0, 4, TAB_LEFT, _("Exact Sig. (1-tailed)"));
#if 0
tab_text (table, 0, 5, TAB_LEFT, _("Point Probability"));
return stc_custom_listing (lexer, ds, cmd, aux);
}
\f
-static void
+static char *
show_blanks (const struct dataset *ds UNUSED)
{
- if (settings_get_blanks () == SYSMIS)
- msg (SN, _("BLANKS is SYSMIS."));
- else
- msg (SN, _("BLANKS is %g."), settings_get_blanks ());
-
+ return (settings_get_blanks () == SYSMIS
+ ? xstrdup ("SYSMIS")
+ : xasprintf ("%g", settings_get_blanks ()));
}
-static char *
-format_cc (struct substring in, char grouping, char *out)
+static void
+format_cc (struct string *out, struct substring in, char grouping)
{
while (!ss_is_empty (in))
{
char c = ss_get_char (&in);
if (c == grouping || c == '\'')
- *out++ = '\'';
+ ds_put_char (out, '\'');
else if (c == '"')
- *out++ = '"';
- *out++ = c;
+ ds_put_char (out, '"');
+ ds_put_char (out, c);
}
- return out;
}
-static void
+static char *
show_cc (enum fmt_type type)
{
const struct fmt_number_style *cc = settings_get_style (type);
- char cc_string[FMT_STYLE_AFFIX_MAX * 4 * 2 + 3 + 1];
- char *out;
+ struct string out;
- out = format_cc (cc->neg_prefix, cc->grouping, cc_string);
- *out++ = cc->grouping;
- out = format_cc (cc->prefix, cc->grouping, out);
- *out++ = cc->grouping;
- out = format_cc (cc->suffix, cc->grouping, out);
- *out++ = cc->grouping;
- out = format_cc (cc->neg_suffix, cc->grouping, out);
- *out = '\0';
+ ds_init_empty (&out);
+ format_cc (&out, cc->neg_prefix, cc->grouping);
+ ds_put_char (&out, cc->grouping);
+ format_cc (&out, cc->prefix, cc->grouping);
+ ds_put_char (&out, cc->grouping);
+ format_cc (&out, cc->suffix, cc->grouping);
+ ds_put_char (&out, cc->grouping);
+ format_cc (&out, cc->neg_suffix, cc->grouping);
- msg (SN, _("%s is \"%s\"."), fmt_name (type), cc_string);
+ return ds_cstr (&out);
}
-static void
+static char *
show_cca (const struct dataset *ds UNUSED)
{
- show_cc (FMT_CCA);
+ return show_cc (FMT_CCA);
}
-static void
+static char *
show_ccb (const struct dataset *ds UNUSED)
{
- show_cc (FMT_CCB);
+ return show_cc (FMT_CCB);
}
-static void
+static char *
show_ccc (const struct dataset *ds UNUSED)
{
- show_cc (FMT_CCC);
+ return show_cc (FMT_CCC);
}
-static void
+static char *
show_ccd (const struct dataset *ds UNUSED)
{
- show_cc (FMT_CCD);
+ return show_cc (FMT_CCD);
}
-static void
+static char *
show_cce (const struct dataset *ds UNUSED)
{
- show_cc (FMT_CCE);
+ return show_cc (FMT_CCE);
}
-static void
+static char *
show_decimals (const struct dataset *ds UNUSED)
{
- msg (SN, _("DECIMAL is \"%c\"."), settings_get_decimal_char (FMT_F));
+ return xasprintf ("\"%c\"", settings_get_decimal_char (FMT_F));
}
-static void
+static char *
show_endcmd (const struct dataset *ds UNUSED)
{
- msg (SN, _("ENDCMD is \"%c\"."), settings_get_endcmd ());
+ return xasprintf ("\"%c\"", settings_get_endcmd ());
}
-static void
+static char *
show_errors (const struct dataset *ds UNUSED)
{
bool terminal = settings_get_error_routing_to_terminal ();
bool listing = settings_get_error_routing_to_listing ();
- msg (SN, _("ERRORS is \"%s\"."),
- terminal && listing ? "BOTH"
- : terminal ? "TERMINAL"
- : listing ? "LISTING"
- : "NONE");
+ return xstrdup (terminal && listing ? "BOTH"
+ : terminal ? "TERMINAL"
+ : listing ? "LISTING"
+ : "NONE");
}
-static void
+static char *
show_format (const struct dataset *ds UNUSED)
{
char str[FMT_STRING_LEN_MAX + 1];
- msg (SN, _("FORMAT is %s."), fmt_to_string (settings_get_format (), str));
+ return xstrdup (fmt_to_string (settings_get_format (), str));
}
-static void
+static char *
show_length (const struct dataset *ds UNUSED)
{
- msg (SN, _("LENGTH is %d."), settings_get_viewlength ());
+ return xasprintf ("%d", settings_get_viewlength ());
}
-static void
+static char *
show_locale (const struct dataset *ds UNUSED)
{
- msg (SN, _("LOCALE is %s"), get_default_encoding ());
+ return xstrdup (get_default_encoding ());
}
-static void
+static char *
show_mxerrs (const struct dataset *ds UNUSED)
{
- msg (SN, _("MXERRS is %d."), settings_get_mxerrs ());
+ return xasprintf ("%d", settings_get_mxerrs ());
}
-static void
+static char *
show_mxloops (const struct dataset *ds UNUSED)
{
- msg (SN, _("MXLOOPS is %d."), settings_get_mxloops ());
+ return xasprintf ("%d", settings_get_mxloops ());
}
-static void
+static char *
show_mxwarns (const struct dataset *ds UNUSED)
{
- msg (SN, _("MXWARNS is %d."), settings_get_mxwarns ());
+ return xasprintf ("%d", settings_get_mxwarns ());
}
-/* Outputs that SETTING has the given INTEGER_FORMAT value. */
-static void
-show_integer_format (const char *setting, enum integer_format integer_format)
+/* Returns a name for the given INTEGER_FORMAT value. */
+static char *
+show_integer_format (enum integer_format integer_format)
{
- msg (SN, _("%s is %s (%s)."),
- setting,
- (integer_format == INTEGER_MSB_FIRST ? "MSBFIRST"
- : integer_format == INTEGER_LSB_FIRST ? "LSBFIRST"
- : "VAX"),
- integer_format == INTEGER_NATIVE ? "NATIVE" : "nonnative");
+ return xasprintf ("%s (%s)",
+ (integer_format == INTEGER_MSB_FIRST ? "MSBFIRST"
+ : integer_format == INTEGER_LSB_FIRST ? "LSBFIRST"
+ : "VAX"),
+ integer_format == INTEGER_NATIVE ? "NATIVE" : "nonnative");
}
-/* Outputs that SETTING has the given FLOAT_FORMAT value. */
-static void
-show_float_format (const char *setting, enum float_format float_format)
+/* Returns a name for the given FLOAT_FORMAT value. */
+static char *
+show_float_format (enum float_format float_format)
{
const char *format_name = "";
switch (float_format)
{
case FLOAT_IEEE_SINGLE_LE:
- format_name = "ISL (32-bit IEEE 754 single, little-endian)";
+ format_name = _("ISL (32-bit IEEE 754 single, little-endian)");
break;
case FLOAT_IEEE_SINGLE_BE:
- format_name = "ISB (32-bit IEEE 754 single, big-endian)";
+ format_name = _("ISB (32-bit IEEE 754 single, big-endian)");
break;
case FLOAT_IEEE_DOUBLE_LE:
- format_name = "IDL (64-bit IEEE 754 double, little-endian)";
+ format_name = _("IDL (64-bit IEEE 754 double, little-endian)");
break;
case FLOAT_IEEE_DOUBLE_BE:
- format_name = "IDB (64-bit IEEE 754 double, big-endian)";
+ format_name = _("IDB (64-bit IEEE 754 double, big-endian)");
break;
case FLOAT_VAX_F:
- format_name = "VF (32-bit VAX F, VAX-endian)";
+ format_name = _("VF (32-bit VAX F, VAX-endian)");
break;
case FLOAT_VAX_D:
- format_name = "VD (64-bit VAX D, VAX-endian)";
+ format_name = _("VD (64-bit VAX D, VAX-endian)");
break;
case FLOAT_VAX_G:
- format_name = "VG (64-bit VAX G, VAX-endian)";
+ format_name = _("VG (64-bit VAX G, VAX-endian)");
break;
case FLOAT_Z_SHORT:
- format_name = "ZS (32-bit IBM Z hexadecimal short, big-endian)";
+ format_name = _("ZS (32-bit IBM Z hexadecimal short, big-endian)");
break;
case FLOAT_Z_LONG:
- format_name = "ZL (64-bit IBM Z hexadecimal long, big-endian)";
+ format_name = _("ZL (64-bit IBM Z hexadecimal long, big-endian)");
break;
case FLOAT_FP:
NOT_REACHED ();
}
- msg (SN, _("%s is %s (%s)."),
- setting, format_name,
- float_format == FLOAT_NATIVE_DOUBLE ? "NATIVE" : "nonnative");
+ return xasprintf ("%s (%s)", format_name,
+ (float_format == FLOAT_NATIVE_DOUBLE
+ ? "NATIVE" : "nonnative"));
}
-static void
+static char *
show_rib (const struct dataset *ds UNUSED)
{
- show_integer_format ("RIB", settings_get_input_integer_format ());
+ return show_integer_format (settings_get_input_integer_format ());
}
-static void
+static char *
show_rrb (const struct dataset *ds UNUSED)
{
- show_float_format ("RRB", settings_get_input_float_format ());
+ return show_float_format (settings_get_input_float_format ());
}
-static void
+static char *
show_scompression (const struct dataset *ds UNUSED)
{
- if (settings_get_scompression ())
- msg (SN, _("SCOMPRESSION is ON."));
- else
- msg (SN, _("SCOMPRESSION is OFF."));
+ return xstrdup (settings_get_scompression () ? "ON" : "OFF");
}
-static void
+static char *
show_undefined (const struct dataset *ds UNUSED)
{
- if (settings_get_undefined ())
- msg (SN, _("UNDEFINED is WARN."));
- else
- msg (SN, _("UNDEFINED is NOWARN."));
+ return xstrdup (settings_get_undefined () ? "WARN" : "NOWARN");
}
-static void
+static char *
show_weight (const struct dataset *ds)
{
const struct variable *var = dict_get_weight (dataset_dict (ds));
- if (var == NULL)
- msg (SN, _("WEIGHT is off."));
- else
- msg (SN, _("WEIGHT is variable %s."), var_get_name (var));
+ return xstrdup (var != NULL ? var_get_name (var) : "OFF");
}
-static void
+static char *
show_wib (const struct dataset *ds UNUSED)
{
- show_integer_format ("WIB", settings_get_output_integer_format ());
+ return show_integer_format (settings_get_output_integer_format ());
}
-static void
+static char *
show_wrb (const struct dataset *ds UNUSED)
{
- show_float_format ("WRB", settings_get_output_float_format ());
+ return show_float_format (settings_get_output_float_format ());
}
-static void
+static char *
show_width (const struct dataset *ds UNUSED)
{
- msg (SN, _("WIDTH is %d."), settings_get_viewwidth ());
+ return xasprintf ("%d", settings_get_viewwidth ());
}
struct show_sbc
{
const char *name;
- void (*function) (const struct dataset *);
+ char *(*function) (const struct dataset *);
};
const struct show_sbc show_table[] =
{"WIDTH", show_width},
};
+static void
+do_show (const struct dataset *ds, const struct show_sbc *sbc)
+{
+ char *value = sbc->function (ds);
+ msg (SN, _("%s is %s."), sbc->name, value);
+ free (value);
+}
+
static void
show_all (const struct dataset *ds)
{
size_t i;
for (i = 0; i < sizeof show_table / sizeof *show_table; i++)
- show_table[i].function (ds);
+ do_show (ds, &show_table[i]);
}
static void
-show_all_cc (void)
+show_all_cc (const struct dataset *ds)
{
int i;
- for (i = 0; i < 5; i++)
- show_cc (i);
+ for (i = 0; i < sizeof show_table / sizeof *show_table; i++)
+ {
+ const struct show_sbc *sbc = &show_table[i];
+ if (!strncmp (sbc->name, "CC", 2))
+ do_show (ds, sbc);
+ }
}
static void
if (lex_match (lexer, T_ALL))
show_all (ds);
else if (lex_match_id (lexer, "CC"))
- show_all_cc ();
+ show_all_cc (ds);
else if (lex_match_id (lexer, "WARRANTY"))
show_warranty (ds);
else if (lex_match_id (lexer, "COPYING"))
int i;
for (i = 0; i < sizeof show_table / sizeof *show_table; i++)
- if (lex_match_id (lexer, show_table[i].name))
- {
- show_table[i].function (ds);
- goto found;
+ {
+ const struct show_sbc *sbc = &show_table[i];
+ if (lex_match_id (lexer, sbc->name))
+ {
+ do_show (ds, sbc);
+ goto found;
+ }
}
lex_error (lexer, NULL);
return CMD_FAILURE;
{
struct pool *pool;
+
+
/* Variable types, for convenience. */
enum val_type src_type; /* src_vars[*] type. */
enum val_type dst_type; /* dst_vars[*] type. */
/* Variables. */
const struct variable **src_vars; /* Source variables. */
const struct variable **dst_vars; /* Destination variables. */
+ const struct dictionary *dst_dict; /* Dictionary of dst_vars */
char **dst_names; /* Name of dest variables, if they're new. */
size_t var_cnt; /* Number of variables. */
{
size_t i;
+ trns->dst_dict = dict;
+
for (i = 0; i < trns->var_cnt; i++)
{
const struct variable **var = &trns->dst_vars[i];
/* Returns the output mapping in TRNS for an input of VALUE with
the given WIDTH, or a null pointer if there is no mapping. */
static const struct map_out *
-find_src_string (struct recode_trns *trns, const char *value,
+find_src_string (struct recode_trns *trns, const uint8_t *value,
const struct variable *src_var)
{
struct mapping *m;
msg_disable ();
match = data_in (ss_buffer (value, width), LEGACY_NATIVE,
- FMT_F, 0, 0, 0, &uv, 0);
+ FMT_F, 0, 0, 0, trns->dst_dict, &uv, 0);
msg_enable ();
out->value.f = uv.f;
break;
#include "assertion.h"
#include "hmapx.h"
#include "hash-functions.h"
+#include "pool.h"
#include "i18n.h"
size_t hash;
struct hmapx_node *node;
struct converter *converter;
+ assert (fromcode);
hash = hash_string (tocode, hash_string (fromcode, 0));
HMAPX_FOR_EACH_WITH_HASH (converter, node, hash, &map)
return converter->conv;
}
-/* Return a string based on TEXT converted according to HOW.
+char *
+recode_string (const char *to, const char *from,
+ const char *text, int length)
+{
+ return recode_string_pool (to, from, text, length, NULL);
+}
+
+
+/* Return a string based on TEXT which must be encoded using FROM.
+ The returned string will be encoded in TO.
If length is not -1, then it must be the number of bytes in TEXT.
The returned string must be freed when no longer required.
*/
char *
-recode_string (const char *to, const char *from,
- const char *text, int length)
+recode_string_pool (const char *to, const char *from,
+ const char *text, int length, struct pool *pool)
{
char *outbuf = 0;
size_t outbufferlength;
if ( length == -1 )
length = strlen(text);
-
if (to == NULL)
to = default_encoding;
if ( outbufferlength > length)
break;
- outbuf = xmalloc(outbufferlength);
+ outbuf = pool_malloc (pool, outbufferlength);
op = outbuf;
outbytes = outbufferlength;
case E2BIG:
free (outbuf);
outbufferlength <<= 1;
- outbuf = xmalloc (outbufferlength);
+ outbuf = pool_malloc (pool, outbufferlength);
op = outbuf;
outbytes = outbufferlength;
inbytes = length;
if (outbytes == 0 )
{
char *const oldaddr = outbuf;
- outbuf = xrealloc (outbuf, outbufferlength + 1);
+ outbuf = pool_realloc (pool, outbuf, outbufferlength + 1);
op += (outbuf - oldaddr) ;
}
#define UTF8 "UTF-8"
-char * recode_string (const char *to, const char *from,
+struct pool;
+
+char *recode_string_pool (const char *to, const char *from,
+ const char *text, int length, struct pool *pool);
+
+char *recode_string (const char *to, const char *from,
const char *text, int len);
#include <config.h>
#include <libpspp/legacy-encoding.h>
-
-#include "str.h"
-
-static const char ascii_to_ebcdic[256];
-static const char ebcdic_to_ascii[256];
-
-void
-legacy_recode (enum legacy_encoding from, const char *src,
- enum legacy_encoding to, char *dst,
- size_t size)
-{
- if (from != to)
- {
- const char *table;
- size_t i;
-
- table = from == LEGACY_ASCII ? ascii_to_ebcdic : ebcdic_to_ascii;
- for (i = 0; i < size; i++)
- dst[i] = table[(unsigned char) src[i]];
- }
- else
- {
- if (src != dst)
- memcpy (dst, src, size);
- }
-}
+#include <libpspp/i18n.h>
+#include <stdlib.h>
char
-legacy_to_native (enum legacy_encoding from, char c)
+legacy_to_native (const char *from, char c)
{
- legacy_recode (from, &c, LEGACY_NATIVE, &c, 1);
- return c;
+ char x;
+ char *s = recode_string (LEGACY_NATIVE, from, &c, 1);
+ x = s[0];
+ free (s);
+ return x;
}
char
-legacy_from_native (enum legacy_encoding to, char c)
+legacy_from_native (const char *to, char c)
{
- legacy_recode (LEGACY_NATIVE, &c, to, &c, 1);
- return c;
+ char x;
+ char *s = recode_string (to, LEGACY_NATIVE, &c, 1);
+ x = s[0];
+ free (s);
+ return x;
}
-
-static const char ascii_to_ebcdic[256] =
- {
- 0x00, 0x01, 0x02, 0x03, 0x37, 0x2d, 0x2e, 0x2f,
- 0x16, 0x05, 0x25, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
- 0x10, 0x11, 0x12, 0x13, 0x3c, 0x3d, 0x32, 0x26,
- 0x18, 0x19, 0x3f, 0x27, 0x1c, 0x1d, 0x1e, 0x1f,
- 0x40, 0x5a, 0x7f, 0x7b, 0x5b, 0x6c, 0x50, 0x7d,
- 0x4d, 0x5d, 0x5c, 0x4e, 0x6b, 0x60, 0x4b, 0x61,
- 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0xf7,
- 0xf8, 0xf9, 0x7a, 0x5e, 0x4c, 0x7e, 0x6e, 0x6f,
- 0x7c, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
- 0xc8, 0xc9, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6,
- 0xd7, 0xd8, 0xd9, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6,
- 0xe7, 0xe8, 0xe9, 0xad, 0xe0, 0xbd, 0x9a, 0x6d,
- 0x79, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
- 0x88, 0x89, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96,
- 0x97, 0x98, 0x99, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6,
- 0xa7, 0xa8, 0xa9, 0xc0, 0x4f, 0xd0, 0x5f, 0x07,
- 0x20, 0x21, 0x22, 0x23, 0x24, 0x15, 0x06, 0x17,
- 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x09, 0x0a, 0x1b,
- 0x30, 0x31, 0x1a, 0x33, 0x34, 0x35, 0x36, 0x08,
- 0x38, 0x39, 0x3a, 0x3b, 0x04, 0x14, 0x3e, 0xe1,
- 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48,
- 0x49, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
- 0x58, 0x59, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
- 0x68, 0x69, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75,
- 0x76, 0x77, 0x78, 0x80, 0x8a, 0x8b, 0x8c, 0x8d,
- 0x8e, 0x8f, 0x90, 0x6a, 0x9b, 0x9c, 0x9d, 0x9e,
- 0x9f, 0xa0, 0xaa, 0xab, 0xac, 0x4a, 0xae, 0xaf,
- 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
- 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xa1, 0xbe, 0xbf,
- 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf, 0xda, 0xdb,
- 0xdc, 0xdd, 0xde, 0xdf, 0xea, 0xeb, 0xec, 0xed,
- 0xee, 0xef, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
- };
-
-static const char ebcdic_to_ascii[256] =
- {
- 0x00, 0x01, 0x02, 0x03, 0x9c, 0x09, 0x86, 0x7f,
- 0x97, 0x8d, 0x8e, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
- 0x10, 0x11, 0x12, 0x13, 0x9d, 0x85, 0x08, 0x87,
- 0x18, 0x19, 0x92, 0x8f, 0x1c, 0x1d, 0x1e, 0x1f,
- 0x80, 0x81, 0x82, 0x83, 0x84, 0x0a, 0x17, 0x1b,
- 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x05, 0x06, 0x07,
- 0x90, 0x91, 0x16, 0x93, 0x94, 0x95, 0x96, 0x04,
- 0x98, 0x99, 0x9a, 0x9b, 0x14, 0x15, 0x9e, 0x1a,
- 0x20, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6,
- 0xa7, 0xa8, 0xd5, 0x2e, 0x3c, 0x28, 0x2b, 0x7c,
- 0x26, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf,
- 0xb0, 0xb1, 0x21, 0x24, 0x2a, 0x29, 0x3b, 0x7e,
- 0x2d, 0x2f, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7,
- 0xb8, 0xb9, 0xcb, 0x2c, 0x25, 0x5f, 0x3e, 0x3f,
- 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xc0, 0xc1,
- 0xc2, 0x60, 0x3a, 0x23, 0x40, 0x27, 0x3d, 0x22,
- 0xc3, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
- 0x68, 0x69, 0xc4, 0xc5, 0xc6, 0xc7, 0xc8, 0xc9,
- 0xca, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f, 0x70,
- 0x71, 0x72, 0x5e, 0xcc, 0xcd, 0xce, 0xcf, 0xd0,
- 0xd1, 0xe5, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78,
- 0x79, 0x7a, 0xd2, 0xd3, 0xd4, 0x5b, 0xd6, 0xd7,
- 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0xdf,
- 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0x5d, 0xe6, 0xe7,
- 0x7b, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
- 0x48, 0x49, 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed,
- 0x7d, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50,
- 0x51, 0x52, 0xee, 0xef, 0xf0, 0xf1, 0xf2, 0xf3,
- 0x5c, 0x9f, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
- 0x59, 0x5a, 0xf4, 0xf5, 0xf6, 0xf7, 0xf8, 0xf9,
- 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
- 0x38, 0x39, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0xff,
- };
-
#ifndef LIBPSPP_LEGACY_ENCODING
#define LIBPSPP_LEGACY_ENCODING 1
-#include <stddef.h>
#include <libpspp/compiler.h>
-/* A legacy character encoding.
- This exists only to handle the specific legacy EBCDIC-to-ASCII
- recoding that MODE=360 file handles perform. */
-enum legacy_encoding
- {
- LEGACY_ASCII, /* ASCII or similar character set. */
- LEGACY_EBCDIC, /* IBM EBCDIC character set. */
-
- /* Native character set. */
#if 'A' == 0x41
- LEGACY_NATIVE = LEGACY_ASCII
+#define LEGACY_NATIVE "ASCII"
#elif 'A' == 0xc1
- LEGACY_NATIVE = LEGACY_EBCDIC
+#define LEGACY_NATIVE "EBCDIC-US"
#else
#error Cannot detect native character set.
#endif
- };
-void legacy_recode (enum legacy_encoding, const char *src,
- enum legacy_encoding, char *dst, size_t);
-char legacy_to_native (enum legacy_encoding from, char) PURE_FUNCTION;
-char legacy_from_native (enum legacy_encoding to, char) PURE_FUNCTION;
+char legacy_to_native (const char *from, char) PURE_FUNCTION;
+char legacy_from_native (const char *to, char) PURE_FUNCTION;
+
#endif /* libpspp/legacy-encoding.h */
#include <libpspp/sparse-xarray.h>
+#include <limits.h>
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
free ((char *) rel);
}
}
+
+
+\f
+
+/* Operations on uint8_t "strings" */
+
+/* Copies buffer SRC, of SRC_SIZE bytes, to DST, of DST_SIZE bytes.
+ DST is truncated to DST_SIZE bytes or padded on the right with
+ copies of PAD as needed. */
+void
+u8_buf_copy_rpad (uint8_t *dst, size_t dst_size,
+ const uint8_t *src, size_t src_size,
+ char pad)
+{
+ if (src_size >= dst_size)
+ memmove (dst, src, dst_size);
+ else
+ {
+ memmove (dst, src, src_size);
+ memset (&dst[src_size], pad, dst_size - src_size);
+ }
+}
#include <assert.h>
#include <stdarg.h>
#include <stdbool.h>
+#include <stdint.h>
#include <stdio.h>
#include <string.h>
/* calls relocate from gnulib on ST */
void ds_relocate (struct string *st);
+
+void u8_buf_copy_rpad (uint8_t *dst, size_t dst_size,
+ const uint8_t *src, size_t src_size,
+ char pad);
+
+
#endif /* str_h */
struct moments1 **m1;
struct moments **m;
const struct variable **v_variables;
+ const struct interaction_variable **interactions;
size_t n_variables;
+ size_t n_intr;
int n_pass;
int missing_handling;
enum mv_class missing_value;
result->ca = covariance_hsh_create (&result->n_variables);
result->m = NULL;
result->m1 = NULL;
+ result->n_intr = 0;
result->missing_handling = missing_handling;
result->missing_value = missing_value;
result->accumulate = (result->missing_handling == LISTWISE) ?
return result;
}
+void
+covariance_interaction_set (struct covariance_matrix *cov,
+ const struct interaction_variable **intr, size_t n_intr)
+{
+ cov->interactions = intr;
+ cov->n_intr = n_intr;
+}
+
static size_t
get_n_rows (size_t n_variables, const struct variable *v_variables[])
{
return design_matrix_create (n_variables, v_variables, n_rows);
}
+static size_t
+get_n_rows_s (const struct variable *var)
+{
+ size_t result = 0;
+ if (var_is_numeric (var))
+ {
+ result++;
+ }
+ else
+ {
+ result += cat_get_n_categories (var) - 1;
+ }
+ return result;
+}
+static struct design_matrix *
+covariance_matrix_create_s (struct covariance_matrix *cov)
+{
+ struct variable **v_variables;
+ size_t n_variables;
+ size_t n_rows = 0;
+ size_t i;
+ size_t j;
+
+ n_variables = cov->n_variables + cov->n_intr;
+ v_variables = xnmalloc (n_variables, sizeof (*v_variables));
+ for (i = 0; i < cov->n_variables; i++)
+ {
+ v_variables[i] = cov->v_variables[i];
+ n_rows += get_n_rows_s (v_variables[i]);
+ }
+ for (j = 0; j < cov->n_intr; j++)
+ {
+ v_variables[i + j] = interaction_get_variable (cov->interactions[j]);
+ n_rows += get_n_rows_s (v_variables[i]);
+ }
+ return design_matrix_create (n_variables, v_variables, n_rows);
+}
+
static void
update_moments1 (struct covariance_matrix *cov, size_t i, double x)
{
}
static void
-update_hash_entry (struct hsh_table *c,
- const struct variable *v1,
- const struct variable *v2,
- const union value *val1, const union value *val2,
- const struct interaction_value *i_val1,
- const struct interaction_value *i_val2)
+update_hash_entry_intr (struct hsh_table *c,
+ const struct variable *v1,
+ const struct variable *v2,
+ const union value *val1, const union value *val2,
+ const struct interaction_value *i_val1,
+ const struct interaction_value *i_val2)
{
struct covariance_accumulator *ca;
struct covariance_accumulator *new_entry;
}
}
+static void
+update_hash_entry (struct hsh_table *c,
+ const struct variable *v1,
+ const struct variable *v2,
+ const union value *val1, const union value *val2)
+{
+ struct covariance_accumulator *ca;
+ struct covariance_accumulator *new_entry;
+
+ ca = get_new_covariance_accumulator (v1, v2, val1, val2);
+ ca->dot_product = update_product (ca->v1, ca->v2, ca->val1, ca->val2);
+ ca->sum1 = update_sum (ca->v1, ca->val1, 1.0);
+ ca->sum2 = update_sum (ca->v2, ca->val2, 1.0);
+ ca->ssize = 1.0;
+ new_entry = hsh_insert (c, ca);
+
+ if (new_entry != NULL)
+ {
+ new_entry->dot_product += ca->dot_product;
+ new_entry->ssize += 1.0;
+ new_entry->sum1 += ca->sum1;
+ new_entry->sum2 += ca->sum2;
+ /*
+ If DOT_PRODUCT is null, CA was not already in the hash
+ hable, so we don't free it because it was just inserted.
+ If DOT_PRODUCT was not null, CA is already in the hash table.
+ Unnecessary now, it must be freed here.
+ */
+ free (ca);
+ }
+}
+
+static void
+inner_intr_loop (struct covariance_matrix *cov, const struct ccase *ccase, const struct variable *var1,
+ const union value *val1, const struct interaction_variable **i_var,
+ const struct interaction_value *i_val1, size_t j)
+{
+ struct variable *var2;
+ union value *val2;
+ struct interaction_value *i_val2;
+
+ var2 = interaction_get_variable (i_var[j]);
+ i_val2 = interaction_case_data (ccase, i_var[j]);
+ val2 = interaction_value_get (i_val2);
+
+ if (!var_is_value_missing (var2, val2, cov->missing_value))
+ {
+ update_hash_entry_intr (cov->ca, var1, var2, val1, val2, i_val1, i_val2);
+ }
+}
/*
Compute the covariance matrix in a single data-pass. Cases with
missing values are dropped pairwise, in other words, only if one of
const union value *val1;
const union value *val2;
const struct variable **v_variables;
+ const struct variable *var1;
+ const struct variable *var2;
struct interaction_value *i_val1 = NULL;
struct interaction_value *i_val2 = NULL;
for (i = 0; i < cov->n_variables; ++i)
{
- if (is_interaction (v_variables[i], i_var, n_intr))
- {
- i_val1 = interaction_case_data (ccase, v_variables[i], i_var, n_intr);
- val1 = interaction_value_get (i_val1);
- }
- else
- {
- val1 = case_data (ccase, v_variables[i]);
- }
- if (!var_is_value_missing (v_variables[i], val1, cov->missing_value))
+ var1 = v_variables[i];
+ val1 = case_data (ccase, var1);
+ if (!var_is_value_missing (var1, val1, cov->missing_value))
{
- cat_value_update (v_variables[i], val1);
- if (var_is_numeric (v_variables[i]))
+ cat_value_update (var1, val1);
+ if (var_is_numeric (var1))
cov->update_moments (cov, i, val1->f);
for (j = i; j < cov->n_variables; j++)
{
- if (is_interaction (v_variables[j], i_var, n_intr))
- {
- i_val2 = interaction_case_data (ccase, v_variables[j], i_var, n_intr);
- val2 = interaction_value_get (i_val2);
- }
- else
- {
- val2 = case_data (ccase, v_variables[j]);
- }
+ var2 = v_variables[j];
+ val2 = case_data (ccase, var2);
if (!var_is_value_missing
- (v_variables[j], val2, cov->missing_value))
+ (var2, val2, cov->missing_value))
{
- update_hash_entry (cov->ca, v_variables[i], v_variables[j],
- val1, val2, i_val1, i_val2);
+ update_hash_entry (cov->ca, var1, var2, val1, val2);
}
}
+ for (j = 0; j < cov->n_intr; j++)
+ {
+ inner_intr_loop (cov, ccase, var1, val1, i_var, i_val1, j);
+ }
+ }
+ }
+ for (i = 0; i < cov->n_intr; i++)
+ {
+ var1 = interaction_get_variable (i_var[i]);
+ i_val1 = interaction_case_data (ccase, i_var[i]);
+ val1 = interaction_value_get (i_val1);
+ cat_value_update (var1, val1);
+ if (!var_is_value_missing (var1, val1, cov->missing_value))
+ {
+ for (j = i; j < cov->n_intr; j++)
+ {
+ inner_intr_loop (cov, ccase, var1, val1, i_var, i_val1, j);
+ }
}
}
}
for (i = 0; i < cov->n_variables; ++i)
{
- if (is_interaction (v_variables[i], i_var, n_intr))
- {
- i_val1 = interaction_case_data (ccase, v_variables[i], i_var, n_intr);
- val1 = interaction_value_get (i_val1);
- }
- else
- {
- val1 = case_data (ccase, v_variables[i]);
- }
+ val1 = case_data (ccase, v_variables[i]);
cat_value_update (v_variables[i], val1);
if (var_is_numeric (v_variables[i]))
cov->update_moments (cov, i, val1->f);
for (j = i; j < cov->n_variables; j++)
{
- if (is_interaction (v_variables[j], i_var, n_intr))
- {
- i_val2 = interaction_case_data (ccase, v_variables[j], i_var, n_intr);
- val2 = interaction_value_get (i_val2);
- }
- else
- {
- val2 = case_data (ccase, v_variables[j]);
- }
update_hash_entry (cov->ca, v_variables[i], v_variables[j],
- val1, val2, i_val1, i_val2);
+ val1, val2);
}
}
}
else
{
k = 0;
- while (var_get_dict_index (cov->v_variables[k]) != var_get_dict_index (var))
+ while (cov->v_variables[k] != var && k < cov->n_variables)
{
k++;
}
- moments1_calculate (cov->m1[k], &n, &mean, NULL, NULL, NULL);
- return mean * n;
+ if (k < cov->n_variables)
+ {
+ moments1_calculate (cov->m1[k], &n, &mean, NULL, NULL, NULL);
+ return mean * n;
+ }
}
}
-
+
return 0.0;
}
static void
struct covariance_accumulator *entry;
struct hsh_iterator iter;
- cov->cov = covariance_matrix_create (cov->n_variables, cov->v_variables);
- cov->ssize = covariance_matrix_create (cov->n_variables, cov->v_variables);
+ cov->cov = covariance_matrix_create_s (cov);
+ cov->ssize = covariance_matrix_create_s (cov);
entry = hsh_first (cov->ca, &iter);
while (entry != NULL)
{
{ LISTWISE,
PAIRWISE
};
-struct design_matrix *covariance_matrix_create (size_t,
- const struct variable *[]);
+struct design_matrix *covariance_matrix_create (size_t, const struct variable *[]);
-void covariance_matrix_destroy (struct covariance_matrix *cov);
+void covariance_matrix_destroy (struct covariance_matrix *);
void covariance_pass_two (struct design_matrix *, double,
double, double, const struct variable *,
const struct variable *, const union value *,
const struct ccase *, void **, size_t);
struct design_matrix *covariance_to_design (const struct covariance_matrix *);
double covariance_matrix_get_element (const struct covariance_matrix *, size_t, size_t);
+void covariance_interaction_set (struct covariance_matrix *,
+ const struct interaction_variable **, size_t);
#endif
#include <math/interaction.h>
#include <string.h>
#include <xalloc.h>
+#include <unistr.h>
struct interaction_variable
{
{
struct interaction_variable *result = NULL;
size_t i;
+ int width = 0;
if (n_vars > 0)
{
if (var_is_alpha (vars[i]))
{
result->n_alpha++;
+ width = 1;
}
}
}
- result->intr = var_create_internal (0);
+ result->intr = var_create_internal (0, width);
return result;
}
Get one of the member variables.
*/
const struct variable *
-interaction_variable_get_member (const struct interaction_variable *iv, size_t i)
+interaction_get_member (const struct interaction_variable *iv, size_t i)
{
return iv->members[i];
}
}
/*
- Get the interaction varibale itself.
+ Get the interaction variable itself.
*/
const struct variable *
-interaction_variable_get_var (const struct interaction_variable *iv)
+interaction_get_variable (const struct interaction_variable *iv)
{
return iv->intr;
}
if (var != NULL)
{
- int val_width;
- char *val;
+ uint8_t *val;
+ int val_width = 1;
result = xmalloc (sizeof (*result));
result->intr = var;
n_vars = interaction_get_n_vars (var);
- val_width = n_vars * MAX_SHORT_STRING + 1;
value_init (&result->val, val_width);
val = value_str_rw (&result->val, val_width);
val[0] = '\0';
result->f = 1.0;
for (i = 0; i < n_vars; i++)
{
- member = interaction_variable_get_member (var, i);
+ member = interaction_get_member (var, i);
if (var_is_value_missing (member, vals[i], MV_ANY))
{
if (var_is_alpha (var->members[i]))
{
int w = var_get_width (var->members[i]);
- strncat (val, value_str (vals[i], w), MAX_SHORT_STRING);
+ value_resize (result, val_width, val_width + w);
+ u8_strncat (val, value_str (vals[i], w), w);
+ val = value_str_rw (&result->val, val_width);
}
else if (var_is_numeric (var->members[i]))
{
Return a value from a variable that is an interaction.
*/
struct interaction_value *
-interaction_case_data (const struct ccase *ccase, const struct variable *var,
- const struct interaction_variable **intr_vars, size_t n_intr)
+interaction_case_data (const struct ccase *ccase, const struct interaction_variable *iv)
{
size_t i;
size_t n_vars;
- const struct interaction_variable *iv = NULL;
- const struct variable *intr;
const struct variable *member;
const union value **vals = NULL;
- for (i = 0; i < n_intr; i++)
- {
- iv = intr_vars[i];
- intr = interaction_variable_get_var (iv);
- if (var_get_dict_index (intr) == var_get_dict_index (var))
- {
- break;
- }
- }
n_vars = interaction_get_n_vars (iv);
vals = xnmalloc (n_vars, sizeof (*vals));
+
for (i = 0; i < n_vars; i++)
- {
- member = interaction_variable_get_member (iv, i);
- vals[i] = case_data (ccase, member);
- }
+ {
+ member = interaction_get_member (iv, i);
+ vals[i] = case_data (ccase, member);
+ }
+
return interaction_value_create (iv, vals);
}
for (i = 0; i < n_intr; i++)
{
- intr = interaction_variable_get_var (iv[i]);
+ intr = interaction_get_variable (iv[i]);
if (var_get_dict_index (intr) == var_get_dict_index (var))
{
return true;
size_t interaction_variable_get_n_vars (const struct interaction_variable *);
double interaction_value_get_nonzero_entry (const struct interaction_value *);
const union value *interaction_value_get (const struct interaction_value *);
-const struct variable * interaction_variable_get_var (const struct interaction_variable *);
+const struct variable * interaction_get_variable (const struct interaction_variable *);
size_t interaction_get_n_numeric (const struct interaction_variable *);
size_t interaction_get_n_alpha (const struct interaction_variable *);
size_t interaction_get_n_vars (const struct interaction_variable *);
-const struct variable * interaction_variable_get_member (const struct interaction_variable *, size_t);
+const struct variable * interaction_get_member (const struct interaction_variable *, size_t);
bool is_interaction (const struct variable *, const struct interaction_variable **, size_t);
struct interaction_value *
-interaction_case_data (const struct ccase *, const struct variable *,
- const struct interaction_variable **, size_t);
+interaction_case_data (const struct ccase *, const struct interaction_variable *);
double interaction_value_get_nonzero_entry (const struct interaction_value *);
#endif
gsl_matrix_set (design, j, i, tmp);
}
}
- sw = gsl_matrix_calloc (cache->n_indeps + 1, cache->n_indeps + 1);
- xtx = gsl_matrix_submatrix (sw, 0, 0, cache->n_indeps, cache->n_indeps);
+ sw = gsl_matrix_calloc (cache->n_coeffs + 1, cache->n_coeffs + 1);
+ xtx = gsl_matrix_submatrix (sw, 0, 0, cache->n_coeffs, cache->n_coeffs);
for (i = 0; i < xtx.matrix.size1; i++)
{
}
}
- gsl_matrix_set (sw, cache->n_indeps, cache->n_indeps, cache->sst);
- xty = gsl_matrix_column (sw, cache->n_indeps);
+ gsl_matrix_set (sw, cache->n_coeffs, cache->n_coeffs, cache->sst);
+ xty = gsl_matrix_column (sw, cache->n_coeffs);
/*
This loop starts at 1, with i=0 outside the loop, so we can get
the model sum of squares due to the first independent variable.
gsl_vector_set (&(xty.vector), 0, tmp);
tmp *= tmp / gsl_vector_get (cache->ssx, 0);
gsl_vector_set (cache->ss_indeps, 0, tmp);
- for (i = 1; i < cache->n_indeps; i++)
+ for (i = 1; i < cache->n_coeffs; i++)
{
xi = gsl_matrix_column (design, i);
gsl_blas_ddot (&(xi.vector), Y, &tmp);
coef = pspp_linreg_get_coeff (c, v, NULL);
return pspp_coeff_get_mean (coef);
}
- return GSL_NAN;
+ return 0.0;
}
void pspp_linreg_set_indep_variable_mean (pspp_linreg_cache *c, const struct variable *v,
#include <data/data-out.h>
#include <data/format.h>
#include <data/value.h>
+#include <data/dictionary.h>
#include <libpspp/assertion.h>
#include <libpspp/compiler.h>
#include <libpspp/misc.h>
}
}
-/* Formats text TEXT and arguments ARGS as indicated in OPT in
- TABLE's pool and returns the resultant string. */
-static struct substring
-text_format (struct tab_table *table, int opt, const char *text, va_list args)
-{
- assert (table != NULL && text != NULL);
-
- return ss_cstr (opt & TAT_PRINTF
- ? pool_vasprintf (table->container, text, args)
- : pool_strdup (table->container, text));
-}
-
/* Set the title of table T to TITLE, which is formatted as if
passed to printf(). */
void
from V, displayed with format spec F. */
void
tab_value (struct tab_table *table, int c, int r, unsigned char opt,
- const union value *v, const struct fmt_spec *f)
+ const union value *v, const struct dictionary *dict,
+ const struct fmt_spec *f)
{
char *contents;
}
#endif
- contents = pool_alloc (table->container, f->w);
- table->cc[c + r * table->cf] = ss_buffer (contents, f->w);
- table->ct[c + r * table->cf] = opt;
+ contents = data_out_pool (v, dict_get_encoding (dict), f, table->container);
- data_out (v, f, contents);
+ table->cc[c + r * table->cf] = ss_cstr (contents);
+ table->ct[c + r * table->cf] = opt;
}
/* Sets cell (C,R) in TABLE, with options OPT, to have value VAL
tab_fixed (struct tab_table *table, int c, int r, unsigned char opt,
double val, int w, int d)
{
- char *contents;
- char buf[40], *cp;
+ char *s, *cp;
struct fmt_spec f;
union value double_value;
#endif
double_value.f = val;
- data_out (&double_value, &f, buf);
+ s = data_out_pool (&double_value, LEGACY_NATIVE, &f, table->container);
- cp = buf;
- while (isspace ((unsigned char) *cp) && cp < &buf[w])
+ cp = s;
+ while (isspace ((unsigned char) *cp) && cp < &s[w])
cp++;
- f.w = w - (cp - buf);
+ f.w = w - (cp - s);
- contents = pool_alloc (table->container, f.w);
- table->cc[c + r * table->cf] = ss_buffer (contents, f.w);
+ table->cc[c + r * table->cf] = ss_buffer (cp, f.w);
table->ct[c + r * table->cf] = opt;
- memcpy (contents, cp, f.w);
}
/* Sets cell (C,R) in TABLE, with options OPT, to have value VAL as
tab_double (struct tab_table *table, int c, int r, unsigned char opt,
double val, const struct fmt_spec *fmt)
{
- int w;
- char *contents;
- char buf[40], *cp;
-
- union value double_value;
+ struct substring ss;
+ union value double_value ;
assert (table != NULL);
#endif
double_value.f = val;
- data_out (&double_value, fmt, buf);
+ ss = ss_cstr (data_out_pool (&double_value, LEGACY_NATIVE, fmt, table->container));
- cp = buf;
- while (isspace ((unsigned char) *cp) && cp < &buf[fmt->w])
- cp++;
- w = fmt->w - (cp - buf);
+ ss_ltrim (&ss, ss_cstr (" "));
- contents = pool_alloc (table->container, w);
- table->cc[c + r * table->cf] = ss_buffer (contents, w);
+ table->cc[c + r * table->cf] = ss;
table->ct[c + r * table->cf] = opt;
- memcpy (contents, cp, w);
}
-/* Sets cell (C,R) in TABLE, with options OPT, to have text value
- TEXT. */
-void
-tab_text (struct tab_table *table, int c, int r, unsigned opt, const char *text, ...)
+static void
+do_tab_text (struct tab_table *table, int c, int r, unsigned opt, char *text)
{
- va_list args;
-
- assert (table != NULL && text != NULL);
-
- assert (c >= 0 );
- assert (r >= 0 );
+ assert (c >= 0);
+ assert (r >= 0);
assert (c < table->nc);
assert (r < table->nr);
-
#if DEBUGGING
if (c + table->col_ofs < 0 || r + table->row_ofs < 0
|| c + table->col_ofs >= table->nc
}
#endif
- va_start (args, text);
- table->cc[c + r * table->cf] = text_format (table, opt, text, args);
+ table->cc[c + r * table->cf] = ss_cstr (text);
table->ct[c + r * table->cf] = opt;
- va_end (args);
}
-/* Joins cells (X1,X2)-(Y1,Y2) inclusive in TABLE, and sets them with
- options OPT to have text value TEXT. */
+/* Sets cell (C,R) in TABLE, with options OPT, to have text value
+ TEXT. */
void
-tab_joint_text (struct tab_table *table, int x1, int y1, int x2, int y2,
- unsigned opt, const char *text, ...)
+tab_text (struct tab_table *table, int c, int r, unsigned opt,
+ const char *text)
{
- struct tab_joined_cell *j;
+ do_tab_text (table, c, r, opt, pool_strdup (table->container, text));
+}
- assert (table != NULL && text != NULL);
+/* Sets cell (C,R) in TABLE, with options OPT, to have text value
+ FORMAT, which is formatted as if passed to printf. */
+void
+tab_text_format (struct tab_table *table, int c, int r, unsigned opt,
+ const char *format, ...)
+{
+ va_list args;
+
+ va_start (args, format);
+ do_tab_text (table, c, r, opt,
+ pool_vasprintf (table->container, format, args));
+ va_end (args);
+}
+
+static void
+do_tab_joint_text (struct tab_table *table, int x1, int y1, int x2, int y2,
+ unsigned opt, char *text)
+{
+ struct tab_joined_cell *j;
assert (x1 + table->col_ofs >= 0);
assert (y1 + table->row_ofs >= 0);
j->y1 = y1 + table->row_ofs;
j->x2 = ++x2 + table->col_ofs;
j->y2 = ++y2 + table->row_ofs;
-
- {
- va_list args;
-
- va_start (args, text);
- j->contents = text_format (table, opt, text, args);
- va_end (args);
- }
+ j->contents = ss_cstr (text);
opt |= TAB_JOIN;
}
}
+/* Joins cells (X1,X2)-(Y1,Y2) inclusive in TABLE, and sets them with
+ options OPT to have text value TEXT. */
+void
+tab_joint_text (struct tab_table *table, int x1, int y1, int x2, int y2,
+ unsigned opt, const char *text)
+{
+ do_tab_joint_text (table, x1, y1, x2, y2, opt,
+ pool_strdup (table->container, text));
+}
+
+/* Joins cells (X1,X2)-(Y1,Y2) inclusive in TABLE, and sets them
+ with options OPT to have text value FORMAT, which is formatted
+ as if passed to printf. */
+void
+tab_joint_text_format (struct tab_table *table, int x1, int y1, int x2, int y2,
+ unsigned opt, const char *format, ...)
+{
+ va_list args;
+
+ va_start (args, format);
+ do_tab_joint_text (table, x1, y1, x2, y2, opt,
+ pool_vasprintf (table->container, format, args));
+ va_end (args);
+}
+
/* Sets cell (C,R) in TABLE, with options OPT, to contents STRING. */
void
tab_raw (struct tab_table *table, int c, int r, unsigned opt,
t->h[0] = tab_natural_height (t, d, 0);
}
-/* Outputs text BUF as a table with a single cell having cell options
+static void
+do_tab_output_text (struct tab_table *t, int options, char *text)
+{
+ do_tab_text (t, 0, 0, options, text);
+ tab_flags (t, SOMF_NO_TITLE | SOMF_NO_SPACING);
+ tab_dim (t, options & TAT_NOWRAP ? nowrap_dim : wrap_dim, NULL);
+ tab_submit (t);
+}
+
+/* Outputs TEXT as a table with a single cell having cell options
OPTIONS, which is a combination of the TAB_* and TAT_*
- constants. */
+ constants. */
void
-tab_output_text (int options, const char *buf, ...)
+tab_output_text (int options, const char *text)
{
- struct tab_table *t = tab_create (1, 1, 0);
- char *tmp_buf = NULL;
-
- if (options & TAT_PRINTF)
- {
- va_list args;
+ struct tab_table *table = tab_create (1, 1, 0);
+ do_tab_output_text (table, options, pool_strdup (table->container, text));
+}
- va_start (args, buf);
- buf = tmp_buf = xvasprintf (buf, args);
- va_end (args);
- }
+/* Outputs FORMAT as a table with a single cell having cell
+ options OPTIONS, which is a combination of the TAB_* and TAT_*
+ constants. FORMAT is formatted as if it was passed through
+ printf. */
+void
+tab_output_text_format (int options, const char *format, ...)
+{
+ struct tab_table *table;
+ va_list args;
- tab_text (t, 0, 0, options & ~TAT_PRINTF, buf);
- tab_flags (t, SOMF_NO_TITLE | SOMF_NO_SPACING);
- tab_dim (t, options & TAT_NOWRAP ? nowrap_dim : wrap_dim, NULL);
- tab_submit (t);
+ table = tab_create (1, 1, 0);
- free (tmp_buf);
+ va_start (args, format);
+ do_tab_output_text (table, options,
+ pool_vasprintf (table->container, format, args));
+ va_end (args);
}
/* Set table flags to FLAGS. */
enum
{
TAT_NONE = 0, /* No options. */
- TAT_PRINTF = 0x0100, /* Format the text string with sprintf. */
TAT_TITLE = 0x0200 | TAB_EMPH, /* Title attributes. */
TAT_NOWRAP = 0x0800 /* No text wrap (tab_output_text() only). */
};
/* Cells. */
struct fmt_spec;
+struct dictionary;
union value;
void tab_value (struct tab_table *, int c, int r, unsigned char opt,
- const union value *, const struct fmt_spec *);
+ const union value *, const struct dictionary *dict,
+ const struct fmt_spec *);
void tab_fixed (struct tab_table *, int c, int r, unsigned char opt,
double v, int w, int d);
void tab_double (struct tab_table *, int c, int r, unsigned char opt,
double v, const struct fmt_spec *);
-void tab_text (struct tab_table *, int c, int r, unsigned opt,
- const char *, ...)
+void tab_text (struct tab_table *, int c, int r, unsigned opt, const char *);
+void tab_text_format (struct tab_table *, int c, int r, unsigned opt,
+ const char *, ...)
PRINTF_FORMAT (5, 6);
+
void tab_joint_text (struct tab_table *, int x1, int y1, int x2, int y2,
- unsigned opt, const char *, ...)
+ unsigned opt, const char *);
+void tab_joint_text_format (struct tab_table *, int x1, int y1, int x2, int y2,
+ unsigned opt, const char *, ...)
PRINTF_FORMAT (7, 8);
/* Cell low-level access. */
#define tab_col(TABLE) ((TABLE)->col_ofs)
/* Simple output. */
-void tab_output_text (int options, const char *string, ...)
+void tab_output_text (int options, const char *string);
+void tab_output_text_format (int options, const char *, ...)
PRINTF_FORMAT (2, 3);
/* Embedding the command name in the output. */
#include "about.h"
#include "helper.h"
+#include <gettext.h>
+#define _(msgid) gettext (msgid)
+#define N_(msgid) msgid
+
static const gchar *artists[] = { "Patrick Brunier", "Dondi Bogusky", NULL};
void
about_new (GtkMenuItem *m, GtkWindow *parent)
{
- GtkBuilder *xml = builder_new ("psppire.ui");
-
- GtkWidget *about = get_widget_assert (xml, "aboutdialog1");
+ GtkWidget *about = gtk_about_dialog_new ();
GdkPixbuf *pb =
gdk_pixbuf_new_from_file_at_size (relocate (PKGDATADIR "/pspplogo.png"),
gtk_about_dialog_set_license (GTK_ABOUT_DIALOG (about),
copyleft);
+ gtk_about_dialog_set_comments (GTK_ABOUT_DIALOG (about),
+ _("A program for the analysis of sampled data"));
+
+ gtk_about_dialog_set_copyright (GTK_ABOUT_DIALOG (about),
+ "Free Software Foundation");
+
+
+ /* TRANSLATORS: Use this string to list the people who have helped with
+ translation to your language. */
+ gtk_about_dialog_set_translator_credits (GTK_ABOUT_DIALOG (about),
+ _("translator-credits"));
gtk_window_set_transient_for (GTK_WINDOW (about), parent);
gint *idx;
struct variable *var;
GtkTreeIter dict_iter;
- gchar *name;
GtkTextBuffer *buffer;
g_return_if_fail (GTK_IS_TEXT_VIEW (dest));
gtk_tree_path_free (path);
- name = recode_string (UTF8, psppire_dict_encoding (dict),
- var_get_name (var),
- -1);
-
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (dest));
erase_selection (buffer);
- gtk_text_buffer_insert_at_cursor (buffer, name, -1);
+ gtk_text_buffer_insert_at_cursor (buffer, var_get_name (var), -1);
- g_free (name);
}
gpointer data)
{
PsppireDict *dict = data;
- struct variable *var;
- gchar *name;
-
- var = get_selected_variable (tree_model, iter, dict);
+ const struct variable *var = get_selected_variable (tree_model, iter, dict);
- name = recode_string (UTF8, psppire_dict_encoding (dict),
- var_get_name (var), -1);
- g_object_set (cell, "text", name, NULL);
- g_free (name);
+ g_object_set (cell, "text", var_get_name (var), NULL);
}
gint *idx;
struct variable *var;
GtkTreeIter dict_iter;
- gchar *name;
g_return_if_fail (GTK_IS_ENTRY(dest));
gtk_tree_path_free (path);
- name = recode_string (UTF8, psppire_dict_encoding (PSPPIRE_DICT (dict)),
- var_get_name (var), -1);
- gtk_entry_set_text (GTK_ENTRY (dest), name);
- g_free (name);
+ gtk_entry_set_text (GTK_ENTRY (dest), var_get_name (var));
}
PsppireSelector *selector)
{
gboolean result;
- gchar *name;
GtkTreeIter dict_iter;
GtkTreeModel *dict;
struct variable *var;
gint dict_index;
gint *indeces;
GtkTreePath *path;
- const gchar *text = gtk_entry_get_text (GTK_ENTRY (selector->dest));
+ const gchar *text = gtk_entry_get_text (GTK_ENTRY (selector->dest));
get_base_model (model, iter, &dict, &dict_iter);
gtk_tree_path_free (path);
- name = recode_string (UTF8, psppire_dict_encoding (PSPPIRE_DICT (dict)),
- var_get_name (var), -1);
- result = ( 0 == strcmp (text, name));
- g_free (name);
+ result = ( 0 == strcmp (text, var_get_name (var) ));
return result;
}
{
const struct variable *var;
enum string_cmp_flags flags;
+ const PsppireDict *dict;
bool (*compare) (const struct comparator *,
const union value *);
string_value_compare (const struct comparator *cmptr,
const union value *val)
{
+ bool found;
+ char *text;
const struct string_comparator *ssc =
(const struct string_comparator *) cmptr;
int width = var_get_width (cmptr->var);
- const char *text = value_str (val, width);
-
+ g_return_val_if_fail (width > 0, false);
assert ( ! (cmptr->flags & STR_CMP_LABELS));
- g_return_val_if_fail (width > 0, false);
+ text = value_to_text (*val, cmptr->dict, *var_get_write_format (cmptr->var));
if ( cmptr->flags & STR_CMP_SUBSTR)
- return (NULL != g_strstr_len (text, width, ssc->pattern));
+ found = (NULL != g_strstr_len (text, width, ssc->pattern));
else
- return (0 == strncmp (text, ssc->pattern, width));
+ found = (0 == strncmp (text, ssc->pattern, width));
+
+ free (text);
+ return found;
}
g_return_val_if_fail (width > 0, false);
+ text = value_to_text (*val, cmptr->dict, *var_get_write_format (cmptr->var));
/* We must remove trailing whitespace, otherwise $ will not match where
one would expect */
- text = g_strndup (value_str (val, width), width);
g_strchomp (text);
retval = (0 == regexec (&rec->re, text, 0, 0, 0));
static struct comparator *
-value_comparator_create (const struct variable *var, const char *target)
+value_comparator_create (const struct variable *var, const PsppireDict *dict, const char *target)
{
const struct fmt_spec *fmt;
int width ;
cmptr->var = var;
cmptr->compare = value_compare ;
cmptr->destroy = cmptr_value_destroy;
+ cmptr->dict = dict;
width = var_get_width (var);
fmt = var_get_write_format (var);
value_init (&vc->pattern, width);
- if ( ! data_in (ss_cstr (target),
- LEGACY_NATIVE,
- fmt->type,
- 0, 0, 0,
- &vc->pattern, width) )
- {
- value_destroy (&vc->pattern, width);
- free (vc);
- return NULL;
- }
+ text_to_value (target, &vc->pattern, dict, *var_get_write_format (var) );
return cmptr;
}
static struct comparator *
-string_comparator_create (const struct variable *var, const char *target,
+string_comparator_create (const struct variable *var, const PsppireDict *dict,
+ const char *target,
enum string_cmp_flags flags)
{
struct string_comparator *ssc = xzalloc (sizeof (*ssc));
cmptr->flags = flags;
cmptr->var = var;
+ cmptr->dict = dict;
if ( flags & STR_CMP_LABELS)
cmptr->compare = string_label_compare;
static struct comparator *
-regexp_comparator_create (const struct variable *var, const char *target,
+regexp_comparator_create (const struct variable *var, const PsppireDict *dict, const char *target,
enum string_cmp_flags flags)
{
int code;
cmptr->flags = flags;
cmptr->var = var;
+ cmptr->dict = dict;
cmptr->compare = (flags & STR_CMP_LABELS)
? regexp_label_compare : regexp_value_compare ;
static struct comparator *
-comparator_factory (const struct variable *var, const char *str,
+comparator_factory (const struct variable *var, const PsppireDict *dict, const char *str,
enum string_cmp_flags flags)
{
if ( flags & STR_CMP_REGEXP )
- return regexp_comparator_create (var, str, flags);
+ return regexp_comparator_create (var, dict, str, flags);
if ( flags & (STR_CMP_SUBSTR | STR_CMP_LABELS) )
- return string_comparator_create (var, str, flags);
+ return string_comparator_create (var, dict, str, flags);
- return value_comparator_create (var, str);
+ return value_comparator_create (var, dict, str);
}
casenumber i;
const struct casenum_iterator *ip = get_iteration_params (fd);
struct comparator *cmptr =
- comparator_factory (var, target_string, flags);
+ comparator_factory (var, fd->dict, target_string, flags);
value_init (&val, width);
if ( ! cmptr)
/* Formats a value according to FORMAT
The returned string must be freed when no longer required */
gchar *
-value_to_text (union value v, struct fmt_spec format)
+value_to_text (union value v, const PsppireDict *dict, struct fmt_spec format)
{
gchar *s = 0;
- s = g_new (gchar, format.w + 1);
- data_out (&v, &format, s);
- s[format.w]='\0';
+ s = data_out (&v, dict_get_encoding (dict->dict), &format);
g_strchug (s);
return s;
gboolean
text_to_value (const gchar *text, union value *v,
+ const PsppireDict *dict,
struct fmt_spec format)
{
bool ok;
}
msg_disable ();
- ok = data_in (ss_cstr (text), LEGACY_NATIVE, format.type, 0, 0, 0,
+ ok = data_in (ss_cstr (text), UTF8, format.type, 0, 0, 0,
+ dict->dict,
v, fmt_var_width (&format));
msg_enable ();
#include <gtk/gtk.h>
-
+#include "psppire-dict.h"
void paste_syntax_in_new_window (const gchar *syntax);
struct fmt_spec;
+
/* Formats a value according to FORMAT
The returned string must be freed when no longer required */
-gchar * value_to_text (union value v, struct fmt_spec format);
+gchar * value_to_text (union value v, const PsppireDict *dict, struct fmt_spec format);
gboolean text_to_value (const gchar *text, union value *v,
+ const PsppireDict *dict,
struct fmt_spec format);
GObject *get_object_assert (GtkBuilder *builder, const gchar *name, GType type);
continue;
}
- if ( text_to_value (text, &v, *write_spec))
+ if ( text_to_value (text, &v,
+ dialog->dict, *write_spec))
{
nvals++;
mv_add_value (&dialog->mvl, &v);
const gchar *low_text = gtk_entry_get_text (GTK_ENTRY (dialog->low));
const gchar *high_text = gtk_entry_get_text (GTK_ENTRY (dialog->high));
- if ( text_to_value (low_text, &low_val, *write_spec)
+ if ( text_to_value (low_text, &low_val, dialog->dict, *write_spec)
&&
- text_to_value (high_text, &high_val, *write_spec) )
+ text_to_value (high_text, &high_val, dialog->dict, *write_spec) )
{
if ( low_val.f > high_val.f )
{
{
union value discrete_val;
if ( !text_to_value (discrete_text, &discrete_val,
+ dialog->dict,
*write_spec))
{
err_dialog (_("Incorrect value for variable type"),
gchar *high_text;
mv_get_range (&dialog->mvl, &low.f, &high.f);
- low_text = value_to_text (low, *write_spec);
- high_text = value_to_text (high, *write_spec);
+
+ low_text = value_to_text (low, dialog->dict, *write_spec);
+ high_text = value_to_text (high, dialog->dict, *write_spec);
gtk_entry_set_text (GTK_ENTRY (dialog->low), low_text);
gtk_entry_set_text (GTK_ENTRY (dialog->high), high_text);
if ( mv_has_value (&dialog->mvl))
{
gchar *text;
- text = value_to_text (*mv_get_value (&dialog->mvl, 0), *write_spec);
+ text = value_to_text (*mv_get_value (&dialog->mvl, 0), dialog->dict, *write_spec);
gtk_entry_set_text (GTK_ENTRY (dialog->discrete), text);
g_free (text);
}
{
gchar *text ;
- text = value_to_text (*mv_get_value (&dialog->mvl, i),
+ text = value_to_text (*mv_get_value (&dialog->mvl, i), dialog->dict,
*write_spec);
gtk_entry_set_text (GTK_ENTRY (dialog->mv[i]), text);
g_free (text);
/* The variable whose missing values are to be updated */
struct variable *pv;
+ /* The dictionary to which that value belongs */
+ PsppireDict *dict;
+
/* local copy */
struct missing_values mvl;
gchar *text = g_strdup_printf ("%d: %s", row + FIRST_CASE_NUMBER,
var_get_name (var));
- gchar *s = recode_string (UTF8,
- psppire_dict_encoding (data_store->dict),
- text, -1);
- g_free (text);
-
- gtk_entry_set_text (GTK_ENTRY (de->cell_ref_entry), s);
+ gtk_entry_set_text (GTK_ENTRY (de->cell_ref_entry), text);
- g_free (s);
+ g_free (text);
}
else
goto blank_entry;
{
glong posn = -1;
- if ( de->data_sheet[0]->state == PSPPIRE_SHEET_ROW_SELECTED )
- posn = PSPPIRE_SHEET (de->data_sheet[0])->range.row0;
+ if ( PSPPIRE_SHEET (de->data_sheet[0])->select_status == PSPPIRE_SHEET_ROW_SELECTED )
+ {
+ posn = PSPPIRE_SHEET (de->data_sheet[0])->range.row0;
+ }
else
- posn = PSPPIRE_SHEET (de->data_sheet[0])->active_cell.row;
+ {
+ posn = PSPPIRE_SHEET (de->data_sheet[0])->active_cell.row;
+ }
if ( posn == -1 ) posn = 0;
/* Perform data_out for case CC, variable V, appending to STRING */
static void
-data_out_g_string (GString *string, const struct variable *v,
+data_out_g_string (GString *string, const struct dictionary *dict,
+ const struct variable *v,
const struct ccase *cc)
{
- char *buf ;
-
const struct fmt_spec *fs = var_get_print_format (v);
const union value *val = case_data (cc, v);
- buf = xzalloc (fs->w);
- data_out (val, fs, buf);
+ char *s = data_out (val, dict_get_encoding (dict), fs);
- g_string_append_len (string, buf, fs->w);
+ g_string_append (string, s);
- g_free (buf);
+ g_free (s);
}
static GString *
for (c = 0 ; c < var_cnt ; ++c)
{
const struct variable *v = dict_get_var (clip_dict, c);
- data_out_g_string (string, v, cc);
+ data_out_g_string (string, clip_dict, v, cc);
if ( c < val_cnt - 1 )
g_string_append (string, "\t");
}
{
const struct variable *v = dict_get_var (clip_dict, c);
g_string_append (string, "<td>");
- data_out_g_string (string, v, cc);
+ data_out_g_string (string, clip_dict, v, cc);
g_string_append (string, "</td>\n");
}
char *text;
const struct fmt_spec *fp ;
const struct variable *pv ;
+ const struct dictionary *dict;
union value v;
int width;
- GString *s;
g_return_val_if_fail (store->dict, NULL);
g_return_val_if_fail (store->datasheet, NULL);
+ dict = store->dict->dict;
+
if (column >= psppire_dict_get_var_cnt (store->dict))
return NULL;
if (label)
{
value_destroy (&v, width);
- return recode_string (UTF8, psppire_dict_encoding (store->dict),
- label, -1);
+ return g_strdup (label);
}
}
fp = var_get_write_format (pv);
- s = g_string_sized_new (fp->w + 1);
- g_string_set_size (s, fp->w);
-
- memset (s->str, 0, fp->w);
-
- g_assert (fp->w == s->len);
-
- /* Converts binary value V into printable form in the exactly
- FP->W character in buffer S according to format specification
- FP. No null terminator is appended to the buffer. */
- data_out (&v, fp, s->str);
-
- text = recode_string (UTF8, psppire_dict_encoding (store->dict),
- s->str, fp->w);
- g_string_free (s, TRUE);
+ text = data_out (&v, dict_get_encoding (dict), fp);
g_strchomp (text);
psppire_data_store_set_string (PsppireDataStore *store,
const gchar *text, glong row, glong col)
{
- gchar *s;
glong n_cases;
const struct variable *pv = psppire_dict_get_variable (store->dict, col);
if ( NULL == pv)
if (row == n_cases)
psppire_data_store_insert_new_case (store, row);
- s = recode_string (psppire_dict_encoding (store->dict), UTF8, text, -1);
-
psppire_data_store_data_in (store, row,
- var_get_case_index (pv), ss_cstr (s),
+ var_get_case_index (pv), ss_cstr (text),
var_get_write_format (pv));
- free (s);
psppire_sheet_model_range_changed (PSPPIRE_SHEET_MODEL (store), row, col, row, col);
static gchar *
get_row_button_label (const PsppireSheetModel *model, gint unit)
{
- PsppireDataStore *ds = PSPPIRE_DATA_STORE (model);
- gchar *s = g_strdup_printf (_("%d"), unit + FIRST_CASE_NUMBER);
-
- gchar *text = recode_string (UTF8, psppire_dict_encoding (ds->dict),
- s, -1);
+ // PsppireDataStore *ds = PSPPIRE_DATA_STORE (model);
- g_free (s);
-
- return text;
+ return g_strdup_printf (_("%d"), unit + FIRST_CASE_NUMBER);
}
static gchar *
get_column_subtitle (const PsppireSheetModel *model, gint col)
{
- gchar *text;
const struct variable *v ;
PsppireDataStore *ds = PSPPIRE_DATA_STORE (model);
if ( ! var_has_label (v))
return NULL;
- text = recode_string (UTF8, psppire_dict_encoding (ds->dict),
- var_get_label (v), -1);
-
- return text;
+ return xstrdup (var_get_label (v));
}
static gchar *
get_column_button_label (const PsppireSheetModel *model, gint col)
{
- gchar *text;
struct variable *pv ;
PsppireDataStore *ds = PSPPIRE_DATA_STORE (model);
pv = psppire_dict_get_variable (ds->dict, col);
- text = recode_string (UTF8, psppire_dict_encoding (ds->dict),
- var_get_name (pv), -1);
+ if (NULL == pv)
+ return NULL;
- return text;
+ return xstrdup (var_get_name (pv));
}
static gboolean
int width;
bool ok;
+ PsppireDict *dict;
+
g_return_val_if_fail (ds, FALSE);
g_return_val_if_fail (ds->datasheet, FALSE);
g_return_val_if_fail (idx < datasheet_get_n_columns (ds->datasheet), FALSE);
+ dict = ds->dict;
+
width = fmt_var_width (fmt);
g_return_val_if_fail (caseproto_get_width (
datasheet_get_proto (ds->datasheet), idx) == width,
FALSE);
value_init (&value, width);
ok = (datasheet_get_value (ds->datasheet, casenum, idx, &value)
- && data_in (input, LEGACY_NATIVE, fmt->type, 0, 0, 0, &value, width)
+ && data_in (input, UTF8, fmt->type, 0, 0, 0,
+ dict->dict, &value, width)
&& datasheet_put_value (ds->datasheet, casenum, idx, &value));
value_destroy (&value, width);
insert_case (GtkAction *action, gpointer data)
{
PsppireDataWindow *dw = PSPPIRE_DATA_WINDOW (data);
-
psppire_data_editor_insert_case (dw->data_editor);
}
{
case DICT_TVM_COL_NAME:
{
- gchar *name = recode_string (UTF8, psppire_dict_encoding (dict),
- var_get_name (var), -1);
g_value_init (value, G_TYPE_STRING);
- g_value_set_string (value, name);
- g_free (name);
+ g_value_set_string (value, var_get_name (var));
}
break;
case DICT_TVM_COL_VAR:
{
const struct variable *v = psppire_dict_get_variable (dict, i);
int di = var_get_dict_index (v);
- g_print ("\"%s\" idx=%d, fv=%d, size=%d\n",
+ g_print ("\"%s\" idx=%d, fv=%d\n",
var_get_name(v),
di,
- var_get_case_index(v),
- value_cnt_from_width(var_get_width(v)));
+ var_get_case_index(v));
}
}
"<span stretch=\"condensed\">%s</span>",
var_get_label (var));
- char *utf8 = recode_string (UTF8, psppire_dict_encoding (dict),
- text, -1);
-
+ g_object_set (cell, "markup", text, NULL);
g_free (text);
- g_object_set (cell, "markup", utf8, NULL);
- g_free (utf8);
}
else
{
- char *name = recode_string (UTF8, psppire_dict_encoding (dict),
- var_get_name (var), -1);
- g_object_set (cell, "text", name, NULL);
- g_free (name);
+ g_object_set (cell, "text", var_get_name (var), NULL);
}
}
return FALSE;
{
- gchar *tip ;
+ const gchar *tip ;
GtkTreeModel *m;
PsppireDict *dict;
dict = PSPPIRE_DICT (m);
if ( PSPPIRE_DICT_VIEW (treeview)->prefer_labels )
- tip = recode_string (UTF8, psppire_dict_encoding (dict),
- var_get_name (var), -1);
+ tip = var_get_name (var);
else
- tip = recode_string (UTF8, psppire_dict_encoding (dict),
- var_get_label (var), -1);
+ tip = var_get_label (var);
gtk_tooltip_set_text (tooltip, tip);
-
- g_free (tip);
}
return TRUE;
#include <gtk/gtkaction.h>
#include <gtk/gtktextbuffer.h>
#include "psppire-window.h"
+#include "psppire.h"
#include <gtk/gtk.h>
extern int viewer_length;
vs->missing_val_dialog->pv =
psppire_var_store_get_var (var_store, row);
+ vs->missing_val_dialog->dict = var_store->dict;
+
g_signal_connect_swapped (customEntry,
"clicked",
G_CALLBACK (missing_val_dialog_show),
GtkWidget *toplevel = gtk_widget_get_toplevel (GTK_WIDGET (vs));
vs->val_labs_dialog = val_labs_dialog_create (GTK_WINDOW (toplevel),
- PSPPIRE_SHEET (vs));
+ PSPPIRE_VAR_STORE (psppire_sheet_get_model (PSPPIRE_SHEET (vs))));
+
vs->missing_val_dialog = missing_val_dialog_create (GTK_WINDOW (toplevel));
vs->var_type_dialog = var_type_dialog_create (GTK_WINDOW (toplevel));
switch (col)
{
case PSPPIRE_VAR_STORE_COL_LABEL:
- var_set_label (pv, 0);
+ var_set_label (pv, NULL);
return TRUE;
break;
}
case PSPPIRE_VAR_STORE_COL_NAME:
{
gboolean ok;
- char *s = recode_string (psppire_dict_encoding (var_store->dict),
- UTF8,
- text, -1);
-
- ok = psppire_dict_rename_var (var_store->dict, pv, s);
-
- free (s);
+ ok = psppire_dict_rename_var (var_store->dict, pv, text);
return ok;
}
case PSPPIRE_VAR_STORE_COL_COLUMNS:
break;
case PSPPIRE_VAR_STORE_COL_LABEL:
{
- gchar *s = recode_string (psppire_dict_encoding (var_store->dict),
- UTF8,
- text, -1);
- var_set_label (pv, s);
- free (s);
+ var_set_label (pv, text);
return TRUE;
}
break;
N_("Custom"),
N_("String")
};
+
enum {VT_NUMERIC, VT_COMMA, VT_DOT, VT_SCIENTIFIC, VT_DATE, VT_DOLLAR,
VT_CUSTOM, VT_STRING};
switch (c)
{
case PSPPIRE_VAR_STORE_COL_NAME:
- return recode_string (UTF8, psppire_dict_encoding (dict),
- var_get_name (pv), -1);
+ return xstrdup (var_get_name (pv));
break;
case PSPPIRE_VAR_STORE_COL_TYPE:
{
}
break;
case PSPPIRE_VAR_STORE_COL_LABEL:
- return recode_string (UTF8, psppire_dict_encoding (dict),
- var_get_label (pv), -1);
+ {
+ const char *label = var_get_label (pv);
+ if (label)
+ return xstrdup (label);
+ return NULL;
+ }
break;
case PSPPIRE_VAR_STORE_COL_MISSING:
return g_locale_to_utf8 (gettext (none), -1, 0, 0, err);
else
{
- gchar *ss;
- GString *gstr = g_string_sized_new (10);
const struct val_labs *vls = var_get_value_labels (pv);
const struct val_lab **labels = val_labs_sorted (vls);
const struct val_lab *vl = labels[0];
g_assert (vl);
{
- gchar *const vstr = value_to_text (vl->value, *write_spec);
+ gchar *const vstr = value_to_text (vl->value, dict, *write_spec);
- g_string_printf (gstr, "{%s,\"%s\"}_",
- vstr, val_lab_get_label (vl));
- g_free (vstr);
+ return g_strdup_printf ( "{%s,\"%s\"}_", vstr, val_lab_get_label (vl));
}
-
- ss = recode_string (UTF8, psppire_dict_encoding (dict),
- gstr->str, gstr->len);
- g_string_free (gstr, TRUE);
- return ss;
}
}
break;
<!--*- mode: xml -*-->
<glade-interface>
<requires lib="psppire"/>
- <widget class="GtkAboutDialog" id="aboutdialog1">
- <property name="modal">True</property>
- <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property>
- <property name="copyright">Free Software Foundation</property>
- <property name="comments" translatable="yes">This is beta status software. Please report bugs to bug-gnu-pspp@gnu.org</property>
- <property name="authors"></property>
- <property name="logo">pspplogo.png</property>
- <child internal-child="vbox">
- <widget class="GtkVBox" id="dialog-vbox1">
- <property name="visible">True</property>
- <child>
- <placeholder/>
- </child>
- <child internal-child="action_area">
- <widget class="GtkHButtonBox" id="dialog-action_area1">
- <property name="visible">True</property>
- </widget>
- <packing>
- <property name="expand">False</property>
- <property name="pack_type">GTK_PACK_END</property>
- </packing>
- </child>
- </widget>
- </child>
- </widget>
<widget class="PsppireDialog" id="weight-cases-dialog">
<property name="title">Weight Cases</property>
<property name="modal">True</property>
p->data_tree_view = GTK_TREE_VIEW (get_widget_assert (builder, "data"));
p->modified_vars = NULL;
p->modified_var_cnt = 0;
+ p->dict = NULL;
}
/* Frees IA's formats substructure. */
if (field.string != NULL)
{
msg_disable ();
+
if (!data_in (field, LEGACY_NATIVE, in->type, 0, 0, 0,
+ ia->formats.dict,
&val, var_get_width (var)))
{
char fmt_string[FMT_STRING_LEN_MAX + 1];
}
if (outputp != NULL)
{
- char *output = xmalloc (out.w + 1);
- data_out (&val, &out, output);
- output[out.w] = '\0';
- *outputp = output;
+ *outputp = data_out (&val, dict_get_encoding (ia->formats.dict), &out);
}
value_destroy (&val, var_get_width (var));
{
GtkWidget *window;
- PsppireSheet *vs;
+ PsppireVarStore *var_store;
/* The variable to be updated */
struct variable *pv;
text = gtk_entry_get_text (GTK_ENTRY (dialog->value_entry));
text_to_value (text, &v,
+ dialog->var_store->dict,
*var_get_write_format (dialog->pv));
union value v;
text_to_value (text, &v,
+ dialog->var_store->dict,
*var_get_write_format (dialog->pv));
union value v;
text_to_value (val_text, &v,
+ dialog->var_store->dict,
*var_get_write_format (dialog->pv));
val_labs_replace (dialog->labs, &v,
const gchar *text = gtk_entry_get_text (GTK_ENTRY (dialog->value_entry));
text_to_value (text, &v,
+ dialog->var_store->dict,
*var_get_write_format (dialog->pv));
static void
on_select_row (GtkTreeView *treeview, gpointer data)
{
- gchar *labeltext;
struct val_labs_dialog *dialog = data;
union value value;
- const char *label;
+ const char *label = NULL;
gchar *text;
- PsppireVarStore *var_store =
- PSPPIRE_VAR_STORE (psppire_sheet_get_model (dialog->vs));
-
get_selected_tuple (dialog, &value, &label);
- text = value_to_text (value, *var_get_write_format (dialog->pv));
+ text = value_to_text (value, dialog->var_store->dict, *var_get_write_format (dialog->pv));
g_signal_handler_block (GTK_ENTRY (dialog->value_entry),
dialog->value_handler_id);
dialog->change_handler_id);
- labeltext = recode_string (UTF8, psppire_dict_encoding (var_store->dict),
- label, -1);
-
gtk_entry_set_text (GTK_ENTRY (dialog->label_entry),
- labeltext);
- g_free (labeltext);
+ label);
g_signal_handler_unblock (GTK_ENTRY (dialog->label_entry),
dialog->change_handler_id);
/* Create a new dialog box
(there should normally be only one)*/
struct val_labs_dialog *
-val_labs_dialog_create (GtkWindow *toplevel, PsppireSheet *sheet)
+val_labs_dialog_create (GtkWindow *toplevel, PsppireVarStore *var_store)
{
GtkTreeViewColumn *column;
struct val_labs_dialog *dialog = g_malloc (sizeof (*dialog));
+ dialog->var_store = var_store;
dialog->window = get_widget_assert (xml,"val_labs_dialog");
dialog->value_entry = get_widget_assert (xml,"value_entry");
dialog->label_entry = get_widget_assert (xml,"label_entry");
- dialog->vs = sheet;
gtk_window_set_transient_for
(GTK_WINDOW (dialog->window), toplevel);
GtkTreeIter iter;
- PsppireVarStore *var_store =
- PSPPIRE_VAR_STORE (psppire_sheet_get_model (dialog->vs));
-
GtkListStore *list_store = gtk_list_store_new (2,
G_TYPE_STRING,
G_TYPE_DOUBLE);
const struct val_lab *vl = labels[i];
gchar *const vstr =
- value_to_text (vl->value,
+ value_to_text (vl->value, dialog->var_store->dict,
*var_get_write_format (dialog->pv));
- gchar *labeltext =
- recode_string (UTF8,
- psppire_dict_encoding (var_store->dict),
- val_lab_get_label (vl), -1);
-
gchar *const text = g_strdup_printf ("%s = \"%s\"",
- vstr, labeltext);
+ vstr, val_lab_get_label (vl));
gtk_list_store_append (list_store, &iter);
gtk_list_store_set (list_store, &iter,
1, vl->value.f,
-1);
- g_free (labeltext);
g_free (text);
g_free (vstr);
}
#include <gtk/gtk.h>
#include <data/variable.h>
-#include <gtk-contrib/psppire-sheet.h>
-
+//#include <gtk-contrib/psppire-sheet.h>
+#include "psppire-var-store.h"
struct val_labs;
-struct val_labs_dialog * val_labs_dialog_create (GtkWindow *, PsppireSheet *);
+struct val_labs_dialog * val_labs_dialog_create (GtkWindow *, PsppireVarStore *);
void val_labs_dialog_show (struct val_labs_dialog *);
gint i;
for (i = 0 ; i < n; ++i )
{
- mv[i] = value_to_text (*mv_get_value (miss, i), *fmt);
+ mv[i] = value_to_text (*mv_get_value (miss, i), dict, *fmt);
if ( i > 0 )
g_string_append (gstr, ", ");
g_string_append (gstr, mv[i]);
g_free (mv[i]);
}
- s = recode_string (UTF8, psppire_dict_encoding (dict),
- gstr->str, gstr->len);
- g_string_free (gstr, TRUE);
+ s = gstr->str;
+ g_string_free (gstr, FALSE);
}
else
{
union value low, high;
mv_get_range (miss, &low.f, &high.f);
- l = value_to_text (low, *fmt);
- h = value_to_text (high, *fmt);
+ l = value_to_text (low, dict, *fmt);
+ h = value_to_text (high, dict,*fmt);
g_string_printf (gstr, "%s - %s", l, h);
g_free (l);
{
gchar *ss = 0;
- ss = value_to_text (*mv_get_value (miss, 0), *fmt);
+ ss = value_to_text (*mv_get_value (miss, 0), dict, *fmt);
g_string_append (gstr, ", ");
g_string_append (gstr, ss);
free (ss);
}
- s = recode_string (UTF8, psppire_dict_encoding (dict),
- gstr->str, gstr->len);
- g_string_free (gstr, TRUE);
+ s = gstr->str;
+ g_string_free (gstr, FALSE);
}
return s;
union value v;
v.f = 1234.56;
- sample_text = value_to_text (v, dialog->fmt_l);
+ sample_text = value_to_text (v, NULL, dialog->fmt_l);
gtk_label_set_text (GTK_LABEL (dialog->label_psample), sample_text);
g_free (sample_text);
v.f = -v.f;
- sample_text = value_to_text (v, dialog->fmt_l);
+ sample_text = value_to_text (v, NULL, dialog->fmt_l);
gtk_label_set_text (GTK_LABEL (dialog->label_nsample), sample_text);
g_free (sample_text);
}
static const gchar none[] = N_("None");
-static gchar *
-name_to_string (const struct variable *var, PsppireDict *dict)
-{
- const char *name = var_get_name (var);
- g_assert (name);
-
- return recode_string (UTF8, psppire_dict_encoding (dict),
- name, -1);
-}
-
-
-static gchar *
-label_to_string (const struct variable *var, PsppireDict *dict)
+static const gchar *
+label_to_string (const struct variable *var)
{
const char *label = var_get_label (var);
- if (! label) return g_strdup (none);
+ if (NULL == label) return g_strdup (none);
- return recode_string (UTF8, psppire_dict_encoding (dict),
- label, -1);
+ return label;
}
NULL);
gstring = g_string_sized_new (200);
- text = name_to_string (var, dict);
- g_string_assign (gstring, text);
- g_free (text);
+ g_string_assign (gstring, var_get_name (var));
g_string_append (gstring, "\n");
- text = label_to_string (var, dict);
- g_string_append_printf (gstring, _("Label: %s\n"), text);
- g_free (text);
-
+ g_string_append_printf (gstring, _("Label: %s\n"), label_to_string (var));
{
const struct fmt_spec *fmt = var_get_print_format (var);
char buffer[FMT_STRING_LEN_MAX + 1];
{
const struct val_lab *vl = labels[i];
gchar *const vstr =
- value_to_text (vl->value, *var_get_print_format (var));
-
- text = recode_string (UTF8, psppire_dict_encoding (dict),
- val_lab_get_label (vl), -1);
+ value_to_text (vl->value, dict, *var_get_print_format (var));
- g_string_append_printf (gstring, _("%s %s\n"), vstr, text);
+ g_string_append_printf (gstring, _("%s %s\n"), vstr, val_lab_get_label (vl));
- g_free (text);
g_free (vstr);
}
free (labels);
& (FMT_CAT_DATE | FMT_CAT_TIME | FMT_CAT_DATE_COMPONENT)))
{
union value v_in, v_out;
- char buffer[FMT_MAX_NUMERIC_WIDTH];
+ char *s;
bool ok;
v_in.f = number;
- data_out (&v_in, format, buffer);
+ s = data_out (&v_in, "FIXME", format);
msg_disable ();
- ok = data_in (ss_buffer (buffer, format->w), LEGACY_NATIVE,
- format->type, false, 0, 0, &v_out, 0);
+ /* FIXME: UTF8 encoded strings will fail here */
+ ok = data_in (ss_cstr (s), LEGACY_NATIVE,
+ format->type, false, 0, 0, NULL, &v_out, 0);
msg_enable ();
if (ok && v_out.f == number)
{
- syntax_gen_string (output, ss_buffer (buffer, format->w));
+ syntax_gen_string (output, ss_cstr (s));
+ free (s);
return;
}
+ free (s);
}
if (number == SYSMIS)
#!/bin/sh
-# This program tests that pspp can read gnumeric files
+# This program tests that pspp can read Gnumeric files
TEMPDIR=/tmp/pspp-tst-$$
TESTFILE=$TEMPDIR/`basename $0`.sps
#============================#==#=========#============#
1.2 NPAR TESTS. Test Statistics
-#=====================#==============#
-# #second - first#
-#=====================#==============#
-#Z # -.18#
-#Asymp. Sig (2-tailed)# .86#
-#Exact Sig (2-tailed) # .89#
-#Exact Sig (1-tailed) # .45#
-#=====================#==============#
+#======================#==============#
+# #second - first#
+#======================#==============#
+#Z # -.18#
+#Asymp. Sig. (2-tailed)# .86#
+#Exact Sig. (2-tailed) # .89#
+#Exact Sig. (1-tailed) # .45#
+#======================#==============#
EOF
if [ $? -ne 0 ] ; then no_result ; fi
#include <ctype.h>
#include <stdlib.h>
+#include <stdint.h>
#include <string.h>
#include <data/casereader-provider.h>
else
{
unsigned int hash = hash_int (idx, 0);
- char *string = value_str_rw (value, width);
+ uint8_t *string = value_str_rw (value, width);
int offset;
assert (width < 32);
printf ("\tsysmis: %g\n", sysmis);
if (sysmis != SYSMIS)
- sys_warn (r, _("File specifies unexpected value %g as SYSMIS."), sysmis);
+ sys_warn (r, _("File specifies unexpected value %g as %s."),
+ sysmis, "SYSMIS");
+
printf ("\thighest: %g\n", highest);
if (highest != HIGHEST)
- sys_warn (r, _("File specifies unexpected value %g as HIGHEST."), highest);
+ sys_warn (r, _("File specifies unexpected value %g as %s."),
+ highest, "HIGHEST");
+
printf ("\tlowest: %g\n", lowest);
if (lowest != LOWEST)
- sys_warn (r, _("File specifies unexpected value %g as LOWEST."), lowest);
+ sys_warn (r, _("File specifies unexpected value %g as %s."),
+ lowest, "LOWEST");
}
/* Read record type 7, subtype 11. */