Subject: bug#13745: c1-acronyms

From: [email-masked] (Per Starbäck)
Date: Mon, 18 Feb 2013 18:00:45 +0100

In GNU Emacs 24.2.93.1.

char-acronym-table has three entries with "XXX". They are from
lisp/international/characters.el :

> (let ((c1-acronyms '("XXX" "XXX" "BPH" "NBH" "IND" "NEL" "SSA" "ESA"
> 		     "HTS" "HTJ" "VTS" "PLD" "PLU" "R1"  "SS2" "SS1"
> 		     "DCS" "PU1" "PU2" "STS" "CCH" "MW"  "SPA" "EPA"
> 		     "SOS" "XXX" "SC1" "CSI" "ST"  "OSC" "PM"  "APC")))

These are the three C1 control characters that are listed with no name
in Unicode and that aren't part of ISO/IEC 6429.

These had the acros PAD, HOP, SGCI in draft DIS 10646, but weren't
standardized (not accepted to ISO 10646).

  http://en.wikipedia.org/wiki/C0_and_C1_control_codes#C1_set
  http://www.aivosto.com/vbtips/control-characters.html

I don't like the acronym feature showing different characters the same,
so I suggest that "XXX" is replaced by the inofficial PAD, HOP, SGCI
here.

Alternatively, if that is not OK, that the target c1-control for
glyphless-char-display skips these three characters.

======================================================================
$  diff -cp lisp/international/characters.el lisp/international/characters-fixc1.el
*** lisp/international/characters.el	2013-01-01 21:37:17.000000000 +0100
--- lisp/international/characters-fixc1.el	2013-02-18 17:58:29.103018508 +0100
*************** Setup char-width-table appropriate for n
*** 1354,1363 ****
      (aset char-acronym-table i (car c0-acronyms))
      (setq c0-acronyms (cdr c0-acronyms))))
  
! (let ((c1-acronyms '("XXX" "XXX" "BPH" "NBH" "IND" "NEL" "SSA" "ESA"
  		     "HTS" "HTJ" "VTS" "PLD" "PLU" "R1"  "SS2" "SS1"
  		     "DCS" "PU1" "PU2" "STS" "CCH" "MW"  "SPA" "EPA"
! 		     "SOS" "XXX" "SC1" "CSI" "ST"  "OSC" "PM"  "APC")))
    (dotimes (i 32)
      (aset char-acronym-table (+ #x0080 i) (car c1-acronyms))
      (setq c1-acronyms (cdr c1-acronyms))))
--- 1354,1363 ----
      (aset char-acronym-table i (car c0-acronyms))
      (setq c0-acronyms (cdr c0-acronyms))))
  
! (let ((c1-acronyms '("PAD" "HOP" "BPH" "NBH" "IND" "NEL" "SSA" "ESA"
  		     "HTS" "HTJ" "VTS" "PLD" "PLU" "R1"  "SS2" "SS1"
  		     "DCS" "PU1" "PU2" "STS" "CCH" "MW"  "SPA" "EPA"
! 		     "SOS" "SGCI" "SC1" "CSI" "ST"  "OSC" "PM"  "APC")))
    (dotimes (i 32)
      (aset char-acronym-table (+ #x0080 i) (car c1-acronyms))
      (setq c1-acronyms (cdr c1-acronyms))))

======================================================================