From bffc5bc5b791264e8407dfff4c79ccd422a6927c Mon Sep 17 00:00:00 2001 From: "David M. Syzdek" Date: Mon, 28 Mar 2022 18:06:32 -0800 Subject: libtinyrad: improving tinyrad_strsplit() --- lib/libtinyrad/lstrings.c | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/lib/libtinyrad/lstrings.c b/lib/libtinyrad/lstrings.c index 00b18d4..e2b6bdf 100644 --- a/lib/libtinyrad/lstrings.c +++ b/lib/libtinyrad/lstrings.c @@ -518,24 +518,19 @@ tinyrad_strsplit( assert(delim != 0); assert(argvp != NULL); + argv = NULL; + argc = 0; + if ((argvp)) + *argvp = NULL; + if ((argcp)) + *argcp = 0; + if (!(str)) - { - if ((argvp)) - *argvp = NULL; - if ((argcp)) - *argcp = 0; return(TRAD_SUCCESS); - }; if ((line = tinyrad_strdup(str)) == NULL) return(TRAD_ENOMEM); - - argv = NULL; - bol = line; - argc = 0; - *argvp = NULL; - if ((argcp)) - *argcp = 0; + bol = line; for(pos = 0; ((line[pos])); pos++) { @@ -549,12 +544,12 @@ tinyrad_strsplit( tinyrad_strsfree(argv); return(rc); }; - bol = &line[pos]; + bol = &line[pos+1]; }; }; - if ( (bol == line) && (!(bol[0])) ) - return(TRAD_SUCCESS); +// if ( (bol == line) && (!(bol[0])) ) +// return(TRAD_SUCCESS); if ((rc = tinyrad_strsadd(&argv, bol)) != TRAD_SUCCESS) { @@ -564,7 +559,8 @@ tinyrad_strsplit( }; argc++; - *argvp = argv; + if ((argvp)) + *argvp = argv; if ((argcp)) *argcp = argc; -- cgit v1.2.3