You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by na...@apache.org on 2006/06/05 04:32:52 UTC
svn commit: r411640 - in /webservices/axis2/trunk/c/util:
include/axis2_string.h src/string.c
Author: nabeel
Date: Sun Jun 4 19:32:51 2006
New Revision: 411640
URL: http://svn.apache.org/viewvc?rev=411640&view=rev
Log:
Added trim functions and did some minor improvements as well
Modified:
webservices/axis2/trunk/c/util/include/axis2_string.h
webservices/axis2/trunk/c/util/src/string.c
Modified: webservices/axis2/trunk/c/util/include/axis2_string.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/util/include/axis2_string.h?rev=411640&r1=411639&r2=411640&view=diff
==============================================================================
--- webservices/axis2/trunk/c/util/include/axis2_string.h (original)
+++ webservices/axis2/trunk/c/util/include/axis2_string.h Sun Jun 4 19:32:51 2006
@@ -76,7 +76,17 @@
int s1,
int s2);
+ AXIS2_EXTERN axis2_char_t* AXIS2_CALL
+ axis2_strltrim(axis2_char_t *_s,
+ const axis2_char_t *_trim);
+ AXIS2_EXTERN axis2_char_t* AXIS2_CALL
+ axis2_strrtrim(axis2_char_t *_s,
+ const axis2_char_t *_trim);
+
+ AXIS2_EXTERN axis2_char_t* AXIS2_CALL
+ axis2_strtrim(axis2_char_t *_s,
+ const axis2_char_t *_trim);
#define AXIS2_STRDUP(pts, env) \
axis2_strdup(pts, env)
@@ -103,6 +113,15 @@
#define AXIS2_REPLACE(env, str, s1, s2) \
axis2_replace(env, str, s1, s2)
+
+#define AXIS2_STRLTRIM(s, trim) \
+ axis2_strltrim(s, trim)
+
+#define AXIS2_STRRTRIM(s, trim) \
+ axis2_strrtrim(s, trim)
+
+#define AXIS2_STRTRIM(s, trim) \
+ axis2_strtrim(s, trim)
/** @} */
Modified: webservices/axis2/trunk/c/util/src/string.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/util/src/string.c?rev=411640&r1=411639&r2=411640&view=diff
==============================================================================
--- webservices/axis2/trunk/c/util/src/string.c (original)
+++ webservices/axis2/trunk/c/util/src/string.c Sun Jun 4 19:32:51 2006
@@ -27,7 +27,7 @@
AXIS2_ENV_CHECK(env, NULL);
if (ptr)
{
- int len = strlen(ptr);
+ int len = axis2_strlen(ptr);
axis2_char_t * str = (axis2_char_t *) AXIS2_MALLOC( env->allocator,
sizeof(axis2_char_t) * (len + 1 ));
if (!str)
@@ -85,7 +85,10 @@
AXIS2_EXTERN axis2_ssize_t AXIS2_CALL
axis2_strlen (const axis2_char_t * s)
{
- return strlen(s);
+ if (s)
+ return strlen(s);
+ else
+ return -1;
}
@@ -93,7 +96,7 @@
axis2_strcasecmp(const axis2_char_t *s1, const axis2_char_t *s2)
{
while (toupper(*s1) == toupper(*s2++))
- if (*s1++ == '\0')
+ if (*s1++ == '\0')
return(0);
return(toupper(*s1) - toupper(*--s2));
}
@@ -122,15 +125,15 @@
AXIS2_EXTERN axis2_char_t * AXIS2_CALL
axis2_rindex(const axis2_char_t *_s, axis2_char_t _ch)
{
- int i,ilen = strlen(_s);
- if (ilen < 1)
- return NULL;
- for (i=ilen-1;i>=0;i--)
- {
- if (_s[i] == _ch)
- return (axis2_char_t *)(_s+i);
- }
- return NULL;
+ int i,ilen = axis2_strlen(_s);
+ if (ilen < 1)
+ return NULL;
+ for (i=ilen-1;i>=0;i--)
+ {
+ if (_s[i] == _ch)
+ return (axis2_char_t *)(_s+i);
+ }
+ return NULL;
}
AXIS2_EXTERN axis2_char_t* AXIS2_CALL
@@ -153,4 +156,45 @@
index = strchr(newstr, s1);
}
return newstr;
-}
+}
+
+AXIS2_EXTERN axis2_char_t* AXIS2_CALL axis2_strltrim(axis2_char_t *_s,
+ const axis2_char_t *_trim)
+{
+ if(!_s)
+ return NULL;
+ if(!_trim)
+ _trim = " \t\r\n";
+
+ while(*_s)
+ {
+ if(!strchr(_trim, *_s))
+ return _s;
+ ++_s;
+ }
+ return _s;
+}
+
+AXIS2_EXTERN axis2_char_t* AXIS2_CALL axis2_strrtrim(axis2_char_t *_s,
+ const axis2_char_t *_trim)
+{
+ axis2_char_t *__tail;
+ if(!_s)
+ return NULL;
+ __tail = _s + axis2_strlen(_s);
+ if(!_trim)
+ _trim = " \t\n\r";
+ while(_s < __tail--)
+ {
+ if(!strchr(_trim, *__tail))
+ return _s;
+ *__tail = 0;
+ }
+ return _s;
+}
+
+AXIS2_EXTERN axis2_char_t* AXIS2_CALL axis2_strtrim(axis2_char_t *_s,
+ const axis2_char_t *_trim)
+{
+ return axis2_strltrim(axis2_strrtrim(_s, _trim), _trim);
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org