diff options
Diffstat (limited to 'source3/lib/charset.c')
-rw-r--r-- | source3/lib/charset.c | 111 |
1 files changed, 0 insertions, 111 deletions
diff --git a/source3/lib/charset.c b/source3/lib/charset.c deleted file mode 100644 index ada3ef790a..0000000000 --- a/source3/lib/charset.c +++ /dev/null @@ -1,111 +0,0 @@ -/* - Unix SMB/Netbios implementation. - Version 1.9. - Character set handling - Copyright (C) Andrew Tridgell 1992-1995 - - 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., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -#define CHARSET_C -#include "includes.h" - -extern int DEBUGLEVEL; - -char xx_dos_char_map[256]; -char xx_upper_char_map[256]; -char xx_lower_char_map[256]; - -char *dos_char_map = NULL; -char *upper_char_map = NULL; -char *lower_char_map = NULL; - -static void add_dos_char(int lower, int upper) -{ - DEBUG(6,("Adding chars 0%o 0%o\n",lower,upper)); - if (lower) dos_char_map[(char)lower] = 1; - if (upper) dos_char_map[(char)upper] = 1; - if (lower && upper) { - lower_char_map[(char)upper] = (char)lower; - upper_char_map[(char)lower] = (char)upper; - } -} - -/**************************************************************************** -initialise the charset arrays -****************************************************************************/ -void charset_initialise(void) -{ - int i; - - dos_char_map = &xx_dos_char_map[128]; - upper_char_map = &xx_upper_char_map[128]; - lower_char_map = &xx_lower_char_map[128]; - - for (i= -128;i<=127;i++) { - dos_char_map[(char)i] = 0; - } - - for (i=0;i<=127;i++) { - if (isalnum((char)i) || strchr("._^$~!#%&-{}()@'`",(char)i)) - add_dos_char(i,0); - } - - for (i= -128;i<=127;i++) { - char c = (char)i; - upper_char_map[i] = lower_char_map[i] = c; - if (isupper(c)) lower_char_map[c] = tolower(c); - if (islower(c)) upper_char_map[c] = toupper(c); - } - - /* valid for all DOS PC */ - add_dos_char(142,0); /* A trema */ - add_dos_char(143,0); /* A o */ - add_dos_char(144,0); /* E ' */ - add_dos_char(146,0); /* AE */ - add_dos_char(153,0); /* O trema */ - add_dos_char(154,0); /* U trema */ - add_dos_char(165,0); /* N tilda */ - add_dos_char(128,0); /* C cedille */ - add_dos_char(156,0); /* Pound */ - add_dos_char(183,0); /* A ` (WIN)*/ - add_dos_char(157,0); /* Phi (WIN)*/ - add_dos_char(212,0); /* E` (WIN)*/ -} - - -/******************************************************************* -add characters depending on a string passed by the user -********************************************************************/ -void add_char_string(char *s) -{ - char *extra_chars = (char *)strdup(s); - char *t; - if (!extra_chars) return; - - for (t=strtok(extra_chars," \t\r\n"); t; t=strtok(NULL," \t\r\n")) { - char c1=0,c2=0; - int i1=0,i2=0; - if (isdigit(*t) || (*t)=='-') { - sscanf(t,"%i:%i",&i1,&i2); - add_dos_char(i1,i2); - } else { - sscanf(t,"%c:%c",&c1,&c2); - add_dos_char(c1,c2); - } - } - - free(extra_chars); -} |