diff options
author | Nicholas Clark <nick@ccl4.org> | 2009-02-09 16:04:26 +0000 |
---|---|---|
committer | Nicholas Clark <nick@ccl4.org> | 2009-02-09 16:04:26 +0000 |
commit | 2c864a0811fbe4cad763045a119f93a241340a2f (patch) | |
tree | 444288ee161b6be094a27f8e7814aead4717f12f /ext/I18N/Langinfo | |
parent | 48e8cb2025d894f1e4dc03b4ff1e595d292761f3 (diff) | |
download | perl-2c864a0811fbe4cad763045a119f93a241340a2f.tar.gz |
Rename ext/I18N/Langinfo to ext/I18N-Langinfo
Diffstat (limited to 'ext/I18N/Langinfo')
-rw-r--r-- | ext/I18N/Langinfo/.gitignore | 1 | ||||
-rw-r--r-- | ext/I18N/Langinfo/Langinfo.pm | 215 | ||||
-rw-r--r-- | ext/I18N/Langinfo/Langinfo.xs | 35 | ||||
-rw-r--r-- | ext/I18N/Langinfo/Makefile.PL | 51 | ||||
-rw-r--r-- | ext/I18N/Langinfo/fallback/const-c.inc | 780 | ||||
-rw-r--r-- | ext/I18N/Langinfo/fallback/const-xs.inc | 88 | ||||
-rw-r--r-- | ext/I18N/Langinfo/t/Langinfo.t | 82 |
7 files changed, 0 insertions, 1252 deletions
diff --git a/ext/I18N/Langinfo/.gitignore b/ext/I18N/Langinfo/.gitignore deleted file mode 100644 index 2a06e93b55..0000000000 --- a/ext/I18N/Langinfo/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.inc diff --git a/ext/I18N/Langinfo/Langinfo.pm b/ext/I18N/Langinfo/Langinfo.pm deleted file mode 100644 index cebff73fb2..0000000000 --- a/ext/I18N/Langinfo/Langinfo.pm +++ /dev/null @@ -1,215 +0,0 @@ -package I18N::Langinfo; - -use 5.006; -use strict; -use warnings; -use Carp; - -require Exporter; -require DynaLoader; -use AutoLoader; - -our @ISA = qw(Exporter DynaLoader); - -our @EXPORT = qw(langinfo); - -our @EXPORT_OK = qw( - ABDAY_1 - ABDAY_2 - ABDAY_3 - ABDAY_4 - ABDAY_5 - ABDAY_6 - ABDAY_7 - ABMON_1 - ABMON_10 - ABMON_11 - ABMON_12 - ABMON_2 - ABMON_3 - ABMON_4 - ABMON_5 - ABMON_6 - ABMON_7 - ABMON_8 - ABMON_9 - ALT_DIGITS - AM_STR - CODESET - CRNCYSTR - DAY_1 - DAY_2 - DAY_3 - DAY_4 - DAY_5 - DAY_6 - DAY_7 - D_FMT - D_T_FMT - ERA - ERA_D_FMT - ERA_D_T_FMT - ERA_T_FMT - MON_1 - MON_10 - MON_11 - MON_12 - MON_2 - MON_3 - MON_4 - MON_5 - MON_6 - MON_7 - MON_8 - MON_9 - NOEXPR - NOSTR - PM_STR - RADIXCHAR - THOUSEP - T_FMT - T_FMT_AMPM - YESEXPR - YESSTR -); - -our $VERSION = '0.02'; - -sub AUTOLOAD { - # This AUTOLOAD is used to 'autoload' constants from the constant() - # XS function. - - my $constname; - our $AUTOLOAD; - ($constname = $AUTOLOAD) =~ s/.*:://; - croak "&I18N::Langinfo::constant not defined" if $constname eq 'constant'; - my ($error, $val) = constant($constname); - if ($error) { croak $error; } - { - no strict 'refs'; - # Fixed between 5.005_53 and 5.005_61 -#XXX if ($] >= 5.00561) { -#XXX *$AUTOLOAD = sub () { $val }; -#XXX } -#XXX else { - *$AUTOLOAD = sub { $val }; -#XXX } - } - goto &$AUTOLOAD; -} - -bootstrap I18N::Langinfo $VERSION; - -1; -__END__ - -=head1 NAME - -I18N::Langinfo - query locale information - -=head1 SYNOPSIS - - use I18N::Langinfo; - -=head1 DESCRIPTION - -The langinfo() function queries various locale information that can be -used to localize output and user interfaces. The langinfo() requires -one numeric argument that identifies the locale constant to query: -if no argument is supplied, C<$_> is used. The numeric constants -appropriate to be used as arguments are exportable from I18N::Langinfo. - -The following example will import the langinfo() function itself and -three constants to be used as arguments to langinfo(): a constant for -the abbreviated first day of the week (the numbering starts from -Sunday = 1) and two more constants for the affirmative and negative -answers for a yes/no question in the current locale. - - use I18N::Langinfo qw(langinfo ABDAY_1 YESSTR NOSTR); - - my ($abday_1, $yesstr, $nostr) = map { langinfo } qw(ABDAY_1 YESSTR NOSTR); - - print "$abday_1? [$yesstr/$nostr] "; - -In other words, in the "C" (or English) locale the above will probably -print something like: - - Sun? [yes/no] - -but under a French locale - - dim? [oui/non] - -The usually available constants are - - ABDAY_1 ABDAY_2 ABDAY_3 ABDAY_4 ABDAY_5 ABDAY_6 ABDAY_7 - ABMON_1 ABMON_2 ABMON_3 ABMON_4 ABMON_5 ABMON_6 - ABMON_7 ABMON_8 ABMON_9 ABMON_10 ABMON_11 ABMON_12 - DAY_1 DAY_2 DAY_3 DAY_4 DAY_5 DAY_6 DAY_7 - MON_1 MON_2 MON_3 MON_4 MON_5 MON_6 - MON_7 MON_8 MON_9 MON_10 MON_11 MON_12 - -for abbreviated and full length days of the week and months of the year, - - D_T_FMT D_FMT T_FMT - -for the date-time, date, and time formats used by the strftime() function -(see L<POSIX>) - - AM_STR PM_STR T_FMT_AMPM - -for the locales for which it makes sense to have ante meridiem and post -meridiem time formats, - - CODESET CRNCYSTR RADIXCHAR - -for the character code set being used (such as "ISO8859-1", "cp850", -"koi8-r", "sjis", "utf8", etc.), for the currency string, for the -radix character used between the integer and the fractional part -of decimal numbers (yes, this is redundant with POSIX::localeconv()) - - YESSTR YESEXPR NOSTR NOEXPR - -for the affirmative and negative responses and expressions, and - - ERA ERA_D_FMT ERA_D_T_FMT ERA_T_FMT - -for the Japanese Emperor eras (naturally only defined under Japanese locales). - -See your L<langinfo(3)> for more information about the available -constants. (Often this means having to look directly at the -F<langinfo.h> C header file.) - -Note that unfortunately none of the above constants are guaranteed -to be available on a particular platform. To be on the safe side -you can wrap the import in an eval like this: - - eval { - require I18N::Langinfo; - I18N::Langinfo->import(qw(langinfo CODESET)); - $codeset = langinfo(CODESET()); # note the () - }; - if (!$@) { ... failed ... } - -=head2 EXPORT - -Nothing is exported by default. - -=head1 SEE ALSO - -L<perllocale>, L<POSIX/localeconv>, L<POSIX/setlocale>, L<nl_langinfo(3)>. - -The langinfo() is just a wrapper for the C nl_langinfo() interface. - -=head1 AUTHOR - -Jarkko Hietaniemi, E<lt>jhi@hut.fiE<gt> - -=head1 COPYRIGHT AND LICENSE - -Copyright 2001 by Jarkko Hietaniemi - -This library is free software; you can redistribute it and/or modify -it under the same terms as Perl itself. - -=cut diff --git a/ext/I18N/Langinfo/Langinfo.xs b/ext/I18N/Langinfo/Langinfo.xs deleted file mode 100644 index c1da9818c1..0000000000 --- a/ext/I18N/Langinfo/Langinfo.xs +++ /dev/null @@ -1,35 +0,0 @@ -#include "EXTERN.h" -#include "perl.h" -#include "XSUB.h" - -#ifdef I_LANGINFO -# define __USE_GNU 1 /* Enables YESSTR, otherwise only __YESSTR. */ -# include <langinfo.h> -#endif - -#include "const-c.inc" - -MODULE = I18N::Langinfo PACKAGE = I18N::Langinfo - -PROTOTYPES: ENABLE - -INCLUDE: const-xs.inc - -SV* -langinfo(code) - int code - CODE: -#ifdef HAS_NL_LANGINFO - { - char *s; - - if ((s = nl_langinfo(code))) - RETVAL = newSVpvn(s, strlen(s)); - else - RETVAL = &PL_sv_undef; - } -#else - croak("nl_langinfo() not implemented on this architecture"); -#endif - OUTPUT: - RETVAL diff --git a/ext/I18N/Langinfo/Makefile.PL b/ext/I18N/Langinfo/Makefile.PL deleted file mode 100644 index b307aca2e0..0000000000 --- a/ext/I18N/Langinfo/Makefile.PL +++ /dev/null @@ -1,51 +0,0 @@ -use ExtUtils::MakeMaker; -# See lib/ExtUtils/MakeMaker.pm for details of how to influence -# the contents of the Makefile that is written. -WriteMakefile( - 'NAME' => 'I18N::Langinfo', - 'VERSION_FROM' => 'Langinfo.pm', # finds $VERSION - 'PREREQ_PM' => {}, # e.g., Module::Name => 1.1 - ($] >= 5.005 ? ## Add these new keywords supported since 5.005 - (ABSTRACT_FROM => 'Langinfo.pm', # retrieve abstract from module - AUTHOR => 'Jarkko Hietaniemi <jhi@hut.fi>') : ()), - 'LIBS' => [''], # e.g., '-lm' - 'DEFINE' => '', # e.g., '-DHAVE_SOMETHING' - # Insert -I. if you add *.h files later: - 'INC' => '', # e.g., '-I/usr/include/other' - 'MAN3PODS' => {}, # Pods will be built by installman - realclean => {FILES=> 'const-c.inc const-xs.inc'}, - # Un-comment this if you add C files to link with later: - # 'OBJECT' => '$(O_FILES)', # link all the C files too -); -if (eval {require ExtUtils::Constant; 1}) { - # Some older versions of glibc use only enums, no defines, hence all this - # hassle (so old glibc that the define is GNU_LIBRARY, not GLIBC): - my @names = 'CODESET'; # CODESET isn't an enum in old glibc's langinfo.h - push @names, # This lot are always enums in old langinfo.h: - {name=>$_, type=>"IV", - macro=>["#if defined($_) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", - "#endif\n"]} - foreach qw (ABDAY_1 ABDAY_2 ABDAY_3 ABDAY_4 ABDAY_5 ABDAY_6 ABDAY_7 - ABMON_1 ABMON_10 ABMON_11 ABMON_12 ABMON_2 ABMON_3 ABMON_4 - ABMON_5 ABMON_6 ABMON_7 ABMON_8 ABMON_9 ALT_DIGITS AM_STR - DAY_1 DAY_2 DAY_3 DAY_4 DAY_5 DAY_6 DAY_7 D_FMT D_T_FMT ERA - ERA_D_FMT ERA_D_T_FMT ERA_T_FMT MON_1 MON_10 MON_11 MON_12 - MON_2 MON_3 MON_4 MON_5 MON_6 MON_7 MON_8 MON_9 NOEXPR NOSTR - PM_STR T_FMT T_FMT_AMPM YESEXPR YESSTR); - push @names, # This lot are only enums for __SVR4_I386_ABI_L1__: - {name=>$_, type=>"IV", - macro=>["#if defined($_) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM) && defined(__SVR4_I386_ABI_L1__))\n", - "#endif\n"]} - foreach qw (CRNCYSTR THOUSEP RADIXCHAR); - ExtUtils::Constant::WriteConstants( - NAME => 'I18N::Langinfo', - NAMES => \@names, - ); -} else { - use File::Copy; - use File::Spec; - foreach my $file ('const-c.inc', 'const-xs.inc') { - my $fallback = File::Spec->catfile('fallback', $file); - copy ($fallback, $file) or die "Can't copy $fallback to $file: $!"; - } -} diff --git a/ext/I18N/Langinfo/fallback/const-c.inc b/ext/I18N/Langinfo/fallback/const-c.inc deleted file mode 100644 index ca073b7701..0000000000 --- a/ext/I18N/Langinfo/fallback/const-c.inc +++ /dev/null @@ -1,780 +0,0 @@ -#define PERL_constant_NOTFOUND 1 -#define PERL_constant_NOTDEF 2 -#define PERL_constant_ISIV 3 -#define PERL_constant_ISNO 4 -#define PERL_constant_ISNV 5 -#define PERL_constant_ISPV 6 -#define PERL_constant_ISPVN 7 -#define PERL_constant_ISSV 8 -#define PERL_constant_ISUNDEF 9 -#define PERL_constant_ISUV 10 -#define PERL_constant_ISYES 11 - -#ifndef NVTYPE -typedef double NV; /* 5.6 and later define NVTYPE, and typedef NV to it. */ -#endif -#ifndef aTHX_ -#define aTHX_ /* 5.6 or later define this for threading support. */ -#endif -#ifndef pTHX_ -#define pTHX_ /* 5.6 or later define this for threading support. */ -#endif - -static int -constant_5 (pTHX_ const char *name, IV *iv_return) { - /* When generated this function returned values for the list of names given - here. However, subsequent manual editing may have added or removed some. - DAY_1 DAY_2 DAY_3 DAY_4 DAY_5 DAY_6 DAY_7 D_FMT MON_1 MON_2 MON_3 MON_4 - MON_5 MON_6 MON_7 MON_8 MON_9 NOSTR T_FMT */ - /* Offset 4 gives the best switch position. */ - switch (name[4]) { - case '1': - if (memEQ(name, "DAY_1", 5)) { - /* ^ */ -#if defined(DAY_1) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = DAY_1; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - if (memEQ(name, "MON_1", 5)) { - /* ^ */ -#if defined(MON_1) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = MON_1; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - break; - case '2': - if (memEQ(name, "DAY_2", 5)) { - /* ^ */ -#if defined(DAY_2) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = DAY_2; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - if (memEQ(name, "MON_2", 5)) { - /* ^ */ -#if defined(MON_2) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = MON_2; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - break; - case '3': - if (memEQ(name, "DAY_3", 5)) { - /* ^ */ -#if defined(DAY_3) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = DAY_3; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - if (memEQ(name, "MON_3", 5)) { - /* ^ */ -#if defined(MON_3) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = MON_3; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - break; - case '4': - if (memEQ(name, "DAY_4", 5)) { - /* ^ */ -#if defined(DAY_4) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = DAY_4; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - if (memEQ(name, "MON_4", 5)) { - /* ^ */ -#if defined(MON_4) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = MON_4; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - break; - case '5': - if (memEQ(name, "DAY_5", 5)) { - /* ^ */ -#if defined(DAY_5) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = DAY_5; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - if (memEQ(name, "MON_5", 5)) { - /* ^ */ -#if defined(MON_5) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = MON_5; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - break; - case '6': - if (memEQ(name, "DAY_6", 5)) { - /* ^ */ -#if defined(DAY_6) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = DAY_6; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - if (memEQ(name, "MON_6", 5)) { - /* ^ */ -#if defined(MON_6) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = MON_6; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - break; - case '7': - if (memEQ(name, "DAY_7", 5)) { - /* ^ */ -#if defined(DAY_7) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = DAY_7; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - if (memEQ(name, "MON_7", 5)) { - /* ^ */ -#if defined(MON_7) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = MON_7; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - break; - case '8': - if (memEQ(name, "MON_8", 5)) { - /* ^ */ -#if defined(MON_8) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = MON_8; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - break; - case '9': - if (memEQ(name, "MON_9", 5)) { - /* ^ */ -#if defined(MON_9) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = MON_9; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - break; - case 'R': - if (memEQ(name, "NOSTR", 5)) { - /* ^ */ -#if defined(NOSTR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = NOSTR; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - break; - case 'T': - if (memEQ(name, "D_FMT", 5)) { - /* ^ */ -#if defined(D_FMT) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = D_FMT; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - if (memEQ(name, "T_FMT", 5)) { - /* ^ */ -#if defined(T_FMT) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = T_FMT; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - break; - } - return PERL_constant_NOTFOUND; -} - -static int -constant_6 (pTHX_ const char *name, IV *iv_return) { - /* When generated this function returned values for the list of names given - here. However, subsequent manual editing may have added or removed some. - AM_STR MON_10 MON_11 MON_12 NOEXPR PM_STR YESSTR */ - /* Offset 0 gives the best switch position. */ - switch (name[0]) { - case 'A': - if (memEQ(name, "AM_STR", 6)) { - /* ^ */ -#if defined(AM_STR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = AM_STR; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - break; - case 'M': - if (memEQ(name, "MON_10", 6)) { - /* ^ */ -#if defined(MON_10) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = MON_10; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - if (memEQ(name, "MON_11", 6)) { - /* ^ */ -#if defined(MON_11) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = MON_11; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - if (memEQ(name, "MON_12", 6)) { - /* ^ */ -#if defined(MON_12) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = MON_12; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - break; - case 'N': - if (memEQ(name, "NOEXPR", 6)) { - /* ^ */ -#if defined(NOEXPR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = NOEXPR; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - break; - case 'P': - if (memEQ(name, "PM_STR", 6)) { - /* ^ */ -#if defined(PM_STR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = PM_STR; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - break; - case 'Y': - if (memEQ(name, "YESSTR", 6)) { - /* ^ */ -#if defined(YESSTR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = YESSTR; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - break; - } - return PERL_constant_NOTFOUND; -} - -static int -constant_7 (pTHX_ const char *name, IV *iv_return) { - /* When generated this function returned values for the list of names given - here. However, subsequent manual editing may have added or removed some. - ABDAY_1 ABDAY_2 ABDAY_3 ABDAY_4 ABDAY_5 ABDAY_6 ABDAY_7 ABMON_1 ABMON_2 - ABMON_3 ABMON_4 ABMON_5 ABMON_6 ABMON_7 ABMON_8 ABMON_9 CODESET D_T_FMT - THOUSEP YESEXPR */ - /* Offset 6 gives the best switch position. */ - switch (name[6]) { - case '1': - if (memEQ(name, "ABDAY_1", 7)) { - /* ^ */ -#if defined(ABDAY_1) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = ABDAY_1; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - if (memEQ(name, "ABMON_1", 7)) { - /* ^ */ -#if defined(ABMON_1) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = ABMON_1; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - break; - case '2': - if (memEQ(name, "ABDAY_2", 7)) { - /* ^ */ -#if defined(ABDAY_2) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = ABDAY_2; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - if (memEQ(name, "ABMON_2", 7)) { - /* ^ */ -#if defined(ABMON_2) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = ABMON_2; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - break; - case '3': - if (memEQ(name, "ABDAY_3", 7)) { - /* ^ */ -#if defined(ABDAY_3) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = ABDAY_3; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - if (memEQ(name, "ABMON_3", 7)) { - /* ^ */ -#if defined(ABMON_3) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = ABMON_3; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - break; - case '4': - if (memEQ(name, "ABDAY_4", 7)) { - /* ^ */ -#if defined(ABDAY_4) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = ABDAY_4; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - if (memEQ(name, "ABMON_4", 7)) { - /* ^ */ -#if defined(ABMON_4) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = ABMON_4; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - break; - case '5': - if (memEQ(name, "ABDAY_5", 7)) { - /* ^ */ -#if defined(ABDAY_5) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = ABDAY_5; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - if (memEQ(name, "ABMON_5", 7)) { - /* ^ */ -#if defined(ABMON_5) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = ABMON_5; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - break; - case '6': - if (memEQ(name, "ABDAY_6", 7)) { - /* ^ */ -#if defined(ABDAY_6) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = ABDAY_6; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - if (memEQ(name, "ABMON_6", 7)) { - /* ^ */ -#if defined(ABMON_6) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = ABMON_6; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - break; - case '7': - if (memEQ(name, "ABDAY_7", 7)) { - /* ^ */ -#if defined(ABDAY_7) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = ABDAY_7; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - if (memEQ(name, "ABMON_7", 7)) { - /* ^ */ -#if defined(ABMON_7) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = ABMON_7; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - break; - case '8': - if (memEQ(name, "ABMON_8", 7)) { - /* ^ */ -#if defined(ABMON_8) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = ABMON_8; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - break; - case '9': - if (memEQ(name, "ABMON_9", 7)) { - /* ^ */ -#if defined(ABMON_9) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = ABMON_9; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - break; - case 'P': - if (memEQ(name, "THOUSEP", 7)) { - /* ^ */ -#if defined(THOUSEP) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM) && defined(__SVR4_I386_ABI_L1__)) - *iv_return = THOUSEP; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - break; - case 'R': - if (memEQ(name, "YESEXPR", 7)) { - /* ^ */ -#if defined(YESEXPR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = YESEXPR; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - break; - case 'T': - if (memEQ(name, "CODESET", 7)) { - /* ^ */ -#ifdef CODESET - *iv_return = CODESET; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - if (memEQ(name, "D_T_FMT", 7)) { - /* ^ */ -#if defined(D_T_FMT) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = D_T_FMT; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - break; - } - return PERL_constant_NOTFOUND; -} - -static int -constant_8 (pTHX_ const char *name, IV *iv_return) { - /* When generated this function returned values for the list of names given - here. However, subsequent manual editing may have added or removed some. - ABMON_10 ABMON_11 ABMON_12 CRNCYSTR */ - /* Offset 7 gives the best switch position. */ - switch (name[7]) { - case '0': - if (memEQ(name, "ABMON_10", 8)) { - /* ^ */ -#if defined(ABMON_10) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = ABMON_10; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - break; - case '1': - if (memEQ(name, "ABMON_11", 8)) { - /* ^ */ -#if defined(ABMON_11) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = ABMON_11; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - break; - case '2': - if (memEQ(name, "ABMON_12", 8)) { - /* ^ */ -#if defined(ABMON_12) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = ABMON_12; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - break; - case 'R': - if (memEQ(name, "CRNCYSTR", 8)) { - /* ^ */ -#if defined(CRNCYSTR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM) && defined(__SVR4_I386_ABI_L1__)) - *iv_return = CRNCYSTR; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - break; - } - return PERL_constant_NOTFOUND; -} - -static int -constant_9 (pTHX_ const char *name, IV *iv_return) { - /* When generated this function returned values for the list of names given - here. However, subsequent manual editing may have added or removed some. - ERA_D_FMT ERA_T_FMT RADIXCHAR */ - /* Offset 4 gives the best switch position. */ - switch (name[4]) { - case 'D': - if (memEQ(name, "ERA_D_FMT", 9)) { - /* ^ */ -#if defined(ERA_D_FMT) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = ERA_D_FMT; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - break; - case 'T': - if (memEQ(name, "ERA_T_FMT", 9)) { - /* ^ */ -#if defined(ERA_T_FMT) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = ERA_T_FMT; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - break; - case 'X': - if (memEQ(name, "RADIXCHAR", 9)) { - /* ^ */ -#if defined(RADIXCHAR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM) && defined(__SVR4_I386_ABI_L1__)) - *iv_return = RADIXCHAR; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - break; - } - return PERL_constant_NOTFOUND; -} - -static int -constant (pTHX_ const char *name, STRLEN len, IV *iv_return) { - /* Initially switch on the length of the name. */ - /* When generated this function returned values for the list of names given - in this section of perl code. Rather than manually editing these functions - to add or remove constants, which would result in this comment and section - of code becoming inaccurate, we recommend that you edit this section of - code, and use it to regenerate a new set of constant functions which you - then use to replace the originals. - - Regenerate these constant functions by feeding this entire source file to - perl -x - -#!/mnt/six/blead/15141/miniperl -w -use ExtUtils::Constant qw (constant_types C_constant XS_constant); - -my $types = {map {($_, 1)} qw(IV)}; -my @names = (qw(CODESET), - {name=>"ABDAY_1", type=>"IV", macro=>["#if defined(ABDAY_1) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"ABDAY_2", type=>"IV", macro=>["#if defined(ABDAY_2) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"ABDAY_3", type=>"IV", macro=>["#if defined(ABDAY_3) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"ABDAY_4", type=>"IV", macro=>["#if defined(ABDAY_4) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"ABDAY_5", type=>"IV", macro=>["#if defined(ABDAY_5) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"ABDAY_6", type=>"IV", macro=>["#if defined(ABDAY_6) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"ABDAY_7", type=>"IV", macro=>["#if defined(ABDAY_7) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"ABMON_1", type=>"IV", macro=>["#if defined(ABMON_1) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"ABMON_10", type=>"IV", macro=>["#if defined(ABMON_10) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"ABMON_11", type=>"IV", macro=>["#if defined(ABMON_11) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"ABMON_12", type=>"IV", macro=>["#if defined(ABMON_12) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"ABMON_2", type=>"IV", macro=>["#if defined(ABMON_2) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"ABMON_3", type=>"IV", macro=>["#if defined(ABMON_3) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"ABMON_4", type=>"IV", macro=>["#if defined(ABMON_4) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"ABMON_5", type=>"IV", macro=>["#if defined(ABMON_5) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"ABMON_6", type=>"IV", macro=>["#if defined(ABMON_6) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"ABMON_7", type=>"IV", macro=>["#if defined(ABMON_7) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"ABMON_8", type=>"IV", macro=>["#if defined(ABMON_8) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"ABMON_9", type=>"IV", macro=>["#if defined(ABMON_9) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"ALT_DIGITS", type=>"IV", macro=>["#if defined(ALT_DIGITS) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"AM_STR", type=>"IV", macro=>["#if defined(AM_STR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"CRNCYSTR", type=>"IV", macro=>["#if defined(CRNCYSTR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM) && defined(__SVR4_I386_ABI_L1__))\n", "#endif\n"]}, - {name=>"DAY_1", type=>"IV", macro=>["#if defined(DAY_1) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"DAY_2", type=>"IV", macro=>["#if defined(DAY_2) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"DAY_3", type=>"IV", macro=>["#if defined(DAY_3) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"DAY_4", type=>"IV", macro=>["#if defined(DAY_4) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"DAY_5", type=>"IV", macro=>["#if defined(DAY_5) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"DAY_6", type=>"IV", macro=>["#if defined(DAY_6) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"DAY_7", type=>"IV", macro=>["#if defined(DAY_7) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"D_FMT", type=>"IV", macro=>["#if defined(D_FMT) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"D_T_FMT", type=>"IV", macro=>["#if defined(D_T_FMT) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"ERA", type=>"IV", macro=>["#if defined(ERA) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"ERA_D_FMT", type=>"IV", macro=>["#if defined(ERA_D_FMT) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"ERA_D_T_FMT", type=>"IV", macro=>["#if defined(ERA_D_T_FMT) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"ERA_T_FMT", type=>"IV", macro=>["#if defined(ERA_T_FMT) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"MON_1", type=>"IV", macro=>["#if defined(MON_1) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"MON_10", type=>"IV", macro=>["#if defined(MON_10) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"MON_11", type=>"IV", macro=>["#if defined(MON_11) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"MON_12", type=>"IV", macro=>["#if defined(MON_12) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"MON_2", type=>"IV", macro=>["#if defined(MON_2) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"MON_3", type=>"IV", macro=>["#if defined(MON_3) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"MON_4", type=>"IV", macro=>["#if defined(MON_4) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"MON_5", type=>"IV", macro=>["#if defined(MON_5) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"MON_6", type=>"IV", macro=>["#if defined(MON_6) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"MON_7", type=>"IV", macro=>["#if defined(MON_7) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"MON_8", type=>"IV", macro=>["#if defined(MON_8) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"MON_9", type=>"IV", macro=>["#if defined(MON_9) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"NOEXPR", type=>"IV", macro=>["#if defined(NOEXPR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"NOSTR", type=>"IV", macro=>["#if defined(NOSTR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"PM_STR", type=>"IV", macro=>["#if defined(PM_STR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"RADIXCHAR", type=>"IV", macro=>["#if defined(RADIXCHAR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM) && defined(__SVR4_I386_ABI_L1__))\n", "#endif\n"]}, - {name=>"THOUSEP", type=>"IV", macro=>["#if defined(THOUSEP) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM) && defined(__SVR4_I386_ABI_L1__))\n", "#endif\n"]}, - {name=>"T_FMT", type=>"IV", macro=>["#if defined(T_FMT) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"T_FMT_AMPM", type=>"IV", macro=>["#if defined(T_FMT_AMPM) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"YESEXPR", type=>"IV", macro=>["#if defined(YESEXPR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}, - {name=>"YESSTR", type=>"IV", macro=>["#if defined(YESSTR) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM))\n", "#endif\n"]}); - -print constant_types(); # macro defs -foreach (C_constant ("I18N::Langinfo", 'constant', 'IV', $types, undef, 3, @names) ) { - print $_, "\n"; # C constant subs -} -print "#### XS Section:\n"; -print XS_constant ("I18N::Langinfo", $types); -__END__ - */ - - switch (len) { - case 3: - if (memEQ(name, "ERA", 3)) { -#if defined(ERA) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = ERA; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - break; - case 5: - return constant_5 (aTHX_ name, iv_return); - break; - case 6: - return constant_6 (aTHX_ name, iv_return); - break; - case 7: - return constant_7 (aTHX_ name, iv_return); - break; - case 8: - return constant_8 (aTHX_ name, iv_return); - break; - case 9: - return constant_9 (aTHX_ name, iv_return); - break; - case 10: - /* Names all of length 10. */ - /* ALT_DIGITS T_FMT_AMPM */ - /* Offset 7 gives the best switch position. */ - switch (name[7]) { - case 'I': - if (memEQ(name, "ALT_DIGITS", 10)) { - /* ^ */ -#if defined(ALT_DIGITS) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = ALT_DIGITS; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - break; - case 'M': - if (memEQ(name, "T_FMT_AMPM", 10)) { - /* ^ */ -#if defined(T_FMT_AMPM) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = T_FMT_AMPM; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - break; - } - break; - case 11: - if (memEQ(name, "ERA_D_T_FMT", 11)) { -#if defined(ERA_D_T_FMT) || (defined(__GNU_LIBRARY__) && defined(_NL_ITEM)) - *iv_return = ERA_D_T_FMT; - return PERL_constant_ISIV; -#else - return PERL_constant_NOTDEF; -#endif - } - break; - } - return PERL_constant_NOTFOUND; -} - diff --git a/ext/I18N/Langinfo/fallback/const-xs.inc b/ext/I18N/Langinfo/fallback/const-xs.inc deleted file mode 100644 index 16ae6e803d..0000000000 --- a/ext/I18N/Langinfo/fallback/const-xs.inc +++ /dev/null @@ -1,88 +0,0 @@ -void -constant(sv) - PREINIT: -#ifdef dXSTARG - dXSTARG; /* Faster if we have it. */ -#else - dTARGET; -#endif - STRLEN len; - int type; - IV iv; - /* NV nv; Uncomment this if you need to return NVs */ - /* const char *pv; Uncomment this if you need to return PVs */ - INPUT: - SV * sv; - const char * s = SvPV(sv, len); - PPCODE: - /* Change this to constant(aTHX_ s, len, &iv, &nv); - if you need to return both NVs and IVs */ - type = constant(aTHX_ s, len, &iv); - /* Return 1 or 2 items. First is error message, or undef if no error. - Second, if present, is found value */ - switch (type) { - case PERL_constant_NOTFOUND: - sv = sv_2mortal(newSVpvf("%s is not a valid I18N::Langinfo macro", s)); - PUSHs(sv); - break; - case PERL_constant_NOTDEF: - sv = sv_2mortal(newSVpvf( - "Your vendor has not defined I18N::Langinfo macro %s, used", s)); - PUSHs(sv); - break; - case PERL_constant_ISIV: - EXTEND(SP, 1); - PUSHs(&PL_sv_undef); - PUSHi(iv); - break; - /* Uncomment this if you need to return NOs - case PERL_constant_ISNO: - EXTEND(SP, 1); - PUSHs(&PL_sv_undef); - PUSHs(&PL_sv_no); - break; */ - /* Uncomment this if you need to return NVs - case PERL_constant_ISNV: - EXTEND(SP, 1); - PUSHs(&PL_sv_undef); - PUSHn(nv); - break; */ - /* Uncomment this if you need to return PVs - case PERL_constant_ISPV: - EXTEND(SP, 1); - PUSHs(&PL_sv_undef); - PUSHp(pv, strlen(pv)); - break; */ - /* Uncomment this if you need to return PVNs - case PERL_constant_ISPVN: - EXTEND(SP, 1); - PUSHs(&PL_sv_undef); - PUSHp(pv, iv); - break; */ - /* Uncomment this if you need to return SVs - case PERL_constant_ISSV: - EXTEND(SP, 1); - PUSHs(&PL_sv_undef); - PUSHs(sv); - break; */ - /* Uncomment this if you need to return UNDEFs - case PERL_constant_ISUNDEF: - break; */ - /* Uncomment this if you need to return UVs - case PERL_constant_ISUV: - EXTEND(SP, 1); - PUSHs(&PL_sv_undef); - PUSHu((UV)iv); - break; */ - /* Uncomment this if you need to return YESs - case PERL_constant_ISYES: - EXTEND(SP, 1); - PUSHs(&PL_sv_undef); - PUSHs(&PL_sv_yes); - break; */ - default: - sv = sv_2mortal(newSVpvf( - "Unexpected return type %d while processing I18N::Langinfo macro %s, used", - type, s)); - PUSHs(sv); - } diff --git a/ext/I18N/Langinfo/t/Langinfo.t b/ext/I18N/Langinfo/t/Langinfo.t deleted file mode 100644 index 97ae5bf157..0000000000 --- a/ext/I18N/Langinfo/t/Langinfo.t +++ /dev/null @@ -1,82 +0,0 @@ -#!perl -T - -BEGIN { - if ($ENV{PERL_CORE}) { - chdir 't'; - @INC = '../lib'; - } -} - -use strict; -use Config; -use Test::More; - -plan skip_all => "I18N::Langinfo or POSIX unavailable" - if $Config{'extensions'} !~ m!\bI18N/Langinfo\b!; - -my @constants = qw(ABDAY_1 DAY_1 ABMON_1 MON_1 RADIXCHAR AM_STR THOUSEP D_T_FMT D_FMT T_FMT); - -plan tests => 1 + 3 * @constants; - -use_ok('I18N::Langinfo', 'langinfo', @constants); - -for my $constant (@constants) { - SKIP: { - my $string = eval { langinfo(eval "$constant()") }; - is( $@, '', "calling langinfo() with $constant" ); - skip "returned string was empty, skipping next two tests", 2 unless $string; - ok( defined $string, "checking if the returned string is defined" ); - cmp_ok( length($string), '>=', 1, "checking if the returned string has a positive length" ); - } -} - -exit(0); - -# Background: the langinfo() (in C known as nl_langinfo()) interface -# is supposed to be a portable way to fetch various language/country -# (locale) dependent constants like "the first day of the week" or -# "the decimal separator". Give a portable (numeric) constant, -# get back a language-specific string. That's a comforting fantasy. -# Now tune in for blunt reality: vendors seem to have implemented for -# those constants whatever they felt like implementing. The UNIX -# standard says that one should have the RADIXCHAR constant for the -# decimal separator. Not so for many Linux and BSD implementations. -# One should have the CODESET constant for returning the current -# codeset (say, ISO 8859-1). Not so. So let's give up any real -# testing (leave the old testing code here for old times' sake, -# though.) --jhi - -my %want = - ( - ABDAY_1 => "Sun", - DAY_1 => "Sunday", - ABMON_1 => "Jan", - MON_1 => "January", - RADIXCHAR => ".", - AM_STR => qr{^(?:am|a\.m\.)$}i, - THOUSEP => "", - D_T_FMT => qr{^%a %b %[de] %H:%M:%S %Y$}, - D_FMT => qr{^%m/%d/%y$}, - T_FMT => qr{^%H:%M:%S$}, - ); - - -my @want = sort keys %want; - -print "1..", scalar @want, "\n"; - -for my $i (1..@want) { - my $try = $want[$i-1]; - eval { I18N::Langinfo->import($try) }; - unless ($@) { - my $got = langinfo(&$try); - if (ref $want{$try} && $got =~ $want{$try} || $got eq $want{$try}) { - print qq[ok $i - $try is "$got"\n]; - } else { - print qq[not ok $i - $try is "$got" not "$want{$try}"\n]; - } - } else { - print qq[ok $i - Skip: $try not defined\n]; - } -} - |