Hi,

sorry I can't find my first posting about my locale
problem at HPUX but I did some small progress.

The Sourcecode(C++):
#include // for back_inserter
#include
#include
#include
#include
#include // old

struct ToUpper
{
ToUpper(std::locale const& l) : loc(l) {;}
char operator() (char c) const { return std::toupper(c,loc); }
private:
std::locale const& loc;
};

int main ()
{
std::locale loc("de_DE.iso88591");
std::string s("Some Kind Of Initial Input Goes Here with a German ''");
ToUpper up(loc);

// Change everything into upper case.
std::transform(s.begin(), s.end(), s.begin(), up);
std::cout << "s:" << s << std::endl;
}

The problem:
The German Umlaut '' is not converted to an upper ''
but to an ''.

I did a 'locale -a' how suggested from Michael Piotrowski
to see the locales available:

de_DE.iso88591
de_DE.iso885915@euro
de_DE.roman8
de_DE.utf8

I compared the result from Linux with HPUX for a single ''
as string:

HPUX:
=====

before:
hex: ffffffe4
dec: -28
after:
hex: ffffffe6
dec: -26

LINUX
=====

before:
hex: ffffffe4
dec: -28
after:
hex: ffffffc4
dec: -60

I changed my (unset) LANG environment variable to
de_DE.iso88591 with no more success for the program.

I found some files under /usr/lib/nls/loc/src

de_DE.iso88591
de_DE.iso885915@euro
de_DE.roman8
de_DE.utf8

and looked inside:

>snip


toupper (,); (,); \
(,); (,); \
(,); (,); \
(,); (,); \
(,); (,); \
(,); (,); \
(,); (,); \
(,); (

,

); \
(,); (,); \
(,); (,); \
(,); (,); \
(,); (,); \
(,); (,); \
(,); (,); \
(,); \
(,); (,); \
(,); (,); \
(,); (,); \
(,); (,); \
(,); (,); \
(,); (,); \
(,); (,); \
(,); (,); \
(,); (,); \
(,); (,); \
(,); (,); \
(,); (,); \
(,); (,); \
(,); (,); \
(,); (,); \
(,)

>snip


But it is still not working...