From c5f319eb3a2e0ad97867c8dc61bfc140333fb11d Mon Sep 17 00:00:00 2001 From: Mark Oteiza Date: Sat, 8 Apr 2017 11:34:17 -0400 Subject: [PATCH] Replace more nested ifs with cond This is a continuation of d526047 "Replace more nested ifs with cond". * lisp/play/dunnet.el (dun-firstword, dun-firstwordl, dun-cat): Use when and cond where appropriate. --- lisp/play/dunnet.el | 51 ++++++++++++++++++++------------------------- 1 file changed, 23 insertions(+), 28 deletions(-) diff --git a/lisp/play/dunnet.el b/lisp/play/dunnet.el index 8f013bb09f2..6acdf36d72c 100644 --- a/lisp/play/dunnet.el +++ b/lisp/play/dunnet.el @@ -2199,16 +2199,14 @@ for a moment, then straighten yourself up.\n") ;;; Get the first non-ignored word from a list. (defun dun-firstword (list) - (if (not (car list)) - nil - (while (and list (member (intern (car list)) dun-ignore)) + (when (car list) + (while (and list (memq (intern (car list)) dun-ignore)) (setq list (cdr list))) (car list))) (defun dun-firstwordl (list) - (if (not (car list)) - nil - (while (and list (member (intern (car list)) dun-ignore)) + (when (car list) + (while (and list (memq (intern (car list)) dun-ignore)) (setq list (cdr list))) list)) @@ -2820,28 +2818,25 @@ drwxr-xr-x 3 root staff 2048 Jan 1 1970 ..") (setq dun-badcd t)) (defun dun-cat (args) - (let (doto checklist) - (if (not (setq args (car args))) - (dun-mprincl "Usage: cat ") - (if (string-match "/" args) - (dun-mprincl "cat: only files in current directory allowed.") - (if (and (> dun-cdroom 0) (string= args "description")) - (dun-mprincl (car (nth dun-cdroom dun-rooms))) - (if (setq doto (string-match "\\.o" args)) - (progn - (if (= dun-cdroom -10) - (setq checklist dun-inventory) - (setq checklist (nth dun-cdroom dun-room-objects))) - (if (not (member (cdr - (assq (intern - (substring args 0 doto)) - dun-objnames)) - checklist)) - (dun-mprincl "File not found.") - (dun-mprincl "Ascii files only."))) - (if (assq (intern args) dun-unix-verbs) - (dun-mprincl "Ascii files only.") - (dun-mprincl "File not found.")))))))) + (cond + ((null (setq args (car args))) + (dun-mprincl "Usage: cat ")) + ((string-match-p "/" args) + (dun-mprincl "cat: only files in current directory allowed.")) + ((and (> dun-cdroom 0) (string= args "description")) + (dun-mprincl (car (nth dun-cdroom dun-rooms)))) + ((string-match "\\.o" args) + (let ((doto (match-beginning 0)) checklist) + (if (= dun-cdroom -10) + (setq checklist dun-inventory) + (setq checklist (nth dun-cdroom dun-room-objects))) + (if (member (cdr (assq (intern (substring args 0 doto)) dun-objnames)) + checklist) + (dun-mprincl "Ascii files only.") + (dun-mprincl "File not found.")))) + ((assq (intern args) dun-unix-verbs) + (dun-mprincl "Ascii files only.")) + (t (dun-mprincl "File not found.")))) (defun dun-rlogin-endgame () (if (not (= (dun-score nil) 90)) -- 2.39.2