This is a live mirror of the Perl 5 development currently hosted at
embed.fnc: Allow NULL arg to to_utf8_case()
authorKarl Williamson <>
Tue, 3 May 2011 15:52:49 +0000 (09:52 -0600)
committerJesse Vincent <>
Tue, 3 May 2011 21:14:06 +0000 (17:14 -0400)
Code within the function doesn't assume that the parameter is non-null,
and in fact the specials are retrieved by swash_init().  Having the
parameter null just means that no specials will be retrieved in the
current call.


index b891b43..288dacd 100644 (file)
--- a/embed.fnc
+++ b/embed.fnc
@@ -1318,7 +1318,7 @@ EsMR      |HV*    |invlist_union  |NN HV* const a|NN HV* const b
 Ap     |void   |taint_env
 Ap     |void   |taint_proper   |NULLOK const char* f|NN const char *const s
 Apd    |UV     |to_utf8_case   |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp \
-                               |NN SV **swashp|NN const char *normal|NN const char *special
+                               |NN SV **swashp|NN const char *normal|NULLOK const char *special
 Apd    |UV     |to_utf8_lower  |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp
 Apd    |UV     |to_utf8_upper  |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp
 Apd    |UV     |to_utf8_title  |NN const U8 *p|NN U8* ustrp|NULLOK STRLEN *lenp
diff --git a/proto.h b/proto.h
index a8c066a..0553531 100644 (file)
--- a/proto.h
+++ b/proto.h
@@ -4253,10 +4253,9 @@ PERL_CALLCONV UV Perl_to_utf8_case(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp, S
-                       __attribute__nonnull__(pTHX_5)
-                       __attribute__nonnull__(pTHX_6);
+                       __attribute__nonnull__(pTHX_5);
-       assert(p); assert(ustrp); assert(swashp); assert(normal); assert(special)
+       assert(p); assert(ustrp); assert(swashp); assert(normal)
 PERL_CALLCONV UV       Perl_to_utf8_fold(pTHX_ const U8 *p, U8* ustrp, STRLEN *lenp)