aboutsummaryrefslogtreecommitdiffstats
path: root/math/sc
diff options
context:
space:
mode:
authortruckman <truckman@FreeBSD.org>2002-06-29 16:38:45 +0800
committertruckman <truckman@FreeBSD.org>2002-06-29 16:38:45 +0800
commit477af063c41de1629519c0f6bfbbc6b26cae2c33 (patch)
treeabcec151a181f4d594e53d7d29c10a80fa1e9c81 /math/sc
parent934507dba5dae902f988bf43d2e2cd8a5bd4948c (diff)
downloadfreebsd-ports-graphics-477af063c41de1629519c0f6bfbbc6b26cae2c33.tar.gz
freebsd-ports-graphics-477af063c41de1629519c0f6bfbbc6b26cae2c33.tar.zst
freebsd-ports-graphics-477af063c41de1629519c0f6bfbbc6b26cae2c33.zip
The format patch included in PR ports/32017 is breaks formats such as
"0.000", trimming trailing non-zeros and adding back trailing zeros. Fix both the original bug, which was caused by walking off the beginning of the fractional part of the value and into the integer part, as well as the new bug, by terminating the trailing zero stripping when the first non-zero character is encountered. Also, correctly calculate the number number of trailing zeros that should potentially be removed if the format contains trailing text characters. Bump PORTREVISION. Reviewed by: send-pr@oldach.net (Helge Oldach)
Diffstat (limited to 'math/sc')
-rw-r--r--math/sc/Makefile2
-rw-r--r--math/sc/files/patch-ae24
2 files changed, 22 insertions, 4 deletions
diff --git a/math/sc/Makefile b/math/sc/Makefile
index c87e52d9587..e76e1c9f187 100644
--- a/math/sc/Makefile
+++ b/math/sc/Makefile
@@ -7,7 +7,7 @@
PORTNAME= sc
PORTVERSION= 6.21
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= math
MASTER_SITES= ftp://gatekeeper.dec.com/pub/misc/
EXTRACT_SUFX= .tar.Z
diff --git a/math/sc/files/patch-ae b/math/sc/files/patch-ae
index b45d56d23c8..d9a81463840 100644
--- a/math/sc/files/patch-ae
+++ b/math/sc/files/patch-ae
@@ -1,6 +1,15 @@
---- format.c.orig Mon May 11 20:43:34 1992
-+++ format.c Sat Dec 9 21:24:41 2000
-@@ -263,7 +263,6 @@
+--- format.c.orig Mon May 11 11:43:34 1992
++++ format.c Sun Jun 23 19:38:37 2002
+@@ -256,14 +256,14 @@
+
+ case '#':
+ width++;
++ zero_pad++;
+ break;
+
+ case '0':
+- zero_pad = ++width;
++ width++;
break;
}
}
@@ -8,3 +17,12 @@
}
(void) sprintf(prtfmt, "%%.%dlf", width);
(void) sprintf(mantissa, prtfmt, val);
+@@ -281,6 +281,8 @@
+ {
+ if (*cp == '0')
+ *cp = EOS;
++ else
++ break;
+ }
+ }
+