home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / jove-4.16-src.tgz / tar.out / bsd / jove / xjove / README < prev    next >
Text File  |  1996-09-28  |  8KB  |  141 lines

  1. ###########################################################################
  2. # This program is Copyright (C) 1991-1996 by C.H.Lindsey, University of   #
  3. # Manchester.  (X)JOVETOOL is provided to you without charge, and with no #
  4. # warranty.  You may give away copies of (X)JOVETOOL, including sources,  #
  5. # provided that this notice is included in all the files, except insofar  #
  6. # as a more specific copyright notices attaches to the file (x)jovetool.c #
  7. ###########################################################################
  8.  
  9. The two programs in this directory 'xjove' and 'jovetool' are front ends for
  10. the 'jove' editor to enable it to be controlled by the mouse in windowing
  11. environments. 'Jovetool' is for use with Sunview. 'Xjove' is for use with
  12. X-windows.
  13.  
  14. Both programs were originally based on the 'emacstool' program (although
  15. there is now little resemblance left), and for this reason their Copyright
  16. notices are GNU-like, as opposed to the Copyright notices in the rest of
  17. the 'jove' system.
  18.  
  19. The full goodies provided by these programs are described in the manual page
  20. {jove}/doc/xjove.nr.
  21.  
  22. Briefly, it is possible to change windows and to set the point and the mark
  23. by pressing mouse buttons over the appropriate places. It is also possible
  24. to do copy/cut/paste (i.e. copy-region, kill-region, yank) by using the CTRL
  25. and SHIFT keys at the same time.
  26.  
  27. The third mouse button brings up a menu from which any 'jove' command can be
  28. activated or any 'jove' variable set. This menu is rather large and complex,
  29. so it is suggested that its use will mainly be for browsing through when
  30. searching for the more obscure 'jove' commands. Where a particular command is
  31. in fact bound to some key, that is indicated in the menu, so you can see how
  32. to access it more quickly the next time it is needed.
  33.  
  34. It is also possible to scroll to any arbitrary point within the file by
  35. clicking the mouse at a proportional position in the modeline below the
  36. particular window. If the 'scrollbar' variable is on (which it always should
  37. be when using 'xjove') the portion of the total buffer visible within the
  38. window has its highlighting reversed.
  39.  
  40. To compile 'jovetool' you need a Sun running OS4.x. You also need to set the
  41. DEFINES and SYSDEFS macros in the Makefile.  If you build it through the
  42. makejovetool or installjovetool targets of the JOVE Makefile, these will
  43. be set automatically.
  44.  
  45. To compile 'xjove' you need the XView toolkit which is normally supplied as
  46. part of the Openwindows package on Suns and some other machines. If you do
  47. not have XView, then it may be obtained from the MIT X-distribution. You
  48. need to set the SYSDEFS macro in the Makefile (it is only used to
  49. distinguish SYSVR4 (which includes SunOS 5, also known as Solaris 2) from
  50. any other system). There is also a difference in the 'LDFLAGS' for SunOS 5.
  51. It is also necessary for the OPENWINHOME environment variable to be set
  52. correctly. If you are are a user rather than a hacker of the system, you
  53. may wish to replace the '-g' in the OPTFLAGS macro by '-O'. If you build xjove
  54. through the makexjove or installxjove targets of the main JOVE Makefile,
  55. most of these settings will be inherited (check xjove/Makefile for details).
  56.  
  57. In the menus brought up by pressing the third mouse button under 'xjove', the
  58. key bindings shown against each command use the function keys (of which
  59. there are an awful lot on the Sun keyboard) as set in the file
  60. {jove}/doc/jove.rc.sun-cmd. If you are not using this binding, or if you
  61. have modified it in any way, then you will need to edit the file jovemenu.c
  62. accordingly. This file consists mostly of preprocessor macros, structured in
  63. a reasonably obvious way. Note that 'xjove' automatically sets the TERM
  64. environment variable of 'jove' to 'sun-cmd'. There is nothing that can
  65. be done to change this, because it is a "feature" of XView. Note that
  66. anyone who has a private TERMCAP database will have to ensure that this
  67. includes sun-cmd, or else write a wrapper to disable it.
  68.  
  69. All the keys on the keyboard are bound to something accessible, even those
  70. not normally useable under shelltool (e.g. the Help key and the keys around
  71. the edge of the keypad). The one exception is the keypad decimal point, also
  72. marked Del. Under normal, default, conditions pressing this is
  73. indistinguishable from pressing the official Delete key. To overcome this,
  74. the following line may usefully be kept in your .xinitrc file
  75.     xmodmap -e 'keycode 57 = KP_Decimal'
  76. xjove will then catch it and send a sequence which can be bound to some
  77. suitable command in a jove.rc file (see jove.rc.sun-cmd).
  78.  
  79. 'Xjove' should understand all of the command line options and X-resources
  80. mentioned in the Sun manual page for 'xview' (in particular -font, -Ww,
  81. -Wh), but do not expect it to work with a proportional font.
  82.  
  83. 'Xjove' is in essence a terminal emulator rather like 'shelltool'. Indeed you
  84. can run a shell in it by saying 'xjove -rc sh', and I regularly run the 'nn'
  85. newsreader in it so that I can then use 'jove' to generate postings and email
  86. in reply to articles. If you call 'jove' from within such a shell (or
  87. newsreader), the mouse facilities will immediately become available.
  88. Similarly, it is possible to call up another machine from the shell (or use
  89. 'xjove -rc rsh other_machine') and then use 'jove' on that other machine,
  90. with full benefit of the mouse. Most usually, however, and by default, xjove
  91. immediately calls jove and passes the remaining parameters to it (you can
  92. even run the recover program by typing 'xjove -r').
  93.  
  94. Because 'xjove' is just a fancy terminal emulator, and because 'jove' itself
  95. is still fundamentally a terminal-based editor, the communication between
  96. 'xjove' and 'jove' is only one-way. Information about mouse events can be
  97. passed to 'jove', but there is no feedback from 'jove' to 'xjove'. This is
  98. why such a crude "scrollbar" had to be employed, rather than a more
  99. conventional scrollbar at the side as normally provided by windowing
  100. systems. Someday, someone should write a really good windows-based editor,
  101. but it will be an entirely differently structured program from the
  102. 'xjove/jove' combination.
  103.  
  104. Unusually for an X-Application, xjove normally forks a separate process to
  105. run its window, so that the shell which issued the xjove command can
  106. immediately accept other commands. This was done on the grounds that it is
  107. what most users will require most of the time. Some people, however,
  108. complain that this is not the X or UNIX tradition (they expect you to type
  109. xjove filename &). To avoid religious wars on this issue, command line flags
  110. -f and -nf (fork/no fork) have been provided, and the default state is taken
  111. from the resource xjove.forking (in jovetool, only the -nf flag is provided).
  112.  
  113. Within 'jove' itself, mouse events passed to it by 'xjove' are acted upon by
  114. code within the file mouse.c. To be sure that this code is included, the
  115. preprocessor variable MOUSE must be defined in sysdep.h. This is done
  116. automatically for any UNIX system.
  117.  
  118. If you use the 'xterm' terminal emulator, a simplified subset of the
  119. facilities provided by 'xjove' is provided, using a rather similar mechanism
  120. to that used by 'xjove'.
  121.  
  122. 'Xjove' and 'jovetool' were written by Charles Lindsey. Comments, bug
  123. reports, and whatever may be sent to chl@clw.cs.man.ac.uk (or alternatively
  124. to hugh@mimosa.com along with reports on the rest of jove).
  125.  
  126.  
  127. KNOWN XVIEW BUG:
  128.  
  129. xjove terminal emulation is described by the "sun-cmd" termcap and
  130. terminfo entries.  Due to an XView bug, the environment variable
  131. TERMCAP is set to "sun-cmd:te=\E[>4h:ti=\E[>4l:tc=sun:".  (This may be
  132. fixed some day.)  To be correct, the tc capability should be replaced
  133. by the contents of the /etc/termcap entry for "sun".
  134.  
  135. Any program that uses the termcap-based library will fail.  If a
  136. program uses terminfo, it will avoid this problem.  Solaris programs
  137. normally use terminfo.  At least some Linux systems use terminfo.  One
  138. workaround would be to write a shell script wrapper to unset TERMCAP
  139. before invoking the "real" program.  Use the xjove -rc flag to specify
  140. which program to run.
  141.