Skip to content

Commit

Permalink
Fixed a bug when checking for double or single quote as the last char…
Browse files Browse the repository at this point in the history
…acter in the buffer for an attribute value
  • Loading branch information
nrk committed Feb 22, 2009
1 parent 42e737b commit 15f989c
Showing 1 changed file with 20 additions and 17 deletions.
37 changes: 20 additions & 17 deletions lib/hpricot_scan.rb
Expand Up @@ -14,6 +14,9 @@ class HpricotScanner
NO_WAY_SERIOUSLY = "*** This should not happen, please send a bug report with the HTML you're parsing to why@whytheluckystiff.net. So sorry!"
DEFAULT_BUFFER_SIZE = 16384

SINGLE_QUOTE = ?'
DOUBLE_QUOTE = ?"

def initialize
@cs = nil
@act = nil
Expand Down Expand Up @@ -2320,7 +2323,7 @@ def hpricot_scan(source, &block)
when 31 then
begin

if @buf[@p-1] == '"' || @buf[@p-1] == '\'' then SET(@aval, @p-1)
if @buf[@p-1] == DOUBLE_QUOTE || @buf[@p-1] == SINGLE_QUOTE then SET(@aval, @p-1)
else SET(@aval, @p) end
end
when 23 then
Expand Down Expand Up @@ -2505,7 +2508,7 @@ def hpricot_scan(source, &block)
@mark_aval = @p; end
begin

if @buf[@p-1] == '"' || @buf[@p-1] == '\'' then SET(@aval, @p-1)
if @buf[@p-1] == DOUBLE_QUOTE || @buf[@p-1] == SINGLE_QUOTE then SET(@aval, @p-1)
else SET(@aval, @p) end
end
when 8 then
Expand Down Expand Up @@ -2554,7 +2557,7 @@ def hpricot_scan(source, &block)
when 32 then
begin

if @buf[@p-1] == '"' || @buf[@p-1] == '\'' then SET(@aval, @p-1)
if @buf[@p-1] == DOUBLE_QUOTE || @buf[@p-1] == SINGLE_QUOTE then SET(@aval, @p-1)
else SET(@aval, @p) end
end
begin
Expand All @@ -2566,7 +2569,7 @@ def hpricot_scan(source, &block)
SET(@akey, @p); end
begin

if @buf[@p-1] == '"' || @buf[@p-1] == '\'' then SET(@aval, @p-1)
if @buf[@p-1] == DOUBLE_QUOTE || @buf[@p-1] == SINGLE_QUOTE then SET(@aval, @p-1)
else SET(@aval, @p) end
end
when 24 then
Expand Down Expand Up @@ -2598,7 +2601,7 @@ def hpricot_scan(source, &block)
end
begin

if @buf[@p-1] == '"' || @buf[@p-1] == '\'' then SET(@aval, @p-1)
if @buf[@p-1] == DOUBLE_QUOTE || @buf[@p-1] == SINGLE_QUOTE then SET(@aval, @p-1)
else SET(@aval, @p) end
end
when 28 then
Expand Down Expand Up @@ -2688,7 +2691,7 @@ def hpricot_scan(source, &block)
@mark_aval = @p; end
begin

if @buf[@p-1] == '"' || @buf[@p-1] == '\'' then SET(@aval, @p-1)
if @buf[@p-1] == DOUBLE_QUOTE || @buf[@p-1] == SINGLE_QUOTE then SET(@aval, @p-1)
else SET(@aval, @p) end
end
begin
Expand All @@ -2704,13 +2707,13 @@ def hpricot_scan(source, &block)
end
begin

if @buf[@p-1] == '"' || @buf[@p-1] == '\'' then SET(@aval, @p-1)
if @buf[@p-1] == DOUBLE_QUOTE || @buf[@p-1] == SINGLE_QUOTE then SET(@aval, @p-1)
else SET(@aval, @p) end
end
when 37 then
begin

if @buf[@p-1] == '"' || @buf[@p-1] == '\'' then SET(@aval, @p-1)
if @buf[@p-1] == DOUBLE_QUOTE || @buf[@p-1] == SINGLE_QUOTE then SET(@aval, @p-1)
else SET(@aval, @p) end
end
begin
Expand All @@ -2721,8 +2724,8 @@ def hpricot_scan(source, &block)
end
when 33 then
begin
if @buf[@p-1] == '"' || @buf[@p-1] == '\'' then SET(@aval, @p-1)

if @buf[@p-1] == DOUBLE_QUOTE || @buf[@p-1] == SINGLE_QUOTE then SET(@aval, @p-1)
else SET(@aval, @p) end
end
begin
Expand Down Expand Up @@ -2758,7 +2761,7 @@ def hpricot_scan(source, &block)
end
begin

if @buf[@p-1] == '"' || @buf[@p-1] == '\'' then SET(@aval, @p-1);
if @buf[@p-1] == DOUBLE_QUOTE || @buf[@p-1] == SINGLE_QUOTE then SET(@aval, @p-1);
else SET(@aval, @p) end
end
begin
Expand Down Expand Up @@ -2834,7 +2837,7 @@ def hpricot_scan(source, &block)
when 38 then
begin

if (@buf[@p-1] == '"' || @buf[@p-1] == '\'') then SET(@aval, @p-1)
if (@buf[@p-1] == DOUBLE_QUOTE || @buf[@p-1] == SINGLE_QUOTE) then SET(@aval, @p-1)
else SET(@aval, @p); end
end
begin
Expand Down Expand Up @@ -2865,7 +2868,7 @@ def hpricot_scan(source, &block)
end
begin

if @buf[@p-1] == '"' || @buf[@p-1] == '\'' then SET(@aval, @p-1)
if @buf[@p-1] == DOUBLE_QUOTE || @buf[@p-1] == SINGLE_QUOTE then SET(@aval, @p-1)
else SET(@aval, @p); end
end
begin
Expand Down Expand Up @@ -2896,7 +2899,7 @@ def hpricot_scan(source, &block)
end
begin

if @buf[@p-1] == '"' || @buf[@p-1] == '\'' then SET(@aval, @p-1)
if @buf[@p-1] == DOUBLE_QUOTE || @buf[@p-1] == SINGLE_QUOTE then SET(@aval, @p-1)
else SET(@aval, @p); end
end
begin
Expand All @@ -2909,7 +2912,7 @@ def hpricot_scan(source, &block)
@mark_aval = @p; end
begin

if @buf[@p-1] == '"' || @buf[@p-1] == '\'' then SET(@aval, @p-1)
if @buf[@p-1] == DOUBLE_QUOTE || @buf[@p-1] == SINGLE_QUOTE then SET(@aval, @p-1)
else SET(@aval, @p); end
end
begin
Expand All @@ -2930,7 +2933,7 @@ def hpricot_scan(source, &block)
end
begin

if @buf[@p-1] == '"' || @buf[@p-1] == '\'' then SET(@aval, @p-1)
if @buf[@p-1] == DOUBLE_QUOTE || @buf[@p-1] == SINGLE_QUOTE then SET(@aval, @p-1)
else SET(@aval, @p); end
end
begin
Expand All @@ -2941,7 +2944,7 @@ def hpricot_scan(source, &block)
end
begin

if @buf[@p-1] == '"' || @buf[@p-1] == '\'' then SET(@aval, @p-1)
if @buf[@p-1] == DOUBLE_QUOTE || @buf[@p-1] == SINGLE_QUOTE then SET(@aval, @p-1)
else SET(@aval, @p); end
end
begin
Expand Down

0 comments on commit 15f989c

Please sign in to comment.