Import BSDDB 4.7.25 (as of svn r89086)
This commit is contained in:
30
test/scr018/chk.comma
Normal file
30
test/scr018/chk.comma
Normal file
@@ -0,0 +1,30 @@
|
||||
#!/bin/sh -
|
||||
#
|
||||
# $Id: chk.comma,v 12.0 2004/11/17 03:44:50 bostic Exp $
|
||||
#
|
||||
# Look for trailing commas in declarations. Some compilers can't handle:
|
||||
# enum {
|
||||
# foo,
|
||||
# bar,
|
||||
# };
|
||||
|
||||
[ -f ../libdb.a ] || (cd .. && make libdb.a) || {
|
||||
echo 'FAIL: unable to find or build libdb.a'
|
||||
exit 1
|
||||
}
|
||||
|
||||
if cc -g -Wall -I.. t.c ../libdb.a -o t; then
|
||||
:
|
||||
else
|
||||
echo "FAIL: unable to compile test program t.c"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ./t ../../*/*.[ch] ../../*/*.in; then
|
||||
:
|
||||
else
|
||||
echo "FAIL: test program failed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
exit 0
|
||||
47
test/scr018/t.c
Normal file
47
test/scr018/t.c
Normal file
@@ -0,0 +1,47 @@
|
||||
#include <sys/types.h>
|
||||
|
||||
#include <ctype.h>
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
int
|
||||
chk(f)
|
||||
char *f;
|
||||
{
|
||||
int ch, l, r;
|
||||
|
||||
if (freopen(f, "r", stdin) == NULL) {
|
||||
fprintf(stderr, "%s: %s\n", f, strerror(errno));
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
for (l = 1, r = 0; (ch = getchar()) != EOF;) {
|
||||
if (ch != ',')
|
||||
goto next;
|
||||
do { ch = getchar(); } while (isblank(ch));
|
||||
if (ch != '\n')
|
||||
goto next;
|
||||
++l;
|
||||
do { ch = getchar(); } while (isblank(ch));
|
||||
if (ch != '}')
|
||||
goto next;
|
||||
r = 1;
|
||||
printf("%s: line %d\n", f, l);
|
||||
|
||||
next: if (ch == '\n')
|
||||
++l;
|
||||
}
|
||||
return (r);
|
||||
}
|
||||
|
||||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
int r;
|
||||
|
||||
for (r = 0; *++argv != NULL;)
|
||||
if (chk(*argv))
|
||||
r = 1;
|
||||
return (r);
|
||||
}
|
||||
Reference in New Issue
Block a user