Standard Squeak Font Encodings
Richard A. O'Keefe
ok at hermes.otago.ac.nz
Tue Feb 1 23:54:15 UTC 2000
-Bert- wrote
I'd vote for switching to ISO Latin-1 because it is one of the
best-documented encodings (it's almost impossible to find a Mac encoding
chart on the web). Besides, codes from 128 to 159 are "free" so we can put
special characters there.
Codes 128..159 are only "sort of" free. The ISO 6429 standard defines a
whole lot of so-called "C1 controls", and guess where they go?
In particular, the whole CR, LF, CRLF mess is (belatedly) solved by the
NEw-Line (NEL) code, 16r85 (actually, if you read the original papers
about ASCII in the CACM, you discover that LF *was* intended to serve as
NL if you wanted an NL character).
You can also find out about these control characters in ECMA 48, which
has the advantage of being free. Here's a list I typed up some years ago.
/* The C0 controls */
#define NUL '\000' /* ^@ null character */
#define SOH '\001' /* ^A Start Of Heading, start of message */
#define STX '\002' /* ^B Start Of Text, end of address */
#define ETX '\003' /* ^C End of TeXt, end of message */
#define EOT '\004' /* ^D End Of Transmission */
#define ENQ '\005' /* ^E ENQuiry "who are you" */
#define ACK '\006' /* ^F (positive) ACKnowledge */
#define BEL '\007' /* ^G ring the BELl */
#define BS '\010' /* ^H BackSpace */
#define HT '\011' /* ^I character (Horizontal) Tab */
#define TAB '\011' /* ^I an unofficial name for HT */
#define LF '\012' /* ^J Line Feed (does not imply cr) */
#define VT '\013' /* ^K line (Vertical) Tab */
#define FF '\014' /* ^L Form Feed (new page starts AFTER this) */
#define CR '\015' /* ^M Carriage Return */
#define SO '\016' /* ^N Shift Out; select alternate character set */
#define SI '\017' /* ^O Shift In; select ASCII again */
#define DLE '\020' /* ^P Data Link Escape */
#define DC1 '\021' /* ^Q Device Control 1 */
#define XON '\021' /* ^Q transmitter on, resume output */
#define DC2 '\022' /* ^R Device Control 2 (auxiliary on) */
#define DC3 '\023' /* ^S Device Control 3 */
#define XOFF '\023' /* ^S transmitter off, suspend output */
#define DC4 '\024' /* ^T Device Control 4 (auxiliary off) */
#define NAK '\025' /* ^U Negative AcKnowledge (signal error) */
#define SYN '\026' /* ^V SYNchronous idle */
#define ETB '\027' /* ^W End of Transmission Block, logical end of medium */
#define CAN '\030' /* ^X CANcel */
#define EM '\031' /* ^Y End of Medium */
#define SUB '\032' /* ^Z SUBstitute */
#define ESC '\033' /* ^[ ESCape */
#define FS '\034' /* ^\ File Separator */
#define IS4 '\034' /* ^\ Information Separator 4 */
#define GS '\035' /* ^] Group Separator */
#define IS3 '\035' /& ^] Information Separator 3 */
#define RS '\036' /* ^^ Record Separator */
#define IS2 '\036' /* ^^ Information Separator 2 */
#define US '\037' /* ^_ Unit Separator */
#define IS1 '\037' /* ^_ Information Separator 1 */
#define SP '\040' /* SPace */
#define DEL '\177' /* ^? DELete, rubout */
/* Here are the C1 controls from ECMA 48 */
#define PAD '\200' /* PADding character */
#define HOP '\201' /* High Order Preset */
#define BPH '\202' /* Break Permitted Here */
#define NBH '\203' /* No Break Here */
#define IND '\204' /* INDex */
#define NEL '\205' /* NExt Line */
#define SSA '\206' /* Start of Selected Area */
#define ESA '\207' /* End of Selected Area */
#define HTS '\210' /* character (Horizontal) Tabulation Set */
#define HTJ '\211' /* character Tabulation with Justification */
#define VTS '\212' /* line (Vertical) Tabulation Set */
#define PLD '\213' /* Partial Line forward (Down) */
#define PLU '\214' /* Partial Line backward (Up) */
#define RI '\215' /* Reverse line feed (Index) */
#define SS2 '\216' /* Single Shift 2 */
#define SS3 '\217' /* Single Shift 3 */
#define DCS '\220' /* Device Control String */
#define PU1 '\221' /* Private Use 1 */
#define PU2 '\222' /* Private Use 2 */
#define STS '\223' /* Set Transmit State */
#define CCH '\224' /* Cancel CHaracter */
#define MW '\225' /* Message Waiting */
#define SPA '\226' /* Start of guarded (Protected) Area */
#define EPA '\227' /* End of guarded (Protected) Area */
#define SOS '\230' /* Start Of String */
#define SGCI '\231' /* Single Graphic Character Introducer */
#define SCI '\232' /* Single Character Introducer */
#define CSI '\233' /* Control Sequence Introducer */
#define ST '\234' /* String Terminator */
#define OSC '\235' /* Operating System Command */
#define PM '\236' /* Privacy Message */
#define APC '\237' /* Application Program Command */
#define NBS '\240' /* No-Break Space */
More information about the Squeak-dev
mailing list
|