From e3d5f703f1b7734fa648d8027c095ee9d8167c59 Mon Sep 17 00:00:00 2001 From: arai Date: Sat, 6 Jul 2002 05:32:32 +0000 Subject: [PATCH] * src/header.c (convert_filename): fixed bug on utf8 conversion, provisionally. git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/lha/lha/trunk@279 6a8cc165-1e22-0410-a132-eb4e3f353aba --- src/header.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/header.c b/src/header.c index d316e30..c327601 100644 --- a/src/header.c +++ b/src/header.c @@ -212,12 +212,24 @@ convert_filename(name, len, size, char tmp[256]; /* 256 is sizeof(LzHeader.name) */ if (from_code == CODE_SJIS && to_code == CODE_UTF8) { + for (i = 0; i < len; i++) + if (name[i] == '\xff') name[i] = '/'; sjis_to_utf8(tmp, name, sizeof(tmp)); strncpy(name, tmp, size); + name[size-1] = 0; + len = strlen(name); + for (i = 0; i < len; i++) + if (name[i] == '/') name[i] = '\xff'; } else if (from_code == CODE_UTF8 && to_code == CODE_SJIS) { + for (i = 0; i < len; i++) + if (name[i] == '\xff') name[i] = '/'; utf8_to_sjis(tmp, name, sizeof(tmp)); strncpy(name, tmp, size); + name[size-1] = 0; + len = strlen(name); + for (i = 0; i < len; i++) + if (name[i] == '/') name[i] = '\xff'; } #endif -- 2.11.0