home *** CD-ROM | disk | FTP | other *** search
- void
- AddAddr(address)
- unsigned char *address;
- {
- extern unsigned char *Addr[];
- extern short int AddrCnt;
- int i;
-
- /* If it's the first address we just add it. */
- if (AddrCnt == 0)
- Addr[AddrCnt++] = address;
- else
- {
- /* If there are already 100 addresses we can't process any more so
- we'll just return. */
- if (AddrCnt == 100)
- return;
-
- /* We'll compare the new address against each one in the list until we
- find the appropriate place to insert it. */
- for (i = 0; i < AddrCnt; i++)
- {
- /* If the new address is smaller than the current address in the
- array we'll insert the new one at this position. */
- if (address < Addr[i])
- {
- /* We need a temporary loop counter so we can move all the array
- entries from the current one to the end down one position to
- make room for the new address. */
- int j;
-
- for (j = AddrCnt; j > i; j--)
- Addr[j] = Addr[j-1];
- Addr[i] = address;
- AddrCnt++;
- break;
- }
-
- /* If the address is already in the list we'll skip it. */
- if (address == Addr[i])
- break;
- }
-
- /* If the new address is higher than the last one on the list we'll
- add it to the end of the array. */
- if (address > Addr[AddrCnt-1])
- Addr[AddrCnt++] = address;
-
- return;
- }
- }
-
-