Explorar o código

patch from Hugo Haas <hugo@larve.net>
-c was not specified in the getopt*() calls

set global password to the one the user inputs and use that as the
default for remaining mailboxes

Michael Elkins %!s(int64=24) %!d(string=hai) anos
pai
achega
32677da976
Modificáronse 2 ficheiros con 14 adicións e 9 borrados
  1. 1 1
      Makefile.am
  2. 13 8
      main.c

+ 1 - 1
Makefile.am

@@ -2,7 +2,7 @@ bin_PROGRAMS=isync
 isync_SOURCES=main.c imap.c sync.c maildir.c isync.h list.c cram.c
 man_MANS=isync.1
 EXTRA_DIST=sample.isyncrc $(man_MANS)
-CPPFLAGS=$(RPM_OPT_FLAGS)
+INCLUDES=$(RPM_OPT_FLAGS)
 
 log:
 	rcs2log -h sigipe.org | sed 's;/home/cvs/isync/;;g' > ChangeLog

+ 13 - 8
main.c

@@ -341,9 +341,9 @@ main (int argc, char **argv)
 #endif
 
 #if HAVE_GETOPT_LONG
-    while ((i = getopt_long (argc, argv, "defhp:u:r:s:vV", Opts, NULL)) != -1)
+    while ((i = getopt_long (argc, argv, "c:defhp:u:r:s:vV", Opts, NULL)) != -1)
 #else
-    while ((i = getopt (argc, argv, "defhp:u:r:s:vV")) != -1)
+    while ((i = getopt (argc, argv, "c:defhp:u:r:s:vV")) != -1)
 #endif
     {
 	switch (i)
@@ -412,14 +412,19 @@ main (int argc, char **argv)
 
 	if (!box->pass)
 	{
-	    char *pass = getpass ("Password:");
-
-	    if (!pass)
+	    /* if we don't have a global password set, prompt the user for
+	     * it now.
+	     */
+	    if (!global.pass)
 	    {
-		puts ("Aborting, no password");
-		exit (1);
+		global.pass = getpass ("Password:");
+		if (!global.pass)
+		{
+		    puts ("Aborting, no password");
+		    exit (1);
+		}
 	    }
-	    box->pass = strdup (pass);
+	    box->pass = strdup (global.pass);
 	}
 
 	printf ("Reading %s\n", box->path);