From patchwork Sat Jan 15 15:10:25 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Robert Schultz X-Patchwork-Id: 50067 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id E99E93858433 for ; Sat, 15 Jan 2022 15:10:56 +0000 (GMT) X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com [IPv6:2a00:1450:4864:20::52f]) by sourceware.org (Postfix) with ESMTPS id 2C85F3858D3C for ; Sat, 15 Jan 2022 15:10:43 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 2C85F3858D3C Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=cosmicrealms.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=cosmicrealms.com Received: by mail-ed1-x52f.google.com with SMTP id b13so45878792edn.0 for ; Sat, 15 Jan 2022 07:10:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cosmicrealms-com.20210112.gappssmtp.com; s=20210112; h=mime-version:from:date:message-id:subject:to:cc; bh=mRLLjw8la4Z7k/ehJw5gjasf6yBGGzq8MFWBeQVizt0=; b=VQcG/E9vbr8qhMYFdDwpPT2Ds5EQ31PJEgYskyG4iktQJazt6B8Bb3magvrdm+qHMy r2r1NJCOPNYCUDHqbWY4IbFguOhLUEpnnFznig3ZYGlCXvlzx9GG15a0jFobdkVSEd8O qkShBNXCqrc7MLBoA/GoK4w9ycd6pxq3jmlaIKVnGAas0S922W+QqjU8rIcIDuyYIOt0 VuM8SW1G9y8y9MF2HRb8N6KIxJPuBJs+mWLqYUGotxiQBHjB3OOIOIeqEyu+mVLrhbym boBwynB7CUrBHbea8IbD/bwkQ6iVakB1TV/6aFV+x+Yf/E8UHDCwe3h0x4BrwVFGUgUH bZ/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=mRLLjw8la4Z7k/ehJw5gjasf6yBGGzq8MFWBeQVizt0=; b=EhMns3AT9MWrkJ2pmwYQTdmE56iZi9K71yxchQu4hfPgs0g4xn46D2CdwbJkBoDaWA sp6BvFXnW2sArIRcAgv34AjG/2WfN5CT+O3NzIeCieve6mRF85OHPC0wm8xMe2xk4Xcv 0VQMZKj2Ny2vsc4uJ0vhzMrSYqGbwk9z6yJYZmh9oAUSLR/sRG3NKHYVghWktZOxZ+nl Ew/TvlLWsK68JE4SeKqNf1+Pjn58QTLbbwYeykqQP022xIDYMq58yIsc1GPfnEGNKbCk Bpx7qja9YMnhfg3hCE/DU4sVRstwcYcIfTb4ySqUWdw3majCAwJcOHJoPqrjDOsfqklY En3w== X-Gm-Message-State: AOAM532Dh5RQmJsbMmBFGSlWvzd5R6zsphrE+38yRG6uhfhLK4f8JEU4 sxcCwR5i+ROtNtgbBrgrE+GCxyL8MccKiL81lUGdgebd+4LQJA== X-Google-Smtp-Source: ABdhPJw5JLRTwW3OvyWO6LZtnR+jsWrdjEPNyw22g0bswav8gu/fcchs58b09fcgcHelpTRfDPc5xIcknah39Lf0KzA= X-Received: by 2002:a17:907:1b0d:: with SMTP id mp13mr10748691ejc.29.1642259441537; Sat, 15 Jan 2022 07:10:41 -0800 (PST) MIME-Version: 1.0 From: Robert Schultz Date: Sat, 15 Jan 2022 10:10:25 -0500 Message-ID: Subject: [PATCH] Added RISC OS charmap (RISCOS) To: libc-alpha@sourceware.org X-Spam-Status: No, score=-9.9 required=5.0 tests=BAYES_20, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, UPPERCASE_50_75 autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: libc-locales@sourceware.org Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" My first patch to glibc/charmap. Two items of note: 1: Code 0x84 is in unicode as U0001FBC0 WHITE HEAVY SALTIRE WITH ROUNDED CORNERS but I chose U2613 SALTIRE instead so iconv conversions would work properly. 2: Code 0x87 is two characters, SUBSCRIPT EIGHT SUPERSCRIPT 7, so I chose to set it as UE01E UNDEFINED --- iconvdata/Makefile | 5 +- iconvdata/gconv-modules-extra.conf | 4 + iconvdata/riscos.c | 28 +++ iconvdata/tst-tables.sh | 1 + localedata/charmaps/RISCOS | 264 +++++++++++++++++++++++++++++ 5 files changed, 300 insertions(+), 2 deletions(-) create mode 100644 iconvdata/riscos.c create mode 100644 localedata/charmaps/RISCOS -- 2.34.1 diff --git a/iconvdata/Makefile b/iconvdata/Makefile index f4c089ed5d..7ff576d5c4 100644 --- a/iconvdata/Makefile +++ b/iconvdata/Makefile @@ -62,7 +62,7 @@ modules := ISO8859-1 ISO8859-2 ISO8859-3 ISO8859-4 ISO8859-5 \ 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 RISCOS # If lazy binding is disabled, use BIND_NOW for the gconv modules. ifeq ($(bind-now),yes) @@ -173,7 +173,8 @@ gen-8bit-gap-modules := koi8-r latin-greek latin-greek-1 ibm256 ibm273 \ 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 \ - hp-thai8 hp-greek8 cp770 cp771 cp772 cp773 cp774 + hp-thai8 hp-greek8 cp770 cp771 cp772 cp773 cp774 \ + riscos gen-special-modules := iso8859-7jp diff --git a/iconvdata/gconv-modules-extra.conf b/iconvdata/gconv-modules-extra.conf index 82d7be577d..f419965bef 100644 --- a/iconvdata/gconv-modules-extra.conf +++ b/iconvdata/gconv-modules-extra.conf @@ -1459,6 +1459,10 @@ module INTERNAL GB18030// GB18030 1 module VISCII// INTERNAL VISCII 1 module INTERNAL VISCII// VISCII 1 +# from to module cost +module RISCOS// INTERNAL RISCOS 1 +module INTERNAL RISCOS// RISCOS 1 + # from to module cost module KOI8-T// INTERNAL KOI8-T 1 module INTERNAL KOI8-T// KOI8-T 1 diff --git a/iconvdata/riscos.c b/iconvdata/riscos.c new file mode 100644 index 0000000000..e82f5a2d3d --- /dev/null +++ b/iconvdata/riscos.c @@ -0,0 +1,28 @@ +/* Conversion from and to RISCOS. + Copyright (C) 2000-2022 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Robert Schultz , 2022. + + 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 "RISCOS//" +#define HAS_HOLES 1 /* Not all 256 character are defined. */ + +#include <8bit-gap.c> diff --git a/iconvdata/tst-tables.sh b/iconvdata/tst-tables.sh index 4207b44175..6b3330f52e 100755 --- a/iconvdata/tst-tables.sh +++ b/iconvdata/tst-tables.sh @@ -207,6 +207,7 @@ cat < RISCOS + % + / +% version: 1.0 +% source: https://en.wikipedia.org/wiki/RISC_OS_character_set + +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 UNIT SEPARATOR (IS1) + /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 DELETE (DEL) + /x80 EURO SIGN + /x81 LATIN CAPITAL LETTER W WITH CIRCUMFLEX + /x82 LATIN SMALL LETTER W WITH CIRCUMFLEX + /x83 WHITE SQUARE WITH UPPER LEFT QUADRANT + /x84 SALTIRE + /x85 LATIN CAPITAL LETTER Y WITH CIRCUMFLEX + /x86 LATIN SMALL LETTER Y WITH CIRCUMFLEX + /x87 SUBSCRIPT EIGHT SUPERSCRIPT SEVEN + /x88 LEFTWARDS WHITE ARROW + /x89 RIGHTWARDS WHITE ARROW + /x8a DOWNWARDS WHITE ARROW + /x8b UPWARDS WHITE ARROW + /x8c HORIZONTAL ELLIPSIS + /x8d TRADE MARK SIGN + /x8e PER MILLE SIGN + /x8f BULLET + /x90 LEFT SINGLE QUOTATION MARK + /x91 RIGHT SINGLE QUOTATION MARK + /x92 SINGLE LEFT-POINTING ANGLE QUOTATION MARK + /x93 SINGLE RIGHT-POINTING ANGLE QUOTATION MARK + /x94 LEFT DOUBLE QUOTATION MARK + /x95 RIGHT DOUBLE QUOTATION MARK + /x96 DOUBLE LOW-9 QUOTATION MARK + /x97 EN DASH + /x98 EM DASH + /x99 MINUS SIGN + /x9a LATIN CAPITAL LIGATURE OE + /x9b LATIN SMALL LIGATURE OE + /x9c DAGGER + /x9d DOUBLE DAGGER + /x9e LATIN SMALL LIGATURE FI + /x9f LATIN SMALL LIGATURE FL + /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