Skip to content

Commit ec71290

Browse files
andyjackoalders
authored andcommitted
not ideal fix - no value for attribute sets value to undef instead of attribute name - but see #17 discussion
1 parent ee7f35e commit ec71290

File tree

4 files changed

+9
-9
lines changed

4 files changed

+9
-9
lines changed

hparser.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -468,7 +468,7 @@ report_event(PSTATE* p_state,
468468
if (p_state->bool_attr_val)
469469
attrval = newSVsv(p_state->bool_attr_val);
470470
else
471-
attrval = newSVsv(attrname);
471+
attrval = newSV(0);
472472
}
473473

474474
if (!CASE_SENSITIVE(p_state))

t/cases.t

+6-6
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ my @result;
2424
my ($self, $tag, $attr) = @_;
2525
push @result, "START[$tag]";
2626
for (sort keys %$attr) {
27-
push @result, "\t$_: " . $attr->{$_};
27+
push @result, "\t$_: " . ( defined $attr->{$_} ? $attr->{$_} : '<undef>' );
2828
}
2929
$start++;
3030
}
@@ -57,10 +57,10 @@ my @result;
5757
}
5858

5959
my @tests = (
60-
'<a ">' => ['START[a]', "\t\": \""],
60+
'<a ">' => ['START[a]', "\t\": <undef>"],
6161
'<a/>' => ['START[a/]',],
62-
'<a />' => ['START[a]', "\t/: /"],
63-
'<a a/>' => ['START[a]', "\ta/: a/"],
62+
'<a />' => ['START[a]', "\t/: <undef>"],
63+
'<a a/>' => ['START[a]', "\ta/: <undef>"],
6464
'<a a/=/>' => ['START[a]', "\ta/: /"],
6565
'<a x="foo&nbsp;bar">' => ['START[a]', "\tx: foo\xA0bar"],
6666
'<a x="foo&nbspbar">' => ['START[a]', "\tx: foo&nbspbar"],
@@ -73,7 +73,7 @@ my @tests = (
7373
"2 <a href='foo bar'> 2" =>
7474
['TEXT[2 ]', 'START[a]', "\thref: foo bar", 'TEXT[ 2]'],
7575
'2 <a href=foo bar> 2' =>
76-
['TEXT[2 ]', 'START[a]', "\tbar: bar", "\thref: foo", 'TEXT[ 2]'],
76+
['TEXT[2 ]', 'START[a]', "\tbar: <undef>", "\thref: foo", 'TEXT[ 2]'],
7777
'2 <a href="foo bar"> 2' =>
7878
['TEXT[2 ]', 'START[a]', "\thref: foo bar", 'TEXT[ 2]'],
7979
'2 <a href="foo\'bar"> 2' =>
@@ -84,7 +84,7 @@ my @tests = (
8484
['TEXT[2 ]', 'START[a]', "\thref: foo\"bar", 'TEXT[ 2]'],
8585
'2 <a.b> 2' => ['TEXT[2 ]', 'START[a.b]', 'TEXT[ 2]'],
8686
'2 <a.b-12 a.b = 2 a> 2' =>
87-
['TEXT[2 ]', 'START[a.b-12]', "\ta: a", "\ta.b: 2", 'TEXT[ 2]'],
87+
['TEXT[2 ]', 'START[a.b-12]', "\ta: <undef>", "\ta.b: 2", 'TEXT[ 2]'],
8888
'2 <a_b> 2' => ['TEXT[2 ]', 'START[a_b]', 'TEXT[ 2]'],
8989
'<!ENTITY nbsp CDATA "&#160;" -- no-break space -->' =>
9090
['DECLARATION[ENTITY nbsp CDATA "&#160;" -- no-break space --]'],

t/msie-compat.t

+1-1
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ $p->eof;
6262

6363
is($TEXT, <<'EOT');
6464
[start_document,<undef>,,]
65-
[start,a,<a name=`foo bar`>,name:`foo:bar`:bar`]
65+
[start,a,<a name=`foo bar`>,name:`foo:bar`:<undef>]
6666
[end_document,<undef>,,]
6767
EOT
6868

t/parser.t

+1-1
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ HTML
7171

7272
sub start {
7373
my ($self, $tag, $attr) = @_;
74-
$attr = join("/", map "$_=$attr->{$_}", sort keys %$attr);
74+
$attr = join("/", map { "$_=" . ( defined $attr->{$_} ? $attr->{$_} : '<undef>' ) } sort keys %$attr);
7575
$attr = "/$attr" if length $attr;
7676
$OUT .= "<<$tag$attr>>|";
7777
}

0 commit comments

Comments
 (0)