}
/* no - add them */
- if ( mod->sm_desc->ad_type->sat_flags & SLAP_AT_ORDERED ) {
+ if ( mod->sm_desc->ad_type->sat_flags & SLAP_AT_ORDERED_VAL ) {
rc = ordered_value_add( e, mod->sm_desc, a,
pmod.sm_values, pmod.sm_nvalues );
} else {
int
modify_delete_values(
+ Entry *e,
+ Modification *m,
+ int perm,
+ const char **text,
+ char *textbuf, size_t textlen )
+{
+ return modify_delete_vindex( e, m, perm, text, textbuf, textlen, NULL );
+}
+
+int
+modify_delete_vindex(
Entry *e,
Modification *mod,
int permissive,
const char **text,
- char *textbuf, size_t textlen )
+ char *textbuf, size_t textlen,
+ int *idx )
{
int i, j, k, rc = LDAP_SUCCESS;
Attribute *a;
found = 1;
+ if ( idx )
+ idx[i] = j;
+
/* delete value and mark it as dummy */
free( a->a_vals[j].bv_val );
a->a_vals[j].bv_val = &dummy;
mod->sm_desc->ad_cname.bv_val );
rc = LDAP_NO_SUCH_ATTRIBUTE;
}
- } else if ( a->a_desc->ad_type->sat_flags & SLAP_AT_ORDERED ) {
+ } else if ( a->a_desc->ad_type->sat_flags & SLAP_AT_ORDERED_VAL ) {
/* For an ordered attribute, renumber the value indices */
ordered_value_sort( a, 1 );
}