From f15d3963ab6c7c8411f47a91e32ec7d6992f4931 Mon Sep 17 00:00:00 2001 From: Klement Sekera Date: Thu, 3 Apr 2025 17:02:25 +0200 Subject: [PATCH] Improve type safety. --- lib/clixon/clixon_string.h | 20 +++++++-------- lib/clixon/clixon_xml.h | 36 +++++++++++++------------- lib/clixon/clixon_xml_nsctx.h | 14 +++++----- lib/src/clixon_string.c | 30 +++++++++++----------- lib/src/clixon_xml.c | 48 +++++++++++++++++------------------ lib/src/clixon_xml_nsctx.c | 22 ++++++++-------- 6 files changed, 85 insertions(+), 85 deletions(-) diff --git a/lib/clixon/clixon_string.h b/lib/clixon/clixon_string.h index 7999e4318..28289cec2 100644 --- a/lib/clixon/clixon_string.h +++ b/lib/clixon/clixon_string.h @@ -60,22 +60,22 @@ static inline char * strdup4(char *str) /* * Prototypes */ -char **clicon_strsep(char *string, char *delim, int *nvec0); -int clixon_strsep2(char *str, char *delim1, char *delim2, char ***vcp, int *nvec); -char *clicon_strjoin (int argc, char **argv, char *delim); -char *clixon_string_del_join(char *str1, char *del, char *str2); -int clixon_strsplit(char *nodeid, const int delim, char **prefix, char **id); -int uri_str2cvec(char *string, char delim1, char delim2, int decode, cvec **cvp); +char *clicon_strjoin (int argc, char **argv, const char *delim); +char **clicon_strsep(const char *string, const char *delim, int *nvec0); +int clixon_strsep2(char *str, const char *delim1, const char *delim2, char ***vcp, int *nvec); +char *clixon_string_del_join(char *str1, const char *del, const char *str2); +int clixon_strsplit(const char *nodeid, const int delim, char **prefix, char **id); +int uri_str2cvec(const char *string, char delim1, char delim2, int decode, cvec **cvp); int uri_percent_encode(char **encp, const char *fmt, ...) __attribute__ ((format (printf, 2, 3))); int xml_chardata_encode(char **escp, int quote, const char *fmt, ... ) __attribute__ ((format (printf, 3, 4))); -int xml_chardata_cbuf_append(cbuf *cb, int quote, char *str); +int xml_chardata_cbuf_append(cbuf *cb, int quote, const char *str); int xml_chardata_decode(char **escp, const char *fmt,...); -int uri_percent_decode(char *enc, char **str); +int uri_percent_decode(const char *enc, char **str); int nodeid_split(char *nodeid, char **prefix, char **id); char *clixon_trim(char *str); char *clixon_trim2(char *str, char *trims); -int clicon_strcmp(char *s1, char *s2); -int clixon_unicode2utf8(char *ucstr, char *utfstr, size_t utflen); +int clicon_strcmp(const char *s1, const char *s2); +int clixon_unicode2utf8(const char *ucstr, char *utfstr, size_t utflen); int clixon_str_subst(char *str, cvec *cvv, cbuf *cb); #ifndef HAVE_STRNDUP diff --git a/lib/clixon/clixon_xml.h b/lib/clixon/clixon_xml.h index 96c0e7d1d..bd386f437 100644 --- a/lib/clixon/clixon_xml.h +++ b/lib/clixon/clixon_xml.h @@ -214,17 +214,17 @@ enum format_enum{ /* * Prototypes */ -char *xml_type2str(enum cxobj_type type); +const char *xml_type2str(enum cxobj_type type); int xml_stats_global(uint64_t *nr); int xml_stats(cxobj *xt, uint64_t *nrp, size_t *szp); char *xml_name(cxobj *xn); -int xml_name_set(cxobj *xn, char *name); +int xml_name_set(cxobj *xn, const char *name); char *xml_prefix(cxobj *xn); -int xml_prefix_set(cxobj *xn, char *name); -char *nscache_get(cxobj *x, char *prefix); -int nscache_get_prefix(cxobj *x, char *ns, char **prefix); +int xml_prefix_set(cxobj *xn, const char *name); +char *nscache_get(cxobj *x, const char *prefix); +int nscache_get_prefix(cxobj *x, const char *ns, char **prefix); cvec *nscache_get_all(cxobj *x); -int nscache_set(cxobj *x, char *prefix, char *ns); +int nscache_set(cxobj *x, const char *prefix, const char *ns); int nscache_clear(cxobj *x); int nscache_replace(cxobj *x, cvec *ns); cxobj *xml_parent(cxobj *xn); @@ -239,8 +239,8 @@ int xml_flag_set(cxobj *xn, uint16_t flag); int xml_flag_reset(cxobj *xn, uint16_t flag); char *xml_value(cxobj *xn); -int xml_value_set(cxobj *xn, char *val); -int xml_value_append(cxobj *xn, char *val); +int xml_value_set(cxobj *xn, const char *val); +int xml_value_append(cxobj *xn, const char *val); enum cxobj_type xml_type(cxobj *xn); enum cxobj_type xml_type_set(cxobj *xn, enum cxobj_type type); int xml_child_nr(cxobj *xn); @@ -257,16 +257,16 @@ int xml_child_insert_pos(cxobj *x, cxobj *xc, int pos); int xml_childvec_set(cxobj *x, int len); cxobj **xml_childvec_get(cxobj *x); int clixon_child_xvec_append(cxobj *x, clixon_xvec *xv); -cxobj *xml_new(char *name, cxobj *xn_parent, enum cxobj_type type); -cxobj *xml_new_body(char *name, cxobj *parent, char *val); +cxobj *xml_new(const char *name, cxobj *xn_parent, enum cxobj_type type); +cxobj *xml_new_body(const char *name, cxobj *parent, const char *val); yang_stmt *xml_spec(cxobj *x); int xml_spec_set(cxobj *x, yang_stmt *spec); cg_var *xml_cv(cxobj *x); int xml_cv_set(cxobj *x, cg_var *cv); -cxobj *xml_find(cxobj *xn_parent, char *name); +cxobj *xml_find(cxobj *xn_parent, const char *name); int xml_addsub(cxobj *xp, cxobj *xc); -cxobj *xml_wrap_all(cxobj *xp, char *tag); -cxobj *xml_wrap(cxobj *xc, char *tag); +cxobj *xml_wrap_all(cxobj *xp, const char *tag); +cxobj *xml_wrap(cxobj *xc, const char *tag); int xml_purge(cxobj *xc); int xml_child_rm(cxobj *xp, int i); int xml_rm(cxobj *xc); @@ -298,16 +298,16 @@ int xml_apply0(cxobj *xn, enum cxobj_type type, xml_applyfn_t fn, void *ar int xml_apply_ancestor(cxobj *xn, xml_applyfn_t fn, void *arg); int xml_isancestor(cxobj *x, cxobj *xp); cxobj *xml_root(cxobj *xn); -int xml_operation(char *opstr, enum operation_type *op); +int xml_operation(const char *opstr, enum operation_type *op); char *xml_operation2str(enum operation_type op); -int xml_attr_insert2val(char *instr, enum insert_type *ins); -cxobj *xml_add_attr(cxobj *xn, char *name, char *value, char *prefix, char *ns); +int xml_attr_insert2val(const char *instr, enum insert_type *ins); +cxobj *xml_add_attr(cxobj *xn, const char *name, const char *value, const char *prefix, const char *ns); #ifdef XML_EXPLICIT_INDEX int xml_search_index_p(cxobj *x); -int xml_search_vector_get(cxobj *x, char *name, clixon_xvec **xvec); +int xml_search_vector_get(cxobj *x, const char *name, clixon_xvec **xvec); int xml_search_child_insert(cxobj *xp, cxobj *x); int xml_search_child_rm(cxobj *xp, cxobj *x); -cxobj *xml_child_index_each(cxobj *xparent, char *name, cxobj *xprev, enum cxobj_type type); +cxobj *xml_child_index_each(cxobj *xparent, const char *name, cxobj *xprev, enum cxobj_type type); #endif diff --git a/lib/clixon/clixon_xml_nsctx.h b/lib/clixon/clixon_xml_nsctx.h index 1af9db8a3..493eb5629 100644 --- a/lib/clixon/clixon_xml_nsctx.h +++ b/lib/clixon/clixon_xml_nsctx.h @@ -51,20 +51,20 @@ * Prototypes */ int xml_nsctx_namespace_netconf_default(clixon_handle h); -cvec *xml_nsctx_init(char *prefix, char *ns); +cvec *xml_nsctx_init(const char *prefix, const char *ns); int xml_nsctx_free(cvec *nsc); -char *xml_nsctx_get(cvec *nsc, char *prefix); -int xml_nsctx_get_prefix(cvec *cvv, char *ns, char **prefix); -int xml_nsctx_add(cvec *nsc, char *prefix, char *ns); +char *xml_nsctx_get(cvec *nsc, const char *prefix); +int xml_nsctx_get_prefix(cvec *cvv, const char *ns, char **prefix); +int xml_nsctx_add(cvec *nsc, const char *prefix, const char *ns); int xml_nsctx_node(cxobj *x, cvec **ncp); int xml_nsctx_yang(yang_stmt *yn, cvec **ncp); int xml_nsctx_yangspec(yang_stmt *yspec, cvec **ncp); int xml_nsctx_cbuf(cbuf *cb, cvec *nsc); -int xml2ns(cxobj *x, char *prefix, char **ns); +int xml2ns(cxobj *x, const char *prefix, char **ns); int xml2ns_recurse(cxobj *x); -int xmlns_set(cxobj *x, char *prefix, char *ns); +int xmlns_set(cxobj *x, const char *prefix, const char *ns); int xmlns_set_all(cxobj *x, cvec *nsc); int xml2prefix(cxobj *xn, char *ns, char **prefixp); -int xml_add_namespace(cxobj *x, cxobj *xp, char *prefix, char *ns); +int xml_add_namespace(cxobj *x, cxobj *xp, const char *prefix, const char *ns); #endif /* _CLIXON_XML_NSCTX_H */ diff --git a/lib/src/clixon_string.c b/lib/src/clixon_string.c index 9a741265f..1b9ecce68 100644 --- a/lib/src/clixon_string.c +++ b/lib/src/clixon_string.c @@ -84,8 +84,8 @@ * @see clixon_strsplit */ char ** -clicon_strsep(char *string, - char *delim, +clicon_strsep(const char *string, + const char *delim, int *nvec0) { char **vec = NULL; @@ -94,7 +94,7 @@ clicon_strsep(char *string, int nvec = 1; int i; size_t siz; - char *s; + const char *s; char *d; if ((s = string)==NULL) @@ -136,8 +136,8 @@ clicon_strsep(char *string, */ int clixon_strsep2(char *str, - char *delim1, - char *delim2, + const char *delim1, + const char *delim2, char ***vcp, int *nvec) { @@ -197,7 +197,7 @@ clixon_strsep2(char *str, char * clicon_strjoin(int argc, char **argv, - char *delim) + const char *delim) { int i; int len; @@ -230,8 +230,8 @@ clicon_strjoin(int argc, */ char* clixon_string_del_join(char *str1, - char *del, - char *str2) + const char *del, + const char *str2) { char *str; int len; @@ -275,7 +275,7 @@ clixon_string_del_join(char *str1, * @see clicon_strsep not just single split */ int -clixon_strsplit(char *string, +clixon_strsplit(const char *string, const int delim, char **prefix, char **suffix) @@ -413,7 +413,7 @@ uri_percent_encode(char **encp, * @see uri_percent_encode */ int -uri_percent_decode(char *enc, +uri_percent_decode(const char *enc, char **strp) { int retval = -1; @@ -650,7 +650,7 @@ xml_chardata_encode(char **escp, int xml_chardata_cbuf_append(cbuf *cb, int quote, - char *str) + const char *str) { int retval = -1; int i; @@ -874,7 +874,7 @@ xml_chardata_decode(char **decp, * XXX differentiate between error and null cvec. */ int -uri_str2cvec(char *string, +uri_str2cvec(const char *string, char delim1, char delim2, int decode, @@ -1040,8 +1040,8 @@ clixon_trim2(char *str, * @retval >0 s1 is greater than s2 */ int -clicon_strcmp(char *s1, - char *s2) +clicon_strcmp(const char *s1, + const char *s2) { if (s1 == NULL && s2 == NULL) return 0; @@ -1099,7 +1099,7 @@ clixon_unicode2utf8_one(uint16_t uc16, * @retval -1 Error */ int -clixon_unicode2utf8(char *ucstr, +clixon_unicode2utf8(const char *ucstr, char *utfstr, size_t utflen) { diff --git a/lib/src/clixon_xml.c b/lib/src/clixon_xml.c index 15594aa9b..7b2a4a848 100644 --- a/lib/src/clixon_xml.c +++ b/lib/src/clixon_xml.c @@ -228,10 +228,10 @@ static const map_str2int xsmap[] = { * @param[in] type Xml type * @retval str String keyword */ -char * +const char * xml_type2str(enum cxobj_type type) { - return (char*)clicon_int2str(xsmap, type); + return clicon_int2str(xsmap, type); } /* Stats (too low-level to hang it on handle) */ @@ -362,7 +362,7 @@ xml_name(cxobj *xn) */ int xml_name_set(cxobj *xn, - char *name) + const char *name) { if (xn->x_name){ free(xn->x_name); @@ -397,7 +397,7 @@ xml_prefix(cxobj *xn) */ int xml_prefix_set(cxobj *xn, - char *prefix) + const char *prefix) { if (xn->x_prefix){ free(xn->x_prefix); @@ -422,7 +422,7 @@ xml_prefix_set(cxobj *xn, */ char* nscache_get(cxobj *x, - char *prefix) + const char *prefix) { if (!is_element(x)) return NULL; @@ -441,7 +441,7 @@ nscache_get(cxobj *x, */ int nscache_get_prefix(cxobj *x, - char *namespace, + const char *namespace, char **prefix) { if (!is_element(x)) @@ -477,8 +477,8 @@ nscache_get_all(cxobj *x) */ int nscache_set(cxobj *x, - char *prefix, - char *namespace) + const char *prefix, + const char *namespace) { int retval = -1; @@ -661,7 +661,7 @@ xml_value(cxobj *xn) */ int xml_value_set(cxobj *xn, - char *val) + const char *val) { int retval = -1; size_t sz; @@ -696,7 +696,7 @@ xml_value_set(cxobj *xn, */ int xml_value_append(cxobj *xn, - char *val) + const char *val) { int retval = -1; size_t sz; @@ -1170,7 +1170,7 @@ clixon_child_xvec_append(cxobj *xn, * @see xml_insert */ cxobj * -xml_new(char *name, +xml_new(const char *name, cxobj *xp, enum cxobj_type type) { @@ -1220,9 +1220,9 @@ xml_new(char *name, * Thanks mgsmith@netgate.com */ cxobj * -xml_new_body(char *name, +xml_new_body(const char *name, cxobj *parent, - char *val) + const char *val) { cxobj *new_node = NULL; cxobj *body_node; @@ -1324,7 +1324,7 @@ xml_cv_set(cxobj *x, */ cxobj * xml_find(cxobj *xp, - char *name) + const char *name) { cxobj *x = NULL; @@ -1414,7 +1414,7 @@ xml_addsub(cxobj *xp, */ cxobj * xml_wrap_all(cxobj *xp, - char *tag) + const char *tag) { cxobj *xw; /* new wrap node */ @@ -1444,7 +1444,7 @@ xml_wrap_all(cxobj *xp, */ cxobj * xml_wrap(cxobj *xc, - char *tag) + const char *tag) { cxobj *xw; /* new wrap node */ cxobj *xp; /* parent */ @@ -2387,7 +2387,7 @@ xml_root(cxobj *xn) * @endcode */ int -xml_operation(char *opstr, +xml_operation(const char *opstr, enum operation_type *op) { if (strcmp("merge", opstr) == 0) @@ -2452,7 +2452,7 @@ xml_operation2str(enum operation_type op) * @endcode */ int -xml_attr_insert2val(char *instr, +xml_attr_insert2val(const char *instr, enum insert_type *ins) { if (strcmp("first", instr) == 0) @@ -2482,10 +2482,10 @@ xml_attr_insert2val(char *instr, */ cxobj * xml_add_attr(cxobj *xn, - char *name, - char *value, - char *prefix, - char *namespace) + const char *name, + const char *value, + const char *prefix, + const char *namespace) { cxobj *xa = NULL; char *ns = NULL; @@ -2642,7 +2642,7 @@ xml_search_index_get(cxobj *x, */ int xml_search_vector_get(cxobj *xp, - char *name, + const char *name, clixon_xvec **xvec) { struct search_index *si; @@ -2761,7 +2761,7 @@ xml_search_child_rm(cxobj *xp, */ cxobj * xml_child_index_each(cxobj *xparent, - char *name, + const char *name, cxobj *xprev, enum cxobj_type type) { diff --git a/lib/src/clixon_xml_nsctx.c b/lib/src/clixon_xml_nsctx.c index cbe301739..d554d6873 100644 --- a/lib/src/clixon_xml_nsctx.c +++ b/lib/src/clixon_xml_nsctx.c @@ -112,8 +112,8 @@ xml_nsctx_namespace_netconf_default(clixon_handle h) * @see xml_nsctx_free Free the reutned handle */ cvec * -xml_nsctx_init(char *prefix, - char *ns) +xml_nsctx_init(const char *prefix, + const char *ns) { cvec *cvv = NULL; @@ -153,7 +153,7 @@ xml_nsctx_free(cvec *nsc) */ char* xml_nsctx_get(cvec *cvv, - char *prefix) + const char *prefix) { cg_var *cv; @@ -173,7 +173,7 @@ xml_nsctx_get(cvec *cvv, */ int xml_nsctx_get_prefix(cvec *cvv, - char *ns, + const char *ns, char **prefix) { cg_var *cv = NULL; @@ -202,8 +202,8 @@ xml_nsctx_get_prefix(cvec *cvv, */ int xml_nsctx_add(cvec *cvv, - char *prefix, - char *ns) + const char *prefix, + const char *ns) { int retval = -1; cg_var *cv; @@ -500,7 +500,7 @@ xml_nsctx_cbuf(cbuf *cb, */ int xml2ns(cxobj *x, - char *prefix, + const char *prefix, char **namespace) { int retval = -1; @@ -590,8 +590,8 @@ xml2ns_recurse(cxobj *xt) */ int xmlns_set(cxobj *x, - char *prefix, - char *ns) + const char *prefix, + const char *ns) { int retval = -1; cxobj *xa; @@ -733,8 +733,8 @@ xml2prefix(cxobj *xn, int xml_add_namespace(cxobj *x, cxobj *xp, - char *prefix, - char *namespace) + const char *prefix, + const char *namespace) { int retval = -1; cxobj *xa = NULL;