Update of /usr/cvsroot/asterisk/include/asterisk
In directory mongoose.digium.com:/tmp/cvs-serv5157/include/asterisk

Modified Files:
        utils.h 
Log Message:
Fix up utils nonsense


Index: utils.h
===================================================================
RCS file: /usr/cvsroot/asterisk/include/asterisk/utils.h,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -d -r1.35 -r1.36
--- utils.h     17 Jun 2005 13:25:01 -0000      1.35
+++ utils.h     18 Jun 2005 11:54:38 -0000      1.36
@@ -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 @@
   \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 @@
   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.

_______________________________________________
Asterisk-Cvs mailing list
[email protected]
http://lists.digium.com/mailman/listinfo/asterisk-cvs

Reply via email to