Added optional IMAP folder name
[dockapps/wmnotify.git] / src / configfile.c
index f2e5a2b..58134e8 100644 (file)
@@ -1,6 +1,22 @@
-/* configfile.c -- Parsing the configuration file
-   Copyright (C) 2003 Hugo Villeneuve */
-
+/*
+ * configfile.c -- Parsing the configuration file
+ *
+ * Copyright (C) 2003 Hugo Villeneuve <hugo@hugovil.com>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
 
 #if HAVE_CONFIG_H
 #  include "config.h"
@@ -69,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" );
@@ -172,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. */
@@ -207,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;
 
@@ -225,7 +249,7 @@ ParseConfigurationFile( FILE *file )
 #endif
       }
       else {
-       fprintf( stderr, "%s: Invalid value for for parameter 'use_ssl' in\n" \
+       fprintf( stderr, "%s: Invalid value for parameter 'use_ssl' in\n" \
                 "configuration file (must be 0 or 1): %d\n", PACKAGE, number );
        exit( EXIT_FAILURE );
       }