| #!/bin/sh | |
| do_filename() { | |
| desc=$1 | |
| postimage=$2 | |
| rm -fr file-creation && | |
| git init file-creation && | |
| ( | |
| cd file-creation && | |
| git commit --allow-empty -m init && | |
| echo postimage >"$postimage" && | |
| git add -N "$postimage" && | |
| git diff HEAD >"../git-$desc.diff" | |
| ) && | |
| rm -fr trad-modification && | |
| mkdir trad-modification && | |
| ( | |
| cd trad-modification && | |
| echo preimage >"$postimage.orig" && | |
| echo postimage >"$postimage" && | |
| ! diff -u "$postimage.orig" "$postimage" >"../diff-$desc.diff" | |
| ) && | |
| rm -fr trad-creation && | |
| mkdir trad-creation && | |
| ( | |
| cd trad-creation && | |
| mkdir a b && | |
| echo postimage >"b/$postimage" && | |
| ! diff -pruN a b >"../add-$desc.diff" | |
| ) | |
| } | |
| do_filename plain postimage.txt && | |
| do_filename 'with spaces' 'post image.txt' && | |
| do_filename 'with tab' 'post image.txt' && | |
| do_filename 'with backslash' 'post\image.txt' && | |
| do_filename 'with quote' '"postimage".txt' && | |
| expand add-plain.diff >damaged.diff || | |
| { | |
| echo >&2 Failed. && | |
| exit 1 | |
| } |