* movemail.c: Define macros only in needed contexts.
authorPaul Eggert <eggert@cs.ucla.edu>
Tue, 22 Feb 2011 00:11:56 +0000 (16:11 -0800)
committerPaul Eggert <eggert@cs.ucla.edu>
Tue, 22 Feb 2011 00:11:56 +0000 (16:11 -0800)
lib-src/ChangeLog
lib-src/movemail.c

index 1d0f242..7aa13a4 100644 (file)
@@ -14,8 +14,9 @@
 
        * movemail.c (main, pop_retr): Rename locals to avoid shadowing.
        (progname, sfi, sfo, ibuffer, obuffer): Remove unused vars.
-       (DIRECTORY_SEP, IS_DIRECTORY_SEP, DONE, IS_FROM_LINE):
-       Remove unused macros.
+       (DONE): Remove unused macro.
+       (DIRECTORY_SEP, IS_DIRECTORY_SEP, IS_FROM_LINE):
+       Define these macros only in the contexts that need them.
        * pop.c (index): Remove unused macro.
        (KPOP_PORT): Define only if KERBEROS is defined.
 
index bc7fa88..4a894c1 100644 (file)
@@ -262,6 +262,13 @@ main (int argc, char **argv)
   if (! spool_name)
 #endif
     {
+      #ifndef DIRECTORY_SEP
+       #define DIRECTORY_SEP '/'
+      #endif
+      #ifndef IS_DIRECTORY_SEP
+       #define IS_DIRECTORY_SEP(_c_) ((_c_) == DIRECTORY_SEP)
+      #endif
+
       /* Use a lock file named after our first argument with .lock appended:
         If it exists, the mail file is locked.  */
       /* Note: this locking mechanism is *required* by the mailer
@@ -862,6 +869,12 @@ static int
 mbx_write (char *line, int len, FILE *mbf)
 {
 #ifdef MOVEMAIL_QUOTE_POP_FROM_LINES
+  /* Do this as a macro instead of using strcmp to save on execution time. */
+  # define IS_FROM_LINE(a) ((a[0] == 'F')      \
+                           && (a[1] == 'r')    \
+                           && (a[2] == 'o')    \
+                           && (a[3] == 'm')    \
+                           && (a[4] == ' '))
   if (IS_FROM_LINE (line))
     {
       if (fputc ('>', mbf) == EOF)