]> granicus.if.org Git - php/commitdiff
deliver the real cp also if a constant is passed
authorAnatol Belski <ab@php.net>
Tue, 20 Dec 2016 01:40:44 +0000 (02:40 +0100)
committerAnatol Belski <ab@php.net>
Tue, 20 Dec 2016 01:40:44 +0000 (02:40 +0100)
win32/codepage.c

index f87d4c0900172406f2d90b99d4d3a644fcb3a4fe..519ff03f4ba1e020a547780221de197803b78b85 100644 (file)
@@ -266,6 +266,17 @@ PW32CP const struct php_win32_cp *php_win32_cp_get_by_id(DWORD id)
 {/*{{{*/
        size_t i;
 
+       if (id < php_win32_cp_map[0].id) {
+               switch (id) {
+                       case CP_ACP:
+                               id = GetACP();
+                               break;
+                       case CP_OEMCP:
+                               id = GetOEMCP();
+                               break;
+               }
+       }
+
        for (i = 0; i < sizeof(php_win32_cp_map)/sizeof(struct php_win32_cp); i++) {
                if (php_win32_cp_map[i].id == id) {
                        return &php_win32_cp_map[i];