From 56262f5e8e521c782629aa18ed3d294c26f45011 Mon Sep 17 00:00:00 2001 From: Kyle Gunger Date: Thu, 24 Aug 2023 20:12:24 -0400 Subject: change in_csv to return an index --- tnslc/utils.tnsl | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'tnslc/utils.tnsl') diff --git a/tnslc/utils.tnsl b/tnslc/utils.tnsl index 54f01aa..91e8d2e 100644 --- a/tnslc/utils.tnsl +++ b/tnslc/utils.tnsl @@ -21,23 +21,25 @@ {}uint8 csv_pr = "\0\0" -/; in_csv ({}uint8 csv, ~uint8 cstr) [bool] +/; in_csv ({}uint8 csv, ~uint8 cstr) [int] int sl = cstr_len(cstr) int cl = len csv int seen = 0 + int idx = 0 /; loop (int i = 0; i < cl) [i++] /; if (seen < 0) /; if (csv{i} == ',') seen = 0 + idx++ ;/ continue ;/ /; if (seen !< sl) /; if (csv{i} == ',') - return true + return idx ;/ seen = -1 ;; else if (cstr{seen} == csv{i}) @@ -45,13 +47,18 @@ # _printf(~csv_pr{0}) seen++ ;; else if (csv{i} == ',') + idx++ seen = 0 ;; else seen = -1 ;/ ;/ - return seen == sl + /; if (seen == sl) + return idx + ;/ + + return 0 - 1 ;/ /; cstr_copy (~uint8 from, to) -- cgit v1.2.3