annotate etc/emacstool.1 @ 30411:41f228350eca

Got rid of all byte-compiler warnings on Emacs Load ada-xref.el before ada-prj.el, so that the Project menu is created when ada-prj tries to add to it. (ada-activate-keys-for-case): Suppress the characters that are not part of the Ada syntax. Better compatibility with else-mode (ada-adjust-case-interactive): When auto-casing is not active, correctly insert newlines (used to insert only ^M). Prevent the syntax table from being changed in case of an error (or '_' becomes part of a word and some commands are confused). Do nothing if ada-auto-case is nil. (ada-after-keyword-p): Ignore keywords that are also attributes (ada-batch-reformat): Update usage comment (ada-call-from-contextual-menu): New function (ada-case-read-exceptions): Reinitialize the casing exception list first to nil first, so that the casing exception file can be shared. (ada-check-defun-name): Handles "configure" keyword for gnatdist files. (ada-compile-goto-error): Fix regexp used to detect a file:line anywhere in the error message (ada-contextual-menu-last-point): New variable (ada-create-keymap): If the variable delete-key-deletes-forward is t on XEmacs, it means that DEL should delete one character forward. (ada-create-menu): Use :included instead of :visible for XEmacs. New submenu "Options". (ada-end-stmt-re): Correctly indent "select ... then abort" statements. (ada-fill-comment-paragraph): Correctly delete all leading '--' even if they don't match ada-fill-comment-prefix Fix handling of paragraphs on the first or last line of a file. (ada-format-paramlist): Fix handling of default parameter values. (ada-get-body-name): New function. (ada-get-current-indent): Optimized by searchling directly for an existing generic part or a statement outside of it. Handle ada-indent-align-comments when indenting comments Replaced some regexps by testing directly the next character. This results in a huge speedup on some files. New indentation scheme for renames statements. Stop looking for the 'while' or 'for' associated with a 'loop' at the first semicolon encountered. A "return" can also match an anonymous access subprogram declaration. (ada-get-indent-noindent): Ignore strings and comments when looking for the keywords "record" and "private". (ada-goto-matching-decl-start): When matching "if", make sure we are not in fact seeing "end if". Ignore "when" statements except when initial keyword was "begin". Fix handling of nested procedures. Add a recursive call to this function to skip over other 'end' statmts. Fix indentation for "when .. => begin" (ada-in-open-paren-p): Fix indentation for complex boolean expressions, where 'and then', 'or else' and parenthesis statements are mixed up. (ada-in-paramlist-p): Skip comments while searching for the beginning Fix handling of operator declarations. (ada-indent-align-comments): New variable (ada-indent-current): Change the syntax table only in the protected section, so that we are sure it is restored correctly. (ada-indent-on-previous-lines): Use ada-use-indent and ada-with-indent Correctly indent "select ... then" (ada-indent-region): Slight speedup. (ada-indent-renames): New variable. (ada-last-which-function-subprog, ada-last-which-function-line): New variables (ada-looking-at-semi-private): Correctly indent the 'private' keyword when it is the first word in a package declaration. (ada-loose-case-word): Stop searching if at the end of the buffer. (ada-loose-case-word, ada-capitalize-word): Recase the whole word even if point is not initially at the end of the word. (ada-matching-decl-start-re): Add "when". (ada-mode): Add support for abbrev-mode, outline-mode and which-func-mode Override the old find-file.el entry in ff-special-constructs since it is using the obsolete ada-spec-suffix variable (ada-no-auto-case): New function (ada-scan-paramlist): When parsing the argument type, accept spaces (as in "X 'Class", generated by Rational Rose). (ada-other-file-name): No longer loads the other file. (ada-popup-menu): Save and restore the current buffer and cursor position before and after displaying the menu. (ada-search-ignore-complex-boolean): New function. (ada-uncomment-region): Emacs21 already knows how to delete comments not starting in the first column. (ada-use-indent): New variable (ada-which-function): New function. (ada-with-indent): New variable (ada-xemacs): evaluate it at compile time too, so that ada-mode.el can be batch-compiled from the command line.
author Gerd Moellmann <gerd@gnu.org>
date Mon, 24 Jul 2000 11:14:26 +0000
parents 03ddf0b96330
children 1c152bba534b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
25852
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
1 .TH EMACSTOOL 1
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
2 .SH NAME
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
3 .I emacstool
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
4 \- run emacs under Sun windows with function-key and mouse support.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
5 .SH SYNOPSIS
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
6 .I emacstool
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
7 [{window_args} {-rc run_command_path} args ... ]
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
8 .SH TYPICAL USAGE
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
9 In ~/.suntools or ~/.rootmenu include a line like this:
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
10 .br
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
11 "Emacstool" emacstool -WI emacs.icon -f emacstool-init
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
12 .SH DESCRIPTION
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
13 .B Emacstool
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
14 creates a SunView frame and a tty subwindow within which mouse events
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
15 and function keys are translated to ASCII sequences which Emacs can
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
16 parse. The translated input events are sent to the process running in
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
17 the tty subwindow, which is typically GNU Emacs. Emacstool thereby
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
18 allows GNU Emacs users to make full use of the mouse and function keys.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
19 GNU Emacs can be loaded with functions to interpret the mouse and
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
20 function-key events to make a truly fine screen oriented editor for
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
21 the Sun Workstation.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
22 .PP
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
23 (Note that GNU Emacs has a special interface to the X window system as
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
24 well. The X window system has many technical advantages, it is an
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
25 industry standard, and it is also free software. The Free Software
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
26 Foundation urges you to try X windows, and distributes a free copy of
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
27 X on Emacs distribution tapes.)
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
28 .PP
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
29 Function keys are translated to a sequence of the form
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
30 `^X*[a-o][lrt]'. The last character is `l', `r', or `t' corresponding
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
31 to whether the key is among the Left, Right, or Top function keys.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
32 The third character indicates which button of the group
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
33 was pressed. Thus, the function key in the lower right corner will
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
34 transmit the sequence `^X*or'. In addition, the [lrt] is affected by
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
35 the Control, Meta, and Shift keys. Unshifted Control keys will be
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
36 non-alphabetic: C-l is [,], C-r is [2], C-t is [4].
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
37 .PP
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
38 Mouse buttons are encoded as `^X^@([124] x y)\\n'. ^X^@ is the
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
39 standard GNU Emacs mouse event prefix, it is followed by a list
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
40 indicating the button pressed and the character row and column of the
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
41 point in the window where the mouse cursor is, and followed by a
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
42 newline character. In GNU Emacs, the ^X^@ dispatches to a
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
43 mouse event handler which then reads the following list.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
44 .SH OPTIONS
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
45 .B Emacstool
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
46 supports all the standard window arguments, including font and icon
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
47 specifiers.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
48 .PP
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
49 By default, Emacstool runs the program
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
50 .I emacs
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
51 in the created subwindow.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
52 The value of the environment variable
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
53 .I EMACSTOOL
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
54 can be used to override this if your version of
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
55 .B Emacs
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
56 is not accessible on your search path by the name
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
57 .I Emacs.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
58 In addition, the run command can be set by the
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
59 .I pathname
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
60 following the last occurrence of the
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
61 .I \-rc
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
62 flag.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
63 This is convenient for using Emacstool to run on remote machines.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
64 .PP
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
65 All other command line arguments not used by the window system are passed
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
66 as arguments to the program that runs in the Emacstool window.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
67 .PP
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
68 For example:
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
69 .PP
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
70 local% (emacstool -rc rlogin remote -8 &)&
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
71 .PP
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
72 will create an Emacstool window logged in to a machine named
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
73 .I remote.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
74 If Emacs is run from this window,
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
75 Emacstool will encode mouse and function keys, and send them to rlogin.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
76 If Emacs is run from this shell on the remote machine, it will see
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
77 the mouse and function keys properly.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
78 However, since the remote host does not have access to the screen,
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
79 the cursor cannot be changed, menus will not appear, and the selection
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
80 buffer (STUFF) is limited.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
81 .SH Using With GNU Emacs:
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
82 The GNU Emacs files
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
83 lisp/term/sun.el,
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
84 lisp/sun-mouse.el,
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
85 lisp/sun-fns.el,
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
86 and
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
87 src/sunfns.c
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
88 provide emacs support for the Emacstool and function keys.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
89 Emacstool will automatically set the TERM environment variable to be "sun"
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
90 and unset the environment variable TERMCAP. That is, these variables will
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
91 not be inherited from the shell that starts Emacstool.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
92 Since the terminal type is
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
93 .I SUN
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
94 (that is, the environment variable TERM is set to
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
95 .I SUN),
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
96 Emacs will automatically load the file lisp/term/sun.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
97 This, in turn, will ensure that sun-mouse.el is autoloaded when any mouse
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
98 events are detected. It is suggested that
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
99 .I sun-mouse
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
100 and
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
101 .I sun-fns
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
102 be loaded in your site-init.el file, so that they will always be loaded
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
103 when running on a Sun workstation.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
104 .PP
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
105 In addition, Emacstool sets the environment variable IN_EMACSTOOL = "t".
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
106 Lisp code in your ~/.emacs can use (getenv "IN_EMACSTOOL")
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
107 to determine whether to do Emacstool specific initialization.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
108 Sun.el uses this to automatically call emacstool-init (getenv "IN_EMACSTOOL")
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
109 is defined.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
110 .PP
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
111 The file src/sunfns.c defines several useful functions for emacs on
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
112 the Sun. Among these are procedures to pop-up SunView
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
113 .I menus,
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
114 put and get from the SunView
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
115 .I STUFF
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
116 buffer, and a procedure for changing the cursor
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
117 .I icon.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
118 If you want to define or edit cursor icons,
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
119 there is a rudimentary mouse driven icon editor in the file
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
120 lisp/sun-cursors.el. Try invoking (sc:edit-cursor)
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
121 .SH BUGS
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
122 It takes a few milliseconds to create a menu before it pops up.
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
123 .SH ENVIRONMENT VARIABLES
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
124 EMACSTOOL
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
125 IN_EMACSTOOL
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
126 TERM
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
127 TERMCAP
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
128 .SH FILES
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
129 .DT
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
130 emacs
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
131 .SH "SEE ALSO"
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
132 emacs(1)
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
133 .../etc/SUN-SUPPORT
03ddf0b96330 #CENSORSHIP
Dave Love <fx@gnu.org>
parents:
diff changeset
134 .../lisp/term/sun.el