Skip Menu |
Report information
Id: 133088
Status: resolved
Priority: 0/
Queue: perl5

Owner: Nobody
Requestors: bulk88 <bulk88 [at] hotmail.com>
Cc:
AdminCc:

Operating System: (no value)
PatchStatus: (no value)
Severity: low
Type: core
Perl Version: 5.27.9
Fixed In: (no value)

Attachments


To: "perlbug [...] perl.org" <perlbug [...] perl.org>
Date: Sun, 8 Apr 2018 12:37:25 +0000
From: bulk 88 <bulk88 [...] hotmail.com>
Subject: [PATCH] fix utf8.c overflowed VC6's preproc macro buffer and syntax errored
Download (untitled) / with headers
text/plain 5.7k
This is a bug report for perl from bulk88@hotmail.com, generated with the help of perlbug 1.41 running under perl 5.27.9. ----------------------------------------------------------------- [Please describe your issue here] See attached patch. This is intended for 5.28. Maybe backport too. VC6 DEBUGGING cant be built w/o this patch. KHW's input is needed if U8 is the right type for var c or should it be U32. Most of the perl codebase uses U8, a couple examples use U32. IDK what the return type is of EIGHT_BIT_UTF8_TO_NATIVE macro and its not documented. details, console error ---------------------------------------- cl -c -nologo -GF -W3 -I.\include -I. -I.. -DWIN32 -D_CONSOLE -DNO_STRICT -DPERL DLL -DPERL_CORE -Od -MD -Zi -DDEBUGGING -DPERL_EXTERNAL_GLOB -DPERL_IS_MINIPER L -Fomini\utf8.obj -Fdmini\utf8.pdb ..\utf8.c utf8.c ..\utf8.c(4057) : error C2017: illegal escape sequence ..\utf8.c(4057) : error C2017: illegal escape sequence ..\utf8.c(4057) : error C2017: illegal escape sequence ..\utf8.c(4057) : error C2017: illegal escape sequence ..\utf8.c(4057) : error C2143: syntax error : missing ')' before 'string' ..\utf8.c(4057) : error C2017: illegal escape sequence ..\utf8.c(4057) : error C2017: illegal escape sequence ..\utf8.c(4057) : error C2017: illegal escape sequence ..\utf8.c(4057) : error C2059: syntax error : ')' ..\utf8.c(4057) : error C2059: syntax error : ')' ..\utf8.c(4057) : error C2059: syntax error : ')' ..\utf8.c(4057) : error C2017: illegal escape sequence ..\utf8.c(4057) : fatal error C1013: compiler limit : too many open parentheses GNUmakefile:1439: recipe for target 'mini\utf8.obj' failed ------------------------------------ I've attached a code formatted preprocessed version of the C func that caused the syntax error. and a screen shot of my code highlighter pointing out the stray \s. [Please do not change anything below this line] ----------------------------------------------------------------- --- Flags: category=core severity=low --- Site configuration information for perl 5.27.9: Configured by Administrator at Tue Jan 30 20:34:30 2018. Summary of my perl5 (revision 5 version 27 subversion 9) configuration: Platform: osname=MSWin32 osvers=5.2.3790 archname=MSWin32-x86-multi-thread uname='' config_args='undef' hint=recommended useposix=true d_sigaction=undef useithreads=define usemultiplicity=define use64bitint=undef use64bitall=undef uselongdouble=undef usemymalloc=n default_inc_excludes_dot=define bincompat5005=undef Compiler: cc='cl' ccflags ='-nologo -GF -W3 -O1 -MD -Zi -DNDEBUG -GL -DWIN32 -D_CONSOLE -DNO_STRICT -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DPERL_TEXTMODE_SCRIPTS -DPERL_IMPLICIT_CONTEXT -DPERL_IMPLICIT_SYS -DWIN32_NO_REGISTRY' optimize='-O1 -MD -Zi -DNDEBUG -GL' cppflags='-DWIN32' ccversion='15.00.30729.01' gccversion='' gccosandvers='' intsize=4 longsize=4 ptrsize=4 doublesize=8 byteorder=1234 doublekind=3 d_longlong=undef longlongsize=8 d_longdbl=define longdblsize=8 longdblkind=0 ivtype='long' ivsize=4 nvtype='double' nvsize=8 Off_t='__int64' lseeksize=8 alignbytes=8 prototype=define Linker and Libraries: ld='link' ldflags ='-nologo -nodefaultlib -debug -opt:ref,icf -ltcg -libpath:"c:\perl\lib\CORE" -machine:x86' libpth="C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\lib" libs=oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib perllibs=oldnames.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib netapi32.lib uuid.lib ws2_32.lib mpr.lib winmm.lib version.lib odbc32.lib odbccp32.lib comctl32.lib msvcrt.lib libc=msvcrt.lib so=dll useshrplib=true libperl=perl527.lib gnulibc_version='' Dynamic Linking: dlsrc=dl_win32.xs dlext=dll d_dlsymun=undef ccdlflags=' ' cccdlflags=' ' lddlflags='-dll -nologo -nodefaultlib -debug -opt:ref,icf -ltcg -libpath:"c:\perl\lib\CORE" -machine:x86' --- @INC for perl 5.27.9: lib C:/p527/srcnew/lib --- Environment for perl 5.27.9: CYGWIN=tty HOME (unset) LANG (unset) LANGUAGE (unset) LD_LIBRARY_PATH=/usr/lib/x86:/usr/X11R6/lib LOGDIR (unset) PATH=C:\WINDOWS\system32;C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\BIN;C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin;C:\Perl\bin;C:\WINDOWS;C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE;C:\Program Files (x86)\Git\bin;C:\sp3220\c\bin; PERL_BADLANG (unset) SHELL (unset)

Message body is not shown because sender requested not to inline it.

Message body is not shown because sender requested not to inline it.

Message body is not shown because sender requested not to inline it.

RT-Send-CC: perl5-porters [...] perl.org
Download (untitled) / with headers
text/plain 236b
Thanks, applied as 1a7511606ba00a5c02bdde113dbf53d913b47fed EIGHT_BIT_UTF8_TO_NATIVE is not documented because it's too low level to encourage others to use. But the name is supposed to signify that it fits in a U8 -- Karl Williamson


This service is sponsored and maintained by Best Practical Solutions and runs on Perl.org infrastructure.

For issues related to this RT instance (aka "perlbug"), please contact perlbug-admin at perl.org