;ELC ;;; compiled by cthomp@willow on Thu Oct 28 19:09:29 1993 ;;; from file /era/era-update/editor/lisp/tooltalk/tooltalk-macros.el ;;; emacs version 19.9 Lucid. ;;; bytecomp version 2.18; 28-aug-93. ;;; optimization is on. ;;; this file uses opcodes which do not exist in Emacs 18. (if (and (boundp 'emacs-version) (or (and (boundp 'epoch::version) epoch::version) (string-lessp emacs-version "19"))) (error "This file was compiled for Emacs 19.")) (fset 'destructuring-bind-tooltalk-message '(macro . #[(variables args-count message &rest body) "\n  GÇÉ\nÉ É É É Ï ÐEDB «Ö @\n A\nÉ=«‡Tªi\n<«\n@ \nA@ ª‡\n Ñ TÏ  Òš«ƒÓªÔF  ÕÖ E EDBª'ןD¤.\n‡" [variables var-list args-count nargs message msg length -1 n nil var-item var type request bindings get-tooltalk-message-attribute 'args_count "string" "int" 'arg_ival 'arg_val if < let* body] 5 "\ arglist: (variables args-count message &rest body) Binds VARIABLES to the ARG_VALs and ARG_IVALs of MESSAGE, starting from N = 0, and executes BODY in that context. Binds actual number of message args to ARGS-COUNT. VARIABLES is a list of local variables to bind. Each item in VARIABLES is either nil, a symbol, or a list of the form: (symbol type) If the item is nil, the nth ARG_VAL or ARG_IVAL of MESSAGE is skipped. If the item is a symbol, the nth ARG_VAL of MESSAGE is bound. If the item is a list If type = \"int\" the nth ARG_IVAL of MESSAGE is bound, otherwise the nth ARG_VAL of MESSAGE is bound. If there are more items than actual arguments in MESSAGE, the extra items are bound to nil. For example, (destructuring-bind-tooltalk-message (a (b \"int\") nil d) foo msg x y z) expands to (let* ((foo (get-tooltalk-message-attribute msg 'args_count)) (a (if (< 0 foo) (get-tooltalk-message-attribute msg 'arg_val 0))) (b (if (< 1 foo) (get-tooltalk-message-attribute msg 'arg_val 1))) (d (if (< 3 foo) (get-tooltalk-message-attribute msg 'arg_val 3)))) x y z) See GET-TOOLTALK-MESSAGE-ATTRIBUTE for more information. "]))