From ee52b08a0c040f348b1a7066a51e28a03a65088f Mon Sep 17 00:00:00 2001 From: hyung-hwan Date: Mon, 4 Apr 2011 08:57:23 +0000 Subject: [PATCH] added qse_mbsbytes()/qse_wcsbytes() --- qse/include/qse/cmn/str.h | 27 +++-- qse/lib/cmn/str_bas.c | 23 +--- qse/lib/cmn/str_len.c | 49 +++++++++ qse/watcom/debug/os2/lib/cmn/qsecmn.tgt | 84 +++++++++------ qse/watcom/debug/win32/lib/cmn/qsecmn.tgt | 84 +++++++++------ qse/watcom/qse.wpj | 14 +-- qse/watcom/release/os2/lib/cmn/qsecmn.tgt | 124 +++++++++++++--------- 7 files changed, 248 insertions(+), 157 deletions(-) create mode 100644 qse/lib/cmn/str_len.c diff --git a/qse/include/qse/cmn/str.h b/qse/include/qse/cmn/str.h index b348d725..a0858b2c 100644 --- a/qse/include/qse/cmn/str.h +++ b/qse/include/qse/cmn/str.h @@ -1,5 +1,5 @@ /* - * $Id: str.h 423 2011-03-31 04:15:24Z hyunghwan.chung $ + * $Id: str.h 425 2011-04-03 14:57:23Z hyunghwan.chung $ * Copyright 2006-2009 Chung, Hyung-Hwan. This file is part of QSE. @@ -169,20 +169,29 @@ qse_size_t qse_wcslen ( const qse_wchar_t* wcs ); -#ifdef QSE_CHAR_IS_MCHAR -# define qse_strlen(str) qse_mbslen(str) -#else -# define qse_strlen(str) qse_wcslen(str) -#endif - /** - * The qse_strbytes() function returns the number of bytes a null-terminated + * The qse_mbsbytes() function returns the number of bytes a null-terminated * string is holding excluding a terminating null. */ qse_size_t qse_strbytes ( - const qse_char_t* str + const qse_mchar_t* str ); +/** + * The qse_wcsbytes() function returns the number of bytes a null-terminated + * string is holding excluding a terminating null. + */ +qse_size_t qse_wcsbytes ( + const qse_wchar_t* str +); + +#ifdef QSE_CHAR_IS_MCHAR +# define qse_strlen(str) qse_mbslen(str) +# define qse_strbytes(str) qse_mbsbytes(str) +#else +# define qse_strlen(str) qse_wcslen(str) +# define qse_strbytes(str) qse_wcsbytes(str) +#endif qse_size_t qse_mbscpy ( qse_mchar_t* buf, diff --git a/qse/lib/cmn/str_bas.c b/qse/lib/cmn/str_bas.c index bfeff827..2026860e 100644 --- a/qse/lib/cmn/str_bas.c +++ b/qse/lib/cmn/str_bas.c @@ -1,5 +1,5 @@ /* - * $Id: str_bas.c 423 2011-03-31 04:15:24Z hyunghwan.chung $ + * $Id: str_bas.c 425 2011-04-03 14:57:23Z hyunghwan.chung $ * Copyright 2006-2009 Chung, Hyung-Hwan. This file is part of QSE. @@ -22,27 +22,6 @@ #include #include "mem.h" -qse_size_t qse_mbslen (const qse_mchar_t* mbs) -{ - const qse_mchar_t* p = mbs; - while (*p != QSE_MT('\0')) p++; - return p - mbs; -} - -qse_size_t qse_wcslen (const qse_wchar_t* wcs) -{ - const qse_wchar_t* p = wcs; - while (*p != QSE_WT('\0')) p++; - return p - wcs; -} - -qse_size_t qse_strbytes (const qse_char_t* str) -{ - const qse_char_t* p = str; - while (*p != QSE_T('\0')) p++; - return (p - str) * QSE_SIZEOF(qse_char_t); -} - qse_char_t* qse_strbeg (const qse_char_t* str, const qse_char_t* sub) { while (*sub != QSE_T('\0')) diff --git a/qse/lib/cmn/str_len.c b/qse/lib/cmn/str_len.c new file mode 100644 index 00000000..f8896a9c --- /dev/null +++ b/qse/lib/cmn/str_len.c @@ -0,0 +1,49 @@ +/* + * $Id$ + * + Copyright 2006-2009 Chung, Hyung-Hwan. + This file is part of QSE. + + QSE is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation, either version 3 of + the License, or (at your option) any later version. + + QSE 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 Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with QSE. If not, see . + */ + +#include + +qse_size_t qse_mbslen (const qse_mchar_t* mbs) +{ + const qse_mchar_t* p = mbs; + while (*p != QSE_MT('\0')) p++; + return p - mbs; +} + +qse_size_t qse_wcslen (const qse_wchar_t* wcs) +{ + const qse_wchar_t* p = wcs; + while (*p != QSE_WT('\0')) p++; + return p - wcs; +} + +qse_size_t qse_mbsbytes (const qse_mchar_t* str) +{ + const qse_mchar_t* p = str; + while (*p != QSE_MT('\0')) p++; + return (p - str) * QSE_SIZEOF(qse_mchar_t); +} + +qse_size_t qse_wcsbytes (const qse_wchar_t* str) +{ + const qse_wchar_t* p = str; + while (*p != QSE_WT('\0')) p++; + return (p - str) * QSE_SIZEOF(qse_wchar_t); +} diff --git a/qse/watcom/debug/os2/lib/cmn/qsecmn.tgt b/qse/watcom/debug/os2/lib/cmn/qsecmn.tgt index 70d8acde..3fc355fa 100755 --- a/qse/watcom/debug/os2/lib/cmn/qsecmn.tgt +++ b/qse/watcom/debug/os2/lib/cmn/qsecmn.tgt @@ -42,7 +42,7 @@ WVList 0 10 WPickList -47 +48 11 MItem 3 @@ -637,8 +637,8 @@ WVList 0 143 MItem -33 -..\..\..\..\..\lib\cmn\str_pbrk.c +32 +..\..\..\..\..\lib\cmn\str_len.c 144 WString 4 @@ -655,8 +655,8 @@ WVList 0 147 MItem -32 -..\..\..\..\..\lib\cmn\str_put.c +33 +..\..\..\..\..\lib\cmn\str_pbrk.c 148 WString 4 @@ -674,7 +674,7 @@ WVList 151 MItem 32 -..\..\..\..\..\lib\cmn\str_spn.c +..\..\..\..\..\lib\cmn\str_put.c 152 WString 4 @@ -692,7 +692,7 @@ WVList 155 MItem 32 -..\..\..\..\..\lib\cmn\str_str.c +..\..\..\..\..\lib\cmn\str_spn.c 156 WString 4 @@ -709,8 +709,8 @@ WVList 0 159 MItem -34 -..\..\..\..\..\lib\cmn\str_subst.c +32 +..\..\..\..\..\lib\cmn\str_str.c 160 WString 4 @@ -727,8 +727,8 @@ WVList 0 163 MItem -32 -..\..\..\..\..\lib\cmn\str_utl.c +34 +..\..\..\..\..\lib\cmn\str_subst.c 164 WString 4 @@ -745,8 +745,8 @@ WVList 0 167 MItem -33 -..\..\..\..\..\lib\cmn\str_word.c +32 +..\..\..\..\..\lib\cmn\str_utl.c 168 WString 4 @@ -763,8 +763,8 @@ WVList 0 171 MItem -29 -..\..\..\..\..\lib\cmn\time.c +33 +..\..\..\..\..\lib\cmn\str_word.c 172 WString 4 @@ -781,8 +781,8 @@ WVList 0 175 MItem -28 -..\..\..\..\..\lib\cmn\tio.c +29 +..\..\..\..\..\lib\cmn\time.c 176 WString 4 @@ -799,8 +799,8 @@ WVList 0 179 MItem -32 -..\..\..\..\..\lib\cmn\tio_get.c +28 +..\..\..\..\..\lib\cmn\tio.c 180 WString 4 @@ -818,7 +818,7 @@ WVList 183 MItem 32 -..\..\..\..\..\lib\cmn\tio_put.c +..\..\..\..\..\lib\cmn\tio_get.c 184 WString 4 @@ -835,8 +835,8 @@ WVList 0 187 MItem -28 -..\..\..\..\..\lib\cmn\xma.c +32 +..\..\..\..\..\lib\cmn\tio_put.c 188 WString 4 @@ -853,26 +853,26 @@ WVList 0 191 MItem -3 -*.h +28 +..\..\..\..\..\lib\cmn\xma.c 192 WString -3 -NIL +4 +COBJ 193 WVList 0 194 WVList 0 --1 +11 1 1 0 195 MItem -28 -..\..\..\..\..\lib\cmn\mem.h +3 +*.h 196 WString 3 @@ -883,14 +883,14 @@ WVList 198 WVList 0 -191 +-1 1 1 0 199 MItem -32 -..\..\..\..\..\lib\cmn\syscall.h +28 +..\..\..\..\..\lib\cmn\mem.h 200 WString 3 @@ -901,7 +901,25 @@ WVList 202 WVList 0 -191 +195 +1 +1 +0 +203 +MItem +32 +..\..\..\..\..\lib\cmn\syscall.h +204 +WString +3 +NIL +205 +WVList +0 +206 +WVList +0 +195 1 1 0 diff --git a/qse/watcom/debug/win32/lib/cmn/qsecmn.tgt b/qse/watcom/debug/win32/lib/cmn/qsecmn.tgt index c2b57950..e8be2176 100755 --- a/qse/watcom/debug/win32/lib/cmn/qsecmn.tgt +++ b/qse/watcom/debug/win32/lib/cmn/qsecmn.tgt @@ -42,7 +42,7 @@ WVList 0 10 WPickList -47 +48 11 MItem 3 @@ -637,8 +637,8 @@ WVList 0 143 MItem -33 -..\..\..\..\..\lib\cmn\str_pbrk.c +32 +..\..\..\..\..\lib\cmn\str_len.c 144 WString 4 @@ -655,8 +655,8 @@ WVList 0 147 MItem -32 -..\..\..\..\..\lib\cmn\str_put.c +33 +..\..\..\..\..\lib\cmn\str_pbrk.c 148 WString 4 @@ -674,7 +674,7 @@ WVList 151 MItem 32 -..\..\..\..\..\lib\cmn\str_spn.c +..\..\..\..\..\lib\cmn\str_put.c 152 WString 4 @@ -692,7 +692,7 @@ WVList 155 MItem 32 -..\..\..\..\..\lib\cmn\str_str.c +..\..\..\..\..\lib\cmn\str_spn.c 156 WString 4 @@ -709,8 +709,8 @@ WVList 0 159 MItem -34 -..\..\..\..\..\lib\cmn\str_subst.c +32 +..\..\..\..\..\lib\cmn\str_str.c 160 WString 4 @@ -727,8 +727,8 @@ WVList 0 163 MItem -32 -..\..\..\..\..\lib\cmn\str_utl.c +34 +..\..\..\..\..\lib\cmn\str_subst.c 164 WString 4 @@ -745,8 +745,8 @@ WVList 0 167 MItem -33 -..\..\..\..\..\lib\cmn\str_word.c +32 +..\..\..\..\..\lib\cmn\str_utl.c 168 WString 4 @@ -763,8 +763,8 @@ WVList 0 171 MItem -29 -..\..\..\..\..\lib\cmn\time.c +33 +..\..\..\..\..\lib\cmn\str_word.c 172 WString 4 @@ -781,8 +781,8 @@ WVList 0 175 MItem -28 -..\..\..\..\..\lib\cmn\tio.c +29 +..\..\..\..\..\lib\cmn\time.c 176 WString 4 @@ -799,8 +799,8 @@ WVList 0 179 MItem -32 -..\..\..\..\..\lib\cmn\tio_get.c +28 +..\..\..\..\..\lib\cmn\tio.c 180 WString 4 @@ -818,7 +818,7 @@ WVList 183 MItem 32 -..\..\..\..\..\lib\cmn\tio_put.c +..\..\..\..\..\lib\cmn\tio_get.c 184 WString 4 @@ -835,8 +835,8 @@ WVList 0 187 MItem -28 -..\..\..\..\..\lib\cmn\xma.c +32 +..\..\..\..\..\lib\cmn\tio_put.c 188 WString 4 @@ -853,26 +853,26 @@ WVList 0 191 MItem -3 -*.h +28 +..\..\..\..\..\lib\cmn\xma.c 192 WString -3 -NIL +4 +COBJ 193 WVList 0 194 WVList 0 --1 +11 1 1 0 195 MItem -28 -..\..\..\..\..\lib\cmn\mem.h +3 +*.h 196 WString 3 @@ -883,14 +883,14 @@ WVList 198 WVList 0 -191 +-1 1 1 0 199 MItem -32 -..\..\..\..\..\lib\cmn\syscall.h +28 +..\..\..\..\..\lib\cmn\mem.h 200 WString 3 @@ -901,7 +901,25 @@ WVList 202 WVList 0 -191 +195 +1 +1 +0 +203 +MItem +32 +..\..\..\..\..\lib\cmn\syscall.h +204 +WString +3 +NIL +205 +WVList +0 +206 +WVList +0 +195 1 1 0 diff --git a/qse/watcom/qse.wpj b/qse/watcom/qse.wpj index 7295f40e..acb6d939 100755 --- a/qse/watcom/qse.wpj +++ b/qse/watcom/qse.wpj @@ -136,14 +136,14 @@ WRect 0 5700 4240 -1 +0 0 31 WFileName 28 debug/os2/lib/cmn/qsecmn.tgt -20 -23 +31 +32 32 VComponent 33 @@ -197,7 +197,7 @@ VComponent 42 WRect 980 -1093 +1080 5700 4240 0 @@ -207,13 +207,13 @@ WFileName 30 debug/win32/lib/cmn/qsecmn.tgt 18 -24 +22 44 VComponent 45 WRect 200 -1253 +1240 5700 4240 1 @@ -240,4 +240,4 @@ WFileName debug/win32/cmd/scm/qsescm.tgt 0 1 -41 +29 diff --git a/qse/watcom/release/os2/lib/cmn/qsecmn.tgt b/qse/watcom/release/os2/lib/cmn/qsecmn.tgt index f150e266..84379fc2 100755 --- a/qse/watcom/release/os2/lib/cmn/qsecmn.tgt +++ b/qse/watcom/release/os2/lib/cmn/qsecmn.tgt @@ -42,7 +42,7 @@ WVList 0 10 WPickList -47 +48 11 MItem 3 @@ -701,8 +701,8 @@ WVList 0 159 MItem -33 -..\..\..\..\..\lib\cmn\str_pbrk.c +32 +..\..\..\..\..\lib\cmn\str_len.c 160 WString 4 @@ -719,8 +719,8 @@ WVList 0 163 MItem -32 -..\..\..\..\..\lib\cmn\str_put.c +33 +..\..\..\..\..\lib\cmn\str_pbrk.c 164 WString 4 @@ -738,7 +738,7 @@ WVList 167 MItem 32 -..\..\..\..\..\lib\cmn\str_spn.c +..\..\..\..\..\lib\cmn\str_put.c 168 WString 4 @@ -756,7 +756,7 @@ WVList 171 MItem 32 -..\..\..\..\..\lib\cmn\str_str.c +..\..\..\..\..\lib\cmn\str_spn.c 172 WString 4 @@ -773,8 +773,8 @@ WVList 0 175 MItem -34 -..\..\..\..\..\lib\cmn\str_subst.c +32 +..\..\..\..\..\lib\cmn\str_str.c 176 WString 4 @@ -791,48 +791,48 @@ WVList 0 179 MItem -32 -..\..\..\..\..\lib\cmn\str_utl.c +34 +..\..\..\..\..\lib\cmn\str_subst.c 180 WString 4 COBJ 181 WVList -1 -182 -MVState -183 -WString -3 -WCC -184 -WString -25 -o?2??Include directories: -1 -185 -WString -54 -"$(%watcom)/h;$(%watcom)/h/os2;..\..\..\..\..\include" 0 -186 +182 WVList 0 11 1 1 0 -187 +183 MItem -33 -..\..\..\..\..\lib\cmn\str_word.c -188 +32 +..\..\..\..\..\lib\cmn\str_utl.c +184 WString 4 COBJ -189 +185 WVList +1 +186 +MVState +187 +WString +3 +WCC +188 +WString +25 +o?2??Include directories: +1 +189 +WString +54 +"$(%watcom)/h;$(%watcom)/h/os2;..\..\..\..\..\include" 0 190 WVList @@ -843,8 +843,8 @@ WVList 0 191 MItem -29 -..\..\..\..\..\lib\cmn\time.c +33 +..\..\..\..\..\lib\cmn\str_word.c 192 WString 4 @@ -861,8 +861,8 @@ WVList 0 195 MItem -28 -..\..\..\..\..\lib\cmn\tio.c +29 +..\..\..\..\..\lib\cmn\time.c 196 WString 4 @@ -879,8 +879,8 @@ WVList 0 199 MItem -32 -..\..\..\..\..\lib\cmn\tio_get.c +28 +..\..\..\..\..\lib\cmn\tio.c 200 WString 4 @@ -898,7 +898,7 @@ WVList 203 MItem 32 -..\..\..\..\..\lib\cmn\tio_put.c +..\..\..\..\..\lib\cmn\tio_get.c 204 WString 4 @@ -915,8 +915,8 @@ WVList 0 207 MItem -28 -..\..\..\..\..\lib\cmn\xma.c +32 +..\..\..\..\..\lib\cmn\tio_put.c 208 WString 4 @@ -933,26 +933,26 @@ WVList 0 211 MItem -3 -*.h +28 +..\..\..\..\..\lib\cmn\xma.c 212 WString -3 -NIL +4 +COBJ 213 WVList 0 214 WVList 0 --1 +11 1 1 0 215 MItem -28 -..\..\..\..\..\lib\cmn\mem.h +3 +*.h 216 WString 3 @@ -963,14 +963,14 @@ WVList 218 WVList 0 -211 +-1 1 1 0 219 MItem -32 -..\..\..\..\..\lib\cmn\syscall.h +28 +..\..\..\..\..\lib\cmn\mem.h 220 WString 3 @@ -981,7 +981,25 @@ WVList 222 WVList 0 -211 +215 +1 +1 +0 +223 +MItem +32 +..\..\..\..\..\lib\cmn\syscall.h +224 +WString +3 +NIL +225 +WVList +0 +226 +WVList +0 +215 1 1 0