Fix up utils nonsense

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@5932 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.2-netsec
Mark Spencer 20 years ago
parent 2f7e984a31
commit 222b5695e0

@ -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.

@ -37,6 +37,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
static char base64[64];
static char b2a[256];
#ifdef LOW_MEMORY
char *ast_skip_blanks(char *str)
{
while (*str && *str < 33)
@ -48,13 +49,18 @@ char *ast_trim_blanks(char *str)
{
char *work = str;
if (work && !ast_strlen_zero(work)) {
if (work) {
work += strlen(work) - 1;
while ((work >= str) && *work && *work < 33)
work--;
*(++work) = '\0'; /* terminate string */
/* 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 work;
return str;
}
char *ast_skip_nonblanks(char *str)
@ -71,6 +77,7 @@ char *ast_strip(char *s)
ast_trim_blanks(s);
return s;
}
#endif
char *ast_strip_quoted(char *s, const char *beg_quotes, const char *end_quotes)
{

Loading…
Cancel
Save