]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/charray.c
compare attribute type, not value
[openldap] / servers / slapd / charray.c
index c8790791be00470ea8ecca4f218f5d38941d37ce..768c167fd53c43c72da28424f3f29fbb298cafb0 100644 (file)
@@ -1,7 +1,7 @@
 /* charray.c - routines for dealing with char * arrays */
 /* $OpenLDAP$ */
 /*
- * Copyright 1998-2000 The OpenLDAP Foundation, All Rights Reserved.
+ * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved.
  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
  */
 
@@ -179,7 +179,6 @@ str2charray( const char *str_in, const char *brkstr )
        return( res );
 }
 
-
 int
 charray_strcmp( const char **a1, const char **a2 )
 {
@@ -213,3 +212,37 @@ charray_strcasecmp( const char **a1, const char **a2 )
        return 0;
 }
 
+/* strcopy is like strcpy except it returns a pointer to the trailing NUL of
+ * the result string. This allows fast construction of catenated strings
+ * without the overhead of strlen/strcat.
+ */
+char *
+slap_strcopy(
+       char *a,
+       const char *b
+)
+{
+       if (!a || !b)
+               return a;
+       
+       while (*a++ = *b++) ;
+       return a-1;
+}
+
+/* strncopy is like strcpy except it returns a pointer to the trailing NUL of
+ * the result string. This allows fast construction of catenated strings
+ * without the overhead of strlen/strcat.
+ */
+char *
+slap_strncopy(
+       char *a,
+       const char *b,
+       size_t n
+)
+{
+       if (!a || !b || n == 0)
+               return a;
+       
+       while ((*a++ = *b++) && n-- > 0) ;
+       return a-1;
+}