diff options
author | Jeremy Allison <jra@samba.org> | 1997-09-11 20:17:32 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 1997-09-11 20:17:32 +0000 |
commit | 9196255022ae8c51b527412747b324819bea2c13 (patch) | |
tree | 837c3380d2b8624b3145a87a94161623a4ee2d82 /source/client/clitar.c | |
parent | c30f6a74d0e6c256b1d46b28c1f31f1c1f3dd856 (diff) | |
download | samba-9196255022ae8c51b527412747b324819bea2c13.tar.gz samba-9196255022ae8c51b527412747b324819bea2c13.tar.xz samba-9196255022ae8c51b527412747b324819bea2c13.zip |
charcnv.c client.c clitar.c kanji.c kanji.h loadparm.c
mangle.c smb.h util.c:
Big merge to allow KANJI support to be in the main
binary without explicitly compiling with it.
locking.c: Fix for smbstatus not being able to read files.
namepacket.c: Removed unneccesary debug statement.
trans2.c: Added Luke's proposed fix (ifdefed out until further testing).
nmblookup.c: Fixed bug where query fails and status is done on bogus IP.
Jeremy (jallison@whistle.com)
Diffstat (limited to 'source/client/clitar.c')
-rw-r--r-- | source/client/clitar.c | 88 |
1 files changed, 52 insertions, 36 deletions
diff --git a/source/client/clitar.c b/source/client/clitar.c index d5bca8c5bbb..a30f6c2960f 100644 --- a/source/client/clitar.c +++ b/source/client/clitar.c @@ -306,27 +306,35 @@ static void fixtarname(char *tptr, char *fp, int l) * to lovely unix /'s :-} */ *tptr++='.'; -#ifdef KANJI - while (l > 0) { - if (is_shift_jis (*fp)) { - *tptr++ = *fp++; - *tptr++ = *fp++; - l -= 2; - } else if (is_kana (*fp)) { - *tptr++ = *fp++; - l--; - } else if (*fp == '\\') { - *tptr++ = '/'; + if(lp_client_code_page() == KANJI_CODEPAGE) + { + while (l > 0) { + if (is_shift_jis (*fp)) { + *tptr++ = *fp++; + *tptr++ = *fp++; + l -= 2; + } else if (is_kana (*fp)) { + *tptr++ = *fp++; + l--; + } else if (*fp == '\\') { + *tptr++ = '/'; + fp++; + l--; + } else { + *tptr++ = *fp++; + l--; + } + } + } + else + { + while (l--) + { + *tptr=(*fp == '\\') ? '/' : *fp; + tptr++; fp++; - l--; - } else { - *tptr++ = *fp++; - l--; } } -#else - while (l--) { *tptr=(*fp == '\\') ? '/' : *fp; tptr++; fp++; } -#endif } /**************************************************************************** @@ -1203,27 +1211,35 @@ static void unfixtarname(char *tptr, char *fp, int l) if (*fp == '.') fp++; if (*fp == '\\' || *fp == '/') fp++; -#ifdef KANJI - while (l > 0) { - if (is_shift_jis (*fp)) { - *tptr++ = *fp++; - *tptr++ = *fp++; - l -= 2; - } else if (is_kana (*fp)) { - *tptr++ = *fp++; - l--; - } else if (*fp == '/') { - *tptr++ = '\\'; + if(lp_client_code_page() == KANJI_CODEPAGE) + { + while (l > 0) { + if (is_shift_jis (*fp)) { + *tptr++ = *fp++; + *tptr++ = *fp++; + l -= 2; + } else if (is_kana (*fp)) { + *tptr++ = *fp++; + l--; + } else if (*fp == '/') { + *tptr++ = '\\'; + fp++; + l--; + } else { + *tptr++ = *fp++; + l--; + } + } + } + else + { + while (l--) + { + *tptr=(*fp == '/') ? '\\' : *fp; + tptr++; fp++; - l--; - } else { - *tptr++ = *fp++; - l--; } } -#else - while (l--) { *tptr=(*fp == '/') ? '\\' : *fp; tptr++; fp++; } -#endif } static void do_tarput() |