anchor.diff:  -define(IS_LITERAL_SAFE(C),
           ((C >= $A andalso C =< $Z) orelse (C >= $a andalso C =< $z)
            orelse (C >= $0 andalso C =< $9))).
  -                                
  +
   -record(decoder, {line=1,
                     column=1,
                     offset=0}).
  
positive.code:         tokens(<<"<foo bar=baz wibble='wibble' alice=bob/>">>),
      [{comment, <<"[if lt IE 7]>\n<style type=\"text/css\">\n.no_ie { display: none; }\n</style>\n<![endif]">>}] =
          tokens(<<"<!--[if lt IE 7]>\n<style type=\"text/css\">\n.no_ie { display: none; }\n</style>\n<![endif]-->">>),
      ok.
  
  tokens(B, S=#decoder{offset=O}, Acc) ->
  
negative.code:     attrs_to_html(Rest,
                    [[<<" ">>, escape(K), <<"=\"">>,
                      escape_attr(V), <<"\"">>] | Acc]).
  
  test_escape() ->
      <<"&amp;quot;\"word &lt;&lt;up!&amp;quot;">> =
          escape(<<"&quot;\"word <<up!&quot;">>),
  