NXT_EXPORT u_char * njs_string_alloc(njs_vm_t *vm, njs_value_t *value,
uint32_t size, uint32_t length);
NXT_EXPORT njs_ret_t njs_string_create(njs_vm_t *vm, njs_value_t *value,
- u_char *start, uint32_t size, uint32_t length);
+ const u_char *start, uint32_t size, uint32_t length);
NXT_EXPORT nxt_int_t njs_value_string_copy(njs_vm_t *vm, nxt_str_t *retval,
const njs_value_t *value, uintptr_t *next);
njs_ret_t
-njs_array_string_add(njs_vm_t *vm, njs_array_t *array, u_char *start,
+njs_array_string_add(njs_vm_t *vm, njs_array_t *array, const u_char *start,
size_t size, size_t length)
{
njs_ret_t ret;
njs_array_t *njs_array_alloc(njs_vm_t *vm, uint32_t length, uint32_t spare);
njs_ret_t njs_array_add(njs_vm_t *vm, njs_array_t *array, njs_value_t *value);
-njs_ret_t njs_array_string_add(njs_vm_t *vm, njs_array_t *array, u_char *start,
- size_t size, size_t length);
+njs_ret_t njs_array_string_add(njs_vm_t *vm, njs_array_t *array,
+ const u_char *start, size_t size, size_t length);
njs_ret_t njs_array_expand(njs_vm_t *vm, njs_array_t *array, uint32_t prepend,
uint32_t size);
njs_ret_t njs_array_constructor(njs_vm_t *vm, njs_value_t *args,
nxt_int_t
-njs_regexp_match(njs_vm_t *vm, nxt_regex_t *regex, u_char *subject, size_t len,
- nxt_regex_match_data_t *match_data)
+njs_regexp_match(njs_vm_t *vm, nxt_regex_t *regex, const u_char *subject,
+ size_t len, nxt_regex_match_data_t *match_data)
{
nxt_int_t ret;
nxt_trace_handler_t handler;
njs_value_t *value);
njs_regexp_pattern_t *njs_regexp_pattern_create(njs_vm_t *vm,
u_char *string, size_t length, njs_regexp_flags_t flags);
-nxt_int_t njs_regexp_match(njs_vm_t *vm, nxt_regex_t *regex, u_char *subject,
- size_t len, nxt_regex_match_data_t *match_data);
+nxt_int_t njs_regexp_match(njs_vm_t *vm, nxt_regex_t *regex,
+ const u_char *subject, size_t len, nxt_regex_match_data_t *match_data);
njs_regexp_t *njs_regexp_alloc(njs_vm_t *vm, njs_regexp_pattern_t *pattern);
njs_ret_t njs_regexp_prototype_exec(njs_vm_t *vm, njs_value_t *args,
nxt_uint_t nargs, njs_index_t unused);
static njs_ret_t njs_string_match_multiple(njs_vm_t *vm, njs_value_t *args,
njs_regexp_pattern_t *pattern);
static njs_ret_t njs_string_split_part_add(njs_vm_t *vm, njs_array_t *array,
- njs_utf8_t utf8, u_char *start, size_t size);
+ njs_utf8_t utf8, const u_char *start, size_t size);
static njs_ret_t njs_string_replace_regexp(njs_vm_t *vm, njs_value_t *args,
njs_string_replace_t *r);
static njs_ret_t njs_string_replace_regexp_function(njs_vm_t *vm,
njs_ret_t
-njs_string_create(njs_vm_t *vm, njs_value_t *value, u_char *start,
+njs_string_create(njs_vm_t *vm, njs_value_t *value, const u_char *start,
uint32_t size, uint32_t length)
{
- u_char *dst, *src;
+ u_char *dst;
+ const u_char *src;
njs_string_t *string;
value->type = NJS_STRING;
value->long_string.data = string;
- string->start = start;
+ string->start = (u_char *) start;
string->length = length;
string->retain = 1;
}
njs_index_t unused)
{
int ret, *captures;
- u_char *p, *start, *next;
size_t size;
uint32_t limit;
njs_utf8_t utf8;
njs_array_t *array;
- const u_char *end;
+ const u_char *p, *start, *next, *end;
njs_regexp_utf8_t type;
njs_string_prop_t string, split;
njs_regexp_pattern_t *pattern;
static njs_ret_t
njs_string_split_part_add(njs_vm_t *vm, njs_array_t *array, njs_utf8_t utf8,
- u_char *start, size_t size)
+ const u_char *start, size_t size)
{
ssize_t length;
nxt_inline uint32_t
-njs_string_length(njs_utf8_t utf8, u_char *start, size_t size)
+njs_string_length(njs_utf8_t utf8, const u_char *start, size_t size)
{
ssize_t length;
nxt_int_t
-nxt_regex_match(nxt_regex_t *regex, u_char *subject, size_t len,
+nxt_regex_match(nxt_regex_t *regex, const u_char *subject, size_t len,
nxt_regex_match_data_t *match_data, nxt_regex_context_t *ctx)
{
int ret;
- ret = pcre_exec(regex->code, regex->extra, (char *) subject, len, 0, 0,
- match_data->captures, match_data->ncaptures);
+ ret = pcre_exec(regex->code, regex->extra, (const char *) subject, len,
+ 0, 0, match_data->captures, match_data->ncaptures);
/* PCRE_ERROR_NOMATCH is -1. */
nxt_regex_context_t *ctx);
NXT_EXPORT void nxt_regex_match_data_free(nxt_regex_match_data_t *match_data,
nxt_regex_context_t *ctx);
-NXT_EXPORT nxt_int_t nxt_regex_match(nxt_regex_t *regex, u_char *subject,
+NXT_EXPORT nxt_int_t nxt_regex_match(nxt_regex_t *regex, const u_char *subject,
size_t len, nxt_regex_match_data_t *match_data, nxt_regex_context_t *ctx);
NXT_EXPORT int *nxt_regex_captures(nxt_regex_match_data_t *match_data);