Mercurial > hg > xemacs-beta
view tests/tooltalk/simple.el @ 4997:8800b5350a13
Move #'some, #'every to C, implementing them with mapcarX.
src/ChangeLog addition:
2010-02-03 Aidan Kehoe <kehoea@parhasard.net>
* fns.c (mapcarX):
Accept a new argument, indicating whether the function is being
called from #'some or #'every. Implement it.
Discard any multiple values where that is appropriate.
(Fmapconcat, FmapcarX, Fmapvector, Fmapcan, Fmapc, Fmap)
(Fmap_into):
Pass the new flag to mapcarX.
(Fsome, Fevery): Move these functions here from cl-extra.el;
implement them in terms of mapcarX.
(maplist): Discard multiple values where appropriate.
lisp/ChangeLog addition:
2010-02-03 Aidan Kehoe <kehoea@parhasard.net>
* cl-extra.el (some, every):
Move these functions to C.
* cl-macs.el (notany, notevery): Add compiler macros for these
functions, no longer proclaim them inline (which would involve
specbinding that's not necessary with the compiler macros).
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Wed, 03 Feb 2010 20:26:47 +0000 |
parents | 131b0175ea99 |
children | 9fc91aa3a927 |
line wrap: on
line source
;;; Example of Sending Messages (defun tooltalk-random-query-handler (msg pat) (let ((state (get-tooltalk-message-attribute msg 'state))) (cond ((eq state 'TT_HANDLED) (message (get-tooltalk-message-attribute msg arg_val 0))) ((memq state '(TT_FAILED TT_REJECTED)) (message "Random query turns up nothing"))))) (setq random-query-message '( class TT_REQUEST scope TT_SESSION address TT_PROCEDURE op "random-query" args ((TT_INOUT "?" "string")) callback tooltalk-random-query-handler)) (let ((m (make-tooltalk-message random-query-message))) (send-tooltalk-message m)) ;;; Example of Receiving Messaegs (defun tooltalk-display-string-handler (msg pat) (return-tooltalk-message msg 'reply) (describe-tooltalk-message msg) (message (get-tooltalk-message-attribute msg 'arg_val 0))) (setq display-string-pattern '(category TT_HANDLE scope TT_SESSION op "emacs-eval" args ((TT_IN "filename" "string")) callback tooltalk-display-string-handler)) (let ((p (make-tooltalk-pattern display-string-pattern))) (register-tooltalk-pattern p))