Listing 2

int comp(pl, p2) /* not ANSI obviously */
register struct stuff **p1, **p2;
{
       register int retval;
       if ((retval = strcmp ((*p1) ->str, (*p2) ->str)) ! = 0)
           return(retval);
       if ((retval = (*p1)->cnt - (*p2)->cnt) != 0)
              return (retval)
       return ((*p1) -> subcnt - (*p2) -> subcnt);
}