summaryrefslogtreecommitdiffstats
path: root/src/libs
diff options
context:
space:
mode:
authorosmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2007-04-25 13:53:28 +0000
committerosmiy <osmiy@97f52cf1-0a1b-0410-bd0e-c28be96e8082>2007-04-25 13:53:28 +0000
commit0fd9ec19ef06d938f37c23d698aa407aeb98bb4a (patch)
tree179be89c900621fa06b2d89d9f95d8cd434fa223 /src/libs
parentaaebc0f9617cccabded458c701631dc14ab3eea4 (diff)
downloadzabbix-0fd9ec19ef06d938f37c23d698aa407aeb98bb4a.tar.gz
zabbix-0fd9ec19ef06d938f37c23d698aa407aeb98bb4a.tar.xz
zabbix-0fd9ec19ef06d938f37c23d698aa407aeb98bb4a.zip
- minor changes
git-svn-id: svn://svn.zabbix.com/trunk@4062 97f52cf1-0a1b-0410-bd0e-c28be96e8082
Diffstat (limited to 'src/libs')
-rw-r--r--src/libs/zbxcommon/str.c47
1 files changed, 19 insertions, 28 deletions
diff --git a/src/libs/zbxcommon/str.c b/src/libs/zbxcommon/str.c
index 9273874c..fe2682e8 100644
--- a/src/libs/zbxcommon/str.c
+++ b/src/libs/zbxcommon/str.c
@@ -273,52 +273,45 @@ void zbx_snprintf_alloc(char **str, int *alloc_len, int *offset, int max_len, co
/* Has to be rewritten to avoi malloc */
-char *string_replace(char *str, const char *sub_str1, const char *sub_str2)
+char *string_replace(const char *str, const char *sub_str1, const char *sub_str2)
{
char *new_str;
- const char *p;
- const char *q;
- const char *r;
+ char *p;
+ char *q;
+ char *r;
char *t;
long len;
long diff;
unsigned long count = 0;
assert(str);
-
- if ( (p=strstr(str, sub_str1)) == NULL )
- return str;
- ++count;
+ assert(sub_str1);
+ assert(sub_str2);
len = (long)strlen(sub_str1);
/* count the number of occurances of sub_str1 */
- for ( p+=len; (p=strstr(p, sub_str1)) != NULL; p+=len )
- ++count;
+ for ( p+=len; p=strstr(p, sub_str1); p+=len, count++; );
+
+ if ( 0 == count ) return strdup(str);
diff = (long)strlen(sub_str2) - len;
/* allocate new memory */
- if ( (new_str=(char *)malloc((size_t)(strlen(str) + count*diff)*sizeof(char)))
- == NULL )
- return NULL;
+ new_str = zbx_malloc((size_t)(strlen(str) + count*diff)*sizeof(char));
- q = str;
- t = new_str;
- for (p=strstr(str, sub_str1); p!=NULL; p=strstr(p, sub_str1))
+ for (q=str,t=new_str,p=str; p=strstr(p, sub_str1); )
{
/* copy until next occurance of sub_str1 */
- for ( ; q < p; *t++ = *q++)
- ;
+ for ( ; q < p; *t++ = *q++);
q += len;
p = q;
- for ( r = sub_str2; (*t++ = *r++); )
- ;
+ for ( r = sub_str2; (*t++ = *r++); );
--t;
}
/* copy the tail of str */
- while ( (*t++ = *q++) )
- ;
+ while ( (*t++ = *q++) );
+
return new_str;
}
@@ -861,6 +854,7 @@ char* zbx_dsprintf(char *dest, const char *f, ...)
* Author: Eugene Grigorjev *
* *
* Comments: required free allocated string with function 'zbx_free' *
+ * zbx_strdcat(NULL,"") must return "", not NULL! *
* *
******************************************************************************/
char* zbx_strdcat(char *dest, const char *src)
@@ -868,13 +862,10 @@ char* zbx_strdcat(char *dest, const char *src)
register int new_len = 0;
char *new_dest = NULL;
- /* zbx_strdcat(NULL,"") must return "", not NULL! */
-/* if(!src || !src[0]) return dest;*/
- if(!src) return dest;
- if(!dest && !src[0]) return strdup(src);
+ if(!src) return dest;
+ if(!dest) return strdup(src);
- if(dest) new_len += (int)strlen(dest);
-
+ new_len += (int)strlen(dest);
new_len += (int)strlen(src);
new_dest = zbx_malloc(new_len + 1);