Return to Snippet

Revision: 66542
at May 21, 2014 05:08 by lalzy


Initial Code
;;;; 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))))

Initial URL

                                

Initial Description
Everything that handles user-input.

Initial Title
MTU-Changing program - Input.lisp

Initial Tags

                                

Initial Language
Lisp