apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "William A. Rowe, Jr." <wr...@rowe-clan.net>
Subject Re: Locale problem with filename handling in Mac OS X
Date Tue, 23 Aug 2005 17:11:24 GMT
This intersects with the symbol APR_HAS_UNICODE_FS, and perhaps
that's where we want to trigger it (emitting the proper value
for this symbol in apr.h).

Bill

At 11:21 PM 8/21/2005, Kenneth Falck wrote:
>Hi,
>
>There seems to be an inconsistency in the way filenames are handled  
>by APR under Mac OS X.
>
>The function apr_filepath_encoding() returns  
>APR_FILEPATH_ENCODING_LOCALE under UNIX. Under Mac OS X, however,  
>filenames must always be passed to the system calls in UTF-8 format.  
>This creates problems whenever using a locale with something other  
>than UTF-8 as the text encoding (Invalid argument when trying to  
>create files).
>
>Changing the locale setting to UTF-8 is not a good solution, because  
>it also affects the contents of files. For instance, my locale is set  
>to fi_FI.ISO8859-1, allowing me to edit my ISO8859-1 formatted text  
>files properly.
>
>The simplest fix to this would look something like this (file_io/unix/ filepath.c):
>
>APR_DECLARE(apr_status_t) apr_filepath_encoding(int *style,  
>apr_pool_t *p)
>{
>#ifdef DARWIN
>    *style = APR_FILEPATH_ENCODING_UTF8;
>#else
>    *style = APR_FILEPATH_ENCODING_LOCALE;
>#endif
>    return APR_SUCCESS;
>}
>
>
>I ran across this problem when using Subversion on Mac OS X to check  
>out files with accented letters in their names. After applying the  
>above fix, the checkout worked fine. I believe it would be very  
>helpful for Mac OS X users to have this work 'out-of-the-box'. It  
>would also be correct behaviour, since Mac OS X really uses only  
>UTF-8 filenames in system calls and other encodings are invalid.



Mime
View raw message