]> git.kaiwu.me - njs.git/commitdiff
Added string functions wrappers.
authorDmitry Volyntsev <xeioex@nginx.com>
Thu, 11 Apr 2019 17:09:41 +0000 (20:09 +0300)
committerDmitry Volyntsev <xeioex@nginx.com>
Thu, 11 Apr 2019 17:09:41 +0000 (20:09 +0300)
nxt_strlen(), nxt_strchr(), nxt_strlchr().

njs/njs_fs.c
njs/njs_regexp.c
njs/njs_shell.c
nxt/nxt_string.h

index 516b820cd7b8c4bc22ff408dfbb42aea23f4f21a..1dbb3761fd5961b6b16005cfa84f29b9c76b3857 100644 (file)
@@ -899,7 +899,7 @@ static njs_ret_t njs_fs_error(njs_vm_t *vm, const char *syscall,
     njs_object_prop_t   *prop;
     nxt_lvlhsh_query_t  lhq;
 
-    size = description != NULL ? strlen(description) : 0;
+    size = description != NULL ? nxt_strlen(description) : 0;
 
     ret = njs_string_new(vm, &string, (u_char *) description, size, size);
     if (nxt_slow_path(ret != NXT_OK)) {
@@ -957,7 +957,7 @@ static njs_ret_t njs_fs_error(njs_vm_t *vm, const char *syscall,
     }
 
     if (syscall != NULL) {
-        size = strlen(syscall);
+        size = nxt_strlen(syscall);
         ret = njs_string_new(vm, &string, (u_char *) syscall, size, size);
         if (nxt_slow_path(ret != NXT_OK)) {
             return NJS_ERROR;
index dac8b84c549fb422df92e45dfdba4f5ea3ce2142..2725daa96633307d5ab030117da5dfaabdd24673 100644 (file)
@@ -526,7 +526,7 @@ njs_regexp_prototype_source(njs_vm_t *vm, njs_value_t *value,
     /* Skip starting "/". */
     source = pattern->source + 1;
 
-    size = strlen((char *) source) - pattern->flags;
+    size = nxt_strlen(source) - pattern->flags;
     length = nxt_utf8_length(source, size);
 
     return njs_regexp_string_create(vm, retval, source, size, length);
@@ -559,7 +559,7 @@ njs_regexp_to_string(njs_vm_t *vm, njs_value_t *retval,
     pattern = value->data.u.regexp->pattern;
     source = pattern->source;
 
-    size = strlen((char *) source);
+    size = nxt_strlen(source);
     length = nxt_utf8_length(source, size);
 
     return njs_regexp_string_create(vm, retval, source, size, length);
index 424e509f7b3c276bc69c9501186368619d44087d..0761084ed259495aaf60d6cff1b18601a3de4b16 100644 (file)
@@ -236,12 +236,12 @@ main(int argc, char **argv)
                 goto done;
             }
 
-            memcpy(path + strlen(path), "/shell", sizeof("/shell"));
+            memcpy(path + nxt_strlen(path), "/shell", sizeof("/shell"));
             opts.file = path;
         }
 
         vm_options.file.start = (u_char *) opts.file;
-        vm_options.file.length = strlen(opts.file);
+        vm_options.file.length = nxt_strlen(opts.file);
     }
 
     vm_options.init = !opts.interactive;
@@ -438,7 +438,7 @@ njs_interactive_shell(njs_opts_t *opts, njs_vm_opt_t *vm_options)
             break;
         }
 
-        line.length = strlen((char *) line.start);
+        line.length = nxt_strlen(line.start);
         if (line.length == 0) {
             continue;
         }
@@ -575,7 +575,7 @@ close_fd:
 static njs_vm_t *
 njs_create_vm(njs_opts_t *opts, njs_vm_opt_t *vm_options)
 {
-    char        *p, *start;
+    u_char      *p, *start;
     njs_vm_t    *vm;
     nxt_int_t   ret;
     nxt_str_t   path;
@@ -594,7 +594,7 @@ njs_create_vm(njs_opts_t *opts, njs_vm_opt_t *vm_options)
 
     for (i = 0; i < opts->n_paths; i++) {
         path.start = (u_char *) opts->paths[i];
-        path.length = strlen(opts->paths[i]);
+        path.length = nxt_strlen(opts->paths[i]);
 
         ret = njs_vm_add_path(vm, &path);
         if (ret != NXT_OK) {
@@ -603,16 +603,16 @@ njs_create_vm(njs_opts_t *opts, njs_vm_opt_t *vm_options)
         }
     }
 
-    start = getenv("NJS_PATH");
+    start = (u_char *) getenv("NJS_PATH");
     if (start == NULL) {
         return vm;
     }
 
     for ( ;; ) {
-        p = strchr(start, ':');
+        p = nxt_strchr(start, ':');
 
-        path.start = (u_char *) start;
-        path.length = (p != NULL) ? (size_t) (p - start) : strlen(start);
+        path.start = start;
+        path.length = (p != NULL) ? (size_t) (p - start) : nxt_strlen(start);
 
         ret = njs_vm_add_path(vm, &path);
         if (ret != NXT_OK) {
@@ -784,7 +784,7 @@ njs_completion_generator(const char *text, int state)
     if (state == 0) {
         cmpl->phase = 0;
         cmpl->index = 0;
-        cmpl->length = strlen(text);
+        cmpl->length = nxt_strlen(text);
         cmpl->suffix_completions = NULL;
 
         nxt_lvlhsh_each_init(&cmpl->lhe, &njs_variables_hash_proto);
index 8d528f3f08e599b3900e90feaf9e53768b8597fd..3859e0acd6f2aa1ea6a595b69f0470e76d392a9e 100644 (file)
@@ -41,6 +41,27 @@ nxt_upper_case(u_char c)
 }
 
 
+nxt_inline u_char *
+nxt_strlchr(u_char *p, u_char *last, u_char c)
+{
+    while (p < last) {
+
+        if (*p == c) {
+            return p;
+        }
+
+        p++;
+    }
+
+    return NULL;
+}
+
+
+#define                                                                       \
+nxt_strlen(s)                                                                 \
+    strlen((char *) s)
+
+
 #define                                                                       \
 nxt_cpymem(dst, src, n)                                                       \
     (((u_char *) memcpy(dst, src, n)) + (n))
@@ -51,6 +72,11 @@ nxt_strncmp(s1, s2, n)                                                        \
     strncmp((char *) s1, (char *) s2, n)
 
 
+#define                                                                       \
+nxt_strchr(s1, c)                                                             \
+    (u_char *) strchr((const char *) s1, (int) c)
+
+
 #define                                                                       \
 nxt_memset(buf, c, length)                                                    \
     (void) memset(buf, c, length)