home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / mmdf / mmdf-IIb.43 / lib / addr / ap_dmflip.c < prev    next >
Encoding:
C/C++ Source or Header  |  1986-06-04  |  944 b   |  47 lines

  1. #include "util.h"
  2. #include "conf.h"
  3. #include "ch.h"
  4. #include "dm.h"
  5. #include "ll_log.h"
  6.  
  7. extern char *strdup();
  8. extern char *malloc();
  9. extern struct ll_struct *logptr;
  10.  
  11. char *
  12. ap_dmflip (buf)
  13. char * buf;
  14. {
  15.     char tbuf [LINESIZE];
  16.     char *cp;
  17.     int argc;
  18.     char *argv [DM_NFIELD];
  19.     int  i;
  20.  
  21. #ifdef DEBUG
  22.     ll_log (logptr, LLOGBTR, "Flipping domain '%s'", buf);
  23. #endif
  24.     if ((buf[0] == '"') || (buf[0] == '['))
  25.             /*, don't flip if quoted  or dlit */
  26.     return (strdup (buf));
  27.  
  28.     (void) strcpy (tbuf, buf);
  29.     argc = cstr2arg (tbuf, DM_NFIELD, argv, '.');
  30.  
  31.     cp = malloc (strlen (buf) + 1);
  32.     if (cp == (char *) 0) {
  33.     ll_log (logptr, LLOGTMP, "dm_flip - malloc failure");
  34.     return ((char *) 0);
  35.     }
  36.     (void) strcpy (cp, argv [argc - 1]);
  37.     for (i = argc - 2; i >= 0; i--) {
  38.     strcat (cp, ".");
  39.     strcat (cp, argv [i]);
  40.     }
  41.  
  42. #ifdef DEBUG
  43.    ll_log (logptr, LLOGFTR, "Flipped domain is '%s'", cp);
  44. #endif
  45.    return (cp);
  46. }
  47.