Added optional IMAP folder name
authorHugo Villeneuve <hugo@hugovil.com>
Sat, 25 May 2013 23:39:07 +0000 (19:39 -0400)
committerHugo Villeneuve <hugo@hugovil.com>
Sat, 25 May 2013 23:40:27 +0000 (19:40 -0400)
BUGS
doc/wmnotify.man
src/configfile.c
src/imap.c
src/wmnotify.h

diff --git a/BUGS b/BUGS
index 7eda24f..619ccce 100644 (file)
--- a/BUGS
+++ b/BUGS
@@ -4,3 +4,5 @@ BUGS
 o There is a problem with the esddsp daemon. After a few seconds, the sound stops
 and an error message is reported. This does not happen if wmnotify is launched
 directly.
+o wmnotify display "X connection to :0.0 broken (explicit kill or server shutdown"
+  when another application is using the soundcard.
index 92a4930..a4a20b6 100644 (file)
@@ -75,6 +75,10 @@ before restarting wmnotify.
 .BI "protocol " <protocol-name>
 mail account protocol, POP3 or IMAP4.
 
+.TP
+.BI "imap_folder " <folder-name>
+IMAP folder name (optional, default is INBOX).
+
 .TP
 .BI "use_ssl "  <value>
 This option controls the SSL encryption enabling/disabling. The value may be
index 6962e7d..58134e8 100644 (file)
@@ -85,6 +85,8 @@ CreateDefaultConfigurationFile( char *file )
   fprintf( fp, "username xxxxxxxx\n\n" );
   fprintf( fp, "# Password.\n" );
   fprintf( fp, "password xxxxxxxx\n\n" );
+  fprintf( fp, "# IMAP folder name (optional, default is INBOX).\n" );
+  fprintf( fp, "# folder INBOX.some_folder\n\n" );
   fprintf( fp, "# Mail Check Interval (in minutes, default is 5 minutes).\n" );
   fprintf( fp, "#mailcheckdelay 5\n\n" );
   fprintf( fp, "# Default mail client (optional).\n" );
@@ -188,6 +190,7 @@ ParseConfigurationFile( FILE *file )
   const char *err_string = NULL;
 
   /* Default values for optional parameters. */
+  strcpy( wmnotify_infos.imap_folder, "INBOX"); /* Default IMAP folder. */
   wmnotify_infos.port = 110;
   wmnotify_infos.mail_check_interval = 60; /* 1 minute interval. */
   wmnotify_infos.audible_notification = false; /* Disabled. */
@@ -223,6 +226,11 @@ ParseConfigurationFile( FILE *file )
 
       protocol_found = true;
     }
+    else if( STREQ( token, "imap_folder" ) ) {
+      token = GetArguments( "imap_folder", true );
+      /* Should check size before using strcpy(), or use strncopy() instead. */
+      strcpy( wmnotify_infos.imap_folder, token );
+    }
     else if( STREQ( token, "use_ssl" ) ){
       int number;
 
index 1078328..da11e47 100644 (file)
@@ -267,7 +267,7 @@ IMAP4_CheckForNewMail( void )
 
   /* Selecting the mailbox first. */
   argv[0] = IMAP4_CMD_EXAMINE;
-  argv[1] = "inbox";
+  argv[1] = wmnotify_infos.imap_folder;
   status = IMAP4_SendCommand( 2, argv );
   if( status != EXIT_SUCCESS ) {
     new_messages = -1;
index 763987c..ab19d16 100644 (file)
@@ -73,6 +73,7 @@ typedef struct wmnotify_t
   char audiofile[512];
   int volume;
   int protocol;
+  char imap_folder[MAX_STR_LEN];
   bool use_ssl;
   char server_name[MAX_STR_LEN];
   int port;