aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Hill <bruce@bruce-hill.com>2022-04-21 12:54:09 -0400
committerBruce Hill <bruce@bruce-hill.com>2022-04-21 12:54:09 -0400
commitef07c8a22ea2a5450bb3b303edbcead50b3b37ee (patch)
tree5924bb5672664b6a2f4e019f3eaaf81ed11ae036
parentbae576a997619a06ed323fa403e1300e72ef83e7 (diff)
Made NULL end values default to strlen()
-rw-r--r--pattern.c3
-rw-r--r--pattern.h6
2 files changed, 6 insertions, 3 deletions
diff --git a/pattern.c b/pattern.c
index 5190ccd..1832999 100644
--- a/pattern.c
+++ b/pattern.c
@@ -528,6 +528,7 @@ static pat_t *_bp_simplepattern(const char *str, const char *end)
maybe_pat_t bp_stringpattern(const char *str, const char *end)
{
__TRY_PATTERN__
+ if (!end) end = str + strlen(str);
pat_t *ret = NULL;
while (str < end) {
char *start = (char*)str;
@@ -602,6 +603,7 @@ maybe_pat_t bp_replacement(pat_t *replacepat, const char *replacement, const cha
pat_t *pat = new_pat(BP_REPLACE, replacepat->start, replacepat->end, replacepat->min_matchlen, replacepat->max_matchlen);
pat->args.replace.pat = replacepat;
const char *p = replacement;
+ if (!end) end = replacement + strlen(replacement);
__TRY_PATTERN__
for (; p < end; p++) {
if (*p == '\\') {
@@ -645,6 +647,7 @@ pat_t *bp_raw_literal(const char *str, size_t len)
maybe_pat_t bp_pattern(const char *str, const char *end)
{
str = after_spaces(str, true, end);
+ if (!end) end = str + strlen(str);
__TRY_PATTERN__
pat_t *ret = bp_pattern_nl(str, end, false);
__END_TRY_PATTERN__
diff --git a/pattern.h b/pattern.h
index dd763d5..a39f5bf 100644
--- a/pattern.h
+++ b/pattern.h
@@ -108,13 +108,13 @@ typedef struct {
__attribute__((nonnull, returns_nonnull))
pat_t *bp_raw_literal(const char *str, size_t len);
-__attribute__((nonnull))
+__attribute__((nonnull(1)))
maybe_pat_t bp_stringpattern(const char *str, const char *end);
-__attribute__((nonnull))
+__attribute__((nonnull(1,2)))
maybe_pat_t bp_replacement(pat_t *replacepat, const char *replacement, const char *end);
pat_t *chain_together(pat_t *first, pat_t *second);
pat_t *either_pat(pat_t *first, pat_t *second);
-__attribute__((nonnull))
+__attribute__((nonnull(1)))
maybe_pat_t bp_pattern(const char *str, const char *end);
void free_all_pats(void);
__attribute__((nonnull))