aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/gdamore/encoding/ebcdic.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/gdamore/encoding/ebcdic.go')
-rw-r--r--vendor/github.com/gdamore/encoding/ebcdic.go273
1 files changed, 273 insertions, 0 deletions
diff --git a/vendor/github.com/gdamore/encoding/ebcdic.go b/vendor/github.com/gdamore/encoding/ebcdic.go
new file mode 100644
index 0000000..8e13f1a
--- /dev/null
+++ b/vendor/github.com/gdamore/encoding/ebcdic.go
@@ -0,0 +1,273 @@
+// Copyright 2015 Garrett D'Amore
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use file except in compliance with the License.
+// You may obtain a copy of the license at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package encoding
+
+import (
+ "golang.org/x/text/encoding"
+)
+
+// EBCDIC represents the 8-bit EBCDIC scheme, found in some mainframe
+// environments. If you don't know what this is, consider yourself lucky.
+var EBCDIC encoding.Encoding
+
+func init() {
+ cm := &Charmap{
+ ReplacementChar: '\x3f',
+ Map: map[byte]rune{
+ // 0x00-0x03 match
+ 0x04: RuneError,
+ 0x05: '\t',
+ 0x06: RuneError,
+ 0x07: '\x7f',
+ 0x08: RuneError,
+ 0x09: RuneError,
+ 0x0a: RuneError,
+ // 0x0b-0x13 match
+ 0x14: RuneError,
+ 0x15: '\x85', // Not in any ISO code
+ 0x16: '\x08',
+ 0x17: RuneError,
+ // 0x18-0x19 match
+ 0x1a: RuneError,
+ 0x1b: RuneError,
+ // 0x1c-0x1f match
+ 0x20: RuneError,
+ 0x21: RuneError,
+ 0x22: RuneError,
+ 0x23: RuneError,
+ 0x24: RuneError,
+ 0x25: '\n',
+ 0x26: '\x17',
+ 0x27: '\x1b',
+ 0x28: RuneError,
+ 0x29: RuneError,
+ 0x2a: RuneError,
+ 0x2b: RuneError,
+ 0x2c: RuneError,
+ 0x2d: '\x05',
+ 0x2e: '\x06',
+ 0x2f: '\x07',
+ 0x30: RuneError,
+ 0x31: RuneError,
+ 0x32: '\x16',
+ 0x33: RuneError,
+ 0x34: RuneError,
+ 0x35: RuneError,
+ 0x36: RuneError,
+ 0x37: '\x04',
+ 0x38: RuneError,
+ 0x39: RuneError,
+ 0x3a: RuneError,
+ 0x3b: RuneError,
+ 0x3c: '\x14',
+ 0x3d: '\x15',
+ 0x3e: RuneError,
+ 0x3f: '\x1a', // also replacement char
+ 0x40: ' ',
+ 0x41: '\xa0',
+ 0x42: RuneError,
+ 0x43: RuneError,
+ 0x44: RuneError,
+ 0x45: RuneError,
+ 0x46: RuneError,
+ 0x47: RuneError,
+ 0x48: RuneError,
+ 0x49: RuneError,
+ 0x4a: RuneError,
+ 0x4b: '.',
+ 0x4c: '<',
+ 0x4d: '(',
+ 0x4e: '+',
+ 0x4f: '|',
+ 0x50: '&',
+ 0x51: RuneError,
+ 0x52: RuneError,
+ 0x53: RuneError,
+ 0x54: RuneError,
+ 0x55: RuneError,
+ 0x56: RuneError,
+ 0x57: RuneError,
+ 0x58: RuneError,
+ 0x59: RuneError,
+ 0x5a: '!',
+ 0x5b: '$',
+ 0x5c: '*',
+ 0x5d: ')',
+ 0x5e: ';',
+ 0x5f: '¬',
+ 0x60: '-',
+ 0x61: '/',
+ 0x62: RuneError,
+ 0x63: RuneError,
+ 0x64: RuneError,
+ 0x65: RuneError,
+ 0x66: RuneError,
+ 0x67: RuneError,
+ 0x68: RuneError,
+ 0x69: RuneError,
+ 0x6a: '¦',
+ 0x6b: ',',
+ 0x6c: '%',
+ 0x6d: '_',
+ 0x6e: '>',
+ 0x6f: '?',
+ 0x70: RuneError,
+ 0x71: RuneError,
+ 0x72: RuneError,
+ 0x73: RuneError,
+ 0x74: RuneError,
+ 0x75: RuneError,
+ 0x76: RuneError,
+ 0x77: RuneError,
+ 0x78: RuneError,
+ 0x79: '`',
+ 0x7a: ':',
+ 0x7b: '#',
+ 0x7c: '@',
+ 0x7d: '\'',
+ 0x7e: '=',
+ 0x7f: '"',
+ 0x80: RuneError,
+ 0x81: 'a',
+ 0x82: 'b',
+ 0x83: 'c',
+ 0x84: 'd',
+ 0x85: 'e',
+ 0x86: 'f',
+ 0x87: 'g',
+ 0x88: 'h',
+ 0x89: 'i',
+ 0x8a: RuneError,
+ 0x8b: RuneError,
+ 0x8c: RuneError,
+ 0x8d: RuneError,
+ 0x8e: RuneError,
+ 0x8f: '±',
+ 0x90: RuneError,
+ 0x91: 'j',
+ 0x92: 'k',
+ 0x93: 'l',
+ 0x94: 'm',
+ 0x95: 'n',
+ 0x96: 'o',
+ 0x97: 'p',
+ 0x98: 'q',
+ 0x99: 'r',
+ 0x9a: RuneError,
+ 0x9b: RuneError,
+ 0x9c: RuneError,
+ 0x9d: RuneError,
+ 0x9e: RuneError,
+ 0x9f: RuneError,
+ 0xa0: RuneError,
+ 0xa1: '~',
+ 0xa2: 's',
+ 0xa3: 't',
+ 0xa4: 'u',
+ 0xa5: 'v',
+ 0xa6: 'w',
+ 0xa7: 'x',
+ 0xa8: 'y',
+ 0xa9: 'z',
+ 0xaa: RuneError,
+ 0xab: RuneError,
+ 0xac: RuneError,
+ 0xad: RuneError,
+ 0xae: RuneError,
+ 0xaf: RuneError,
+ 0xb0: '^',
+ 0xb1: RuneError,
+ 0xb2: RuneError,
+ 0xb3: RuneError,
+ 0xb4: RuneError,
+ 0xb5: RuneError,
+ 0xb6: RuneError,
+ 0xb7: RuneError,
+ 0xb8: RuneError,
+ 0xb9: RuneError,
+ 0xba: '[',
+ 0xbb: ']',
+ 0xbc: RuneError,
+ 0xbd: RuneError,
+ 0xbe: RuneError,
+ 0xbf: RuneError,
+ 0xc0: '{',
+ 0xc1: 'A',
+ 0xc2: 'B',
+ 0xc3: 'C',
+ 0xc4: 'D',
+ 0xc5: 'E',
+ 0xc6: 'F',
+ 0xc7: 'G',
+ 0xc8: 'H',
+ 0xc9: 'I',
+ 0xca: '\xad', // NB: soft hyphen
+ 0xcb: RuneError,
+ 0xcc: RuneError,
+ 0xcd: RuneError,
+ 0xce: RuneError,
+ 0xcf: RuneError,
+ 0xd0: '}',
+ 0xd1: 'J',
+ 0xd2: 'K',
+ 0xd3: 'L',
+ 0xd4: 'M',
+ 0xd5: 'N',
+ 0xd6: 'O',
+ 0xd7: 'P',
+ 0xd8: 'Q',
+ 0xd9: 'R',
+ 0xda: RuneError,
+ 0xdb: RuneError,
+ 0xdc: RuneError,
+ 0xdd: RuneError,
+ 0xde: RuneError,
+ 0xdf: RuneError,
+ 0xe0: '\\',
+ 0xe1: '\u2007', // Non-breaking space
+ 0xe2: 'S',
+ 0xe3: 'T',
+ 0xe4: 'U',
+ 0xe5: 'V',
+ 0xe6: 'W',
+ 0xe7: 'X',
+ 0xe8: 'Y',
+ 0xe9: 'Z',
+ 0xea: RuneError,
+ 0xeb: RuneError,
+ 0xec: RuneError,
+ 0xed: RuneError,
+ 0xee: RuneError,
+ 0xef: RuneError,
+ 0xf0: '0',
+ 0xf1: '1',
+ 0xf2: '2',
+ 0xf3: '3',
+ 0xf4: '4',
+ 0xf5: '5',
+ 0xf6: '6',
+ 0xf7: '7',
+ 0xf8: '8',
+ 0xf9: '9',
+ 0xfa: RuneError,
+ 0xfb: RuneError,
+ 0xfc: RuneError,
+ 0xfd: RuneError,
+ 0xfe: RuneError,
+ 0xff: RuneError,
+ }}
+ cm.Init()
+ EBCDIC = cm
+}