comparison lisp/eos/sun-eos-editor.el @ 0:376386a54a3c r19-14

Import from CVS: tag r19-14
author cvs
date Mon, 13 Aug 2007 08:45:50 +0200
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:376386a54a3c
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