--- mailutils-2.2-orig/movemail/movemail.c 2010-05-20 18:38:19.000000000 +0530 +++ mailutils-2.2/movemail/movemail.c 2010-09-18 15:45:18.000000000 +0530 @@ -33,6 +33,8 @@ #include "mailutils/libargp.h" #include +#define min(a,b) ((a) < (b) ? (a) : (b)) + const char *program_version = "movemail (" PACKAGE_STRING ")"; static char doc[] = N_("GNU movemail -- move messages across mailboxes."); static char args_doc[] = N_("inbox-url destfile [POP-password]"); @@ -51,6 +53,8 @@ N_("output information used by Emacs rmail interface") }, { "uidl", 'u', NULL, 0, N_("use UIDLs to avoid downloading the same message twice") }, + { "count", 'c', N_("COUNT"), 0, + N_("download only COUNT number of mails") }, { "verbose", 'v', NULL, 0, N_("increase verbosity level") }, { "owner", 'P', N_("MODELIST"), 0, @@ -69,6 +73,7 @@ static int verbose_option; static int ignore_errors; static char *program_id_option; +static unsigned count_mails = UINT_MAX; enum set_ownership_mode { @@ -141,6 +146,10 @@ mu_argp_node_list_new (lst, "uidl", "yes"); break; + case 'c': + mu_argp_node_list_new (lst, "count", arg); + break; + case 'v': verbose_option++; break; @@ -314,6 +323,8 @@ N_("Output information used by Emacs rmail interface.") }, { "uidl", mu_cfg_bool, &uidl_option, 0, NULL, N_("Use UIDLs to avoid downloading the same message twice.") }, + { "count", mu_cfg_int, &count_mails, 0, NULL, + N_("download only COUNT number of mails") }, { "verbose", mu_cfg_int, &verbose_option, 0, NULL, N_("Set verbosity level.") }, { "ignore-errors", mu_cfg_bool, &ignore_errors, 0, NULL, @@ -854,7 +865,7 @@ } else if (reverse_order) { - for (i = total; i > 0; i--) + for (i = min (total, count_mails); i > 0; i--) { rc = move_message (source, dest, i); if (rc == 0) @@ -867,7 +878,7 @@ } else { - for (i = 1; i <= total; i++) + for (i = 1; i <= min (total, count_mails); i++) { rc = move_message (source, dest, i); if (rc == 0)