X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;ds=inline;f=include%2Flber_pvt.h;h=ad3d7a4712419d18aa4eb6cb78f4083cb860dc62;hb=a255e44bf0fcb703a3a5ac58117fd54a00727fd1;hp=0afea13fa17c03363a07dcc2260b67fe4158e973;hpb=60b05c643db29f1e2fa8156af43389a7f95756bd;p=openldap diff --git a/include/lber_pvt.h b/include/lber_pvt.h index 0afea13fa1..ad3d7a4712 100644 --- a/include/lber_pvt.h +++ b/include/lber_pvt.h @@ -1,7 +1,7 @@ /* $OpenLDAP$ */ /* This work is part of OpenLDAP Software . * - * Copyright 1998-2004 The OpenLDAP Foundation. + * Copyright 1998-2012 The OpenLDAP Foundation. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -135,12 +135,19 @@ LBER_F( char * ) ber_strdup_x LDAP_P(( LDAP_CONST char *, void *ctx )); +LBER_F( struct berval * ) +ber_bvreplace_x LDAP_P(( + struct berval *dst, LDAP_CONST struct berval *src, void *ctx )); + LBER_F( void ) ber_bvarray_free_x LDAP_P(( BerVarray p, void *ctx )); LBER_F( int ) ber_bvarray_add_x LDAP_P(( BerVarray *p, BerValue *bv, void *ctx )); +LBER_F( int ) +ber_bvarray_dup_x LDAP_P(( BerVarray *dst, BerVarray src, void *ctx )); + #if 0 #define ber_bvstrcmp(v1,v2) \ ((v1)->bv_len < (v2)->bv_len \ @@ -163,9 +170,38 @@ ber_bvarray_add_x LDAP_P(( BerVarray *p, BerValue *bv, void *ctx )); ( (s)[0] == (c) && (s)[1] == '\0' ) #define ber_bvchr(bv,c) \ - memchr( (bv)->bv_val, (c), (bv)->bv_len ) + ((char *) memchr( (bv)->bv_val, (c), (bv)->bv_len )) + +#define ber_bvrchr(bv,c) \ + ((char *) lutil_memrchr( (bv)->bv_val, (c), (bv)->bv_len )) + +#define ber_bvchr_post(dst,bv,c) \ + do { \ + (dst)->bv_val = memchr( (bv)->bv_val, (c), (bv)->bv_len ); \ + (dst)->bv_len = (dst)->bv_val ? (bv)->bv_len - ((dst)->bv_val - (bv)->bv_val) : 0; \ + } while (0) + +#define ber_bvchr_pre(dst,bv,c) \ + do { \ + (dst)->bv_val = memchr( (bv)->bv_val, (c), (bv)->bv_len ); \ + (dst)->bv_len = (dst)->bv_val ? ((dst)->bv_val - (bv)->bv_val) : (bv)->bv_len; \ + (dst)->bv_val = (bv)->bv_val; \ + } while (0) + +#define ber_bvrchr_post(dst,bv,c) \ + do { \ + (dst)->bv_val = lutil_memrchr( (bv)->bv_val, (c), (bv)->bv_len ); \ + (dst)->bv_len = (dst)->bv_val ? (bv)->bv_len - ((dst)->bv_val - (bv)->bv_val) : 0; \ + } while (0) + +#define ber_bvrchr_pre(dst,bv,c) \ + do { \ + (dst)->bv_val = lutil_memrchr( (bv)->bv_val, (c), (bv)->bv_len ); \ + (dst)->bv_len = (dst)->bv_val ? ((dst)->bv_val - (bv)->bv_val) : (bv)->bv_len; \ + (dst)->bv_val = (bv)->bv_val; \ + } while (0) -#define BER_BVC(s) { STRLENOF(s), (s) } +#define BER_BVC(s) { STRLENOF(s), (char *)(s) } #define BER_BVNULL { 0L, NULL } #define BER_BVZERO(bv) \ do { \