int fv;
for (i=0; i<lines; i++) {
- k = i;
for ( j=i+1; j<lines; j++ ) {
if ( bvmatch( type+i, type+j )) {
/* out of order, move intervening attributes down */
- if ( j != k+1 ) {
- int l;
+ if ( j != i+1 ) {
bv = vals[j];
fv = freeval[j];
- for ( l=j; l>k; l-- ) {
- type[l] = type[l-1];
- vals[l] = vals[l-1];
- freeval[l] = freeval[l-1];
+ for ( k=j; k>i; k-- ) {
+ type[k] = type[k-1];
+ vals[k] = vals[k-1];
+ freeval[k] = freeval[k-1];
}
- type[l] = type[i];
- vals[l] = bv;
- freeval[l] = fv;
+ k++;
+ type[k] = type[i];
+ vals[k] = bv;
+ freeval[k] = fv;
}
- i = k = j;
+ i++;
}
}
}
return( e1->e_id < e2->e_id ? -1 : (e1->e_id > e2->e_id ? 1 : 0) );
}
-#define entry_lenlen(l) ((l) < 0x80) ? 1 : ((l) < 0x100) ? 2 : \
- ((l) < 0x10000) ? 3 : ((l) < 0x1000000) ? 4 : 5
-#if 0
/* This is like a ber_len */
-static ber_len_t
-entry_lenlen(ber_len_t len)
-{
- if (len <= 0x7f)
- return 1;
- if (len <= 0xff)
- return 2;
- if (len <= 0xffff)
- return 3;
- if (len <= 0xffffff)
- return 4;
- return 5;
-}
-#endif
+#define entry_lenlen(l) (((l) < 0x80) ? 1 : ((l) < 0x100) ? 2 : \
+ ((l) < 0x10000) ? 3 : ((l) < 0x1000000) ? 4 : 5)
static void
entry_putlen(unsigned char **buf, ber_len_t len)
len += entry_lenlen(0); /* 0 nvals */
}
}
- len += entry_lenlen(0); /* NUL byte at end */
len += entry_lenlen(nat);
len += entry_lenlen(nval);
*plen = len;