The unobfuscated code, which was put in deobfuscated/, has been turned into alt code. In one case the already existing alt code was made alt2 and the unobfuscated code was alt. In the case of the ones with two C files there, the one that did not require modification (to compile in modern systems) were used as those are original. In a few cases these changes suggested additional files: a test suite Makefile for the alt code, a try.alt.sh script and maybe some other things besides. The bug status was updated for 2015/howe with a known bug: in particular the test scripts do not work (at least not completely). In the manifest all references (except for a file name that has not been renamed - at least not yet) of 'deobfuscated' to 'unobfuscated': a minor detail that might not matter much but it sounds ever so slightly better (maybe). These other entries that had an entry_text change were 1995/garry and 2020/endoh2. Rebuilt .entry.json and index.html files for this (and in the case of the moved code the index.html files also had to be changed for that in addition to the Makefiles).
234 lines
3.3 KiB
Makefile
234 lines
3.3 KiB
Makefile
#
|
|
# Test Driver for Anthony's Grep
|
|
#
|
|
# Public Domain 1992, 1993 by Anthony Howe. No warranty.
|
|
#
|
|
|
|
SHELL = /bin/sh
|
|
|
|
all: char word anchor literal wild closure option branch sub class
|
|
|
|
#
|
|
# Test simple text patterns without the use of meta characters.
|
|
#
|
|
|
|
empty:
|
|
$(PRG) '' test.alt.mk
|
|
|
|
char:
|
|
$(PRG) 'q' test.alt.mk
|
|
|
|
word:
|
|
$(PRG) 'simple' test.alt.mk
|
|
|
|
#
|
|
# Test meta characters.
|
|
#
|
|
|
|
anchor: anchor1 anchor2 anchor3 anchor4 anchor5
|
|
|
|
anchor1:
|
|
$(PRG) '^anchor1' test.alt.mk
|
|
|
|
anchor2:
|
|
$(PRG) 'Grep$$' test.alt.mk
|
|
|
|
#
|
|
# Find all empty lines.
|
|
#
|
|
anchor3:
|
|
$(PRG) '^$$' test.alt.mk
|
|
|
|
#
|
|
# This is valid but will never match.
|
|
#
|
|
anchor4:
|
|
-$(PRG) 'x^a' test.alt.mk
|
|
|
|
#
|
|
# This is valid but will never match.
|
|
#
|
|
anchor5:
|
|
-$(PRG) 'mk$$x' test.alt.mk
|
|
|
|
literal: literal1 literal2
|
|
|
|
#
|
|
# Every line with a dollar-sign.
|
|
#
|
|
literal1:
|
|
$(PRG) '\$$' test.alt.mk
|
|
|
|
#
|
|
# Every line with a backslash.
|
|
#
|
|
literal2:
|
|
$(PRG) '\\' test.alt.mk
|
|
|
|
#
|
|
# wild #1#
|
|
# wild #a#
|
|
# wild #%#
|
|
#
|
|
wild:
|
|
$(PRG) '#.#' test.alt.mk
|
|
|
|
#
|
|
# closure !!
|
|
# closure !x!
|
|
# closure !xxxxxx!
|
|
#
|
|
closure:
|
|
$(PRG) 'closure !x*!' test.alt.mk
|
|
|
|
#
|
|
# option ++
|
|
# option +a+
|
|
# option +b+
|
|
# option +c+
|
|
# option +abc+
|
|
#
|
|
option: option1 option2
|
|
|
|
option1:
|
|
$(PRG) '+b?+' test.alt.mk
|
|
|
|
option2:
|
|
$(PRG) '+.?+' test.alt.mk
|
|
|
|
branch: branch1 branch2 branch3 branch4 branch5 branch6
|
|
|
|
branch1:
|
|
$(PRG) 'q|simple' test.alt.mk
|
|
|
|
#
|
|
# This pattern should be the same as '(^all)|(Public)|(Grep$)'.
|
|
#
|
|
branch2:
|
|
$(PRG) '^all|Public|Grep$$' test.alt.mk
|
|
|
|
#
|
|
# This pattern should generate the same results as branch2.
|
|
#
|
|
branch3:
|
|
$(PRG) 'Grep$|^all|Public' test.alt.mk
|
|
|
|
#
|
|
# Null expression between start of pattern and vertical-line.
|
|
#
|
|
branch4:
|
|
$(PRG) '|Grep' test.alt.mk
|
|
|
|
#
|
|
# Null expression between vertical-line and end of pattern.
|
|
#
|
|
branch5:
|
|
$(PRG) 'Grep|' test.alt.mk
|
|
|
|
#
|
|
# Null expression between vertical-line and vertical-line.
|
|
#
|
|
branch6:
|
|
$(PRG) 'all||Grep' test.alt.mk
|
|
|
|
#
|
|
# sub aabcbcbcxx
|
|
# sub aagxx
|
|
# sub aaggxx
|
|
# sub aadddxx
|
|
# sub aaxx
|
|
#
|
|
sub: sub0 sub1 sub2 sub3 sub4 sub5 lparen1 lparen2 rparen1 rparen2
|
|
|
|
#
|
|
# Null sub-expressions.
|
|
#
|
|
sub0:
|
|
$(PRG) 's()u()b()' test.alt.mk
|
|
|
|
sub1:
|
|
$(PRG) '#(1|%)#' test.alt.mk
|
|
|
|
sub2:
|
|
$(PRG) 'aa((bc)*|g)xx' test.alt.mk
|
|
|
|
#
|
|
# Null expression between the left-parenthesis and the vertical-line.
|
|
#
|
|
sub3:
|
|
$(PRG) '#(|1)#' test.alt.mk
|
|
|
|
#
|
|
# Null expression between the vertical-line and the right-parenthesis.
|
|
#
|
|
sub4:
|
|
$(PRG) '#(1|)#' test.alt.mk
|
|
|
|
#
|
|
# Null expression between the vertical-line and the right-parenthesis.
|
|
#
|
|
sub5:
|
|
$(PRG) '#(%||1)#' test.alt.mk
|
|
|
|
#
|
|
# Missing left-parenthesis generates an error.
|
|
#
|
|
lparen1:
|
|
-$(PRG) 'left ( only' test.alt.mk
|
|
|
|
lparen2:
|
|
$(PRG) 'left \( only' test.alt.mk
|
|
|
|
#
|
|
# Right-parenthesis without preceding left parenthesis should be a literal.
|
|
#
|
|
rparen1:
|
|
-$(PRG) 'right ) only' test.alt.mk
|
|
|
|
rparen2:
|
|
$(PRG) 'right \) only' test.alt.mk
|
|
|
|
#
|
|
# 12345678
|
|
# -----------------
|
|
# =0= 1 45
|
|
# =1= 2 45 78
|
|
# =2= 2 45
|
|
# =3= 2 45 78
|
|
# =4= 2 45
|
|
# =5= 2 45
|
|
# =6= 2 45
|
|
# =7= 2 45
|
|
# =8= 2 45
|
|
# =9= 1 45
|
|
# =]= 23 6
|
|
# =-= 2 4 678
|
|
# = = 2 4 6
|
|
#
|
|
class: class1 class2 class3 class4 class5 class6 class7 class8
|
|
|
|
class1:
|
|
$(PRG) '=[09]=' test.alt.mk
|
|
|
|
class2:
|
|
$(PRG) '=[^09]=' test.alt.mk
|
|
|
|
class3:
|
|
$(PRG) '=[]]=' test.alt.mk
|
|
|
|
class4:
|
|
$(PRG) '=[^]]=' test.alt.mk
|
|
|
|
class5:
|
|
$(PRG) '=[0-9]=' test.alt.mk
|
|
|
|
class6:
|
|
$(PRG) '=[^0-9]=' test.alt.mk
|
|
|
|
class7:
|
|
-$(PRG) '=[3-1]=' test.alt.mk
|
|
|
|
class8:
|
|
$(PRG) '=[-13]=' test.alt.mk
|
|
|