emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

new coding system (was: Re: prettify symbols question)


From: Alfred M. Szmidt
Subject: new coding system (was: Re: prettify symbols question)
Date: Fri, 13 Nov 2020 09:47:16 -0500

   > (define-charset 'lispm
   >   "LISPM"
   >   :short-name "LISPM"
   >   :ascii-compatible-p nil
   >   :code-space [0 255]
   >   :map "LISPM")
   > 
   > (define-coding-system 'lispm
   >   "Lisp Machine encoding"
   >   :coding-type 'charset
   >   :mnemonic ?L
   >   :charset-list '(lispm))
   > 
   > So that sorts it out for the native one, but what should be done for
   > the Unix friendly mapping?  LISPM-ASCII, and similar as above?

   Something like that.  Although I'm not sure about the name.  But why
   do you need the native variant?  If we only need one charset, for how
   it is seen on Unix, we could call that 'lispm'.

Right, it is easy enough to convert if one has native files.  

So I've created a LISPM charmap, and a LISPM charset map based on
that.  Then calling define-charset and define-coding-system, if I now
try to open a Lisp machine file in the lispm coding it seems to be
unable to handle the various characters; e.g., #o210.

  These default coding systems were tried to encode text
  in the buffer ‘lispm-char-test.text’:
    (lispm-unix (1 . 0) (59 . 1) (117 . 2) (175 . 3) (233 . 4) (291 . 5)
    (349 . 6) (407 . 7) (465 . 4194184) (523 . 4194185) (581 . 4194186))
  However, each of them encountered characters it couldn’t encode:
    ....

Is there something that I forgot to do?

===File ~/emacs/admin/charsets/glibc/LISPM.gz===============
<code_set_name> LISPM
<comment_char> %
<escape_char> /
% version: 1.0
%  source: The Lisp Machine Manual, 6th ed.

CHARMAP
<U00B7>    /x00        MIDDLE DOT
<U2193>    /x01        DOWNWARDS ARROW
<U03B1>    /x02        GREEK SMALL LETTER ALPHA
<U03B2>    /x03        GREEK SMALL LETTER BETA
<U2227>    /x04        LOGICAL AND
<U00AC>    /x05        NOT SIGN
<U03B5>    /x06        GREEK SMALL LETTER EPSILON
<U03C0>    /x07        GREEK SMALL LETTER PI
<U03BB>    /x88        GREEK SMALL LETTER LAMDA
<U03B3>    /x89        GREEK SMALL LETTER GAMMA
<U03B4>    /x8a        GREEK SMALL LETTER DELTA
<U2191>    /x8b        UPWARDS ARROW
<U00B1>    /x8c        PLUS-MINUS SIGN
<U2295>    /x8d        CIRCLED PLUS
<U221E>    /x0e        INFINITY
<U2202>    /x0f        PARTIAL DIFFERENTIAL
<U2282>    /x10        SUBSET OF
<U2283>    /x11        SUPERSET OF
<U2229>    /x12        INTERSECTION
<U222A>    /x13        UNION
<U2200>    /x14        FOR ALL
<U2203>    /x15        THERE EXISTS
<U2297>    /x16        CIRCLED TIMES
<U2194>    /x17        LEFT RIGHT ARROW
<U2190>    /x18        LEFTWARDS ARROW
<U2192>    /x19        RIGHTWARDS ARROW
<U2260>    /x1a        NOT EQUAL TO
<U25CA>    /x1b        LOZENGE
<U2264>    /x1c        LESS-THAN OR EQUAL TO
<U2265>    /x1d        GREATER-THAN OR EQUAL TO
<U2261>    /x1e        IDENTICAL TO
<U2228>    /x1f        LOGICAL OR
<U0020>    /x20        SPACE
<U0021>    /x21        EXCLAMATION MARK
<U0022>    /x22        QUOTATION MARK
<U0023>    /x23        NUMBER SIGN
<U0024>    /x24        DOLLAR SIGN
<U0025>    /x25        PERCENT SIGN
<U0026>    /x26        AMPERSAND
<U0027>    /x27        APOSTROPHE
<U0028>    /x28        LEFT PARENTHESIS
<U0029>    /x29        RIGHT PARENTHESIS
<U002A>    /x2a        ASTERISK
<U002B>    /x2b        PLUS SIGN
<U002C>    /x2c        COMMA
<U002D>    /x2d        HYPHEN-MINUS
<U002E>    /x2e        FULL STOP
<U002F>    /x2f        SOLIDUS
<U0030>    /x30        DIGIT ZERO
<U0031>    /x31        DIGIT ONE
<U0032>    /x32        DIGIT TWO
<U0033>    /x33        DIGIT THREE
<U0034>    /x34        DIGIT FOUR
<U0035>    /x35        DIGIT FIVE
<U0036>    /x36        DIGIT SIX
<U0037>    /x37        DIGIT SEVEN
<U0038>    /x38        DIGIT EIGHT
<U0039>    /x39        DIGIT NINE
<U003A>    /x3a        COLON
<U003B>    /x3b        SEMICOLON
<U003C>    /x3c        LESS-THAN SIGN
<U003D>    /x3d        EQUALS SIGN
<U003E>    /x3e        GREATER-THAN SIGN
<U003F>    /x3f        QUESTION MARK
<U0040>    /x40        COMMERCIAL AT
<U0041>    /x41        LATIN CAPITAL LETTER A
<U0042>    /x42        LATIN CAPITAL LETTER B
<U0043>    /x43        LATIN CAPITAL LETTER C
<U0044>    /x44        LATIN CAPITAL LETTER D
<U0045>    /x45        LATIN CAPITAL LETTER E
<U0046>    /x46        LATIN CAPITAL LETTER F
<U0047>    /x47        LATIN CAPITAL LETTER G
<U0048>    /x48        LATIN CAPITAL LETTER H
<U0049>    /x49        LATIN CAPITAL LETTER I
<U004A>    /x4a        LATIN CAPITAL LETTER J
<U004B>    /x4b        LATIN CAPITAL LETTER K
<U004C>    /x4c        LATIN CAPITAL LETTER L
<U004D>    /x4d        LATIN CAPITAL LETTER M
<U004E>    /x4e        LATIN CAPITAL LETTER N
<U004F>    /x4f        LATIN CAPITAL LETTER O
<U0050>    /x50        LATIN CAPITAL LETTER P
<U0051>    /x51        LATIN CAPITAL LETTER Q
<U0052>    /x52        LATIN CAPITAL LETTER R
<U0053>    /x53        LATIN CAPITAL LETTER S
<U0054>    /x54        LATIN CAPITAL LETTER T
<U0055>    /x55        LATIN CAPITAL LETTER U
<U0056>    /x56        LATIN CAPITAL LETTER V
<U0057>    /x57        LATIN CAPITAL LETTER W
<U0058>    /x58        LATIN CAPITAL LETTER X
<U0059>    /x59        LATIN CAPITAL LETTER Y
<U005A>    /x5a        LATIN CAPITAL LETTER Z
<U005B>    /x5b        LEFT SQUARE BRACKET
<U005C>    /x5c        REVERSE SOLIDUS
<U005D>    /x5d        RIGHT SQUARE BRACKET
<U005E>    /x5e        CIRCUMFLEX ACCENT
<U005F>    /x5f        LOW LINE
<U0060>    /x60        GRAVE ACCENT
<U0061>    /x61        LATIN SMALL LETTER A
<U0062>    /x62        LATIN SMALL LETTER B
<U0063>    /x63        LATIN SMALL LETTER C
<U0064>    /x64        LATIN SMALL LETTER D
<U0065>    /x65        LATIN SMALL LETTER E
<U0066>    /x66        LATIN SMALL LETTER F
<U0067>    /x67        LATIN SMALL LETTER G
<U0068>    /x68        LATIN SMALL LETTER H
<U0069>    /x69        LATIN SMALL LETTER I
<U006A>    /x6a        LATIN SMALL LETTER J
<U006B>    /x6b        LATIN SMALL LETTER K
<U006C>    /x6c        LATIN SMALL LETTER L
<U006D>    /x6d        LATIN SMALL LETTER M
<U006E>    /x6e        LATIN SMALL LETTER N
<U006F>    /x6f        LATIN SMALL LETTER O
<U0070>    /x70        LATIN SMALL LETTER P
<U0071>    /x71        LATIN SMALL LETTER Q
<U0072>    /x72        LATIN SMALL LETTER R
<U0073>    /x73        LATIN SMALL LETTER S
<U0074>    /x74        LATIN SMALL LETTER T
<U0075>    /x75        LATIN SMALL LETTER U
<U0076>    /x76        LATIN SMALL LETTER V
<U0077>    /x77        LATIN SMALL LETTER W
<U0078>    /x78        LATIN SMALL LETTER X
<U0079>    /x79        LATIN SMALL LETTER Y
<U007A>    /x7a        LATIN SMALL LETTER Z
<U007B>    /x7b        LEFT CURLY BRACKET
<U007C>    /x7c        VERTICAL LINE
<U007D>    /x7d        RIGHT CURLY BRACKET
<U007E>    /x7e        TILDE
% 177 ctl-qm
% 200 Null character     
% 201 Break              
% 202 Clear              
% 203 Call               
% 204 Terminal escape    
% 205 Macro/backnext     
% 206 Help               
% 207 Rubout             
<U0008>    /x08         BACKSPACE (BS) / Overstrike    
<U0009>    /x09         CHARACTER TABULATION (HT) / Tab
<U000D>    /x0d         CARRIAGE RETURN (CR) / Line
<U000B>    /x0b         LINE TABULATION (VT) / Delete
<U000C>    /x0c         FORM FEED (FF) / Page
<U000A>    /x0a         LINE FEED (LF) / Return
% 216 Quote         
% 217 Hold-output   
% 220 Stop-output   
% 221 Abort         
% 222 Resume        
% 223 Status        
% 224 End           
% 225 Roman-i       
% 226 Roman-ii      
% 227 Roman-iii     
% 230 Roman-iv
% 231 Hand-up
% 232 Hand-down
% 233 Hand-left
% 234 Hand-right
% 235 System
% 236 Network
% 237-377 reserved for the future
END CHARMAP
============================================================

===File ~/emacs/etc/charsets/LISPM.map======================
# Generated from LISPM in localedata/charmaps of glibc
0x00 0x00B7
0x01 0x2193
0x02-0x03 0x03B1
0x04 0x2227
0x05 0x00AC
0x06 0x03B5
0x07 0x03C0
0x08-0x0D 0x0008
0x0E 0x221E
0x0F 0x2202
0x10-0x11 0x2282
0x12-0x13 0x2229
0x14 0x2200
0x15 0x2203
0x16 0x2297
0x17 0x2194
0x18 0x2190
0x19 0x2192
0x1A 0x2260
0x1B 0x25CA
0x1C-0x1D 0x2264
0x1E 0x2261
0x1F 0x2228
0x20-0x7E 0x0020
0x88 0x03BB
0x89-0x8A 0x03B3
0x8B 0x2191
0x8C 0x00B1
0x8D 0x2295
============================================================



reply via email to

[Prev in Thread] Current Thread [Next in Thread]