aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/tests2/46_grep.c13
-rw-r--r--tests/tests2/46_grep.expect3
-rw-r--r--tests/tests2/Makefile5
3 files changed, 13 insertions, 8 deletions
diff --git a/tests/tests2/46_grep.c b/tests/tests2/46_grep.c
index 27589a4..3123bc3 100644
--- a/tests/tests2/46_grep.c
+++ b/tests/tests2/46_grep.c
@@ -15,6 +15,7 @@
* privileges were granted by DECUS.
*/
#include <stdio.h>
+#include <stdlib.h>
/*
* grep
@@ -25,7 +26,6 @@
* See below for more information.
*/
-#if 0
char *documentation[] = {
"grep searches a file for a given pattern. Execute by",
" grep [flags] regular_expression file_list\n",
@@ -70,7 +70,6 @@ char *patdoc[] = {
" [a-z] matches alphabetics, while [z-a] never matches.",
"The concatenation of regular expressions is a regular expression.",
0};
-#endif
#define LMAX 512
#define PMAX 256
@@ -97,6 +96,10 @@ char *pp, lbuf[LMAX], pbuf[PMAX];
char *cclass();
char *pmatch();
+void store(int);
+void error(char *);
+void badpat(char *, char *, char *);
+int match(void);
/*** Display a file name *******************************/
@@ -300,7 +303,7 @@ void badpat(char *message, char *source, char *stop)
/* char *stop; // Pattern end */
{
fprintf(stderr, "-GREP-E-%s, pattern is\"%s\"\n", message, source);
- fprintf(stderr, "-GREP-E-Stopped at byte %d, '%c'\n",
+ fprintf(stderr, "-GREP-E-Stopped at byte %ld, '%c'\n",
stop-source, stop[-1]);
error("?GREP-E-Bad pattern\n");
}
@@ -338,7 +341,7 @@ void grep(FILE *fp, char *fn)
}
/*** Match line (lbuf) with pattern (pbuf) return 1 if match ***/
-void match()
+int match()
{
char *l; /* Line pointer */
@@ -368,7 +371,7 @@ char *pmatch(char *line, char *pattern)
p = pattern;
while ((op = *p++) != ENDPAT) {
if (debug > 1)
- printf("byte[%d] = 0%o, '%c', op = 0%o\n",
+ printf("byte[%ld] = 0%o, '%c', op = 0%o\n",
l-line, *l, *l, op);
switch(op) {
diff --git a/tests/tests2/46_grep.expect b/tests/tests2/46_grep.expect
new file mode 100644
index 0000000..e8a6791
--- /dev/null
+++ b/tests/tests2/46_grep.expect
@@ -0,0 +1,3 @@
+File 46_grep.c:
+/* vim: set expandtab ts=4 sw=3 sts=3 tw=80 :*/
+
diff --git a/tests/tests2/Makefile b/tests/tests2/Makefile
index 6e0fa34..c47fe0a 100644
--- a/tests/tests2/Makefile
+++ b/tests/tests2/Makefile
@@ -84,11 +84,9 @@ TESTS = \
66_macro_concat_end.test \
67_macro_concat.test
-# 30_hanoi.test -- seg fault in the code, gcc as well
# 34_array_assignment.test -- array assignment is not in C standard
-# 46_grep.test -- does not compile even with gcc
-SKIP = 34_array_assignment.test 46_grep.test
+SKIP = 34_array_assignment.test
# some tests do not pass on all platforms, remove them for now
ifeq ($(TARGETOS),Darwin)
@@ -102,6 +100,7 @@ endif
# Some tests might need arguments
ARGS =
31_args.test : ARGS = arg1 arg2 arg3 arg4 arg5
+46_grep.test : ARGS = '[^* ]*[:a:d: ]+\:\*-/: $$' 46_grep.c
all test: $(filter-out $(SKIP),$(TESTS))