]> granicus.if.org Git - php/commitdiff
improve and generalize the recognition of a cli sapi
authorAnatol Belski <ab@php.net>
Sun, 8 Jan 2017 22:54:58 +0000 (23:54 +0100)
committerAnatol Belski <ab@php.net>
Sun, 8 Jan 2017 22:54:58 +0000 (23:54 +0100)
win32/codepage.c

index 416fa28342296d20341959a135c4a209846a4f78..aa57892bf98b187f6013707272bf9e50d4317c0b 100644 (file)
@@ -252,6 +252,11 @@ __forceinline static char *php_win32_cp_get_enc(void)
        return enc;
 }/*}}}*/
 
+__forceinline static BOOL php_win32_cp_is_cli_sapi()
+{/*{{{*/
+       return strlen(sapi_module.name) >= sizeof("cli") - 1 && !strncmp(sapi_module.name, "cli", sizeof("cli") - 1);
+}/*}}}*/
+
 PW32CP const struct php_win32_cp *php_win32_cp_get_current(void)
 {/*{{{*/
        return cur_cp;
@@ -432,7 +437,7 @@ PW32CP const struct php_win32_cp *php_win32_cp_do_setup(const char *enc)
        if (!orig_cp) {
                orig_cp = php_win32_cp_get_by_id(GetACP());
        }
-       if (!strcmp(sapi_module.name, "cli")) {
+       if (php_win32_cp_is_cli_sapi()) {
                if (!orig_in_cp) {
                        orig_in_cp = php_win32_cp_get_by_id(GetConsoleCP());
                        if (!orig_in_cp) {
@@ -458,7 +463,7 @@ PW32CP const struct php_win32_cp *php_win32_cp_do_update(const char *enc)
        }
        cur_cp = php_win32_cp_get_by_enc(enc);
 
-       if (!strcmp(sapi_module.name, "cli")) {
+       if (php_win32_cp_is_cli_sapi()) {
                php_win32_cp_cli_do_setup(cur_cp->id);
        }
 
@@ -533,7 +538,7 @@ PHP_FUNCTION(sapi_windows_cp_set)
                RETURN_FALSE;
        }
 
-       if (!strcmp(sapi_module.name, "cli")) {
+       if (php_win32_cp_is_cli_sapi()) {
                cp = php_win32_cp_cli_do_setup((DWORD)id);
        } else {
                cp = php_win32_cp_set_by_id((DWORD)id);