/ Published in: Lisp
Everything that handles user-input.
Expand |
Embed | Plain Text
Copy this code and paste it in your HTML
;;;; Input focused, anything the user supplies ;;; Input Checkers (defun interface_input_check (input interface-list) "Check if the interface selected is a valid interface" (if (numberp input) (progn (setf input (- input 1)) (if (< input 0) 'exit (if (nth input interface-list) (nth input interface-list) 'invalid))) 'invalid)) (defun menu_input_check (input arg-list) "Returns the function requested, if it doesn't exist returns invalid Arguments: 1 - preset | Used for checking preset listing if not nil" (let* ((preset (car arg-list))) (cond ((equal input 1) 'showMtu) ((equal input 2) 'EditMTU) ((equal input 3) 'CreatePMTU) ((equal input 9) 'settings) (preset ; If extended menu, allow the other functionality (cond ((equal input 4) 'LoadPMTU) ((equal input 5) 'EditPMTU) ((equal input 6) 'DeletePMTU) (t 'invalid))) (t 'invalid)))) (defun settings_input_check (input arg-list) "Check for valid settings-input" (if (equal input 1) 'changeInterface 'invalid)) (defun input_loop (input_checker arg-list) "Input loop to ensure valid option is suplied What option is valid is defined in the input_checker Arguments: Input_checker - Takes a function that knows what input is valid and what isn't arg-list - List of arguments used for the Input_Checker Return: 'exit - if 0 is inputed, it will default to exit retval - The value given by the input_checker" (let* ((input (read)) (retval (funcall input_checker input arg-list))) (cond ((equal input 0) 'exit) ((equal retval 'invalid) (format t "Invalid Input!~%>> ") (input_loop input_checker arg-list)) (t retval))))