(in-package :alp) ;; Fixes problem when an ALP file has arguments and its processed as usual ;; This patch supersedes 2002-06-17-default-arguments-patch. The previous ;; version only works with output from compiled functions. But when we ;; patch ALP pages they can be interpreted functions, and the output of ;; excl:arglist is different. (defun has-args (funct) (when (not (fboundp funct)) (error "No function is bounded to '~S'." funct)) (let ((f-args (excl:arglist funct))) (not (loop for expected-argname in '(&OPTIONAL ALP::OUTPUT-STREAM ALP::ALIST &REST REST) for given-arg in f-args for given-argname = (if (consp given-arg) (car given-arg) given-arg) always (eq expected-argname given-argname))))) (defun process (alp-name &optional (funct nil) (client-stream *output-stream*) (alist *query-alist*) &rest rest) "Process a request" ;; Prepare the page and then execute request (setq funct (prepare alp-name funct)) (if (has-args funct) (apply funct (alist-to-function-arguments funct *query-alist*)) (apply funct client-stream alist rest))) ;;; EOF (in-package :alp) ;; Automatically generated file - do not modify by hand! (defun alp::|expected-correspondence| (&optional (OUTPUT-STREAM cl:*standard-output*) (ALIST nil) &rest REST) (let ((cl:*standard-output* OUTPUT-STREAM) (alp::*query-alist* ALIST)) (write-line "") (write-line "") #| Query parameters: sessionid: User's login name action: Requested action on the page. One of answer-question, add-new, delete-selected, submit. root: The root concept relative that provides context question-type: The question type that must be passed through from ask-question.alp, back to ask-question.alp. target: The concept about which the user is asking, used as the structure mapping target. base: The concept to compare to, used as the structure mapping base. step: Describes what data should be displayed. Either 1 or 2. target-object: The skolem object representing the object from the concept (target) in the current correspondence. base-object: The skolem object representing the object from the base in the current correspondence. sk-target: The skolem for the concept (target). sk-base: The skolem object for the base. |# (write-string " ") (util::with-alist-values (sessionid action step root question-type target target-sk target-object base base-sk base-object confirmed concept message) ALIST (write-line "
") (write-line "Ask Question
") (write-line "