Package: libstdc++5-dev
Version: 1:3.2.2-0pre8
Severity: normal

The following program used to display the whole range of French
characters when LC_CTYPE was properly set.  Now, it merely dumps ASCII
characters.

--------------------------------------------------
#include <ios>
#include <iostream>
#include <string>
#include <cctype>
#include <locale>

struct escape
{
  escape (const std::string& s_,
          bool print_delim_ = false)
    : s (s_), print_delim (print_delim_)
  {}

  const std::string& s;
  bool print_delim;
};

std::ostream& operator<<(std::ostream& o, const escape& e)
{
  static std::locale locale ("");
  std::ios_base::fmtflags flags = o.flags (std::ios_base::hex);
  if (e.print_delim)
    o << '\"';
  for (std::string::const_iterator p = e.s.begin (); p != e.s.end (); ++p)
    {
      if (std::isprint (*p, locale))
        o << *p;
      else
        switch (*p)
          {
          case '\a': o << "\\a"; break;
          case '\b': o << "\\b"; break;
          case '\f': o << "\\f"; break;
          case '\n': o << "\\n"; break;
          case '\r': o << "\\r"; break;
          case '\t': o << "\\t"; break;
          case '\v': o << "\\v"; break;
          default:
            o << "\\x" << (int) (unsigned char) *p;
          }
    }
  if (e.print_delim)
    o << '\"';
  o.flags (flags);
  return o;
}

int
main ()
{
  std::string s;
  for (unsigned int i = 0; i < 256; ++i)
    s.append (1, i);
  std::cout << escape (s, true) << std::endl;
}
--------------------------------------------------

It is worth noting that if I compare the strace on a machine before
pre8 (it was pre3 I think), I can see that:

--- sand        2003-02-05 17:40:14.000000000 +0100
+++ nos 2003-02-05 17:40:38.000000000 +0100
@@ -1,47 +1,46 @@
-execve("./escape", ["./escape"], [/* 29 vars */]) = 0
-uname({sys="Linux", node="sandrock", ...}) = 0
+execve("./escape", ["./escape"], [/* 54 vars */]) = 0
+uname({sys="Linux", node="nostromo", ...}) = 0
 brk(0)                                  = 0x8049354
 access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
 open("/etc/ld.so.preload", O_RDONLY)    = -1 ENOENT (No such file or directory)
 open("/etc/ld.so.cache", O_RDONLY)      = 3
-fstat64(3, {st_mode=S_IFREG|0644, st_size=56231, ...}) = 0
-old_mmap(NULL, 56231, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40012000
+fstat64(3, {st_mode=S_IFREG|0644, st_size=66240, ...}) = 0
+old_mmap(NULL, 66240, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40012000
 close(3)                                = 0
 open("/usr/lib/libstdc++.so.5", O_RDONLY) = 3
-read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\230\252"..., 1024) = 
1024
-fstat64(3, {st_mode=S_IFREG|0644, st_size=668760, ...}) = 0
-old_mmap(NULL, 692032, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40020000
-mprotect(0x400ad000, 114496, PROT_NONE) = 0
-old_mmap(0x400ad000, 94208, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 
0x8c000) = 0x400ad000
-old_mmap(0x400c4000, 20288, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x400c4000
+read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\364\245"..., 1024) = 
1024
+fstat64(3, {st_mode=S_IFREG|0644, st_size=664824, ...}) = 0
+old_mmap(NULL, 683968, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40023000
+mprotect(0x400af000, 110528, PROT_NONE) = 0
+old_mmap(0x400af000, 94208, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 
0x8c000) = 0x400af000
+old_mmap(0x400c6000, 16320, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x400c6000
 close(3)                                = 0
 open("/lib/libm.so.6", O_RDONLY)        = 3
 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\2605\0"..., 1024) = 
1024
 fstat64(3, {st_mode=S_IFREG|0644, st_size=130964, ...}) = 0
-old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x400c9000
-old_mmap(NULL, 133536, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x400ca000
-mprotect(0x400ea000, 2464, PROT_NONE)   = 0
-old_mmap(0x400ea000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 
0x1f000) = 0x400ea000
+old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x400ca000
+old_mmap(NULL, 133536, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x400cb000
+mprotect(0x400eb000, 2464, PROT_NONE)   = 0
+old_mmap(0x400eb000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 
0x1f000) = 0x400eb000
 close(3)                                = 0
 open("/lib/libgcc_s.so.1", O_RDONLY)    = 3
 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\20\23\0"..., 1024) = 
1024
 fstat64(3, {st_mode=S_IFREG|0644, st_size=29632, ...}) = 0
-old_mmap(NULL, 32616, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x400eb000
-mprotect(0x400f2000, 3944, PROT_NONE)   = 0
-old_mmap(0x400f2000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 
0x6000) = 0x400f2000
+old_mmap(NULL, 32616, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x400ec000
+mprotect(0x400f3000, 3944, PROT_NONE)   = 0
+old_mmap(0x400f3000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 
0x6000) = 0x400f3000
 close(3)                                = 0
 open("/lib/libc.so.6", O_RDONLY)        = 3
 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0]Z\1\000"..., 1024) = 
1024
 fstat64(3, {st_mode=S_IFREG|0755, st_size=1102984, ...}) = 0
-old_mmap(NULL, 1112740, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x400f3000
-mprotect(0x401fb000, 31396, PROT_NONE)  = 0
-old_mmap(0x401fb000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 
0x107000) = 0x401fb000
-old_mmap(0x40201000, 6820, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40201000
+old_mmap(NULL, 1112740, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x400f4000
+mprotect(0x401fc000, 31396, PROT_NONE)  = 0
+old_mmap(0x401fc000, 24576, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 
0x107000) = 0x401fc000
+old_mmap(0x40202000, 6820, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40202000
 close(3)                                = 0
-munmap(0x40012000, 56231)               = 0
+munmap(0x40012000, 66240)               = 0
 brk(0)                                  = 0x8049354
 brk(0x804a354)                          = 0x804a354
-brk(0)                                  = 0x804a354
 brk(0x804b000)                          = 0x804b000
 brk(0)                                  = 0x804b000
 brk(0x804c000)                          = 0x804c000
@@ -49,152 +48,9 @@
 brk(0x804d000)                          = 0x804d000
 brk(0)                                  = 0x804d000
 brk(0x804f000)                          = 0x804f000
-open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = 3
-fstat64(3, {st_mode=S_IFREG|0644, st_size=290576, ...}) = 0
-mmap2(NULL, 290576, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40203000
-close(3)                                = 0
-open("/usr/share/locale/locale.alias", O_RDONLY) = 3
-fstat64(3, {st_mode=S_IFREG|0644, st_size=2597, ...}) = 0
+fstat64(1, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0
 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x40012000
-read(3, "# Locale name alias data base.\n#"..., 4096) = 2597
-brk(0)                                  = 0x804f000
-brk(0x8050000)                          = 0x8050000
-read(3, "", 4096)                       = 0
-close(3)                                = 0
+write(1, "\"\\x0\\x1\\x2\\x3\\x4\\x5\\x6\\a\\b\\t\\n\\v"..., 
719"\x0\x1\x2\x3\x4\x5\x6\a\b\t\n\v\f\r\xe\xf\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f
 !"#$%&'()*+,-./0123456789:;<=>[EMAIL 
PROTECTED]|}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff"
+) = 719
 munmap(0x40012000, 4096)                = 0
-open("/usr/lib/locale/fr_FR/LC_CTYPE", O_RDONLY) = 3
-fstat64(3, {st_mode=S_IFREG|0644, st_size=201632, ...}) = 0
-old_mmap(NULL, 201632, PROT_READ, MAP_PRIVATE, 3, 0) = 0x4024a000
-close(3)                                = 0
-open("/usr/lib/locale/fr_FR/LC_NUMERIC", O_RDONLY) = 3
-fstat64(3, {st_mode=S_IFREG|0644, st_size=59, ...}) = 0
-old_mmap(NULL, 59, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40012000
-close(3)                                = 0
-open("/usr/lib/locale/fr_FR/LC_TIME", O_RDONLY) = 3
-fstat64(3, {st_mode=S_IFREG|0644, st_size=2352, ...}) = 0
-old_mmap(NULL, 2352, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40013000
-close(3)                                = 0
-open("/usr/lib/locale/fr_FR/LC_COLLATE", O_RDONLY) = 3
-fstat64(3, {st_mode=S_IFREG|0644, st_size=21499, ...}) = 0
-old_mmap(NULL, 21499, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40014000
-close(3)                                = 0
-open("/usr/lib/locale/fr_FR/LC_MONETARY", O_RDONLY) = 3
-fstat64(3, {st_mode=S_IFREG|0644, st_size=299, ...}) = 0
-old_mmap(NULL, 299, PROT_READ, MAP_PRIVATE, 3, 0) = 0x4001a000
-close(3)                                = 0
-open("/usr/lib/locale/fr_FR/LC_MESSAGES", O_RDONLY) = 3
-fstat64(3, {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
-close(3)                                = 0
-open("/usr/lib/locale/fr_FR/LC_MESSAGES/SYS_LC_MESSAGES", O_RDONLY) = 3
-fstat64(3, {st_mode=S_IFREG|0644, st_size=59, ...}) = 0
-old_mmap(NULL, 59, PROT_READ, MAP_PRIVATE, 3, 0) = 0x4001b000
-close(3)                                = 0
-open("/usr/lib/locale/fr_FR/LC_PAPER", O_RDONLY) = 3
-fstat64(3, {st_mode=S_IFREG|0644, st_size=39, ...}) = 0
-old_mmap(NULL, 39, PROT_READ, MAP_PRIVATE, 3, 0) = 0x4001c000
-close(3)                                = 0
-open("/usr/lib/locale/fr_FR/LC_NAME", O_RDONLY) = 3
-fstat64(3, {st_mode=S_IFREG|0644, st_size=67, ...}) = 0
-old_mmap(NULL, 67, PROT_READ, MAP_PRIVATE, 3, 0) = 0x4001d000
-close(3)                                = 0
-open("/usr/lib/locale/fr_FR/LC_ADDRESS", O_RDONLY) = 3
-fstat64(3, {st_mode=S_IFREG|0644, st_size=132, ...}) = 0
-old_mmap(NULL, 132, PROT_READ, MAP_PRIVATE, 3, 0) = 0x4001e000
-close(3)                                = 0
-open("/usr/lib/locale/fr_FR/LC_TELEPHONE", O_RDONLY) = 3
-fstat64(3, {st_mode=S_IFREG|0644, st_size=59, ...}) = 0
-old_mmap(NULL, 59, PROT_READ, MAP_PRIVATE, 3, 0) = 0x4001f000
-close(3)                                = 0
-open("/usr/lib/locale/fr_FR/LC_MEASUREMENT", O_RDONLY) = 3
-fstat64(3, {st_mode=S_IFREG|0644, st_size=28, ...}) = 0
-old_mmap(NULL, 28, PROT_READ, MAP_PRIVATE, 3, 0) = 0x4027c000
-close(3)                                = 0
-open("/usr/lib/locale/fr_FR/LC_IDENTIFICATION", O_RDONLY) = 3
-fstat64(3, {st_mode=S_IFREG|0644, st_size=351, ...}) = 0
-old_mmap(NULL, 351, PROT_READ, MAP_PRIVATE, 3, 0) = 0x4027d000
-close(3)                                = 0
-brk(0)                                  = 0x8050000
-brk(0x8051000)                          = 0x8051000
-open("/usr/lib/gconv/gconv-modules.cache", O_RDONLY) = -1 ENOENT (No such file 
or directory)
-open("/usr/lib/gconv/gconv-modules", O_RDONLY) = 3
-fstat64(3, {st_mode=S_IFREG|0644, st_size=44467, ...}) = 0
-old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x4027e000
-read(3, "# GNU libc iconv configuration.\n"..., 4096) = 4096
-brk(0)                                  = 0x8051000
-brk(0x8052000)                          = 0x8052000
-read(3, "2//\nalias\tJS//\t\t\tJUS_I.B1.002//\n"..., 4096) = 4096
-brk(0)                                  = 0x8052000
-brk(0x8053000)                          = 0x8053000
-brk(0)                                  = 0x8053000
-brk(0x8054000)                          = 0x8054000
-read(3, "1\nmodule\tINTERNAL\t\tISO-8859-3//\t"..., 4096) = 4096
-brk(0)                                  = 0x8054000
-brk(0x8055000)                          = 0x8055000
-brk(0)                                  = 0x8055000
-brk(0x8056000)                          = 0x8056000
-read(3, "\nalias\tLATIN8//\t\tISO-8859-14//\na"..., 4096) = 4096
-brk(0)                                  = 0x8056000
-brk(0x8057000)                          = 0x8057000
-brk(0)                                  = 0x8057000
-brk(0x8058000)                          = 0x8058000
-read(3, "as\tCSEBCDICESS//\t\tEBCDIC-ES-S//\n"..., 4096) = 4096
-brk(0)                                  = 0x8058000
-brk(0x8059000)                          = 0x8059000
-brk(0)                                  = 0x8059000
-brk(0x805a000)                          = 0x805a000
-read(3, "NAL\t\tIBM285\t\t1\nmodule\tINTERNAL\t\t"..., 4096) = 4096
-brk(0)                                  = 0x805a000
-brk(0x805b000)                          = 0x805b000
-brk(0)                                  = 0x805b000
-brk(0x805c000)                          = 0x805c000
-read(3, "ias\tCP866//\t\t\tIBM866//\nalias\t866"..., 4096) = 4096
-brk(0)                                  = 0x805c000
-brk(0x805d000)                          = 0x805d000
-read(3, "1004\t\t1\nmodule\tINTERNAL\t\tIBM1004"..., 4096) = 4096
-brk(0)                                  = 0x805d000
-brk(0x805e000)                          = 0x805e000
-brk(0)                                  = 0x805e000
-brk(0x805f000)                          = 0x805f000
-read(3, "//\t\tEUC-TW\t\t1\n\n#\tfrom\t\t\tto\t\t\tmod"..., 4096) = 4096
-brk(0)                                  = 0x805f000
-brk(0x8060000)                          = 0x8060000
-brk(0)                                  = 0x8060000
-brk(0x8061000)                          = 0x8061000
-read(3, "03//\t\tINTERNAL\t\tCSN_369103\t1\nmod"..., 4096) = 4096
-brk(0)                                  = 0x8061000
-brk(0x8062000)                          = 0x8062000
-brk(0)                                  = 0x8062000
-brk(0x8063000)                          = 0x8063000
-read(3, "SO-IR-8-1//\t\tNATS-SEFI//\nalias\tC"..., 4096) = 3507
-brk(0)                                  = 0x8063000
-brk(0x8064000)                          = 0x8064000
-read(3, "", 4096)                       = 0
-close(3)                                = 0
-munmap(0x4027e000, 4096)                = 0
-brk(0)                                  = 0x8064000
-brk(0x8065000)                          = 0x8065000
-open("/usr/lib/gconv/ISO8859-1.so", O_RDONLY) = 3
-read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\4\7\0\000"..., 1024) 
= 1024
-fstat64(3, {st_mode=S_IFREG|0644, st_size=5944, ...}) = 0
-old_mmap(NULL, 8672, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4027e000
-mprotect(0x40280000, 480, PROT_NONE)    = 0
-old_mmap(0x40280000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 
0x1000) = 0x40280000
-close(3)                                = 0
-fstat64(1, {st_mode=S_IFIFO|0600, st_size=0, ...}) = 0
-old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x40281000
-munmap(0x4024a000, 201632)              = 0
-munmap(0x40012000, 59)                  = 0
-munmap(0x40013000, 2352)                = 0
-munmap(0x40014000, 21499)               = 0
-munmap(0x4001a000, 299)                 = 0
-munmap(0x4001b000, 59)                  = 0
-munmap(0x4001c000, 39)                  = 0
-munmap(0x4001d000, 67)                  = 0
-munmap(0x4001e000, 132)                 = 0
-munmap(0x4001f000, 59)                  = 0
-munmap(0x4027c000, 28)                  = 0
-munmap(0x4027d000, 351)                 = 0
-write(1, "\"\\x0\\x1\\x2\\x3\\x4\\x5\\x6\\a\\b\\t\\n\\v"..., 
431"\x0\x1\x2\x3\x4\x5\x6\a\b\t\n\v\f\r\xe\xf\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f
 !"#$%&'()*+,-./0123456789:;<=>[EMAIL 
PROTECTED]|}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"
-) = 431
-munmap(0x40281000, 4096)                = 0
 exit_group(0)                           = ?

Pay special attention to the fact that the line

-open("/usr/lib/locale/locale-archive", O_RDONLY|O_LARGEFILE) = 3

is missing.

-- System Information
Debian Release: testing/unstable
Kernel Version: Linux nostromo 2.4.20 #2 Tue Dec 10 14:15:31 CET 2002 i686 
unknown unknown GNU/Linux

Versions of the packages libstdc++5-dev depends on:
ii  g++-3.2        3.2.2-0pre8    The GNU C++ compiler
ii  gcc-3.2-base   3.2.2-0pre8    The GNU Compiler Collection (base package)
ii  libc6-dev      2.3.1-10       GNU C Library: Development Libraries and Hea
ii  libstdc++5     3.2.2-0pre8    The GNU Standard C++ Library v3


Reply via email to