Only in elm2.4.ME+.39.my: Makefile
Only in elm2.4.ME+.39.my: config.h
Only in elm2.4.ME+.39.my: config.h.orig
Only in elm2.4.ME+.39.my: config.h.rej
Only in elm2.4.ME+.39.my: config.sh
Only in elm2.4.ME+.39.my/doc: Makefile
Only in elm2.4.ME+.39.my: elm2.4.ME+.39.my+pgp5.diff
Only in elm2.4.ME+.39.my/filter: Makefile
Only in elm2.4.ME+.39.my/hdrs: sysdefs.h
Only in elm2.4.ME+.39.my/lib: Makefile
Only in elm2.4.ME+.39.my/melib: Makefile
diff -ru elm2.4.ME+.39/melib/pgp_decode.c elm2.4.ME+.39.my/melib/pgp_decode.c
--- elm2.4.ME+.39/melib/pgp_decode.c	Fri Feb 13 18:53:54 1998
+++ elm2.4.ME+.39.my/melib/pgp_decode.c	Fri Feb 27 18:09:51 1998
@@ -170,10 +170,7 @@
     else
       cmd[0] = '\0';
     strfcat(cmd,pgp_path, sizeof cmd);
-    strfcat(cmd," -f +verbose=0", sizeof cmd);
-    strfcat(cmd, " +KEEPBINARY=OFF", sizeof cmd);
-    if (usepass || opts == PGP_SIGNED_MESSAGE)
-      strfcat(cmd, " +batchmode", sizeof cmd);
+    strfcat(cmd,"v -f +verbose=0 +batchmode", sizeof cmd);
     _exit (system_call(cmd,0));	
   }
   
Only in elm2.4.ME+.39.my/melib: pgp_decode.c.orig
Only in elm2.4.ME+.39.my/src: Makefile
diff -ru elm2.4.ME+.39/src/builtin++.c elm2.4.ME+.39.my/src/builtin++.c
--- elm2.4.ME+.39/src/builtin++.c	Fri Feb 13 18:53:54 1998
+++ elm2.4.ME+.39.my/src/builtin++.c	Fri Feb 27 18:05:07 1998
@@ -192,7 +192,8 @@
             }
           }
           else {
-            Writechar('?');
+/*            Writechar('?'); */
+		Writechar(*pending);
             chars++;
           }
 	}
diff -ru elm2.4.ME+.39/src/curses.c elm2.4.ME+.39.my/src/curses.c
--- elm2.4.ME+.39/src/curses.c	Fri Feb 13 18:53:55 1998
+++ elm2.4.ME+.39.my/src/curses.c	Fri Feb 27 18:05:17 1998
@@ -708,12 +708,14 @@
 
 	else {
 	  /* if some kind of non-printable character change to a '?' */
+/*
 #ifdef ASCII_CTYPE
 	  if(!isascii(ch) || !isprint(ch))
 #else
 	  if(!isprint((unsigned char)ch))
 #endif
 	    ch = '?';
+*/
 
 	  /* if we only have one column left, simulate automargins if
 	   * the terminal doesn't have them */
diff -ru elm2.4.ME+.39/src/pgp.c elm2.4.ME+.39.my/src/pgp.c
--- elm2.4.ME+.39/src/pgp.c	Fri Feb 13 18:53:54 1998
+++ elm2.4.ME+.39.my/src/pgp.c	Fri Feb 27 18:15:16 1998
@@ -18,8 +18,10 @@
 char pgp_passphrase[STRING];
 int pgp_expires;
 
-/* the column in which the userid begins in the 'pgp -kv' command output */
-#define PGP_USERID_OFFSET 30
+/* the column in which the userid begins in the 'pgpk -l' command output */
+/* 4 is a hack so that we get the leading space:*/
+#define PGP_USERID_OFFSET 4
+#define PGP_KEYID_OFFSET  10
 
 
 /* 'n' is the key we are looking for.  'k' is the list of possible matches
@@ -65,6 +67,8 @@
   char buf[STRING], address[STRING], *c, **keys=0, *pc, userpart[STRING];
   int i=0, keys_len=0, keys_max=0, return_val=0, start=0;
   FILE *p;
+  char pgpk_path[SLEN], keyid[11] = "\0";
+;
 
   if (!name || !target)
     return(-1);
@@ -117,8 +121,10 @@
       dup (fd[1]);
       close (fd[1]);
 
-      execl(pgp_path, 
-	    pgp_path,"+verbose=0", "+language=en", "-kv", c, (char *)0);
+      sprintf(pgpk_path, "%sk", pgp_path);
+      execl(pgpk_path,
+           pgpk_path,"+verbose=0", "+language=en", "+batchmode",
+           "-l", c, (char *)0);
 
       tmp = errno;
       perror(pgp_path);
@@ -135,29 +141,58 @@
 
     while (fgets(buf, STRING, p) != NULL) {
       /* see if we've reached the beginning of the key listings... */
-      if (!start && strncmp(buf, "pub", 3)==0)
+      if (!start && (strncmp(buf, "pub", 3)==0) || (strncmp(buf, "sec", 3) == 0))
 	  start=1;
 
       if (start) {
 	int Len;
 
-	/* if we've read all the keys, stop here */
-	if (buf[0] != 'p' && buf[0] != ' ')
-	  break;
-
-	if (keys_len == keys_max)
-	  keys = (char**)DynamicArray(keys, sizeof(char*), &keys_max, 5);
-	
-	pc = rindex(buf, '\n');
-	if (!pc) /* this shouldn't happen! */
-	  continue;
-	*pc = '\0';
-	
-	pc = buf + PGP_USERID_OFFSET;
-	Len = strlen(pc)+1;
-	keys[keys_len] = (char*)safe_malloc(Len);
-	strfcpy(keys[keys_len], pc, Len);
-	++keys_len;
+       /*Things we're interested in:  "pub", "sec", "uid".
+        *We're not interested in anything else, and especially we're
+        *not interested in "pub@" or "sec@", which are disabled, or
+        *"ret", which are revoked.
+        */
+       if(strncmp(buf, "pub", 3) == 0 ||
+          strncmp(buf, "sec", 3) == 0) {
+         if(buf[3] != '@') {
+           pc = buf + PGP_KEYID_OFFSET;
+           strcpy(keyid, "0x");
+           memcpy(&keyid[2], pc, 8);
+           keyid[10] = '\0';
+         }
+         else {
+           keyid[0] = '\0';
+         }
+       }
+       else {
+         if(keyid[0]) {
+           if(strncmp(buf, "uid", 3) == 0) {
+
+             if (keys_len == keys_max)
+               keys = (char**)DynamicArray(keys, sizeof(char*), &keys_max, 5);
+
+             pc = rindex(buf, '\n');
+             if (!pc) /* this shouldn't happen! */
+               continue;
+             *pc = '\0';
+
+             pc = buf + PGP_USERID_OFFSET;
+             Len = strlen(pc)+sizeof(keyid)+1;
+             keys[keys_len] = (char*)safe_malloc(Len);
+             strfcpy(keys[keys_len], keyid, sizeof(keyid));
+             strfcat(keys[keys_len], pc, Len);
+             ++keys_len;
+           }
+           else {
+             if(strncmp(buf, "sub", 3) != 0) {
+               keyid[0] = '\0';
+             }
+           }
+         }
+         else {
+         }
+       }
+
       }
     }
     pclose(p);
@@ -178,12 +213,13 @@
     }
   }
 
-  if (keys_len == 1) /* perfect match! */
-    get_address_from(keys[0], target);
+  if (keys_len == 1) /* perfect match! */ {
+    strfcpy(target, keys[0], 11); /*Get the keyID from the front*/
+  }
   else if (keys_len > 1) { /* ask the user which, if any, s/he meant */
     c = PGPSelectKey(name, keys, keys_len);
-    if (c)
-      get_address_from(c, target);
+    if (c) 
+      strfcpy(target, c, 11); /*Get the keyID from the front of the string*/
     else {
       target[0] = '\0';
       return_val = -1;
@@ -297,22 +333,25 @@
     strfcat(buf, buf2, sizeof buf);
   }
   strfcat(buf, pgp_path, sizeof buf);
+  if (opts & PGP_MESSAGE)
+    strfcat(buf, "e", sizeof buf);
+  else
+    if (opts & PGP_SIGNED_MESSAGE)
+      strfcat(buf, "s", sizeof buf);
+
   if (metoo)
     strfcat(buf, " +encrypttoself=on", sizeof buf);
   if (usepgppass)
     strfcat(buf, " +batchmode", sizeof buf);
   if (opts & PGP_SIGNED_MESSAGE)
     strfcat(buf," +clearsig=on", sizeof buf);
+  if ((opts & PGP_SIGNED_MESSAGE) && (opts & PGP_MESSAGE))
+    strfcat(buf, " -s", sizeof buf);
 
-  strfcat(buf, " +verbose=0 -atw", sizeof buf);
-
-  if (opts & PGP_SIGNED_MESSAGE)
-    strfcat(buf, "s", sizeof buf);
-  if (opts & PGP_MESSAGE)
-    strfcat(buf, "e", sizeof buf);
+  strfcat(buf, " +verbose=0 -at +force", sizeof buf);
 
   if (pgp_askpgpsig && (opts & PGP_SIGNED_MESSAGE)) {
-    strfcat(buf, "u ", sizeof buf);
+    strfcat(buf, "-u ", sizeof buf);
     strfcat(buf, sig, sizeof buf);
   }
 
@@ -323,7 +362,7 @@
      no-no's */
   if (opts & PGP_MESSAGE)
     for (i=0; i<id_len; i++) {
-      strfcat(buf, " '", sizeof buf);
+      strfcat(buf, " -r '", sizeof buf);
       strfcat(buf, id_array[i], sizeof buf);
       strfcat(buf, "'", sizeof buf);
     }
@@ -347,7 +386,7 @@
     Raw(ON);
   
   if (st == 0) { /* pgp returns zero upon success */
-    /* copy the file into it's final destination */
+    /* copy the file into its final destination */
     sprintf(buf, "%s.asc", filename);
 #ifdef RENAME
     if (rename(buf, filename) < 0) {
@@ -417,6 +456,7 @@
   char userid[SLEN], pgpkey[SLEN], tmpfil[STRING], cmd[STRING], subj[STRING];
   int status;
   int need_redraw = FALSE;
+  char buf[VERY_LONG_STRING];
 
   userid[0] = '\0';
   pgpkey[0] = '\0';
@@ -444,66 +484,34 @@
     return(TRUE);
   }
   sprintf(tmpfil, "%selm.%d", temp_dir, getpid());
-  
-  argv[argc++] = pgp_path;
-  argv[argc++] = "+verbose=0";
-  argv[argc++] = "-kxa";
-  argv[argc++] = pgpkey;
-  argv[argc++] = tmpfil;
-  argv[argc++] = NULL;
 
-  ret = start_run(&RS,SY_NOTTY,argv,-1,-1);
+  *buf = '\0';
+  strfcat(buf, pgp_path, sizeof buf);
+  strfcat(buf, "k +force +batchmode -x ", sizeof buf);
+  strfcat(buf, pgpkey, sizeof buf);
+  strfcat(buf, " -o ", sizeof buf);
+  strfcat(buf, tmpfil, sizeof buf);
+
+  error("Running PGP...");
+  if(!system_call(buf, 0)) {
+    error("Running PGP... Done.");
+    strcpy(included_file, tmpfil);
+    /* set the default subject for this message */
+    sprintf(subj, "PGP public key for %s", pgpkey);
+
+    pgp_status = PGP_PUBLIC_KEY;
+
+    /* Now send the message off! */
+    send_msg ("", "", subj, 0, 0);
+
+    unlink (included_file); /* make sure to clean up. */
+    included_file[0] = '\0';
+    pgp_status = 0; /* reset */
+  }
+  else {
+    error ("pgp returned a non-zero value!");
+  }
 
-  if (ret) {
-    int exit_code;
-    ret = run_already_done(&RS,&exit_code);
-    if (0 == ret) {
-      error("Running PGP...");
-      fflush(stdout);
-      ret = wait_end(&RS,&exit_code);
-    }
-    if (ret < 0) {
-      error1("%.30s fail: Signal?",argv[0]);
-      return TRUE;
-    } else if (ret > 0) {
-      if (RS.save_errno)
-	error2("Failed: %.30s: %.40s",
-	       argv[0],error_description(RS.save_errno));
-      else if (exit_code) {
-	char buffer[90];
-	sprintf(buffer,"pgp returned error status %d",exit_code);
-	error(buffer);
-	return TRUE;
-      } else {
-	error("Running PGP... Done.");
-	sprintf(included_file, "%s.asc", tmpfil);
-      }
-    } else {
-      error2("%.30s lost: %.40s",
-		     argv[0],error_description(RS.save_errno));
-      return TRUE;
-    }
-  
-  } else {
-    if (RS.save_errno)
-      error2("Failed: %.30s: %.40s",
-	     argv[0],error_description(RS.save_errno));
-    else
-      error1("Can't start %.30s",argv[0]);
-    return TRUE;
-  }
-
-  /* set the default subject for this message */
-  sprintf(subj, "PGP public key for %s", pgpkey);
-
-  pgp_status = PGP_PUBLIC_KEY;
-
-  /* Now send the message off! */
-  send_msg ("", "", subj, 0, 0);
-
-  unlink (included_file); /* make sure to clean up. */
-  included_file[0] = '\0';
-  pgp_status = 0; /* reset */
   return(TRUE);
 }
 
@@ -530,7 +538,7 @@
   fclose(fpout);
 
   argv[argc++] = pgp_path;
-  argv[argc++] = "+verbose=0";
+  argv[argc++] = "k +verbose=0 +batchmode -a ";
   argv[argc++] = tempfile;
   argv[argc++] = NULL;
   
@@ -539,7 +547,7 @@
     int exit_code;
     wait_end(&RS,&exit_code);
   }
-  unlink(tempfile);
+  /*  unlink(tempfile);*/
   return TRUE;
 }
 
Only in elm2.4.ME+.39.my/src: pgp.c.orig
diff -ru elm2.4.ME+.39/src/returnadd.c elm2.4.ME+.39.my/src/returnadd.c
--- elm2.4.ME+.39/src/returnadd.c	Fri Feb 13 18:53:56 1998
+++ elm2.4.ME+.39.my/src/returnadd.c	Fri Feb 27 18:05:28 1998
@@ -198,7 +198,10 @@
 	    get_address_from(buf, hold_return);
 	    buffer[0] = '\0';
           }
-	  /* reply-to is now handle in handle_reply_to */
+          else if (header_cmp(buf, "Reply-To", NULL)) {
+           get_address_from(buf, buffer);
+           if (strlen(buffer) > 0) return(using_to);
+          }
 #endif
 
 	  else if (len_buf < 2)	/* done with header */
Only in elm2.4.ME+.39.my/utils: Makefile
Only in elm2.4.ME+.39.my/utils: checkalias
Only in elm2.4.ME+.39.my/utils: listalias
Only in elm2.4.ME+.39.my/utils: messages
Only in elm2.4.ME+.39.my/utils: printmail
