- if ( strcasecmp( val.bv_val, T_MODIFYCTSTR ) == 0 ) {
- new_entry = 0;
- expect_modop = 1;
- } else if ( strcasecmp( val.bv_val, T_ADDCTSTR ) == 0 ) {
- new_entry = 1;
- } else if ( strcasecmp( val.bv_val, T_MODRDNCTSTR ) == 0
- || strcasecmp( val.bv_val, T_MODDNCTSTR ) == 0
- || strcasecmp( val.bv_val, T_RENAMECTSTR ) == 0)
- {
- expect_newrdn = 1;
- } else if ( strcasecmp( val.bv_val, T_DELETECTSTR ) == 0 ) {
- got_all = delete_entry = 1;
- } else {
- fprintf( stderr,
- _("%s: unknown %s \"%s\" (line %d of entry \"%s\")\n"),
- prog, T_CHANGETYPESTR, val.bv_val, linenum, dn );
+ if ( BV_CASEMATCH( vals+i, &BV_MODIFYCT )) {
+ new_entry = 0;
+ expect_modop = 1;
+ } else if ( BV_CASEMATCH( vals+i, &BV_ADDCT )) {
+ new_entry = 1;
+ modop = LDAP_MOD_ADD;
+ } else if ( BV_CASEMATCH( vals+i, &BV_MODRDNCT )
+ || BV_CASEMATCH( vals+i, &BV_MODDNCT )
+ || BV_CASEMATCH( vals+i, &BV_RENAMECT ))
+ {
+ i++;
+ if ( i >= lines )
+ goto short_input;
+ if ( !BV_CASEMATCH( btype+i, &BV_NEWRDN )) {
+ fprintf( stderr, _("%s: expecting \"%s:\" but saw"
+ " \"%s:\" (line %d, entry \"%s\")\n"),
+ prog, BV_NEWRDN.bv_val, btype[i].bv_val, linenum+i, dn );
+ rc = LDAP_PARAM_ERROR;
+ goto leave;
+ }
+ newrdn = vals[i].bv_val;
+ i++;
+ if ( i >= lines )
+ goto short_input;
+ if ( !BV_CASEMATCH( btype+i, &BV_DELETEOLDRDN )) {
+ fprintf( stderr, _("%s: expecting \"%s:\" but saw"
+ " \"%s:\" (line %d, entry \"%s\")\n"),
+ prog, BV_DELETEOLDRDN.bv_val, btype[i].bv_val, linenum+i, dn );
+ rc = LDAP_PARAM_ERROR;
+ goto leave;
+ }
+ deleteoldrdn = ( vals[i].bv_val[0] == '0' ) ? 0 : 1;
+ i++;
+ if ( i < lines ) {
+ if ( !BV_CASEMATCH( btype+i, &BV_NEWSUP )) {
+ fprintf( stderr, _("%s: expecting \"%s:\" but saw"
+ " \"%s:\" (line %d, entry \"%s\")\n"),
+ prog, BV_NEWSUP.bv_val, btype[i].bv_val, linenum+i, dn );