[#4858] Build fails on OSX Tiger 10.4 — noreply@...

Bugs item #1883, was opened at 2005-05-06 14:55

21 messages 2005/05/06
[#4862] Re: [ ruby-Bugs-1883 ] Build fails on OSX Tiger 10.4 — Yukihiro Matsumoto <matz@...> 2005/05/07

Hi,

[#4865] Re: [ ruby-Bugs-1883 ] Build fails on OSX Tiger 10.4 — Ryan Davis <ryand-ruby@...> 2005/05/07

[#4868] Re: [ ruby-Bugs-1883 ] Build fails on OSX Tiger 10.4 — nobu.nokada@... 2005/05/07

Hi,

[#5053] Re: [ ruby-Bugs-1883 ] Build fails on OSX Tiger 10.4 — Shugo Maeda <shugo@...> 2005/05/19

Hi,

[#5056] Re: [ ruby-Bugs-1883 ] Build fails on OSX Tiger 10.4 — Mark Hubbart <discordantus@...> 2005/05/19

On 5/19/05, Shugo Maeda <shugo@ruby-lang.org> wrote:

[#4874] - Need to reduce Ruby Sources to the Minimal — Ilias Lazaridis <ilias@...>

Hello all,

31 messages 2005/05/10
[#4879] Re: [THIN] - Need to reduce Ruby Sources to the Minimal — Pit Capitain <pit@...> 2005/05/11

Ilias Lazaridis schrieb:

[#4883] Re: [THIN] - Need to reduce Ruby Sources to the Minimal — Ilias Lazaridis <ilias@...> 2005/05/12

Pit Capitain wrote:

[#4884] Re: [THIN] - Need to reduce Ruby Sources to the Minimal — Ryan Davis <ryand-ruby@...> 2005/05/12

[#4888] Re: [THIN] - Need to reduce Ruby Sources to the Minimal — Ilias Lazaridis <ilias@...> 2005/05/12

Ryan Davis wrote:

[#4889] Re: [THIN] - Need to reduce Ruby Sources to the Minimal — ES <ruby-ml@...> 2005/05/12

[#4890] Re: [THIN] - Need to reduce Ruby Sources to the Minimal — Ilias Lazaridis <ilias@...> 2005/05/12

ES wrote:

[#4891] Re: [THIN] - Need to reduce Ruby Sources to the Minimal — Alexander Kellett <ruby-lists@...> 2005/05/12

On May 12, 2005, at 3:13 PM, Ilias Lazaridis wrote:

[#4911] Pointless argc check in Array#select — noreply@...

Patches item #1900, was opened at 2005-05-12 09:33

11 messages 2005/05/12

[#4919] - Hierarchical/Modular Directory Structure — Ilias Lazaridis <ilias@...>

The source-code structure should be simplified, lowering barriers for

20 messages 2005/05/12

Re: [ ruby-Bugs-1930 ] CGI::escapeHTML escapes the ampersand in an existing escape command

From: "Zev Blut" <rubyzbibd@...>
Date: 2005-05-19 11:55:50 UTC
List: ruby-core #5046
Konbanwa,

On Thu, 19 May 2005 20:08:57 +0900, nobuyoshi nakada  
<nobuyoshi.nakada@ge.com> wrote:
>
> At Thu, 19 May 2005 17:18:54 +0900,
> Zev Blut wrote in [ruby-core:05044]:
>> > It is exactly expected behavior.
>>
>> OK.  It would be nice if that was in the documentation somewhere, so
>> that other people do not make the same mistake.
>
> $ ri CGI.escapeHTML | cat
> -------------------------------------------------------- CGI::escapeHTML
>      CGI::escapeHTML(string)
> ------------------------------------------------------------------------
>      Escape special characters in HTML, namely &\"<>
>
>        CGI::escapeHTML('Usage: foo "bar" <baz>')
>           # => "Usage: foo &quot;bar&quot; &lt;baz&gt;"
>

Thanks, I should have double checked the documents before making the
above comment.

>> > The way to let escapeHTML not to escape a particular ampersand is
>> > another story.
>>
>> I can see the need for the current behavior and of course I have the
>> need for the changed behavior.  Two techniques for providing a
>> preserving escape come to my mind.  One would be to add an optional
>> boolean argument that when true will keep escape commands, the
>> default value is false and thus current usage will not change. Another
>> is to add another method that implements the patch provided in the
>> report.
>
> Leaving ampersands breaks round-trip by escapeHTML and unescapeHTML.
> I think it would be a problem.

I don't think this breaks round-trip usage.  See below:
----------------------------------------------------------------------
require 'cgi'

def patch_escape(string)
     # using tmp to prevent line wrapping in this mail.
     tmp = string.gsub(/&(?!(\S+);)/n, '&amp;').gsub(/\"/n, '&quot;')
     tmp.gsub(/>/n, '&gt;').gsub(/</n, '&lt;')
end

# sample text is emoji
txt = 'Hello & 500 &yen; please." &#63651; moji "'

puts txt
#=> Hello & 500 &yen; please." &#63651; moji "

puts CGI.escapeHTML(txt)
#=> Hello &amp; 500 &amp;yen; please.&quot; &amp;#63651; moji &quot;

puts patch_escape(txt)
#=> Hello &amp; 500 &yen; please.&quot; &#63651; moji &quot;

puts CGI.unescapeHTML(patch_escape(txt))
#=> Hello & 500 &yen; please." &#63651; moji "

puts CGI.unescapeHTML(CGI.escapeHTML(txt))
#=> Hello & 500 &yen; please." &#63651; moji "
----------------------------------------------------------------------

I hope the above makes it clear.  Sorry for the use of emoji, but that
was what alerted me to my usage problem in the first place.

Best,
Zev



In This Thread