Mac OS still uses Internet Config to some extent, but it is different than in Mac OS 9 in a few ways. First, there's no UI to edit all of the fields; so if you want to edit something, and it's not provided in the Internet prefs box, you're sorta out of luck. Second, it doesn't use the same file format; it uses the XML plist format.
So my problem is that in Eudora, I like using ProFont ("Programmer's Font", similar to Monaco, but easier to read for code at small point sizes) for messages, but I check Eudora's prefs to use Internet Config (for SMTP host etc.), and there's no way to change the default screen font from Monaco to ProFont.
One solution might be to port Mac::InternetConfig, and use the API. But I tried something else.
I opened
<key>WebBackgroundColour</key>
<dict>
<key>ic-data</key>
<data>
////////
</data>
</dict>
OK, so what's the data? It looks suspiciously familiar. The first line of the XML file, after the declaration, is:
<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
OK, so that file tells us:
<!ELEMENT data (#PCDATA)> <!-- Contents interpreted as Base-64 encoded -->
Nice. Sure enough:
% perl -MMIME::Base64 -le 'print ord decode_base64(shift)'
////////
255
OK, so now I just need to get the data for ScreenFont, in the right format, then encode it in Base64. MacPerl to the rescue!
#!perl -wl
use MIME::Base64;
use Mac::InternetConfig;
print encode_base64($RawInternetConfig{kICScreenFont()});
%InternetConfig gives a sane human-readable value (in this case, ProFont). But %RawInternetConfig provides the raw packed data. I encode it and print it out:
AAkAAAdQcm9Gb250AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////wAAAAA4W4tIAA2QVAAi
WYgD hACj97QAAAAiWYgAMzACAAAAAgCmiLIADt6oAA7enGj/90AApoirAAAAAAAID0xURVhUdHR4
dAANkF SIhAAiZJgDAwCj97QAAAAiZJ4AAAAAAAgAotoAAIEAAAAAAADMzMzMzMzMzACmiLpAnfFQ
AKLTKAAi VlL///8AACJWQkCJXpYAotqg////AAAiVkI=
So I reformat it a bit to have the same line lengths as the other entries in the file, and end up with:
<dict>
<key>ic-data</key>
<data>
AAkAAAdQcm9Gb250AAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////
/wAAAAA4W4tIAA2QVAAiWYgDhACj97QAAAAiWYgAMzAC
AAAAAgCmiLIADt6oAA7enGj/90AApoirAAAAAAAID0xU
RVhUdHR4dAANkFSIhAAiZJgDAwCj97QAAAAiZJ4AAAAA
AAgAotoAAIEAAAAAAADMzMzMzMzMzACmiLpAnfFQAKLT
KAAiVlL///8AACJWQkCJXpYAotqg////AAAiVkI=
</data>
</dict>
I quit Eudora, save the plist file, and reopen Eudora, and there it is as my new screen font: ProFont, size 9.
Yay!
Editing Property lists (Score:2)
--Nat
Re:Editing Property lists (Score:2, Interesting)
However, it would be harder in this case, IMO, to use it. This is the particular data:
Base 64 (Score:2)
Maybe they just wanted to be able to have free whitespace, which I presume you can have in Base-64 but not if you're relying on &-encoding.
Re:Base 64 (Score:1)