1 /* Extracted from the sdm module in perl. */
6 extern long sdbm_hash (char *, int) ;
7 extern void sdbm__putpair (char *, datum
, datum
) ;
9 sdbm__splpage (char *pag
, char *New
, long int sbit
)
14 register int off
= 1024 ;
16 register short *ino
= (short *) cur
;
17 (void) memcpy(cur
, pag
, 1024 );
18 (void) ({ void *__s
= ( pag
); __builtin_memset ( __s
, '\0', 1024 ) ; __s
; });
19 (void) ({ void *__s
= ( New
); __builtin_memset ( __s
, '\0', 1024 ) ; __s
; });
21 for (ino
++; n
> 0; ino
+= 2) {
22 key
.dptr
= cur
+ ino
[0];
23 key
.dsize
= off
- ino
[0];
24 val
.dptr
= cur
+ ino
[1];
25 val
.dsize
= ino
[0] - ino
[1];
26 (void) sdbm__putpair ((sdbm_hash(( key
).dptr
, ( key
).dsize
) & sbit
) ? New
: pag
, key
, val
);