Charset request for iconv (patch included)
Commit Message
Hi guys,
Could you add the eight-bit HP-48 charset to iconv?
It's Latin-1 plus various Greek letters and mathematical
symbols, and it's useful for copying files to and from
the HP-48 series of calculators. I've written a patch
and tested it. (see attached)
I copied the table from
http://www.drehersoft.com/mapping-hp48-text-to-unicode/
The "Latin small a with macron" really should be a
small "x", but Unicode only provides vowels with macrons.
The website explains why they don't recommend a combining
macron over a plain "x".
Dave Coffin 9/30/2016
Comments
> Could you add the eight-bit HP-48 charset to iconv?
> It's Latin-1 plus various Greek letters and mathematical
> symbols, and it's useful for copying files to and from
> the HP-48 series of calculators. I've written a patch
> and tested it. (see attached)
Is this an official mapping provided by HP?
> The "Latin small a with macron" really should be a
> small "x", but Unicode only provides vowels with macrons.
> The website explains why they don't recommend a combining
> macron over a plain "x".
This doesn't look like a good idea at all. The character should be
added to Unicode instead (if the charset is still in use).
The mapping for ∑ seems incorrect, it uses Σ instead. The other Greek
letters should perhaps map to mathematic symbols, too, not the Greek
alphabet.
But I'm still not convinced that this character set is relevant enough
for inclusion into glibc.
Hi Florian,
> Is this an official mapping provided by HP?
I don't believe there is an official mapping. The author
mentions two other mappings and how they differ from his. He
also explains why he chose Greek letters over mathematical
symbols. (Your Greek sigma looks correct in my editor while
the math sigma looks like "???", so I can guess which is more
widely supported.)
As for relevance, these calculators were in continuous
production from 1990 to 2015, so there must be several million
of them still in service.
HP's latest graphing calculator, the HP Prime, uses Unicode.
It cannot run any HP-48 programs, so the older calculators will
enjoy high demand on the second-hand market for many years to come.
Dave Coffin 10/2/2016
On Sat, Oct 01, 2016 at 10:39:10PM +0200, Florian Weimer wrote:
> > Could you add the eight-bit HP-48 charset to iconv?
> > It's Latin-1 plus various Greek letters and mathematical
> > symbols, and it's useful for copying files to and from
> > the HP-48 series of calculators. I've written a patch
> > and tested it. (see attached)
>
> Is this an official mapping provided by HP?
>
> > The "Latin small a with macron" really should be a
> > small "x", but Unicode only provides vowels with macrons.
> > The website explains why they don't recommend a combining
> > macron over a plain "x".
>
> This doesn't look like a good idea at all. The character should be
> added to Unicode instead (if the charset is still in use).
>
> The mapping for ∑ seems incorrect, it uses Σ instead. The other Greek
> letters should perhaps map to mathematic symbols, too, not the Greek
> alphabet.
>
> But I'm still not convinced that this character set is relevant enough
> for inclusion into glibc.
On Okt 02 2016, dcoffin@shell.cybercom.net wrote:
> I don't believe there is an official mapping. The author
> mentions two other mappings and how they differ from his. He
> also explains why he chose Greek letters over mathematical
> symbols. (Your Greek sigma looks correct in my editor while
> the math sigma looks like "???", so I can guess which is more
> widely supported.)
Just because some broken programs cannot display the characters should
not be a reason to use a wrong mapping.
Andreas.
* Andreas Schwab:
> On Okt 02 2016, dcoffin@shell.cybercom.net wrote:
>
>> I don't believe there is an official mapping. The author
>> mentions two other mappings and how they differ from his. He
>> also explains why he chose Greek letters over mathematical
>> symbols. (Your Greek sigma looks correct in my editor while
>> the math sigma looks like "???", so I can guess which is more
>> widely supported.)
Considering that the uppercase Greek sigma is next to an integral
sign, I'm prety sure that its intended meaning is the mathematic
operator. It's also how it is used in the HP-48 user interface. (I
once had one myself.)
> Just because some broken programs cannot display the characters should
> not be a reason to use a wrong mapping.
Right. And I would say the same applies to intentionally using a
wrong mapping. “x̄” would have to be added to the Unicode to standard
to enable compatibility with the HP-48 character set.
Would we accept the mapping in case these issues were addressed? I
still don't think so.
OK then, let's use the math-sigma. Can the
Unicode-->HP-48 conversion be set to accept either?
I still don't fully understand why Unicode has
accented letters when zero-width combining marks are
available. Best I can figure is that it allows C code
to treat each letter as an integer instead of a string
of indeterminate length.
Having an "x with macron" character would also
mean that when "x" appears in Unicode text, iconv can
write "x" to the HP-48 text without first checking to
see if the next character is a macron. But there's
obviously a reason why you implemented charsets with
DLLs instead of simple tables -- was it not to handle
special cases like this?
How much power do you guys have to add new
characters to the Unicode standard?
Dave Coffin 10/2/2016
On Sun, Oct 02, 2016 at 10:00:08AM +0200, Florian Weimer wrote:
> * Andreas Schwab:
>
> > On Okt 02 2016, dcoffin@shell.cybercom.net wrote:
> >
> >> I don't believe there is an official mapping. The author
> >> mentions two other mappings and how they differ from his. He
> >> also explains why he chose Greek letters over mathematical
> >> symbols. (Your Greek sigma looks correct in my editor while
> >> the math sigma looks like "???", so I can guess which is more
> >> widely supported.)
>
> Considering that the uppercase Greek sigma is next to an integral
> sign, I'm prety sure that its intended meaning is the mathematic
> operator. It's also how it is used in the HP-48 user interface. (I
> once had one myself.)
>
> > Just because some broken programs cannot display the characters should
> > not be a reason to use a wrong mapping.
>
> Right. And I would say the same applies to intentionally using a
> wrong mapping. “x̄” would have to be added to the Unicode to standard
> to enable compatibility with the HP-48 character set.
>
> Would we accept the mapping in case these issues were addressed? I
> still don't think so.
On 10/03/2016 05:24 AM, dcoffin@shell.cybercom.net wrote:
> OK then, let's use the math-sigma. Can the
> Unicode-->HP-48 conversion be set to accept either?
>
> I still don't fully understand why Unicode has
> accented letters when zero-width combining marks are
> available.
I believe such code points exist if there is a legacy character set that
have a matching code point.
Anyway, I'm not convinced that this charset is in active use to a degree
that it would merit inclusion in glibc.
Florian
@@ -61,7 +61,7 @@
IBM5347 IBM9030 IBM9066 IBM9448 IBM12712 IBM16804 \
IBM1364 IBM1371 IBM1388 IBM1390 IBM1399 ISO_11548-1 MIK BRF \
MAC-CENTRALEUROPE KOI8-RU ISO8859-9E \
- CP770 CP771 CP772 CP773 CP774
+ CP770 CP771 CP772 CP773 CP774 HP-48
modules.so := $(addsuffix .so, $(modules))
@@ -163,7 +163,7 @@
iso8859-11 ibm866nav pt154 rk1048 mik brf \
mac-centraleurope koi8-ru hp-roman8 hp-roman9 \
ebcdic-es ebcdic-es-a ebcdic-is-friss ebcdic-uk \
- iso8859-16 viscii iso8859-9e hp-turkish8 \
+ iso8859-16 viscii iso8859-9e hp-turkish8 hp-48 \
hp-thai8 hp-greek8 cp770 cp771 cp772 cp773 cp774
@@ -1961,3 +1961,8 @@
alias OSF10010004// HP-GREEK8//
module HP-GREEK8// INTERNAL HP-GREEK8 1
module INTERNAL HP-GREEK8// HP-GREEK8 1
+
+# from to module cost
+alias HP48// HP-48//
+module HP-48// INTERNAL HP-48 1
+module INTERNAL HP-48// HP-48 1
@@ -0,0 +1,28 @@
+/* Conversion from and to HP-48.
+ Copyright (C) 1997-2016 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+ Contributed by Ulrich Drepper <drepper@cygnus.com>, 1997.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#include <stdint.h>
+
+/* Specify the conversion table. */
+#define TABLES <hp-48.h>
+
+#define CHARSET_NAME "HP-48//"
+#define HAS_HOLES 0 /* All 256 character are defined. */
+
+#include <8bit-gap.c>
@@ -0,0 +1,271 @@
+<code_set_name> HP-48
+<comment_char> %
+<escape_char> /
+% version: 1.0
+% character set used by HP 48 series calculators
+% same as Latin-1 but some control characters are replaced
+% with various Greek letters and math symbols.
+% source: http://www.drehersoft.com/mapping-hp48-text-to-unicode/
+
+CHARMAP
+<U0000> /x00 NULL (NUL)
+<U0001> /x01 START OF HEADING (SOH)
+<U0002> /x02 START OF TEXT (STX)
+<U0003> /x03 END OF TEXT (ETX)
+<U0004> /x04 END OF TRANSMISSION (EOT)
+<U0005> /x05 ENQUIRY (ENQ)
+<U0006> /x06 ACKNOWLEDGE (ACK)
+<U0007> /x07 BELL (BEL)
+<U0008> /x08 BACKSPACE (BS)
+<U0009> /x09 CHARACTER TABULATION (HT)
+<U000A> /x0a LINE FEED (LF)
+<U000B> /x0b LINE TABULATION (VT)
+<U000C> /x0c FORM FEED (FF)
+<U000D> /x0d CARRIAGE RETURN (CR)
+<U000E> /x0e SHIFT OUT (SO)
+<U000F> /x0f SHIFT IN (SI)
+<U0010> /x10 DATALINK ESCAPE (DLE)
+<U0011> /x11 DEVICE CONTROL ONE (DC1)
+<U0012> /x12 DEVICE CONTROL TWO (DC2)
+<U0013> /x13 DEVICE CONTROL THREE (DC3)
+<U0014> /x14 DEVICE CONTROL FOUR (DC4)
+<U0015> /x15 NEGATIVE ACKNOWLEDGE (NAK)
+<U0016> /x16 SYNCHRONOUS IDLE (SYN)
+<U0017> /x17 END OF TRANSMISSION BLOCK (ETB)
+<U0018> /x18 CANCEL (CAN)
+<U0019> /x19 END OF MEDIUM (EM)
+<U001A> /x1a SUBSTITUTE (SUB)
+<U001B> /x1b ESCAPE (ESC)
+<U001C> /x1c FILE SEPARATOR (IS4)
+<U001D> /x1d GROUP SEPARATOR (IS3)
+<U001E> /x1e RECORD SEPARATOR (IS2)
+<U2026> /x1f ELLIPSIS
+<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
+<U2592> /x7f MEDIUM SHADE
+<U2220> /x80 ANGLE
+<U0101> /x81 LATIN SMALL LETTER A WITH MACRON
+<U2207> /x82 NABLA
+<U221A> /x83 SQUARE ROOT
+<U222B> /x84 INTEGRAL
+<U03A3> /x85 GREEK CAPITAL LETTER SIGMA
+<U25B6> /x86 BLACK RIGHT-POINTING TRIANGLE
+<U03C0> /x87 GREEK SMALL LETTER PI
+<U2202> /x88 PARTIAL DIFFERENTIAL
+<U2264> /x89 LESS-THAN OR EQUAL TO
+<U2265> /x8a GREATER-THAN OR EQUAL TO
+<U2260> /x8b NOT EQUAL TO
+<U03B1> /x8c GREEK SMALL LETTER ALPHA
+<U2192> /x8d RIGHTWARDS ARROW
+<U2190> /x8e LEFTWARDS ARROW
+<U2193> /x8f DOWNWARDS ARROW
+<U2191> /x90 UPWARDS ARROW
+<U03B3> /x91 GREEK SMALL LETTER GAMMA
+<U03B4> /x92 GREEK SMALL LETTER DELTA
+<U03B5> /x93 GREEK SMALL LETTER EPSILON
+<U03B7> /x94 GREEK SMALL LETTER ETA
+<U03B8> /x95 GREEK SMALL LETTER THETA
+<U03BB> /x96 GREEK SMALL LETTER LAMDA
+<U03C1> /x97 GREEK SMALL LETTER RHO
+<U03C3> /x98 GREEK SMALL LETTER SIGMA
+<U03C4> /x99 GREEK SMALL LETTER TAU
+<U03C9> /x9a GREEK SMALL LETTER OMEGA
+<U0394> /x9b GREEK CAPITAL LETTER DELTA
+<U03A0> /x9c GREEK CAPITAL LETTER PI
+<U03A9> /x9d GREEK CAPTIAL LETTER OMEGA
+<U25A0> /x9e BLACK SQUARE
+<U221E> /x9f INFINITY
+<U00A0> /xa0 NO-BREAK SPACE
+<U00A1> /xa1 INVERTED EXCLAMATION MARK
+<U00A2> /xa2 CENT SIGN
+<U00A3> /xa3 POUND SIGN
+<U00A4> /xa4 CURRENCY SIGN
+<U00A5> /xa5 YEN SIGN
+<U00A6> /xa6 BROKEN BAR
+<U00A7> /xa7 SECTION SIGN
+<U00A8> /xa8 DIAERESIS
+<U00A9> /xa9 COPYRIGHT SIGN
+<U00AA> /xaa FEMININE ORDINAL INDICATOR
+<U00AB> /xab LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+<U00AC> /xac NOT SIGN
+<U00AD> /xad SOFT HYPHEN
+<U00AE> /xae REGISTERED SIGN
+<U00AF> /xaf MACRON
+<U00B0> /xb0 DEGREE SIGN
+<U00B1> /xb1 PLUS-MINUS SIGN
+<U00B2> /xb2 SUPERSCRIPT TWO
+<U00B3> /xb3 SUPERSCRIPT THREE
+<U00B4> /xb4 ACUTE ACCENT
+<U00B5> /xb5 MICRO SIGN
+<U00B6> /xb6 PILCROW SIGN
+<U00B7> /xb7 MIDDLE DOT
+<U00B8> /xb8 CEDILLA
+<U00B9> /xb9 SUPERSCRIPT ONE
+<U00BA> /xba MASCULINE ORDINAL INDICATOR
+<U00BB> /xbb RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+<U00BC> /xbc VULGAR FRACTION ONE QUARTER
+<U00BD> /xbd VULGAR FRACTION ONE HALF
+<U00BE> /xbe VULGAR FRACTION THREE QUARTERS
+<U00BF> /xbf INVERTED QUESTION MARK
+<U00C0> /xc0 LATIN CAPITAL LETTER A WITH GRAVE
+<U00C1> /xc1 LATIN CAPITAL LETTER A WITH ACUTE
+<U00C2> /xc2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX
+<U00C3> /xc3 LATIN CAPITAL LETTER A WITH TILDE
+<U00C4> /xc4 LATIN CAPITAL LETTER A WITH DIAERESIS
+<U00C5> /xc5 LATIN CAPITAL LETTER A WITH RING ABOVE
+<U00C6> /xc6 LATIN CAPITAL LETTER AE
+<U00C7> /xc7 LATIN CAPITAL LETTER C WITH CEDILLA
+<U00C8> /xc8 LATIN CAPITAL LETTER E WITH GRAVE
+<U00C9> /xc9 LATIN CAPITAL LETTER E WITH ACUTE
+<U00CA> /xca LATIN CAPITAL LETTER E WITH CIRCUMFLEX
+<U00CB> /xcb LATIN CAPITAL LETTER E WITH DIAERESIS
+<U00CC> /xcc LATIN CAPITAL LETTER I WITH GRAVE
+<U00CD> /xcd LATIN CAPITAL LETTER I WITH ACUTE
+<U00CE> /xce LATIN CAPITAL LETTER I WITH CIRCUMFLEX
+<U00CF> /xcf LATIN CAPITAL LETTER I WITH DIAERESIS
+<U00D0> /xd0 LATIN CAPITAL LETTER ETH (Icelandic)
+<U00D1> /xd1 LATIN CAPITAL LETTER N WITH TILDE
+<U00D2> /xd2 LATIN CAPITAL LETTER O WITH GRAVE
+<U00D3> /xd3 LATIN CAPITAL LETTER O WITH ACUTE
+<U00D4> /xd4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX
+<U00D5> /xd5 LATIN CAPITAL LETTER O WITH TILDE
+<U00D6> /xd6 LATIN CAPITAL LETTER O WITH DIAERESIS
+<U00D7> /xd7 MULTIPLICATION SIGN
+<U00D8> /xd8 LATIN CAPITAL LETTER O WITH STROKE
+<U00D9> /xd9 LATIN CAPITAL LETTER U WITH GRAVE
+<U00DA> /xda LATIN CAPITAL LETTER U WITH ACUTE
+<U00DB> /xdb LATIN CAPITAL LETTER U WITH CIRCUMFLEX
+<U00DC> /xdc LATIN CAPITAL LETTER U WITH DIAERESIS
+<U00DD> /xdd LATIN CAPITAL LETTER Y WITH ACUTE
+<U00DE> /xde LATIN CAPITAL LETTER THORN (Icelandic)
+<U00DF> /xdf LATIN SMALL LETTER SHARP S (German)
+<U00E0> /xe0 LATIN SMALL LETTER A WITH GRAVE
+<U00E1> /xe1 LATIN SMALL LETTER A WITH ACUTE
+<U00E2> /xe2 LATIN SMALL LETTER A WITH CIRCUMFLEX
+<U00E3> /xe3 LATIN SMALL LETTER A WITH TILDE
+<U00E4> /xe4 LATIN SMALL LETTER A WITH DIAERESIS
+<U00E5> /xe5 LATIN SMALL LETTER A WITH RING ABOVE
+<U00E6> /xe6 LATIN SMALL LETTER AE
+<U00E7> /xe7 LATIN SMALL LETTER C WITH CEDILLA
+<U00E8> /xe8 LATIN SMALL LETTER E WITH GRAVE
+<U00E9> /xe9 LATIN SMALL LETTER E WITH ACUTE
+<U00EA> /xea LATIN SMALL LETTER E WITH CIRCUMFLEX
+<U00EB> /xeb LATIN SMALL LETTER E WITH DIAERESIS
+<U00EC> /xec LATIN SMALL LETTER I WITH GRAVE
+<U00ED> /xed LATIN SMALL LETTER I WITH ACUTE
+<U00EE> /xee LATIN SMALL LETTER I WITH CIRCUMFLEX
+<U00EF> /xef LATIN SMALL LETTER I WITH DIAERESIS
+<U00F0> /xf0 LATIN SMALL LETTER ETH (Icelandic)
+<U00F1> /xf1 LATIN SMALL LETTER N WITH TILDE
+<U00F2> /xf2 LATIN SMALL LETTER O WITH GRAVE
+<U00F3> /xf3 LATIN SMALL LETTER O WITH ACUTE
+<U00F4> /xf4 LATIN SMALL LETTER O WITH CIRCUMFLEX
+<U00F5> /xf5 LATIN SMALL LETTER O WITH TILDE
+<U00F6> /xf6 LATIN SMALL LETTER O WITH DIAERESIS
+<U00F7> /xf7 DIVISION SIGN
+<U00F8> /xf8 LATIN SMALL LETTER O WITH STROKE
+<U00F9> /xf9 LATIN SMALL LETTER U WITH GRAVE
+<U00FA> /xfa LATIN SMALL LETTER U WITH ACUTE
+<U00FB> /xfb LATIN SMALL LETTER U WITH CIRCUMFLEX
+<U00FC> /xfc LATIN SMALL LETTER U WITH DIAERESIS
+<U00FD> /xfd LATIN SMALL LETTER Y WITH ACUTE
+<U00FE> /xfe LATIN SMALL LETTER THORN (Icelandic)
+<U00FF> /xff LATIN SMALL LETTER Y WITH DIAERESIS
+END CHARMAP
+
+WIDTH
+<U001F>...<U00FF> 1
+END WIDTH