From 222b5695e01f507a1a79f71cd9c9951de1a728e8 Mon Sep 17 00:00:00 2001 From: Mark Spencer Date: Sat, 18 Jun 2005 11:54:38 +0000 Subject: Fix up utils nonsense git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@5932 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- include/asterisk/utils.h | 49 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) (limited to 'include/asterisk/utils.h') diff --git a/include/asterisk/utils.h b/include/asterisk/utils.h index 06805e82d..13ced53d2 100755 --- a/include/asterisk/utils.h +++ b/include/asterisk/utils.h @@ -20,6 +20,7 @@ #include /* we want to override inet_ntoa */ #include #include +#include #include "asterisk/lock.h" @@ -135,21 +136,59 @@ struct ast_hostent { \param str the input string \return a pointer to the first non-whitespace character */ +#ifdef LOW_MEMORY char *ast_skip_blanks(char *str); +#else +static inline char *ast_skip_blanks(char *str) +{ + while (*str && *str < 33) + str++; + return str; +} +#endif /*! \brief Trims trailing whitespace characters from a string. \param str the input string \return a pointer to the NULL following the string */ +#ifdef LOW_MEMORY char *ast_trim_blanks(char *str); +#else +static inline 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; +} +#endif /*! \brief Gets a pointer to first whitespace character in a string. \param str the input string \return a pointer to the first whitespace character */ +#ifdef LOW_MEMORY char *ast_skip_nonblanks(char *str); +#else +static inline char *ast_skip_nonblanks(char *str) +{ + while (*str && *str > 32) + str++; + return str; +} +#endif /*! \brief Strip leading/trailing whitespace from a string. @@ -160,7 +199,17 @@ char *ast_skip_nonblanks(char *str); characters from the input string, and returns a pointer to the resulting string. The string is modified in place. */ +#ifdef LOW_MEMORY char *ast_strip(char *s); +#else +static inline char *ast_strip(char *s) +{ + s = ast_skip_blanks(s); + if (s) + ast_trim_blanks(s); + return s; +} +#endif /*! \brief Strip leading/trailing whitespace and quotes from a string. -- cgit v1.2.3