diff -Nurd tf-50b8/src/malloc.c tf-50b8.new/src/malloc.c
--- tf-50b8/src/malloc.c	2007-01-13 23:12:39.000000000 +0000
+++ tf-50b8.new/src/malloc.c	2018-01-24 09:13:08.406519279 +0000
@@ -12,7 +12,7 @@
 #include "signals.h"
 #include "malloc.h"
 
-caddr_t mmalloc_base = NULL;
+void *mmalloc_base = NULL;
 int low_memory_warning = 0;
 static char *reserve = NULL;
 
diff -Nurd tf-50b8/src/macro.c tf-50b8.new/src/macro.c
--- tf-50b8/src/macro.c	2007-01-13 23:12:39.000000000 +0000
+++ tf-50b8.new/src/macro.c	2018-01-24 09:26:18.479836714 +0000
@@ -893,7 +893,8 @@
     }
     spec->attr &= ~F_NONE;
     if (spec->nsubattr) {
-	int n = pcre_info(spec->trig.ri->re, NULL, NULL);
+	int n = 0;
+	pcre_fullinfo(spec->trig.ri->re, NULL, PCRE_INFO_CAPTURECOUNT, &n);
 	for (i = 0; i < spec->nsubattr; i++) {
 	    spec->subattr[i].attr &= ~F_NONE;
 	    if (spec->subattr[i].subexp > n) {
diff -Nurd tf-50b8/src/pattern.c tf-50b8.new/src/pattern.c
--- tf-50b8/src/pattern.c	2007-01-13 23:12:39.000000000 +0000
+++ tf-50b8.new/src/pattern.c	2018-01-24 09:28:21.526500904 +0000
@@ -151,7 +151,7 @@
 	    emsg ? emsg : "unknown error");
 	goto tf_reg_compile_error;
     }
-    n = pcre_info(ri->re, NULL, NULL);
+    pcre_fullinfo(ri->re, NULL, PCRE_INFO_CAPTURECOUNT, &n);
     if (n < 0) goto tf_reg_compile_error;
     ri->ovecsize = 3 * (n + 1);
     ri->ovector = dmalloc(NULL, sizeof(int) * ri->ovecsize, file, line);
diff -Nurd tf-50b8/src/pattern.h tf-50b8.new/src/pattern.h
--- tf-50b8/src/pattern.h	2007-01-13 23:12:39.000000000 +0000
+++ tf-50b8.new/src/pattern.h	2018-01-24 09:28:36.039833945 +0000
@@ -10,7 +10,7 @@
 #ifndef PATTERN_H
 #define PATTERN_H
 
-#include "pcre-2.08/pcre.h"
+#include <pcre.h>
 
 typedef struct RegInfo {
     pcre *re;
