Mail Archives: cygwin-developers/2002/07/03/09:19:38
> > My question is, does anyone have any objections to doing things this
way,
> > and if so, can they suggest a better way? I don't want to patch the
whole of
> > Cygwin and then have to re-write everything at a later date.
>
> I'd like to propose supporting other codepages than UTF8 and
> making it connected with other portions than filenames.
>
> For example, in case of CYGWIN=codepage:20866, suppose
> the `parse_options' set current_codepage = other_cp and
> current_cpnum = (UINT)20866.
> Your example would become as follows.
>
> if (current_codepage == other_cp)
> {
> WCHAR wbuf[MAX_PATH];
> if (MultiByteToWideChar (current_cpnum, 0, get_win32_name(), -1,
> wbuf, MAX_PATH) == 0)
> {
> __seterrno ();
> goto done;
> }
> x = CreateFileW (wbuf, access, shared, &sa, creation_distribution,
> file_attributes, 0);
> }
> else
> x = CreateFileA (get_win32_name (), access, shared, &sa,
creation_distribution,
> file_attributes, 0);
>
> Moreover, get_cp in miscfunc.cc would have to become as follows.
>
> UINT
> get_cp ()
> {
> switch (current_codepage)
> {
> case ansi_cp:
> return GetACP();
> case oem_cp:
> return GetOEMCP();
> case other_cp:
> return current_cpnum;
> }
> }
>
> When we want to use UTF8, we set codepage:65001 or codepage:utf8.
> The latter case needs for the parser to accept "utf8" and
> translate it to CP_UTF8 (65001).
>
> How about this idea?
This sounds like a good idea - I will have a go at implementing this.
Chris
- Raw text -