#undef access
#undef unlink
#define fork() 0
-#define sys_wait(var) (*(var) = 0)
+#define wait(var) (*(var) = 0)
/* Unfortunately, Samba doesn't seem to properly lock Unix files even
though the locking call succeeds (and indeed blocks local access from
other NT programs). If you have direct file access using an NFS
#endif
#ifdef MAIL_USE_POP
- int pop_flags = POP_NO_GETPASS | POP_NO_GSSAPI;
-# define ARGSTR "gkp"
+ int pop_reverse_order = 0;
+# define ARGSTR "pr"
#else /* ! MAIL_USE_POP */
# define ARGSTR "p"
#endif /* MAIL_USE_POP */
delete_lockname = 0;
- /*
- 'g' enables Kerberos and disables GSS-API.
- 'k' enables GSS-API and disables Kerberos.
-
- By default, Kerberos is enabled (if it is compiled in) and
- GSS-API is disabled, i.e., "-k" is the default. However, I'm
- putting the flag in anyway, in case we decide to add new
- authentication methods or change the default later.
- */
-
while ((c = getopt (argc, argv, ARGSTR)) != EOF)
{
switch (c) {
#ifdef MAIL_USE_POP
- case 'g':
- pop_flags |= POP_NO_KERBEROS;
- pop_flags &= ~POP_NO_GSSAPI;
- break;
- case 'k':
- pop_flags |= POP_NO_GSSAPI;
- pop_flags &= ~POP_NO_KERBEROS;
+ case 'r':
+ pop_reverse_order = 1;
break;
#endif
case 'p':
preserve_mail++;
break;
default:
- goto usage;
+ exit(1);
}
}
#endif
)
{
- usage:
- fprintf (stderr, "Usage: movemail %s[-p] inbox destfile%s\n",
+ fprintf (stderr, "Usage: movemail [-p] inbox destfile%s\n",
#ifdef MAIL_USE_POP
- "[-g|-k] ", " [POP-password]"
+ " [POP-password]"
#else
- "", ""
+ ""
#endif
);
exit (1);
int status;
status = popmail (inname + 3, outname, preserve_mail,
- (argc - optind == 3) ? argv[optind+2] : NULL, pop_flags);
+ (argc - optind == 3) ? argv[optind+2] : NULL,
+ pop_reverse_order);
exit (status);
}
char obuffer[BUFSIZ];
char Errmsg[80];
-popmail (user, outfile, preserve, password, flags)
+popmail (user, outfile, preserve, password, reverse_order)
char *user;
char *outfile;
int preserve;
char *password;
- int flags;
+ int reverse_order;
{
int nmsgs, nbytes;
register int i;
FILE *mbf;
char *getenv ();
popserver server;
+ int start, end, increment;
- server = pop_open (0, user, password, flags);
+ server = pop_open (0, user, password, POP_NO_GETPASS);
if (! server)
{
error (pop_error);
return (1);
}
- for (i = 1; i <= nmsgs; i++)
+ if (reverse_order)
+ {
+ start = nmsgs;
+ end = 1;
+ increment = -1;
+ }
+ else
+ {
+ start = 1;
+ end = nmsgs;
+ increment = 1;
+ }
+
+ for (i = start; i * increment <= end * increment; i += increment)
{
mbx_delimit_begin (mbf);
if (pop_retr (server, i, mbf) != OK)