home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gold Fish 1
/
GoldFishApril1994_CD2.img
/
d4xx
/
d471
/
uedit
/
errata
< prev
next >
Wrap
Text File
|
1991-04-17
|
21KB
|
523 lines
Uedit V2.5 manual errata:
*** Section 1.30.3 in the manual which discusses leftMargin and autoIndent
needs correction. A table needs to be provided to cover the cases. Note
that when autoIndent is off and leftMargin>0, normal typing does not use
leftMargin. But if you reformat the paragraph, it is indented to the column
specified by leftMargin. So leftMargin is used in paragraph reformatting if
it is >0 even though during normal typing it is not used when autoIndent is
off. Note also that the Left Margin (L-m).
*** Some commands need to be moved to other keys. Left Margin (L-m)
conflicts with the Amiga key L-m which shifts screens. The Hyper Text cmds
use Left-Amiga key combinations that Workbench 2.0 uses.
*** CL argument list 13 in Part3 of the manual should be deleted. list14
should be the following:
LIST 14: autoBackup autoIndent busies changed columnar cram favorite
hideDisplay icons lace learnMode mapChars markGadgets overStrike
printTabs readOnly rightJustify rowCol scrollType searchCaps
smartTabs speakAlerts speakMsgs spooks teachKeys trapMenus trueTabs
useKeys userGlobalA userGlobalB userLocalA userLocalB wordWrap
The CL functions marked as using list 13 should be changed to use list 14.
No CL function uses list 13 which no longer exists.
*** Printed manual does not show the grep carat (^) symbol in the symbol
table at the top of page 68. The carat symbol forces a match to start of
line.
*** The manual does not document the fact that spell() does not present
optional spellings for bad words if the big dictionary is not in memory. It
does not bother looking up options on disk because it would be too slow. For
the optional spellings to be presented in the message line, you must have
loaded the spelling dictionary into Uedit's memory. Note that using the Load
Speller command in Config!s (unless you customize it) if Uedit cannot find
enough contiguous memory for the big dictionary, it will open the speller
using the dictionary on disk - in this case, optional spellings will not be
looked up and presented.
*** Hyper text was modified to allow partial words to be looked up. This is
not documented in the manual. When the word buffer argument has something in
it and the flag = 0 or 1, first the word buffer content is treated as a whole
word/phrase in the lookup; if not found, it is treated as a partial word/
phrase. Thus you can type or click the first few letters of a hyper word or
phrase and the lookup should find the whole word/phrase if it exists in the
table.
*** AREXX INTERFACE: Uedit's old cryptic standard Rexx interface (in the old
Config!R) was replaced with Kerry Zimmerman's readable, verbose interface,
which users say is much easier to use. The manual talks about the old
Config!R, not the new one which uses command words; so ignore the irrelevant
parts of the discussion in the manual, particularly the Examples. See
ReadMe.Demo for instructions on using the new interface. The manual will be
updated on the next major upgrade.
Buffer usage: (Buf 36 no longer used by Rexx interface)
buf35 = holds REXXCOMM File for Rexx interface
buf62 = Rexx msg/reply output buffer
buf61 = Rexx msg/reply input buffer
*** The following cmds are for the Editing Tricks in the manual: Rather than
setting MaxFiles to a high number, which requires customizing the config
files to change buffer numbers in its commands, you can store files on the
buffer stack and access them just as though they were in file buffers.
Load each file and use the cmd below to push the file onto the buffer stack.
You can load as many as memory will hold, and it doesn't use up file buffer
slots.
Swap current buffer with stack & roll stack
<shft-gadget4:
getStackSize(n51,n52,n53)
if (eqNum(n51,0)) {
putmsg("buffer stack is empty")
returnFalse
}
equateNum(n54,curfile)
..if (getFlag(curfile,changed)
.. & askYesNo("Save this changed buffer?")) saveFile(curfile)
push(buf99,curfile)
rollstack(curfile,1)
pop(buf99,buf[n54])
>
To save changes, use the cmd below repeatedly. It examines the stack and
lets you save any buffers that have been changed. Note that this cmd can be
customized to save changes on the stack automatically by deleting the
askYesNo() call.
Save changed files on buffer stack
<alt-gadget4:
getStackSize(n51,n52,n53)
if (eqNum(n51,0)) {
putmsg("buffer stack is empty")
returnFalse
}
equateNum(n54,curfile)
do (n52,0,n51) {
push(buf99,curfile)
rollstack(curfile,1)
pop(buf99,buf[n54])
if (!eqNum(n52,n51)
& getFlag(curfile,changed)
& askYesNo("Save this changed file?")) saveFile(curfile)
}
>
------------
v2.5e ERRATA
*** Added: Save State (R-f5) and Load State (R-f6) menu commands. These
save Uedit's state in the default state file "uestate".
*** Added: saveState(filename) & loadState(filename) CL functions. (The
filename arguments are list 10.) saveState() saves Uedit's state to disk.
loadState() loads in a previously stored state.
A "state" is a snapshot. Storing Uedit's state consists of storing file and
work buffers along with their local flags; also stored are many global
variables including colors and split window information. When you load in a
state, everything is just as it was when the "snapshot" was taken; the split
windows are in the same order, the cursors are in the same spot, the colors
are the same, the currently active buffer is the same, colored regions are
the same, the search & grep strings are the same, even the Changed (or not)
status of files is the same.
NOTE: The state does not include keys or learned sequences. As part of your
state command you can include saving or loading a data file and existing
learned sequence, if you wish. The state also does not include buffers and
numbers on the stacks.
*** Added: -s CLI command line flag. Examples:
run UE -s .. runs UE & loads in the default state file "uestate".
run UE -sMyState .. runs UE & loads in state file MyState.
NOTE: When a state is loaded, it uses the buffers that were in use when the
state was saved. WARNING: Files in Uedit may be erased so that the state
can use their buffers; you should save any changes before loading in a state.
Note also that if you type "Run UE -s file1 file2", file1 and file2 may be
erased from Uedit's memory so their buffers can be used by the state being
loaded in.
The -s flag is processed BEFORE the -k & -l CLI command line flags and AFTER
the named files (if any) are loaded in. You can specify a key or learned
sequence (-k or -l) to act on the loaded state's files. -s is processed
after the -c and -d flags, of course. To summarize, the sequence is this:
process -c and -d, if used
load files, if any
process -s, if used
process -l and -k, if used
*** Added: Alt-keys array in config defaults. Below the 2 printable keys
arrays in the config defaults is another array of the same length (64
characters). These keys can be typed in using the ALT shift-modifier. The
purpose of the alt keys array is to enable foreign users to type in foreign
characters either in normal or especially in primitive mode. (In normal mode
they could use a command to input foreign letters, but they couldn't type
foreign letters in that way when in primitive mode.)
*** Added: customScreen global CL variable and config default. In the
Config! defaults it is the default just after smartTabs (which used to be a
RESERVED slot). If customScreen is FALSE or 0, when the screen opens it is a
type WBENCHSCREEN; with a WBENCHSCREEN when you type Ctrl-y and "Run NewCLI"
in Uedit, the CLI window is on top of Uedit's window, but a side effect is
that rAmiga-n/m work strangely or incorrectly. If customScreen is TRUE or 1,
when the screen opens it is a CUSTOMSCREEN; with a CUSTOMSCREEN you cannot
open a CLI or Performance Monitor window on top of Uedit's screen, but the
rAmiga-n/m keys work correctly.
*** Added: Alt-gadget3 command to clear all bookmarks.
*** Added: CL variables sWidth and sHeight to set the pixel width & height
of Uedit's screen. These belong in list 10 of the manual's argument lists.
*** Added: 2 new Config! defaults for setting the screen's pixel width &
height. The 2 reserved slots after "Trap menus" are replaced:
old:
<0> Trap menus to use menu mouse button as a key
<0> Reserved.
<0> Reserved.
new:
<0> Trap menus to use menu mouse button as a key
<664> Screen width in pixels (640-1064)
<224> Screen height in pixels (gets auto-doubled for LACE) (200-1064)
------------
v2.6a ERRATA
*** FIXED: Line count was wrong when lines/page = 1.
*** FIXED: search() wouldn't find stuff like \\ or \*\*.
*** Added: Key names for middle mouse button:
middleDown macnum = 73
middleUp macnum = 75
Example: <normal-middleDown:
runKey(normal-buttonDown) .. deposit cursor
runKey(ctl-r) .. execute learned sequence
>
*** Added: '_' (underscore) after "Uedit" in title bar indicates OVERSTRIKE
mode is on:
"Uedit V2.6a [0]" it is OFF.
"Uedit_V2.6a [0]" OVERSTRIKE is ON.
*** Added: New font name & height defaults in Config!
<topaz> Font name
<8> Font pixel height (8-32)
*** Added: New setFont(fontName,fontHeight) CL fct for selecting font.
setFont(fontname,fontheight)
fontname: list 0
fontheight: list 10
returns eRUE if fontname exists with font size equal to fontheight. The
font may be in memory or on disk; if font isn't in memory it is loaded
from disk. When a new font is selected or when Uedit quits, the current
font is released.
setFont() does not change the font immediately or visibly. It merely
changes the stored font name and height. Next time Uedit's screen is
reopened - as when changing screens or returning from tiny window - the
new font is used. If the font cannot be found, topaz 8 is used by
default.
EXAMPLE command that switches Uedit's font. Notice that it goes to/from
tiny window in order to close/reopen the screen; and it runs startup cmd
so that menu item spacings will be recomputed for the new font:
<normal-esc:
setfont("topaz",11) toggle(toTiny) toggle(toTiny) runkey(startup) >
NOTE: Now you can use a proportional font in your Workbench 2.0 and a
non-proportional font in Uedit.
*** Added: tinyPriority CL argument and Config! default. This sets the task
priority of Uedit while in tiny window. Uedit does housekeeping in tiny
window and on large buffers this may consume resource, so you may wish to set
Uedit to a low priority in tiny window to keep it from hogging machine
resource during housekeeping or whatever work is being done in tiny window.
*** Added: setTaskPri() CL function to set Uedit's task priority.
setTaskPri(pri)
pri: list 10
This sets Uedit's task priority when it is not in tiny window. The
tinyPriority CL variable and Config! default sets its priority when it is
in tiny window.
*** Added: Dynamic use of Dictionary Supplement during spell checking. You
now can have an optional UDSupplement in buf41 for the spell checking cmds.
(See the rAmgia-c cmd in Config!S.) When the word isn't found in the main
dictionary, spell() looks in the supplement. The supplement must be in alpha
order; you can use SA-s to sort a stacked list of words to make a dictionary
supplement.
spell(B1,B2,B3)
B1,B3: list 0 (buffer or " ")
B2: list 2 (buffer)
The normal return for spell() is False; this indicates a bad word was found.
It also returns False if B2, the buffer being spell checked, does not exist
or if the speller is not up. If spell() returns True, it has reached eof.
It checks from the cursor forward in B2, stopping when a bad word is found.
If B1 is a buffer, optional spellings are put into B1. If B1 is " ", spell()
simply returns False when it finds a bad word. (See the commands in
Config!S.) When B1 is " " (no optional spellings), spell() may be aborted
with Amiga-ESC. When B1 is a buffer (to collect optional spellings), the
lookup of spelling options may be stopped early on by giving an input; the
options accumulate in the message line as they are found, and thus when you
see the option you want you can click it with the mouse and no further
options are sought. If B3 is a buffer, it is used as a supplemental
dictionary; the words in it should be on separate lines and in alphabetical
order. If B3 is " ", no supplement is used. (See spellerUp, startSpell()
and stopSpell.)
Cursor Action: Advances cursor until it finds a bad word or eof.
Display Action: If B=curFile, refreshes cursor; if offscreen, centers cursor.
Example:
if (not spellerUp) return
while (not spell(buf54,curFile," ")) runKey(virtual-z) .. replace bad words
*** Added: Uedit now processes work in tiny window. Just start a process,
click the title bar and switch immediately to tiny window. If a requester
requires an input, Uedit returns to its big screen. If a primitive mode
input is required, Uedit waits until you return to big screen and give the
input. Recall that you can set the priority of Uedit separately in big
screen and tiny window now also; thus you can start a big process and go to
tiny window and let Uedit finish the process using a lower (tiny window) task
priority, if you wish.
*** Added: A draw() CL function.
draw(x,y,color,mode,flag)
x,y,color,mode,flag: list 10
draws a line from the current position to x-y using the color, drawing mode,
and flag values specified. Color = 0-7 specifies a color; color = -1 means
use the current (last) color. mode values are: 0 = JAM1, 1 = JAM2, 2 = XOR,
4 = INVERSE. flag = 0 means do only a move(x,y) to set the current drawing
position to x-y; other arguments are ignored except the color is stored.
flag = 1 means draw a line to x-y using color, mode, and flag. Example: You
can draw (using XOR) a grating on top of the text in the window & erase it by
redrawing it again with XOR. You can draw boxes and other figures with the
mouse. draw() always returns True.
Compile BOTH of the cmds below to try this example. Press shft & the mouse
button and move the mouse:
Note how xor erases old box on second execution.
<virtual-esc:
draw(n0,n1, 0,2,0)
add(n54,n0,20)
draw(n54,n1, -1,2,1)
add(n53,n1,20)
draw(n54,n53,-1,2,1)
draw(n0,n53, -1,2,1)
draw(n0,n1, -1,2,1)
>
Place cursor or scroll if button held
<shft-buttonDown:
.. moveCursor(curFile,mouseLoc)
.. updateDisplay
mouseXY(n0,n1)
runkey(virtual-esc)
if (not mousedown) return
equateNum(n54,0)
while (not inputwaiting) {
trackmouse
mouseXY(n2,n3)
if (!eqNum(n2,n0) & !eqNum(n3,n1)) {
runKey(virtual-esc)
equateNum(n0,n2)
equateNum(n1,n3)
runKey(virtual-esc)
}
} >
Another example: XOR a grating onto text. Erase it on second execution.
<shft-esc:
..putmsg(" ") putmsg(" ")
..updateDisplay
equateNum(n0,-8)
while (add(n0,n0,8) & genum(sWidth,n0)) {
draw(n0,16,0,2,0)
draw(n0,sHeight,0,2,1)
} >
..equateNum(n0,50)
..equateNum(n2,550)
..equateNum(n1,25)
..equateNum(n3,150)
..runkey(virtual-b)
Draw a box of with corners (x-y) given by n0-n1 and n2-n3
..<virtual-b:
draw(n0,n1,2,2,0)
draw(n2,n1,-1,2,1)
draw(n2,n3,-1,2,1)
draw(n0,n3,-1,2,1)
draw(n0,n1,-1,2,1)
>
*** Added: 100 buffer & 100 number stacks.
getStackSize(B,N,S)
B,N,S: list 10 (integer)
Reports the current buffer stack size in B, number stack size in N, and save-
file stack size in S.
Example: .. get size of buffer stack 22 in n11 & number stack 99 in n12
equateNum(n11,22) equateNum(n12,99) getStackSize(n11,n12,n13)
pop(S,BN)
S,BN: list 10 (buffer or number)
pops the next item from stack S into buffer or number variable BN. Returns
False if stack S is empty. If S is a buffer variable such as buf10, buffer
stack 10 is used; if S is a number variable such as N22, number stack 22 is
used. The stack is popped variable BN. If a buffer is popped off a buffer
stack the current buffer BN is deleted and the stack is popped into buffer
variable BN. Note that the stack is LIFO, last-in-first-out. (See
getStackSize(), push(), and rollStack().)
Display Action: Displays "home" buffer, if pop into curFile.
Example: pop(n22, pageLines) .. pop number stack 22 into pageLines variable.
pop(buf99, buf3) .. pop buffer stack 99 into buf3 slot, killing old buf3.
push(S,BN)
S,BN: list 10 (buffer or number)
pushes item BN, a buffer or number, onto the stack indicated by S. If S is a
buffer variable such as b10, it means use buffer stack 10; if it is a number
variable such as n22, it means use number stack 22. There are 100 buffer and
100 number stacks. False is returned if 8 bytes is not available for the
stack entry. If BN is curFile, the "home" buffer becomes the new curFile; If
BN is the last file buffer, a new NoName buffer is opened. (See rollStack(),
getStackSize(), and pop().)
Display Action: If curFile pushed, displays new curFile.
Example: push(buf10, curFile) .. push curFile onto buffer stack 10.
push(n0,lineLength) .. push lineLength onto number stack 10.
rollStack(X,N)
X: list 10 (buffer or integer)
N: list 10 (integer)
Rolls the buffer stack by amount N, if X is a buffer argument; rolls the
number stack by amount N, if X is an integer argument. X indicates which
buffer or number stack to roll. rollStack() returns False, if the (buffer or
number) stack size is less than 2 or if N is 0. N may be positive or
negative, and the stack is rolled forward or backward based on the sign and
amount of N. The stacks are LIFO, last-in-first-out. If N is 1, the first-
out stack entry is rolled to the last-out position, so that the second-out
becomes the first-out. If N is -1, the last-out entry is rolled to the
first-out slot. (See push(), pop(), and getStackSize().)
Example: rollStack(buf10,1) .. rolls buffer stack 10 forward by 1.
rollStack(n0,n54) .. rolls number stack 0 by the amount in n54.
------------
*** In the manual page 8 where it says to slide the screen by putting the
mouse at the far right, this is no longer true. Instead you should put the
mouse at the very top of the screen to slide the screen.
------------
v2.6b ERRATA
None. V2.6b just fixes a few minor bugs. See Revision-History.
------------
v2.6c ERRATA
None. V2.6c just fixes a few minor bugs. See Revision-History.
------------
v2.6d ERRATA
NEW: Created new rexxKey command name. Like startup, idle, and preKey,
rexxKey does not use shiftkeys. rexxKey runs automatically in idle periods
ONLY if there is a rexx msg/reply waiting to be processed. The special key
macroNums now are:
rexxKey 1145
idle 1146
preKey 1147
startup 1148
NOTE: The purpose of rexxKey is to reduce overhead. When the idle cmd was
used to process rexx traffic with idleTime=0, there was high overhead because
idle constantly. rexxKey runs (during idle periods) ONLY if there is an
incoming msg/reply to process. And if you process the msg/reply in your
rexxKey cmd, rexxKey won't run again until there is another msg/reply to
process. (In the std config, rexxKey runs ONLY if autoTraffic mode On. See
Config!R.)
NOTE: In order to keep rexxKey from running repeatedly in idle periods, you
MUST process the incoming msg/reply by calling rexxIn() in your rexxKey cmd.
In the std config turn on autoTraffic and this is taken care of
automatically. (See Config!R.)
NOTE: Config!R was modified to swap virtual-t with the rexxKey cmd instead
of with the idle cmd; the idle cmd is no longer used in Config!R. Don't
forget to modify your custom Config!R, if you aren't going to use the one in
the std config on the Uedit disk.
NEW: Created new sortLines(buffer=list 2,caseSensitive=list 10) CL fct. It
sorts the lines in the buffer. If caseSense is non-zero, case sensitivity is
used in the sort. If caseSense is 0, case sensitivity is not used in the
sort.
NEW: Created inTiny CL fct, returns TRUE if currently in tiny window.
NEW: Underscore mark in title bar to show Changed status.
NEW: Fcreated new CL functions screenToBack and screenToFront.
NEW: Tiny window now adjusts its height to be double approx the cli window's
font height.
NEW: When smartTabs is TRUE, spacesToTabs/tabsToSpaces warns when an eol is
encountered and a quote is not closed.
------------
v2.6d ERRATA
Certain keys could not be input and had to be moved because the Amiga uses
them. The LEFT Amiga mouse & gadget keys for Hyper Text were moved to RIGHT
Amiga. Set Left Margin was moved from lAmiga-m to lAmiga-k. The keys
changed were:
lAmiga-gadget1 --> rAmiga-gadget1
lAmiga-gadget3 --> rAmiga-gadget3
lAmiga-gadget4 --> rAmiga-gadget4
lAmiga-buttonDown --> rAmiga-buttonDown
lAmiga-m --> lAmiga-k
------------
v2.6e ERRATA
Bookmarks: The bookmark commands were improved. Bookmarks are now named.
The alt-gadget3 Clear Marks command was moved to shft-gadget4 and put into
the Bookmarks submenu, and the 4th gadget name was changed to "Up/Clr Marks".
Now the shift-gadgets let you goto next mark, goto prev mark, set a mark and
name it, and clear the marks. When you clear the marks they are set by
default to sFile, eFile, sHilite, eHilite, sInvert, eInvert, locA, and locB,
and they are named "Start of file", "End of file", and so on accordingly.
buf60 is now used for storing bookmark names.