Celeste encoding (was: Duplicate messages in Celeste)

Richard A. O'Keefe ok at atlas.otago.ac.nz
Thu Mar 16 04:07:08 UTC 2000


	Ah, I see.  So the choice only matters in the case that a page has these
	control characters in it.
	
	The only question is, aren't those control codes reserved for a reason? 
	Is there any risk that those codes will be actually used for something
	in the future?
	
/*  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 */

As you may guess from the names, they are basically about controlling
old-fashioned terminals.  They're part of a vast set of stuff that
anyone emulating a VT-100 probably wants to know about.  If I remember
correctly, most if not all of them have ESC equivalents as well.

Some of the codes concern formatting; BPH and NBH are about whether
line breaking is allowed at a particular point or not.  There are better
ways of doing these things.

It's important to understand that these C1 controls are *not* part of
the ISO 8859 family and *not* part of Unicode/ISO 10646.  The C1 region
as such *is* part of the ISO 2022 framework.  But Squeak doesn't support
2022, and doesn't support anything like the ESC based control sequences
of ECMA 48.  Indeed, none of the terminal emulators I have access to
is documented as supporting them either.  Unless someone decides to
remodel Squeak in terms of old fashioned character cell displays (VT-100s,
3270s, that kind of thing), there isn't much likelihood of anyone really
wanting the ECMA 48 C1 controls in Squeak, so I really don't see any
problem.

For what it's worth, ECMA 48 is available on-line at the ECMA site.





More information about the Squeak-dev mailing list