--- wmjmail.c	Wed Mar 28 08:25:15 2001
+++ wmjmail.c.3	Wed Mar 28 08:20:43 2001
@@ -11,41 +11,56 @@
 #include <sys/time.h>
 #include <sys/types.h>

+#define AUDIOPLAYER "/usr/bin/play"
+#define AUDIOFILE   "/usr/share/audio/clink.au"
 #define SPOOLDIR    "/var/spool/mail/"
 #define APPLICATION "xterm -sb -sl 2000 +si +sk -title XTerm -fg black -bg wheat -geometry 71x50-0-0  -e mutt &"

 int            dontread = 0;
 static char    my_folder[256];
 static char    my_app[256];
+static char    my_audio[512];
 static int     my_new, my_tot, my_read;
 static off_t   size;

 void show_help() {
-    printf("-s <sec>:  Seconds between executions of mailchk\n");
-    printf("-r      :  Don't show the read mail stat.\n");
+    printf("-r         :  Don't show the read mail stat.\n");
+    printf("-s <sec>   :  Seconds between executions of mailchk\n");
+    printf("-x <exe>   :  Program to execute on button click   \n");
+    printf("-f <folder>:  Mail folder to watch                 \n");
+    printf("-P <player>:  Audio player to use for notification \n");
+    printf("-p <afile> :  Audio file to play for notification  \n");

     exit(0);
 }

 void setup(int argc, char** argv) {
-    char c;
-    int  i;
+    char    c;
+    int     i;
+    char    my_aplayer[256];
+    char    my_afile[256];
+
+    snprintf (my_app,     255, "%s",    APPLICATION);
+    snprintf (my_folder,  255, "%s/%s", SPOOLDIR, getenv("USER"));
+    snprintf (my_aplayer, 255, "%s",    AUDIOPLAYER);
+    snprintf (my_afile,   255, "%s",    AUDIOFILE);

-    snprintf (my_app,    255, "%s", APPLICATION);
-    snprintf (my_folder, 255, "%s/%s", SPOOLDIR, getenv("USER"));
-
-    while( -1 != (c = getopt(argc, argv, "hrs:x:f:"))) {
+    while( -1 != (c = getopt(argc, argv, "hrs:x:f:P:p:"))) {
         switch(c) {
             case '?': exit(1);
             case 'h': show_help();

             case 'r': dontread = 1;   break;
             case 's': i=atoi(optarg); break;
-            case 'x': snprintf (my_app,    255, "%s", optarg); break;
-            case 'f': snprintf (my_folder, 255, "%s", optarg); break;
+            case 'x': snprintf (my_app,     255, "%s", optarg); break;
+            case 'f': snprintf (my_folder,  255, "%s", optarg); break;
+            case 'p': snprintf (my_afile,   255, "%s", optarg); break;
+            case 'P': snprintf (my_aplayer, 255, "%s", optarg); break;
         }
     }

+    snprintf (my_audio, 511, "%s %s &", my_aplayer, my_afile);
+
     set_update_delay((i) ? i : 15); /* seconds */
     set_loop_delay(1000); /* mu seconds */
 }
@@ -55,7 +70,6 @@
     int           in;
     struct stat   buf;

-    fprintf (stderr, "Stat '%s'\n", my_folder);
     if ( stat (my_folder, &buf) != 0 )
     {
         perror ("");
@@ -68,6 +82,13 @@
         FILE *f = popen ("mailchk", "r");
         fscanf (f, "%i - %i - %i", &my_new, &my_tot, &my_read);
         pclose (f);
+
+        /* Do not play on startup, and only on NEW mails */
+        if ( size != 0          &&
+             size < buf.st_size )
+        {
+            system (my_audio);
+        }

         size = buf.st_size;
     }
