X-Git-Url: http://git.plutz.net/?p=cgilite;a=blobdiff_plain;f=html-sh.sed;h=8d7b61c076b93d3de8b59683e67d9b161ffc8075;hp=d7a757332d50eefb4317a45e360bbf9dad4158ca;hb=HEAD;hpb=11d61c375b334aeb20deea101a91e970ecfd7c2a diff --git a/html-sh.sed b/html-sh.sed index d7a7573..1a0f2b4 100755 --- a/html-sh.sed +++ b/html-sh.sed @@ -1,4 +1,26 @@ -#!/bin/sed -nrf +#!/bin/sed -nEf + +# Copyright 2018 - 2019 Paul Hänsch +# +# Permission to use, copy, modify, and/or distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY +# SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR +# IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +: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; /^<\/!-->/{ @@ -45,13 +67,16 @@ 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; +s;(<[^/][^>]*>)[ \t]*\.[ \t];\1;g; 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;;