diff options
Diffstat (limited to 'lang/sr/patches/patch-bg')
-rw-r--r-- | lang/sr/patches/patch-bg | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/lang/sr/patches/patch-bg b/lang/sr/patches/patch-bg new file mode 100644 index 00000000000..5e177780b94 --- /dev/null +++ b/lang/sr/patches/patch-bg @@ -0,0 +1,39 @@ +$NetBSD: patch-bg,v 1.1 2005/03/12 10:22:08 is Exp $ + +--- rts/conv.c.orig 1999-07-28 22:42:24.000000000 +0200 ++++ rts/conv.c +@@ -219,11 +219,30 @@ sr_ptrval (locn, s) + char *locn; + String *s; + { ++ unsigned long ul; ++ char c[2], d[2]; ++ int t; ++ + sr_check_stk (CUR_STACK); +- if (s->length == 8 && strncmp (DATA (s), "==null==", 8) == 0) +- return 0; +- else +- return (Ptr) sr_intval (locn, s); ++ ++ if (s->length == 8 && strncmp (DATA (s), "==null==", 8) == 0) { ++ return (Ptr)0; ++ } ++ /* implicit else */ ++ ++ c[0] = '\0'; ++ DATA (s) [s->length] = '\0'; ++ ++ t = sscanf (DATA (s), "%lx%1s%1s", &ul, c, d); ++ ++ if ( t != 1 && ++ (t != 2 || (c[0] != 'x' && c[0] != 'X'))) { ++ ++ sr_runerr (locn, E_PCNV, s); ++ } ++ ++ return (Ptr) ul; ++ + } + + |