From: Tyson Andre Date: Fri, 23 Aug 2019 01:14:00 +0000 (-0400) Subject: Fix escapes for namespaced classes in gen_stub.php X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0c09089cafeb8a540986fa0a9dfe6c408508e946;p=php Fix escapes for namespaced classes in gen_stub.php Fix the string generated when the `ns\class` is passed to a macro #define ESCAPE(x) #x // puts(ESCAPE(ns\class)); // warning: unknown escape sequence: \c puts(ESCAPE(ns\\class)); // Properly prints ns\class to stdout. --- diff --git a/scripts/dev/gen_stub.php b/scripts/dev/gen_stub.php index 6146009df3..0ae4a44163 100755 --- a/scripts/dev/gen_stub.php +++ b/scripts/dev/gen_stub.php @@ -305,7 +305,7 @@ function funcInfoToCode(FuncInfo $funcInfo): string { $code .= sprintf( "ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_%s, %d, %d, %s, %d)\n", $funcInfo->name, $funcInfo->return->byRef, $funcInfo->numRequiredArgs, - $returnType->name, $returnType->isNullable + str_replace('\\', '\\\\', $returnType->name), $returnType->isNullable ); } } else { @@ -328,7 +328,7 @@ function funcInfoToCode(FuncInfo $funcInfo): string { $code .= sprintf( "\tZEND_%s_OBJ_INFO(%d, %s, %s, %d)\n", $argKind, $argInfo->byRef, $argInfo->name, - $argInfo->type->name, $argInfo->type->isNullable + str_replace('\\', '\\\\', $argInfo->type->name), $argInfo->type->isNullable ); } } else {