summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--perlvars.h2
-rwxr-xr-xt/op/oct.t5
-rw-r--r--util.c2
3 files changed, 4 insertions, 5 deletions
diff --git a/perlvars.h b/perlvars.h
index c79c37de3e..d42353df51 100644
--- a/perlvars.h
+++ b/perlvars.h
@@ -194,7 +194,7 @@ PERLVAR(Glast_swash_slen, STRLEN)
/* constants (these are not literals to facilitate pointer comparisons) */
PERLVARIC(GYes, char *, "1")
PERLVARIC(GNo, char *, "")
-PERLVARIC(Ghexdigit, char *, "0123456789abcdef0123456789ABCDEFx")
+PERLVARIC(Ghexdigit, char *, "0123456789abcdef0123456789ABCDEF")
PERLVARIC(Gpatleave, char *, "\\.^$@dDwWsSbB+*?|()-nrtfeaxc0123456789[{]}")
PERLVAR(Gspecialsv_list[4],SV *) /* from byterun.h */
diff --git a/t/op/oct.t b/t/op/oct.t
index 24b5c4309d..66230898ab 100755
--- a/t/op/oct.t
+++ b/t/op/oct.t
@@ -1,8 +1,6 @@
#!./perl
-# $RCSfile: oct.t,v $$Revision: 4.1 $$Date: 92/08/07 18:28:08 $
-
-print "1..8\n";
+print "1..9\n";
print +(oct('01234') == 01234) ? "ok" : "not ok", " 1\n";
print +(oct('0x1234') == 0x1234) ? "ok" : "not ok", " 2\n";
@@ -12,3 +10,4 @@ print +(oct('x80000000') == 0x80000000) ? "ok" : "not ok", " 5\n";
print +(hex('80000000') == 0x80000000) ? "ok" : "not ok", " 6\n";
print +(oct('1234') == 668) ? "ok" : "not ok", " 7\n";
print +(hex('1234') == 4660) ? "ok" : "not ok", " 8\n";
+print +(hex('0x1234') == 0x1234) ? "ok" : "not ok", " 9\n";
diff --git a/util.c b/util.c
index e47b95d001..873fcd80b7 100644
--- a/util.c
+++ b/util.c
@@ -2451,7 +2451,7 @@ scan_hex(char *start, I32 len, I32 *retlen)
while (len-- && *s) {
tmp = strchr((char *) PL_hexdigit, *s++);
if (!tmp) {
- if (*(s-1) == '_')
+ if (*(s-1) == '_' || (*(s-1) == 'x' && retval == 0))
continue;
else {
dTHR;