Subject: bug#7786: 23.2; Encoding of PostScript files

From: Peter Dyballa <[email-masked]>
Date: Wed, 13 Oct 2021 23:02:29 +0200

Maybe this leads to an Adobe ISO Latin-1 encoding for GNU Emacs…

I copied off PLRM the encoding from page 605 and pasted into *scratch* buffer. In rectangular editing mode I reconstructed this table:

octal	0	1	2	3	4	5	6	7
------------------------------------------------------------------
\04x	  	!	"	#	$	%	&	’
\05x	(	)	*	+	,	-	.	/
\06x	0	1	2	3	4	5	6	7
\07x	8	9	:	;	<	=	>	?
\10x	@	A	B	C	D	E	F	G
\11x	H	I	J	K	L	M	N	O
\12x	P	Q	R	S	T	U	V	W
\13x	X	Y	Z	[	\	]	^	_
\14x	‘	a	b	c	d	e	f	g
\15x	h	i	j	k	l	m	n	o
\16x	p	q	r	s	t	u	v	w
\17x	x	y	z	{	|	}	~	 
\20x	 	 		 	 	 	 	 
\21x	 	 	 	 	 	 	 	 
\22x	ı	`	 ́ 	ˆ	 ̃	 ̄	 ̆	 ̇
\23x	 ̈		 ̊	 ̧	 	 ̋	 ̨	 
\24x	 	¡	¢	£	¤	¥	¦	§
\25x	 ̈	©	ª	«	¬	-	®	 ̄
\26x	°	±	²	³	 ́	μ	¶	·
\27x	 ̧	¹	º	»	¼	½	¾	¿
\30x	À	Á	Â	Ã	Ä	Å	Æ	Ç
\31x	È	É	Ê	Ë	Ì	Í	Î	Ï
\32x	Ð	Ñ	Ò	Ó	Ô	Õ	Ö	×
\33x	Ø	Ù	Ú	Û	Ü	Ý	Þ	ß
\34x	à	á	â	ã	ä	å	æ	ç
\35x	è	é	ê	ë	ì	í	î	ï
\36x	ð	ñ	ò	ó	ô	õ	ö	÷
\37x	ø	ù	ú	û	ü	ý	þ	ÿ

This was easy, each column is 27 lines high. So I could easily move, cut, and put.

In Wikipedia I went to "edit" the table. So I could copy the source code and paste it into *scratch* buffer. The lines started with some rubbish which ended in the reg-exp "[lr]l|". SO I could turn "^.*[rl]l|" → "". I sorted the lines in order remove all lines containing no context. On what was left I could sort-regexp-fields the complete lines on "|[0-9]+}}$". So the list was sorted. In column 64 I added in rectangular mode "• " because "•" is not encoded. A copy of the table above was stripped off the left-most column all TABs were converted into LINEFEEDs. By removing the empty lines I had a "vector" which I could easily move right of "• ". The result is:

0020|[[space character|SP]]|32|040}}				•  
0021|[[Exclamation mark|!]]|33|041}}				• !
0022|[[Quotation mark|"]] |34|042}}				• "
0023|[[Number sign|#]]|35|043}}					• #
0024|[[Dollar sign|$]]|36|044}}					• $
0025|[[Percent sign|%]]|37|045}}				• %
0026|[[Ampersand|&]]|38|046}}					• &
2019|[[Quotation mark|’]]|39|047}}				• ’
0028|[[Bracket|(]]|40|050}}					• (
0029|[[Bracket|)]]|41|051}}					• )
002A|[[Asterisk|*]]|42|052}}					• *
002B|[[Plus and minus signs|+]]|43|053}}			• +
002C|[[Comma (punctuation)|,]] |44|054}}			• ,
002D|[[Hyphen-minus|-]]|45|055}}				• -
002E|[[Full stop|.]]|46|056}}					• .
002F|[[Slash (punctuation)|/]] |47|057}}			• /
0030|[[0 (number)|0]]|48|060}}					• 0
0031|[[1 (number)|1]]|49|061}}					• 1
0032|[[2 (number)|2]]|50|062}}					• 2
0033|[[3 (number)|3]]|51|063}}					• 3
0034|[[4 (number)|4]]|52|064}}					• 4
0035|[[5 (number)|5]]|53|065}}					• 5
0036|[[6 (number)|6]]|54|066}}					• 6
0037|[[7 (number)|7]]|55|067}}					• 7
0038|[[8 (number)|8]]|56|070}}					• 8
0039|[[9 (number)|9]]|57|071}}					• 9
003A|[[colon (punctuation)|:]]|58|072}}				• :
003B|[[semicolon|;]]|59|073}}					• ;
003C|[[less-than sign|&lt;]]|60|074}}				• <
003D|[[equal sign|{{=}}]]|61|075}}				• =
003E|[[greater-than sign|&gt;]]|62|076}}			• >
003F|[[question mark|?]]|63|077}}				• ?
0040|[[@]]|64|100}}						• @
0041|[[A]]|65|101}}						• A
0042|[[B]]|66|102}}						• B
0043|[[C]]|67|103}}						• C
0044|[[D]]|68|104}}						• D
0045|[[E]]|69|105}}						• E
0046|[[F]]|70|106}}						• F
0047|[[G]]|71|107}}						• G
0048|[[H]]|72|110}}						• H
0049|[[I]]|73|111}}						• I
004A|[[J]]|74|112}}						• J
004B|[[K]]|75|113}}						• K
004C|[[L]]|76|114}}						• L
004D|[[M]]|77|115}}						• M
004E|[[N]]|78|116}}						• N
004F|[[O]]|79|117}}						• O
0050|[[P]]|80|120}}						• P
0051|[[Q]]|81|121}}						• Q
0052|[[R]]|82|122}}						• R
0053|[[S]]|83|123}}						• S
0054|[[T]]|84|124}}						• T
0055|[[U]]|85|125}}						• U
0056|[[V]]|86|126}}						• V
0057|[[W]]|87|127}}						• W
0058|[[X]]|88|130}}						• X
0059|[[Y]]|89|131}}						• Y
005A|[[Z]]|90|132}}						• Z
005B|[[Square brackets|&#91;]]|91|133}}				• [
005C|[[Backslash|\]]|92|134}}					• \
005D|[[Square brackets|&#93;]]|93|135}}				• ]
005E|[[Circumflex|^]]|94|136}}					• ^
005F|[[Underscore|_]]|95|137}}					• _
2018|[[Quotation mark|‘]]|96|140}}				• ‘
0061|[[a]]|97|141}}						• a
0062|[[b]]|98|142}}						• b
0063|[[c]]|99|143}}						• c
0064|[[d]]|100|144}}						• d
0065|[[e]]|101|145}}						• e
0066|[[f]]|102|146}}						• f
0067|[[g]]|103|147}}						• g
0068|[[h]]|104|150}}						• h
0069|[[i]]|105|151}}						• i
006A|[[j]]|106|152}}						• j
006B|[[k]]|107|153}}						• k
006C|[[l]]|108|154}}						• l
006D|[[m]]|109|155}}						• m
006E|[[n]]|110|156}}						• n
006F|[[o]]|111|157}}						• o
0070|[[p]]|112|160}}						• p
0071|[[q]]|113|161}}						• q
0072|[[r]]|114|162}}						• r
0073|[[s]]|115|163}}						• s
0074|[[t]]|116|164}}						• t
0075|[[u]]|117|165}}						• u
0076|[[v]]|118|166}}						• v
0077|[[w]]|119|167}}						• w
0078|[[x]]|120|170}}						• x
0079|[[y]]|121|171}}						• y
007A|[[z]]|122|172}}						• z
007B|[[Braces (punctuation)|&#123;]]|123|173}}			• {
007C|[[Vertical bar|{{pipe}}]]|124|174}}			• |
007D|[[Braces (punctuation)|&#125;]]|125|175}}			• }
007E|[[Tilde|~]]|126|176}}					• ~
0131|[[ı]]|144|220}}						• ı
0060|[[`]]|145|221}}						• `
00B4|[[´]]|146|222}}						•  ́
02C6|[[ˆ]]|147|223}}						• ˆ
02DC|[[˜]]|148|224}}						•  ̃
02C9|[[ˉ]]|149|225}}						•  ̄
02D8|[[˘]]|150|226}}						•  ̆
02D9|[[˙]]|151|227}}						•  ̇
00A8|[[¨]]|152|230}}						•  ̈
02DA|[[˚]]|154|232}}						•  ̊
00B8|[[¸]]|155|233}}						•  ̧
02DD|[[˝]]|157|235}}						•  ̋
02DB|[[˛]]|158|236}}						•  ̨
02C7|[[ˇ]]|159|237}}						• ˇ
00A0|[[Non-breaking space|NBSP]]|160|240}}			•  
00A1|[[Inverted question and exclamation marks|¡]]|161|241}}	• ¡
00A2|[[Cent (currency)#Symbol|¢]]|162|242}}			• ¢
00A3|[[Pound sign|£]]|163|243}}					• £
00A4|[[Currency (typography)|¤]]|164|244}}			• ¤
00A5|[[¥]]|165|245}}						• ¥
00A6|[[Vertical bar|¦]]|166|246}}				• ¦
00A7|[[Section sign|§]]|167|247}}				• §
00A8|[[¨]]|168|250}}						•  ̈
00A9|[[Copyright symbol|©]]|169|251}}				• ©
00AA|[[Ordinal indicator|ª]]|170|252}}				• ª
00AB|[[Guillemet|«]]|171|253}}					• «
00AC|[[Negation|¬]]|172|254}}					• ¬
00AD|[[Soft hyphen|SHY]]|173|255}}				• -
00AE|[[Registered trademark symbol|®]]|174|256}}		• ®
00AF|[[Macron (diacritic)|¯]]|175|257}}				•  ̄
00B0|[[Degree symbol|°]]|176|260}}				• °
00B1|[[Plus-minus sign|±]]|177|261}}				• ±
00B2|[[Square (algebra)|²]]|178|262}}				• ²
00B3|[[Cube (algebra)|³]]|179|263}}				• ³
00B4|[[Acute accent|´]]|180|264}}				•  ́
00B5|[[Micro sign|µ]]|181|265}}					• μ
00B6|[[Pilcrow|¶]]|182|266}}					• ¶
00B7|[[Interpunct|·]]|183|267}}					• ·
00B8|[[Cedilla|¸]]|184|270}}					•  ̧
00B9|[[Unicode subscripts and superscripts|¹]]|185|271}}	• ¹
00BA|[[Ordinal indicator|º]]|186|272}}				• º
00BB|[[Guillemet|»]]|187|273}}					• »
00BC|[[1/4 (disambiguation)|¼]]|188|274}}			• ¼
00BD|[[1/2 (disambiguation)|½]]|189|275}}			• ½
00BE|[[3/4 (disambiguation)|¾]]|190|276}}			• ¾
00BF|[[Inverted question mark|¿]]|191|277}}			• ¿
00C0|[[À]]|192|300}}						• À
00C1|[[Á]]|193|301}}						• Á
00C2|[[Â]]|194|302}}						• Â
00C3|[[Ã]]|195|303}}						• Ã
00C4|[[Ä]]|196|304}}						• Ä
00C5|[[Å]]|197|305}}						• Å
00C6|[[Æ]]|198|306}}						• Æ
00C7|[[Ç]]|199|307}}						• Ç
00C8|[[È]]|200|310}}						• È
00C9|[[É]]|201|311}}						• É
00CA|[[Ê]]|202|312}}						• Ê
00CB|[[Ë]]|203|313}}						• Ë
00CC|[[Ì]]|204|314}}						• Ì
00CD|[[Í]]|205|315}}						• Í
00CE|[[Î]]|206|316}}						• Î
00CF|[[Ï]]|207|317}}						• Ï
00D0|[[Eth|Ð]]|208|320}}					• Ð
00D1|[[Ñ]]|209|321}}						• Ñ
00D2|[[Ò]]|210|322}}						• Ò
00D3|[[Ó]]|211|323}}						• Ó
00D4|[[Ô]]|212|324}}						• Ô
00D5|[[Õ]]|213|325}}						• Õ
00D6|[[Ö]]|214|326}}						• Ö
00D7|[[Multiplication sign|×]]|215|327}}			• ×
00D8|[[Ø]]|216|330}}						• Ø
00D9|[[Ù]]|217|331}}						• Ù
00DA|[[Ú]]|218|332}}						• Ú
00DB|[[Û]]|219|333}}						• Û
00DC|[[Ü]]|220|334}}						• Ü
00DD|[[Ý]]|221|335}}						• Ý
00DE|[[Thorn (letter)|Þ]]|222|336}}				• Þ
00DF|[[ß]]|223|337}}						• ß
00E0|[[à]]|224|340}}						• à
00E1|[[á]]|225|341}}						• á
00E2|[[â]]|226|342}}						• â
00E3|[[ã]]|227|343}}						• ã
00E4|[[ä]]|228|344}}						• ä
00E5|[[å]]|229|345}}						• å
00E6|[[æ]]|230|346}}						• æ
00E7|[[ç]]|231|347}}						• ç
00E8|[[è]]|232|350}}						• è
00E9|[[é]]|233|351}}						• é
00EA|[[ê]]|234|352}}						• ê
00EB|[[ë]]|235|353}}						• ë
00EC|[[ì]]|236|354}}						• ì
00ED|[[í]]|237|355}}						• í
00EE|[[î]]|238|356}}						• î
00EF|[[ï]]|239|357}}						• ï
00F0|[[Eth|ð]]|240|360}}					• ð
00F1|[[ñ]]|241|361}}						• ñ
00F2|[[ò]]|242|362}}						• ò
00F3|[[ó]]|243|363}}						• ó
00F4|[[ô]]|244|364}}						• ô
00F5|[[õ]]|245|365}}						• õ
00F6|[[ö]]|246|366}}						• ö
00F7|[[Obelus|÷]]|247|367}}					• ÷
00F8|[[ø]]|248|370}}						• ø
00F9|[[ù]]|249|371}}						• ù
00FA|[[ú]]|250|372}}						• ú
00FB|[[û]]|251|373}}						• û
00FC|[[ü]]|252|374}}						• ü
00FD|[[ý]]|253|375}}						• ý
00FE|[[Thorn (letter)|þ]]|254|376}}				• þ
00FF|[[ÿ]]|255|377}}						• ÿ

It looks as if both tables (PLRM and Wikipedia) describe the same encoding. To have a proof I took a copy of this table and cut the "vector" at the right edge and put it below the table, between them a separating line of plus signs. From the remainder of the table I could delete all from "]]" to "$", and then all from"^" to "|". The remaining "[[" pairs could be removed. I split the window into two and invoked compare-windows. Of course it choked a few times because some characters are in HTML notation, but it proved that both encoding vectors are actually the same.

So I presume the data above can be used for the Adobe Standard ISO Latin-1 encoding. (After some further editing.)

--
Greetings

  Pete

It is so hot in some places that the people there have to live in other places.