ref: 95d87ae1d14c74b85c1247d03ad3fc71e61c0d8b
parent: 734f289a2795aac3441810ae49a731c8c347fb42
author: phil9 <telephil9@gmail.com>
date: Sun Jan 31 23:31:39 EST 2021
difftohtml: tidy up code use patterns instead of ifs factor code into user-defined function
--- a/shithub
+++ b/shithub
@@ -77,15 +77,16 @@
fn difftohtml {awk '
+ function printpre(id, text) { printf "<pre id='%s'>%s</pre>", id, text } BEGIN { started = 0; diff = 0; } /^---$/ { diff = 1; next }- /^diff .*$/ { if(diff && !started) started = 1; next }- /^\+\+\+ .*$/ { if(started) printf "<pre id='files'>%s</pre>\n", $0; next }- /^--- .*$/ { if(started) printf "<pre id='files'>%s</pre>\n", $0; next }- /^@@ .*$/ { if(started) printf "<pre id='sep'>%s</pre>\n", $0; next }- /^\+.*$/ { if(started) printf "<pre id='add'>%s</pre>\n", $0; next }- /^-.*$/ { if(started) printf "<pre id='del'>%s</pre>\n", $0; next }- { if(started) { printf "<pre id=ctx> %s</pre>\n", substr($0, 2); } }+ /^diff .*$/ && diff && !started { started = 1; next }+ /^\+\+\+ .*$/ && started { printpre("files", $0); next }+ /^--- .*$/ && started { printpre("files", $0); next }+ /^@@ .*$/ && started { printpre("sep", $0); next }+ /^\+.*$/ && started { printpre("add", $0); next }+ /^-.*$/ && started { printpre("del", $0); next }+ started { printpre("ctx", $0); next }'
}
--
⑨