Whoops, I forgot about this topic. Time to revisit it.
That's the reason why I always wonder why mysql developers use bytes as the unit for integers, instead of bits. I guess a one for all is much easier to implement, otherwise it'd be just too much work just to avoid me being confused ;)
There's a very good reason, readability. Changing the value of a column from 0 to 1 to enable an option usually makes more sense than updating an "options" column from 0x98 to 0xB8 (or something). The only downside of multiple one-byte-columns is the extra space they will occupy. The speed of queries towards the table will hardly be affected unless we're talking about a lot of columns. Using one column and a number of numeric constants to check against is more space effecient, but it's also more "hackish".
Anyway, back on topic. My thoughts are these.
I agree that it's probably a good idea to remove the option "Convert smilies to images by default" and the per-post option "Show smilies as icons" in favor of a per-user setting for showing/hiding smilies all together. If you don't want to see other peoples smilies, you probably don't want to use them yourself either. Could someone propose a series of settings for the user profile to control these aspects? I get confused :D
Something we haven't discussed here is that I want there to be an option or a series of options that prevent PunBB from displaying any images at all. As it is today, if you disable "Show images" and "Show avatars", PunBB will not spit out one single image. No avatars, no [img]'s, no smilies and no "new posts indicators" in index.php and viewforum.php. I want to keep that functionality.
"Programming is like sex: one mistake and you have to support it for the rest of your life."