Synch up with liece-2_0.
[elisp/liece.git] / lisp / liece-clfns.el
index 28e6f7e..baf5ace 100644 (file)
@@ -33,8 +33,9 @@
 (defun liece-clfns-subr-fboundp (symbol)
   "Return t if SYMBOL's function definition is a basic function."
   (and (fboundp symbol)
-       (or (subrp (symbol-function symbol-function))
-          (string-equal (symbol-file symbol) "subr"))))
+       (or (subrp (symbol-function symbol))
+          (and (fboundp 'symbol-file)
+               (string-equal (symbol-file symbol) "subr")))))
 
 (if (featurep 'xemacs)
     nil
             (pop x))
           x))))
 
+  (define-compiler-macro remq (&whole form elt list)
+    (if (liece-clfns-subr-fboundp 'remq)
+       form
+      `(let ((elt ,elt)
+            (list ,list))
+        (if (memq elt list)
+            (delq elt (copy-sequence list))
+          list))))
+
   (define-compiler-macro member-if (&whole form pred list)
     (if (liece-clfns-subr-fboundp 'member-if)
        form