root/tools/include/linux/string.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. strstarts

   1 /* SPDX-License-Identifier: GPL-2.0 */
   2 #ifndef _TOOLS_LINUX_STRING_H_
   3 #define _TOOLS_LINUX_STRING_H_
   4 
   5 #include <linux/types.h>        /* for size_t */
   6 #include <string.h>
   7 
   8 void *memdup(const void *src, size_t len);
   9 
  10 char **argv_split(const char *str, int *argcp);
  11 void argv_free(char **argv);
  12 
  13 int strtobool(const char *s, bool *res);
  14 
  15 /*
  16  * glibc based builds needs the extern while uClibc doesn't.
  17  * However uClibc headers also define __GLIBC__ hence the hack below
  18  */
  19 #if defined(__GLIBC__) && !defined(__UCLIBC__)
  20 // pragma diagnostic was introduced in gcc 4.6
  21 #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)
  22 #pragma GCC diagnostic push
  23 #pragma GCC diagnostic ignored "-Wredundant-decls"
  24 #endif
  25 extern size_t strlcpy(char *dest, const char *src, size_t size);
  26 #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 6)
  27 #pragma GCC diagnostic pop
  28 #endif
  29 #endif
  30 
  31 char *str_error_r(int errnum, char *buf, size_t buflen);
  32 
  33 char *strreplace(char *s, char old, char new);
  34 
  35 /**
  36  * strstarts - does @str start with @prefix?
  37  * @str: string to examine
  38  * @prefix: prefix to look for.
  39  */
  40 static inline bool strstarts(const char *str, const char *prefix)
  41 {
  42         return strncmp(str, prefix, strlen(prefix)) == 0;
  43 }
  44 
  45 extern char * __must_check skip_spaces(const char *);
  46 
  47 extern char *strim(char *);
  48 
  49 #endif /* _TOOLS_LINUX_STRING_H_ */

/* [<][>][^][v][top][bottom][index][help] */