- hi = key_heap_init_file(zh, nkeys, key_qsort_compare);
- hi->reg = zh->reg;
-
- for (i = 1; i<=nkeys; i++)
- if ((r = key_file_read (kf[i], rbuf)))
- key_heap_insert (hi, rbuf, r, kf[i]);
- } /* use file */
- else
- { /* do not use file, read straight from buffer */
- hi = key_heap_init_raw(zh, key_qsort_compare);
- hi->reg = zh->reg;
+ if (!nkeys)
+ return ;
+ }
+ kf = (struct key_file **) xmalloc((1+nkeys) * sizeof(*kf));
+ progressInfo.totalBytes = 0;
+ progressInfo.totalOffset = 0;
+ time(&progressInfo.startTime);
+ time(&progressInfo.lastTime);
+ for (i = 1; i<=nkeys; i++)
+ {
+ kf[i] = key_file_init(i, 8192, zh->res);
+ kf[i]->readHandler = progressFunc;
+ kf[i]->readInfo = &progressInfo;
+ progressInfo.totalBytes += kf[i]->length;
+ progressInfo.totalOffset += kf[i]->buf_size;