<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">I will likely not have a response to all the comments below. But just two things:<div class=""><br class=""></div><div class="">1) In the proposal I wrote, all the so-called modes are deprecated. As far as I know, none were ever implemented anywhere, and all were a bad idea.</div><div class=""><br class=""></div><div class="">2) â€<i class="">most terminal emulators (which accept bare LF as a full newline in their default modes</i>â€</div><div class="">I don’t think that is true. Firstly we have the â€cooked†vs. â€raw†modes (when â€echo mode†is on) in Unix/Linux ttys; that is a setting for the tty, not the terminal emulator. Then there are such things as shell command line tools (like bash) which does their own â€echoing†(tty echo off), and does so in quite complicated ways, allowing for editing in the command line, as well as command history. But all that is out of scope for ECMA-48 except that ECMA-48 control sequences (not the styling ones, but other control sequences for â€screen editingâ€) are used to implement their behaviour.</div><div class=""><br class=""></div><div class="">Kind regards</div><div class="">/Kent K</div><div class=""><div><br class=""><blockquote type="cite" class=""><div class="">8 jan. 2023 kl. 22:45 skrev Harriet Riddle via Unicode <<a href="mailto:unicode@corp.unicode.org" class="">unicode@corp.unicode.org</a>>:</div><br class="Apple-interchange-newline"><div class="">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" class="">
<div text="#000000" bgcolor="#FFFFFF" class="">
<div class="moz-cite-prefix">Kent Karlsson via Unicode wrote:<br class="">
</div>
<blockquote type="cite" cite="mid:93C72EA1-D44E-4826-8B3E-A45E8B17F2B1@bahnhof.se" class="">
Well, yes... But the problem is that, IIUC, the ECMA-48 committee
is currently the empty set of people…
<div class=""><br class="">
</div>
<div class="">/K<br class="">
</div>
</blockquote>
<br class="">
---<br class="">
<br class="">
Tangentially to this, I do much believe that a new edition of
ECMA-48 which clarifies and addresses relationship both to Unicode
and to established convention would be of practical benefit, with
the following points standing out to me:<br class="">
<br class="">
â‘ The penultimate edition of ECMA-48 (fourth edition, December 1986,
still archived at the bottom of ECMA's page for ECMA-48) deprecates
a number of mode flags and control functions in Appendix E (pages
84–87).  Notable amongst these deprecations is LF/NLM (E.1.3, bottom
of page 84 / top of page 85), i.e. the mode flag that toggles
whether linefeeds imply a carriage return.  The note (E.1) attached
to that section explains the deprecation, stating essentially that
full line breaks should use either NEL or CR+LF moving forward; the
IND control for explicit bare linefeed is also in the deprecated
features appendix as E.2.3.  In the fifth and current edition (June
1991), per the 1998 reprint available as PDF from ECMA's page, both
LF/NLM and IND were removed altogether, announced in annex F.5.2
(page numbered 88 / 102nd PDF page) and annex F.8.2 (page numbered
89 / 103rd PDF page) respectively.  The definition of LF (section
8.3.74, page numbered 49 / 63rd PDF page) unambiguously specifies a
move to the "corresponding character position" (as opposed to the
start) of the following line.  Therefore, <i class="">most terminal
emulators (which accept bare LF as a full newline in their default
modes) are actually in violation of the current edition of ECMA-48
(and exhibit deprecated but permitted behaviour per the edition
before), as are virtually all modern text editors, for example</i>. 
Honestly, the elimination of the LF/NLM mode comes across as wishful
thinking on the part of the committee, but hindsight is 20:20.  A
mode such as LF/NLM probably ought to be restored so as to align the
standard with the by-now-set-in-stone reality.<br class="">
<br class="">
â‘¡ Speaking of ECMA-48 and the CR vs LF vs CRLF vs NEL vs LSEP issue,
better coördination between UAX 14 and ECMA-48 might be in order. 
This doesn't cause as much of an issue in practice, since the
contexts where ECMA-48 is actually implemented (monospaced terminal
emulators) are largely disjoint with these where UAX 14 is
implemented, but it should be clearer how an implementation can be
concordant with both (for example, whether an ECMA-48 conformant
implementation of CR or VT is sufficient to count as a line break
for UAX 14 purposes).  This is particularly relevant should one wish
to use ECMA-48 in a non-terminal context, as seems to be part of the
present discussion.<br class="">
<br class="">
â‘¢ Section 5 needs reworking to address how it interacts with Unicode
Transformation Formats (other than the erstwhile abortive UTF-1,
which it works fine with, for all this has any effect on anything). 
The representation of the C0 and C1 codes is given in 7-bit and
8-bit column/line bit combinations.  I believe ISO/IEC 10646 briefly
addresses how these translate to UTF-16 or UTF-32 (padding to code
unit width), but this would be ideal to have addressed in ECMA-48
itself in this day and age; furthermore, even with that provision,
"bit combinations from 08/00 to 09/15" in the context of UTF-8
arguably prescribes fragmentary or invalid UTF-8 sequences rather
than the UTF-8 representations of the C1 code points.<br class="">
<br class="">
â‘£ Also in section 5: command strings (DCS, OSC, PM and APC) are
limited to 0x08–0D (the ASCII FEx format effectors) and 0x20–7E (the
ASCII printing characters including space).  This is contrasted with
character strings (SOS) which have no such restriction, with only
SOS itself being forbidden (and ST not includable due to being the
terminator).  In practice, not only ASCII printing characters but
arbitrary Unicode characters—other than Cc control codes outside of
the aforementioned 0x08–0D range—are permitted in OSC sequences
recognised by terminal emulators, which often contain text.  For
example, "\u{9D}0;flambé\u{9C}" will set a terminal window title to
"flambé", even though "é" is not an ASCII character.  This is
another area which probably needs updating to align it with both
industry practice and a Unicode age.<br class="">
<br class="">
⑤ The characters listed as affected by the FEAM mode in section
7.2.5 needs looking at—for instance, it lists BPH (equivalent to
ZWSP) but not its opposite NBH (equivalent to WJ).  It also lists CR
and NEL but not LF, all of which are format effectors per section
8.2.4.  The interaction with Unicode general categories should also
be addressed: presumably it would apply to the format category (Cf),
and possibly also Zl and Zp, in addition to the specific listed Cc
characters and CSI sequences, but this should be addressed in the
FEAM definition, annex A.1, or both.<br class="">
<br class="">
â‘¥ Speaking of annex A, annex A.2 and the GCC sequence might deserve
addressing as to their relation to Unicode.  Certainly, ECMA-43
(conformed to by ISO 8859—and yes, the graphical resemblence between
"ECMA-43" and "ECMA-48" can be confusing whenever these two
standards are discussed together) puts significant limitations on
the ECMA-48 codes used for composition, prohibiting any such
composition that creates a new character rather than merely a
ligature of existing characters (see annex C of ECMA-43, contrast
with annex A.2 of ECMA-48).  This both bans backspace composition,
and constrains the use of GCC to discretionary ligatures (which is
not explicitly constrained by ECMA-48 itself—indeed, annex A seems
to prescribe GCC as a migration path from backspace
composition—although the note on the definition of GCC itself in
section 8.3.54 mentions CJK square ligatures as the simple case, not
diacritic composition or APL composition).  Backspace composition is
similarly not really compatible with the Unicode model of base
characters, combining characters and pre-composed diacritic-bearing
characters (and composed-symbol APL operators without
decompositions), although discretionary ligatures are manifestly
compatible with the Unicode character model (see e.g. the OpenType
dlig feature and the CSS font-variant-ligatures property).<br class="">
<br class="">
--Har.<br class="">
<br class="">
<br class="">
</div>
</div></blockquote></div><br class=""></div></body></html>