I'm writing this on my new IBM ThinkPad which arrived today. I won't say much about that beyond I am so far happy with my purchase and astounded with the amount of sheer geekery installed in its tiny shell. The keys are still a nice, normal (for a laptop) size and they have a satisfying amount of resistance and click. This Thursday I'll see how well it lasts on its battery. My only complaints so far are the native resolution (which is quite high for a 14" monitor, 1400x1050) and the key layout ... the latter item is more an issue with my getting used to my Toshiba's screwed up layout than any real problem with IBM's.
Today I wrote the UTF-7 encoding/decoding functions, "packed" base64 functions (which I used for UTF-7), and finally two central functions to tie all my hard work on such things together: SEncode() and SDecode().
The morning flew by, I wrote a lot of base64-oriented tests, and even managed to fix a bug in a MIME function, one that I wasn't even working on today. Somehow I had commited changes to mime.js without first running the BVT which caught the bug and really made it rather easy to fix. Not sure how I managed that.
What I want to do next is tighten up the ToUtf8() function and add FromUtf8(). Then I should be good to go as far as charsets/encoding.