Handle entries without name
authorceriel <none@none>
Tue, 27 Aug 1991 09:55:25 +0000 (09:55 +0000)
committerceriel <none@none>
Tue, 27 Aug 1991 09:55:25 +0000 (09:55 +0000)
util/amisc/anm.c

index 6f78bc6..c62b0c6 100644 (file)
@@ -159,9 +159,6 @@ char **argv;
                                break;
                        }
 
-                       if (nbuf.on_foff == 0)
-                               continue; /* skip entries without names */
-
                        if (globl_flg && (nbuf.on_type&S_EXT)==0)
                                continue;
 
@@ -170,7 +167,8 @@ char **argv;
                            ((nbuf.on_type&S_TYP)!=S_UND || (nbuf.on_type&S_ETC)!=0))
                                continue;
 
-                       nbuf.on_mptr = (char *) (nbuf.on_foff + fi_to_co);
+                       if (nbuf.on_foff == 0) nbuf.on_mptr = 0;
+                       else nbuf.on_mptr = (char *) (nbuf.on_foff + fi_to_co);
 
                        /* adjust value for specially encoded bases */
                        if (hbuf.oh_flags & HF_8086) {
@@ -245,7 +243,7 @@ char **argv;
                                sprintf(cs2, " ?");
                        }
 
-                       printf("%8lx %s %s %s\n",nbufp[n].on_valu,cs1,cs2,nbufp[n].on_mptr);
+                       printf("%8lx %s %s %s\n",nbufp[n].on_valu,cs1,cs2,nbufp[n].on_mptr ? nbufp[n].on_mptr : "(NULL)");
                }
 
                if (nbufp)
@@ -276,6 +274,12 @@ struct outname     *p1, *p2;
                        return(-revsort_flg);
        }
 
+       if (! p1->on_mptr) {
+               if (! p2->on_mptr) return 0;
+               return -revsort_flg;
+       }
+       if (! p2->on_mptr) return revsort_flg;
+
        i = strcmp(p1->on_mptr, p2->on_mptr);
 
        if (i > 0)