mirror of
https://github.com/samba-team/samba.git
synced 2024-12-23 17:34:34 +03:00
r23660: Anybody know what check_dos_char() was used for? It wasn't called at
all, so it's gone. With it 8k bss went away.
This commit is contained in:
parent
3ec43e18a4
commit
7e9a4c39a5
@ -1735,8 +1735,6 @@ bin/t_strappend@EXEEXT@: $(BINARY_PREREQS) bin/libbigballofmud.@SHLIBEXT@ tortur
|
|||||||
bin/t_stringoverflow@EXEEXT@: $(BINARY_PREREQS) bin/libbigballofmud.@SHLIBEXT@ torture/t_stringoverflow.o
|
bin/t_stringoverflow@EXEEXT@: $(BINARY_PREREQS) bin/libbigballofmud.@SHLIBEXT@ torture/t_stringoverflow.o
|
||||||
$(CC) $(FLAGS) -o $@ $(DYNEXP) torture/t_stringoverflow.o -L./bin -lbigballofmud
|
$(CC) $(FLAGS) -o $@ $(DYNEXP) torture/t_stringoverflow.o -L./bin -lbigballofmud
|
||||||
|
|
||||||
bin/t_doschar@EXEEXT@: $(BINARY_PREREQS) bin/libbigballofmud.@SHLIBEXT@ torture/t_doschar.o
|
|
||||||
$(CC) $(FLAGS) -o $@ $(DYNEXP) $(LIBS) torture/t_doschar.o -L ./bin -lbigballofmud
|
|
||||||
bin/t_push_ucs2@EXEEXT@: $(BINARY_PREREQS) bin/libbigballofmud.@SHLIBEXT@ torture/t_push_ucs2.o
|
bin/t_push_ucs2@EXEEXT@: $(BINARY_PREREQS) bin/libbigballofmud.@SHLIBEXT@ torture/t_push_ucs2.o
|
||||||
$(CC) $(FLAGS) -o $@ $(DYNEXP) $(LIBS) torture/t_push_ucs2.o -L ./bin -lbigballofmud
|
$(CC) $(FLAGS) -o $@ $(DYNEXP) $(LIBS) torture/t_push_ucs2.o -L ./bin -lbigballofmud
|
||||||
|
|
||||||
|
@ -179,7 +179,6 @@ void init_iconv(void)
|
|||||||
* codepage changes? */
|
* codepage changes? */
|
||||||
/* XXX: Is the did_reload test too strict? */
|
/* XXX: Is the did_reload test too strict? */
|
||||||
conv_silent = True;
|
conv_silent = True;
|
||||||
init_doschar_table();
|
|
||||||
init_valid_table();
|
init_valid_table();
|
||||||
conv_silent = False;
|
conv_silent = False;
|
||||||
}
|
}
|
||||||
|
@ -35,14 +35,6 @@ static BOOL upcase_table_use_unmap;
|
|||||||
static BOOL lowcase_table_use_unmap;
|
static BOOL lowcase_table_use_unmap;
|
||||||
static BOOL valid_table_use_unmap;
|
static BOOL valid_table_use_unmap;
|
||||||
|
|
||||||
/**
|
|
||||||
* This table says which Unicode characters are valid dos
|
|
||||||
* characters.
|
|
||||||
*
|
|
||||||
* Each value is just a single bit.
|
|
||||||
**/
|
|
||||||
static uint8 doschar_table[8192]; /* 65536 characters / 8 bits/byte */
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Destroy global objects allocated by load_case_tables()
|
* Destroy global objects allocated by load_case_tables()
|
||||||
**/
|
**/
|
||||||
@ -150,21 +142,6 @@ void load_case_tables(void)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
see if a ucs2 character can be mapped correctly to a dos character
|
|
||||||
and mapped back to the same character in ucs2
|
|
||||||
*/
|
|
||||||
|
|
||||||
int check_dos_char(smb_ucs2_t c)
|
|
||||||
{
|
|
||||||
lazy_initialize_conv();
|
|
||||||
|
|
||||||
/* Find the right byte, and right bit within the byte; return
|
|
||||||
* 1 or 0 */
|
|
||||||
return (doschar_table[(c & 0xffff) / 8] & (1 << (c & 7))) != 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static int check_dos_char_slowly(smb_ucs2_t c)
|
static int check_dos_char_slowly(smb_ucs2_t c)
|
||||||
{
|
{
|
||||||
char buf[10];
|
char buf[10];
|
||||||
@ -182,33 +159,6 @@ static int check_dos_char_slowly(smb_ucs2_t c)
|
|||||||
return (c == c2);
|
return (c == c2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Fill out doschar table the hard way, by examining each character
|
|
||||||
**/
|
|
||||||
|
|
||||||
void init_doschar_table(void)
|
|
||||||
{
|
|
||||||
int i, j, byteval;
|
|
||||||
|
|
||||||
/* For each byte of packed table */
|
|
||||||
|
|
||||||
for (i = 0; i <= 0xffff; i += 8) {
|
|
||||||
byteval = 0;
|
|
||||||
for (j = 0; j <= 7; j++) {
|
|
||||||
smb_ucs2_t c;
|
|
||||||
|
|
||||||
c = i + j;
|
|
||||||
|
|
||||||
if (check_dos_char_slowly(c)) {
|
|
||||||
byteval |= 1 << j;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
doschar_table[i/8] = byteval;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Load the valid character map table from <tt>valid.dat</tt> or
|
* Load the valid character map table from <tt>valid.dat</tt> or
|
||||||
* create from the configured codepage.
|
* create from the configured codepage.
|
||||||
@ -257,7 +207,7 @@ void init_valid_table(void)
|
|||||||
for (;i<0x10000;i++) {
|
for (;i<0x10000;i++) {
|
||||||
smb_ucs2_t c;
|
smb_ucs2_t c;
|
||||||
SSVAL(&c, 0, i);
|
SSVAL(&c, 0, i);
|
||||||
valid_table[i] = check_dos_char(c);
|
valid_table[i] = check_dos_char_slowly(c);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,42 +0,0 @@
|
|||||||
/*
|
|
||||||
Samba - Unix SMB/CIFS implementation
|
|
||||||
Test harness for check_dos_char
|
|
||||||
Copyright (C) Martin Pool 2003
|
|
||||||
|
|
||||||
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.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include "includes.h"
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Just print out DOS validity or not for every character.
|
|
||||||
*
|
|
||||||
* DOS validity for a Unicode character set means that it can be
|
|
||||||
* represented in DOS codepage, and that the DOS character maps back
|
|
||||||
* to the same Unicode character.
|
|
||||||
*
|
|
||||||
* This depends on which DOS codepage is configured.
|
|
||||||
*/
|
|
||||||
int main(void)
|
|
||||||
{
|
|
||||||
smb_ucs2_t i;
|
|
||||||
|
|
||||||
for (i = 0; i < 0xffff; i++) {
|
|
||||||
printf("%d %d\n", (int) i, (int) check_dos_char(i));
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user