Module Name: src Committed By: rmind Date: Tue Oct 2 23:38:52 UTC 2012
Modified Files: src/usr.sbin/npf/npfctl: npf_parse.y Log Message: npfctl/yyerror(): print the right line number if we already parsed the line. To generate a diff of this commit: cvs rdiff -u -r1.13 -r1.14 src/usr.sbin/npf/npfctl/npf_parse.y Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/usr.sbin/npf/npfctl/npf_parse.y diff -u src/usr.sbin/npf/npfctl/npf_parse.y:1.13 src/usr.sbin/npf/npfctl/npf_parse.y:1.14 --- src/usr.sbin/npf/npfctl/npf_parse.y:1.13 Sun Sep 16 13:47:41 2012 +++ src/usr.sbin/npf/npfctl/npf_parse.y Tue Oct 2 23:38:52 2012 @@ -1,4 +1,4 @@ -/* $NetBSD: npf_parse.y,v 1.13 2012/09/16 13:47:41 rmind Exp $ */ +/* $NetBSD: npf_parse.y,v 1.14 2012/10/02 23:38:52 rmind Exp $ */ /*- * Copyright (c) 2011-2012 The NetBSD Foundation, Inc. @@ -55,17 +55,23 @@ yyerror(const char *fmt, ...) extern char *yytext; char *msg, *context = xstrndup(yytext, yyleng); - size_t len = strlen(context); - char *dst = zalloc(len * 4 + 1); + bool eol = (*context == '\n'); va_list ap; va_start(ap, fmt); vasprintf(&msg, fmt, ap); va_end(ap); - strvisx(dst, context, len, VIS_WHITE|VIS_CSTYLE); - fprintf(stderr, "%s:%d:%d: %s near '%s'\n", yyfilename, yylineno, - yycolumn, msg, dst); + fprintf(stderr, "%s:%d:%d: %s", yyfilename, + yylineno - (int)eol, yycolumn, msg); + if (!eol) { + size_t len = strlen(context); + char *dst = zalloc(len * 4 + 1); + + strvisx(dst, context, len, VIS_WHITE|VIS_CSTYLE); + fprintf(stderr, " near '%s'", dst); + } + fprintf(stderr, "\n"); exit(EXIT_FAILURE); }