\param str the input string
\return a pointer to the first non-whitespace character
*/
-#ifdef LOW_MEMORY
+#if defined(LOW_MEMORY)
char *ast_skip_blanks(char *str);
#else
-static inline char *ast_skip_blanks(char *str)
+static inline
+#endif
+#if !defined(LOW_MEMORY) || defined(AST_API_MODULE)
+char *ast_skip_blanks(char *str)
{
while (*str && *str < 33)
str++;
\param str the input string
\return a pointer to the NULL following the string
*/
-#ifdef LOW_MEMORY
+#if defined(LOW_MEMORY)
char *ast_trim_blanks(char *str);
#else
-static inline char *ast_trim_blanks(char *str)
+static inline
+#endif
+#if !defined(LOW_MEMORY) || defined(AST_API_MODULE)
+char *ast_trim_blanks(char *str)
{
char *work = str;
\param str the input string
\return a pointer to the first whitespace character
*/
-#ifdef LOW_MEMORY
+#if defined(LOW_MEMORY)
char *ast_skip_nonblanks(char *str);
#else
-static inline char *ast_skip_nonblanks(char *str)
+static inline
+#endif
+#if !defined(LOW_MEMORY) || defined(AST_API_MODULE)
+char *ast_skip_nonblanks(char *str)
{
while (*str && *str > 32)
str++;
characters from the input string, and returns a pointer to
the resulting string. The string is modified in place.
*/
-#ifdef LOW_MEMORY
+#if defined(LOW_MEMORY)
char *ast_strip(char *s);
#else
-static inline char *ast_strip(char *s)
+static inline
+#endif
+#if !defined(LOW_MEMORY) || defined(AST_API_MODULE)
+char *ast_strip(char *s)
{
s = ast_skip_blanks(s);
if (s)
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.
*/
+#if defined(LOW_MEMORY)
void ast_copy_string(char *dst, const char *src, size_t size);
+#else
+static inline
+#endif
+#if !defined(LOW_MEMORY) || defined(AST_API_MODULE)
+void ast_copy_string(char *dst, const char *src, size_t size)
+{
+ while (*src && size) {
+ *dst++ = *src++;
+ size--;
+ }
+ if (__builtin_expect(!size, 0))
+ dst--;
+ *dst = '\0';
+}
+#endif
/*!
\brief Build a string in a buffer, designed to be called repeatedly
* \param end the end of the time period
* \return the difference in milliseconds
*/
-static inline int ast_tvdiff_ms(struct timeval *start, struct timeval *end)
+#if defined(LOW_MEMORY)
+int ast_tvdiff_ms(const struct timeval *start, const struct timeval *end);
+#else
+static inline
+#endif
+#if !defined(LOW_MEMORY) || defined(AST_API_MODULE)
+int ast_tvdiff_ms(const struct timeval *start, const struct timeval *end)
{
return ((end->tv_sec - start->tv_sec) * 1000) + ((end->tv_usec - start->tv_usec) / 1000);
}
+#endif
+#undef AST_API_MODULE
#endif /* _ASTERISK_UTILS_H */
ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
#include "asterisk/lock.h"
-#include "asterisk/utils.h"
#include "asterisk/io.h"
#include "asterisk/logger.h"
#include "asterisk/md5.h"
+#define AST_API_MODULE /* ensure that inlinable API functions will be built in this module if required */
+#include "asterisk/utils.h"
+
static char base64[64];
static char b2a[256];
-#ifdef LOW_MEMORY
-char *ast_skip_blanks(char *str)
-{
- while (*str && *str < 33)
- str++;
- return str;
-}
-
-char *ast_trim_blanks(char *str)
-{
- char *work = str;
-
- if (work) {
- work += strlen(work) - 1;
- /* It's tempting to only want to erase after we exit this loop,
- but since ast_trim_blanks *could* receive a constant string
- (which we presumably wouldn't have to touch), we shouldn't
- actually set anything unless we must, and it's easier just
- to set each position to \0 than to keep track of a variable
- for it */
- while ((work >= str) && *work < 33)
- *(work--) = '\0';
- }
- return str;
-}
-
-char *ast_skip_nonblanks(char *str)
-{
- while (*str && *str > 32)
- str++;
- return str;
-}
-
-char *ast_strip(char *s)
-{
- s = ast_skip_blanks(s);
- if (s)
- ast_trim_blanks(s);
- return s;
-}
-#endif
-
char *ast_strip_quoted(char *s, const char *beg_quotes, const char *end_quotes)
{
char *e;
return poll(pfd, 1, ms);
}
-void ast_copy_string(char *dst, const char *src, size_t size)
-{
- while (*src && size) {
- *dst++ = *src++;
- size--;
- }
- if (__builtin_expect(!size, 0))
- dst--;
- *dst = '\0';
-}
-
int ast_build_string(char **buffer, size_t *space, const char *fmt, ...)
{
va_list ap;