bug-glibc
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: another documentation bug.


From: C. Scott Ananian
Subject: Re: another documentation bug.
Date: Wed, 5 Sep 2001 12:22:09 -0400 (EDT)

There seems to be a bug in _nl_parse_alt_digit (locale/lc-time.c) in the
CVS version of glibc.  (Or possibly in _NL_CURRENT).

On my machine, for LANG='C', LANG='POSIX', and
LANG='en_US', the _NL_CURRENT(LC_TIME, ALT_DIGITS) call in line 272
returns:
(gdb) print ptr[0] @ 20
$26 = "\0009\0007\0005\000^[nN]\000^[yY]\000%"

The value printed by 'locale -k LC_TIME' is:
...
era_d_fmt=""
alt_digits=
era_d_t_fmt=""
...


So alt_digits[0] = ""
   alt_digits[1] = "9"
   alt_digits[2] = "7"
   alt_digits[3] = "5"
   alt_digits[4] = "^[nN]"
   alt_digits[5] = "^[yY]"
   etc.

The net result is that _nl_parse_alt_digit tries to parse '9' as the value
1, '7' as the value 2, '5' as the value 3, and so on.

[Also, what purpose is the NULL check on line 274 of _nl_parse_alt_digit
serving?]

I suspect the error is either that the alt_digits entry in the locale
files shipped with glibc are wrong, or that the interpretation of the
value is wrong.  I don't know enough about how the 'opt stringlist' format
of ALT_DIGITS is supposed to be structured.
 --s

Ft. Meade Columbia Sabana Seca plutonium corporate globalization anthrax 
Waco, Texas agent Nader Boston COBRA JUDY Cheney ammunition bomb assassinate 
              ( http://lesser-magoo.lcs.mit.edu/~cananian )
 --
 "These students are going to have to find out what law and order is
 all about."  -- Brig. General Robert Canterbury, Noon, May 4, 1970,
 minutes before his troops shot 13 unarmed Kent State students, killing 4.
 --
            [http://www.cs.cmu.edu/~dst/DeCSS/Gallery/]
#!/usr/bin/perl -w
# 526-byte qrpff, Keith Winstein and Marc Horowitz <address@hidden>
# MPEG 2 PS VOB file on stdin -> descrambled output on stdout
# arguments: title key bytes in least to most-significant order
$_='while(read+STDIN,$_,2048){$a=29;$c=142;if((@a=unx"C*",$_)[20]&48){$h=5;
$_=unxb24,join"",@b=map{xB8,unxb8,chr($_^$a[--$h+84])address@hidden;s/...$/1$&/;$d=
unxV,xb25,$_;$b=73;$e=256|(ord$b[4])<<9|ord$b[3];$d=$d>>8^($f=($t=255)&($d
>>12^$d>>4^$d^$d/8))<<17,$e=$e>>8^($t&($g=($q=$e>>14&7^$e)^$q*8^$q<<6))<<9
,$_=(map{$_%16or$t^=$c^=($m=(11,10,116,100,11,122,20,100)[$_/16%8])&110;$t
^=(72,@z=(64,72,$a^=12*($_%16-2?0:$m&17)),$b^=$_%64?12:0,@z)[$_%8]}(16..271))
[$_]^(($h>>=8)+=$f+(~$g&$t))address@hidden"C*",@a}';s/x/pack+/g;eval




reply via email to

[Prev in Thread] Current Thread [Next in Thread]