Adium

Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#9591 closed defect (fixed)

Entering a closing html tag as a message stops chat logging for that contact until restart of Adium

Reported by: virsat Owned by: nobody
Milestone: Adium 1.2.5 Component: Logging
Version: Severity: major
Keywords: Cc:
Patch Status:

Description

If the /html (in brackets) code is entered during chat, logging stops immediately and will not resume until restarting of app.

Found this accidentally while trying to send html code instructions to an associate.

Change History (4)

comment:1 Changed 12 years ago by virsaturna

For additional clarification, it is the "<(slash)html>" code specifically, entered without quotes, into a message, that kills logging.

comment:2 Changed 12 years ago by Jordan

Component: Adium CoreLogging
Milestone: Adium X 1.2.5
priority: normalhigh
Severity: normalmajor
Summary: html code in message window kills logging until restart of adium appEntering a closing html tag as a message stops chat logging for that contact until restart of Adium

Confirmed on 1.3svn [23090]

For clarification (although this might seem obvious) it only stops logging for that contact. Logging for other contacts continues as normal.

For those that are unaware, this could be pretty critical - setting to higher priority.

comment:3 Changed 12 years ago by Evan Schoenberg

Resolution: fixed
Status: newclosed

(In [23115]) We'll be running message through an HTML decoder. If we unescape all entities, we end up treating any typed HTML code as a real HTML code, because for example &lt;/html&gt; becomes </html> before the decoder even sees it. That's bad.

We apparently need to unescape ampersand immediately (I didn't retest that claim, made in #6850). We'll just do that rather than a full unescaping. Note that we can't use stringByUnescapingFromXMLWithEntities: with a dictionary specifying just the ampersand, the documentation for CFXMLCreateStringByUnescapingEntities(), which that method wraps, states "The standard XML entities are always replaced".

Fixes #9591

comment:4 Changed 12 years ago by Evan Schoenberg

(In [23116]) Merged [23115]: We'll be running message through an HTML decoder. If we unescape all entities, we end up treating any typed HTML code as a real HTML code, because for example &lt;/html&gt; becomes </html> before the decoder even sees it. That's bad.

We apparently need to unescape ampersand immediately (I didn't retest that claim, made in #6850). We'll just do that rather than a full unescaping. Note that we can't use stringByUnescapingFromXMLWithEntities: with a dictionary specifying just the ampersand, the documentation for CFXMLCreateStringByUnescapingEntities(), which that method wraps, states "The standard XML entities are always replaced".

Fixes #9591

Note: See TracTickets for help on using tickets.