This is the mail archive of the glibc-bugs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Charset request for iconv (patch included)


Hi guys,

     Could you add the eight-bit HP-48 charset to iconv?
It would be useful for copying files to and from the
HP-48 series of calculators.  I've written a patch and
tested it. (see below)

     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 seems to only provide vowels with
macrons.  The website explains why they don't recommend
a combining macron over a plain "x".

				Dave Coffin  9/28/2016

--- glibc-2.24/iconvdata/Makefile
+++ glibc-2.24/iconvdata/Makefile
@@ -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
 
 
--- glibc-2.24/iconvdata/gconv-modules
+++ glibc-2.24/iconvdata/gconv-modules
@@ -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
--- glibc-2.24/iconvdata/hp-48.c
+++ glibc-2.24/iconvdata/hp-48.c
@@ -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>
--- glibc-2.24/localedata/charmaps/HP-48
+++ glibc-2.24/localedata/charmaps/HP-48
@@ -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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]