diff options
author | Gurusamy Sarathy <gsar@cpan.org> | 2000-07-14 10:49:37 +0000 |
---|---|---|
committer | Gurusamy Sarathy <gsar@cpan.org> | 2000-07-14 10:49:37 +0000 |
commit | 3ae08724085c050ef6bd2c7af042aa714c2ad9d9 (patch) | |
tree | ed42eb257a307d5ee6924455d8cb7c6aaffe569a /toke.c | |
parent | 01ec43d06089361423d61a40521883bf73e1944a (diff) | |
parent | 29d1e993db685c67acc489087a44f0e4137e296c (diff) | |
download | perl-3ae08724085c050ef6bd2c7af042aa714c2ad9d9.tar.gz |
integrate cfgperl contents into mainline
p4raw-id: //depot/perl@6400
Diffstat (limited to 'toke.c')
-rw-r--r-- | toke.c | 22 |
1 files changed, 10 insertions, 12 deletions
@@ -7407,21 +7407,21 @@ Perl_yyerror(pTHX_ char *s) } STATIC char* -S_swallow_bom(pTHX_ char *s) +S_swallow_bom(pTHX_ U8 *s) { STRLEN slen; slen = SvCUR(PL_linestr); switch (*s) { - case -1: - if ((s[1] & 255) == 254) { + case 0xFF: + if (s[1] == 0xFE) { /* UTF-16 little-endian */ #ifndef PERL_NO_UTF16_FILTER U8 *news; #endif - s += 2; - if (*s == 0 && s[1] == 0) /* UTF-32 little-endian */ + if (s[2] == 0 && s[3] == 0) /* UTF-32 little-endian */ Perl_croak(aTHX_ "Unsupported script encoding"); #ifndef PERL_NO_UTF16_FILTER + s += 2; filter_add(S_utf16rev_textfilter, NULL); New(898, news, (PL_bufend - s) * 3 / 2 + 1, U8); PL_bufend = utf16_to_utf8((U16*)s, news, PL_bufend - s); @@ -7431,9 +7431,8 @@ S_swallow_bom(pTHX_ char *s) #endif } break; - - case -2: - if ((s[1] & 255) == 255) { /* UTF-16 big-endian */ + case 0xFE: + if (s[1] == 0xFF) { /* UTF-16 big-endian */ #ifndef PERL_NO_UTF16_FILTER U8 *news; filter_add(S_utf16_textfilter, NULL); @@ -7445,15 +7444,14 @@ S_swallow_bom(pTHX_ char *s) #endif } break; - - case -17: - if (slen > 2 && (s[1] & 255) == 187 && (s[2] & 255) == 191) { + case 0xEF: + if (slen > 2 && s[1] == 0xBB && s[2] == 0xBF) { s += 3; /* UTF-8 */ } break; case 0: if (slen > 3 && s[1] == 0 && /* UTF-32 big-endian */ - s[2] & 255 == 254 && s[3] & 255 == 255) + s[2] == 0xFE && s[3] == 0xFF) { Perl_croak(aTHX_ "Unsupported script encoding"); } |