summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2009-10-22 11:32:13 +0800
committerpiaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2009-10-22 11:32:13 +0800
commitb812e4cd76f74dc59e3f2b9b0d9d394903b4d171 (patch)
tree4ec6c497dc9abb9a91c7eeb6f38b7c1c854534eb
parent9cf217abfa24c2064e8b2283b9bf133d836c5c03 (diff)
downloadpttbbs-b812e4cd76f74dc59e3f2b9b0d9d394903b4d171.tar
pttbbs-b812e4cd76f74dc59e3f2b9b0d9d394903b4d171.tar.gz
pttbbs-b812e4cd76f74dc59e3f2b9b0d9d394903b4d171.tar.bz2
pttbbs-b812e4cd76f74dc59e3f2b9b0d9d394903b4d171.tar.lz
pttbbs-b812e4cd76f74dc59e3f2b9b0d9d394903b4d171.tar.xz
pttbbs-b812e4cd76f74dc59e3f2b9b0d9d394903b4d171.tar.zst
pttbbs-b812e4cd76f74dc59e3f2b9b0d9d394903b4d171.zip
* add DBCS safe trim API
git-svn-id: http://opensvn.csie.org/pttbbs/trunk@4949 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r--pttbbs/common/sys/string.c8
-rw-r--r--pttbbs/include/cmsys.h1
2 files changed, 9 insertions, 0 deletions
diff --git a/pttbbs/common/sys/string.c b/pttbbs/common/sys/string.c
index dbcd396a..7b071ba7 100644
--- a/pttbbs/common/sys/string.c
+++ b/pttbbs/common/sys/string.c
@@ -345,6 +345,14 @@ int DBCS_Status(const char *dbcstr, int pos)
return sts;
}
+void DBCS_safe_trim(char *dbcstr)
+{
+ int len = strlen(dbcstr);
+ if (len < 1) return;
+ if (DBCS_Status(dbcstr, len-1) == DBCS_LEADING)
+ dbcstr[len-1] = 0;
+}
+
/**
* DBCS_strcasestr(pool, ptr): 在字串 pool 中尋找 ptr (只忽略英文大小寫)
*/
diff --git a/pttbbs/include/cmsys.h b/pttbbs/include/cmsys.h
index 89ad93d5..7704191c 100644
--- a/pttbbs/include/cmsys.h
+++ b/pttbbs/include/cmsys.h
@@ -106,6 +106,7 @@ extern unsigned StringHash(const char *s);
/* DBCS utilities */
extern int DBCS_RemoveIntrEscape(unsigned char *buf, int *len);
extern int DBCS_Status(const char *dbcstr, int pos);
+extern void DBCS_safe_trim(char *dbcstr);
extern char * DBCS_strcasestr(const char* pool, const char *ptr);
extern size_t str_iconv(
const char *fromcode, /* charset of source string */