|
弄了好几天,弄出来这么个丑patch,见笑了。有兴趣的朋友帮忙测试一下效果
吧 
,----[ 附上一些俺的erc配置,加入到.emacs里面就可以了 ]
| ;; Erc settings
| (require 'erc-auto)
| (setq-default erc-auto-query 'buffer
| erc-autojoin-channels-alist '(("linuxfire.dhis.org" "#linuxfire"))
| erc-away-nickname "FKtPp[Away]"
| erc-current-nick-highlight-type 'nick-or-keyword
| erc-default-coding-system '(chinese-iso-8bit . chinese-iso-8bit)
| erc-email-userid "fktpp"
| erc-interpret-mirc-color t
| erc-modules '(autojoin
| button
| completion
| fill
| match
| netsplit
| pcomplete
| ring
| stamp
| track)
| erc-nick '("FKtPp[erc]" "Yamazak")
| erc-paranoid t
| erc-port 6667
| erc-prompt-for-password t
| erc-server "linuxfire.dhis.org")
`----
还有,关于这个erc-auto.el在make的时候,可能不会自动更新,至少在俺这里
是这样的。估计是因为那个Makefile的问题。
,----[ 这个地方是俺对那个Makefile的一点修改,根据自己的情况自己改一下吧 ]
| erc-auto.el: erc-auto.in $(SOURCE)
| # cp erc-auto.in erc-auto.el
| # rm -f erc-auto.elc
| $(EMACS) --no-init-file --no-site-file -batch \
| -l e:/programs/emacs-21.3/site-lisp/erc-4.0/erc-auto \
| -f generate-autoloads \
| e:/programs/emacs-21.3/site-lisp/erc-4.0/erc-auto.el .
`----
还有一个从erc-auto.el学来的的函数。如果你通过修改Makefile的方式还不能
更新autoloads,那就用这个吧(也需要改改,抱歉,能力所不能及 -_- 太高级
的俺还不会写)。可以从这里弄到:
http://linuxfire.dhis.org/~fktpp/fktpp-autoloads.el
,----[ decoding.diff ]
| --- erc-backend.el.orig 2004-09-09 00:27:22.618782400 +0800
| +++ erc-backend.el 2004-09-24 23:32:10.290606400 +0800
| @@ -151,8 +151,45 @@
| (setf (erc-response.command-args msg)
| (nreverse (erc-response.command-args msg)))
|
| + (erc-decode-parsed-server-response msg)
| +
| (erc-handle-parsed-server-response proc msg)))))
|
| +(defun erc-decode-parsed-server-response (parsed-response)
| + "Decode a pre-parsed PARSED-RESPONSE before it can be handled.
| +
| +Decode `erc-response' acroding the car of it's `command-args' or if
| +that is not a channel, use the `erc-default-coding-system' to
| +decoding."
| + (let* ((args (erc-response.command-args parsed-response))
| + (first-arg (car args))
| + (matchp (string-match "^[#&].*" first-arg))
| + (decode-target (if matchp
| + (erc-decode-string-from-target first-arg nil)
| + nil))
| + (decoded-args ()))
| + (setf (erc-response.unparsed parsed-response)
| + (erc-decode-string-from-target
| + (erc-response.unparsed parsed-response)
| + decode-target))
| + (setf (erc-response.sender parsed-response)
| + (erc-decode-string-from-target
| + (erc-response.sender parsed-response)
| + decode-target))
| + (setf (erc-response.command parsed-response)
| + (erc-decode-string-from-target
| + (erc-response.command parsed-response)
| + decode-target))
| + (dolist (arg args nil)
| + (add-to-list 'decoded-args
| + (erc-decode-string-from-target arg decode-target)
| + t))
| + (setf (erc-response.command-args parsed-response) decoded-args)
| + (setf (erc-response.contents parsed-response)
| + (erc-decode-string-from-target
| + (erc-response.contents parsed-response)
| + decode-target))))
| +
| ;; (defun erc-parse-server-response (process response)
| ;; " arse a server PROCESS's IRC RESPONSE."
| ;; ;; FIXME: this function doesn't do the same as our original
| @@ -604,8 +641,9 @@
| (privp (erc-current-nick-p tgt))
| s buffer
| fnick
| - (msg (erc-decode-string-from-target msg
| - (if privp sender-spec tgt))))
| + ;; (msg (erc-decode-string-from-target msg
| +;; (if privp sender-spec tgt)))
| + )
| (setf (erc-response.contents parsed) msg)
| (setq buffer (erc-get-buffer (if privp nick tgt) proc))
| (when buffer
| @@ -667,8 +705,9 @@
| (define-erc-response-handler (TOPIC)
| nil nil
| (let* ((ch (first (erc-response.command-args parsed)))
| - (topic (erc-trim-string (erc-decode-string-from-target
| - (erc-response.contents parsed) ch)))
| + (topic (erc-trim-string ;; (erc-decode-string-from-target
| + (erc-response.contents parsed) ;; ch)
| + ))
| (time (format-time-string "%T %m/%d/%y" (current-time))))
| (multiple-value-bind (nick login host)
| (erc-parse-user (erc-response.sender parsed))
`----
faint, 俺可怜的空格兄弟们 算了,如果不能用的话。到这里http://linuxfire.dhis.org/~fktpp/decoding.diff 下载吧。这个patch是根据最新的CVS erc $version 1.701$做的。erc-backend.el的版本应该是$version 1.14$,不过前面的一两个版本应该也能用。 |
|