summaryrefslogtreecommitdiff
path: root/sv.c
diff options
context:
space:
mode:
authorNick Ing-Simmons <nik@tiuk.ti.com>2001-03-19 19:27:57 +0000
committerNick Ing-Simmons <nik@tiuk.ti.com>2001-03-19 19:27:57 +0000
commitc4d5f83add3e03ac76c328ed8a29701d939174ce (patch)
tree10e9eac6978b40c3c26b5eff7d3142003a73190a /sv.c
parent63cd067459124b5dc1d2ae98453df4ffdff11607 (diff)
downloadperl-c4d5f83add3e03ac76c328ed8a29701d939174ce.tar.gz
More EBCDIC fixes.
p4raw-id: //depot/perlio@9246
Diffstat (limited to 'sv.c')
-rw-r--r--sv.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/sv.c b/sv.c
index 18c5ac95b9..1b367448a6 100644
--- a/sv.c
+++ b/sv.c
@@ -2978,7 +2978,8 @@ Perl_sv_utf8_upgrade(pTHX_ register SV *sv)
e = (U8 *) SvEND(sv);
t = s;
while (t < e) {
- if ((hibit = !UTF8_IS_INVARIANT(*t++)))
+ U8 ch = *t++;
+ if ((hibit = !NATIVE_IS_INVARIANT(ch)))
break;
}
if (hibit) {
@@ -2991,12 +2992,6 @@ Perl_sv_utf8_upgrade(pTHX_ register SV *sv)
Safefree(s); /* No longer using what was there before. */
SvLEN(sv) = len; /* No longer know the real size. */
}
-#ifdef EBCDIC
- else {
- for (t = s; t < e; t++)
- *t = NATIVE_TO_ASCII(*t);
- }
-#endif
/* Mark as UTF-8 even if no hibit - saves scanning loop */
SvUTF8_on(sv);
return SvCUR(sv);
@@ -3112,7 +3107,8 @@ Perl_sv_utf8_decode(pTHX_ register SV *sv)
return FALSE;
e = (U8 *) SvEND(sv);
while (c < e) {
- if (!UTF8_IS_INVARIANT(*c++)) {
+ U8 ch = *c++;
+ if (!UTF8_IS_INVARIANT(ch)) {
SvUTF8_on(sv);
break;
}
@@ -7127,7 +7123,7 @@ Perl_sv_vcatpvfn(pTHX_ SV *sv, const char *pat, STRLEN patlen, va_list *args, SV
case 'c':
uv = args ? va_arg(*args, int) : SvIVx(argsv);
- if ((uv > 255 || (!UTF8_IS_INVARIANT(uv) && SvUTF8(sv))) && !IN_BYTE) {
+ if ((uv > 255 || (!UNI_IS_INVARIANT(uv) || SvUTF8(sv))) && !IN_BYTE) {
eptr = (char*)utf8buf;
elen = uvchr_to_utf8((U8*)eptr, uv) - utf8buf;
is_utf = TRUE;