| #! /bin/false |
| |
| # vim: set autoindent shiftwidth=4 tabstop=4: |
| |
| # Conversion routines for US-ASCII. |
| # Copyright (C) 2002-2009 Guido Flohr <guido@imperia.net>, |
| # all rights reserved. |
| |
| # This program is free software; you can redistribute it and/or modify it |
| # under the terms of the GNU Library General Public License as published |
| # by the Free Software Foundation; either version 2, 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 |
| # Library General Public License for more details. |
| |
| # You should have received a copy of the GNU Library 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. |
| |
| package Locale::RecodeData::US_ASCII; |
| |
| use strict; |
| |
| require Locale::RecodeData; |
| use base qw(Locale::RecodeData); |
| |
| sub _recode |
| { |
| if ($_[0]->{_from} eq 'INTERNAL') { |
| # FIXME: Maybe the lookup is cheaper than the call to chr(). |
| $_[1] = join '', |
| map $_ > 0x7f ? '?' : chr $_, |
| @{$_[1]}; |
| } elsif ($_[0]->{_to} eq 'UTF-8') { |
| # FIXME: Maybe the lookup is cheaper than the call to chr(). |
| $_[1] = join '', |
| map $_ > 0x7f ? "\xef\xbf\xbd" : chr $_, unpack 'C*', $_[1]; |
| } else { |
| $_[1] = [ map { $_ > 0x7f ? 0xfffd : $_ } unpack 'C*', $_[1] ]; |
| } |
| |
| return 1; |
| } |
| |
| 1; |
| |
| __END__ |
| |
| =head1 NAME |
| |
| Locale::RecodeData::US_ASCII - Conversion routines for US-ASCII |
| |
| =head1 SYNOPSIS |
| |
| This module is internal to libintl. Do not use directly! |
| |
| =head1 DESCRIPTION |
| |
| This module contains the conversion tables and routines for US-ASCII. |
| |
| =head1 CHARACTER TABLE |
| |
| The following table is sorted in the same order as the original charmap. |
| All character codes are in hexadecimal. Please read 'ISO-10646' as |
| 'ISO-10646-UCS4'. |
| |
| Local | ISO-10646 | Description |
| -------+-----------+------------------------------------------------- |
| 00 | 00000000 | NULL (NUL) |
| 01 | 00000001 | START OF HEADING (SOH) |
| 02 | 00000002 | START OF TEXT (STX) |
| 03 | 00000003 | END OF TEXT (ETX) |
| 04 | 00000004 | END OF TRANSMISSION (EOT) |
| 05 | 00000005 | ENQUIRY (ENQ) |
| 06 | 00000006 | ACKNOWLEDGE (ACK) |
| 07 | 00000007 | BELL (BEL) |
| 08 | 00000008 | BACKSPACE (BS) |
| 09 | 00000009 | CHARACTER TABULATION (HT) |
| 0A | 0000000A | LINE FEED (LF) |
| 0B | 0000000B | LINE TABULATION (VT) |
| 0C | 0000000C | FORM FEED (FF) |
| 0D | 0000000D | CARRIAGE RETURN (CR) |
| 0E | 0000000E | SHIFT OUT (SO) |
| 0F | 0000000F | SHIFT IN (SI) |
| 10 | 00000010 | DATALINK ESCAPE (DLE) |
| 11 | 00000011 | DEVICE CONTROL ONE (DC1) |
| 12 | 00000012 | DEVICE CONTROL TWO (DC2) |
| 13 | 00000013 | DEVICE CONTROL THREE (DC3) |
| 14 | 00000014 | DEVICE CONTROL FOUR (DC4) |
| 15 | 00000015 | NEGATIVE ACKNOWLEDGE (NAK) |
| 16 | 00000016 | SYNCHRONOUS IDLE (SYN) |
| 17 | 00000017 | END OF TRANSMISSION BLOCK (ETB) |
| 18 | 00000018 | CANCEL (CAN) |
| 19 | 00000019 | END OF MEDIUM (EM) |
| 1A | 0000001A | SUBSTITUTE (SUB) |
| 1B | 0000001B | ESCAPE (ESC) |
| 1C | 0000001C | FILE SEPARATOR (IS4) |
| 1D | 0000001D | GROUP SEPARATOR (IS3) |
| 1E | 0000001E | RECORD SEPARATOR (IS2) |
| 1F | 0000001F | UNIT SEPARATOR (IS1) |
| 20 | 00000020 | SPACE |
| 21 | 00000021 | EXCLAMATION MARK |
| 22 | 00000022 | QUOTATION MARK |
| 23 | 00000023 | NUMBER SIGN |
| 24 | 00000024 | DOLLAR SIGN |
| 25 | 00000025 | PERCENT SIGN |
| 26 | 00000026 | AMPERSAND |
| 27 | 00000027 | APOSTROPHE |
| 28 | 00000028 | LEFT PARENTHESIS |
| 29 | 00000029 | RIGHT PARENTHESIS |
| 2A | 0000002A | ASTERISK |
| 2B | 0000002B | PLUS SIGN |
| 2C | 0000002C | COMMA |
| 2D | 0000002D | HYPHEN-MINUS |
| 2E | 0000002E | FULL STOP |
| 2F | 0000002F | SOLIDUS |
| 30 | 00000030 | DIGIT ZERO |
| 31 | 00000031 | DIGIT ONE |
| 32 | 00000032 | DIGIT TWO |
| 33 | 00000033 | DIGIT THREE |
| 34 | 00000034 | DIGIT FOUR |
| 35 | 00000035 | DIGIT FIVE |
| 36 | 00000036 | DIGIT SIX |
| 37 | 00000037 | DIGIT SEVEN |
| 38 | 00000038 | DIGIT EIGHT |
| 39 | 00000039 | DIGIT NINE |
| 3A | 0000003A | COLON |
| 3B | 0000003B | SEMICOLON |
| 3C | 0000003C | LESS-THAN SIGN |
| 3D | 0000003D | EQUALS SIGN |
| 3E | 0000003E | GREATER-THAN SIGN |
| 3F | 0000003F | QUESTION MARK |
| 40 | 00000040 | COMMERCIAL AT |
| 41 | 00000041 | LATIN CAPITAL LETTER A |
| 42 | 00000042 | LATIN CAPITAL LETTER B |
| 43 | 00000043 | LATIN CAPITAL LETTER C |
| 44 | 00000044 | LATIN CAPITAL LETTER D |
| 45 | 00000045 | LATIN CAPITAL LETTER E |
| 46 | 00000046 | LATIN CAPITAL LETTER F |
| 47 | 00000047 | LATIN CAPITAL LETTER G |
| 48 | 00000048 | LATIN CAPITAL LETTER H |
| 49 | 00000049 | LATIN CAPITAL LETTER I |
| 4A | 0000004A | LATIN CAPITAL LETTER J |
| 4B | 0000004B | LATIN CAPITAL LETTER K |
| 4C | 0000004C | LATIN CAPITAL LETTER L |
| 4D | 0000004D | LATIN CAPITAL LETTER M |
| 4E | 0000004E | LATIN CAPITAL LETTER N |
| 4F | 0000004F | LATIN CAPITAL LETTER O |
| 50 | 00000050 | LATIN CAPITAL LETTER P |
| 51 | 00000051 | LATIN CAPITAL LETTER Q |
| 52 | 00000052 | LATIN CAPITAL LETTER R |
| 53 | 00000053 | LATIN CAPITAL LETTER S |
| 54 | 00000054 | LATIN CAPITAL LETTER T |
| 55 | 00000055 | LATIN CAPITAL LETTER U |
| 56 | 00000056 | LATIN CAPITAL LETTER V |
| 57 | 00000057 | LATIN CAPITAL LETTER W |
| 58 | 00000058 | LATIN CAPITAL LETTER X |
| 59 | 00000059 | LATIN CAPITAL LETTER Y |
| 5A | 0000005A | LATIN CAPITAL LETTER Z |
| 5B | 0000005B | LEFT SQUARE BRACKET |
| 5C | 0000005C | REVERSE SOLIDUS |
| 5D | 0000005D | RIGHT SQUARE BRACKET |
| 5E | 0000005E | CIRCUMFLEX ACCENT |
| 5F | 0000005F | LOW LINE |
| 60 | 00000060 | GRAVE ACCENT |
| 61 | 00000061 | LATIN SMALL LETTER A |
| 62 | 00000062 | LATIN SMALL LETTER B |
| 63 | 00000063 | LATIN SMALL LETTER C |
| 64 | 00000064 | LATIN SMALL LETTER D |
| 65 | 00000065 | LATIN SMALL LETTER E |
| 66 | 00000066 | LATIN SMALL LETTER F |
| 67 | 00000067 | LATIN SMALL LETTER G |
| 68 | 00000068 | LATIN SMALL LETTER H |
| 69 | 00000069 | LATIN SMALL LETTER I |
| 6A | 0000006A | LATIN SMALL LETTER J |
| 6B | 0000006B | LATIN SMALL LETTER K |
| 6C | 0000006C | LATIN SMALL LETTER L |
| 6D | 0000006D | LATIN SMALL LETTER M |
| 6E | 0000006E | LATIN SMALL LETTER N |
| 6F | 0000006F | LATIN SMALL LETTER O |
| 70 | 00000070 | LATIN SMALL LETTER P |
| 71 | 00000071 | LATIN SMALL LETTER Q |
| 72 | 00000072 | LATIN SMALL LETTER R |
| 73 | 00000073 | LATIN SMALL LETTER S |
| 74 | 00000074 | LATIN SMALL LETTER T |
| 75 | 00000075 | LATIN SMALL LETTER U |
| 76 | 00000076 | LATIN SMALL LETTER V |
| 77 | 00000077 | LATIN SMALL LETTER W |
| 78 | 00000078 | LATIN SMALL LETTER X |
| 79 | 00000079 | LATIN SMALL LETTER Y |
| 7A | 0000007A | LATIN SMALL LETTER Z |
| 7B | 0000007B | LEFT CURLY BRACKET |
| 7C | 0000007C | VERTICAL LINE |
| 7D | 0000007D | RIGHT CURLY BRACKET |
| 7E | 0000007E | TILDE |
| 7F | 0000007F | DELETE (DEL) |
| |
| =head1 AUTHOR |
| |
| Copyright (C) 2002-2009, Guido Flohr E<lt>guido@imperia.netE<gt>, all |
| rights reserved. See the source code for details. |
| |
| This software is contributed to the Perl community by Imperia |
| (L<http://www.imperia.net/>). |
| |
| =head1 SEE ALSO |
| |
| Locale::RecodeData(3), Locale::Recode(3), perl(1) |
| |
| =cut |
| Local Variables: |
| mode: perl |
| perl-indent-level: 4 |
| perl-continued-statement-offset: 4 |
| perl-continued-brace-offset: 0 |
| perl-brace-offset: -4 |
| perl-brace-imaginary-offset: 0 |
| perl-label-offset: -4 |
| cperl-indent-level: 4 |
| cperl-continued-statement-offset: 2 |
| tab-width: 4 |
| End: |
| =cut |