223 lines
7.3 KiB
Perl
223 lines
7.3 KiB
Perl
#! /bin/false
|
|
|
|
# vim: set autoindent shiftwidth=4 tabstop=4:
|
|
|
|
# Conversion routines for US-ASCII.
|
|
# Copyright (C) 2002-2017 Guido Flohr <guido.flohr@cantanea.com>,
|
|
# all rights reserved.
|
|
|
|
# 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 3 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, see <http://www.gnu.org/licenses/>.
|
|
|
|
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-2017 L<Guido Flohr|http://www.guido-flohr.net/>
|
|
(L<mailto:guido.flohr@cantanea.com>), all rights reserved. See the source
|
|
code for details!code for details!
|
|
|
|
=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:
|