From patchwork Sat Oct 1 03:44:27 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: dcoffin@shell.cybercom.net X-Patchwork-Id: 677284 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from sourceware.org (server1.sourceware.org [209.132.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 3smDhg3KLLz9s5w for ; Sat, 1 Oct 2016 13:44:50 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.b=yFnBn/VH; dkim-atps=neutral DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:date:from:to:subject:message-id:mime-version :content-type; q=dns; s=default; b=o58BVazmE23YAWKw1eeUUeAI/oqh5 YqEh9+1jx8w2cOpf1nOdKnVCAQ/vF8CpcCc7nYPHQ9kc4hnfNQL3uqCeG6KV+Th5 Q6n2qjH4WnvLkv9vftZMKlPi3Hb7T1migTOxryLhvfRT/HLrOi9N7+CqP4Mt+5/u 4wcYQIeTnq+jYQ= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id :list-unsubscribe:list-subscribe:list-archive:list-post :list-help:sender:date:from:to:subject:message-id:mime-version :content-type; s=default; bh=xiFaMOEqzwaSwlWjLzDDvYLp1sA=; b=yFn Bn/VHn+mAu02Ee0s6okWS2qSjq9sIBokQrOCXdE2DzhNhdnDWWjaFrfMJ8TENSvQ Dyvt8UQWaoqJ9PSf1s3VExek4tjgIv+/L77gNsJ5sRLZvRVWLc3PmSz0mK+BDH9B zO46OdOdV/LwjCBm5vYBaCsoSYxa2R/0Jh1CChyU= Received: (qmail 53176 invoked by alias); 1 Oct 2016 03:44:42 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 53161 invoked by uid 89); 1 Oct 2016 03:44:40 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.9 required=5.0 tests=AWL, BAYES_50, RCVD_IN_BRBL_LASTEXT, RCVD_IN_DNSWL_NONE, RP_MATCHES_RCVD, SPF_PASS, UPPERCASE_50_75 autolearn=ham version=3.3.2 spammy=stroke, COMMERCIAL, guys, greek X-HELO: chill.cybercom.net Date: Fri, 30 Sep 2016 23:44:27 -0400 From: dcoffin@shell.cybercom.net To: libc-alpha@sourceware.org Subject: Charset request for iconv (patch included) Message-ID: <20161001034427.GA26656@shell.cybercom.net> MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) 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 --- 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 , 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 + . */ + +#include + +/* Specify the conversion table. */ +#define TABLES + +#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 @@ + HP-48 + % + / +% 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 + /x00 NULL (NUL) + /x01 START OF HEADING (SOH) + /x02 START OF TEXT (STX) + /x03 END OF TEXT (ETX) + /x04 END OF TRANSMISSION (EOT) + /x05 ENQUIRY (ENQ) + /x06 ACKNOWLEDGE (ACK) + /x07 BELL (BEL) + /x08 BACKSPACE (BS) + /x09 CHARACTER TABULATION (HT) + /x0a LINE FEED (LF) + /x0b LINE TABULATION (VT) + /x0c FORM FEED (FF) + /x0d CARRIAGE RETURN (CR) + /x0e SHIFT OUT (SO) + /x0f SHIFT IN (SI) + /x10 DATALINK ESCAPE (DLE) + /x11 DEVICE CONTROL ONE (DC1) + /x12 DEVICE CONTROL TWO (DC2) + /x13 DEVICE CONTROL THREE (DC3) + /x14 DEVICE CONTROL FOUR (DC4) + /x15 NEGATIVE ACKNOWLEDGE (NAK) + /x16 SYNCHRONOUS IDLE (SYN) + /x17 END OF TRANSMISSION BLOCK (ETB) + /x18 CANCEL (CAN) + /x19 END OF MEDIUM (EM) + /x1a SUBSTITUTE (SUB) + /x1b ESCAPE (ESC) + /x1c FILE SEPARATOR (IS4) + /x1d GROUP SEPARATOR (IS3) + /x1e RECORD SEPARATOR (IS2) + /x1f ELLIPSIS + /x20 SPACE + /x21 EXCLAMATION MARK + /x22 QUOTATION MARK + /x23 NUMBER SIGN + /x24 DOLLAR SIGN + /x25 PERCENT SIGN + /x26 AMPERSAND + /x27 APOSTROPHE + /x28 LEFT PARENTHESIS + /x29 RIGHT PARENTHESIS + /x2a ASTERISK + /x2b PLUS SIGN + /x2c COMMA + /x2d HYPHEN-MINUS + /x2e FULL STOP + /x2f SOLIDUS + /x30 DIGIT ZERO + /x31 DIGIT ONE + /x32 DIGIT TWO + /x33 DIGIT THREE + /x34 DIGIT FOUR + /x35 DIGIT FIVE + /x36 DIGIT SIX + /x37 DIGIT SEVEN + /x38 DIGIT EIGHT + /x39 DIGIT NINE + /x3a COLON + /x3b SEMICOLON + /x3c LESS-THAN SIGN + /x3d EQUALS SIGN + /x3e GREATER-THAN SIGN + /x3f QUESTION MARK + /x40 COMMERCIAL AT + /x41 LATIN CAPITAL LETTER A + /x42 LATIN CAPITAL LETTER B + /x43 LATIN CAPITAL LETTER C + /x44 LATIN CAPITAL LETTER D + /x45 LATIN CAPITAL LETTER E + /x46 LATIN CAPITAL LETTER F + /x47 LATIN CAPITAL LETTER G + /x48 LATIN CAPITAL LETTER H + /x49 LATIN CAPITAL LETTER I + /x4a LATIN CAPITAL LETTER J + /x4b LATIN CAPITAL LETTER K + /x4c LATIN CAPITAL LETTER L + /x4d LATIN CAPITAL LETTER M + /x4e LATIN CAPITAL LETTER N + /x4f LATIN CAPITAL LETTER O + /x50 LATIN CAPITAL LETTER P + /x51 LATIN CAPITAL LETTER Q + /x52 LATIN CAPITAL LETTER R + /x53 LATIN CAPITAL LETTER S + /x54 LATIN CAPITAL LETTER T + /x55 LATIN CAPITAL LETTER U + /x56 LATIN CAPITAL LETTER V + /x57 LATIN CAPITAL LETTER W + /x58 LATIN CAPITAL LETTER X + /x59 LATIN CAPITAL LETTER Y + /x5a LATIN CAPITAL LETTER Z + /x5b LEFT SQUARE BRACKET + /x5c REVERSE SOLIDUS + /x5d RIGHT SQUARE BRACKET + /x5e CIRCUMFLEX ACCENT + /x5f LOW LINE + /x60 GRAVE ACCENT + /x61 LATIN SMALL LETTER A + /x62 LATIN SMALL LETTER B + /x63 LATIN SMALL LETTER C + /x64 LATIN SMALL LETTER D + /x65 LATIN SMALL LETTER E + /x66 LATIN SMALL LETTER F + /x67 LATIN SMALL LETTER G + /x68 LATIN SMALL LETTER H + /x69 LATIN SMALL LETTER I + /x6a LATIN SMALL LETTER J + /x6b LATIN SMALL LETTER K + /x6c LATIN SMALL LETTER L + /x6d LATIN SMALL LETTER M + /x6e LATIN SMALL LETTER N + /x6f LATIN SMALL LETTER O + /x70 LATIN SMALL LETTER P + /x71 LATIN SMALL LETTER Q + /x72 LATIN SMALL LETTER R + /x73 LATIN SMALL LETTER S + /x74 LATIN SMALL LETTER T + /x75 LATIN SMALL LETTER U + /x76 LATIN SMALL LETTER V + /x77 LATIN SMALL LETTER W + /x78 LATIN SMALL LETTER X + /x79 LATIN SMALL LETTER Y + /x7a LATIN SMALL LETTER Z + /x7b LEFT CURLY BRACKET + /x7c VERTICAL LINE + /x7d RIGHT CURLY BRACKET + /x7e TILDE + /x7f MEDIUM SHADE + /x80 ANGLE + /x81 LATIN SMALL LETTER A WITH MACRON + /x82 NABLA + /x83 SQUARE ROOT + /x84 INTEGRAL + /x85 GREEK CAPITAL LETTER SIGMA + /x86 BLACK RIGHT-POINTING TRIANGLE + /x87 GREEK SMALL LETTER PI + /x88 PARTIAL DIFFERENTIAL + /x89 LESS-THAN OR EQUAL TO + /x8a GREATER-THAN OR EQUAL TO + /x8b NOT EQUAL TO + /x8c GREEK SMALL LETTER ALPHA + /x8d RIGHTWARDS ARROW + /x8e LEFTWARDS ARROW + /x8f DOWNWARDS ARROW + /x90 UPWARDS ARROW + /x91 GREEK SMALL LETTER GAMMA + /x92 GREEK SMALL LETTER DELTA + /x93 GREEK SMALL LETTER EPSILON + /x94 GREEK SMALL LETTER ETA + /x95 GREEK SMALL LETTER THETA + /x96 GREEK SMALL LETTER LAMDA + /x97 GREEK SMALL LETTER RHO + /x98 GREEK SMALL LETTER SIGMA + /x99 GREEK SMALL LETTER TAU + /x9a GREEK SMALL LETTER OMEGA + /x9b GREEK CAPITAL LETTER DELTA + /x9c GREEK CAPITAL LETTER PI + /x9d GREEK CAPTIAL LETTER OMEGA + /x9e BLACK SQUARE + /x9f INFINITY + /xa0 NO-BREAK SPACE + /xa1 INVERTED EXCLAMATION MARK + /xa2 CENT SIGN + /xa3 POUND SIGN + /xa4 CURRENCY SIGN + /xa5 YEN SIGN + /xa6 BROKEN BAR + /xa7 SECTION SIGN + /xa8 DIAERESIS + /xa9 COPYRIGHT SIGN + /xaa FEMININE ORDINAL INDICATOR + /xab LEFT-POINTING DOUBLE ANGLE QUOTATION MARK + /xac NOT SIGN + /xad SOFT HYPHEN + /xae REGISTERED SIGN + /xaf MACRON + /xb0 DEGREE SIGN + /xb1 PLUS-MINUS SIGN + /xb2 SUPERSCRIPT TWO + /xb3 SUPERSCRIPT THREE + /xb4 ACUTE ACCENT + /xb5 MICRO SIGN + /xb6 PILCROW SIGN + /xb7 MIDDLE DOT + /xb8 CEDILLA + /xb9 SUPERSCRIPT ONE + /xba MASCULINE ORDINAL INDICATOR + /xbb RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK + /xbc VULGAR FRACTION ONE QUARTER + /xbd VULGAR FRACTION ONE HALF + /xbe VULGAR FRACTION THREE QUARTERS + /xbf INVERTED QUESTION MARK + /xc0 LATIN CAPITAL LETTER A WITH GRAVE + /xc1 LATIN CAPITAL LETTER A WITH ACUTE + /xc2 LATIN CAPITAL LETTER A WITH CIRCUMFLEX + /xc3 LATIN CAPITAL LETTER A WITH TILDE + /xc4 LATIN CAPITAL LETTER A WITH DIAERESIS + /xc5 LATIN CAPITAL LETTER A WITH RING ABOVE + /xc6 LATIN CAPITAL LETTER AE + /xc7 LATIN CAPITAL LETTER C WITH CEDILLA + /xc8 LATIN CAPITAL LETTER E WITH GRAVE + /xc9 LATIN CAPITAL LETTER E WITH ACUTE + /xca LATIN CAPITAL LETTER E WITH CIRCUMFLEX + /xcb LATIN CAPITAL LETTER E WITH DIAERESIS + /xcc LATIN CAPITAL LETTER I WITH GRAVE + /xcd LATIN CAPITAL LETTER I WITH ACUTE + /xce LATIN CAPITAL LETTER I WITH CIRCUMFLEX + /xcf LATIN CAPITAL LETTER I WITH DIAERESIS + /xd0 LATIN CAPITAL LETTER ETH (Icelandic) + /xd1 LATIN CAPITAL LETTER N WITH TILDE + /xd2 LATIN CAPITAL LETTER O WITH GRAVE + /xd3 LATIN CAPITAL LETTER O WITH ACUTE + /xd4 LATIN CAPITAL LETTER O WITH CIRCUMFLEX + /xd5 LATIN CAPITAL LETTER O WITH TILDE + /xd6 LATIN CAPITAL LETTER O WITH DIAERESIS + /xd7 MULTIPLICATION SIGN + /xd8 LATIN CAPITAL LETTER O WITH STROKE + /xd9 LATIN CAPITAL LETTER U WITH GRAVE + /xda LATIN CAPITAL LETTER U WITH ACUTE + /xdb LATIN CAPITAL LETTER U WITH CIRCUMFLEX + /xdc LATIN CAPITAL LETTER U WITH DIAERESIS + /xdd LATIN CAPITAL LETTER Y WITH ACUTE + /xde LATIN CAPITAL LETTER THORN (Icelandic) + /xdf LATIN SMALL LETTER SHARP S (German) + /xe0 LATIN SMALL LETTER A WITH GRAVE + /xe1 LATIN SMALL LETTER A WITH ACUTE + /xe2 LATIN SMALL LETTER A WITH CIRCUMFLEX + /xe3 LATIN SMALL LETTER A WITH TILDE + /xe4 LATIN SMALL LETTER A WITH DIAERESIS + /xe5 LATIN SMALL LETTER A WITH RING ABOVE + /xe6 LATIN SMALL LETTER AE + /xe7 LATIN SMALL LETTER C WITH CEDILLA + /xe8 LATIN SMALL LETTER E WITH GRAVE + /xe9 LATIN SMALL LETTER E WITH ACUTE + /xea LATIN SMALL LETTER E WITH CIRCUMFLEX + /xeb LATIN SMALL LETTER E WITH DIAERESIS + /xec LATIN SMALL LETTER I WITH GRAVE + /xed LATIN SMALL LETTER I WITH ACUTE + /xee LATIN SMALL LETTER I WITH CIRCUMFLEX + /xef LATIN SMALL LETTER I WITH DIAERESIS + /xf0 LATIN SMALL LETTER ETH (Icelandic) + /xf1 LATIN SMALL LETTER N WITH TILDE + /xf2 LATIN SMALL LETTER O WITH GRAVE + /xf3 LATIN SMALL LETTER O WITH ACUTE + /xf4 LATIN SMALL LETTER O WITH CIRCUMFLEX + /xf5 LATIN SMALL LETTER O WITH TILDE + /xf6 LATIN SMALL LETTER O WITH DIAERESIS + /xf7 DIVISION SIGN + /xf8 LATIN SMALL LETTER O WITH STROKE + /xf9 LATIN SMALL LETTER U WITH GRAVE + /xfa LATIN SMALL LETTER U WITH ACUTE + /xfb LATIN SMALL LETTER U WITH CIRCUMFLEX + /xfc LATIN SMALL LETTER U WITH DIAERESIS + /xfd LATIN SMALL LETTER Y WITH ACUTE + /xfe LATIN SMALL LETTER THORN (Icelandic) + /xff LATIN SMALL LETTER Y WITH DIAERESIS +END CHARMAP + +WIDTH +... 1 +END WIDTH