check.awk
来自「Calc Software Package for Number Calc」· AWK 代码 · 共 115 行
AWK
115 行
#!/usr/bin/awk## check - check the regression output for problems## Copyright (C) 1999-2006 Landon Curt Noll## Calc is open software; you can redistribute it and/or modify it under# the terms of the version 2.1 of the GNU Lesser General Public License# as published by the Free Software Foundation.## Calc is distributed in the hope that it will be useful, but WITHOUT# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General# Public License for more details.## A copy of version 2.1 of the GNU Lesser General Public License is# distributed with calc under the filename COPYING-LGPL. You should have# received a copy with calc; if not, write to Free Software Foundation, Inc.# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.## @(#) $Revision: 29.5 $# @(#) $Id: check.awk,v 29.5 2006/09/18 08:01:13 chongo Exp $# @(#) $Source: /usr/local/src/cmd/calc/RCS/check.awk,v $## Under source code control: 1996/05/25 22:07:58# File existed as early as: 1996## chongo <was here> /\oo/\ http://www.isthe.com/chongo/# Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/## This awk script will print 3 lines before and after any non-blank line that# does not begin with a number. This allows the 'make debug' rule to remove# all non-interest lines the the 'make check' regression output while providing# 3 lines of context around unexpected output.#BEGIN { havebuf0=0; buf0=0; havebuf1=0; buf1=0; havebuf2=0; buf2=0; error = 0; end_seen = 0;}NF == 0 { if (error > 0) { if (havebuf2) { print buf2; } --error; } buf2 = buf1; havebuf2 = havebuf1; buf1 = buf0; havebuf1 = havebuf0; buf0 = $0; havebuf0 = 1; next;}/: Ending regression tests$/ { end_seen = 1;}$1 ~ /^[0-9]+:/ || $1 ~ /^[0-9]+-[0-9]*:/ || $1 ~ /^"\)\)$/ { if (error > 0) { if (havebuf2) { print buf2; } --error; } buf2 = buf1; havebuf2 = havebuf1; buf1 = buf0; havebuf1 = havebuf0; buf0 = $0; havebuf0 = 1; next;}{ error = 6; if (havebuf2) { print buf2; } buf2 = buf1; havebuf2 = havebuf1; buf1 = buf0; havebuf1 = havebuf0; buf0 = $0; havebuf0 = 1; next;}END { if (error > 0 && havebuf2) { print buf2; --error; } if (error > 0 && havebuf1) { print buf1; --error; } if (error > 0 && havebuf0) { print buf0; } if (error > 0 || !end_seen) { exit(1); } else { exit(0); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?