0
|
1 ;;; sun-eos-editor.el --- Implements the XEmacs/SPARCworks editor protocol
|
|
2
|
|
3 ;; Copyright (C) 1995 Sun Microsystems, Inc.
|
|
4
|
|
5 ;; Maintainer: Eduardo Pelegri-Llopart <eduardo.pelegri-llopart@Eng.Sun.COM>
|
|
6 ;; Author: Eduardo Pelegri-Llopart <eduardo.pelegri-llopart@Eng.Sun.COM>
|
|
7
|
|
8 ;; Keywords: SPARCworks EOS Era on SPARCworks editor
|
|
9
|
|
10 ;;; Commentary:
|
|
11
|
|
12 ;; Please send feedback to eduardo.pelegri-llopart@eng.sun.com
|
|
13
|
|
14 ;;; Code:
|
|
15
|
|
16 (require 'eos-common "sun-eos-common")
|
|
17
|
|
18 ;; ===============
|
|
19 ;; Editor protocol
|
|
20 ;;
|
|
21 ;; message is
|
|
22 ;; SPRO_Visit_File CONTEXT_UID filename lineno center==0
|
|
23
|
|
24 (defvar eos::visit-file-pattern)
|
|
25 (defvar eos::get-src-line-pattern)
|
|
26
|
|
27 (defun eos::editor-startup ()
|
|
28 ;; Actions to do at startup time for eos-editor
|
|
29 (setq eos::visit-file-pattern
|
|
30 (eos::create-visit-file-pattern))
|
|
31 (setq eos::get-src-line-pattern
|
|
32 (eos::create-get-src-line-pattern))
|
|
33 (eos::register-get-src-line-pattern)
|
|
34 )
|
|
35
|
|
36 (defun eos::visit-file-callback (msg pat)
|
|
37 ;; A callback for a SPRO_Visit_File message
|
|
38 ;; really should be discarded in the pattern
|
|
39 (let* ((filename
|
|
40 (get-tooltalk-message-attribute msg 'arg_val 1))
|
|
41 (lineno-dot
|
|
42 (read
|
|
43 (get-tooltalk-message-attribute msg 'arg_ival 2)))
|
|
44 )
|
|
45 (if (null (eos::find-line filename lineno-dot 'debugger-visit))
|
|
46 (message "No frame to select"))
|
|
47 (return-tooltalk-message msg)
|
|
48 ))
|
|
49
|
|
50 (defun eos::create-visit-file-pattern ()
|
|
51 ;; Create Visit File pattern
|
|
52 (let* ((pattern-desc '(category TT_HANDLE
|
|
53 scope TT_SESSION
|
|
54 class TT_REQUEST
|
|
55 op "SPRO_Visit_File"
|
|
56 callback eos::visit-file-callback))
|
|
57 (pattern (make-tooltalk-pattern pattern-desc))
|
|
58 )
|
|
59 pattern
|
|
60 ))
|
|
61
|
|
62 (defun eos::register-visit-file-pattern ()
|
|
63 ;; Register Visit File pattern
|
|
64 (register-tooltalk-pattern eos::visit-file-pattern))
|
|
65
|
|
66 (defun eos::unregister-visit-file-pattern ()
|
|
67 ;; Unregister Visit File pattern
|
|
68 (unregister-tooltalk-pattern eos::visit-file-pattern))
|
|
69
|
|
70 ;;
|
|
71 ;; ====================
|
|
72 ;;
|
|
73 ;; Auxiliary TT message to get source and lineno.
|
|
74 ;;
|
|
75 ;; message is
|
|
76 ;; SPRO_Get_Src_Line CONTEXT_UID (INOUT filename) (INOUT lineno)
|
|
77
|
|
78 ;;
|
|
79
|
|
80 (defun eos::get-src-line-callback (msg pat)
|
|
81 ;; A callback for a SPRO_Get_Src_Line message
|
|
82 ;; really should be discarded in the pattern
|
|
83 (let* ((filename
|
|
84 (buffer-file-name))
|
|
85 (lineno
|
|
86 (format "%d" (eos::line-at (point)))))
|
|
87 (set-tooltalk-message-attribute filename msg 'arg_val 1)
|
|
88 (set-tooltalk-message-attribute lineno msg 'arg_val 2)
|
|
89 (return-tooltalk-message msg)
|
|
90 ))
|
|
91
|
|
92 (defun eos::create-get-src-line-pattern ()
|
|
93 ;; Create a pattern to get filename and lineno
|
|
94 (let* ((pattern-desc '(category TT_HANDLE
|
|
95 scope TT_SESSION
|
|
96 class TT_REQUEST
|
|
97 op "SPRO_Get_Src_Line"
|
|
98 callback eos::get-src-line-callback))
|
|
99 (pattern (make-tooltalk-pattern pattern-desc))
|
|
100 )
|
|
101 pattern
|
|
102 ))
|
|
103
|
|
104 (defun eos::register-get-src-line-pattern ()
|
|
105 ;; Register Get Src Line pattern
|
|
106 (register-tooltalk-pattern eos::get-src-line-pattern))
|
|
107
|
|
108 (defun eos::unregister-get-src-line-pattern ()
|
|
109 ;; Unregister Get Src Line pattern
|
|
110 (unregister-tooltalk-pattern eos::get-src-line-pattern))
|
|
111
|
|
112 (provide 'eos-editor)
|
|
113
|
|
114 ;;; sun-eos-debugger.el ends here
|