projects
/
pspp-builds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix crash on text import dialog
[pspp-builds.git]
/
perl-module
/
PSPP.xs
diff --git
a/perl-module/PSPP.xs
b/perl-module/PSPP.xs
index e80b3cf22baf01ecd6c63cab928f7230a317a611..b3ac4cdc31e84670194ede7d254315ab48deea23 100644
(file)
--- a/
perl-module/PSPP.xs
+++ b/
perl-module/PSPP.xs
@@
-38,9
+38,11
@@
#include <data/sys-file-writer.h>
#include <data/sys-file-reader.h>
#include <data/value.h>
#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/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 ;
#include <string.h>
typedef struct fmt_spec input_format ;
@@
-163,6
+165,7
@@
onBoot (ver)
const char *ver
CODE:
assert (0 == strcmp (ver, bare_version));
const char *ver
CODE:
assert (0 == strcmp (ver, bare_version));
+ i18n_init ();
msg_init (NULL, message_handler);
settings_init (0, 0);
fh_init ();
msg_init (NULL, message_handler);
settings_init (0, 0);
fh_init ();
@@
-174,10
+177,11
@@
format_value (val, var)
CODE:
SV *ret;
const struct fmt_spec *fmt = var_get_print_format (var);
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);
union value uv;
char *s;
make_value_from_scalar (&uv, val, var);
- s = data_out (&uv, fmt);
+ s = data_out (&uv,
dict_get_encoding (dict),
fmt);
value_destroy (&uv, var_get_width (var));
ret = newSVpv (s, fmt->w);
free (s);
value_destroy (&uv, var_get_width (var));
ret = newSVpv (s, fmt->w);
free (s);
@@
-610,6
+614,7
@@
CODE:
{
struct substring ss = ss_cstr (SvPV_nolen (sv));
if ( ! data_in (ss, LEGACY_NATIVE, ifmt->type, 0, 0, 0,
{
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)) )
{
case_data_rw (c, v),
var_get_width (v)) )
{