non-ASCII filepaths in a C function

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

non-ASCII filepaths in a C function

Henning Thielemann

In my 'soxlib' package I have written a binding to

sox_format_t * sox_open_read(
     char               const * path,
     sox_signalinfo_t   const * signal,
     sox_encodinginfo_t const * encoding,
     char               const * filetype);


I construct the C filepath "path" from a Haskell FilePath using
Foreign.C.String.withCString. This works for ASCII and non-ASCII
characters in Linux. However, non-ASCII characters let sox_open_read fail
on Windows. What is the correct way to convert FilePath to "char *"?
_______________________________________________
FFI mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ffi
Reply | Threaded
Open this post in threaded view
|

Re: non-ASCII filepaths in a C function

Malcolm Wallace-2
I believe the native representation for FilePaths on Windows should be UTF16 strings.

Regards,
    Malcolm

> On 24 Jul 2015, at 22:52, Henning Thielemann <[hidden email]> wrote:
>
>
> In my 'soxlib' package I have written a binding to
>
> sox_format_t * sox_open_read(
>    char               const * path,
>    sox_signalinfo_t   const * signal,
>    sox_encodinginfo_t const * encoding,
>    char               const * filetype);
>
>
> I construct the C filepath "path" from a Haskell FilePath using Foreign.C.String.withCString. This works for ASCII and non-ASCII characters in Linux. However, non-ASCII characters let sox_open_read fail on Windows. What is the correct way to convert FilePath to "char *"?
> _______________________________________________
> Libraries mailing list
> [hidden email]
> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
_______________________________________________
FFI mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ffi
Reply | Threaded
Open this post in threaded view
|

Re: non-ASCII filepaths in a C function

Henning Thielemann

On Sat, 25 Jul 2015, Malcolm Wallace wrote:

> I believe the native representation for FilePaths on Windows should be UTF16 strings.

Btw. I don't think that soxlib expects UTF16 filepath strings on Windows
because it works for purely ASCII filepaths.
_______________________________________________
FFI mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/ffi