|
|
1.1 ! root 1: The interface between GNU Emacs and Sun windows consists of the program ! 2: etc/emacstool, the Lisp programs lisp/sun-*.el and lisp/term/sun.el, ! 3: and the C source file src/sunfns.c. It is documented with a man page, ! 4: etc/emacstool.1. ! 5: ! 6: To enable use of these files and programs, define the configuration ! 7: switch HAVE_SUN_WINDOWS in src/config.h before compiling Emacs. ! 8: The definition of HAVE_SUN_WINDOWS must precede the #include m-sun3.h ! 9: or #include m-sun4.h. ! 10: If you must change PURESIZE, do so after the #include m-sun3.h ! 11: ! 12: This software is based on SunView for Sun UNIX 4.2 Release 3.2, ! 13: and will not work "as is" on previous releases, eg 3.0 or 3.1. ! 14: ! 15: Using Emacstool with GNU Emacs: ! 16: ! 17: The GNU Emacs files lisp/term/sun.el, lisp/sun-mouse.el, ! 18: lisp/sun-fns.el, and src/sunfns.c provide emacs support for the ! 19: Emacstool and function keys. If your terminal type is SUN (that is, ! 20: if your environment variable TERM is set to SUN), then Emacs will ! 21: automatically load the file lisp/term/sun.el. This, in turn, will ! 22: ensure that sun-mouse.el is autoloaded when any mouse events are ! 23: detected. It is suggested that sun-mouse and sun-fns be ! 24: included in your site-init.el file, so that they will always be loaded ! 25: when running on a Sun workstation. [Increase PURESIZE to 154000]. ! 26: ! 27: Support for the Sun function keys requires disconnecting the standard ! 28: Emacs command Meta-[. Therefore, the function keys are supported only ! 29: if you do (setq sun-esc-bracket t) in your .emacs file. ! 30: ! 31: The file src/sunfns.c defines several useful functions for emacs on ! 32: the Sun. Among these are procedures to pop-up SunView menus, put and ! 33: get from the SunView selection [STUFF] buffer, and a procedure for ! 34: changing the cursor icon. If you want to define cursor icons, try ! 35: using the functions in lisp/sun-cursors.el. ! 36: ! 37: The file lisp/sun-mouse.el includes a mass of software for defining ! 38: bindings for mouse events. Any function can be called or any form ! 39: evaluated as a result of a mouse event. If you want a pop-up menu, ! 40: your function can call sun-menu-evaluate. This will bring up a ! 41: SunView walking menu of your choice. ! 42: ! 43: Use the macro (defmenu menu-name &rest menu-items) to define menu ! 44: objects. Each menu item is a cons of ("string" . VALUE), VALUE is ! 45: evaluated when the string item is picked. If VALUE is a menu, then a ! 46: pullright item is created. ! 47: ! 48: This version also includes support for copying to and from the ! 49: sun-windows "stuff" selection. The keyboard bindings defined in ! 50: lisp/sun-fns.el let you move the current region to the "STUFF" ! 51: selection and vice versa. Just set point with the left button, set ! 52: mark with the middle button, (the region is automatically copied to ! 53: "STUFF") then switch to a shelltool, and "Stuff" will work. Going the ! 54: other way, the main right button menu contains a "Stuff Selection" ! 55: command that works just like in shelltool. [The Get and Put function ! 56: keys are also assigned to these functions, so you don't need the mouse ! 57: or even emacstool to make this work.] ! 58: ! 59: Until someone write code to read the textsw "Selection Shelf", it is ! 60: not possible to copy directly from a textsw to emacs, you must go through ! 61: the textsw "STUFF" selection. ! 62: ! 63: The Scroll-bar region is not a SunView scrollbar. It really should ! 64: be called the "Right-Margin" region. The scroll bar region is basically ! 65: the rightmost five columns (see documentation on variable scrollbar-width). ! 66: Mouse hits in this region can have special bindings, currently those binding ! 67: effect scrolling of the window, and so are refered to as the "Scroll-bar" ! 68: region. ! 69: ! 70: For information on what mouse bindings are in effect, use the command ! 71: M-x Describe-mouse-bindings, or the quick pop-up menu item "Mouse-Help". ! 72: ! 73: ! 74: GNU Emacs EXAMPLES: ! 75: See definitions in lisp/sun-fns.el for examples. ! 76: ! 77: You can redefine the cursor that is displayed in the emacs window. ! 78: On initialization, it is set to a right arrow. See lisp/sun-cursors.el ! 79: for additional cursors, how to define them, how to edit them. ! 80: ! 81: BUGS: ! 82: It takes a few milliseconds to create a menu before it pops up. ! 83: Someone who understands the GNU Garbage Collector might see if it ! 84: is possible for defmenu to create a SunView menu struct that does ! 85: not get destroyed by Garbage Collection. ! 86: ! 87: An outline of the files used to support Sun Windows and the mouse. ! 88: ! 89: etc/SUN-SUPPORT. ! 90: This document. ! 91: ! 92: etc/emacstool.1: ! 93: Added: an nroff'able man page for emacstool. ! 94: ! 95: etc/emacstool.c: ! 96: Encodes all the function keys internally, and passes non-window ! 97: system arguments to emacs. ! 98: ! 99: etc/emacs.icon: ! 100: The "Kitchen Sink" GNU Emacs icon. ! 101: ! 102: src/sunfns.c: ! 103: This contains the auxilary functions that allow elisp code to interact ! 104: with the sunwindows, selection, and menu functions. ! 105: ! 106: lisp/sun-mouse.el: ! 107: Defines the lisp function which is called when a mouse hit is found ! 108: in the input queue. This handler decodes the mouse hit via a keymap-like ! 109: structure sensitive to a particular window and where in the window the ! 110: hit occured (text-region, right-margin, mode-line). Three variables ! 111: are bound (*mouse-window* *mouse-x* *mouse-y*) and the selected function ! 112: is called. ! 113: See documentation on "define-mouse" or look at lisp/sun-fns.el ! 114: to see how this is done. ! 115: Defines two functions to pass between region and sun-selection ! 116: Defines functions for interfacing with the Menu. ! 117: During menu evaluation, the variables *menu-window* *menu-x* *menu-y* are bound. ! 118: ! 119: lisp/sun-fns.el ! 120: The definition of the default menu and mouse function bindings. ! 121: ! 122: lisp/sun-cursors.el ! 123: Defines a number of alternate cursors, and an editor for them. ! 124: The editor is also a demonstration of mouse/menu utilization. ! 125: ! 126: lisp/term/sun.el ! 127: Sets up the keymap to make the sun function keys do useful things. ! 128: Also includes the setup/initialization code for running under emacstool, ! 129: which makes "\C-Z" just close the emacstool window (-WI emacs.icon). ! 130: ! 131: Jeff Peck, Sun Microsystems, Inc <[email protected]> ! 132: ! 133: ! 134: Subject: Making multi-line scrolling really work: ! 135: ! 136: In your .defaults file, include the line: ! 137: /Tty/Retained "Yes" ! 138: That way, the terminal emulator can do text moves using bitblt, ! 139: instead of repaint. ! 140: ! 141: If that's not enough for you, then tell unix and emacs that ! 142: the sun terminal supports multi-line and multi-character insert/delete. ! 143: Add this patch to your /etc/termcap file: ! 144: ! 145: *** /etc/termcap.~1~ Mon Sep 15 12:34:23 1986 ! 146: --- /etc/termcap Mon Feb 9 17:34:08 1987 ! 147: *************** ! 148: *** 32,39 **** ! 149: --- 32,40 ---- ! 150: Mu|sun|Sun Microsystems Workstation console:\ ! 151: :am:bs:km:mi:ms:pt:li#34:co#80:cl=^L:cm=\E[%i%d;%dH:\ ! 152: :ce=\E[K:cd=\E[J:so=\E[7m:se=\E[m:rs=\E[s:\ ! 153: :al=\E[L:dl=\E[M:im=:ei=:ic=\E[@:dc=\E[P:\ ! 154: + :AL=\E[%dL:DL=\E[%dM:IC=\E[%d@:DC=\E[%dP:\ ! 155: :up=\E[A:nd=\E[C:ku=\E[A:kd=\E[B:kr=\E[C:kl=\E[D:\ ! 156: :k1=\E[224z:k2=\E[225z:k3=\E[226z:k4=\E[227z:k5=\E[228z:\ ! 157: :k6=\E[229z:k7=\E[230z:k8=\E[231z:k9=\E[232z: ! 158: M-|sun-nic|sune|Sun Microsystems Workstation console without insert character:\ ! 159: ! 160: ! 161: If you don't have the program "patch", just add the line: ! 162: :AL=\E[%dL:DL=\E[%dM:IC=\E[%d@:DC=\E[%dP:\ ! 163: ! 164: [email protected] says: ! 165: ! 166: Those of you using GNU Emacs on Sun workstations under ! 167: 3.2 may be interested in reducing memory utilization in ! 168: the emacstool via the Sun toolmerge facility. The technique ! 169: is described in the Release 3.2 Manual starting on page ! 170: 71. The following is a summary of how it would apply ! 171: to merging emacstool into the basetools. ! 172: ! 173: 1) Change the main procedure declaration in emacstool.c to: ! 174: ! 175: #ifdef SUN_TOOLMERGE ! 176: emacstool_main (argc, argv); ! 177: #else ! 178: main (argc, argv) ! 179: #endif ! 180: ! 181: This will allow creation of either standard or toolmerge ! 182: versions. ! 183: ! 184: 2) Copy emacstool.o into directory /usr/src/sun/suntool. ! 185: 3) make CFLAGS="-g -DSUN_TOOLMERGE" emacstool.o ! 186: 4) Add the following line to basetools.h ! 187: ! 188: "emacstool",emacstool_main, ! 189: ! 190: 5) Add the following line to toolmerge.c. ! 191: ! 192: extern emacstool_main(); ! 193: ! 194: 6) make basetools MOREOBJS="emacstool.o" ! 195: 7) make install_bins ! 196: ! 197: To invoke the toolmerged version, you must exit suntools and ! 198: re-start it. Make sure that /usr/bin occurs before the directory ! 199: in which you installed the standard (non-toolmerged) version. ! 200: ! 201:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.