home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frozen Fish 1: Amiga
/
FrozenFish-Apr94.iso
/
bbs
/
alib
/
d7xx
/
d770
/
uedit.lha
/
Uedit
/
Ustar.LZH
/
UstarConfig!B
< prev
next >
Wrap
Text File
|
1992-08-07
|
90KB
|
2,515 lines
Command key translation
For Learn mode or marking - action depends on prefix key
<ctl-kp0: runKey(ctl-0) >
For Learn mode or marking - action depends on prefix key
<ctl-0:
if (eqNum(n84,0)) { runKey(virtual-kp7) return }
putMsg(" ")
if (eqNum(n84,10)) { equateNum(n84,0)
equateNum(n99,70) runKey(virtual-`) return }
if (eqNum(n84,20)) {
equateNum(n99,70) runKey(virtual-`) return }
if (eqNum(n84,30)) { runKey(virtual-kp7) return }
if (eqNum(n84,40)) { equateNum(n84,0) while (abortPrint) nothing }
>
Internal key - mark/goto position in file
<virtual-`:
if (eqNum(n84,10)) {
putMsg("Packing/Marking...") locToIndex(curFile,n[n99],atCursor) }
else {
putMsg("Packing/Locating...") indexToLoc(curFile,atCursor,n[n99])
}
equateNum(n84,0) putMsg(" ") return
>
Internal key - mark/goto position in file (by old lines method; historical)
virtual-`:
if (eqNum(n84,10)) locToLine(curFile,n[n99],atCursor)
else {
putMsg("Locating...") lineToLoc(curFile,atCursor,n[n99])
moveCursor(curFile,downLine) .. correction by 1
if (not onScreen(atCursor)) vScroll(atCursor) putMsg(" ") }
equateNum(n84,0) return
>
For Learn mode or marking - action depends on prefix key
<ctl-kp1: runKey(ctl-1) >
For Learn mode or marking - action depends on prefix key
<ctl-1:
if (eqNum(n84,0)) {
equateNum(n85,0) .. no macro stuff for manually-activated learn mode
if (not getFlag(curFile,learnMode)) putMsg("*** Learn Started! ***")
else putMsg("--- Learn Cancelled! ---")
flipFlag(curFile,learnMode) return }
putMsg(" ")
if (eqNum(n84,10)) { ..equateNum(n84,0)
equateNum(n99,71) runKey(virtual-`) return }
if (eqNum(n84,20)) {
equateNum(n99,71) runKey(virtual-`) return }
if (eqNum(n84,30)) { equateNum(n84,0)
putMsg("Multiplier for next single command:")
inputNum(cmdMultiplier) return }
if (eqNum(n84,40)) restartPrint
>
For Learn mode or marking - action depends on prefix key
<ctl-kp2: runKey(ctl-2) >
For Learn mode or marking - action depends on prefix key
<ctl-2:
if (eqNum(n84,0)) { if (getFlag(curFile,learnMode)) {
putMsg("+++ I've Learned it! +++")
if (gtNum(n85,0)) delay(5) }
runLearn
if (gtNum(n85,0)) { equateNum(n98,n85) equateNum(n85,0)
freeBuf(buf99) insertRgn(buf99,sFile,"Macro ",all) insertChar(buf99,n98)
freeBuf(buf98) insertRgn(buf98,sFile,"Saving ",all)
insertRgn(buf98,atCursor,buf99,all) putMsg(buf98)
if (not saveLearn(n98)) { putMsg("SaveLearn error") returnFalse }
insertChar(buf99,":") insertChar(buf99," ")
putMsg("Optional description for this macro:")
inputString(buf99)
if (not isEmpty(buf99)) {
insertRgn(buf99,sFile,"\"",all) insertRgn(buf99,eFile,"\"",all)
freeBuf(buf98) insertRgn(buf98,sFile,"Filenote Learn",all)
toWord(buf98,n98) insertRgn(buf98,atCursor,"! ",all)
insertRgn(buf98,atCursor,buf99,all)
freeBuf(buf82)
if (not execute(buf82,buf98)) {
putMsg("Error - DOS Filenote") returnFalse }
}
}
return }
putMsg(" ")
if (eqNum(n84,10)) {
equateNum(n99,72) runKey(virtual-`) return }
if (eqNum(n84,20)) {
equateNum(n99,72) runKey(virtual-`) return }
if (eqNum(n84,30)) { equateNum(n84,0) putMsg("Load Learn #:")
if (inputNum(n99)) if (not loadLearn(n99)) {
putMsg("ERROR - Couldn't load Learn file.") beepDisplay returnFalse }
return }
if (eqNum(n84,40)) runKey(virtual-kp7)
>
Set/goto mark - depends on prefix key
<ctl-kp3: runKey(ctl-3)>
Set/goto mark - depends on prefix key
<ctl-3:
putMsg(" ")
if (eqNum(n84,10)) {
equateNum(n99,73) runKey(virtual-`) return }
if (eqNum(n84,20)) {
equateNum(n99,73) runKey(virtual-`) return }
else runKey(virtual-kp7)
>
Set/goto mark - depends on prefix key
<ctl-kp4: runKey(ctl-4)>
Set/goto mark - depends on prefix key
<ctl-4:
putMsg(" ")
if (eqNum(n84,10)) {
equateNum(n99,74) runKey(virtual-`) return }
if (eqNum(n84,20)) {
equateNum(n99,74) runKey(virtual-`) return }
else runKey(virtual-kp7)
>
Set/goto mark - depends on prefix key
<ctl-kp5: runKey(ctl-5)>
Set/goto mark - depends on prefix key
<ctl-5:
putMsg(" ")
if (eqNum(n84,10)) {
equateNum(n99,75) runKey(virtual-`) return }
if (eqNum(n84,20)) {
equateNum(n99,75) runKey(virtual-`) return }
else runKey(virtual-kp7)
>
Set/goto mark - depends on prefix key
<ctl-kp6: runKey(ctl-6)>
Set/goto mark - depends on prefix key
<ctl-6:
if (eqNum(n84,0)) { .. get rid of eol's (merge lines)
if (not is(curFile,eLine)) moveCursor(curFile,eLine)
moveCursor(curFile,sChar)
if (not is(curFile,space))
{ moveCursor(curFile,eChar) insertChar(curFile,32) }
else moveCursor(curFile,eChar)
clearChar(curFile)
if (not is(curFile,sLine)) moveCursor(curFile,sLine)
return
}
putMsg(" ")
if (eqNum(n84,10)) {
equateNum(n99,76) runKey(virtual-`) return }
if (eqNum(n84,20)) {
equateNum(n99,76) runKey(virtual-`) return }
else runKey(virtual-kp7)
>
Set/goto mark - depends on prefix key
<ctl-kp7: runKey(ctl-7)>
Set/goto mark - depends on prefix key
<ctl-7:
putMsg(" ")
if (eqNum(n84,10)) {
equateNum(n99,77) runKey(virtual-`) return }
if (eqNum(n84,20)) {
equateNum(n99,77) runKey(virtual-`) return }
else runKey(virtual-kp7)
>
Set/goto mark - depends on prefix key
<ctl-kp8: runKey(ctl-8)>
Set/goto mark - depends on prefix key
<ctl-8:
putMsg(" ")
if (eqNum(n84,10)) {
equateNum(n99,78) runKey(virtual-`) return }
if (eqNum(n84,20)) {
equateNum(n99,78) runKey(virtual-`) return }
else runKey(virtual-kp7)
>
Set/goto mark - depends on prefix key
<ctl-kp9: runKey(ctl-9)>
Set/goto mark - depends on prefix key
<ctl-9:
putMsg(" ")
if (eqNum(n84,10)) {
equateNum(n99,79) runKey(virtual-`) return }
if (eqNum(n84,20)) {
equateNum(n99,79) runKey(virtual-`) return }
else runKey(virtual-kp7)
>
Simpler version of ctl-a code that doesn't include complete WS emulation
for punctuation & other details. Replace first section of ctl-a code to use.
equateNum(n98,2)
while (moveCursor(curFile,sChar)) {
if (is(curFile,whiteSpace)) {
if (eqNum(n98,1)) { moveCursor(curFile,eChar) return }
if (is(curFile,eLine)) return
}
else {
if (eqNum(n98,2)) moveCursor(curFile,sChar)
equateNum(n98,1)
}
}
ctl-a flag n98: 0-init, 1-whitespace, 2-char, 3-punct
ctl-a flag n99: 0-init/no transition 1-X transition
Word Left; other actions depend on prefix key
<ctl-a:
if (eqNum(n84,0)) {
equateNum(n98,0) equateNum(n99,0)
goto label(2)
while (moveCursor(curFile,sChar)) {
label(2)
if (not is(curFile,";")) if (not is(curFile,":"))
if (not is(curFile,".")) if (not is(curFile,","))
if (not is(curFile,"?")) if (not is(curFile,"!")) goto label(1)
if (not eqNum(n98,0)) {
if (geNum(n98,2)) if (eqNum(n99,1)) {
moveCursor(curFile,eChar) return }
equateNum(n99,1)
}
equateNum(n98,3) goto label(3)
label(1)
if (not is(curFile,whiteSpace)) {
if (not eqNum(n98,0)) equateNum(n99,1)
equateNum(n98,2) goto label(3)
}
if (is(curFile,whiteSpace)) {
if (not eqNum(n98,0)) {
if (geNum(n98,2)) if (eqNum(n99,1)) {
moveCursor(curFile,eChar) return }
if (is(curFile,eLine)) return
}
equateNum(n98,1)
}
label(3)
}
return
}
putMsg(" ")
if (eqNum(n84,10)) { equateNum(n84,0)
if (getFlag(curFile,changed)) equateNum(n99,5) else equateNum(n99,0)
putMsg("Save buffer as:") freeBuf(buf99) freeBuf(buf96)
getFileName(buf96,curFile)
insertRgn(buf99,eFile,buf96,all) moveCursor(buf99,sFile)
if (inputString(buf99)) if (not isEmpty(buf99)) {
setFileName(curFile,buf99)
if (not saveFile(curFile)) {
putMsg("ERROR - couldn't save file.") beepDisplay returnFalse } }
else { putMsg("No save!") returnFalse }
setFileName(curFile,buf96)
if (eqNum(n99,0)) if (getFlag(curFile,changed)) flipFlag(curFile,changed)
if (eqNum(n99,5)) if (not getFlag(curFile,changed))
flipFlag(curFile,changed)
return }
if (eqNum(n84,20)) { equateNum(n84,0)
moveCursor(buf89,sFile) putMsg("Find:") inputString(buf89)
moveCursor(buf89,eFile) putMsg("Replace with:") inputString(buf88)
equateNum(n81,11) runKey(virtual-kp5) return }
if (eqNum(n84,30)) { runKey(virtual-kp7) return }
if (eqNum(n84,40)) { equateNum(n84,0)
printerCode(curFile,15,0,0) updateDisplay putMsg("Elite pitch On") }
>
Reformat; other actions depend on prefix key
<ctl-b:
if (eqNum(n84,0)) { runKey(virtual-kp2) return }
putMsg(" ")
if (eqNum(n84,10)) { equateNum(n84,0)
equateLoc(curFile,sHilite,atCursor) refreshDisplay return }
if (eqNum(n84,20)) { equateNum(n84,0)
if (gtLoc(curFile,eHilite,sHilite)) {
moveCursor(curFile,sHilite)
if (not onScreen(atCursor)) vScroll(atCursor) }
else { putMsg("No block!") returnFalse }
return }
if (eqNum(n84,30)) { equateNum(n84,0) flipFlag(curFile,busies) return }
if (eqNum(n84,40)) { equateNum(n96,2) runKey(virtual-p) }
>
Page down; other actions depend on prefix key
<ctl-c:
if (eqNum(n84,0)) { moveCursor(curFile,ePage) vScroll(atCursor)
if (not thisKey) refreshDisplay
if (is(curFile,eFile)) returnFalse else returnTrue }
putMsg(" ")
if (eqNum(n84,10)) { equateNum(n84,0)
if (gtLoc(curFile,eHilite,sHilite)) {
if (not getFlag(curFile,columnar)) {
freeBuf(buf86)
insertRgn(buf86,sFile,curFile,hilite)
moveCursor(curFile,sChar) equateLoc(curFile,sHilite,atCursor)
moveCursor(curFile,eChar)
insertRgn(curFile,atCursor,buf86,all)
equateLoc(curFile,eHilite,atCursor) incLoc(curFile,sHilite)
moveCursor(curFile,sHilite)
if (not onScreen(atCursor)) vScroll(atCursor) refreshDisplay }
else {
freeBuf(buf85)
copyColData(buf85,sFile,curFile,hilite,n80)
copyColData(curFile,atCursor,buf85,all,n80) } }
else { putMsg("No block!") returnTrue }
return }
if (eqNum(n84,20)) { equateNum(n84,0)
moveCursor(curFile,eFile) vScroll(atCursor) return }
if (eqNum(n84,30)) { equateNum(n84,0) .. center line of text
if (not is(curFile,sLine)) moveCursor(curFile,sLine)
if (is(curFile,formFeed)) goto label(2) .. also centers all FF lines
if (is(curFile,eLine)) { moveCursor(curFile,downLine) returnTrue }
if (is(curFile,eFile)) returnFalse
while (nothing) { .. clear leading whitespace
if (is(curFile,formFeed)) goto label(2)
if (is(curFile,eLine)) returnTrue
if (is(curFile,eFile)) returnFalse
if (not is(curFile,space)) if (not is(curFile,9)) goto label(1)
clearChar(curFile) }
label(1)
moveCursor(curFile,eLine)
if (is(curFile,eFile)) insertChar(curFile,eLine)
moveCursor(curfile,sChar)
while (nothing) { .. clear trailing whitespace
if (is(curFile,formFeed)) goto label(2)
if (is(curFile,sLine)) goto label(2)
if (not is(curFile,space)) if (not is(curFile,9)) goto label(2)
clearChar(curFile) moveCursor(curFile,sChar) }
label(2)
locToCol(curfile,n99,atCursor) .. get length of line
getLocal(curFile,n98,lineLength) .. get local line length
if (not is(curFile,sLine)) moveCursor(curFile,sLine)
sub(n97,n98,n99)
if (gtNum(n97,0)) { .. and center it
div(n97,n97,2)
do (n96,1,n97) insertChar(curFile," ") }
moveCursor(curFile,downLine) .. added - WS4 compatibility
if (not is(curFile,sLine)) moveCursor(curFile,sLine)
return }
if (eqNum(n84,40)) { equateNum(n84,0)
putMsg("Enter Text Color (30-39):")
equateNum(n98,30) .. default text color = black
if (inputNum(n99)) if (geNum(n99,30)) if (geNum(39,n99)) equateNum(n98,n99)
putMsg("Enter Background (paper) color (40-49):")
equateNum(n97,47) .. default paper color = white ? may need to adjust
if (inputNum(n99)) if (geNum(n99,40)) if (geNum(49,n99)) equateNum(n97,n99)
printerCode(curFile,12,n98,0)
printerCode(curFile,13,n97,0) updateDisplay
putMsg(" ") }
>
Move right; other actions depend on prefix key
<ctl-d:
if (eqNum(n84,0)) { moveCursor(curFile,eChar) return }
putMsg(" ")
if (eqNum(n84,10)) {
equateNum(n84,0)
putMsg("Load Filename:")
..freeBuf(buf77)
inputString(buf77)
if (isEmpty(curFile)) freeBuf(curFile)
if (not isEmpty(buf77)) if (loadFile(buf77)) equateNum(n82,curFile)
return }
if (eqNum(n84,20)) { equateNum(n84,0)
if (not is(curFile,eLine)) moveCursor(curFile,eLine) return }
if (eqNum(n84,30)) { equateNum(n84,0)
flipFlag(curFile,spooks) refreshDisplay return }
if (eqNum(n84,40)) { equateNum(n96,3) runKey(virtual-p) }
>
Move up; other actions depend on prefix key
<ctl-e:
if (eqNum(n84,0)) { moveCursor(curFile,upLine) return }
putMsg(" ")
if (eqNum(n84,10)) {
equateNum(n84,0)
putMsg("Rename buffer to:")
getFileName(buf77,curFile) moveCursor(buf77,sFile)
if (inputString(buf77)) setFileName(curFile,buf77)
return }
if (eqNum(n84,20)) { equateNum(n84,0)
moveCursor(curFile,sPage) return }
if (eqNum(n84,30)) { runKey(virtual-kp8) return }
if (eqNum(n84,40)) runKey(virtual-kp8)
>
Right word; other actions depend on prefix key
<ctl-f:
if (eqNum(n84,0)) {
equateNum(n98,2)
if (is(curFile,whiteSpace)) equateNum(n98,1)
goto label(2)
while (moveCursor(curFile,eChar)) {
if (is(curFile,eLine)) return
if (not is(curFile,whiteSpace)) {
if (eqNum(n98,1)) return
if (is(curFile,sLine)) return
label(2) .. remove label(2) stuff & next 5 lines for no WS punct.
if (not is(curFile,";")) if (not is(curFile,":"))
if (not is(curFile,".")) if (not is(curFile,","))
if (not is(curFile,"?")) if (not is(curFile,"!")) goto label(1)
equateNum(n98,1)
label(1)
}
else equateNum(n98,1)
}
return
}
putMsg(" ")
if (eqNum(n84,10)) { equateNum(n84,0) runKey(shftCtl-f) return }
if (eqNum(n84,20)) { equateNum(n84,0)
putMsg("Find:") moveCursor(buf89,sFile) inputString(buf89)
equateNum(n81,1) runKey(virtual-kp5) return }
if (eqNum(n84,30)) { runKey(virtual-kp8) return }
if (eqNum(n84,40)) { equateNum(n84,0)
freeBuf(buf89) insertRgn(buf89,sFile,"?$??",all)
runKey(shftAlt-f) }
>
Delete character; other actions depend on prefix key
<ctl-g:
if (eqNum(n84,0)) { clearChar(curFile) return }
putMsg(" ")
if (eqNum(n84,10)) {
equateNum(n84,0)
if (gtLoc(curFile,eHilite,sHilite)) {
if (not getFlag(curFile,columnar)) {
freeBuf(buf86) insertRgn(buf86,sFile,curFile,hilite) }
else { freeBuf(buf85) copyColData(buf85,sFile,curFile,hilite,n80) } }
else { putMsg("No block!") returnFalse }
return }
if (eqNum(n84,20)) { equateNum(n84,0)
putMsg("Character to find:")
if (not getFlag(curFile,useKeys)) flipFlag(curFile,useKeys)
getChar(n99)
flipFlag(curFile,useKeys)
putMsg("Finding...")
while (moveCursor(curFile,eChar)) if (is(curFile,n99)) goto label(5)
label(5)
putMsg(" ") return }
if (eqNum(n84,30)) { equateNum(n84,0) flipFlag(curFile,autoIndent)
if (getFlag(curFile,autoIndent)) putMsg("Auto Indent ON")
else putMsg("No Auto Indent")
return }
if (eqNum(n84,40)) { equateNum(n84,0) putMsg(
"General-purpose printer control code entry (see Help). Code #:")
if (inputNum(n99)) if (geNum(n99,0)) if (geNum(75,n99)) {
equateNum(n98,0) equateNum(n97,0)
if (eqNum(n99,12)) goto label(1)
if (eqNum(n99,13)) goto label(1)
if (eqNum(n99,48)) goto label(2)
if (eqNum(n99,57)) goto label(2)
if (eqNum(n99,58)) goto label(2)
if (eqNum(n99,75)) goto label(2)
if (eqNum(n99,64)) goto label(3)
if (eqNum(n99,65)) goto label(3)
goto label(4)
label(2) putMsg("N value:") inputNum(n98) goto label(4)
label(3) putMsg("1st N value:") inputNum(n98)
putMsg("2nd N value:") inputNum(n97)
label(4) printerCode(curFile,n99,n98,n97)
updateDisplay putMsg(" ") return
label(1) putMsg("Use ^PC for color") returnFalse }
putMsg(" ") returnFalse }
>
Actions depend on prefix key
<ctl-h:
if (eqNum(n84,0)) { moveCursor(curFile,sChar) clearChar(curFile) return }
putMsg(" ")
if (eqNum(n84,10)) { equateNum(n84,0)
equateLoc(curFile,sHilite,eHilite) refreshDisplay return }
if (eqNum(n84,20)) { equateNum(n84,0)
putMsg("Character to find:")
if (not getFlag(curFile,useKeys)) flipFlag(curFile,useKeys)
getChar(n99)
flipFlag(curFile,useKeys)
putMsg("Finding...")
while (moveCursor(curFile,sChar)) if (is(curFile,n99)) goto label(1)
label(1)
putMsg(" ") return }
if (eqNum(n84,30)) { equateNum(n84,0) runKey(altCtl-h) return }
if (eqNum(n84,40)) runKey(virtual-kp8)
>
Tab; other actions depend on prefix key
<ctl-i:
if (eqNum(n84,0)) { runKey(normal-tab) return }
putMsg(" ")
if (eqNum(n84,10)) { equateNum(n84,0)
if (eqNum(n80,0)) { equateNum(n80,1)
putMsg("Column INSERT mode: ^KV,^KC,^U insert; ^KY removes") }
else { equateNum(n80,0)
putMsg("Column REPLACE mode: ^KV,^KC,^U overlay; ^KY space-fills") }
return }
if (eqNum(n84,20)) { equateNum(n84,0) putMsg("Go to page #:")
if (inputNum(n99)) {
putMsg("Finding page...") gotoPage(curFile,n99) putMsg(" ") }
return }
if (eqNum(n84,30)) { equateNum(n84,0)
putMsg(
"Use mouse click/drag, Tab, Space, BS, Del (otherkey=quit,R-Esc=abort)")
if (not getFlag(curFile,useKeys)) flipFlag(curFile,useKeys)
setRuler flipFlag(curFile,useKeys)
putMsg(" ") return }
if (eqNum(n84,40)) { equateNum(n84,0)
getLocal(curFile,n96,tabTable) .. save current table
setLocal(curFile,tabTable,0) .. set to predefined 8-stop table
runKey(normal-tab) .. tab to next 8-stop tab
setLocal(curFile,tabTable,n96) .. restore previous tab table
}
>
Help; other actions depend on prefix key
<ctl-j:
if (eqNum(n84,0)) { runKey(normal-help) return }
putMsg(" ")
if (eqNum(n84,10)) { runKey(ctl-q) return }
if (eqNum(n84,20)) { runKey(virtual-kp7) return }
if (eqNum(n84,30)) { equateNum(n84,0) flipFlag(curFile,rightJustify)
if (getFlag(curFile,rightJustify)) putMsg("Right-Justify ON")
else putMsg("No Right-Justify")
return }
if (eqNum(n84,40)) { equateNum(n84,0)
getLocal(curFile,n99,pageLines) freeBuf(buf99) toWord(buf99,n99)
insertRgn(buf99,sFile,"Lines/page (now ",all)
insertRgn(buf99,eFile,"):",all) putMsg(buf99)
if (inputNum(n99)) if (gtNum(n99,0)) {
setLocal(curFile,pageLines,n99) equateNum(pageLines,n99) } }
>
Repeat last Find/Replace; other actions depend on prefix key
<ctl-l:
if (eqNum(n84,0)) { runKey(virtual-kp6) return }
else putMsg(" ")
if (eqNum(n84,10)) { equateNum(n84,0)
freeBuf(buf98)
if (not execute(buf98,"cd")) {
putmsg("AmigaDOS CD command not found") beepDisplay returnFalse }
putMsg("Change default directory to (current shown; WorkBench won't work)")
moveCursor(buf98,eFile) moveCursor(buf98,sChar) clearChar(buf98)
if (inputString(buf98))
if (not changeDir(buf98)) {
putMsg(
"CD returned an error - check to make sure is valid Disk or Directory.")
insertRgn(buf98,eFile," ??",all)
putMsg(buf98) beepDisplay delay(10) }
else { insertRgn(buf98,sFile,"Current Dir is ",all) putMsg(buf98) }
}
if (eqNum(n84,20)) { equateNum(n84,0) freeBuf(buf98) runKey(virtual-l)
return }
if (eqNum(n84,30)) { runKey(virtual-kp8) return }
if (eqNum(n84,40)) { equateNum(n84,0) insertChar(curFile,12) }
>
Speller - very rough
<virtual-l: equateNum(n84,0)
if (isEmpty(buf98)) {
if (getFlag(curFile,changed)) {
if (not askYesNo("MicroSpell this file? (must save to disk; is slow)"))
returnFalse
if (not saveFile(curFile)) {
putMsg("ERROR - couldn't save this file") beepDisplay
}
}
else if (not askYesNo("MicroSpell this file? (is slow!!)")) returnFalse
getFileName(buf98,curFile)
}
else {
if (not askYesNo("MicroSpell this/these words? (is slow!!)")) returnFalse
freeBuf(buf99) insertRgn(buf99,sFile,buf98,all)
setFileName(buf99,"word-spell")
if (not saveFile(buf99)) {
putMsg("Error - can't save temp file") returnFalse }
freeBuf(buf98) insertRgn(buf98,sFile,"word-spell",all)
}
insertRgn(buf98,sFile,"run spell -d -w ",all)
putMsg("Check CLI for progress. When done, load \"spell.lst\" for bad words")
if (not execute(" ",buf98)) putMsg("Error - couldn't run speller")
>
Same as Return key; other actions depend on prefix key
<ctl-m: if (eqNum(n84,0)) { runKey(normal-return) return }
putMsg(" ")
if (eqNum(n84,10)) { equateNum(n84,0)
if (gtLoc(curFile,eHilite,sHilite)) {
runKey(alt-0)
equateLoc(curFile,locA,eHilite) ..decLoc(curFile,locA)
if (not getFlag(curFile,columnar)) {
equateLoc(curFile,atCursor,sHilite) decLoc(curFile,locA)
while (not gtLoc(curFile,atCursor,locA)) {
if (is(curFile,digit)) runKey(virtual-=)
else moveCursor(curFile,eChar)
}
}
else {
locToCol(curFile,n95,sHilite) locToCol(curFile,n96,locA)
equateLoc(curFile,atCursor,sHilite)
while (not gtLoc(curFile,atCursor,locA)) {
while (nothing) {
if (gtLoc(curFile,atCursor,locA)) goto label(1)
locToCol(curFile,n97,atCursor) ..add(n97,n97,1)
if (geNum(n97,n96)) goto label(1)
if (is(curFile,digit)) runKey(virtual-=)
else moveCursor(curFile,eChar)
}
label(1)
moveCursor(curFile,downLine)
colToLoc(curFile,atCursor,n95)
}
}
equateLoc(curFile,atCursor,eHilite)
freeBuf(buf99) div(n97,n90,100)
if (gtNum(0,n90)) if (eqNum(n97,0)) insertChar(buf99,"-")
toWord(buf99,n97) insertChar(buf99,".")
if (gtNum(0,n90)) mul(n97,n90,-1) else equateNum(n97,n90)
mod(n97,n97,100) if (gtNum(10,n97)) insertChar(buf99,"0")
toWord(buf99,n97)
insertRgn(buf99,sFile,"Total: ",all)
insertRgn(buf99,eFile," Use alt-\ to get # into doc @ cursor.",all)
putMsg(buf99)
if (not onScreen(atCursor)) vScroll(atCursor)
}
else { putMsg("No block!") returnFalse }
return
}
if (eqNum(n84,20)) { equateNum(n84,0)
freeBuf(buf82)
if (not execute(buf82,"Run xe")) {
putMsg("Error - Couldn't run xe calculator for some reason")
beepDisplay returnFalse }
return }
if (eqNum(n84,30)) { equateNum(n84,0)
freeBuf(buf99) insertRgn(buf99,sFile,"Set n-variable # (default ",all)
toWord(buf99,n86) insertRgn(buf99,atCursor,"):",all) putMsg(buf99)
if (inputNum(n99)) equateNum(n86,n99) else equateNum(n99,n86)
freeBuf(buf99) insertRgn(buf99,sFile,"Set n",all) toWord(buf99,n99)
insertRgn(buf99,atCursor," to value (now ",all)
toWord(buf99,n[n99]) insertRgn(buf99,atCursor,"):",all) putMsg(buf99)
equateNum(n98,n[n99])
if (not inputNum(n[n99])) equateNum(n[n99],n98)
return }
if (eqNum(n84,40)) runKey(virtual-kp8)
>
Insert empty line; other actions depend on prefix key
<ctl-n:
if (eqNum(n84,0)) {
insertChar(curFile,eLine) moveCursor(curFile,sChar)
returnTrue }
putMsg(" ")
if (eqNum(n84,10)) { equateNum(n84,0) flipFlag(curFile,columnar)
if (getFlag(curFile,columnar)) putMsg("Block COLUMN mode")
else putMsg("Block LINES mode")
return }
if (eqNum(n84,20)) { equateNum(n84,0)
if (not is(curFile,sWord)) moveCursor(curFile,sWord)
equateLoc(curFile,sInvert,atCursor)
if (not is(curFile,eWord)) moveCursor(curFile,eWord)
equateLoc(curFile,eInvert,atCursor)
freeBuf(buf98) insertRgn(buf98,sFile,curFile,invert) updateDisplay
runKey(virtual-l) return }
if (eqNum(n84,30)) { runKey(ctl-i) return }
if (eqNum(n84,40)) { equateNum(n84,0)
printerCode(curFile,14,0,0) updateDisplay putMsg("Normal (Pica) pitch") }
>
Page up; other actions depend on prefix key
<ctl-r:
if (eqNum(n84,0)) { moveCursor(curfile,sPage)
vScroll(atCursor) if (not thisKey) refreshDisplay
if (is(curFile,sFile)) returnFalse else returnTrue }
putMsg(" ")
if (eqNum(n84,10)) { equateNum(n84,0)
if (is(curFile,sFile)) equateNum(n95,10) else equateNum(n95,0)
moveCursor(curFile,sChar) equateLoc(curFile,locA,atCursor)
if (eqNum(n95,0)) moveCursor(curFile,eChar)
putMsg("Filename to insert:")
inputString(buf76) if (not isEmpty(buf76))
if (not insertFile(curFile,atCursor,buf76)) {
putMsg("ERROR - Couldn't find file.") beepDisplay returnFalse }
if (eqNum(n95,10)) moveCursor(curFile,sFile)
else { equateLoc(curFile,atCursor,locA) moveCursor(curFile,eChar) }
return }
if (eqNum(n84,20)) { equateNum(n84,0)
moveCursor(curFile,sFile) vScroll(atCursor) return }
if (eqNum(n84,30)) { equateNum(n84,0)
getLocal(curFile,n99,lineLength)
freeBuf(buf99) toWord(buf99,n99) insertRgn(buf99,sFile,
"Line length (now ",all) insertRgn(buf99,eFile,"):",all) putMsg(buf99)
if (inputNum(n99)) { setLocal(curFile,lineLength,n99)
equateNum(lineLength,n99) } }
if (eqNum(n84,40)) runKey(virtual-kp8)
>
Move left; other actions depend on prefix key
<ctl-s:
if (eqNum(n84,0)) { moveCursor(curFile,sChar) return }
putMsg(" ")
if (eqNum(n84,10)) { equateNum(n84,0)
if (not getFlag(curFile,changed)) {
putMsg("Buffer unchanged!") returnFalse }
else saveFile(curFile)
return }
if (eqNum(n84,20)) { equateNum(n84,0)
if (not is(curFile,sLine)) moveCursor(curFile,sLine)
return }
if (eqNum(n84,30)) { runKey(virtual-kp8) return }
if (eqNum(n84,40)) { equateNum(n96,5) runKey(virtual-p) }
>
Delete word; other actions depend on prefix key
<ctl-t:
if (eqNum(n84,0)) { .. delete word; OK
if (not eqLoc(curFile,locB,atCursor)) freeBuf(buf86)
equateLoc(curFile,locA,atCursor)
equateNum(n98,0)
if (is(curFile,whiteSpace)) equateNum(n98,1)
goto label(2)
while (moveCursor(curFile,eChar)) {
if (not is(curFile,whiteSpace)) {
if (eqNum(n98,1)) goto label(3)
if (is(curFile,sLine)) goto label(3)
label(2) .. remove label(2) stuff & next 5 lines for no WS punct.
if (not is(curFile,";")) if (not is(curFile,":"))
if (not is(curFile,".")) if (not is(curFile,","))
if (not is(curFile,"?")) if (not is(curFile,"!")) goto label(1)
equateNum(n98,1)
label(1)
}
else { if (is(curFile,eLine)) goto label(3)
equateNum(n98,1)
}
}
label(3)
equateLoc(curFile,locB,atCursor)
insertRgn(buf86,eFile,curFile,loc)
clearRgn(curFile,loc) return }
putMsg(" ")
if (eqNum(n84,10)) {
equateNum(n84,0) getMaxFiles(n98) decNum(n98)
equateNum(n96,0)
do (n99,0,n98) if (getFlag(buf[n99],changed))
if (not saveFile(buf[n99])) {
freeBuf(buf99) getFileName(buf99,buf[n99])
insertRgn(buf99,sFile,"ERROR - Couldn't save file: ",all)
putMsg(buf99) beepDisplay equateNum(n96,1) delay(15) }
if (getFlag(buf80,changed)) runKey(virtual-4)
if (eqNum(n96,0)) { putMsg("All changed buffers saved.") returnTrue }
else { putMsg("ERROR(s) occurred during mass file save.")
beepDisplay returnFalse } }
if (eqNum(n84,20)) { equateNum(n84,0)
putMsg("Character to delete up to:")
if (not getFlag(curFile,useKeys)) flipFlag(curFile,useKeys)
getChar(n99)
flipFlag(curFile,useKeys)
if (not eqLoc(curFile,locB,atCursor)) freeBuf(buf86)
equateLoc(curFile,locA,atCursor)
putMsg("Deleting...")
while (not is(curFile,n99)) moveCursor(curFile,eChar)
equateLoc(curFile,locB,atCursor)
insertRgn(buf86,eFile,curFile,loc)
clearRgn(curFile,loc)
putMsg(" ") return }
if (eqNum(n84,30)) { equateNum(n84,0)
putMsg("Key or mouse resumes") seeRuler
getKey(n99) if(eqNum(n99,normal-buttonDown)) getKey(n99) ..eat mouseUp
putMsg(" ")}
if (eqNum(n84,40)) { equateNum(n96,13) runKey(virtual-p) }
>
For swap buffer file saves
<virtual-4:
equateNum(n99,curFile) editBuf(buf80) refreshDisplay
if (askYesNo("Swap buffer is not empty. Save it?")) {
putMsg("Optionally rename it first:") freeBuf(buf99)
getFileName(buf99,curFile)
if (inputString(buf99)) setFileName(curFile,buf99)
if (not saveFile(curFile)) {
putMsg("ERROR - Couldn't save file in buf80")
beepDisplay equateNum(n96,1) }
}
editBuf(buf[n99])
>
Undelete last word/block/line; other actions depend on prefix key
<ctl-u:
if (eqNum(n84,0)) goto label(1) .. ^U now undelete like ^KU
putMsg(" ")
if (eqNum(n84,10)) { equateNum(n84,0)
label(1)
if (not getFlag(curFile,columnar)) {
moveCursor(curFile,sChar) equateLoc(curFile,locA,atCursor)
equateLoc(curFile,sHilite,atCursor) .. rehilite
moveCursor(curFile,eChar)
insertRgn(curFile,atCursor,buf86,all)
equateLoc(curFile,eHilite,atCursor) .. rehilite
equateLoc(curFile,atCursor,locA) moveCursor(curFile,eChar) }
else copyColData(curFile,atCursor,buf85,all,n80)
return }
if (eqNum(n84,20)) { equateNum(n84,0)
putMsg("Will begin reformatting rest of document after 2 second delay")
delay(20)
while (nothing)
if (not runKey(ctl-b)) goto label(2)
else
if (not onScreen(atCursor)) refreshDisplay else updateDisplay
label(2)
putMsg("Reformat command ^QU all done.")
return }
if (eqNum(n84,30)) {
equateNum(n84,0)
if (is(curFile,alpha)) {
if (is(curFile,lowerCase)) toUpper(curFile)
else toLower(curFile) }
moveCursor(curFile,eChar) return }
if (eqNum(n84,40)) { equateNum(n84,0) abortPrint }
>
Toggle insert/overwrite; other actions depend on prefix key
<ctl-v:
if (eqNum(n84,0)) { flipFlag(curFile,overStrike)
if (getFlag(curFile,overStrike)) putMsg("Overstrike") else putMsg("Insert")
return }
putMsg(" ")
if (eqNum(n84,10)) {
equateNum(n84,0)
if (gtLoc(curFile,eHilite,sHilite)) {
if (not getFlag(curFile,columnar)) {
freeBuf(buf86)
insertRgn(buf86,sFile,curFile,hilite)
clearRgn(curFile,hilite)
moveCursor(curFile,sChar) equateLoc(curFile,sHilite,atCursor)
moveCursor(curFile,eChar)
insertRgn(curFile,atCursor,buf86,all)
equateLoc(curFile,eHilite,atCursor) incLoc(curFile,sHilite)
moveCursor(curFile,sHilite)
if (not onScreen(atCursor)) vScroll(atCursor) }
else {
freeBuf(buf85)
copyColData(buf85,sFile,curFile,hilite,n80)
if (eqNum(n80,1)) equateNum(n99,0) else equateNum(n99,1)
clearColData(curFile,hilite,n99)
copyColData(curFile,atCursor,buf85,all,n80) } }
else { putMsg("No block!") returnFalse }
return }
if (eqNum(n84,20)) { equateNum(n84,0)
if (gtLoc(curFile,eInvert,sInvert)) {
moveCursor(curFile,sInvert) vScroll(atCursor) }
else { putMsg("No invert marked!") returnFalse }
return }
if (eqNum(n84,30)) { equateNum(n84,0)
freeBuf(buf99) insertRgn(buf99,sFile,
"Enter new tab table # 0-4 (0=8 std,1=WS std,2=prog,3=null,4=UE) (now ",all)
toWord(buf99,tabTable) insertRgn(buf99,eFile,"):",all) putMsg(buf99)
if (inputNum(n99)) if (geNum(n99,0)) if (gtnum(5,n99))
{ setLocal(curFile,tabTable,n99) equateNum(tabTable,n99) }
return }
if (eqNum(n84,40)) { equateNum(n96,11) runKey(virtual-p) }
>
Alternate ^W that will return proper true/false, but cursor acts different
vScroll(upLine) moveCursor(curFile,upLine)
if (is(curFile,sFile)) returnFalse else returnTrue
Using updateDisplay after vScroll works fine EXCEPT if cursor in col. 1!!
Scroll up; other actions depend on prefix key
<ctl-w:
if (eqNum(n84,0)) { vScroll(upLine) updateDisplay
if (not onScreen(atCursor)) {
moveCursor(curFile,upLine)
if (is(curFile,sLine)) {
moveCursor(curFile,upLine) moveCursor(curFile,upLine)
refreshDisplay }
else updateDisplay }
return }
putMsg(" ")
if (eqNum(n84,10)) { equateNum(n84,0)
if (gtLoc(curFile,eHilite,sHilite)) {
if (not getFlag(curFile,columnar)) {
freeBuf(buf86)
insertRgn(buf86,sFile,curFile,hilite) }
else {
freeBuf(buf86) copyColData(buf86,sFile,curFile,hilite,n80) }
putMsg("Save block as Filename (prt: for raw print):")
if (inputString(buf76)) if (setFileName(buf86,buf76))
if (not saveFile(buf86)) {
putMsg("ERROR - Couldn't save block!") beepDisplay returnFalse } }
else { putMsg("No block!") returnFalse }
return }
if (eqNum(n84,20)) { equateNum(n84,0)
putMsg("^U or ESC exits; spacebar to stop/go")
while (vScroll(upLine)) {
moveCursor(curFile,upLine)
refreshDisplay
inputKey(n98)
if (eqNum(n98,normal-space)) getKey(n98)
if (eqNum(n98,ctl-u)) goto label(2)
if (eqNum(n98,normal-esc)) goto label(2) }
label(2)
putMsg(" ") return }
if (eqNum(n84,30)) { equateNum(n84,0) flipFlag(curFile,wordWrap)
if (getFlag(curFile,wordWrap)) putMsg("Word Wrap ON")
else putMsg("No Word Wrap")
return }
if (eqNum(n84,40)) { equateNum(n96,23) runKey(virtual-p) }
>
Move down; other actions depend on prefix key
<ctl-x:
if (eqNum(n84,0)) { moveCursor(curFile,downLine) return }
putMsg(" ")
if (eqNum(n84,10)) {
equateNum(n84,0) equateNum(n98,0) getMaxFiles(n97) decNum(n97)
equateNum(n96,0)
do (n99,0,n97) if (getFlag(buf[n99],changed)) equateNum(n98,1)
if (getFlag(buf80,changed)) if (not isEmpty(buf80)) equateNum(n98,2)
if (gtNum(n98,0)) {
if (askYesNo("Buffers have changed. Save ALL changed, without asking?")) {
do (n99,0,n97) {
if (getFlag(buf[n99],changed))
if (not saveFile(buf[n99])) {
freeBuf(buf99) getFileName(buf99,buf[n99])
insertRgn(buf99,sFile,"ERROR - Couldn't save file: ",all)
putMsg(buf99) beepDisplay equateNum(n96,1) delay(15)
}
}
if (eqNum(n98,2)) runKey(virtual-4)
}
else {
if (askYesNo("Show and ask whether to save each changed buffer?")) {
do (n99,0,n97) {
if (getFlag(buf[n99],changed)) {
editBuf(buf[n99]) refreshDisplay
if (askYesNo("Save this changed buffer?"))
if (not saveFile(buf[n99])) {
freeBuf(buf99) getFileName(buf99, buf[n99])
insertRgn(buf99,sFile,
"ERROR - Couldn't save file: ",all)
putMsg(buf99) beepDisplay
equateNum(n96,1) delay(15)
}
}
}
if (eqNum(n98,2)) runKey(virtual-4)
}
}
}
if (eqNum(n96,0)) { if (not askYesNo("Really quit?")) returnFalse }
if (eqNum(n96,0)) { putMsg("Quitting Ustar...") quit(0) }
putMsg("ERROR(s) occurred during mass file save.") beepDisplay returnFalse
}
if (eqNum(n84,20)) { equateNum(n84,0) moveCursor(curFile,ePage)
moveCursor(curFile,upLine) return }
if (eqNum(n84,30)) { equateNum(n84,0)
putMsg("^OX not implemented; use ^OW for wordwrap, ^OR for line length")
}
if (eqNum(n84,40)) { equateNum(n96,7) runKey(virtual-p) }
>
Delete line; other actions depend on prefix key
<ctl-y:
if (eqNum(n84,0)) {
if (not eqLoc(curFile,locB,atCursor)) freeBuf(buf86)
equateLoc(curFile,locB,atCursor)
if (not is(curFile,sLine)) moveCursor(curFile,sLine)
if (not eqLoc(curFile,locB,atCursor)) {
equateLoc(curFile,locA,atCursor)
insertRgn(buf86,sFile,curFile,loc)
clearRgn(curFile,loc) }
else equateLoc(curFile,locA,atCursor)
if (not is(curFile,eLine)) moveCursor(curFile,eLine)
moveCursor(curFile,eChar)
equateLoc(curFile,locB,atCursor)
insertRgn(buf86,eFile,curFile,loc)
clearRgn(curFile,loc) return }
putMsg(" ")
if (eqNum(n84,10)) {
equateNum(n84,0)
if (gtLoc(curFile,eHilite,sHilite)) {
if (not getFlag(curFile,columnar)) {
freeBuf(buf86)
insertRgn(buf86,sFile,curFile,hilite)
clearRgn(curFile,hilite) }
else {
freeBuf(buf85)
copyColData(buf85,sFile,curFile,hilite,n80)
if (eqNum(n80,1)) equateNum(n99,0) else equateNum(n99,1)
clearColData(curFile,hilite,n99) } }
else { putMsg("No block!") returnFalse }
return }
if (eqNum(n84,20)) {
equateNum(n84,0)
if (not eqLoc(curFile,locB,atCursor)) freeBuf(buf86)
if (is(curFile,eFile)) returnFalse
if (is(curFile,eLine)) return
else {
equateLoc(curFile,locA,atCursor)
moveCursor(curFile,eLine)
equateLoc(curFile,locB,atCursor)
insertRgn(buf86,eFile,curFile,loc)
clearRgn(curFile,loc) }
return }
if (eqNum(n84,30)) { equateNum(n84,0)
putMsg("Enter value (typ. 161-255) for Amiga alt. character (see AC-kp4)")
if (inputNum(n99)) if (gtNum(n99,0)) if (gtnum(256,n99)) typeChar(n99)
putMsg(" ")
return }
if (eqNum(n84,40)) { equateNum(n96,17) runKey(virtual-p) }
>
Scroll down; other actions depend on prefix key
<ctl-z:
if (eqNum(n84,0)) { vScroll(downLine)
if (not onScreen(atCursor)) {moveCursor(curFile,downLine) refreshDisplay }
if (is(curFile,eFile)) { vScroll(atCursor) returnFalse } else returnTrue }
putMsg(" ")
if (eqNum(n84,10)) {
equateNum(n84,0)
flipFlag(curFile,autoBackup)
if (getFlag(curFile,autoBackup))
putMsg("Archival backup")
else putMsg("No backup!")
return }
if (eqNum(n84,20)) {
equateNum(n84,0)
putMsg("^U or ESC exits; spacebar to stop/go")
while (vScroll(downLine)) {
moveCursor(curFile,downLine)
refreshDisplay
inputKey(n98)
if (eqNum(n98,normal-space)) getKey(n98)
if (eqNum(n98,ctl-u)) goto label(2)
if (eqNum(n98,normal-esc)) goto label(2) }
label(2)
putMsg(" ") return }
if (eqNum(n84,30)) {
equateNum(n84,0)
flipFlag(curFile,rowCol) refreshDisplay return }
if (eqNum(n84,40)) runKey(virtual-kp7)
>
delete from cursor to beginning of line
Actions depend on prefix key
<ctl-del:
putMsg(" ")
if (eqNum(n84,20)) {
equateNum(n84,0)
if (not is(curFile,sLine)) {
if (not eqLoc(curFile,locB,atCursor)) freeBuf(buf86)
equateLoc(curFile,locB,atCursor)
moveCursor(curFile,sLine)
equateLoc(curFile,locA,atCursor)
insertRgn(buf86,sFile,curFile,loc)
clearRgn(curFile,loc) }
if (is(curFile,sFile)) returnFalse }
else runKey(virtual-kp7) >
Actions depend on prefix key
<ctl-=:
if (eqNum(n84,10)) { equateNum(n84,0) flipFlag(curFile,readOnly)
if (getFlag(curFile,readOnly)) putMsg("Read-Only")
else putMsg("Read/Write")
return}
if (eqNum(n84,40)) { equateNum(n84,0)
putMsg("Input a control character:")
getChar(n54)
if (geNum(31,n54)) goto label(1)
if (geNum(n54,64)) if (geNum(127,n54)) {
label(1)
and(n54,n54,31)
insertChar(curFile,n54)
}
putMsg(" ")
return }
runKey(virtual-kp7) >
Actions depend on prefix key
<ctl-\:
if (eqNum(n84,10)) { equateNum(n84,0)
flipFlag(curFile,icons)
if (getFlag(curFile,icons)) putMsg("Icons On at Save")
else putMsg("No Icons at Save") }
else runKey(virtual-kp7) >
Actions depend on prefix key
<ctl-[:
if (eqNum(n84,10)) { equateNum(n84,0)
flipFlag(curFile,changed)
if (getFlag(curFile,changed)) putMsg("Marked as Changed")
else putMsg("Marked as Unchanged") }
else runKey(virtual-kp7) >
Actions depend on prefix key
<ctl-]:
if (eqNum(n84,10)) { equateNum(n84,0) putMsg(" ") runKey(shftCtl-]) return }
else runKey(virtual-kp7) >
Actions depend on prefix key
<ctl-/: if (eqNum(n84,0)) {
putMsg("Use standard Uedit to run a demo, none created for Ustar")
beepDisplay returnFalse }
putMsg(" ")
if (eqNum(n84,20)) { equateNum(n84,0)
putMsg("Packing...")
freeBuf(buf99) locToIndex(curFile,n99,atCursor)
if (is(curFile,eFile)) decNum(n99)
toWord(buf99,n99) insertRgn(buf99,sFile,
"Bytes in buffer to cursor point: ",all) putMsg(buf99)
}
else runKey(virtual-kp7)
>
Action depends on prefix; for ^K prefix, convert block to lowercase
<ctl-': if (eqNum(n84,0)) { runKey(virtual-kp7) return }
putMsg(" ")
if (eqNum(n84,10)) { equateNum(n84,0)
if (eqLoc(curFile,sHilite,eHilite)) { putMsg("No block!") returnFalse }
putMsg("Converting block to lower case...")
moveCursor(curFile,sHilite)
while (gtLoc(curFile,eHilite,atCursor)) {
toLower(curFile) moveCursor(curFile,eChar)
}
putMsg(" ") refreshDisplay
}
else runKey(virtual-kp7)
>
Actions depend on prefix key
<ctl-.:
if (eqNum(n84,10)) { equateNum(n84,0)
flipFlag(curFile,userLocalA)
if (getFlag(curFile,userLocalA)) putMsg("Auto-Save On")
else putMsg("Auto-Save Off") }
else runKey(virtual-kp7) >
End of control key translation section
Shift key translation section
Type a quote mark ("); for ^K prefix, convert block to uppercase
<shft-': if (eqNum(n84,0)) { typeChar(34) return }
putMsg(" ")
if (eqNum(n84,10)) { equateNum(n84,0)
if (eqLoc(curFile,sHilite,eHilite)) { putMsg("No block!") returnFalse }
putMsg("Converting block to upper case...")
moveCursor(curFile,sHilite)
while (gtLoc(curFile,eHilite,atCursor)) {
toUpper(curFile) moveCursor(curFile,eChar)
}
putMsg(" ") refreshDisplay
}
else runKey(virtual-kp7)
>
End of shift key translation section
---------------------------------------------------------------------------
Cursor movement - arrow keys
Cursor Up one line
<normal-upArrow: moveCursor(curFile,upLine) >
Cursor Down one line
<normal-downArrow: moveCursor(curFile,downLine) >
Cursor Left one character
<normal-leftArrow: moveCursor(curFile,sChar) >
Cursor Right one character
<normal-rightArrow: moveCursor(curFile,eChar) >
Cursor to Start of word
<shft-leftArrow: moveCursor(curFile,sWord) >
Cursor to End of word
<shft-rightArrow: moveCursor(curFile,eWord) >
Move Up by half a screen
<shft-upArrow: moveCursor(curFile,sPage) vScroll(atCursor) >
Move Down by half a screen
<shft-downArrow: moveCursor(curFile,ePage) vScroll(atCursor) >
Cursor to Top of screen
<ctl-upArrow: moveCursor(curfile,sPage) >
Cursor to Bottom of screen
<ctl-downArrow: moveCursor(curFile,ePage) moveCursor(curFile,upLine)>
Scroll screen Left
<ctl-leftArrow: hscroll(1) >
Scroll screen Right
<ctl-rightArrow: hscroll(-1) >
Cursor to Top of file
<alt-upArrow: moveCursor(curFile,sFile) >
Cursor to End of file
<alt-downArrow: moveCursor(curFile,eFile) >
Cursor to Start of line
<alt-leftArrow: if (not is(curFile,sLine)) moveCursor(curFile,sLine) >
Cursor to End of line
<alt-rightarrow: if (not is(curFile,eLine)) moveCursor(curFile,eLine) >
-----------------------------------------------------------------------------
Mouse operations
(see also next section)
Fast version (see below for slow version).
Place cursor with mouse; or, if dragged, highlight block at release
<normal-buttonDown:
moveCursor(curFile,mouseLoc) updateDisplay
equateLoc(curFile,locA,mouseLoc)
getMaxFiles(n99) decNum(n99) equateNum(n98,curFile)
if (gtNum(n99,n98)) equateNum(n82,curFile) .. for windows, set current
if (getFlag(curFile,lace)) equateNum(n97,394) else equateNum(n97,194)
while (trackmouse) {
mouseXY(n98,n99)
if (gtNum(n99,n97)) vScroll(downLine)
if (gtNum(18,n99)) vScroll(upLine)
updateDisplay }
if (not eqLoc(curFile,locA,mouseLoc)) {
equateLoc(curFile,atCursor,mouseLoc)
if (gtLoc(curFile,atCursor,locA)) {
equateLoc(curFile,eHilite,atCursor) equateLoc(curFile,sHilite,locA) }
else {
equateLoc(curFile,sHilite,atCursor) equateLoc(curFile,eHilite,locA) }
refreshDisplay }
returnTrue>
Alternate "Slow" version that updates highlight dynamically, but slowly,
with slow scrolling.
normal-buttonDown:
moveCursor(curFile,mouseLoc) updateDisplay
equateLoc(curFile,locA,mouseLoc)
while (trackmouse) {
if (not eqLoc(curFile,locA,mouseLoc)) {
if (gtLoc(curFile,locA,mouseLoc)) {
equateLoc(curFile,sHilite,mouseLoc) equateLoc(curFile,eHilite,locA) }
else {
equateLoc(curFile,eHilite,mouseLoc) equateLoc(curFile,sHilite,locA) }
mouseXY(n98,n99)
if (gtNum(n99,194)) vScroll(downLine)
if (gtNum(18,n99)) vScroll(upLine)
refreshDisplay } }
returnTrue>
Mouse equivalents to block operations
Block move with mouse
<shft-buttonDown:
moveCursor(curFile,mouseLoc) equateNum(n84,10) runKey(ctl-v) >
Block copy with mouse
<alt-buttonDown:
moveCursor(curFile,mouseLoc) equateNum(n84,10) runKey(ctl-c) >
Block delete with mouse
<shftAlt-buttonDown:
moveCursor(curFile,mouseLoc) equateNum(n84,10) runKey(ctl-y) >
2.3c: OK, enable, may need testing in interlace
n96 start/#lines n97 stop n98 buf n99 scratch n95 scratch
Resize split windows. Click in active window, drag to new title bar pos'n.
<shftAltCtl-buttonDown:
equateNum(n98,curFile) .. may go to different buf window, save current
getSplitLines(n96,n97) .. get start & stop
sub(n96,n97,n96) .. line count
while (trackmouse) mouseXY(n95,n99)
if (getFlag(curFile,lace)) { sub(n99,392,n99) div(n99,n99,8)
if (gtNum(n99,44)) equateNum(n99,44)
sub(n97,47,n97) }
else { sub(n99,196,n99) div(n99,n99,8) if(gtNum(n99,19)) equateNum(n99,19)
sub(n97,22,n97) }
sub(n99,n99,n97) if (gtNum(2,n99)) equateNum(n99,2)
splitWindow(buf[n98],0)
if (not splitWindow(buf[n98],n99)) {
splitWindow(buf[n98],n96)
}
equateNum(n99,curFile) getMaxFiles(n98)
if (not geNum(n99,n98)) equateNum(n82,curFile)
>
---------------------------------------------------------------------------
Directory/Click-load Operations
Click to Delete a file - WARNING - no verify, so be careful.
buf98 - filename from V-kp0; buf97 - temp DOS string use
<altCtl-buttondown:
equateLoc(curFile,atCursor,mouseLoc)
if (not is(curFile,whiteSpace)) {
putMsg("Deleting file from disk...")
while (not is(curFile,whiteSpace)) {
moveCursor(curFile,sChar) if (is(curFile,sFile)) goto label(1) }
label(1)
runKey(virtual-kp0)
if (eqNum(n95,20)) equateNum(n95,0)
if (eqNum(n95,0)) {
freeBuf(buf97) insertRgn(buf97,sFile,"Delete ",all)
insertRgn(buf97,eFile,buf98,all)
freeBuf(buf82)
if (not execute(buf82,buf97)) {
putMsg("ERROR - Couldn't delete file") beepDisplay returnFalse }
if (not isEmpty(buf82)) {
putMsg("ERROR - File not deleted, AmigaDOS returned message:")
editBuf(buf82) beepDisplay returnFalse }
insertRgn(buf82,eFile,"File deleted: ",all)
insertRgn(buf82,eFile,buf98,all)
putMsg(buf82)
freeBuf(buf82) getFileName(buf82,curFile)
insertRgn(buf82,sFile," ",all) moveCursor(buf82,sFile)
setSearch("Dir of ")
if (search(buf82,sInvert,eInvert,1)) {
clearColData(curFile,Invert,1) .. remove deleted filename from display
equateLoc(curFile,eInvert,sInvert)
refreshDisplay flipFlag(curFile,changed) }
}
else { putMsg("ERROR - Can't delete that.") beepDisplay }
}
>
insertChar(buf84," ") moveCursor(buf84,sChar)
Show current directory & all devices in system
Used via ctl-buttondown operations for click-getting root directories.
Uses buf99 for display, buf98 for temp execute
Show current directory & all devices in system
<shftCtl-f:
putMsg("Enter Directory (none to see disks, space for current): ")
moveCursor(buf84,eFile)
if (inputString(buf84)) {
moveCursor(buf84,eFile) moveCursor(buf84,sChar)
while (is(buf84,space)) { clearChar(buf84) moveCursor(buf84,sChar) }
runKey(virtual-kp4) .. get dir
return
}
putMsg("Getting device info, wait a moment...")
freeBuf(buf98)
if (not execute(buf98,"CD")) {
putmsg("CD command not found") beepDisplay returnFalse }
moveCursor(buf98,eFile) moveCursor(buf98,sChar) clearChar(buf98)
moveCursor(buf98,sFile) insertChar(buf98,eLine) insertChar(buf98,eLine)
insertRgn(buf98,eFile,"
^- Current directory
",all)
freeBuf(buf82)
if (not execute(buf82,"Info")) {
putmsg("Info command not found") beepDisplay returnFalse }
insertRgn(buf98,eFile,buf82,all)
freeBuf(buf99) insertRgn(buf99,sFile,buf98,all)
editBuf(buf99) moveCursor(curFile,sFile)
putMsg("Ctrl-click on device name xxx: (or type a name, click on it)")
>
Get the dir of buf84 & show results. Uses scratch buf99,buf98,dos result buf82
Get directory, put to display
<virtual-kp4:
freeBuf(buf98) insertRgn(buf98,sFile,"Getting dir of ",all)
insertRgn(buf98,eFile,buf84,all) putMsg(buf98)
freeBuf(buf98) insertRgn(buf98,eFile,"Dir ",all)
insertRgn(buf98,eFile,buf84,all)
freeBuf(buf82)
if (not execute(buf82,buf98)) {
putMsg("Couldn't get Dir") beepDisplay returnFalse }
freeBuf(buf98)
insertRgn(buf98,sFile,"
Directory of: ",all)
if (not isEmpty(buf84)) insertRgn(buf98,atCursor,buf84,all)
insertRgn(buf98,atCursor,"
(Parent) (All) DF0: DF1: DF2: DF3: DH0: DH1: VD0: RAM:
Mouse AC-click to delete a file
",all)
insertRgn(buf98,eFile,buf82,all)
if (not newFile) {
putMsg("No more Edit Buffers available! Free some up.") beepDisplay
returnFalse }
equateNum(n82,curFile)
putMsg("Ctrl-click files, Dir names, (xxx), or devs: with mouse")
freeBuf(buf99) insertRgn(buf99,sFile,"Dir of ",all)
insertRgn(buf99,eFile,buf84,all) setFileName(curFile,buf99)
insertRgn(curFile,sFile,buf98,all) moveCursor(curFile,sFile)
flipFlag(curFile,changed)
returnTrue>
Below Uses n97, n98, n99. n95, buf98 (& scratch buf97, buf96) via virtual-kp0
Load filename or directory that is clicked
<ctl-buttonDown:
getKey(n97) .. eat up buttonUp event
equateLoc(curFile,atCursor,mouseLoc)
if (not is(curFile,whiteSpace)) {
while (not is(curFile,whiteSpace)) {
moveCursor(curFile,sChar) if (is(curFile,sFile)) goto label(1) }
label(1)
runKey(virtual-kp0)
if (eqNum(n95,25)) goto label(9) .. eof
if (eqNum(n95,5)) { .. dir
moveCursor(buf84,eFile) moveCursor(buf84,sChar)
if (not isEmpty(buf84)) {
if (not is(buf84,":"))
if (not is(buf84,"/")) {
moveCursor(buf84,eChar) insertChar(buf84,"/") } }
insertRgn(buf84,eFile,buf98,all) equateNum(n99,curFile)
runKey(virtual-kp4) runKey(virtual-del) goto label(10) }
if (eqNum(n95,10)) { .. parent
if (isEmpty(buf84)) goto label(3)
else {
moveCursor(buf84,eFile)
if (is(buf84,":")) goto label(3)
else {
while (nothing) {
clearChar(buf84) moveCursor(buf84,sChar)
if (isEmpty(buf84)) goto label(3)
if (is(buf84,":")) goto label(3)
if (is(buf84,"/")) { clearChar(buf84) goto label(3) }}}}
label(3) equateNum(n99,curFile)
runKey(virtual-kp4) runKey(virtual-del) goto label(10) }
if (eqNum(n95,15)) { runKey(virtual-kp3) goto label(10) } .. all
if (eqNum(n95,20)) { putMsg("I won't load .info files!") goto label(9) }
if (eqNum(n95,30)) { .. dev:
freeBuf(buf84) insertRgn(buf84,sFile,buf98,all)
equateNum(n99,curFile)
runKey(virtual-kp4) runKey(virtual-del) goto label(10) }
equateNum(n99,curFile)
if (loadFile(buf98)) { equateNum(n98,curFile)
if (isEmpty(curFile)) {
freeBuf(curFile) editBuf(buf[n99]) equateNum(n82,curFile)
insertRgn(buf98,sFile,"Not found: ",all)
putMsg(buf98) goto label(9) }
else { editBuf(buf[n99])
putMsg("F1=edit; F3=cancel Dir; other keys normal")
getKey(n97) putMsg(" ")
if (eqNum(n97,normal-f1)) {
editBuf(buf[n98]) equateNum(n82,curFile) goto label(10) }
if (eqNum(n97,normal-f3)) {
editBuf(buf[n98]) equateNum(n82,curFile) freeBuf(buf[n99]) }
else runKey(n97) goto label(10) } }
else { insertRgn(buf98,sFile,"Not loaded: ",all)
putMsg(buf98) goto label(9) } }
label(9) returnFalse
label(10) >
Check what filename is before deleting. Requires n99 set to buf# on entry.
<virtual-del:
getFileName(buf98,buf[n99])
moveCursor(buf98,sFile) insertChar(buf98," ") moveCursor(buf98,sFile)
setSearch("Dir of ")
if (search(buf98,sInvert,eInvert,1)) freeBuf(buf[n99])
>
Get a filename into buf98, starting at current cursor pos'n; dirname of
buf84 properly prepended. Ignore .info files.
Also uses buf97 scratch; uses Invert. Uses n95 as flag:
0 OK; 5 is " (dir)"; 10 is "(Parent)"; 15 is "(All)"; 20 is ".info";
25 is EOF; 30 is device ": "
Process clicked name
<virtual-kp0:
equateNum(n95,0)
if (getFlag(curFile,searchCaps)) flipFlag(curFile,searchCaps)
while (is(curFile,whiteSpace)) { .. skip any leading whitespace
moveCursor(curFile,eChar)
if (is(curFile,eFile)) { equateNum(n95,25) goto label(10) } }
equateLoc(curFile,sInvert,atCursor)
while (not is(curFile,whiteSpace)) { .. find end of name, allow 1 embed. spc
moveCursor(curFile,eChar)
if (is(curFile,eFile)) goto label(1)
if (is(curFile,eLine)) goto label(1)
if (is(curFile,space)) moveCursor(curFile,eChar) }
label(1)
while (is(curFile,whiteSpace)) { moveCursor(curFile,sChar) }
moveCursor(curFile,eChar)
equateLoc(curfile,eInvert,atCursor)
if (is(curFile,eLine)) moveCursor(curFile,eChar)
freeBuf(buf98) insertRgn(buf98,sFile,curFile,invert)
refreshDisplay
freeBuf(buf97) insertChar(buf97," ")
insertRgn(buf97,eFile,curFile,invert)
.. determine if it is a specific kind of file/name/action
moveCursor(buf97,sFile)
setSearch(".info")
if (search(buf97,sInvert,eInvert,1)) {
equateNum(n95,20) }
moveCursor(buf97,sFile)
setSearch(" (dir)")
if (search(buf97,sInvert,eInvert,1)) {
moveCursor(buf98,sFile)
search(buf98,sInvert,eInvert,1)
while (not is(buf98,eFile)) clearChar(buf98)
equateNum(n95,5) goto label(10) }
moveCursor(buf97,sFile)
setSearch("(Parent)")
if (search(buf97,sInvert,eInvert,1)) {
equateNum(n95,10) goto label(10) }
moveCursor(buf97,sFile)
setSearch("(All)")
if (search(buf97,sInvert,eInvert,1)) {
equateNum(n95,15) goto label(10) }
moveCursor(buf97,sFile)
setSearch(":")
if (search(buf97,sInvert,eInvert,1)) { .. device name check
moveCursor(buf97,eChar) if (not is(buf97,whiteSpace))
if (not is(buf97,space)) if (not is(buf97,eLine))
if (not is(buf97,eFile)) if (not is(buf97,9)) goto label (10)
moveCursor(buf98,sFile)
while (not is(buf98,":")) moveCursor(buf98,eChar)
moveCursor(buf98,eChar)
while (not is(buf98,eFile)) clearChar(buf98)
equateNum(n95,30)
goto label(10)
}
if (not isEmpty(buf84)) { .. for files, prepend current path correctly
moveCursor(buf84,eFile) moveCursor(buf84,sChar)
if (not is(buf84,":")) {
moveCursor(buf98,sFile) insertChar(buf98,"/") }
insertRgn(buf98,sFile,buf84,all) }
label(10) >
All load
buf99 screen copy; buf98 filename via virtual-kp0 (also see); n95 scratch
Load all files in current dir list
<virtual-kp3:
getMaxFiles(n95)
putMsg("Load All") equateNum(n96,curFile) if (gtNum(n95,n96))
equateNum(n82,curFile)
equateNum(n96,0)
freeBuf(buf99) insertChar(buf99," ") moveCursor(buf99,sChar)
insertRgn(buf99,eFile,curFile,all) editBuf(buf99)
moveCursor(curFile,sFile) moveCursor(curFile,downLine)
do (n95,1,17) moveCursor(curFile,eChar)
equateLoc(curFile,sHilite,atCursor) moveCursor(curFile,eLine)
equateLoc(curfile,eHilite,atCursor) moveCursor(curFile,sLine)
freeBuf(buf84)
insertRgn(buf84,sFile,curFile,hilite)
moveCursor(curFile,sHilite) if(is(curFile,"*")) freeBuf(buf84)
moveCursor(curFile,sLine)
do (n95,0,3) moveCursor(curFile,downLine)
while (nothing) {
runKey(virtual-kp0)
if (eqNum(n95,25)) goto label(2)
if (gtNum(n95,0)) goto label(1)
if (loadFile(buf98)) {
if (not isEmpty(curFile)) {
insertRgn(buf98,sFile,"Loaded OK: ",all) goto label(3) }
else freeBuf(curFile) }
insertRgn(buf98,sFile,"Not loaded: ",all)
label(3)
putMsg(buf98) delay(4) editBuf(buf99)
label(1)
if (is(curFile,eFile)) goto label(2) }
label(2)
freeBuf(buf99) editBuf(buf[n82]) putMsg("(All) done") returnTrue>
-----------------------------------------------------------------------------
Reformat
A "Shell"for the reformat function to make it a lot smarter and act
more like WS. See UstarDoc.
n97 is "bulleted item", empty line, EOL, and EOF indicator from delimit
routine. 0 for non-delimiter item.
n95 is "cursor indent" flag, then holds n97 initial value for later
n96 is temporary scratch use
buf99 is bullet phrase hold
uses Invert. Uses sInvert & eInvert for several purposes as markers.
clears any hilite that is set if bulleted/indented reformat done
uses shft-Return which uses n99
uses virtual-kp1 which uses n97, scratch n96
Reformatting routine
<virtual-kp2:
putMsg("Reformatting...")
if (not is(curFile,sLine)) { equateNum(n95,5) .. flag for floating par.
equateLoc(curFile,eInvert,atCursor) moveCursor(curFile,sLine) }
else equateNum(n95,0)
equateLoc(curFile,sInvert,atCursor) .. mark reformat starting point at sLine
runKey(virtual-kp1) .. check for delimiter
if (geNum(n97,20)) goto label(1) .. found eol/eof, exit
.. set end of "cut" section if not already set by cursor not in col. 1
if (eqNum(n95,0)) equateLoc(curFile,eInvert,atCursor)
else equateNum(n97,5) .. combine 2 flags into n97 bulleted status
equateNum(n95,n97) .. save value of n97 for later
.. first, must convert any tabs in delimiter to spaces for proper indent
equateLoc(curFile,atCursor,sInvert)
while (gtLoc(curFile,eInvert,atCursor)) {
if (is(curFile,9)) {
swapChar(curFile,32)
moveCursor(curFile,eChar)
while (not is(curFile,tabColumn)) insertChar(curFile,32)
} else moveCursor(curFile,eChar)
}
if (gtNum(n97,0)) { .. delimiter found, save delimiter header, clear it
freeBuf(buf99)
copyColData(buf99,sFile,curFile,invert,1)
clearColData(curFile,invert,1)
}
equateLoc(curFile,atCursor,sInvert) .. set cursor to start
.. this section aligns all lines to the same indentation so that
.. reformat() will work, and finds/marks end of area to reformat
while (nothing) {
.. check for eof; move to next line
if (not is(curFile,eLine)) moveCursor(curFile,eLine)
if (is(curFile,eFile)) insertChar(curFile,eLine)
moveCursor(curFile,downLine)
if (not is(curfile,sLine)) moveCursor(curFile,sLine)
runKey(virtual-kp1) if (gtNum(n97,0)) { .. is line a delimiter?
.. delimiter found, insert eol for reformat() to stop at, mark it
if (not is(curFile,sLine)) moveCursor(curFile,sLine)
insertChar(curFile,eLine)
equateLoc(curFile,eInvert,atCursor)
goto label(6)
}
runKey(shft-return) .. match indent of line, fix if eof
}
label(6)
equateNum(n97,n95) .. restore n97 value
equateLoc(curFile,atCursor,sInvert) .. put cursor to line to start reformat
reformat .. primary reformat does 1st line, or whole block
equateLoc(curFile,atCursor,sInvert) .. restore cursor to start
.. this section reformats rest of an indented paragraph etc.
if (eqNum(n97,0)) if (not getFlag(curfile,autoIndent)) {
.. start on the second line of the block
moveCursor(curfile,downLine)
insertChar(curFile,eLine) .. make so "match indent" aligns to col. 1
.. turn any leading tabs into spaces on the first line of this section
while (nothing) {
if (not is(curFile,9)) if (not is(curFile,space)) goto label(3)
if (is(curFile,9)) {
swapChar(curFile,32)
moveCursor(curFile,eChar)
while (not is(curFile,tabColumn)) insertChar(curFile,32)
} else moveCursor(curFile,eChar)
}
label(3)
.. make subsequent lines have equal indentation
while (nothing) {
if (geLoc(curFile,atCursor,eInvert)) goto label(8)
runKey(shft-return)
moveCursor(curFile,downLine)
}
label(8)
equateLoc(curFile,atCursor,sInvert) .. set cursor to start of section
moveCursor(curFile,downLine) moveCursor(curFile,downLine)
reformat .. reformat all but the first line of the paragraph
equateLoc(curFile,atCursor,sInvert) .. clear extra eol inserted above
moveCursor(curFile,downLine) clearChar(curFile)
equateLoc(curFile,atCursor,sInvert)
}
if (gtNum(n97,0)) { .. restore bulleted section that was cut out above
copyColData(curFile,atCursor,buf99,all,0)
equateLoc(curFile,sHilite,eHilite)
}
label(1)
equateLoc(curFile,atCursor,sInvert)
if (not gtNum(n97,10)) {
equateLoc(curFile,atCursor,eInvert)
moveCursor(curFile,sChar) clearChar(curFile)
putMsg(" ")
}
if (eqNum(n97,20)) { moveCursor(curFile,downLine) putMsg("Empty line") }
equateLoc(curFile,eInvert,sInvert)
if (eqNum(n97,40)) { putMsg("EOF!") returnFalse }
returnTrue>
Determine if a line is a delimiter line. Returns with cursor at 1st text.
Returns n97: 0=not delimiter, 5=bullet line, 10=# line
20=null or empty line, EOL 40=null or empty line, EOF
n97 also holds temp negative vals as flags within this routine
n96 used briefly for scratch
Delimiter line routine
<virtual-kp1:
equateNum(n97,0)
if (not is(curFile,sLine)) moveCursor(curFile,sLine)
while (nothing) { .. find first printable char on line
if (is(curFile,eLine)) goto label(1)
if (is(curFile,eFile)) goto label(2)
if (not is(curFile,9)) if (is(curFile,ctlChar)) goto label(1)
if (not is(curFile,space)) if (not is(curFile,9)) goto label(3)
moveCursor(curFile,eChar) }
label(3)
while (nothing) { .. determine if this meets rules for a delimiter
if (is(curFile,space)) goto label(4) .. exit if space or tab encountered
if (is(curFile,9)) goto label(4)
if (is(curFile,"o")) { .. bulleted outline character
if (not eqNum(n97,-5)) { equateNum(n97,-5) goto label(6) }
else goto label(4) }
else { if (is(curFile,alpha)) goto label(4) }
if (is(curFile,digit)) { equateNum(n97,-10) goto label(6) }
if (is(curFile,".")) { if (eqNum(n97,-10)) { .. check for #'d outline
equateNum(n97,-15) goto label(6) } }
if (is(curFile,eLine)) goto label(1)
if (is(curFile,eFile)) goto label(2)
goto label(4)
label(6)
moveCursor(curfile,eChar)
}
label(4)
.. from values set in above loop, determine bulleted status & set flag
equateNum(n96,0)
if (is(curFile,space)) equateNum(n96,5)
if (is(curFile,9)) equateNum(n96,5)
if (eqNum(n96,5)) {
if (eqNum(n97,-5)) equateNum(n97,5)
if (eqNum(n97,-15)) equateNum(n97,10)
}
if (not gtNum(n97,0)) equateNum(n97,0)
while (nothing) { .. advance to start of text
if (not is(curFile,space)) {
if (not is(curFile,9)) {
if (is(curFile,eLine)) goto label(1)
if (is(curFile,eFile)) goto label(2)
goto label(5)
}
}
moveCursor(curFile,eChar)
}
label(5) returnTrue
label(1) equateNum(n97,20) returnTrue
label(2) equateNum(n97,40) returnTrue
>
-----------------------------------------------------------------------------
About
(Uedit portion text same as Rick's current (2.3) original)
General info on Uedit and Ustar
<alt-/:
equateNum(n99,curFile)
freeBuf(buf99)
insertRgn(buf99,sFile,
"
: Uedit :
: Written by Rick Stiles :
: Placed in the public domain :
: July 1992 :
Uedit is SHAREWARE.
Try it and see how you like it.
If you wish to purchase the Full Uedit package which lets you create and
compile custom commands and custom Uedit configurations, and which has the
full Uedit documentation, see your dealer or see Uedit-Policy for ordering
information.
If your dealer doesn't carry Uedit, please have him contact me.
",all)
moveCursor(buf99,sFile) do (n97,1,5) moveCursor(buf99,eLine)
equateLoc(buf99,eHilite,atCursor)
do (n97,1,3) moveCursor(buf99,upLine) do (n97,1,38) moveCursor(buf99,sChar)
equateLoc(buf99,sHilite,atCursor) moveCursor(buf99,eFile)
if (getFlag(curFile,columnar)) equateNum(n96,0)
else { flipFlag(curFile,columnar) equateNum(n96,1) }
setFileName(buf99," About Uedit...")
putMsg("Mouse or key proceeds")
editBuf(buf99)
vScroll(sFile)
updateDisplay
getKey(n98) if(eqNum(n98,normal-buttonDown)) getKey(n98) ..eat mouseUp
clearRgn(buf99,all)
moveCursor(curFile,sFile) do(n98,1,28) insertChar(curFile,eLine)
insertRgn(buf99,sFile,
" 1987 by Kurt Wessels, 917 N. 87th, Seattle, WA 98103
Ustar is a configuration file for Uedit. It emulates most editing
functions of WordStar (a trademark of MicroPro International Corp.)
Ustar is freely distributable. It may be included with any Uedit
files/disks distributed directly by Rick Stiles. It may be posted to
bulletin boards, included on public-domain/shareware disks, and
generally be distributed for no charge or a small handling fee. All
rights reserved. Contributions of freely distributable software or $
are welcome - but I would much rather that you support Uedit by
purchasing it first!
If you want to be informed of updated versions of Ustar, send an SASE to
me; send $5 (or a disk and postage) if you want the latest version.
You may modify the Ustar files and excerpt from them in any way for your
own use, but do not then redistribute them as Ustar. Send any
enhancements, bugs, ideas, etc. to me and I will consider them in later
releases. Disclaimer: Use at your own risk!
",all)
moveCursor(curFile,sFile) typeChar(169)
insertRgn(buf99,sFile,
" Ustar v0.90
Copyright ",all)
setFileName(buf99," About Ustar")
moveCursor(buf99,sFile) equateLoc(buf99,sHilite,atCursor)
moveCursor(buf99,eLine) equateLoc(buf99,eHilite,atCursor)
moveCursor(buf99,eChar) equateLoc(buf99,sInvert,atCursor)
moveCursor(buf99,eLine) equateLoc(buf99,eInvert,atCursor)
moveCursor(buf99,eFile)
putMsg("Mouse or key resumes")
editBuf(buf99)
vScroll(sFile) updateDisplay
getKey(n98) if(eqNum(n98,normal-buttonDown)) getKey(n98) ..eat mouseUp
editBuf(buf[n99]) putMsg(" ")
if (eqNum(n96,1)) flipFlag(curFile,columnar) freeBuf(buf99) returnTrue>
-----------------------------------------------------------------------------
Printer Control Code Toggle Management
This controls the on/off flag status for 9 different print functions.
Each edit buffer has its own control (n# variable that matches buffer #).
Max of 9 toggles all used up (primes method). Prime passed to it in n96.
See the UstarHelp file for more info.
<virtual-p: equateNum(n84,0)
freeBuf(buf99) getMaxFiles(n97) equateNum(n98,curFile)
if (eqNum(n[n98],0)) equateNum(n[n98],1) .. initialize
if (geNum(n98,n97)) { putMsg("Ptr codes - Edit bufs only!") returnFalse }
if (eqNum(n96,2)) { equateNum(n99,10) insertRgn(buf99,sFile,"Bold",all) }
if (eqNum(n96,3)) { equateNum(n99,23) insertRgn(buf99,sFile,"Double",all) }
if (eqNum(n96,5)) { equateNum(n99,8) insertRgn(buf99,sFile,"Underline",all)}
if (eqNum(n96,7)) { equateNum(n99,25) insertRgn(buf99,sFile,"NLQ",all) }
if (eqNum(n96,11)) { equateNum(n99,29) insertRgn(buf99,sFile,"Subscript",all)}
if (eqNum(n96,13)) { equateNum(n99,27) insertRgn(buf99,sFile,"Superscript",all) }
if (eqNum(n96,17)) { equateNum(n99,6) insertRgn(buf99,sFile,"Italics",all) }
if (eqNum(n96,19)) { equateNum(n99,17) insertRgn(buf99,sFile,"Condensed",all) }
if (eqNum(n96,23)) { equateNum(n99,19) insertRgn(buf99,sFile,"Wide",all) }
mod(n97,n[n98],n96)
if (eqNum(n97,0)) { .. on to off transition, for OFF state
incNum(n99) div(n[n98],n[n98],n96) insertRgn(buf99,eFile," Off",all) }
else { .. off to on transition, for ON state
mul(n[n98],n[n98],n96) insertRgn(buf99,eFile," On",all) }
printerCode(curFile,n99,0,0) updateDisplay
putMsg(buf99)
>
Internal routine used by print command, dot command interpretation routines
<virtual-n:
moveCursor(curFile,sLine)
while (not is(curFile,digit)) {
moveCursor(curFile,eChar)
if (is(curFile,eLine)) returnFalse
if (is(curFile,eFile)) returnFalse }
toNumber(n99,curFile) returnTrue
>
Print command
<virtual-o:
if (not askYesNo("Print with Headers, Page #s, Date, etc.?")) {
alertUser("Put printer to top of form and on-line")
putMsg("May take a long time to start printing...")
print(curFile,all) return }
moveCursor(curFile,sFile) vScroll(atCursor) refreshDisplay
putMsg("Copying buffer to work buffer...")
equateNum(n98,curFile) getFileName(buf98,curFile)
if (not newFile) {
putMsg("Ran out of Edit buffers or memory, can't print this way")
beepDisplay returnFalse }
equateNum(n99,curFile) editBuf(buf[n98])
putMsg("Copying buffer to work buffer...")
if (not insertRgn(buf[n99],sFile,buf[n98],all)) {
putMsg("Not enough memory to print this way")
editBuf(buf[n98]) beepDisplay returnFalse }
editBuf(buf[n99])
insertRgn(buf98,eFile,"**PRINT COPY**",all)
setFileName(curFile,buf98) moveCursor(curFile,sFile)
vScroll(sFile) refreshDisplay
label(1)
putMsg("Processing file for dot commands...")
moveCursor(curFile,sFile)
freeBuf(buf90) freeBuf(buf91) .. no header/footer unless specified
while (nothing) {
label(13)
if (not is(curFile,".")) goto label(10)
equateLoc(curFile,sInvert,atCursor) .. dot command found, process it
moveCursor(curFile,eChar)
equateNum(n98,0) .. flag for .pa, .po
if (is(curFile,".")) goto label(12) .. comments
moveCursor(curFile,eChar) moveCursor(curFile,eChar)
equateLoc(curFile,eInvert,atCursor)
freeBuf(buf99) insertRgn(buf99,sFile,curFile,invert)
if (getFlag(buf99,searchCaps)) flipFlag(buf99,searchCaps)
moveCursor(buf99,sFile) .. margin, top
setSearch("mt")
if (search(buf99,sInvert,eInvert,1)) {
if(runKey(virtual-n)) setLocal(curFile,topMargin,n99)
.. else ignore it, use current setting
goto label(12) }
.. else ignore lack of it & use current setting
moveCursor(buf99,sFile) .. margin, bottom
setSearch("mb")
if (search(buf99,sInvert,eInvert,1)) {
if(runKey(virtual-n)) setLocal(curFile,bottomMargin,n99)
goto label(12) }
moveCursor(buf99,sFile) .. lines/page
setSearch("pl")
if (search(buf99,sInvert,eInvert,1)) {
if(runKey(virtual-n)) setLocal(curFile,pageLines,n99)
goto label(12) }
moveCursor(buf99,sFile) .. header
setSearch("he")
if (search(buf99,sInvert,eInvert,1)) {
locToCol(buf99,n99,eInvert) colToLoc(curFile,sInvert,n99)
moveCursor(curFile,eLine) equateLoc(curFile,eInvert,atCursor)
insertRgn(buf90,sFile,curFile,invert)
goto label(12) }
moveCursor(buf99,sFile) .. footer
setSearch("fo")
if (search(buf99,sInvert,eInvert,1)) {
locToCol(buf99,n99,eInvert) colToLoc(curFile,sInvert,n99)
moveCursor(curFile,eLine) equateLoc(curFile,eInvert,atCursor)
insertRgn(buf91,sFile,curFile,invert)
goto label(12) }
moveCursor(buf99,sFile) .. comment
setSearch("ig")
if (search(buf99,sInvert,eInvert,1)) goto label(12)
moveCursor(buf99,sFile) .. page break
setSearch("pa")
if (search(buf99,sInvert,eInvert,1)) {
equateNum(n98,5) goto label(12) }
moveCursor(buf99,sFile) .. page offset (left mrg)
setSearch("po")
if (search(buf99,sInvert,eInvert,1)) {
if(runKey(virtual-n)) equateNum(n98,10)
goto label(12) }
moveCursor(buf99,sFile) .. non-WS cmd: printer init strng
setSearch("pi")
if (search(buf99,sInvert,eInvert,1)) {
locToCol(buf99,n99,eInvert) colToLoc(curFile,sInvert,n99)
moveCursor(curFile,eLine) equateLoc(curFile,eInvert,atCursor)
if (askYesNo("Send printer initialization string to printer?")) {
alertUser("Put printer on-line; may be slow to initialize")
print(curFile,invert) }
goto label(12) }
.. otherwise, is unknown dot command, just delete line
label(12) .. get rid of dot command line now that it's processed
moveCursor(curFile,sLine) equateLoc(curFile,locA,atCursor)
moveCursor(curFile,eLine) moveCursor(curFile,eChar)
equateLoc(curFile,locB,atCursor)
clearRgn(curFile,loc)
if (eqNum(n98,5)) insertChar(curFile,12) .. .pa
if (eqNum(n98,10)) { .. .po
getLocal(curFile,n97,lineLength) add(n97,n97,n99)
freeBuf(buf99) printerCode(buf99,65,n99,n97) .. prefs code
if (askYesNo("Send printer code for Left Margin to printer?")) {
alertUser("Put printer on-line; may be slow to initialize")
print(buf99,all) }
.. unknown how to use preferences code 60
.. or replace above two active lines with Epson code (margin must be > 4):
.. insertChar(curFile,27) insertChar(curFile,"l") insertChar(curFile,n99)
.. also will need to allow interpretation of non-UE codes:
.. equateNum(prefPrint,3)
}
updateDisplay .. show progress only for dot cmd processing
if (not is(curFile,eLine)) moveCursor(curFile,eLine)
if (is(curFile,eFile)) goto label(11)
if (not is(curFile,sLine)) moveCursor(curFile,sLine)
goto label(13)
label(10) .. dot command not found, go to check next line
if (not is(curFile,eLine)) moveCursor(curFile,eLine)
if (is(curFile,eFile)) goto label(11)
moveCursor(curFile,eChar)
}
label(11)
putMsg("Setting up paging, please wait...")
getLocal(curFile,n97,topMargin)
getLocal(curFile,n98,bottomMargin)
if (not isEmpty(buf90)) if(eqNum(n97,0)) {
putMsg("Can't have header with no top margin. Press key.")
getKey(n99) beepDisplay returnFalse }
if (not isEmpty(buf91)) if(eqNum(n98,0)) {
putMsg("Can't have footer with no bottom margin. Press key.")
getKey(n99) beepDisplay returnFalse }
.. correct to real lines/page considering margins
add(n99,n97,n98)
getLocal(curFile,n98,pageLines)
sub(n99,n98,n99)
setLocal(curFile,pageLines,n99)
moveCursor(buf90,sFile) insertChar(buf90," ") moveCursor(buf90,sChar)
setSearch("@")
if (search(buf90,sInvert,eInvert,1)) {
equateNum(n99,4) if (not runKey(virtual-d)) goto label(1)
swapChar(buf90," ") copyColData(buf90,atCursor,buf82,invert,0) }
moveCursor(buf90,sFile) clearChar(buf90)
moveCursor(buf91,sFile) insertChar(buf91," ") moveCursor(buf91,sChar)
setSearch("@")
if (search(buf91,sInvert,eInvert,1)) {
equateNum(n99,4) if (not runKey(virtual-d)) goto label(1)
swapChar(buf91," ") copyColData(buf91,atCursor,buf82,invert,0) }
moveCursor(buf91,sFile) clearChar(buf91)
putMsg("Preview doc now for page breaks. Press key. F10 to skip preview.")
getKey(n99) mod(n99,n99,104) if(eqNum(n99,normal-f10)) goto label(2)
moveCursor(curFile,sFile)
equateNum(n92,0)
while (moveCursor(curFile,eForm)) {
moveCursor(curFile,eForm)
if (not is(curFile,eLine)) moveCursor(curFile,eLine)
if (is(curFile,eFile)) equateNum(n92,2)
moveCursor(curFile,sForm)
if (not is(curFile,sLine)) moveCursor(curFile,sLine)
vScroll(atCursor) refreshDisplay
freeBuf(buf99)
insertRgn(buf99,sFile,
"Cursor @ page break. OK=kpEnter;F10=end; or edit this PRINT doc ",all)
movecursor(buf99,eFile)
equateNum(n99,ctl-help) .. no-op
while (not eqNum(n99,normal-kpEnter)) {
runKey(n99) refreshDisplay
getPageRowCol(n99,n98,n97) .. simulate pagerowcol
toWord(buf99,n99) insertChar(buf99,":") toWord(buf99,n98)
insertChar(buf99,",") toWord(buf99,n97) putMsg(buf99)
getKey(n99)
if (eqNum(n99,normal-f10)) goto label(2)
freeBuf(buf99) insertRgn(buf99,sFile,
"PRINT Page break editing. No typing. kpEnter goes, F10 ends. ",all)
}
if (eqNum(n92,2)) goto label(2)
}
label(2)
putMsg(" ")
putMsg("Converting document to final print form...")
.. n98 top n97 bot n99 scratch n96 scratch n95 scratch
.. n93 top hdr page# n94 bot footer page# n92 bof/eof flag n91 real pagelin
.. buf96 = buf90 buf97 = buf91
moveCursor(curFile,sFile) .. setup
getLocal(curFile,n98,topMargin)
getLocal(curFile,n97,bottomMargin)
freeBuf(buf96) insertRgn(buf96,sFile,buf90,all) .. header setup
moveCursor(buf96,sFile) insertChar(buf96," ") moveCursor(buf96,sChar)
equateNum(n93,0)
setSearch("#")
if (search(buf96,sInvert,eInvert,1)) {
clearChar(buf96)
locToCol(buf96,n93,atCursor) decNum(n93) }
moveCursor(buf96,sFile) clearChar(buf96)
freeBuf(buf97) insertRgn(buf97,sFile,buf91,all) .. footer setup
moveCursor(buf97,sFile) insertChar(buf97," ") moveCursor(buf97,sChar)
equateNum(n94,0)
setSearch("#")
if (search(buf97,sInvert,eInvert,1)) {
clearChar(buf97)
locToCol(buf97,n94,atCursor) decNum(n94) }
moveCursor(buf97,sFile) clearChar(buf97)
equateNum(n92,0) .. 0 not eof 2 eof
equateNum(n91,1) .. page # counter
equateLoc(curFile,locA,atCursor)
while(nothing) { ..the heart of it all
moveCursor(curFile,eForm) .. end of page operations
if (not is(curFile,eLine)) moveCursor(curFile,eLine)
if (is(curFile,eFile)) {
insertChar(curFile,12) moveCursor(curFile,sChar) equateNum(n92,2) }
if (is(curFile,12)) { clearChar(curFile) .. space out to end of page
getPageRowCol(n99,n96,n95)
getLocal(curFile,n95,pageLines)
if (gtNum(n95,n96)) { do(n99,n96,n95) insertChar(curFile,eLine)
moveCursor(curFile,sChar) }
}
if (not is(curFile,sLine)) moveCursor(curFile,sLine)
equateLoc(curFile,locB,atCursor) .. save place to insert footer
if (gtNum(n98,0)) { .. top marg
equateLoc(curFile,atCursor,locA)
if (not is(curFile,sLine)) moveCursor(curFile,sLine)
do(n99,1,n98) insertChar(curFile,eLine)
if (not isEmpty(buf90)) { .. put in header, ~centered in top margin
div(n99,n98,2)
do(n96,0,n99) moveCursor(curFile,upLine)
freeBuf(buf99) insertRgn(buf99,sFile,buf96,all)
if (gtNum(n93,0)) { .. put in current page #
colToLoc(buf99,atCursor,n93)
toWord(buf99,n91)
}
copyColData(curFile,atCursor,buf99,all,0)
equateLoc(curFile,sHilite,eHilite)
}
}
refreshDisplay .. show progress
equateLoc(curFile,atCursor,locB) .. bottom margin
moveCursor(curFile,downLine) .. correct by 1
if (gtNum(n97,0)) do(n99,1,n97) insertChar(curFile,eLine)
moveCursor(curFile,sChar) clearChar(curFile)
insertChar(curFile,12) .. put in FF, so Form figured correctly
equateLoc(curFile,locA,atCursor) .. save place to insert header
moveCursor(curFile,upLine)
if (gtNum(n97,0)) {
if (not isEmpty(buf91)) { .. put in footer, ~centered in bottom margin
div(n99,n97,2)
if (gtNum(n97,2)) do(n96,1,n99) moveCursor(curFile,upLine)
freeBuf(buf99) insertRgn(buf99,sFile,buf97,all)
if (gtNum(n94,0)) { .. put in current page #
colToLoc(buf99,atCursor,n94)
toWord(buf99,n91)
}
copyColData(curFile,atCursor,buf99,all,0)
equateLoc(curFile,sHilite,eHilite)
}
if (not is(curFile,eForm)) moveCursor(curFile,eForm) .. back to FF
}
if (eqNum(n92,2)) goto label(3)
incNum(n91) .. page # counter
}
label(3)
..goto label(4) .. testing
moveCursor(curFile,sFile) .. get rid of unnecessary FF's
while(nothing) {
moveCursor(curFile,eForm)
if (not is(curFile,eLine)) moveCursor(curFile,eLine)
if (is(curFile,12)) swapChar(curFile,eLine)
moveCursor(curFile,eChar)
if (is(curFile,eFile)) goto label(4)
}
label(4)
flipFlag(curFile,changed)
if (askYesNo("Print converted document?")) {
alertUser("Put printer to top of form and on-line")
putMsg("Spooling for printing; may take a long time to start printing...")
print(curFile,all) }
if (not askYesNo("Discard this PRINT buffer?")) {
putMsg("PRINT buffer not discarded. Rename and save if desired.")
add(n98,n98,n97) getLocal(curFile,n99,pageLines) add(n99,n98,n99)
setLocal(curFile,pageLines,n99)
flipFlag(curFile,changed) }
else { putMsg(" ") equateNum(n99,curFile) editBuf(buf[n82]) freeBuf(buf[n99]) }
>
-----------------------------------------------------------------------------
C Programming Help
Set up my preferred editor environment for C programming
<shft-F7:
putmsg("Setting up for C...")
if (getFlag(curFile,overStrike)) flipFlag(curFile,overStrike)
if (not getFlag(curFile,autoBackup)) flipFlag(curFile,autoBackup)
if (getFlag(curFile,wordWrap)) flipFlag(curFile,wordWrap)
if (getFlag(curFile,icons)) flipFlag(curFile,icons)
equateNum(pageLines,1)
setLocal(curFile,pageLines,pageLines)
if (not getFlag(curFile,autoIndent)) flipFlag(curFile,autoIndent)
setLocal(curFile,tabTable,2) .. assumes 2 is programming table
equateNum(tabTable,2)
putmsg("Ready to do C") >
Save file in current buffer to vd0:
Strips out any path, saves to vd0: root, which is where I do my C work
Save file in current buffer to vd0:; path stripped, always puts to root
<ctl-F7:
freeBuf(buf98) getFileName(buf98,curFile)
moveCursor(buf98,sFile) insertChar(buf98," ") moveCursor(buf98,sFile)
equateLoc(buf98,sInvert,eInvert)
setSearch(":")
if (search(buf98,sInvert,eInvert,1)) {
moveCursor(buf98,sFile)
if (eqLoc(buf98,sFile,sInvert)) clearChar(buf98)
else {
moveCursor(buf98,sFile)
while (not eqLoc(buf98,atCursor,sInvert)) clearChar(buf98) } }
else moveCursor(buf98,sFile) clearChar(buf98)
moveCursor(buf98,sFile) insertChar(buf98," ")
equateLoc(buf98,sInvert,eInvert)
moveCursor(buf98,sFile)
setSearch("/")
do (n98,0,9999) {
if (not search(buf98,sInvert,eInvert,1)) goto label(1) }
label(1)
if (gtNum(n98,0)) { moveCursor(buf98,sFile)
while (not eqLoc(buf98,atCursor,eInvert)) clearChar(buf98) }
else { moveCursor(buf98,sFile) clearChar(buf98) }
getFileName(buf99,curFile)
insertRgn(buf98,sFile,"vd0:",all)
setFileName(curFile,buf98)
if (getFlag(curFile,changed)) equateNum(n99,5) else equateNum(n99,0)
saveFile(curFile)
setFileName(curFile,buf99)
if (eqNum(n99,5)) flipFlag(curFile,changed) >
For C comments: put in the beginning comment delimiter "/* "
<normal-f7:
if (not is(curFile," ")) insertchar(curFile,"/")
else { swapChar(curFile,"/") moveCursor(curFile,eChar) }
if (not is(curFile," ")) insertchar(curFile,"*")
else { swapChar(curFile,"*") moveCursor(curFile,eChar) }
if (not is(curFile," ")) insertchar(curFile," ")
else moveCursor(curFile,eChar)
updateDisplay
>
For C comments: put in the ending comment delimiter " */"
<normal-f8:
if (not is(curFile," ")) insertchar(curFile," ")
else moveCursor(curFile,eChar)
if (not is(curFile," ")) insertChar(curFile,"*")
else { swapChar(curFile,"*") moveCursor(curFile,eChar) }
if (not is(curFile," ")) insertChar(curFile,"/")
else { swapChar(curFile,"/") moveCursor(curFile,eChar) }
updateDisplay
>
C programming: comment out current line with "/* " at cursor & " */" at EOL
<ctl-f8:
runKey(normal-f7)
if (not is(curFile,eLine)) moveCursor(curFile,eLine)
runKey(normal-f8)
moveCursor(curFile,sLine) moveCursor(curFile,downLine)
>
Un-Set up my C environment
<shft-F8:
putmsg("UnSetting from C mode...")
if (getFlag(curFile,autoBackup)) flipFlag(curFile,autoBackup)
if (not getFlag(curFile,wordWrap)) flipFlag(curFile,wordWrap)
equateNum(pageLines,66)
setLocal(curFile,pageLines,pageLines)
setLocal(curFile,tabTable,1) .. assumes WS std desired
equateNum(tabTable,1)
putmsg("C mode now unset") >
----------------------------------------------------------------------------
Borrowed
Other than command key/n#/buf# reassignments, reformatting, and minor
changes, the following were copied from the standard UEdit Config! file
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Speak a marked block. Say command & libraries must be available.
<shftCtl-]:
if (gtLoc(curFile,eHilite,sHilite)) {
equateLoc(curFile,locA,atCursor)
equateLoc(curFile,sInvert,sHilite)
equateLoc(curFile,atCursor,sHilite)
while (gtLoc(curFile,eHilite,sInvert)) {
if (not is(curFile,eLine)) moveCursor(curFile,eLine)
moveCursor(curFile,eChar)
if (gtLoc(curFile,atCursor,eHilite))
equateLoc(curFile,eInvert,eHilite)
else equateLoc(curFile,eInvert,atCursor)
if (gtLoc(curFile,eInvert,sInvert)) {
freeBuf(buf99)
insertRgn(buf99,sFile,curFile,invert)
speak(buf99) }
equateLoc(curFile,sInvert,atCursor) }
equateLoc(curFile,atCursor,locA) }
else { putMsg("No block!") returnFalse }
returnTrue>
----------------------------------------------------------------------------
Arithmetic
Set running total to 0
<alt-0: equateNum(n90,0) putmsg("Total=0") returnTrue >
Type running total into text at cursor
<alt-\:
freeBuf(buf99) div(n97,n90,100)
if (gtNum(0,n90)) if (eqNum(n97,0)) insertChar(buf99,"-")
toWord(buf99,n97) insertChar(buf99,".")
if (gtNum(0,n90)) mul(n97,n90,-1) else equateNum(n97,n90)
mod(n97,n97,100) if (gtNum(10,n97)) insertChar(buf99,"0")
toWord(buf99,n97) insertRgn(curFile,atCursor,buf99,all)
insertRgn(buf99,sFile,"Total: ",all) putMsg(buf99)
returnTrue
>
Add next word (if a number) to running total & display total
<alt-=:
moveCursor(curFile,eWord) moveCursor(curFile,sWord)
runKey(virtual-=)
>
<virtual-=:
toNumber(n99,curFile) moveCursor(curFile,eWord)
if (is(curFile,".")) {
moveCursor(curFile,eChar) if (not is(curFile,digit)) goto label(1)
toNumber(n98,curFile) moveCursor(curFile,eChar)
if (not is(curFile,digit)) { mul(n98,n98,10) moveCursor(curFile,sChar) }
moveCursor(curFile,eWord) }
else { label(1) equateNum(n98,0) }
mul(n99,n99,100) if (gtNum(0,n99)) mul(n97,n98,-1) else equateNum(n97,n98)
add(n99,n99,n97) add(n90,n90,n99) freeBuf(buf99) div(n97,n90,100)
if (gtNum(0,n90)) if (eqNum(n97,0)) insertChar(buf99,"-")
toWord(buf99,n97) insertChar(buf99,".") mod(n97,n90,100)
if (gtNum(0,n90)) mul(n97,-1,n97) if (gtNum(10,n97)) insertChar(buf99,"0")
toWord(buf99,n97) insertRgn(buf99,sFile,"Running total: ",all)
putMsg(buf99) returnTrue>
Subtract next word (if a number) from running total & display total
<alt--:
moveCursor(curFile,eWord) moveCursor(curFile,sWord)
toNumber(n99,curFile) moveCursor(curFile,eWord)
if (is(curFile,".")) {
moveCursor(curFile,eChar)
if (not is(curFile,digit)) goto label(1)
toNumber(n98,curFile)
moveCursor(curFile,eChar)
if (not is(curFile,digit)) { mul(n98,n98,10) moveCursor(curFile,sChar) }
moveCursor(curFile,eWord) }
else { label(1) equateNum(n98,0) }
mul(n99,n99,100) if (gtNum(0,n99)) mul(n97,n98,-1) else equateNum(n97,n98)
add(n99,n99,n97) sub(n90,n90,n99) freeBuf(buf99) div(n97,n90,100)
if (gtNum(0,n90)) if (eqNum(n97,0)) insertChar(buf99,"-")
if (gtNum(0,n90)) insertChar(buf99,"-") toWord(buf99,n97)
insertChar(buf99,".") mod(n97,n90,100) if (gtNum(0,n97)) mul(n97,n97,-1)
if (gtNum(10,n97)) insertChar(buf99,"0") toWord(buf99,n97)
insertRgn(buf99,sFile,"Running total: ",all) putMsg(buf99) returnTrue>
----------------------------------------------------------------------------
Index Stuff
Click or drag mouse, put word/phrase into index in buf80. (ctl-w to see.)
<shftCtl-buttonDown:
equateLoc(curfile,atCursor,mouseLoc) moveCursor(curFile,eWord)
equateLoc(curFile,eInvert,atCursor) moveCursor(curFile,sWord)
equateLoc(curFile,sInvert,atCursor) refreshDisplay >
((See shftCtl-buttonDown and Alt-b))
<shftCtl-buttonUp:
equateLoc(curFile,atCursor,mouseLoc) moveCursor(curFile,eWord)
equateLoc(curFile,eInvert,atCursor)
if (geLoc(curFile,sInvert,eInvert)) returnFalse
moveCursor(curFile,sInvert)
if (is(curFile,upperCase)) equateNum(n0,1) else equateNum(n0,0)
toLower(curFile) copyChar(curFile,n99)
if (eqNum(n0,1)) toUpper(curFile)
if (isEmpty(buf80)) insertChar(buf80,eLine)
moveCursor(buf80,sFile) equateLoc(buf80,sPage,atCursor)
label(1)
if (is(buf80,upperCase)) equateNum(n0,1) else equateNum(n0,0)
toLower(buf80) copyChar(buf80,n98)
if (eqNum(n0,1)) toUpper(buf80)
if (gtNum(n99,n98)) { moveCursor(buf80,downLine)
if (not is(buf80,eFile)) goto label(1) }
insertRgn(buf80,atCursor,curFile,invert) insertChar(buf80,eLine)
>
Scan list in buf80, create index. ((See shftCtl-buttonDown & buttonUp.))
<alt-b:
if(not askYesNo("Build index? (Swap buffer wiped!)")) returnFalse
if (isEmpty(buf80)) returnFalse
runKey(shftAltCtl-j) freeBuf(buf99)
label(1)
moveCursor(buf80,sFile) while (is(buf80,whiteSpace)) clearChar(buf80)
if (is(buf80,eFile)) {
swapBuf(buf99,buf80) freeBuf(buf99) setFileName(buf80,"Index")
equateLoc(buf80,sPage,sFile) equateLoc(buf80,atCursor,sFile)
putMsg("Alt-F1 or R-F1 for Index") returnTrue }
freeBuf(buf97) insertRgn(buf97,sFile,buf80,line)
clearRgn(buf80,line) freeBuf(buf98) insertRgn(buf98,sFile,buf97,all)
insertRgn(buf98,sFile,"Indexing: ",all) putMsg(buf98)
moveCursor(buf99,eFile) insertRgn(buf99,eFile,buf97,all)
insertRgn(buf99,eFile," ",all) insertChar(buf99,eLine)
moveCursor(buf99,sChar) equateNum(n98,0) moveCursor(curFile,sFile)
label(2)
setSearch(buf97)
while (search(curFile,sInvert,eInvert,1)) {
moveCursor(curFile,sChar)
if (is(curFile,alpha)) {
label(3)
moveCursor(curFile,eInvert)
goto label(2) }
if (is(curFile,digit)) goto label(3)
moveCursor(curFile,eInvert)
.. if (is(curFile,alpha)) goto label(2)
.. if (is(curFile,digit)) goto label(2)
locToLine(curFile,n99,atCursor) div(n99,n99,pageLines) incNum(n99)
if (not eqNum(n99,n98)) {
if (not eqNum(n98,0)) insertChar(buf99,",")
toWord(buf99,n99) equateNum(n98,n99) } }
goto label(1) >
********
End of config file