move strtoq into new string files (bug #4740)
[asterisk/asterisk.git] / include / asterisk / strings.h
index 4fef869..b20a307 100755 (executable)
@@ -135,12 +135,8 @@ char *ast_strip_quoted(char *s, const char *beg_quotes, const char *end_quotes);
   reduced buffer size to this function (unlike \a strncpy), and the buffer does not need
   to be initialized to zeroes prior to calling this function.
 */
-void ast_copy_string(char *dst, const char *src, size_t size);
-#if !defined(LOW_MEMORY) && !defined(AST_API_MODULE)
-extern inline
-#endif
-#if !defined(LOW_MEMORY) || defined(AST_API_MODULE)
-void ast_copy_string(char *dst, const char *src, size_t size)
+AST_INLINE_API(
+void ast_copy_string(char *dst, const char *src, size_t size),
 {
        while (*src && size) {
                *dst++ = *src++;
@@ -150,7 +146,7 @@ void ast_copy_string(char *dst, const char *src, size_t size)
                dst--;
        *dst = '\0';
 }
-#endif
+)
 
 /*!
   \brief Build a string in a buffer, designed to be called repeatedly
@@ -201,10 +197,43 @@ struct ast_realloca {
                (ra)->ptr; \
        })
 
+#define HAVE_VASPRINTF
+#define HAVE_STRTOQ
+
 #ifdef __linux__
-#define ast_strcasestr strcasestr
-#else
-extern char *ast_strcasestr(const char *, const char *);
-#endif /* __linux__ */
+#define HAVE_STRCASESTR
+#define HAVE_STRNDUP
+#define HAVE_STRNLEN
+#endif
+
+#ifdef SOLARIS
+#undef HAVE_VASPRINTF
+#undef HAVE_STRTOQ
+#endif
+
+#ifdef __CYGWIN__
+#undef HAVE_STRTOQ
+typedef unsigned long long uint64_t;
+#endif
+
+#ifndef HAVE_STRCASESTR
+char *strcasestr(const char *, const char *);
+#endif
+
+#ifndef HAVE_STRNDUP
+char *strndup(const char *, size_t);
+#endif
+
+#ifndef HAVE_STRNLEN
+size_t strnlen(const char *, size_t);
+#endif
+
+#ifndef HAVE_VASPRINTF
+int vasprintf(char **strp, const char *fmt, va_list ap);
+#endif
+
+#ifndef HAVE_STRTOQ
+uint64_t strtoq(const char *nptr, char **endptr, int base);
+#endif
 
 #endif /* _ASTERISK_STRINGS_H */