X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=perl-module%2FPSPP.xs;h=834ec401f483900d5cd1cb5bfb5d3e08045e7e4a;hb=478954c1ed028744ab870f0e6a5befcc8f643758;hp=58eac5b762b58080d7ec3dbb9abf79e3ed3b50ca;hpb=9ade26c8349b4434008c46cf09bc7473ec743972;p=pspp diff --git a/perl-module/PSPP.xs b/perl-module/PSPP.xs index 58eac5b762..834ec401f4 100644 --- a/perl-module/PSPP.xs +++ b/perl-module/PSPP.xs @@ -1,5 +1,5 @@ /* PSPP - computes sample statistics. - Copyright (C) 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc. + Copyright (C) 2007, 2008, 2009, 2010, 2011, 2012 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 @@ -39,9 +39,12 @@ #include #include #include +#include #include #include #include +#include +#include #include #include #include @@ -180,7 +183,7 @@ CODE: i18n_init (); msg_set_handler (message_handler, NULL); - settings_init (0, 0); + settings_init (); fh_init (); SV * @@ -223,7 +226,7 @@ MODULE = PSPP PACKAGE = PSPP::Dict struct dictionary * pxs_dict_new() CODE: - RETVAL = dict_create (); + RETVAL = dict_create ("UTF-8"); OUTPUT: RETVAL @@ -376,7 +379,7 @@ set_label (var, label) struct variable *var; char *label CODE: - var_set_label (var, label, NULL, false); + var_set_label (var, label, false); void @@ -592,7 +595,6 @@ CODE: struct file_handle *fh = fh_create_file (NULL, name, fh_default_properties () ); struct sysfile_info *sfi = xmalloc (sizeof (*sfi)); - dict_set_encoding (dict, UTF8); sfi->writer = sfm_open_writer (fh, dict, opts); sfi->dict = dict; sfi->opened = true; @@ -707,7 +709,7 @@ CODE: fh_create_file (NULL, name, fh_default_properties () ); sri = xmalloc (sizeof (*sri)); - sri->reader = sfm_open_reader (fh, &sri->dict, &sri->opts); + sri->reader = sfm_open_reader (fh, NULL, &sri->dict, &sri->opts); if ( NULL == sri->reader) { @@ -728,6 +730,21 @@ CODE: OUTPUT: RETVAL +SV * +get_case_cnt (sfr) + struct sysreader_info *sfr; +CODE: + SV *ret; + casenumber n = casereader_get_case_cnt (sfr->reader); + if (n == CASENUMBER_MAX) + ret = &PL_sv_undef; + else + ret = newSViv (n); + RETVAL = ret; + OUTPUT: +RETVAL + + void get_next_case (sfr) @@ -735,7 +752,7 @@ get_next_case (sfr) PPCODE: struct ccase *c; - if (c = casereader_read (sfr->reader)) + if ((c = casereader_read (sfr->reader)) != NULL) { int v;