Adium

Ticket #9591 (closed defect: fixed)

Opened 2 years ago

Last modified 2 years ago

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: 1.2.4 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

Changed 2 years ago by virsat

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

Changed 2 years ago by jas8522

  • priority changed from normal to high
  • summary changed from html code in message window kills logging until restart of adium app to Entering a closing html tag as a message stops chat logging for that contact until restart of Adium
  • component changed from Adium Core to Logging
  • severity changed from normal to major
  • milestone set to Adium X 1.2.5

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.

Changed 2 years ago by evands

  • status changed from new to closed
  • resolution set to fixed

(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

Changed 2 years ago by evands

(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.