(FILECREATED "22-Apr-86 11:16:24" {DSK}<LISPFILES>MATT>IDLERPATCH.;5 3497   

      changes to:  (FNS \IDLE.LOAD.NAMES.PWDS \IDLE.SAVE.NAMES.PWDS \IDLE.EDIT.NAMES.PWDS \IDLE.AUTHENTICATE)
		   (FILEVARS IDLERPATCHCOMS)
		   (VARS IDLERPATCHCOMS \NAME.PWD.ALIST)

      previous date: "21-Apr-86 11:18:53" {DSK}<LISPFILES>MATT>IDLERPATCH.;1)


(* Copyright (c) 1986 by Matt Heffron. All rights reserved.)

(PRETTYCOMPRINT IDLERPATCHCOMS)

(RPAQQ IDLERPATCHCOMS ((FNS \IDLE.AUTHENTICATE \IDLE.EDIT.NAMES.PWDS \IDLE.LOAD.NAMES.PWDS \IDLE.SAVE.NAMES.PWDS)
			 (P (\IDLE.LOAD.NAMES.PWDS))
			 (GLOBALVARS \NAME.PWD.ALIST)))
(DEFINEQ

(\IDLE.AUTHENTICATE
  [LAMBDA (NAME PWD TYPE IFALLDOWN)                                     (* mth: "21-Apr-86 17:45")
    (if (STRING-EQUAL (\ENCRYPT.PWD PWD)
			  (CDR (SASSOC NAME \NAME.PWD.ALIST)))
	then T
      else (PROMPTPRINT "?Incorrect password")
	     NIL])

(\IDLE.EDIT.NAMES.PWDS
  [LAMBDA NIL                                                           (* mth: "22-Apr-86 11:14")
    (DECLARE (LOCALVARS . T)
	       (SPECVARS CURNAME))
    (LET ((CURNAME (USERNAME))
	  (OSTREAM (GETSTREAM NIL (QUOTE OUTPUT)))
	  UNAME PWD ENTRY)
         (while (SETQ UNAME (U-CASE (PROMPTFORWORD "Username:" CURNAME
							   [FUNCTION (LAMBDA NIL
							       (DECLARE (USEDFREE CURNAME))
							       (CONS CURNAME (REMOVE CURNAME
											 (MAPCAR
											   \NAME.PWD.ALIST
											   (FUNCTION CAR]
							   OSTREAM)))
	    do [SETQ PWD (U-CASE (PROMPTFORWORD " (password)" NIL NIL OSTREAM (QUOTE *]
		 (TERPRI OSTREAM)
		 (if [EQUAL PWD (U-CASE (PROMPTFORWORD (CONCAT "Retype password for " UNAME ":")
							       NIL NIL OSTREAM (QUOTE *]
		     then [if (SETQ ENTRY (SASSOC UNAME \NAME.PWD.ALIST))
				then (RPLACD ENTRY (\ENCRYPT.PWD PWD))
			      else (push \NAME.PWD.ALIST (CONS UNAME (\ENCRYPT.PWD PWD]
		   else (printout OSTREAM T "?Not confirmed"))
		 (TERPRI OSTREAM])

(\IDLE.LOAD.NAMES.PWDS
  [LAMBDA NIL                                                           (* mth: "22-Apr-86 10:43")
    (LET ((FILE (QUOTE NAMES-PWDS.ALIST)))
         [if (INFILEP FILE)
	     then (SETQ FILE (OPENSTREAM FILE (QUOTE INPUT)))
	   elseif (SETQ FILE (FINDFILE FILE))
	     then (SETQ FILE (OPENSTREAM FILE (QUOTE INPUT]
         (SETQ \NAME.PWD.ALIST (if FILE
				     then (READ FILE)
				   else NIL))
         (CLOSEF FILE])

(\IDLE.SAVE.NAMES.PWDS
  [LAMBDA NIL                                                           (* mth: "22-Apr-86 10:45")
    (LET ((FILE (QUOTE NAMES-PWDS.ALIST)))
         [if (INFILEP FILE)
	     then (SETQ FILE (OPENSTREAM FILE (QUOTE OUTPUT)))
	   elseif (SETQ FILE (FINDFILE FILE))
	     then (SETQ FILE (OPENSTREAM FILE (QUOTE OUTPUT)))
	   else (SETQ FILE (OPENSTREAM (QUOTE NAMES-PWDS.ALIST)
					     (QUOTE OUTPUT]
         (PRINT (AND (BOUNDP (QUOTE \NAME.PWD.ALIST))
			 \NAME.PWD.ALIST)
		  FILE)
         (CLOSEF FILE])
)
(\IDLE.LOAD.NAMES.PWDS)
(DECLARE: DOEVAL@COMPILE DONTCOPY

(GLOBALVARS \NAME.PWD.ALIST)
)
(PUTPROPS IDLERPATCH COPYRIGHT ("Matt Heffron" 1986))
(DECLARE: DONTCOPY
  (FILEMAP (NIL (629 3331 (\IDLE.AUTHENTICATE 639 . 947) (\IDLE.EDIT.NAMES.PWDS 949 . 2152) (\IDLE.LOAD.NAMES.PWDS 2154 . 
2689) (\IDLE.SAVE.NAMES.PWDS 2691 . 3329)))))
STOP