minor fix
[lifp.git] / if.lisp
diff --git a/if.lisp b/if.lisp
index a5a98abec8a3082ea833b2838dbddd88392e4133..dac5396b28f365061b1aca200b7c00f67aecb6e4 100644 (file)
--- a/if.lisp
+++ b/if.lisp
@@ -343,7 +343,7 @@ word in dictionary, add it."
   "Tests whether flag2 unsets flag1"\r
   (let ((fl1 (symbol-name flag1))\r
         (fl2 (symbol-name flag2)))\r
-    (and (char= (aref fl2 0) #\~) (string= fl1 (subseq fl2 1)))))\r
+    (and (char= (aref fl2 0) #\~) (string= fl1 fl2 :start 1))))\r
 \r
 (defun combine-flags (flaglist)\r
   "Combine a list of flags into a _set_ of flags"\r
@@ -528,7 +528,7 @@ word in dictionary, add it."
                     (function #'read-property-execute)\r
                     (list #'read-property-list)\r
                     (t #'read-property-other))\r
-             (slot-value obj property) args)))\r
+             (slot-value self property) args)))\r
 \r
 (defmacro declare-rule (&rest args)\r
   "Declare new rules"\r
@@ -682,7 +682,7 @@ word in dictionary, add it."
 \r
 (defun in (obj1 &rest what)\r
   "Tests whether the first object is inside some of the others"\r
-  (some (lambda (x) (eql (parent obj) x)) what))\r
+  (some (lambda (x) (eql (parent obj1) x)) what))\r
 \r
 (defun destroy (obj)\r
   "Destroy the object, like, totally!"\r