X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/864dbfa3ca8032ef66f7aa86961933b19b962357..ad31580623307f0b715ee0a148d5b2a56b4280ff:/ebcdic.c diff --git a/ebcdic.c b/ebcdic.c index 14e3955..d86d50b 100644 --- a/ebcdic.c +++ b/ebcdic.c @@ -15,7 +15,7 @@ ebcdic_control(int ch) ch = toupper(ch); if ((ctlp = strchr(controllablechars, ch)) == 0) { - die("unrecognised control character '%c'\n", ch); + Perl_die(aTHX_ "unrecognised control character '%c'\n", ch); } if (ctlp == controllablechars) @@ -25,9 +25,17 @@ ebcdic_control(int ch) } else { /* Want uncontrol */ if (ch == '\177' || ch == -1) return('?'); + else if (ch == '\157') + return('\177'); + else if (ch == '\174') + return('\000'); + else if (ch == '^') /* '\137' in 1047, '\260' in 819 */ + return('\036'); + else if (ch == '\155') + return('\037'); else if (0 < ch && ch < (sizeof(controllablechars) - 1)) return(controllablechars[ch+1]); else - die("invalid control request: '\\%03o'\n", ch & 0xFF); + Perl_die(aTHX_ "invalid control request: '\\%03o'\n", ch & 0xFF); } }