From 726d90a8ec8cb1c713c0a2f1746a6570f22b24f2 Mon Sep 17 00:00:00 2001 From: "Eric S. Raymond" Date: Tue, 11 May 1993 21:53:50 +0000 Subject: [PATCH] Initial revision --- READ.ME | 176 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 READ.ME diff --git a/READ.ME b/READ.ME new file mode 100644 index 0000000..e9211c5 --- /dev/null +++ b/READ.ME @@ -0,0 +1,176 @@ + VH, version 1.4 + +The code for the VH hypertext browser is currently known to work under +the following systews: + +port maintainer +------------------------------ -------------------------------------------- +AT&T UNIX System V Release 3.2 Eric S. Raymond +Dell UNIX System V Release 4 Eric S. Raymond +Linux Sander van Malssen +DOS (with Borland C) Ray Gardner +SunOS 4.1.1B Joseph E. Sacco + +Expect the following files: + +READ.ME --- this one +vh.1 --- nroff source for the manual page +vh.lpr --- preformatted version of above for non-UNIX systems +Makefile --- UNIX makefile for the system +TurboMake --- DOS makefile for the system (using Borland C) +vh.c --- display-system-independent primitives +vh.h --- interface file for vh.c +screen.c --- screen and keyboard I/O support +screen.h --- interface file for screen support +browse.c --- command interpreter and curses code +README.AMIGA --- porting notes on the Amiga version. + +License terms: + Copyright (C) 1991 by Raymond D. Gardner and Eric S. Raymond + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +Authors' note: + Please find the GPL in the file COPYING in this directory. + + We don't think programmers should have to choose between poverty +and being driven away from their art because they can't make a living +at it. So we believe in strong intellectual-property rights for +programmers. We are issuing this code under GPL not to join anyone's +crusade against intellectual property, but simply and only to give it +the widest possible free distribution in source. + + Notwithstanding any ambiguities in the GPL, it is our intent that portions +of this program, or its entirety, *shall* be freely reusable in commercial +software without bringing the entirety of the software under GPL +restrictions. We intend that you *may* reuse any portion of this code +or any technique abstracted from it in programs that make you money. + + We require you to follow GPL terms on redistribution of source +*for those portions of our code that you use*. And we would +appreciate the courtesy of being credited appropriately in your +documentation. But we do not intend our license terms to require you +to disclose *your* inventions, or to in any other way alienate you +from the fair market value of your creative work. + + We love writing free software, and the techniques and code contained +in this package are our gift to you. If you choose to make your derived +works free, we support that. If you need to use them to pay bills, we +support that too. Live freedom any way you can. + +Porting notes: + +The code consists of three modules. The vh.c module contains only +display-independent code, and should be usable without change under +your OS (modulo possible differences in include files). The browse.c +code includes the command interpreter; screen.c supplies curses(3)-like +screen handling with a few enhancements for mice. + +The porting work basically consists of implementing screen.c. I have +intentionally kept the curses usage simple; a complete description of +the facilities this program uses is included in the screen.c header. + +I have done my best to make the porting process as cut and dried as possible. +This does not mean I consider the functional design of browse.c graven in +stone; if you think it needs improving, propose away. But there +will be very definite advantages to keeping the screen- and +mouse-handling mechanics separate from the main command interpreter; +it should be possible using this organization to get a full-featured +and *uniform* interface on all the target machines. + +The only part that's even moderately tricky is the mouse-handling +code, which is based around an event loop in egetch() that polls for +keystrokes or mouse events. + +Here are some of the configuration #defines now present: + +CRLFSIZE + Either 1 or 2; if 1, vh.c assumes the OS uses \n as a line terminator, +if 2, it assumes \r\n. The UNIX #define forces CRLFSIZE to 1, +otherwise 2 is assumed. + +MSDOS + Enables the MSDOS curses(3) lookalike code in screen.c. If MSDOS +is *not* defined, some emulations of Borland library functions are +compiled in vh.c. Used in vh.c and screen.c. + +UNIX + Compiles some UNIX-dependent terminal-driver bashing into browse.c. + +ATT + Compiles code that tries to enable your interrupt character on +System V machines, in browse.c only. + +BSD + Tries to cope with the less capable BSD curses(3). Warning: this +code is based on patches for an older version, and may not be +complete! Please email any fixes you find necessary. {IWBNI} we had +support for at least one other attribute besides A_REVERSE so that all +possible references on the current screen are highlighted (with AT&T +curses we use A_BRIGHT). + +AMIGA + This code came in at the 11th hour. It supposedly enabled the +jargon browser to run on the Amiga, but hasn't been tested against vh. +See README.AMIGA for details. Direct queries to Georg Sassen +. + +SCROLLBAR + if this is on, screen.c steals the last column to create an +on-screen scrollbar. Note that this is implemented by decrementing +COLS; if you brew your own curses(3) replacement, you must make sure +this does not result in that last column's failing to get refreshed! + +POPUP + The POPUP #define disables the code that steals the bottom row of the +screen for use as a prompt and text-entry line. If you define this, +the code will expect to be able to call a get_dialogue() function that +takes a prompt argument and returns a text string. A get_dialogue() +implementation is provided for curses(3). + Note: if POPUP is on, the -i option won't work. Sorry about that! + +MOUSE and ATTMOUSE + Two other #defines, MOUSE and ATTMOUSE, control the compilation of +mouse-handling code. The mouse on the AT&T 6386WGS is fully +supported. If you have a /usr/include/sys/mouse.h that includes the +following lines + +struct mouseinfo { + unsigned char status; + char xmotion, ymotion; +}; + +/* Ioctl definitions */ +#define MOUSEIOC ('M'<<8) +#define MOUSEIOCREAD (MOUSEIOC|60) + +then the ATTMOUSE code will probably work for you unaltered. If your +mouse driver interface looks anything like this, enablng the device +should be quite easy. The MOUSE code provides most of the interfacing; +all you have to write is the poll-and-decode loop in egetch(). + +Porting to windows environments: + +If you are porting to a windows environment, you may wish to turn off +SCROLLBAR and turn on POPUP and embed the text window in some kind of +text widget or toolkit object, and have the mouse click events +interpreted in the egetch() loop. You'll alse have to write your own +get_dialogue() and message() functions; see browse.c for models. + +Release 1.4 adds a new -f option for extracting lists of entries. + +Have fun! + Eric Raymond = eric@snark.thyrsus.com (UNIX) + Ray Gardner = FidoNet 1:104/89.2 (DOS) -- 2.43.0