aboutsummaryrefslogtreecommitdiffstats
path: root/include/asterisk/utils.h
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2005-06-18 11:54:38 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2005-06-18 11:54:38 +0000
commitcca6da1a515dd27cf9a5d9d2fb9a12b2497bfdf0 (patch)
tree375099cb3f6b775cd1e98fc1f5e15e5462e68362 /include/asterisk/utils.h
parentae5c71dd3aa148aa48859d7c31ad91bcc02d4d69 (diff)
Fix up utils nonsense
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@5932 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'include/asterisk/utils.h')
-rwxr-xr-xinclude/asterisk/utils.h49
1 files changed, 49 insertions, 0 deletions
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 <arpa/inet.h> /* we want to override inet_ntoa */
#include <netdb.h>
#include <limits.h>
+#include <string.h>
#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.