home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fish 'n' More 2
/
fishmore-publicdomainlibraryvol.ii1991xetec.iso
/
fish
/
text
/
editors
/
'liner_451
/
docs
/
'liner.doc
< prev
next >
Wrap
Text File
|
1991-02-06
|
15KB
|
265 lines
'Liner
Version 2.11
---------------------------------------------------------------------------
'Liner V2.11 is copyright ©1988, 1989, 1990 by Dave Schreiber. All rights
reserved.
'Liner may be freely distributed as long as the following terms are
observed:
1. 'Liner is distributed without cost, except for the cost of media,
copying, shipping, labels, and any applicable taxes.
2. All copyright messages in 'Liner, its source code, and its
documentation are not changed.
3. If you use code from 'Liner in other programs, please note this
along with 'Liner's copyright message in the documentation and/or
source code.
After long deliberation, I've decided to make 'Liner shareware. If you use
'Liner, a donation of $10 would be greatly appreciated, as well as acting
as a motivator for me to enhance the program (see the end of this file for
ideas I have for future improvements). My address is below, and I
encourage you to send in suggestions, bug reports, etc. even if you don't
send in a donation. Thanks.
I also request that if you distribuate 'Liner, you keep the source code
with the executable program. Thanks.
I'd like to give special thanks to Chad Netzer, who has tolerated being a
beta-tester for 'Liner V2.00 for a long time. His thoroughness has insured
that almost all of 'Liner bugs have been exterminated. I appreciate his
work very much.
!!!--->NOTE: 'Liner Version 2.11 _requires_ Workbench/Kickstart 2.00 or
higher! If you're running 1.3, use 'Liner V2.00 (on Fish disk #394)
instead. Also, the file 'NewStuff' details what's changed between version
2.00 and 2.11.
Once upon a time I tried writing a long outline with a word processor.
It was also the last time. I wrote 'Liner so I could leave the mundane
parts of writing an outline to the computer. In essence, what 'Liner does
is to let you type into an outline form, allowing you rearrange blocks of
text without having to renumber everything. It has most of the features of
commercial outliners, although it is missing a few, like the ability to
'collapse' an outline. It also has a few features that I haven't seen on
commercial outliners, such as an ARexx port.
Before starting 'Liner, you should assign liner: to the directory that
you have placed 'Liner into. The preferences for 'Liner will also be
stored in that directory. Once that's done, the program can be started
from either Workbench or the CLI. From Workbench, double click on the
icon, or double click on the icon of an outline that you wish to work on.
From the CLI, type either:
1> RUN 'LINER
or just:
1> 'LINER
Once you get in 'Liner, and assuming you haven't double clicked on an
outline's icon, you are presented with a I.: this is the first line of a
new outline. You can either load an old outline (see below) or start
typing a new one. I've included a sample outline for you to practice on,
called Sample_Outline. If you double clicked on an outline's icon, you can
go straight to editing, as the old outline will have already been loaded.
Editing a document once you typed it in is fairly straightforward.
The arrows keys work normally when used by themselves, and you can also
position the cursor by pointing with the pointer and pressing the left
mouse button. Shift-left-arrow and shift-right-arrow move the cursor a
word at a time, instead of a letter at a time. Shift-up-arrow moves up one
screenful of text, while shift-down-arrow moves down the same amount.
Control-left-arrow and control-right-arrow move the cursor to the beginning
and end of a line, respectively. Control-up-arrow moves to the top of the
documents, and control-down-arrow moves to the end. The TAB key controls
what level the current line of text is in. For example, type a line and
press TAB. The line moves in and the number or letter in front of it
changes. For example:
I. This is a test
would turn into:
A. This is a test
Shift-TAB has the opposite effect.
Performing operations on blocks of text requires that you highlight
the text you want to manipulate. There are two forms of highlighting in
'Liner: character and line. Character highlighting involves highlighting
individual characters on one line only. To do it left to right, double
click on the first character you want to highlight, then double click on
the character after the last character you want to highlight. To do it the
other way, just double click on the first and last character. Once you
have highlighted your text, you can replace it with other text (just start
typing), cut, copy, and delete it (see the Edit menu description below, or
press backspace or DEL).
Line highlighting is similar to character highlighting: for both
directions double click on the first and last lines. There are several
things you can do with a highlighted block of lines: you can shift the
entire block of text in and out with TAB and the SHIFT-TAB combination, you
can delete a block of lines by pressing the backspace key, and you can cut
and paste (again, see the Edit menu instructions below).
Versions 2.00 and later of 'Liner now supports something version 1.32
didn't: multiple lines per number. If you are typing in some text and you
reach the end of the line, press SHIFT-RETURN to get another line, known as
a "continuation." A continuation is the same as a regular line, except
that it has no number before it, and is "attached" to the regular line
above it; in effect, a parent and its continuations act as a single unit.
If you TAB a parent line in or out, to change its level, its continuation
lines will also be TAB'd in or out. You cannot break apart a block of
continuation lines with a regular line (you can have as many continuations
attached to a regular line, as you wish). If you highlight a block of
continuation lines and CUT them, the lines highlighted are deleted, but all
the continuation lines in that block are put into the clipboard (this is to
prevent being able to paste continuation lines without a parent to control
their attributes). Trying to delete a parent without deleting its children
at the same time isn't allowed. COPYing continuation lines will also
include the entire block.
'Liner uses five menus. The first, 'Project', holds what you'd expect
it to: 'New', 'Open', 'Save', 'Save As', 'Print', 'About', and 'Quit'.
Functions that could result in a loss of data ('New', 'Open', and 'Quit')
ask for confirmation before performing their function (they will not ask,
however, if the outline hasn't been changed since it was last saved. Note
that you can tell if an outline has been changed by looking at the title
bar: an asterisk will appear if the file has been changed, and will
dissappear when the outline is saved).
(Now is a good time to note that the file format of 2.00 and 2.11 is
different than that of 1.32. The addition of continuations made it a
necessity; I also took the opportunity to make the format more compact.
In any case, 'Liner 2.11 can read both 1.32 and 2.x files, but writes in
the 2.x format only (so someone with 1.32 couldn't read a file saved with
2.x)).
Of all of the 'Project' menu's items, the 'Print' item is the only one
that could be ambiguous. It has two sub-items that let you chose where you
want the printout to go. 'To Printer' sends it, naturally, to the printer
(the number of lines per page is equal to the value in the 'Length'
variable in Preferences, minus one. 'To Disk' saves it as an ASCII file
(please note, however, that 'Liner cannot read in ASCII files and convert
them into outlines).
The next menu is Edit, which is again fairly standard. 'Cut', 'Copy',
'Paste', and 'Erase' do exactly what their names imply. However, their
operation depends slightly on what is being manipulated. With text on just
one line, when it's cut, it's put in the Clipboard (pause, while the whole
Amiga community gasps in shock and surprise...yes, that's right, the
Clipboard). What this means is that 'Liner can share text with any other
application that supports the Clipboard, such as NotePad. Of course,
hardly any programs support the Clipboard, but the text had to go somewhere
and the Clipboard seemed the best place to put it. (however the clipboard
is not used when a number of lines is pasted (although an ASCII copy of the
CUT or COPYed lines is stored in the clipboard)). When 'Paste' is
selected, what is pasted is whatever was last cut, i.e. if a number of
lines were cut, they'll be pasted back in again, but if text on one line is
cut or copied, whatever is in the Clipboard will be pasted into the outline
('Liner defaults to text and not line pastes on startup).
The next menu is the 'Search' menu. The first item, 'Search/Replace',
controls the searching and replacing capabilities of 'Liner. When
selected, a requestor pops up that let you enter the search string and the
string to replace it with. It also lets you select whether the search will
be case sensitive, whether the search string can be embedded in another
word, and whether or not a replace is performed. Once finished, clicking
on OK does the search. Clicking on Cancel cancels the search and replaces
what was entered in the requestor with what was there before the requestor
was brought up (the close gadget has the same effect as Cancel). Wait
cancels the search as well, but keeps the new information entered in the
requestor.
There are two other items in the 'Search' menu. 'Next' searches for
(and replaces if that was selected) the next instance of the search string.
'Replace All' does a global search/replace, either with verification
before doing the replace (where you can chose to go ahead, skip that
occurance, or cancel altogether), or without verification.
The Prefs menu contains a number of items that let you control various
aspects of 'Liner and your document. 'Icons', when selected, tells 'Liner
to create an associated icon whenever it saves an outline and when it saves
the preferences. When not selected, no icons are created. 'Double
spacing' switches between single and double spacing.
'Starting Level' determines which symbols are used on what level. For
example, on the default setting of "I.", the first level uses Roman
numerals, then capital letters, etc. all the way down to small letters with
parenthesis. If you were to choose "1.", it would go 1. a. 1) a) I. A.
instead of I. A. 1. a. 1) a). This is to let you do things like lists or
top-down designs where the information should be numbered with Arabic
numerals or start with some other symbol.
The next two items control the remaining aspects of the display.
'Screen colors' lets you adjust the colors of the screen (a gadget marked
'Reset' will undo any color changes you make before you close the color
selection window). Please note that the color requestor will limit you in
your color choices when using a productivity mode; this is due to
limitations in productivity mode itself.
'Screen Type' is used to determine what screen type will be used.
'Liner supports eight screen types currently: non-interlaced (in NTSC or
PAL), interlaced (in NTSC or PAL), productivity, productivity-interlaced,
and A2024 (in both 10 and 15Hz forms). The last three items determine
whether an interlaced or non-interlaced screen will run in NTSC, PAL, or
the hardware default modes (since the other four screen types can only be
used with the hardware default screen type; the choices NTSC and PAL are
ghosted when using any of those types).
'Define Macros' I will skip for the time being and move on to the last
two items. 'Load prefs' loads the preferences for 'Liner off the disk;
its useful for when you've made a bunch of preferences changes to 'Liner
and want to undo them all. 'Save Prefs' saves the current 'Liner settings
(which includes the directories used when you last SAVEed or OPENed a
document, and when you last printed a document to disk) to the file
liner:liner.prefs, which is read upon startup in order to set the default
'Liner preferences.
The final feature I've included is a two-way ARexx port. A list of
the 'Liner ARexx commands, along with descriptions and usage guidelines,
can be found in the file ARexx_Commands. There are also example scripts
that can help you get a feel for using ARexx with 'Liner.
Not only can 'Liner ARexx macros be run from the CLI; they can be run
from within 'Liner itself. Up to four macros can be assigned to the items
under the menu 'ARexx'; they and the names they go under in the ARexx menu
are defined using the 'Define Macros' item under the 'Prefs' menu.
Now that I've explained the operation of the program, it's time for a
little more technical stuff. 'Liner was compiled with Lattice C V5.10;
most of the source is included. The source that isn't included is:
minrexx.o (part of Tomas Rockiki's distribution on Fish Disk #188) and
rexxglue.o (ditto). Everything else is present. To compile, simply CD to
the directory 'Liner is in and execute the script "lcliner".
Finally, I'd like to outline (!) my future plans for 'Liner. I've got
a list of features I would like to add to 'Liner, including:
1. Better multiple line support (with true word-wrapping)
2. Margins
3. Outline collapse
4. A better highlighting method
5. A scroll bar
6. Headers/footers/page numbers
7. Support for multiple documents
They're in order of what I consider to be their importance. The next
version of 'Liner will take care of at least the first three items, and
more of them if I have the time (I'm planning on hacking through my
Christmas vacation; debugging starts on Jan 2, 1991. Whatever's done
before that date is what goes into the next version of 'Liner (which will
probably be called either 2.50 or 3.00, depending on how many features I
add in)).
Known bugs: font support, while much improved over 2.00, is still not
perfect (see the file 'NewStuff' for details). This will be fixed in the
next version. Also, I can't guarantee that A2024 support works, as I don't
have an A2024 to test it out on. But from what testing I have been able to
do, it looks like there isn't a problem.
That's it! If you have any questions, comments, bug reports
especially, I can be reached at:
Usenet: davids@slugmail.ucsc.edu
US Mail: Dave Schreiber
1234 Collins Lane
San Jose, CA 95129-4208 (during the summer, but
mail that comes to that address will be forwarded
to me if I'm at school).