[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Erbot-cvs] Changes to erbot/erbot.el
From: |
D . Goel |
Subject: |
[Erbot-cvs] Changes to erbot/erbot.el |
Date: |
Tue, 29 Mar 2005 14:14:27 -0500 |
Index: erbot/erbot.el
diff -u erbot/erbot.el:1.27 erbot/erbot.el:1.28
--- erbot/erbot.el:1.27 Sat Jan 8 17:53:08 2005
+++ erbot/erbot.el Tue Mar 29 19:14:26 2005
@@ -1,5 +1,5 @@
;;; erbot.el --- Another robot for ERC.
-;; Time-stamp: <2005-01-08 12:52:18 deego>
+;; Time-stamp: <2005-03-29 13:59:29 deego>
;; Emacs Lisp Archive entry
;; Filename: erbot.el
;; Package: erbot
@@ -654,6 +654,11 @@
lines))))))
+(defcustom erbot-setf-p nil
+ "If you want your bot to allow setf, set this symbol to non-nil at
+the beginning of your .emacs")
+
+
;;;###autoload
(defun erbot-install ()
"Run this function AFTER loading all the files..."
@@ -674,10 +679,35 @@
(add-hook 'erc-server-376-hook
'erbot-autojoin-channels))
)
- (erbot-install-symbols))
+ (erbot-install-symbols)
+ (when erbot-setf-p (erbot-install-setf))
+ )
+(defun erbot-install-setf ()
+ (interactive)
+ (defalias 'fs-setf 'setf)
+ (require 'cl)
+ (let*
+ ((syms
+ (apropos-internal "" (lambda (a) (get a 'setf-method))))
+ (fssyms
+ (mapcar
+ (lambda (a) (intern (format "fs-%s" a)))
+ syms))
+ (fsisyms
+ (mapcar
+ (lambda (a) (intern (format "fsi-%s" a)))
+ syms)))
+ (mapcar*
+ (lambda (a b c)
+ (let ((foo (get a 'setf-method)))
+ (put b 'setf-method foo)
+ (put c 'setf-method foo)))
+ syms fssyms fsisyms)))
+
+
(defun erbot-install-symbols ()