aboutsummaryrefslogtreecommitdiff
path: root/textproc/gsed
diff options
context:
space:
mode:
authorSergey Matveychuk <sem@FreeBSD.org>2006-04-20 05:51:54 +0000
committerSergey Matveychuk <sem@FreeBSD.org>2006-04-20 05:51:54 +0000
commitca18a15452342f4ff104f37b3cf0c952583a4087 (patch)
treeafd28440d373e070637bb21677b952f264c81d92 /textproc/gsed
parent7661f5c4e89774773bacab373e6dd7f9e635cc96 (diff)
downloadports-ca18a15452342f4ff104f37b3cf0c952583a4087.tar.gz
ports-ca18a15452342f4ff104f37b3cf0c952583a4087.zip
- Fix build on 4.x
PR: ports/96013 Submitted by: maintainer
Notes
Notes: svn path=/head/; revision=159990
Diffstat (limited to 'textproc/gsed')
-rw-r--r--textproc/gsed/Makefile10
-rw-r--r--textproc/gsed/files/extrapatch-lib-regexec.c43
2 files changed, 52 insertions, 1 deletions
diff --git a/textproc/gsed/Makefile b/textproc/gsed/Makefile
index 26646c5b50d2..73ee3b34bdf5 100644
--- a/textproc/gsed/Makefile
+++ b/textproc/gsed/Makefile
@@ -32,6 +32,14 @@ EXAMPLESDIR= ${PREFIX}/share/examples/${PKGBASE}
PORTDOCS= AUTHORS BUGS COPYING COPYING.DOC NEWS README THANKS
DOCSDIR= ${PREFIX}/share/doc/${PKGBASE}
+.include <bsd.port.pre.mk>
+
+# Required for gcc 2.95 since it is pre-C99
+# and doesn't handle the 'bool' datatype properly.
+.if ${OSVERSION} < 500000
+EXTRA_PATCHES= ${FILESDIR}/extrapatch-lib-regexec.c
+.endif
+
post-patch:
@${REINPLACE_CMD} -e 's,^\* sed:,* CNU sed:,' \
${WRKSRC}/doc/config.texi
@@ -59,4 +67,4 @@ post-install:
test:
@cd ${WRKSRC}/testsuite; ${MAKE} check
-.include <bsd.port.mk>
+.include <bsd.port.post.mk>
diff --git a/textproc/gsed/files/extrapatch-lib-regexec.c b/textproc/gsed/files/extrapatch-lib-regexec.c
new file mode 100644
index 000000000000..a7842dc994e8
--- /dev/null
+++ b/textproc/gsed/files/extrapatch-lib-regexec.c
@@ -0,0 +1,43 @@
+#
+# Required for gcc 2.95 since it is pre-C99
+# and doesn't handle the 'bool' datatype properly.
+#
+--- lib/regexec.c.orig Sat Apr 15 20:53:36 2006
++++ lib/regexec.c Sat Apr 15 21:17:03 2006
+@@ -3296,8 +3296,7 @@
+ reg_errcode_t err;
+ int i, j, ch, need_word_trtable = 0;
+ bitset_word_t elem, mask;
+- bool dests_node_malloced = false;
+- bool dest_states_malloced = false;
++ int dests_node_malloced = 0, dest_states_malloced = 0;
+ int ndests; /* Number of the destination states from `state'. */
+ re_dfastate_t **trtable;
+ re_dfastate_t **dest_states = NULL, **dest_states_word, **dest_states_nl;
+@@ -3322,7 +3321,7 @@
+ dests_alloc = re_malloc (struct dests_alloc, 1);
+ if (BE (dests_alloc == NULL, 0))
+ return 0;
+- dests_node_malloced = true;
++ dests_node_malloced = 1;
+ }
+ dests_node = dests_alloc->dests_node;
+ dests_ch = dests_alloc->dests_ch;
+@@ -3371,7 +3370,7 @@
+ free (dests_alloc);
+ return 0;
+ }
+- dest_states_malloced = true;
++ dest_states_malloced = 1;
+ }
+ dest_states_word = dest_states + ndests;
+ dest_states_nl = dest_states_word + ndests;
+@@ -3576,7 +3575,7 @@
+ {
+ if (constraint & NEXT_NEWLINE_CONSTRAINT)
+ {
+- bool accepts_newline = bitset_contain (accepts, NEWLINE_CHAR);
++ int accepts_newline = bitset_contain (accepts, NEWLINE_CHAR);
+ bitset_empty (accepts);
+ if (accepts_newline)
+ bitset_set (accepts, NEWLINE_CHAR);