Skip to content

Commit abe40ea

Browse files
committed
Zend/zend_string: add zend_string_starts_with()
1 parent d1f7c28 commit abe40ea

File tree

1 file changed

+13
-0
lines changed

1 file changed

+13
-0
lines changed

Zend/zend_string.h

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -379,6 +379,19 @@ static zend_always_inline bool zend_string_equals(zend_string *s1, zend_string *
379379
#define zend_string_equals_literal(str, literal) \
380380
zend_string_equals_str(str, literal, sizeof(literal) - 1)
381381

382+
static zend_always_inline bool zend_string_starts_with_str(const zend_string *str, const char *prefix, size_t prefix_length)
383+
{
384+
return ZSTR_LEN(str) >= prefix_length && !memcmp(ZSTR_VAL(str), prefix, prefix_length);
385+
}
386+
387+
static zend_always_inline bool zend_string_starts_with_val(const zend_string *str, const zend_string *prefix)
388+
{
389+
return zend_string_starts_with_str(str, ZSTR_VAL(prefix), ZSTR_LEN(prefix));
390+
}
391+
392+
#define zend_string_starts_with_literal(str, prefix) \
393+
zend_string_starts_with_str(str, prefix, sizeof(prefix) - 1)
394+
382395
/*
383396
* DJBX33A (Daniel J. Bernstein, Times 33 with Addition)
384397
*

0 commit comments

Comments
 (0)