On 04.07.2016 19:18, Golub Mikhail wrote:
> Доброго времени суток.
> 
> Подскажите, плиз, как лучше реализовать следующее: удаление писем из 
> ящика по расписанию.
> 
> Пользовался раньше этим ftp://ftp.visti.net/pub/tools/mpurge.tgz
> Легко и удобно - закинул в планировщик задание типа "удалить письма из 
> такого-то ящика старше 30 дней" и все довольны.
> На новых ОС софт не компилируется. Я не программист, тем более на С, 
> поэтому в код не вникал.

Собирается на десятке с минимальным патчем:

--- Makefile.orig       2016-07-04 19:29:12.823677000 +0700
+++ Makefile    2016-07-04 19:28:46.863577000 +0700
@@ -1,4 +1,4 @@
 PROG = mpurge
-NOMAN =
+NO_MAN =
 
 .include <bsd.prog.mk>
--- mpurge.c.orig       2016-07-04 19:26:04.873833000 +0700
+++ mpurge.c    2016-07-04 19:28:24.975932000 +0700
@@ -34,6 +34,7 @@ static char rcsid[] = "$Id: mpurge.c,v 1
 #include <sysexits.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <string.h>
 #include <strings.h>
 #include <sys/stat.h>
 #include <errno.h>
@@ -88,9 +89,9 @@ char *mbox;
 
   debug(func, "processing mbox \"%s\"\n", mbox);
   if ((stat(mbox, &st) < 0) || !st.st_size) return 0;
-  if (st.st_mode & S_IFMT != S_IFREG) {
+  if ((st.st_mode & S_IFMT) != S_IFREG) {
     debug(func, "\"%s\" is not a regular file -- skipping\n", mbox);
-    return;
+    return EINVAL;
   }
 
   fd = open(mbox, (d_flag ? O_RDONLY : O_RDWR)|O_EXLOCK|O_NONBLOCK, 0);


Ответить