caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Paul Steckler <steck@stecksoft.com>
To: David Allsopp <dra-news@metastack.com>
Cc: "caml-list@yquem.inria.fr" <caml-list@yquem.inria.fr>
Subject: Re: [Caml-list] Windows filenames and Unicode
Date: Wed, 29 Sep 2010 17:26:52 +1000	[thread overview]
Message-ID: <AANLkTimXMWGQ=_7vCbLo7yP_14pU4Ld8jqBA0iq9-69T@mail.gmail.com> (raw)
In-Reply-To: <E51C5B015DBD1348A1D85763337FB6D92AEAD1@Remus.metastack.local>

On Wed, Sep 29, 2010 at 4:23 PM, David Allsopp <dra-news@metastack.com> wrote:
> A way (but not foolproof on Windows 7 and Windows 2008 R2 because you can disable it) would be to wrap the GetShortPathName Windows API function[1] which will convert the pathname to its DOS 8.3 format which will not contain Unicode characters. Another way might be to wrap the Unicode version of CreateFileEx and convert the result into a handle compatible with the standard library functions but I reckon that could be tricky!

For Linux, I was planning on enforcing the invariant that all strings
inside my program are UTF-8.
For Windows, I could use the same invariant, and modify the OCaml
runtime so that all calls to
Windows file primitives have those strings translated to UTF-16 (and
return values translated back
to UTF-8).  That is, I'd have to build a custom version of OCaml and
wrap CreateFile, etc. with
such Unicode translation functions.

All this is made slightly more complicated by the fact that I'm using
the MinGW version of OCaml.

Hmmm, I shouldn't have to do this.  Are there plans afoot to modernize
OCaml's string-handling?

-- Paul


  reply	other threads:[~2010-09-29  7:27 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-09-29  5:05 Paul Steckler
2010-09-29  6:23 ` [Caml-list] " David Allsopp
2010-09-29  7:26   ` Paul Steckler [this message]
2010-09-29  7:56     ` Michael Ekstrand
2010-09-29  7:58     ` David Allsopp
2010-09-29  8:14     ` Jerome Vouillon
2010-09-30 19:27     ` ygrek

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='AANLkTimXMWGQ=_7vCbLo7yP_14pU4Ld8jqBA0iq9-69T@mail.gmail.com' \
    --to=steck@stecksoft.com \
    --cc=caml-list@yquem.inria.fr \
    --cc=dra-news@metastack.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).