Adium

Ticket #6440 (assigned defect)

Opened 2 years ago

Last modified 4 months ago

Emoticons do not display after some special characters

Reported by: roowie Assigned to: earthmkii (accepted)
Priority: normal Milestone: Adium 1.3.3
Component: Message View Version: 1.2b5
Severity: normal Keywords: emoticons display special character
Cc: Patch: None
Pending: 0

Description

I detected that sometimes some emoticons won't display when having other emoticons or characters in front.

Example of characters that will destroy the last emoticon: #, @, %, & and / Example of emoticions that will destroy the second from the last: (#), (@), (%), (&) and (/)

Attachments

adium-emoticons-bug.png (69.3 kB) - added by roowie on 02/16/2007 08:16:29 AM.

Change History

02/16/2007 08:16:29 AM changed by roowie

  • attachment adium-emoticons-bug.png added.

04/19/2007 07:21:54 PM changed by jas8522

  • owner deleted.
  • patch_status set to None.
  • component changed from None to Message View.
  • version changed from 1.0 to 1.0.2.
  • milestone set to Needs dev review.

I can confirm this. With the @, perhaps it's looking for an email address or something along those lines? It's easiest to reproduce if you look at his picture and try to mimic that. Very odd.

12/01/2007 06:29:42 PM changed by rageboy04

I've also found that before certain characters, emoticons display incorrectly. For instance, ":P*" shows up right, but ".+:P" does not, where .+ represents any number of (>1) characters. One weird thing I found is that ":P:P*" shows up correctly (two tongue faces" but ":):P*" does not and ":):)*" does not. Both of the second show up as a smile and then ":P*" (no smiley).

(wikiformatting applied already)

12/26/2007 12:14:04 PM changed by jas8522

  • keywords changed from emoticons not display special character to emoticons display special character.
  • version changed from 1.0.2 to 1.2b5.
  • pending changed.
  • milestone changed from Needs dev review to Adium X 1.3.

Most of these are still an issue now.

04/29/2008 12:30:21 AM changed by jas8522

  • milestone changed from Adium X 1.3 to Adium X 1.3.2.

05/06/2008 11:28:54 AM changed by earthmkii

  • cc set to stephen.holt@gmail.com.

I'm adding myself as a cc: on this ticket. Did some work on the emoticon text replacement back in the day, but need to re-familiarize myself with it before I take an assignment.

05/15/2008 08:38:09 AM changed by djmori

06/03/2008 04:22:54 PM changed by earthmkii

  • cc deleted.
  • owner set to earthmkii.
  • status changed from new to assigned.

I'll take this one, if there are no objections.

06/03/2008 11:45:34 PM changed by earthmkii

When a member of +[NSCharacterSet punctuationCharacterSet] begins a string, the recursive parsing algorithm trips up and exits early.

Those characters are:

! " % ' ( ) , - . / : ; ? [ \ ] { }

(via http://www.cocoadev.com/index.pl?NSCharacterSet)

It just so happens that those characters are often used in emoticons. So, when we use NSScanner to eat up punc, it's sucking in parts of emoticons too.

06/04/2008 05:40:15 PM changed by evands

Ouch. Perhaps we should skim over whitespace but leave punctuation intact; it means a few more loops through the process for a small minority of strings, but I would think that would let emoticonification occur properly.

06/04/2008 07:45:17 PM changed by earthmkii

amending that comment a bit, it's not exactly punctuationCharacterSet: that's doing it, but characters in emoticonStartCharacterSet.

Inverting that set and forming an intersection with the punc and whitespace sets solves the issue - but I think it effectively just nullifies the punc. set.

09/02/2008 08:43:21 PM changed by jas8522

  • milestone changed from Adium 1.3.2 to Adium 1.3.3.