annotate tests/tooltalk/simple.el @ 5916:1152e0091f8c

Avoid confusion about ELC vs. source file encoding, #'load, #'load-internal. lisp/ChangeLog addition: 2015-06-03 Aidan Kehoe <kehoea@parhasard.net> * code-files.el (load): Revise this to respect load-ignore-out-of-date-elc-files, rather than leaving that to #'load-internal. Avoids a corner case where the source and the compiled file have different, incompatible encodings. Move the call to #'substitute-in-file-name here. No longer check for a zero-length filename, since #'load-internal no longer chokes on same and errors correctly. src/ChangeLog addition: 2015-06-03 Aidan Kehoe <kehoea@parhasard.net> * lread.c (Fload_internal): Delegate calling the handler and #'substitute-in-file-name to #'load. Error correctly with a zero-length file name, instead of giving a bus error on my machine. Delegate the check for out-of-date ELC files to #'load, avoiding a bug where the encoding of the ELC file and the source file differed. * lread.c (PRINT_LOADING_MESSAGE_1): This is simplified, now we no longer have to talk about out-of-date ELC files. tests/ChangeLog addition: 2015-06-03 Aidan Kehoe <kehoea@parhasard.net> * automated/file-tests.el: Gross sanity check for #'load and #'load-internal with a zero-length FILE, something that crashed until today.
author Aidan Kehoe <kehoea@parhasard.net>
date Wed, 03 Jun 2015 20:13:07 +0100
parents 9fc91aa3a927
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
1 ;;; Example of Sending Messages
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
2
5408
9fc91aa3a927 Converted tooltalk to GPLv3 according to GPLv3 source survey analysis.
Mats Lidell <matsl@xemacs.org>
parents: 70
diff changeset
3 ;; Copyright (C) 1995 Sun Microsystems, Inc
9fc91aa3a927 Converted tooltalk to GPLv3 according to GPLv3 source survey analysis.
Mats Lidell <matsl@xemacs.org>
parents: 70
diff changeset
4
9fc91aa3a927 Converted tooltalk to GPLv3 according to GPLv3 source survey analysis.
Mats Lidell <matsl@xemacs.org>
parents: 70
diff changeset
5 ;; Author: Vladimir Ivanovic <vladimir@Eng.Sun.COM>
9fc91aa3a927 Converted tooltalk to GPLv3 according to GPLv3 source survey analysis.
Mats Lidell <matsl@xemacs.org>
parents: 70
diff changeset
6
9fc91aa3a927 Converted tooltalk to GPLv3 according to GPLv3 source survey analysis.
Mats Lidell <matsl@xemacs.org>
parents: 70
diff changeset
7 ;; This file is part of XEmacs.
9fc91aa3a927 Converted tooltalk to GPLv3 according to GPLv3 source survey analysis.
Mats Lidell <matsl@xemacs.org>
parents: 70
diff changeset
8
9fc91aa3a927 Converted tooltalk to GPLv3 according to GPLv3 source survey analysis.
Mats Lidell <matsl@xemacs.org>
parents: 70
diff changeset
9 ;; XEmacs is free software: you can redistribute it and/or modify it
9fc91aa3a927 Converted tooltalk to GPLv3 according to GPLv3 source survey analysis.
Mats Lidell <matsl@xemacs.org>
parents: 70
diff changeset
10 ;; under the terms of the GNU General Public License as published by the
9fc91aa3a927 Converted tooltalk to GPLv3 according to GPLv3 source survey analysis.
Mats Lidell <matsl@xemacs.org>
parents: 70
diff changeset
11 ;; Free Software Foundation, either version 3 of the License, or (at your
9fc91aa3a927 Converted tooltalk to GPLv3 according to GPLv3 source survey analysis.
Mats Lidell <matsl@xemacs.org>
parents: 70
diff changeset
12 ;; option) any later version.
9fc91aa3a927 Converted tooltalk to GPLv3 according to GPLv3 source survey analysis.
Mats Lidell <matsl@xemacs.org>
parents: 70
diff changeset
13
9fc91aa3a927 Converted tooltalk to GPLv3 according to GPLv3 source survey analysis.
Mats Lidell <matsl@xemacs.org>
parents: 70
diff changeset
14 ;; XEmacs is distributed in the hope that it will be useful, but WITHOUT
9fc91aa3a927 Converted tooltalk to GPLv3 according to GPLv3 source survey analysis.
Mats Lidell <matsl@xemacs.org>
parents: 70
diff changeset
15 ;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
9fc91aa3a927 Converted tooltalk to GPLv3 according to GPLv3 source survey analysis.
Mats Lidell <matsl@xemacs.org>
parents: 70
diff changeset
16 ;; FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
9fc91aa3a927 Converted tooltalk to GPLv3 according to GPLv3 source survey analysis.
Mats Lidell <matsl@xemacs.org>
parents: 70
diff changeset
17 ;; for more details.
9fc91aa3a927 Converted tooltalk to GPLv3 according to GPLv3 source survey analysis.
Mats Lidell <matsl@xemacs.org>
parents: 70
diff changeset
18
9fc91aa3a927 Converted tooltalk to GPLv3 according to GPLv3 source survey analysis.
Mats Lidell <matsl@xemacs.org>
parents: 70
diff changeset
19 ;; You should have received a copy of the GNU General Public License
9fc91aa3a927 Converted tooltalk to GPLv3 according to GPLv3 source survey analysis.
Mats Lidell <matsl@xemacs.org>
parents: 70
diff changeset
20 ;; along with XEmacs. If not, see <http://www.gnu.org/licenses/>.
9fc91aa3a927 Converted tooltalk to GPLv3 according to GPLv3 source survey analysis.
Mats Lidell <matsl@xemacs.org>
parents: 70
diff changeset
21
70
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
22 (defun tooltalk-random-query-handler (msg pat)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
23 (let ((state (get-tooltalk-message-attribute msg 'state)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
24 (cond
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
25 ((eq state 'TT_HANDLED)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
26 (message (get-tooltalk-message-attribute msg arg_val 0)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
27 ((memq state '(TT_FAILED TT_REJECTED))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
28 (message "Random query turns up nothing")))))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
29
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
30 (setq random-query-message
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
31 '( class TT_REQUEST
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
32 scope TT_SESSION
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
33 address TT_PROCEDURE
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
34 op "random-query"
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
35 args ((TT_INOUT "?" "string"))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
36 callback tooltalk-random-query-handler))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
37
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
38 (let ((m (make-tooltalk-message random-query-message)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
39 (send-tooltalk-message m))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
40
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
41 ;;; Example of Receiving Messaegs
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
42
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
43 (defun tooltalk-display-string-handler (msg pat)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
44 (return-tooltalk-message msg 'reply)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
45 (describe-tooltalk-message msg)
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
46 (message (get-tooltalk-message-attribute msg 'arg_val 0)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
47
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
48 (setq display-string-pattern
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
49 '(category TT_HANDLE
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
50 scope TT_SESSION
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
51 op "emacs-eval"
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
52 args ((TT_IN "filename" "string"))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
53 callback tooltalk-display-string-handler))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
54
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
55 (let ((p (make-tooltalk-pattern display-string-pattern)))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
56 (register-tooltalk-pattern p))
131b0175ea99 Import from CVS: tag r20-0b30
cvs
parents:
diff changeset
57