/[mailutils]/mailutils/mail.local/main.c
ViewVC logotype

Diff of /mailutils/mail.local/main.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.15 by gray, Thu May 2 12:44:54 2002 UTC revision 1.16 by gray, Thu Jun 27 09:13:21 2002 UTC
# Line 240  main (int argc, char *argv[]) Line 240  main (int argc, char *argv[])
240    return exit_code;    return exit_code;
241  }  }
242    
 char *  
 make_progfile_name (char *pattern, char *username)  
 {  
   char *homedir = NULL;  
   char *p, *q, *startp;  
   char *progfile;  
   int len = 0;  
     
   for (p = pattern; *p; p++)  
     {  
       if (*p == '%')  
         switch (*++p)  
           {  
           case 'u':  
             len += strlen (username);  
             break;  
           case 'h':  
             if (!homedir)  
               {  
                 struct passwd *pwd = mu_getpwnam (username);  
                 if (!pwd)  
                   return NULL;  
                 homedir = pwd->pw_dir;  
               }  
             len += strlen (homedir);  
             break;  
           case '%':  
             len++;  
             break;  
           default:  
             len += 2;  
           }  
       else  
         len++;  
     }  
     
   progfile = malloc (len + 1);  
   if (!progfile)  
     return NULL;  
   
   startp = pattern;  
   q = progfile;  
   while (*startp && (p = strchr (startp, '%')) != NULL)  
     {  
       memcpy (q, startp, p - startp);  
       q += p - startp;  
       switch (*++p)  
         {  
         case 'u':  
           strcpy (q, username);  
           q += strlen (username);  
           break;  
         case 'h':  
           strcpy (q, homedir);  
           q += strlen (homedir);  
           break;  
         case '%':  
           *q++ = '%';  
           break;  
         default:  
           *q++ = '%';  
           *q++ = *p;  
         }  
       startp = p + 1;  
     }  
   if (*startp)  
     {  
       strcpy (q, startp);  
       q += strlen (startp);  
     }  
   *q = 0;  
   return progfile;  
 }  
   
243  int  int
244  mda (FILE *fp, char *username)  mda (FILE *fp, char *username)
245  {  {

Legend:
Removed from v.1.15  
changed lines
  Added in v.1.16

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26