home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / pp / pp-6.0 / Uip / misc / strip_addr.c < prev    next >
Encoding:
C/C++ Source or Header  |  1991-12-18  |  1.3 KB  |  80 lines

  1. /* strip_addr.c: simpify addresses */
  2.  
  3. # ifndef lint
  4. static char Rcsid[] = "@(#)$Header: /xtel/pp/pp-beta/Uip/misc/RCS/strip_addr.c,v 6.0 1991/12/18 20:39:34 jpo Rel $";
  5. # endif
  6.  
  7. /*
  8.  * $Header: /xtel/pp/pp-beta/Uip/misc/RCS/strip_addr.c,v 6.0 1991/12/18 20:39:34 jpo Rel $
  9.  *
  10.  * $Log: strip_addr.c,v $
  11.  * Revision 6.0  1991/12/18  20:39:34  jpo
  12.  * Release 6.0
  13.  *
  14.  */
  15.  
  16.  
  17.  
  18. #include "util.h"
  19. #include "ap.h"
  20.  
  21. static int no_routes = 0;
  22.  
  23. main (argc, argv)
  24. int    argc;
  25. char    **argv;
  26. {
  27.     int    opt;
  28.     extern int optind;
  29.  
  30.     while ((opt = getopt (argc, argv, "rp")) != EOF)
  31.         switch (opt) {
  32.             case 'r':
  33.             no_routes ++;
  34.             break;
  35.             case 'p':
  36.             ap_use_percent ();
  37.             break;
  38.             default:
  39.             break;
  40.         }
  41.  
  42.     argc -= optind; argv += optind;
  43.  
  44.  
  45.     if (argc <= 0) {
  46.         char    buf[BUFSIZ];
  47.  
  48.         while (fgets (buf, sizeof buf, stdin) )
  49.             do_addr (buf);
  50.     }
  51.     else
  52.         while (argc-- > 0)
  53.             do_addr (*argv++);
  54.     exit (0);
  55. }
  56.  
  57.  
  58. do_addr (str)
  59. char    *str;
  60. {
  61.     char    *cp;
  62.     AP_ptr local, domain, route, tree;
  63.  
  64.     tree = ap_s2t (str);
  65.  
  66.     switch ((int)tree) {
  67.         case NOTOK:
  68.         case 0:
  69.         printf ("%s\n", str);
  70.         return;
  71.     }
  72.     (void) ap_t2p (tree, (AP_ptr *)0, (AP_ptr *)0,
  73.                &local, &domain, &route);
  74.     cp = ap_p2s_nc (NULLAP, NULLAP, local, domain,
  75.             no_routes ? NULLAP : route);
  76.     printf ("%s\n", cp);
  77.  
  78.     free (cp);
  79. }
  80.