aboutsummaryrefslogtreecommitdiff
path: root/project/dclib
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--project/dclib/dclib-basics.c13
-rw-r--r--project/dclib/lib-mkw.h8
2 files changed, 18 insertions, 3 deletions
diff --git a/project/dclib/dclib-basics.c b/project/dclib/dclib-basics.c
index 8f9ec1f..c50f95a 100644
--- a/project/dclib/dclib-basics.c
+++ b/project/dclib/dclib-basics.c
@@ -3539,7 +3539,8 @@ mem_t BeforeMem ( const mem_t src, ccp ref )
{
mem_t res;
res.ptr = src.ptr;
- res.len = ref < src.ptr ? 0
+ res.len = !ref ? src.len
+ : ref < src.ptr ? 0
: ref <= src.ptr + src.len ? ref - src.ptr
: src.len;
return res;
@@ -3550,7 +3551,12 @@ mem_t BeforeMem ( const mem_t src, ccp ref )
mem_t BehindMem ( const mem_t src, ccp ref )
{
mem_t res;
- if ( ref <= src.ptr )
+ if (!ref)
+ {
+ res.ptr = src.ptr + src.len;
+ res.len = 0;
+ }
+ else if ( ref <= src.ptr )
res = src;
else if ( ref <= src.ptr + src.len )
{
@@ -6219,7 +6225,8 @@ s64 ScanKeywordListEx
uint *err_count // not NULL: store errors here
)
{
- ASSERT(arg);
+ if (!arg)
+ arg = "";
char key_buf[KEYWORD_NAME_MAX];
char *end = key_buf + sizeof(key_buf) - 1;
diff --git a/project/dclib/lib-mkw.h b/project/dclib/lib-mkw.h
index 8141e46..2801ece 100644
--- a/project/dclib/lib-mkw.h
+++ b/project/dclib/lib-mkw.h
@@ -162,6 +162,14 @@ static inline bool IsLecodeSpecial ( uint tid )
{ return tid >= MKW_SPECIAL_BEG && tid < MKW_LE_RANDOM_BEG
|| tid >= MKW_LE_RANDOM_END && tid < MKW_SPECIAL_END; }
+
+static inline uint NextLecodeSlot ( uint slot )
+ { return slot == MKW_ARENA_END-1 ? MKW_LE_SLOT_BEG : slot+1; }
+
+static inline uint NextLecodeSlotRnd ( uint slot )
+ { return slot == MKW_ARENA_END-1 ? MKW_LE_RANDOM_BEG
+ : slot == MKW_LE_RANDOM_END-1 ? MKW_LE_SLOT_BEG : slot+1; }
+
//
///////////////////////////////////////////////////////////////////////////////
/////////////// 24p support ///////////////