Curious Case of the Weird Emotimaker Problem

Thursday, 2006-08-24; 02:00:00


One little preference entry in iChat makes the difference

So I released Emotimaker 1.0.3 yesterday, which simply adds support for the newest emoticon pack formats of Proteus and Adium -- heh, at least as of this past February. (I haven't really bothered to check if they've changed again.) The only other feature it adds is support for animated smilies where applicable, which I've seen some people request. The UI needs an overhaul, or at least the main window does (the smiley editor windows are fine), but oh well. Maybe in the next release. Heh, I actually was talking about releasing this in February, but never got around to it.

The one thing that WAS weird, though, was that after releasing it, I got a short note on Emotimaker's MacUpdate page saying, "to [sic] bad it does not work? [sic]". That was really helpful, but it made me quickly make sure that Emotimaker was working when installing different emoticon sets into iChat.

Turns out, it wasn't. At least, on the surface it didn't seem like it. I installed the default pack, and immediately noticed that emoticons weren't showing up in chats! All the correct images showed up in the smiley-picker when you opened it, but in the actual chats themselves, they didn't. The smiley-picker also showed the smiley name and ASCII representations correctly. Emotimaker actually modifies the SmileyTable.plist file and the images inside iChat (or inside the InstantMessage framework if on 10.2), so I figured that one of those files was off. Comparing it to a clean 10.4.7 installation, I noticed a few extra entries in the SmileyTable.plist file, which I deleted to no effect. I made sure the images had the right filenames, too.

Then I figured that I'd just replace my modified application with the iChat app from the clean 10.4.7 Mac. I did so, launched it, and, surprise: it didn't display smilies in chats, either! Aha, preferences problem. I checked a guest account, and sure enough, my modified application worked fine in the guest account. So, in my account, I threw out the caches -- no change. Threw out com.apple.iChat.* (which consisted of 5 files) in my preferences folder, and that restored smiley operation. Then I narrowed it down to the com.apple.iChat.plist file.

Continuing to drill down, I figured I'd find the specific preference that was causing the problem. (Gah, shades of extension conflicts.) That involves deleting a set of entries, restarting iChat, seeing if the smilies worked or not, and whittling down the possible culprits from there.

At the end, I found the culprit: if I deleted the preference entry named "ChatViewFlags" that, at least in my preference file, had a value of "257" as a number, that would restore the viewing of smilies in iChat chats.

Does anybody have any idea as to what ChatViewFlags does, and why it would be conflicting with the display of smilies in iChat? That's just... weird. Heh, that would be an interesting candidate bug for Apple. (Hmm, I need to kickstart my ABFs again.)

[UPDATE: Duhhhh. View --> Show Smilies. That solves that -- I had been messing with getting the transcript from an iChat, and wanted the smilies as text rather than as images. *smacks forehead*]


Technological Supernova   Software Development   Older   Newer   Post a Comment