dotgnu-pnet-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Dotgnu-pnet-commits] CVS: pnetlib/I18N/Rare CP709.cs, NONE, 1.1 iso-903


From: Rhys Weatherley <address@hidden>
Subject: [Dotgnu-pnet-commits] CVS: pnetlib/I18N/Rare CP709.cs, NONE, 1.1 iso-9036.ucm, NONE, 1.1
Date: Sat, 30 Aug 2003 02:38:01 -0400

Update of /cvsroot/dotgnu-pnet/pnetlib/I18N/Rare
In directory subversions:/tmp/cvs-serv24571/I18N/Rare

Added Files:
        CP709.cs iso-9036.ucm 
Log Message:


Add code page 709 (ASMO 449).


--- NEW FILE ---
/*
 * CP709.cs - Arabic - ASMO 449+, BCON V4 code page.
 *
 * Copyright (c) 2002  Southern Storm Software, Pty Ltd
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program 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 General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

// Generated from "iso-9036.ucm".

namespace I18N.Rare
{

using System;
using I18N.Common;

public class CP709 : ByteEncoding
{
        public CP709()
                : base(709, ToChars, "Arabic - ASMO 449+, BCON V4",
                       "windows-709", "windows-709", "windows-709",
                       false, false, false, false, 1256)
        {}

        private static readonly char[] ToChars = {
                '\u0000', '\u0001', '\u0002', '\u0003', '\u0004', '\u0005', 
                '\u0006', '\u0007', '\u0008', '\u0009', '\u000A', '\u000B', 
                '\u000C', '\u000D', '\u000E', '\u000F', '\u0010', '\u0011', 
                '\u0012', '\u0013', '\u0014', '\u0015', '\u0016', '\u0017', 
                '\u0018', '\u0019', '\u001A', '\u001B', '\u001C', '\u001D', 
                '\u001E', '\u001F', '\u0020', '\u0021', '\u0022', '\u0023', 
                '\u00A4', '\u0025', '\u0026', '\u0027', '\u0028', '\u0029', 
                '\u002A', '\u002B', '\u060C', '\u002D', '\u002E', '\u002F', 
                '\u0030', '\u0031', '\u0032', '\u0033', '\u0034', '\u0035', 
                '\u0036', '\u0037', '\u0038', '\u0039', '\u003A', '\u061B', 
                '\u003C', '\u003D', '\u003E', '\u061F', '\u0040', '\u0621', 
                '\u0622', '\u0623', '\u0624', '\u0625', '\u0626', '\u0627', 
                '\u0628', '\u0629', '\u062A', '\u062B', '\u062C', '\u062D', 
                '\u062E', '\u062F', '\u0630', '\u0631', '\u0632', '\u0633', 
                '\u0634', '\u0635', '\u0636', '\u0637', '\u0638', '\u0639', 
                '\u063A', '\u005B', '\u005C', '\u005D', '\u005E', '\u005F', 
                '\u0640', '\u0641', '\u0642', '\u0643', '\u0644', '\u0645', 
                '\u0646', '\u0647', '\u0648', '\u0649', '\u064A', '\u064B', 
                '\u064C', '\u064D', '\u064E', '\u064F', '\u0650', '\u0651', 
                '\u0652', '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', 
                '\u003F', '\u003F', '\u003F', '\u007B', '\u007C', '\u007D', 
                '\u203E', '\u007F', '\u003F', '\u003F', '\u003F', '\u003F', 
                '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', 
                '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', 
                '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', 
                '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', 
                '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', 
                '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', 
                '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', 
                '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', 
                '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', 
                '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', 
                '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', 
                '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', 
                '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', 
                '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', 
                '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', 
                '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', 
                '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', 
                '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', 
                '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', 
                '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', '\u003F', 
                '\u003F', '\u003F', '\u003F', '\u003F', 
        };

        protected override void ToBytes(char[] chars, int charIndex, int 
charCount,
                                        byte[] bytes, int byteIndex)
        {
                int ch;
                while(charCount > 0)
                {
                        ch = (int)(chars[charIndex++]);
                        if(ch >= 36) switch(ch)
                        {
                                case 0x0025:
                                case 0x0026:
                                case 0x0027:
                                case 0x0028:
                                case 0x0029:
                                case 0x002A:
                                case 0x002B:
                                case 0x002D:
                                case 0x002E:
                                case 0x002F:
                                case 0x0030:
                                case 0x0031:
                                case 0x0032:
                                case 0x0033:
                                case 0x0034:
                                case 0x0035:
                                case 0x0036:
                                case 0x0037:
                                case 0x0038:
                                case 0x0039:
                                case 0x003A:
                                case 0x003C:
                                case 0x003D:
                                case 0x003E:
                                case 0x0040:
                                case 0x005B:
                                case 0x005C:
                                case 0x005D:
                                case 0x005E:
                                case 0x005F:
                                case 0x007B:
                                case 0x007C:
                                case 0x007D:
                                case 0x007F:
                                        break;
                                case 0x00A4: ch = 0x24; break;
                                case 0x060C: ch = 0x2C; break;
                                case 0x061B: ch = 0x3B; break;
                                case 0x061F: ch = 0x3F; break;
                                case 0x0621:
                                case 0x0622:
                                case 0x0623:
                                case 0x0624:
                                case 0x0625:
                                case 0x0626:
                                case 0x0627:
                                case 0x0628:
                                case 0x0629:
                                case 0x062A:
                                case 0x062B:
                                case 0x062C:
                                case 0x062D:
                                case 0x062E:
                                case 0x062F:
                                case 0x0630:
                                case 0x0631:
                                case 0x0632:
                                case 0x0633:
                                case 0x0634:
                                case 0x0635:
                                case 0x0636:
                                case 0x0637:
                                case 0x0638:
                                case 0x0639:
                                case 0x063A:
                                        ch -= 0x05E0;
                                        break;
                                case 0x0640:
                                case 0x0641:
                                case 0x0642:
                                case 0x0643:
                                case 0x0644:
                                case 0x0645:
                                case 0x0646:
                                case 0x0647:
                                case 0x0648:
                                case 0x0649:
                                case 0x064A:
                                case 0x064B:
                                case 0x064C:
                                case 0x064D:
                                case 0x064E:
                                case 0x064F:
                                case 0x0650:
                                case 0x0651:
                                case 0x0652:
                                        ch -= 0x05E0;
                                        break;
                                case 0x203E: ch = 0x7E; break;
                                default: ch = 0x3F; break;
                        }
                        bytes[byteIndex++] = (byte)ch;
                        --charCount;
                }
        }

        protected override void ToBytes(String s, int charIndex, int charCount,
                                        byte[] bytes, int byteIndex)
        {
                int ch;
                while(charCount > 0)
                {
                        ch = (int)(s[charIndex++]);
                        if(ch >= 36) switch(ch)
                        {
                                case 0x0025:
                                case 0x0026:
                                case 0x0027:
                                case 0x0028:
                                case 0x0029:
                                case 0x002A:
                                case 0x002B:
                                case 0x002D:
                                case 0x002E:
                                case 0x002F:
                                case 0x0030:
                                case 0x0031:
                                case 0x0032:
                                case 0x0033:
                                case 0x0034:
                                case 0x0035:
                                case 0x0036:
                                case 0x0037:
                                case 0x0038:
                                case 0x0039:
                                case 0x003A:
                                case 0x003C:
                                case 0x003D:
                                case 0x003E:
                                case 0x0040:
                                case 0x005B:
                                case 0x005C:
                                case 0x005D:
                                case 0x005E:
                                case 0x005F:
                                case 0x007B:
                                case 0x007C:
                                case 0x007D:
                                case 0x007F:
                                        break;
                                case 0x00A4: ch = 0x24; break;
                                case 0x060C: ch = 0x2C; break;
                                case 0x061B: ch = 0x3B; break;
                                case 0x061F: ch = 0x3F; break;
                                case 0x0621:
                                case 0x0622:
                                case 0x0623:
                                case 0x0624:
                                case 0x0625:
                                case 0x0626:
                                case 0x0627:
                                case 0x0628:
                                case 0x0629:
                                case 0x062A:
                                case 0x062B:
                                case 0x062C:
                                case 0x062D:
                                case 0x062E:
                                case 0x062F:
                                case 0x0630:
                                case 0x0631:
                                case 0x0632:
                                case 0x0633:
                                case 0x0634:
                                case 0x0635:
                                case 0x0636:
                                case 0x0637:
                                case 0x0638:
                                case 0x0639:
                                case 0x063A:
                                        ch -= 0x05E0;
                                        break;
                                case 0x0640:
                                case 0x0641:
                                case 0x0642:
                                case 0x0643:
                                case 0x0644:
                                case 0x0645:
                                case 0x0646:
                                case 0x0647:
                                case 0x0648:
                                case 0x0649:
                                case 0x064A:
                                case 0x064B:
                                case 0x064C:
                                case 0x064D:
                                case 0x064E:
                                case 0x064F:
                                case 0x0650:
                                case 0x0651:
                                case 0x0652:
                                        ch -= 0x05E0;
                                        break;
                                case 0x203E: ch = 0x7E; break;
                                default: ch = 0x3F; break;
                        }
                        bytes[byteIndex++] = (byte)ch;
                        --charCount;
                }
        }

}; // class CP709

public class ENCwindows_709 : CP709
{
        public ENCwindows_709() : base() {}

}; // class ENCwindows_709

}; // namespace I18N.Rare

--- NEW FILE ---
# Code page 709 - ASMO 449 (ISO-9036)

<U0000> \x00 |0
0x01   0x0001 # START OF HEADING (SOH)
0x02   0x0002 # START OF TEXT (STX)
0x03   0x0003 # END OF TEXT (ETX)
0x04   0x0004 # END OF TRANSMISSION (EOT)
0x05   0x0005 # ENQUIRY (ENQ)
0x06   0x0006 # ACKNOWLEDGE (ACK)
0x07   0x0007 # BELL (BEL)
0x08   0x0008 # BACKSPACE (BS)
0x09   0x0009 # CHARACTER TABULATION (HT)
0x0A   0x000A # LINE FEED (LF)
0x0B   0x000B # LINE TABULATION (VT)
0x0C   0x000C # FORM FEED (FF)
0x0D   0x000D # CARRIAGE RETURN (CR)
0x0E   0x000E # SHIFT OUT (SO)
0x0F   0x000F # SHIFT IN (SI)
0x10   0x0010 # DATALINK ESCAPE (DLE)
0x11   0x0011 # DEVICE CONTROL ONE (DC1)
0x12   0x0012 # DEVICE CONTROL TWO (DC2)
0x13   0x0013 # DEVICE CONTROL THREE (DC3)
0x14   0x0014 # DEVICE CONTROL FOUR (DC4)
0x15   0x0015 # NEGATIVE ACKNOWLEDGE (NAK)
0x16   0x0016 # SYNCHRONOUS IDLE (SYN)
0x17   0x0017 # END OF TRANSMISSION BLOCK (ETB)
0x18   0x0018 # CANCEL (CAN)
0x19   0x0019 # END OF MEDIUM (EM)
0x1A   0x001A # SUBSTITUTE (SUB)
0x1B   0x001B # ESCAPE (ESC)
0x1C   0x001C # FILE SEPARATOR (IS4)
0x1D   0x001D # GROUP SEPARATOR (IS3)
0x1E   0x001E # RECORD SEPARATOR (IS2)
0x1F   0x001F # UNIT SEPARATOR (IS1)
0x20   0x0020 # SPACE
0x21   0x0021 # EXCLAMATION MARK
0x22   0x0022 # QUOTATION MARK
0x23   0x0023 # NUMBER SIGN
0x24   0x00A4 # CURRENCY SIGN
0x25   0x0025 # PERCENT SIGN
0x26   0x0026 # AMPERSAND
0x27   0x0027 # APOSTROPHE
0x28   0x0028 # LEFT PARENTHESIS
0x29   0x0029 # RIGHT PARENTHESIS
0x2A   0x002A # ASTERISK
0x2B   0x002B # PLUS SIGN
0x2C   0x060C # ARABIC COMMA
0x2D   0x002D # HYPHEN-MINUS
0x2E   0x002E # FULL STOP
0x2F   0x002F # SOLIDUS
0x30   0x0030 # DIGIT ZERO
0x31   0x0031 # DIGIT ONE
0x32   0x0032 # DIGIT TWO
0x33   0x0033 # DIGIT THREE
0x34   0x0034 # DIGIT FOUR
0x35   0x0035 # DIGIT FIVE
0x36   0x0036 # DIGIT SIX
0x37   0x0037 # DIGIT SEVEN
0x38   0x0038 # DIGIT EIGHT
0x39   0x0039 # DIGIT NINE
0x3A   0x003A # COLON
0x3B   0x061B # ARABIC SEMICOLON
0x3C   0x003C # LESS-THAN SIGN
0x3D   0x003D # EQUALS SIGN
0x3E   0x003E # GREATER-THAN SIGN
0x3F   0x061F # ARABIC QUESTION MARK
0x40   0x0040 # COMMERCIAL AT
0x41   0x0621 # ARABIC LETTER HAMZA
0x42   0x0622 # ARABIC LETTER ALEF WITH MADDA ABOVE
0x43   0x0623 # ARABIC LETTER ALEF WITH HAMZA ABOVE
0x44   0x0624 # ARABIC LETTER WAW WITH HAMZA ABOVE
0x45   0x0625 # ARABIC LETTER ALEF WITH HAMZA BELOW
0x46   0x0626 # ARABIC LETTER YEH WITH HAMZA ABOVE
0x47   0x0627 # ARABIC LETTER ALEF
0x48   0x0628 # ARABIC LETTER BEH
0x49   0x0629 # ARABIC LETTER TEH MARBUTA
0x4A   0x062A # ARABIC LETTER TEH
0x4B   0x062B # ARABIC LETTER THEH
0x4C   0x062C # ARABIC LETTER JEEM
0x4D   0x062D # ARABIC LETTER HAH
0x4E   0x062E # ARABIC LETTER KHAH
0x4F   0x062F # ARABIC LETTER DAL
0x50   0x0630 # ARABIC LETTER THAL
0x51   0x0631 # ARABIC LETTER REH
0x52   0x0632 # ARABIC LETTER ZAIN
0x53   0x0633 # ARABIC LETTER SEEN
0x54   0x0634 # ARABIC LETTER SHEEN
0x55   0x0635 # ARABIC LETTER SAD
0x56   0x0636 # ARABIC LETTER DAD
0x57   0x0637 # ARABIC LETTER TAH
0x58   0x0638 # ARABIC LETTER ZAH
0x59   0x0639 # ARABIC LETTER AIN
0x5A   0x063A # ARABIC LETTER GHAIN
0x5B   0x005B # LEFT SQUARE BRACKET
0x5C   0x005C # REVERSE SOLIDUS
0x5D   0x005D # RIGHT SQUARE BRACKET
0x5E   0x005E # CIRCUMFLEX ACCENT
0x5F   0x005F # LOW LINE
0x60   0x0640 # ARABIC TATWEEL
0x61   0x0641 # ARABIC LETTER FEH
0x62   0x0642 # ARABIC LETTER QAF
0x63   0x0643 # ARABIC LETTER KAF
0x64   0x0644 # ARABIC LETTER LAM
0x65   0x0645 # ARABIC LETTER MEEM
0x66   0x0646 # ARABIC LETTER NOON
0x67   0x0647 # ARABIC LETTER HEH
0x68   0x0648 # ARABIC LETTER WAW
0x69   0x0649 # ARABIC LETTER ALEF MAKSURA
0x6A   0x064A # ARABIC LETTER YEH
0x6B   0x064B # ARABIC FATHATAN
0x6C   0x064C # ARABIC DAMMATAN
0x6D   0x064D # ARABIC KASRATAN
0x6E   0x064E # ARABIC FATHA
0x6F   0x064F # ARABIC DAMMA
0x70   0x0650 # ARABIC KASRA
0x71   0x0651 # ARABIC SHADDA
0x72   0x0652 # ARABIC SUKUN
0x7B   0x007B # LEFT CURLY BRACKET
0x7C   0x007C # VERTICAL LINE
0x7D   0x007D # RIGHT CURLY BRACKET
0x7E   0x203E # OVERLINE
0x7F   0x007F # DELETE (DEL)





reply via email to

[Prev in Thread] Current Thread [Next in Thread]