home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / pp / pp-6.0 / Lib / parse / x400_rfc822.c < prev    next >
Encoding:
C/C++ Source or Header  |  1991-12-18  |  1.4 KB  |  71 lines

  1. /* x400_rfc822.c: address conversion from x400 to 822 */
  2.  
  3. # ifndef lint
  4. static char Rcsid[] = "@(#)$Header: /xtel/pp/pp-beta/Lib/parse/RCS/x400_rfc822.c,v 6.0 1991/12/18 20:23:41 jpo Rel $";
  5. # endif
  6.  
  7. /*
  8.  * $Header: /xtel/pp/pp-beta/Lib/parse/RCS/x400_rfc822.c,v 6.0 1991/12/18 20:23:41 jpo Rel $
  9.  *
  10.  * $Log: x400_rfc822.c,v $
  11.  * Revision 6.0  1991/12/18  20:23:41  jpo
  12.  * Release 6.0
  13.  *
  14.  */
  15.  
  16. #include "head.h"
  17. #include "adr.h"
  18.  
  19. extern char or_error[];
  20.  
  21. int    x400_rfc822 (ad)
  22. register ADDR    *ad;
  23. {
  24.     char    tbuf[LINESIZE];
  25.  
  26.     PP_DBG(("x400_rfc822('%s')",    
  27.         ad->aparse->x400_str ? ad->aparse->x400_str : ad->ad_value));
  28.     
  29.     if (ad->aparse->orname->on_or == NULLOR) {
  30.         /* ??? shouldn't happen */
  31.         return RP_PARSE;
  32.     }
  33.  
  34.     aparse_rewindr822(ad->aparse);
  35.  
  36.     switch (or_or2rfc (ad->aparse->orname->on_or, tbuf)) {
  37.         case DONE:
  38.         /* ??? */
  39.         return RP_AOK;
  40.         case NOTOK:
  41.         PP_DBG(("x400_rfc822 Conversion failed (%s)", or_error));
  42.         return RP_PARSE;
  43.         default:
  44.         break;
  45.     }
  46.     /* do something with DNs */
  47.  
  48.     ad->aparse->r822_str = strdup(tbuf);
  49.     
  50.     if (rp_isbad(rfc822_parse (ad)))
  51.         return RP_PARSE;
  52.  
  53.     PP_DBG(("x400_rfc822 result ('%s')", tbuf));
  54.  
  55.     return (RP_AOK);
  56. }
  57.  
  58. void rfc822_add(ad)
  59. register ADDR    *ad;
  60. {
  61.     (void) x400_rfc822(ad);
  62.     
  63.     if (ad->aparse->r822_str) {
  64.         if (ad->ad_r822adr) 
  65.             free(ad->ad_r822adr);
  66.         ad->ad_r822adr = strdup(ad->aparse->r822_str);
  67.     }
  68.     PP_DBG (("rfc822_add returns (r822_str=%s)", ad->aparse->r822_str));
  69. }
  70.     
  71.