aboutsummaryrefslogtreecommitdiff
path: root/project/dclib/dclib-utf8.h
diff options
context:
space:
mode:
authorWiimm <wiimm@wiimm.de>2022-05-13 19:22:13 +0200
committerWiimm <wiimm@wiimm.de>2022-05-13 19:22:13 +0200
commit568365f5bdd4dc71a156ca963d89ac002f405a34 (patch)
tree730d0311536d8fd46a56b74e2c8cac028e778243 /project/dclib/dclib-utf8.h
parent9ae8841ec4720e74173e2f72fac33f0848bbf435 (diff)
SZS v2.27a
Diffstat (limited to 'project/dclib/dclib-utf8.h')
-rw-r--r--project/dclib/dclib-utf8.h60
1 files changed, 46 insertions, 14 deletions
diff --git a/project/dclib/dclib-utf8.h b/project/dclib/dclib-utf8.h
index adea8dc..c4d9380 100644
--- a/project/dclib/dclib-utf8.h
+++ b/project/dclib/dclib-utf8.h
@@ -14,16 +14,16 @@
* *
***************************************************************************
* *
- * Copyright (c) 2012-2021 by Dirk Clemens <wiimm@wiimm.de> *
+ * Copyright (c) 2012-2022 by Dirk Clemens <wiimm@wiimm.de> *
* *
***************************************************************************
* *
- * This program is free software; you can redistribute it and/or modify *
+ * This library 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, *
+ * This library 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. *
@@ -89,24 +89,56 @@ static inline dcUTF8Mode CheckUTF8Mode ( unsigned char ch )
{ return (dcUTF8Mode)TableUTF8Mode[ch]; }
int GetUTF8CharLength ( u32 code );
-char * NextUTF8Char ( ccp str );
+char * NextUTF8Char ( ccp str );
char * NextUTF8CharE ( ccp str, ccp end );
-char * PrevUTF8Char ( ccp str );
+char * PrevUTF8Char ( ccp str );
char * PrevUTF8CharB ( ccp str, ccp begin );
-u32 GetUTF8Char ( ccp str );
-u32 ScanUTF8Char ( ccp * str );
-u32 ScanUTF8CharE ( ccp * str, ccp end );
-u32 ScanUTF8CharInc ( ccp * str );
-u32 ScanUTF8CharIncE ( ccp * str, ccp end );
-u32 GetUTF8AnsiChar ( ccp str );
-u32 ScanUTF8AnsiChar ( ccp * str );
+char * SkipUTF8Char ( ccp str, int skip );
+char * SkipUTF8CharE ( ccp str, ccp end, int skip );
+
+u32 GetUTF8Char ( ccp str );
+u32 ScanUTF8Char ( ccp * str );
+u32 ScanUTF8CharE ( ccp * str, ccp end );
+u32 ScanUTF8CharInc ( ccp * str );
+u32 ScanUTF8CharIncE ( ccp * str, ccp end );
+u32 GetUTF8AnsiChar ( ccp str );
+u32 ScanUTF8AnsiChar ( ccp * str );
u32 ScanUTF8AnsiCharE ( ccp * str, ccp end );
-int ScanUTF8Length ( ccp str, ccp end );
-int CalcUTF8PrintFW ( ccp str, ccp end, uint wanted_fw );
+int ScanUTF8Length ( ccp str );
+int ScanUTF8LengthE ( ccp str, ccp end );
+int CalcUTF8PrintFW ( ccp str, ccp end, uint wanted_fw );
char * PrintUTF8Char ( char * buf, u32 code );
char * PrintUTF8CharToCircBuf ( u32 code );
+ccp AlignUTF8ToCircBuf ( ccp str, int fw, int prec );
+
+///////////////////////////////////////////////////////////////////////////////
+// special variants, that ignore known escape seqeuences
+
+char * NextEUTF8Char ( ccp str );
+char * NextEUTF8CharE ( ccp str, ccp end );
+char * SkipEUTF8Char ( ccp str, int skip );
+char * SkipEUTF8CharE ( ccp str, ccp end, int skip );
+int ScanEUTF8Length ( ccp str );
+int ScanEUTF8LengthE ( ccp str, ccp end );
+
+ccp AlignEUTF8ToCircBuf ( ccp str, int fw, int prec );
+
+///////////////////////////////////////////////////////////////////////////////
+
+static inline int strlen8 ( ccp str )
+ { return ScanUTF8Length(str); }
+
+static inline int strlen8e ( ccp str, ccp end )
+ { return ScanUTF8LengthE(str,end); }
+
+static inline int strlene8 ( ccp str )
+ { return ScanEUTF8Length(str); }
+
+static inline int strlene8e ( ccp str, ccp end )
+ { return ScanEUTF8LengthE(str,end); }
+
///////////////////////////////////////////////////////////////////////////////
typedef struct dcUnicodeTripel