X-Git-Url: http://git.plutz.net/?p=cgilite;a=blobdiff_plain;f=html-sh.sed;h=16aeb9a44e907814b5865fb9887fbe9833f450d8;hp=d1c70b8cc6ae65ed0083af3b295edd8d47cca16e;hb=84e1d6938743a21a912420cc4ba5dc08a7c48155;hpb=6aa432e55d9227b58dbe3d20518eb7adfa057070 diff --git a/html-sh.sed b/html-sh.sed index d1c70b8..16aeb9a 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,19 +48,22 @@ t tagopen; G; h; s;^[^\n]*\n+;;; x; s;\n.*$;;; :attribs +s;(<[^/][^>]*)>[ \t]*\.[ \t];\1>;g; t attEnd; 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;\1 checked="checked">;g; -s;(]+ )?type=(checkbox|"checkbox"|'checkbox')( [^>]+)?)>[ \t]*checked;\1 checked="checked">;g; +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; +:attEnd s;(<[^/][^>]*>)[ \t]*;\1;g; -s;(<[^/][^>]*)>[ \t]*]+>;\1/>;g; +# s;(<[^/][^>]*)>[ \t]*]+>;\1/>;g; +s;(<(br|hr|img|input|link|meta|area|base|col|command|embed|keygen|param|source|track|wbr)[^>]*)>[ \t]*;\1>;g; s;;