Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

#17 British pound symbol won't parse

closed-wont-fix
Morbus Iff
None
5
2003-08-27
2003-08-23
Chad Cloman
No

Version 0.93.1, Windows, embedded binaries.

The symbol for the British currency (Ł) in the item
title hoses the processing of the attached XML file. If
you remove that character, it works fine.

I have traced this down to the expat parser. When it
attempts to parse this XML file, it appears to
terminate rather than return with an error. I don't
know Perl well enough to understand what's happening,
but it is similar to the type of return you get with an
unhandled exception or the exit of a shell. What I do
understand is that the code enters XML::Parser::parse()
from XML::Simple::build_tree() and then resumes
execution after this line in load_channel():
my $data = eval { XMLin($channel_xml, forcearray=> [
"item" ], keyattr => [ ], suppressempty=>undef ) };

Note the use of 'eval' which essentially acts like a
new shell. Thus when expat terminates, program control
returns to the line immediately after this one.
Apparently expat does not return an error code, because
the $@ error-processing is not invoked.

The pound sign (Ł) is a weird character with an ASCII
code of 163 (A3). Is this a known problem and is there
a workaround?

Discussion

  • Chad Cloman
    Chad Cloman
    2003-08-23

    Corrected Sample XML

     
    Attachments
  • Chad Cloman
    Chad Cloman
    2003-08-23

    Logged In: YES
    user_id=810746

    Oops. Wrong file. Here is the correct one.

     
  • Chad Cloman
    Chad Cloman
    2003-08-23

    Logged In: YES
    user_id=810746

    This is a duplicate of bug #764335. [Note to self: Read
    pre-existing bugs before submitting new ones...]

    If you concur, please go ahead and close this one.

     
  • Morbus Iff
    Morbus Iff
    2003-08-27

    • status: open --> closed
     
  • Morbus Iff
    Morbus Iff
    2003-08-27

    • assigned_to: nobody --> morbus
    • status: closed --> closed-wont-fix