X-Git-Url: http://git.plutz.net/?p=cgilite;a=blobdiff_plain;f=html-sh.sed;h=3f63b3d6fecf14dfd8808a3d58f655ff173e3040;hp=4af3933d889ef8292271592ded40c39133b0039f;hb=4feaa19ab266bca60388152b6c1f550d09b1184b;hpb=3a191154e3277ce6aa942348ad84be033269bbc5 diff --git a/html-sh.sed b/html-sh.sed index 4af3933..3f63b3d 100755 --- a/html-sh.sed +++ b/html-sh.sed @@ -1,4 +1,12 @@ -#!/bin/sed -nrf +#!/bin/sed -nEf + +:Escapes +s,\\\\,\\,g; s,\\&,\&,g; +s,\\<,\<,g; s,\\>,\>,g; +s,\\",\",g; s,\\',\',g; +s,\\\[,\[,g; s,\\\],\],g; +s,\\\.,\.,g; s,\\#,\#,g; +s,\\,,g; :CommentHandle x; /^<\/!-->/{ @@ -40,11 +48,15 @@ t tagopen; G; h; s;^[^\n]*\n+;;; x; s;\n.*$;;; :attribs -s;class="([^>]+)>[ \t]+\.([^< \t]+);class="\2 \1>;g; t attribs; -s;>[ \t]+\.([^< \t]+); class="\1">;g; -s;>[ \t]+#([^< \t]+); id="\1">;g; -s;>[ \t]+([^ \t=<]+=("[^"]*"|'[^']*'|[^< \t]*)); \1>;g; -s;(]+)>[ \t]+checked;\1 checked="checked">;g; +s;class="([^>]+)>[ \t]*\.([^< \t]+);class="\2 \1>;g; t attribs; +s;(<[^/][^>]*)>[ \t]*\.([^< \t]+);\1 class="\2">;g; +s;(<[^/][^>]*)>[ \t]*#([^< \t]+);\1 id="\2">;g; +s;(<[^/][^>]*)>[ \t]*([^ \t=<]+=("[^"]*"|'[^']*'|[^< \t]*));\1 \2>;g; +t attribs; +s;(]+ )?type=(radio|"radio"|'radio')( [^>]+)?)>[ \t]*(checked|selected);\1 checked="checked">;g; +s;(]+ )?type=(checkbox|"checkbox"|'checkbox')( [^>]+)?)>[ \t]*(checked|selected);\1 checked="checked">;g; +s;(]+)?)>[ \t]*(checked|selected);\1 selected="selected">;g; +s;(]+)?)>[ \t]*multiple;\1 multiple="multiple">;g; t attribs; s;(<[^/][^>]*>)[ \t]*;\1;g;