home *** CD-ROM | disk | FTP | other *** search
-
- 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.
-