aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorDavid M. Syzdek <david@syzdek.net>2022-03-28 18:06:32 -0800
committerDavid M. Syzdek <david@syzdek.net>2022-03-28 18:06:32 -0800
commitbffc5bc5b791264e8407dfff4c79ccd422a6927c (patch)
treea579081cc8953a7794e3ae509734c3bf10fe8013
parente36fa3a1c19fec32987fc07dddd0f96d66fb3db6 (diff)
downloadtinyrad-bffc5bc5b791264e8407dfff4c79ccd422a6927c.tar.gz
tinyrad-bffc5bc5b791264e8407dfff4c79ccd422a6927c.tar.bz2
tinyrad-bffc5bc5b791264e8407dfff4c79ccd422a6927c.tar.xz
tinyrad-bffc5bc5b791264e8407dfff4c79ccd422a6927c.zip
libtinyrad: improving tinyrad_strsplit()
-rw-r--r--lib/libtinyrad/lstrings.c30
1 files 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(
518 assert(delim != 0); 518 assert(delim != 0);
519 assert(argvp != NULL); 519 assert(argvp != NULL);
520 520
521 argv = NULL;
522 argc = 0;
523 if ((argvp))
524 *argvp = NULL;
525 if ((argcp))
526 *argcp = 0;
527
521 if (!(str)) 528 if (!(str))
522 {
523 if ((argvp))
524 *argvp = NULL;
525 if ((argcp))
526 *argcp = 0;
527 return(TRAD_SUCCESS); 529 return(TRAD_SUCCESS);
528 };
529 530
530 if ((line = tinyrad_strdup(str)) == NULL) 531 if ((line = tinyrad_strdup(str)) == NULL)
531 return(TRAD_ENOMEM); 532 return(TRAD_ENOMEM);
532 533 bol = line;
533 argv = NULL;
534 bol = line;
535 argc = 0;
536 *argvp = NULL;
537 if ((argcp))
538 *argcp = 0;
539 534
540 for(pos = 0; ((line[pos])); pos++) 535 for(pos = 0; ((line[pos])); pos++)
541 { 536 {
@@ -549,12 +544,12 @@ tinyrad_strsplit(
549 tinyrad_strsfree(argv); 544 tinyrad_strsfree(argv);
550 return(rc); 545 return(rc);
551 }; 546 };
552 bol = &line[pos]; 547 bol = &line[pos+1];
553 }; 548 };
554 }; 549 };
555 550
556 if ( (bol == line) && (!(bol[0])) ) 551// if ( (bol == line) && (!(bol[0])) )
557 return(TRAD_SUCCESS); 552// return(TRAD_SUCCESS);
558 553
559 if ((rc = tinyrad_strsadd(&argv, bol)) != TRAD_SUCCESS) 554 if ((rc = tinyrad_strsadd(&argv, bol)) != TRAD_SUCCESS)
560 { 555 {
@@ -564,7 +559,8 @@ tinyrad_strsplit(
564 }; 559 };
565 argc++; 560 argc++;
566 561
567 *argvp = argv; 562 if ((argvp))
563 *argvp = argv;
568 if ((argcp)) 564 if ((argcp))
569 *argcp = argc; 565 *argcp = argc;
570 566