libsheepy

C lib for handling text files, strings and json like data structure with an object oriented system
git clone https://spartatek.se/git/libsheepy.git
Log | Files | Refs | README | LICENSE

commit 6120132b4d11290d62fff82b9e4dc13fe8e89a4c
parent 81310f422139c76ec92401b10aab034e65d31a38
Author: Remy Noulin <loader2x@gmail.com>
Date:   Mon, 10 Jul 2023 14:57:18 +0200

for smallJson objects, allow setting top of same type multiple times

release/json/libsheepyCSmallJson.h |  1 +
release/libsheepy.h                |  2 +-
src/json/libsheepyCSmallJson.c     | 16 ++++++++--------
src/json/libsheepyCSmallJson.h     |  1 +
src/libsheepy.h                    |  2 +-
5 files changed, 12 insertions(+), 10 deletions(-)

Diffstat:
Mrelease/json/libsheepyCSmallJson.h | 1+
Mrelease/libsheepy.h | 2+-
Msrc/json/libsheepyCSmallJson.c | 16++++++++--------
Msrc/json/libsheepyCSmallJson.h | 1+
Msrc/libsheepy.h | 2+-
5 files changed, 12 insertions(+), 10 deletions(-)

diff --git a/release/json/libsheepyCSmallJson.h b/release/json/libsheepyCSmallJson.h @@ -149,6 +149,7 @@ typedef smallJsont* (*setTypeArraySmallJsonFt) (smallJsont *self); /** * set top object in self + * top of same type can be set multiple times * * \param * value object to set in self diff --git a/release/libsheepy.h b/release/libsheepy.h @@ -98,7 +98,7 @@ // version accoring to the version package: Release.Major.minor.patch // https://noulin.net/version/file/README.md.html -#define LIBSHEEPY_VERSION "2.2.12" +#define LIBSHEEPY_VERSION "2.2.12.1" #ifndef SH_PREFIX #define SH_PREFIX(NAME) NAME diff --git a/src/json/libsheepyCSmallJson.c b/src/json/libsheepyCSmallJson.c @@ -3172,49 +3172,49 @@ internal smallJsont* setTopSmallJson(smallJsont *self, baset *value) { self->iterKey = NULL; self->iterStep = 0; - if (isOType(value, "undefined") && (self->topIsA == SMALLJSON_IS_EMPTY)) { + if (isOType(value, "undefined") && (self->topIsA == SMALLJSON_IS_EMPTY || self->topIsA == TOP_IS_UNDEFINED)) { self->topIsA = TOP_IS_UNDEFINED; sFree((smallt *)self->topU); self->topU = (sUndefinedt *)toSmallt(value); return(self); } - if (isOType(value, "smallBool") && (self->topIsA == SMALLJSON_IS_EMPTY)) { + if (isOType(value, "smallBool") && (self->topIsA == SMALLJSON_IS_EMPTY || self->topIsA == TOP_IS_BOOL)) { self->topIsA = TOP_IS_BOOL; sFree((smallt *)self->topB); self->topB = (sBoolt *)toSmallt(value); return(self); } - if (isOType(value, "smallDouble") && (self->topIsA == SMALLJSON_IS_EMPTY)) { + if (isOType(value, "smallDouble") && (self->topIsA == SMALLJSON_IS_EMPTY || self->topIsA == TOP_IS_DOUBLE)) { self->topIsA = TOP_IS_DOUBLE; sFree((smallt *)self->topD); self->topD = (sDoublet *)toSmallt(value); return(self); } - if (isOType(value, "smallInt") && (self->topIsA == SMALLJSON_IS_EMPTY)) { + if (isOType(value, "smallInt") && (self->topIsA == SMALLJSON_IS_EMPTY || self->topIsA == TOP_IS_INT)) { self->topIsA = TOP_IS_INT; sFree((smallt *)self->topI); self->topI = (sIntt *)toSmallt(value); return(self); } - if (isOType(value, "smallString") && (self->topIsA == SMALLJSON_IS_EMPTY)) { + if (isOType(value, "smallString") && (self->topIsA == SMALLJSON_IS_EMPTY || self->topIsA == TOP_IS_STRING)) { self->topIsA = TOP_IS_STRING; sFree((smallt *)self->topS); self->topS = (sStringt *)toSmallt(value); return(self); } - if (isOType(value, "smallDict") && (self->topIsA == SMALLJSON_IS_EMPTY)) { + if (isOType(value, "smallDict") && (self->topIsA == SMALLJSON_IS_EMPTY || self->topIsA == TOP_IS_DICT)) { self->topIsA = TOP_IS_DICT; sFree((smallt *)self->top); self->top = (sDictt *)toSmallt(value); return(self); } - if (isOType(value, "smallArray") && (self->topIsA == SMALLJSON_IS_EMPTY)) { + if (isOType(value, "smallArray") && (self->topIsA == SMALLJSON_IS_EMPTY || self->topIsA == TOP_IS_ARRAY)) { self->topIsA = TOP_IS_ARRAY; sFree((smallt *)self->topA); self->topA = (sArrayt *)toSmallt(value); return(self); } - if (isOType(value, "smallJson") && (self->topIsA == SMALLJSON_IS_EMPTY)) { + if (isOType(value, "smallJson")) { cast(smallJsont*, v, value); switch(v->topIsA) { case TOP_IS_UNDEFINED: diff --git a/src/json/libsheepyCSmallJson.h b/src/json/libsheepyCSmallJson.h @@ -149,6 +149,7 @@ typedef smallJsont* (*setTypeArraySmallJsonFt) (smallJsont *self); /** * set top object in self + * top of same type can be set multiple times * * \param * value object to set in self diff --git a/src/libsheepy.h b/src/libsheepy.h @@ -98,7 +98,7 @@ // version accoring to the version package: Release.Major.minor.patch // https://noulin.net/version/file/README.md.html -#define LIBSHEEPY_VERSION "2.2.12" +#define LIBSHEEPY_VERSION "2.2.12.1" #ifndef SH_PREFIX #define SH_PREFIX(NAME) NAME