X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/048d0b2d143b6a491ac73eed6ab972e97774391c..8922d11064c215cdd8b6288985cc6d2e573826c2:/src/pset-proto.lisp diff --git a/src/pset-proto.lisp b/src/pset-proto.lisp index 91668ed..0c133d6 100644 --- a/src/pset-proto.lisp +++ b/src/pset-proto.lisp @@ -70,7 +70,8 @@ (:method ((raw string)) (values :string raw)) (:method ((raw character)) (values :char raw)) (:method ((raw property)) (values (p-type raw) (p-value raw))) - (:method ((raw cons)) (values (car raw) (cdr raw)))) + (:method ((raw cons)) (values (car raw) (cdr raw))) + (:method ((raw function)) (values :func raw))) (export 'make-property) (defun make-property (name raw-value &key type location seenp) @@ -146,6 +147,7 @@ ;; If the caller asks for type T then give him the raw thing. (:method (value type (wanted (eql t))) + (declare (ignore type)) value)) ;;;-------------------------------------------------------------------------- @@ -224,7 +226,10 @@ Otherwise the value is coerced to the right kind of thing (where possible) and returned. - If PSET is nil, then return DEFAULT." + The file location at which the property was defined is returned as a + second value. + + If PSET is nil, then return DEFAULT and nil." (let ((prop (and pset (pset-get pset (property-key name))))) (with-default-error-location ((and prop (p-location prop)))