X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=perl-module%2FPSPP.xs;h=15d3b606cbecdab2aa76ae5324b347cc094e55fa;hb=refs%2Fbuilds%2F20100925040502%2Fpspp;hp=bc7961e6e7fcf717457e4afca000894bd1486625;hpb=13c66bad6d4df1f3f5223d799d4bcd6ed8b0446a;p=pspp diff --git a/perl-module/PSPP.xs b/perl-module/PSPP.xs index bc7961e6e7..15d3b606cb 100644 --- a/perl-module/PSPP.xs +++ b/perl-module/PSPP.xs @@ -1,5 +1,5 @@ /* PSPP - computes sample statistics. - Copyright (C) 2007, 2008, 2009 Free Software Foundation, Inc. + Copyright (C) 2007, 2008, 2009, 2010 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 @@ -19,6 +19,12 @@ #include +/* The Gnulib "strftime" module defines my_strftime in for use by + gl/strftime.c. Perl also defines my_strftime in embed.h for some other + purpose. The former definition doesn't matter in this file, so suppress it + to avoid a compiler warning. */ +#undef my_strftime + #include "EXTERN.h" #include "perl.h" #include "XSUB.h" @@ -648,10 +654,16 @@ CODE: if ( ifmt ) { 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)) ) + char *error; + bool ok; + + error = data_in (ss, LEGACY_NATIVE, ifmt->type, + case_data_rw (c, v), var_get_width (v), + dict_get_encoding (sfi->dict)); + ok = error == NULL; + free (error); + + if ( !ok ) { RETVAL = 0; goto finish;