Mercurial > hg > xemacs-beta
annotate tests/tooltalk/simple.el @ 5303:4c4085177ca5
Fix some bugs in fns.c, discovered in passing while doing other work.
2010-11-14 Aidan Kehoe <kehoea@parhasard.net>
* fns.c (Fnreverse):
Check that non-list sequences are writable from Lisp before
modifying them. (There's an argument that we should do this for
list sequences too, but for the moment other code (e.g. #'setcar)
doesn't.)
(mapcarX): Initialise lisp_vals_staging, lisp_vals_type
explicitly, for the sake of compile warnings. Check if
lisp_vals_staging is non-NULL when deciding whether to replace a
string's range.
(Fsome): Cross-reference to #'find-if in the doc string for this
function.
(Freduce): GCPRO accum in this function, when a key argument is
specicified it can be silently garbage-collected. When deciding
whether to iterate across a string, check whether the cursor
exceeds the byte len; while iterating, increment an integer
counter. Don't ABORT() if check_sequence_range() returns when
handed a suspicious sequence; it is legal to supply the length of
SEQUENCE as the :end keyword value, and this will provoke our
suspicions, legitimately enough. (Problems with this function
revealed by Paul Dietz' ANSI test suite, thank you Paul Dietz.)
(Freplace): Check list sequence lengths using the arguments, not
the conses we're currently looking at, thank you Paul Dietz.
author | Aidan Kehoe <kehoea@parhasard.net> |
---|---|
date | Sun, 14 Nov 2010 14:54:09 +0000 |
parents | 131b0175ea99 |
children | 9fc91aa3a927 |
rev | line source |
---|---|
70 | 1 ;;; Example of Sending Messages |
2 | |
3 (defun tooltalk-random-query-handler (msg pat) | |
4 (let ((state (get-tooltalk-message-attribute msg 'state))) | |
5 (cond | |
6 ((eq state 'TT_HANDLED) | |
7 (message (get-tooltalk-message-attribute msg arg_val 0))) | |
8 ((memq state '(TT_FAILED TT_REJECTED)) | |
9 (message "Random query turns up nothing"))))) | |
10 | |
11 (setq random-query-message | |
12 '( class TT_REQUEST | |
13 scope TT_SESSION | |
14 address TT_PROCEDURE | |
15 op "random-query" | |
16 args ((TT_INOUT "?" "string")) | |
17 callback tooltalk-random-query-handler)) | |
18 | |
19 (let ((m (make-tooltalk-message random-query-message))) | |
20 (send-tooltalk-message m)) | |
21 | |
22 ;;; Example of Receiving Messaegs | |
23 | |
24 (defun tooltalk-display-string-handler (msg pat) | |
25 (return-tooltalk-message msg 'reply) | |
26 (describe-tooltalk-message msg) | |
27 (message (get-tooltalk-message-attribute msg 'arg_val 0))) | |
28 | |
29 (setq display-string-pattern | |
30 '(category TT_HANDLE | |
31 scope TT_SESSION | |
32 op "emacs-eval" | |
33 args ((TT_IN "filename" "string")) | |
34 callback tooltalk-display-string-handler)) | |
35 | |
36 (let ((p (make-tooltalk-pattern display-string-pattern))) | |
37 (register-tooltalk-pattern p)) | |
38 |