chk.nl

来自「mysql-5.0.22.tar.gz源码包」· NL 代码 · 共 113 行

NL
113
字号
#!/bin/sh -## $Id: chk.nl,v 1.6 2002/01/07 15:12:12 bostic Exp $## Check to make sure that there are no trailing newlines in __db_err calls.d=../..[ -f $d/README ] || {	echo "FAIL: chk.nl can't find the source directory."	exit 1}cat << END_OF_CODE > t.c#include <sys/types.h>#include <errno.h>#include <stdio.h>int chk(FILE *, char *);intmain(argc, argv)	int argc;	char *argv[];{	FILE *fp;	int exitv;	for (exitv = 0; *++argv != NULL;) {		if ((fp = fopen(*argv, "r")) == NULL) {			fprintf(stderr, "%s: %s\n", *argv, strerror(errno));			return (1);		}		if (chk(fp, *argv))			exitv = 1;		(void)fclose(fp);	}	return (exitv);}intchk(fp, name)	FILE *fp;	char *name;{	int ch, exitv, line, q;	exitv = 0;	for (ch = 'a', line = 1;;) {		if ((ch = getc(fp)) == EOF)			return (exitv);		if (ch == '\n') {			++line;			continue;		}		if (ch != '_') continue;		if ((ch = getc(fp)) != '_') continue;		if ((ch = getc(fp)) != 'd') continue;		if ((ch = getc(fp)) != 'b') continue;		if ((ch = getc(fp)) != '_') continue;		if ((ch = getc(fp)) != 'e') continue;		if ((ch = getc(fp)) != 'r') continue;		if ((ch = getc(fp)) != 'r') continue;		while ((ch = getc(fp)) != '"') {			if (ch == EOF)				return (exitv);			if (ch == '\n')				++line;		}		while ((ch = getc(fp)) != '"')			switch (ch) {			case EOF:				return (exitv);			case '\\n':				++line;				break;			case '.':				if ((ch = getc(fp)) != '"')					ungetc(ch, fp);				else {					fprintf(stderr,				    "%s: <period> at line %d\n", name, line);					exitv = 1;				}				break;			case '\\\\':				if ((ch = getc(fp)) != 'n')					ungetc(ch, fp);				else if ((ch = getc(fp)) != '"')					ungetc(ch, fp);				else {					fprintf(stderr,				    "%s: <newline> at line %d\n", name, line);					exitv = 1;				}				break;			}	}	return (exitv);}END_OF_CODEcc t.c -o tif ./t $d/*/*.[ch] $d/*/*.cpp $d/*/*.in ; then	:else	echo "FAIL: found __db_err calls ending with periods/newlines."	exit 1fiexit 0

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?