]> git.sur5r.net Git - bacula/bacula/commitdiff
Add ebcdic translation code
authorKern Sibbald <kern@sibbald.com>
Sat, 5 Mar 2005 07:38:55 +0000 (07:38 +0000)
committerKern Sibbald <kern@sibbald.com>
Sat, 5 Mar 2005 07:38:55 +0000 (07:38 +0000)
git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@1863 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/src/stored/ebcdic.c [new file with mode: 0644]
bacula/src/stored/match_bsr.c
bacula/src/stored/parse_bsr.c

diff --git a/bacula/src/stored/ebcdic.c b/bacula/src/stored/ebcdic.c
new file mode 100644 (file)
index 0000000..faa8c8b
--- /dev/null
@@ -0,0 +1,163 @@
+/*
+ * Taken from the public domain ansitape program for 
+ *   integration into Bacula. KES - Mar 2005
+ */
+
+/* Mapping of EBCDIC codes to ASCII equivalents. */
+static char to_ascii_table[256] = {
+   '\000', '\001', '\002', '\003',
+   '\234', '\011', '\206', '\177',
+   '\227', '\215', '\216', '\013',
+   '\014', '\015', '\016', '\017',
+   '\020', '\021', '\022', '\023',
+   '\235', '\205', '\010', '\207',
+   '\030', '\031', '\222', '\217',
+   '\034', '\035', '\036', '\037',
+   '\200', '\201', '\202', '\203',
+   '\204', '\012', '\027', '\033',
+   '\210', '\211', '\212', '\213',
+   '\214', '\005', '\006', '\007',
+   '\220', '\221', '\026', '\223',
+   '\224', '\225', '\226', '\004',
+   '\230', '\231', '\232', '\233',
+   '\024', '\025', '\236', '\032',
+   '\040', '\240', '\241', '\242',
+   '\243', '\244', '\245', '\246',
+   '\247', '\250', '\133', '\056',
+   '\074', '\050', '\053', '\041',
+   '\046', '\251', '\252', '\253',
+   '\254', '\255', '\256', '\257',
+   '\260', '\261', '\135', '\044',
+   '\052', '\051', '\073', '\136',
+   '\055', '\057', '\262', '\263',
+   '\264', '\265', '\266', '\267',
+   '\270', '\271', '\174', '\054',
+   '\045', '\137', '\076', '\077',
+   '\272', '\273', '\274', '\275',
+   '\276', '\277', '\300', '\301',
+   '\302', '\140', '\072', '\043',
+   '\100', '\047', '\075', '\042',
+   '\303', '\141', '\142', '\143',
+   '\144', '\145', '\146', '\147',
+   '\150', '\151', '\304', '\305',
+   '\306', '\307', '\310', '\311',
+   '\312', '\152', '\153', '\154',
+   '\155', '\156', '\157', '\160',
+   '\161', '\162', '\313', '\314',
+   '\315', '\316', '\317', '\320',
+   '\321', '\176', '\163', '\164',
+   '\165', '\166', '\167', '\170',
+   '\171', '\172', '\322', '\323',
+   '\324', '\325', '\326', '\327',
+   '\330', '\331', '\332', '\333',
+   '\334', '\335', '\336', '\337',
+   '\340', '\341', '\342', '\343',
+   '\344', '\345', '\346', '\347',
+   '\173', '\101', '\102', '\103',
+   '\104', '\105', '\106', '\107',
+   '\110', '\111', '\350', '\351',
+   '\352', '\353', '\354', '\355',
+   '\175', '\112', '\113', '\114',
+   '\115', '\116', '\117', '\120',
+   '\121', '\122', '\356', '\357',
+   '\360', '\361', '\362', '\363',
+   '\134', '\237', '\123', '\124',
+   '\125', '\126', '\127', '\130',
+   '\131', '\132', '\364', '\365',
+   '\366', '\367', '\370', '\371',
+   '\060', '\061', '\062', '\063',
+   '\064', '\065', '\066', '\067',
+   '\070', '\071', '\372', '\373',
+   '\374', '\375', '\376', '\377'
+};
+
+
+/* Mapping of ASCII codes to EBCDIC equivalents. */
+static char to_ebcdic_table[256] = {
+   '\000', '\001', '\002', '\003',
+   '\067', '\055', '\056', '\057',
+   '\026', '\005', '\045', '\013',
+   '\014', '\015', '\016', '\017',
+   '\020', '\021', '\022', '\023',
+   '\074', '\075', '\062', '\046',
+   '\030', '\031', '\077', '\047',
+   '\034', '\035', '\036', '\037',
+   '\100', '\117', '\177', '\173',
+   '\133', '\154', '\120', '\175',
+   '\115', '\135', '\134', '\116',
+   '\153', '\140', '\113', '\141',
+   '\360', '\361', '\362', '\363',
+   '\364', '\365', '\366', '\367',
+   '\370', '\371', '\172', '\136',
+   '\114', '\176', '\156', '\157',
+   '\174', '\301', '\302', '\303',
+   '\304', '\305', '\306', '\307',
+   '\310', '\311', '\321', '\322',
+   '\323', '\324', '\325', '\326',
+   '\327', '\330', '\331', '\342',
+   '\343', '\344', '\345', '\346',
+   '\347', '\350', '\351', '\112',
+   '\340', '\132', '\137', '\155',
+   '\171', '\201', '\202', '\203',
+   '\204', '\205', '\206', '\207',
+   '\210', '\211', '\221', '\222',
+   '\223', '\224', '\225', '\226',
+   '\227', '\230', '\231', '\242',
+   '\243', '\244', '\245', '\246',
+   '\247', '\250', '\251', '\300',
+   '\152', '\320', '\241', '\007',
+   '\040', '\041', '\042', '\043',
+   '\044', '\025', '\006', '\027',
+   '\050', '\051', '\052', '\053',
+   '\054', '\011', '\012', '\033',
+   '\060', '\061', '\032', '\063',
+   '\064', '\065', '\066', '\010',
+   '\070', '\071', '\072', '\073',
+   '\004', '\024', '\076', '\341',
+   '\101', '\102', '\103', '\104',
+   '\105', '\106', '\107', '\110',
+   '\111', '\121', '\122', '\123',
+   '\124', '\125', '\126', '\127',
+   '\130', '\131', '\142', '\143',
+   '\144', '\145', '\146', '\147',
+   '\150', '\151', '\160', '\161',
+   '\162', '\163', '\164', '\165',
+   '\166', '\167', '\170', '\200',
+   '\212', '\213', '\214', '\215',
+   '\216', '\217', '\220', '\232',
+   '\233', '\234', '\235', '\236',
+   '\237', '\240', '\252', '\253',
+   '\254', '\255', '\256', '\257',
+   '\260', '\261', '\262', '\263',
+   '\264', '\265', '\266', '\267',
+   '\270', '\271', '\272', '\273',
+   '\274', '\275', '\276', '\277',
+   '\312', '\313', '\314', '\315',
+   '\316', '\317', '\332', '\333',
+   '\334', '\335', '\336', '\337',
+   '\352', '\353', '\354', '\355',
+   '\356', '\357', '\372', '\373',
+   '\374', '\375', '\376', '\377'
+};
+
+
+/*
+ * Convert from ASCII to EBCDIC 
+ */
+asci_to_ebcdic(char *dst, char *src, int count)
+{
+   while (count--) {
+      *dst++ = to_ebcdic_table[0377 & *src++];
+   }
+}
+
+
+/*
+ * Convert from EBCDIC to ASCII
+ */
+ebcdic_to_ascii(char *dst, char *src, int count)
+{
+   while (count--) {
+      *dst++ = to_asci_table[0377 & *src++];
+   }
+}
index d25dc016b82772ab929987f0ff618083d135a9b2..df6087601fdc201108d0ff5e430c91ecf7423bce 100755 (executable)
@@ -8,7 +8,7 @@
  */
 
 /*
-   Copyright (C) 2000-2004 Kern Sibbald and John Walker
+   Copyright (C) 2000-2005 Kern Sibbald
 
    This program is free software; you can redistribute it and/or
    modify it under the terms of the GNU General Public License as
index a1fbc6ba0751d9aadeef403cccec3262554ee807..654232632cf5f297b63910d80ec32969a56d14a8 100755 (executable)
@@ -21,7 +21,7 @@
 
    You should have received a copy of the GNU General Public
    License along with this program; if not, write to the Free
-   MA 02111-1307, USA.
+   MA 02111-1307, USA. 
 
  */