summaryrefslogtreecommitdiffstats
path: root/winsup/cygwin/environ.cc
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygwin/environ.cc')
-rw-r--r--winsup/cygwin/environ.cc21
1 files changed, 17 insertions, 4 deletions
diff --git a/winsup/cygwin/environ.cc b/winsup/cygwin/environ.cc
index 793cebb65..a3e1ec04b 100644
--- a/winsup/cygwin/environ.cc
+++ b/winsup/cygwin/environ.cc
@@ -423,6 +423,21 @@ check_case_init (const char *buf)
}
}
+void
+set_file_api_mode (codepage_type cp)
+{
+ if (cp == oem_cp)
+ {
+ SetFileApisToOEM ();
+ debug_printf ("File APIs set to OEM");
+ }
+ else if (cp == ansi_cp)
+ {
+ SetFileApisToANSI ();
+ debug_printf ("File APIs set to ANSI");
+ }
+}
+
static void
codepage_init (const char *buf)
{
@@ -432,14 +447,12 @@ codepage_init (const char *buf)
if (strcmp (buf, "oem")== 0)
{
current_codepage = oem_cp;
- SetFileApisToOEM ();
- debug_printf ("File APIs set to OEM");
+ set_file_api_mode (current_codepage);
}
else if (strcmp (buf, "ansi")== 0)
{
current_codepage = ansi_cp;
- SetFileApisToANSI ();
- debug_printf ("File APIs set to ANSI");
+ set_file_api_mode (current_codepage);
}
else
{