فهرست منبع

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 24 سال پیش
والد
کامیت
32677da976
2فایلهای تغییر یافته به همراه14 افزوده شده و 9 حذف شده
  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);