- for(np = labels[i]; np != NULL; np = np->next) {
- if(np->prog == NULL) {
- fprintf(stdout, "%s ---> #%04X\n", np->label, np->adr);
- } else {
- fprintf(stdout, "%s.%s ---> #%04X\n", np->prog, np->label, np->adr);
- }
+ for(p = labels[i]; p != NULL; p = p->next) {
+ assert(p->label != NULL);
+ l[s] = malloc_chk(sizeof(LABELARRAY), "lables");
+ l[s]->prog = strdup_chk(p->prog, "labels.prog");
+ l[s]->label = strdup_chk(p->label, "labels.label");
+ l[s++]->adr = p->adr;
+ }
+ }
+ qsort(l, s, sizeof(*l), compare_adr);
+ for(i = 0; i < s; i++) {
+ if(*(l[i]->prog) != '\0') {
+ fprintf(stdout, "%s.", l[i]->prog);