diff options
| author | Igor Ryzhov <iryzhov@nfware.com> | 2023-12-29 07:08:30 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-12-29 07:08:30 +0200 |
| commit | 353ee7bb819d5f06a180a1d062b47006456a98c7 (patch) | |
| tree | afcd3eff7e5ddd881681fe0ac213ea419640751c /lib/frrstr.c | |
| parent | 080299fe10b7434602b8e419aa4283e4312cf587 (diff) | |
| parent | f7258386dba9100f399207a1ab2aa2b90111b364 (diff) | |
Merge pull request #14492 from LabNConsulting/oper-state
oper state
Diffstat (limited to 'lib/frrstr.c')
| -rw-r--r-- | lib/frrstr.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/lib/frrstr.c b/lib/frrstr.c index bb112afef7..1e743d4b0c 100644 --- a/lib/frrstr.c +++ b/lib/frrstr.c @@ -249,3 +249,24 @@ const char *frrstr_skip_over_char(const char *s, int skipc) } return NULL; } + +/* + * Advance backward in string until reaching the char `toc` + * if beginning of string is reached w/o finding char return NULL + * + * /foo/bar'baz/booz'/foo + */ +const char *frrstr_back_to_char(const char *s, int toc) +{ + const char *next = s; + const char *prev = NULL; + + if (s[0] == 0) + return NULL; + if (!strpbrk(s, "'\"\\")) + return strrchr(s, toc); + while ((next = frrstr_skip_over_char(next, toc))) + prev = next - 1; + return prev; +} + |
