static int lar_module_init(void) { int index = 0; struct larent *larent; lar = openlar(NULL); if (lar == NULL) return 0; while ((larent = readlar(lar))) lcount++; lnames = malloc(lcount * sizeof(char *)); if (lnames == NULL) return 0; rewindlar(lar); while ((larent = readlar(lar))) lnames[index++] = strdup((const char *) larent->name); return 0; }
static int lar_walk_files(struct LAR *lar, int (*cb) (struct LAR *, struct larent *)) { struct larent *larent; int ret = 0; rewindlar(lar); while ((larent = readlar(lar)) != NULL) { if ((ret = cb(lar, larent))) break; } return ret; }