[ 
https://issues.apache.org/jira/browse/STDCXX-342?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12919675#action_12919675
 ] 

Razan Abbass commented on STDCXX-342:
-------------------------------------

[airline tickets|http://getflightsto.com]
[Parenting|http://childcareforums.com]


> [Solaris] std::locale("/path/to/valid/locale") throws
> -----------------------------------------------------
>
>                 Key: STDCXX-342
>                 URL: https://issues.apache.org/jira/browse/STDCXX-342
>             Project: C++ Standard Library
>          Issue Type: Bug
>          Components: 22. Localization
>    Affects Versions: 4.1.2, 4.1.3, 4.1.4, 4.2.0, 4.2.1
>         Environment: Solaris
>            Reporter: Martin Sebor
>             Fix For: 4.2.2
>
>   Original Estimate: 4h
>  Remaining Estimate: 4h
>
> The locale ctors that take a locale name can't deal with absolute pathnames 
> on Solaris (see the test case below). That's because the Solaris locale 
> category separator is the same as a path separator (i.e., the forward slash 
> character) and the ctors do not distinguish one from the other.
> $ cat t.cpp && make t && LC_ALL=../nls/en_US.ISO-8859-1 ../bin/locale && ./t 
> `cd ../nls && pwd`/en_US.ISO-8859-1
> #include <locale>
> int main (int, char *argv[])
> {
>     (void)std::locale (argv [1]);
> }
> gcc -c -I/build/sebor/dev/stdlib/include/ansi -D_RWSTDDEBUG    
> -D_RWSTD_USE_CONFIG -I/build/sebor/dev/stdlib/include 
> -I/build/sebor/gcc-4.1.0-11s/include 
> -I/build/sebor/dev/stdlib/examples/include  -pedantic -nostdinc++ -g  -W 
> -Wall -Wcast-qual -Winline -Wshadow -Wwrite-strings -Wno-long-long   t.cpp
> gcc t.o -o t  -L/build/sebor/gcc-4.1.0-11s/lib -lstd11s  -lsupc++ -lm 
> LANG=C
> LC_CTYPE="../nls/en_US.ISO-8859-1"
> LC_COLLATE="../nls/en_US.ISO-8859-1"
> LC_TIME="../nls/en_US.ISO-8859-1"
> LC_MONETARY="../nls/en_US.ISO-8859-1"
> LC_NUMERIC="../nls/en_US.ISO-8859-1"
> LC_MESSAGES="../nls/en_US.ISO-8859-1"
> LC_ALL=../nls/en_US.ISO-8859-1
> terminate called after throwing an instance of 'std::runtime_error'
>   what():  /build/sebor/dev/stdlib/src/locale_combine.cpp:639: 
> std::locale::locale(const char*): bad locale name: 
> "/build/sebor/gcc-4.1.0-11s/nls/en_US.ISO-8859-1"
> Abort (core dumped)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to