home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 026.lha / s / config! next >
Text File  |  1987-04-02  |  50KB  |  1,332 lines

  1. -----------------------------------------------------------------------------
  2. |                           Config!  V2.0                                   |
  3. |        Copyright (C) 1986-87 Rick Stiles.  All rights reserved.           |
  4. |              2420 Summit Springs Drive, Dunwoody GA, 30350                |
  5. -----------------------------------------------------------------------------
  6.  
  7. Config! defines Uedit's start-up settings and commands.  Copy Config!, Data!,
  8. and Help! to S: so that Uedit can find them.
  9.  
  10. If you edit Config! and want to make a new Data! file, type "Run UE -c" in
  11. CLI.  (Or you can rename S:Data! or delete it, and Uedit will be forced to
  12. compile Config! next time.)
  13.  
  14. If you create a new config such as "NewConfig", you can make Uedit compile it
  15. by typing "UE -cNewConfig" in CLI.  On the "Save new Data?" question,
  16. selecting Yes will replace S:Data!.  Selecting No will preserve the old
  17. S:Data!.  Once inside Uedit, you can select "Save config" and save it under a
  18. new name like "NewData".
  19.  
  20. To make Uedit use NewData next time, type "UE -dNewData" in CLI.  To make it
  21. your standard data file, rename it to S:Data!.
  22.  
  23.  
  24. =============================================================================
  25.  
  26.  
  27. Edit the numbers at the left, but leave the angle-brackets as they are:
  28.  
  29. <0>        auto-backup mode:    0 = no, 1 = yes
  30. <1>        word-wrap mode:      0 = no, 1 = yes
  31. <0>        right-justify mode:  0 = no, 1 = yes
  32. <77>       maximum line-length: 10 thru 999
  33. <66>       lines per page:      1 thru 999
  34. <0>        over-strike mode:    0 = no, 1 = yes
  35. <1>        auto-indent mode:    0 = no, 1 = yes
  36. <0>        print selection:     0 = parallel port, 1 = Preferences
  37. <0>        search sensitive to upper/lower case:  0 = no, 1 = yes
  38. <?>        search-string wildcard (1 character)
  39. <$>        search string "either-or" delimiter (1 character)
  40. <4>        tab spacing:  1-40
  41. <10>       end-of-line character: 10  =  Newline, 13 = Return or Enter
  42.  
  43. <Next File> Name for gadget 1 (19 chars max).
  44. <Prev File> Name for gadget 2 (19 chars max).
  45. <Down Page> Name for gadget 3 (19 chars max).
  46. <Up Page>   Name for gadget 4 (19 chars max).
  47.  
  48.  
  49.            These are for the speech synthesizer:
  50.  
  51. <n>        "n" = natural,"f" = female,"m" = male,"r" = robotic
  52. <120>      speech pitch: 65-320
  53. <200>      speech speed: 40-400
  54. <0>        speak alert messages:     0 = no, 1 = yes
  55. <0>        speak ordinary messages:  0 = no, 1 = yes
  56.  
  57. ===========================================================================
  58.  
  59. Everything from here onward is menu selections or commands.
  60.  
  61. Be sure and keep a backup copy of the original Config!, if you change this
  62. file!
  63.  
  64. (( NOTE:
  65.    The left hand entries below are Menu Titles.  Their key argument is not
  66.    used.  Menu Titles should be as brief as possible.  Menu selection names
  67.    can have up to 17 characters.
  68. ))
  69.  
  70. <startup:
  71.  
  72. menu("Files",1,normal-f1)
  73.    menu("Next file      f1",1,normal-f1)
  74.    menu("Prev file    S-f1",1,shft-f1)
  75.    menu("Open         A-f1",1,alt-f1)
  76.    menu("New file     C-f1",1,ctl-f1)
  77.    menu("Insert file SA-f1",1,shftAlt-f1)
  78.    menu("Restore     SC-f1",1,shftCtl-f1)
  79.    menu("Rename        A-n",1,alt-n)
  80.    menu("AmigaDOS      C-y",1,ctl-y)
  81.    menu("DOS + result  C-z",1,ctl-z)
  82.    menu("Directory     A-z",1,alt-z)
  83.    menu("Save           f2",1,normal-f2)
  84.    menu("Save as...   S-f2",1,shft-f2)
  85.    menu("Save changes A-f2",1,alt-f2)
  86.    menu("Close          f3",1,normal-f3)
  87.    menu("Auto-close   S-f3",1,shft-f3)
  88.    menu("Quit           f4",1,normal-f4)
  89.    menu("Auto-Quit    S-f4",1,shft-f4)
  90.    menu("About...         ",1,shftAltCtl-a)
  91.  
  92. menu("Buffers",2,normal-f1)
  93.    menu("Search fwd     f9",2,normal-f9)
  94.    menu("Replace fwd   f10",2,normal-f10)
  95.    menu("Rpl all fwd A-f10",2,alt-f10)
  96.    menu("Search bkwd  S-f9",2,shft-f9)
  97.    menu("Rpl bkwd    S-f10",2,shft-f10)
  98.    menu("Set search     f7",2,normal-f7)
  99.    menu("Set replace    f8",2,normal-f8)
  100.    menu("Free buffers A-f3",2,alt-f3)
  101.    menu("Edit buffer SA-f6",2,shftAlt-f6)
  102.    menu("Swap buffer   C-w",2,ctl-w)
  103.    menu("See buffers SC-f6",2,shftCtl-f6)
  104.    menu("Speak hilite  A-s",2,alt-s)
  105.    menu("Print hilite  C-p",2,ctl-p)
  106.  
  107. menu("Commands",3,normal-f1)
  108.    menu("Compile        f6",3,normal-f6)
  109.    menu("Make command S-f6",3,shft-f6)
  110.    menu("Save config  A-f6",3,alt-f6)
  111.    menu("Load config  C-f6",3,ctl-f6)
  112.    menu("Swap keys   AC-f6",3,altCtl-f6)
  113.    menu("Kill key   SAC-f6",3,shftAltCtl-f6)
  114.        checkedMenu("Start learn   C-s",3,ctl-s,learnMode)
  115.    menu("Run learn     C-r",3,ctl-r)
  116.    menu("Command mult  C-m",3,ctl-m)
  117.    menu("Save learn    C-5",3,ctl-5)
  118.    menu("Load learn    C-6",3,ctl-6)
  119.    menu("Run learn #   C-7",3,ctl-7)
  120.  
  121. menu("Edits",4,normal-f1)
  122.    menu("Copy          kp.",4,normal-kpDot)
  123.    menu("Cut           kp-",4,normal-kpMinus)
  124.    menu("Paste     kpEnter",4,normal-kpEnter)
  125.    menu("Clear         C-h",4,ctl-h)
  126.    menu("I-Copy      C-kp.",4,ctl-kpDot)
  127.    menu("I-Cut       C-kp-",4,ctl-kpMinus)
  128.    menu("I-Paste C-kpEnter",4,ctl-kpEnter)
  129.    menu("I-Clear       C-i",4,ctl-i)
  130.    menu("Col Cut      SC-1",4,shftCtl-1)
  131.    menu("Col Erase    SC-2",4,shftCtl-2)
  132.    menu("Col Copy     SC-3",4,shftCtl-3)
  133.    menu("Col Insert   SC-4",4,shftCtl-4)
  134.    menu("Col Overlay  SC-5",4,shftCtl-5)
  135.    menu("Ins Hil->Csr SC-6",4,shftCtl-6)
  136.    menu("Ovl Hil->Csr SC-7",4,shftCtl-7)
  137.    menu("Reformat      C-3",4,ctl-3)
  138.    menu("Tab->space SC-tab",4,shftCtl-tab)
  139.    menu("Space->tab SA-tab",4,shftAlt-tab)
  140.    menu("Del white-spc C-4",4,ctl-4)
  141.  
  142. menu("Modes",5,normal-f1)
  143.    checkedMenu("OverStrike   S-f5",5,shft-f5,overStrike)
  144.    checkedMenu("WordWrap     C-f5",5,ctl-f5,wordWrap)
  145.    checkedMenu("Right justify A-j",5,alt-j,rightJustify)
  146.    checkedMenu("AutoIndent   A-f5",5,alt-f5,autoIndent)
  147.    checkedMenu("Read-only   SA-f5",5,shftAlt-f5,readOnly)
  148.    checkedMenu("AutoBackup SAC-f5",5,shftAltCtl-f5,autoBackup)
  149.    checkedMenu("Print Pref    A-p",5,alt-p,prefPrint)
  150.    checkedMenu("Search caps   C-8",5,ctl-8,searchCaps)
  151.    checkedMenu("Use keys      A-u",5,alt-u,useKeys)
  152.  
  153. menu("Numbers",6,normal-f1)
  154.    menu("Show vals  S-help",6,shft-help)
  155.    menu("Tab space SAC-tab",6,shftAltCtl-tab)
  156.    menu("Line length C-rtn",6,ctl-return)
  157.    menu("Lines/page    A-g",6,alt-g)
  158.    menu("End of line   C-e",6,ctl-e)
  159.    menu("Set wildcard A-f7",6,alt-f7)
  160.    menu("Set eitherOr C-f7",6,ctl-f7)
  161.    menu("Name gadget C-esc",6,ctl-esc)
  162.    menu("File size     C-1",6,ctl-1)
  163.  
  164. menu("Colors",7,normal-f1)
  165.    menu("Colors     A-help",7,alt-help)
  166.    menu("Lace color  A-esc",7,alt-esc)
  167.        checkedMenu("Interlace   S-esc",7,shft-esc,lace)
  168.        checkedMenu("Row/Column    C-2",7,ctl-2,rowCol)
  169.        checkedMenu("Mark gadgets  C-g",7,ctl-g,markGadgets)
  170.    menu("Refresh    C-help",7,ctl-help)
  171.    menu("Unhilite      A-h",7,alt-h)
  172.    menu("Uninvert      A-i",7,alt-i)
  173.        checkedMenu("Columnar     SC-`",7,shftCtl-`,columnar)
  174.        checkedMenu("Invisibles    C-v",7,ctl-v,spooks)
  175.        checkedMenu("Busies        C-b",7,ctl-b,busies)
  176.  
  177.    runKey(shftAltCtl-z)
  178.  
  179. >
  180.  
  181. NOTE:  shftAltCtl-z is executed automatically at startup.  Normally no
  182. command exists for it.  During an edit session you can create and save one,
  183. however, and it will be executed each time you start Uedit.
  184.  
  185. Press HELP if you want to see how to set up shftAltCtl-z  to  auto-load  your
  186. files.
  187.  
  188. ---------------------------------------------------------------------------
  189. Here is a description of how buffers are used in this file.  If you make
  190. changes which involve buffers, you should follow the convention in this list:
  191. (You can change this convention entirely, of course.)
  192.  
  193. buf50-54 = used for temporary purposes in commands
  194. buf49 = search string
  195. buf48 = replace string
  196. buf47 = copied hilite
  197. buf46 = copied invert
  198. buf45 = holds scratch deletes for Undo, keypad-0
  199. buf44 = make-command buffer
  200. buf43 = document names
  201. buf42 = holds Help, if loaded
  202. buf41 = used in buffer swapping command, ctl-w
  203. buf40 = used for AmigaDOS commands
  204. buf39 = used for result of AmigaDOS commands (if result selected)
  205. buf38 = most recent directory name, if "Directory" has been selected
  206. buf37 = copied columnar data
  207.  
  208. ---------------------------------------------------------------------------
  209.  
  210. <normal-help:  if (not isEmpty(buf42)) {
  211.                    getBufNum(n54)
  212.                    if (eqNum(n54,42)) freeBuf(buf42)
  213.                    else editBuf(buf42)
  214.                } else {
  215.                   if (insertFile(buf42,sFile,"S:Help!")) {
  216.                                editBuf(buf42)
  217.                                flipFlag(buf42,readOnly)
  218.                                flipFlag(buf42,changed)
  219.                   } else putMsg("Couldn't find S:Help! file.")
  220.                } >
  221. <shft-help:    showFlags >
  222. <alt-help:     toggle(color) >
  223. <ctl-help:     refreshDisplay >
  224.  
  225. NOTE:  There can be shft-closeBox, alt-closeBox, etc, commands also.
  226. <normal-closeBox:   runKey(normal-f4) >  execute graceful quit key
  227.  
  228. <normal-gadget1:  toggle(curFile) >
  229. <normal-gadget2:  runKey(shft-f1) >
  230. <normal-gadget3:  vScroll(ePage) >
  231. <normal-gadget4:  vScroll(sPage) >
  232.  
  233. <normal-upArrow:     vScroll(upLine) >
  234. <normal-downArrow:   vScroll(downLine) >
  235. <normal-leftArrow:   hScroll(eChar) >
  236. <normal-rightArrow:  hScroll(sChar) >
  237.  
  238. <shft-upArrow:       do (n54,1,11) vScroll(upLine) >
  239. <shft-downArrow:     do (n54,1,11) vScroll(downLine) >
  240. <shft-leftArrow:     do (n54,1,10) hScroll(eChar) >
  241. <shft-rightArrow:    do (n54,1,10) hScroll(sChar) >
  242.  
  243. <alt-upArrow:        vScroll(sPage) >
  244. <alt-downArrow:      vScroll(ePage) >
  245. <alt-leftArrow:      do (n54,1,20) hScroll(eChar) >
  246. <alt-rightArrow:     do (n54,1,20) hScroll(sChar) >
  247.  
  248. <ctl-upArrow:        vScroll(sFile) >
  249. <ctl-downArrow:      vScroll(eFile) >
  250. <ctl-leftArrow:      equateNum(n54,lineLength)
  251.                      do (n53,1,n54) hScroll(eChar) >
  252. <ctl-rightArrow:     while (hScroll(sChar)) nothing >
  253.  
  254. place cursor
  255. <normal-buttonDown:  moveCursor(curFile,mouseLoc) >
  256. set start of hilite
  257. <shft-buttonDown:    equateLoc(curFile,sHilite,mouseLoc) refreshDisplay >
  258. set end of hilite
  259. <alt-buttonDown:     equateLoc(curFile,eHilite,mouseLoc) refreshDisplay >
  260. load filename that is clicked
  261. <ctl-buttonDown:
  262.    equateLoc(curFile,atCursor,mouseLoc)
  263.    if (not is(curFile,whiteSpace)) {
  264.        while (not is(curFile,whiteSpace))
  265.            { moveCursor(curFile,sChar) if (is(curFile,sFile)) goto label(1) }
  266.        label(1)
  267.        while (is(curFile,whiteSpace)) moveCursor(curFile,eChar)
  268.        equateLoc(curFile,sInvert,atCursor)
  269.        while (not is(curFile,whiteSpace)) {
  270.            moveCursor(curFile,eChar) if (is(curFile,eFile)) goto label(2) }
  271.        label(2)
  272.        equateLoc(curFile,eInvert,atCursor)
  273.        refreshDisplay
  274.        freeBuf(buf54)
  275.        insertRgn(buf54,sFile,buf38,all)
  276.        insertRgn(buf54,eFile,curFile,invert)
  277.        loadFile(buf54)
  278.    } >
  279. Click or drag mouse, put word/phrase into index in buf41.  (ctl-w to see.)
  280. <shftAlt-buttonDown:
  281.    equateLoc(curFile,atCursor,mouseLoc)
  282.    moveCursor(curFile,eWord)
  283.    equateLoc(curFile,eInvert,atCursor)
  284.    moveCursor(curFile,sWord)
  285.    equateLoc(curFile,sInvert,atCursor)
  286.    refreshDisplay>
  287.  
  288. ((See shftAlt-buttonDown and shftAlt-i.))
  289. <shftAlt-buttonUp:
  290.    equateLoc(curFile,atCursor,mouseLoc)
  291.    moveCursor(curFile,eWord)
  292.    equateLoc(curFile,eInvert,atCursor)
  293.    if (geLoc(curFile,sInvert,eInvert)) returnFalse
  294.    moveCursor(curFile,sInvert)
  295.    if (is(curFile,upperCase)) equateNum(n0,1)
  296.    else equateNum(n0,0)
  297.    toLower(curFile)
  298.    copyChar(curFile,n54)
  299.    if (eqNum(n0,1)) toUpper(curFile)
  300.    if (isEmpty(buf41)) insertChar(buf41,eLine)
  301.    moveCursor(buf41,sFile)
  302.    equateLoc(buf41,sPage,atCursor)
  303.    label(1)
  304.    if (is(buf41,upperCase)) equateNum(n0,1)
  305.    else equateNum(n0,0)
  306.    toLower(buf41)
  307.    copyChar(buf41,n53)
  308.    if (eqNum(n0,1)) toUpper(buf41)
  309.    if (gtNum(n54,n53)) {
  310.        moveCursor(buf41,downLine)
  311.        if (not is(buf41,eFile)) goto label(1)
  312.    }
  313.    insertRgn(buf41,atCursor,curFile,invert)
  314.    insertChar(buf41,eLine)
  315. >
  316.  
  317. set start of invert
  318. <shftCtl-buttonDown: equateLoc(curFile,sInvert,mouseLoc) refreshDisplay >
  319. set end of invert
  320. <altCtl-buttonDown:  equateLoc(curFile,eInvert,mouseLoc) refreshDisplay >
  321. drag mouse and create hilite
  322. <shftAltCtl-buttonDown:
  323.    equateLoc(curFile,locA,mouseLoc)
  324.    while (trackMouse) nothing
  325.    if (gtLoc(curFile,locA,mouseLoc))
  326.        { equateLoc(curFile,sHilite,mouseLoc) equateLoc(curFile,eHilite,locA) }
  327.    else
  328.        { equateLoc(curFile,eHilite,mouseLoc) equateLoc(curFile,sHilite,locA) }
  329.    refreshDisplay >
  330.  
  331. switch to next file
  332. <normal-f1:    toggle(curFile) >
  333.  
  334. switch to prev file
  335. <shft-f1:      getBufNum(n54)
  336.                while (nothing) {
  337.                    if (gtNum(n54,20)) equateNum(n54,20)
  338.                    decNum(n54)
  339.                    if (gtNum(0,n54)) equateNum(n54,19)
  340.                    if (not isEmpty(buf[n54])) {
  341.                        editBuf(buf[n54])
  342.                        returnTrue
  343.                    }
  344.                } >
  345.  
  346. <alt-f1:       putMsg("Input new filename:")
  347.                freeBuf(buf43)
  348.                if (inputString(buf43)) loadFile(buf43) >
  349. open new blank file buffer
  350. <ctl-f1:       newFile >
  351. <shftAlt-f1:   putMsg("Input filename to insert:")
  352.                freeBuf(buf43)
  353.                if (inputString(buf43)) insertFile(curFile,atCursor,buf43) >
  354. <shftCtl-f1:   if (not askYesNo("Restore file to original?"))
  355.                           returnFalse
  356.                if (getFileName(buf43,curFile))
  357.                    { freeBuf(curFile) loadFile(buf43) } >
  358.  
  359. save file currently in window
  360. <normal-f2: saveFile(curFile) >
  361. <shft-f2:   putMsg("Save file as:")
  362.             freeBuf(buf43)
  363.             if (inputString(buf43)) if (setFileName(curFile,buf43))
  364.                    saveFile(curFile) >
  365. save all changed files
  366. <alt-f2:    do(n54,0,19)
  367.                if (getFlag(buf[n54],changed)) saveFile(buf[n54]) >
  368.  
  369. <normal-f3: if (not isEmpty(curFile)) if (getFlag(curFile,changed))
  370.               if (askYesNo("Save changes before closing?"))
  371.                 if (not saveFile(curFile)) returnFalse
  372.             freeBuf(curFile) >
  373. save file, if changed, then close it
  374. <shft-f3:   if (getFlag(curFile,changed)) if (not saveFile(curFile))
  375.                                    returnFalse
  376.             freeBuf(curFile) >
  377. free all buffers
  378. <alt-f3:    do(n54,20,54) freeBuf(buf[n54]) >
  379.  
  380. <normal-f4: if (not askYesNo("Really quit?")) returnFalse
  381.             equateNum(n53,0)
  382.             do(n54,0,19) if (getFlag(buf[n54],changed)) equateNum(n53,1)
  383.             if (eqNum(n53,1)) if (askYesNo("Save changes?")) runKey(shft-f4)
  384.             quit >
  385. save all changed files, then quit
  386. <shft-f4:   do (n54,0,19) if (getFlag(buf[n54],changed))
  387.                                if (not saveFile(buf[n54])) returnFalse
  388.             quit >
  389. quit WITHOUT saving any files
  390. <alt-f4:    quit >
  391.  
  392. switch flag settings:
  393. <shft-f5:          flipFlag(curFile,overstrike) >
  394. <alt-f5:           flipFlag(curFile,autoIndent) >
  395. <ctl-f5:           flipFlag(curFile,wordWrap) >
  396. <shftAlt-f5:       flipFlag(curFile,readOnly) >
  397. <shftCtl-f5:       flipFlag(curFile,speakMsgs) >
  398. <altCtl-f5:        flipFlag(curFile,speakAlerts) >
  399. <shftAltCtl-f5:    flipFlag(curFile,autoBackup) >
  400.  
  401. compile command in current buffer in window
  402. <normal-f6:    compile >
  403. select buffer 44 to use for writing commands
  404. <shft-f6:      editBuf(buf44)
  405.        putMsg("Type in command, <anykey: etc>, and press F6 to compile:") >
  406. save editor config to disk
  407. <alt-f6:
  408.        if (askYesNo("Save config?")) {
  409.            putMsg("Input data filename or ESC:")
  410.            freeBuf(buf54)
  411.            inputString(buf54)
  412.            saveConfig(buf54)
  413.        } >
  414. restore editor config from disk
  415. <ctl-f6:
  416.        if (askYesNo("Load config?")) {
  417.            putMsg("Input data filename or ESC:")
  418.            freeBuf(buf54)
  419.            inputString(buf54)
  420.            loadConfig(buf54)
  421.        } >
  422. edit a buffer
  423. <shftAlt-f6:   putMsg("Input number of buffer to edit:")
  424.                if (inputNum(n54)) editBuf(buf[n54]) >
  425. examine all buffers that aren't empty
  426. <shftCtl-f6:   do (n54,20,54) if (not isEmpty(buf[n54])) {
  427.                    editBuf(buf[n54])
  428.                    putMsg("F1=continue, F2=edit this one, F3=stop:")
  429.                    getKey(n53)
  430.                    if (eqNum(n53,normal-f2)) { putMsg(" ") returnTrue }
  431.                    if (eqNum(n53,normal-f3)) goto label(1)
  432.                }
  433.                label(1)
  434.                toggle(curFile)
  435.                putMsg(" ") >
  436. swap anything, including mouse clicks, menu selections, gadgets, keys
  437. <altCtl-f6:    putMsg("Next 2 function keys will be swapped!")
  438.                if (getKey(n53)) if (getKey(n54)) if (swapKey(n53,n54))
  439.                    { putMsg("Keys were swapped.") returnTrue }
  440.                putMsg(" ") >
  441. kill command, including mouse clicks, menu selections, gadgets, keys
  442. <shftAltCtl-f6:
  443.                putMsg("Next command-key will be deleted!")
  444.                if (getKey(n54)) if (killKey(n54))
  445.                    { putMsg("Key command was deleted.") returnTrue }
  446.                putMsg(" ") >
  447.  
  448. input search text to use, including either-or "$" and wildcards "?"
  449. <normal-f7:    freeBuf(buf49) runKey(shft-f7) >
  450. modify existing search text
  451. <shft-f7:      putMsg("Input search string:")
  452.                inputString(buf49)
  453.                runKey(normal-f9) >
  454. <alt-f7:       putMsg("Input new search wild-card char:")
  455.                freeBuf(buf49)
  456.                if (inputString(buf49))
  457.                    { moveCursor(buf49,sFile) copyChar(buf49,wildCard) } >
  458. <ctl-f7:       putMsg("Input new search either-or char:")
  459.                freeBuf(buf49)
  460.                if (inputString(buf49))
  461.                    { moveCursor(buf49,sFile) copyChar(buf49,eitherOr) } >
  462.  
  463. input replace text
  464. <normal-f8:    freeBuf(buf48) runKey(shft-f8) >
  465. modify existing replace text
  466. <shft-f8:      putMsg("input replace string:") inputString(buf48) >
  467.  
  468. NOTE: returnTrue is needed below because "thisKey" could return a False even
  469. though search() returned True.  returnFalse is needed because equateLoc()
  470. will return a True:
  471.  
  472. search forward, invert "matched" region, put cursor at start of region
  473. <normal-f9:  if (eqLoc(curFile,atCursor,eInvert)) moveCursor(curFile,sChar)
  474.              if (search(curFile,sInvert,eInvert,buf49,eChar)) {
  475.                if (thisKey) if (not onScreen(atCursor)) vScroll(atCursor)
  476.                returnTrue
  477.              }
  478.              putMsg("Search failed.")
  479.              equateLoc(curFile,sInvert,eInvert)
  480.              returnFalse >
  481. search backward
  482. <shft-f9:    if (search(curFile,sInvert,eInvert,buf49,sChar)) {
  483.                if (thisKey) if (not onScreen(atCursor)) vScroll(atCursor)
  484.                returnTrue
  485.              }
  486.              putMsg("Search failed.")
  487.              equateLoc(curFile,sInvert,eInvert)
  488.              returnFalse >
  489.  
  490. replace "matched" region, then search forward
  491. <normal-f10:   if (eqLoc(curFile,sInvert,eInvert)) returnFalse
  492.                clearRgn(curFile,invert)
  493.                insertRgn(curFile,sInvert,buf48,all)
  494.                runKey(normal-f9) >
  495. replace "matched" region, then search backward
  496. <shft-f10:     if (eqLoc(curFile,sInvert,eInvert)) returnFalse
  497.                clearRgn(curFile,invert)
  498.                insertRgn(curFile,sInvert,buf48,all)
  499.                runKey(shft-f9) >
  500. replace-all forward
  501. <alt-f10:      while(runKey(normal-f10)) nothing >
  502.  
  503. insert a space for typing
  504. <shft-del: insertChar(curFile," ") moveCursor(curFile,sChar)
  505.            if (is(curFile,sLine)) refreshDisplay>
  506. insert line below line
  507. <alt-del:  if (not is(curFile,eLine)) moveCursor(curFile,eLine)
  508.            insertChar(curFile,eLine)>
  509.  
  510. delete line above cursor line
  511. <ctl-del:  equateLoc(curFile,mouseLoc,atCursor)
  512.            if (not is(curFile,sLine)) moveCursor(curFile,sLine)
  513.            if (not is(curFile,sFile)) {
  514.                moveCursor(curFile,upLine)
  515.                runKey(ctl-d)
  516.                moveCursor(curFile,mouseLoc)
  517.            }>
  518.  
  519. open space in front of word for typing
  520. <shft-bs:  if (not is(curFile,sWord)) moveCursor(curFile,sWord)
  521.            runKey(shft-del)>
  522. open line above cur line for typing
  523. <alt-bs:   if (not is(curFile,sLine)) moveCursor(curFile,sLine)
  524.            insertChar(curFile,eLine)  moveCursor(curFile,sChar)>
  525.  
  526. delete line below cursor line
  527. <ctl-bs:  equateLoc(curFile,mouseLoc,atCursor)
  528.            if (not is(curFile,eLine)) moveCursor(curFile,eLine)
  529.            if (not is(curFile,eFile)) {
  530.                moveCursor(curFile,downLine)
  531.                runKey(ctl-d)
  532.                moveCursor(curFile,mouseLoc)
  533.            }>
  534.  
  535.  
  536. ---------------------------- Keypad Keys   ----------------------------------
  537. find cursor
  538. <normal-kp5:   vScroll(atCursor) >
  539. delete word left
  540. <normal-kp7:   if (not eqLoc(curFile,locB,atCursor)) freeBuf(buf45)
  541.                equateLoc(curFile,locB,atCursor)
  542.                moveCursor(curFile,sWord)
  543.                equateLoc(curFile,locA,atCursor)
  544.                insertRgn(buf45,sFile,curFile,loc)
  545.                clearRgn(curFile,loc) >
  546. delete word right
  547. <normal-kp9:   if (not eqLoc(curFile,locB,atCursor)) freeBuf(buf45)
  548.                equateLoc(curFile,locA,atCursor)
  549.                moveCursor(curFile,eWord)
  550.                equateLoc(curFile,locB,atCursor)
  551.                insertRgn(buf45,eFile,curFile,loc)
  552.                clearRgn(curFile,loc) >
  553. <normal-kp8:   moveCursor(curFile,upLine) >
  554. <normal-kp2:   moveCursor(curFile,downLine) >
  555. <normal-kp4:   moveCursor(curFile,sWord) >
  556. <normal-kp6:   moveCursor(curFile,eWord) >
  557. set start of hilite at cursor
  558. <normal-kp1:   equateLoc(curFile,sHilite,atCursor) refreshDisplay >
  559. set end of hilite at cursor
  560. <normal-kp3:   equateLoc(curFile,eHilite,atCursor) refreshDisplay >
  561. UNDO scratch deletes, inserting scratch delete buffer at cursor
  562. <normal-kp0:   insertRgn(curFile,atCursor,buf45,all) >
  563. copy hilite region into buffer
  564. <normal-kpDot: if (gtLoc(curFile,eHilite,sHilite))
  565.                    { freeBuf(buf47) insertRgn(buf47,sFile,curFile,hilite) }
  566.                else returnFalse >
  567. copy hilite region into buffer, then delete hilite region
  568. <normal-kpMinus:   if (runKey(normal-kpDot)) clearRgn(curFile,hilite) >
  569. insert copied hilite at cursor
  570. <normal-kpEnter:   insertRgn(curFile,atCursor,buf47,all)
  571.                    if (not onScreen(atCursor)) vScroll(atCursor) >
  572.  
  573. <shft-kp5:     vScroll(atCursor) >
  574. delete character left
  575. <shft-kp7:     if (not eqLoc(curFile,locB,atCursor)) freeBuf(buf45)
  576.                equateLoc(curFile,locB,atCursor)
  577.                moveCursor(curFile,sChar)
  578.                equateLoc(curFile,locA,atCursor)
  579.                insertRgn(buf45,sFile,curFile,loc)
  580.                clearRgn(curFile,loc) >
  581. delete character under cursor
  582. <shft-kp9:     if (not eqLoc(curFile,locB,atCursor)) freeBuf(buf45)
  583.                equateLoc(curFile,locA,atCursor)
  584.                moveCursor(curFile,eChar)
  585.                equateLoc(curFile,locB,atCursor)
  586.                insertRgn(buf45,eFile,curFile,loc)
  587.                clearRgn(curFile,loc) >
  588. <shft-kp8:     moveCursor(curFile,upLine) >
  589. <shft-kp2:     moveCursor(curFile,downLine) >
  590. <shft-kp4:     moveCursor(curFile,sChar) >
  591. <shft-kp6:     moveCursor(curFile,eChar) >
  592. <shft-kp1:     runKey(normal-kp1) >
  593. <shft-kp3:     runKey(normal-kp3) >
  594. <shft-kp0:     runKey(normal-kp0) >
  595. <shft-kpDot:   runKey(normal-kpDot) >
  596. <shft-kpMinus: runKey(normal-kpMinus) >
  597. <shft-kpEnter: runKey(normal-kpEnter) >
  598.  
  599. <alt-kp5:      vScroll(atCursor) >
  600. delete line left
  601. <alt-kp7:      if (not eqLoc(curFile,locB,atCursor)) freeBuf(buf45)
  602.                if (is(curFile,sLine)) runKey(shft-kp7)
  603.                else {
  604.                    equateLoc(curFile,locB,atCursor)
  605.                    moveCursor(curFile,sLine)
  606.                    equateLoc(curFile,locA,atCursor)
  607.                    insertRgn(buf45,sFile,curFile,loc)
  608.                    clearRgn(curFile,loc)
  609.                } >
  610. delete line right
  611. <alt-kp9:   if (not eqLoc(curFile,locB,atCursor)) freeBuf(buf45)
  612.             if (is(curFile,eLine)) runKey(shft-kp9)
  613.             else {
  614.                equateLoc(curFile,locA,atCursor)
  615.                moveCursor(curFile,eLine)
  616.                equateLoc(curFile,locB,atCursor)
  617.                insertRgn(buf45,eFile,curFile,loc)
  618.                clearRgn(curFile,loc)
  619.             } >
  620. <alt-kp8:   moveCursor(curFile,upLine) >
  621. <alt-kp2:   moveCursor(curFile,downLine) >
  622. <alt-kp4:   moveCursor(curFile,sLine) >
  623. <alt-kp6:   moveCursor(curFile,eLine) >
  624. <alt-kp1:   runKey(normal-kp1) >
  625. <alt-kp3:   runKey(normal-kp3) >
  626. <alt-kp0:     runKey(normal-kp0) >
  627. <alt-kpDot:   runKey(normal-kpDot) >
  628. <alt-kpMinus: runKey(normal-kpMinus) >
  629. <alt-kpEnter: runKey(normal-kpEnter) >
  630.  
  631. <ctl-kp5:      vScroll(atCursor) >
  632. delete to start of page
  633. <ctl-kp7:      if (not eqLoc(curFile,locB,atCursor)) freeBuf(buf45)
  634.                equateLoc(curFile,locB,atCursor)
  635.                moveCursor(curFile,sPage)
  636.                equateLoc(curFile,locA,atCursor)
  637.                insertRgn(buf45,sFile,curFile,loc)
  638.                clearRgn(curFile,loc)
  639.                vScroll(atCursor) >
  640. delete to end of page
  641. <ctl-kp9:      if (not eqLoc(curFile,locB,atCursor)) freeBuf(buf45)
  642.                equateLoc(curFile,locA,atCursor)
  643.                moveCursor(curFile,ePage)
  644.                equateLoc(curFile,locB,atCursor)
  645.                insertRgn(buf45,eFile,curFile,loc)
  646.                clearRgn(curFile,loc) >
  647. <ctl-kp8:      moveCursor(curFile,sPage) vScroll(atCursor) >
  648. <ctl-kp2:      moveCursor(curFile,ePage) vScroll(atCursor) >
  649. <ctl-kp4:      moveCursor(curFile,sLine) >
  650. <ctl-kp6:      moveCursor(curFile,eLine) >
  651. set start of invert at cursor
  652. <ctl-kp1:      equateLoc(curFile,sInvert,atCursor) refreshDisplay >
  653. set end of invert at cursor
  654. <ctl-kp3:      equateLoc(curFile,eInvert,atCursor) refreshDisplay >
  655. <ctl-kp0:      runKey(normal-kp0) >
  656. copy invert region into buffer
  657. <ctl-kpDot:    if (gtLoc(curFile,eInvert,sInvert))
  658.                    { freeBuf(buf46) insertRgn(buf46,sFile,curFile,invert) }
  659.                else returnFalse >
  660. copy, then delete, invert region
  661. <ctl-kpMinus:  runKey(ctl-kpDot) clearRgn(curFile,invert) >
  662. insert copied invert region at cursor
  663. <ctl-kpEnter:  insertRgn(curFile,atCursor,buf46,all)
  664.                if (not onScreen(atCursor)) vScroll(atCursor) >
  665.  
  666. ------------------------- miscellaneous keys  -------------------------------
  667.  
  668. <ctl-return: putMsg("Enter new line-length:")
  669.              if (inputNum(n54))
  670.              { setLocal(curFile,lineLength,n54) equateNum(lineLength,n54) } >
  671.  
  672. transparent tab fwd
  673. <shft-tab: while (moveCursor(curFile,eChar)) {
  674.                if (is(curFile,sLine)) returnTrue
  675.                if (is(curFile,tabColumn)) returnTrue
  676.            }
  677.            returnFalse >
  678.  
  679. transparent tab bkwd
  680. <alt-tab:  while (moveCursor(curFile,sChar)) {
  681.                if (is(curFile,sLine)) returnTrue
  682.                if (is(curFile,tabColumn)) returnTrue
  683.            }
  684.            returnFalse >
  685.  
  686. untab - delete spaces back to prev tab column
  687. <ctl-tab:   equateNum(n53,tabSpacing)
  688.             do (n54,1,n53) {
  689.                 moveCursor(curFile,sChar)
  690.                 if (is(curFile,space)) clearChar(curFile)
  691.                 else { moveCursor(curFile,eChar) returnFalse }
  692.                 if (is(curFile,tabColumn)) returnTrue
  693.             } >
  694. <shftAlt-tab:  putMsg("Converting spaces to TABs....")
  695.                spacesToTabs putMsg(" ") >
  696. <shftCtl-tab:  putMsg("Converting TABs to spaces....")
  697.                tabsToSpaces putMsg(" ") >
  698. <shftAltCtl-tab:
  699.            putMsg("Enter new tab spacing:")
  700.            if (inputNum(n54)) if (gtNum(n54,0))
  701.              { setLocal(curFile,tabSpacing,n54) equateNum(tabSpacing,n54) } >
  702.  
  703. <ctl-b:  flipFlag(curFile,busies) >
  704. trim spaces between words
  705. <alt-c:  while (not is(curFile,space))
  706.            { moveCursor(curFile,eChar) if (is(curFile,eFile)) returnTrue }
  707.          moveCursor(curFile,eChar)
  708.          while (is(curFile,space)) clearChar(curFile) >
  709. input a ctl-character, such as formfeed, into text at cursor
  710. <ctl-c:  putMsg("Input a control character:") inputctlChar >
  711. input a command and count number of times executed
  712. <shftAlt-c:    equateNum(n54,0)
  713.                putMsg("Input command to execute & count:")
  714.                if (getKey(n53)) {
  715.                    while (runKey(n53)) incNum(n54)
  716.                    freeBuf(buf54)
  717.                    insertRgn(buf54,sFile,"Times executed = ",all)
  718.                    toWord(buf54,n54)
  719.                    putMsg(buf54)
  720.                } >
  721. delay # tenths of seconds stored in n46 (see shftAlt-d)
  722. <alt-d:    delay(n46) >
  723. delete entire line
  724. <ctl-d:    if (not eqLoc(curFile,locB,atCursor)) freeBuf(buf45)
  725.            equateLoc(curFile,locB,atCursor)
  726.            if (not is(curFile,sLine)) moveCursor(curFile,sLine)
  727.            if (not eqLoc(curFile,locB,atCursor)) {
  728.                equateLoc(curFile,locA,atCursor)
  729.                insertRgn(buf45,sFile,curFile,loc)
  730.                clearRgn(curFile,loc)
  731.            } else equateLoc(curFile,locA,atCursor)
  732.            if (not is(curFile,eLine)) moveCursor(curFile,eLine)
  733.            moveCursor(curFile,eChar)
  734.            equateLoc(curFile,locB,atCursor)
  735.            insertRgn(buf45,eFile,curFile,loc)
  736.            clearRgn(curFile,loc) >
  737.  
  738. <shftAlt-d: putMsg("Input # tenths of seconds (used in delays)")
  739.             inputNum(n46) >
  740. <alt-e:    putMsg("Input new end-of-line value (usually 10 or 13):")
  741.            inputNum(n54)
  742.            setEol(n54)
  743.            refreshDisplay >
  744. <ctl-e:
  745.        putMsg("Input file's current end-of-line value (usually 10 or 13):")
  746.            inputNum(n54)
  747.            if (not gtNum(n54,0)) returnFalse
  748.            putMsg("Input new end-of-line value (usually 10 or 13):")
  749.            inputNum(n53)
  750.            if (not gtNum(n53,0)) returnFalse
  751.            setEol(n54)
  752.            moveCursor(curFile,sFile)
  753.            putMsg("Changing eol characters ... hit Amiga-ESC to abort.")
  754.            while (moveCursor(curFile,eLine))
  755.                if (is(curFile,n54)) swapChar(curFile,n53)
  756.            setEol(n53)
  757.            vScroll(sFile)
  758.            putMsg(" ")
  759.            refreshDisplay >
  760. <alt-f:    putMsg("Input buffer # to free:")
  761.            if (inputNum(n54)) freeBuf(buf[n54]) >
  762. flip upper/lower case of character under cursor
  763. <ctl-f:    if (is(curFile,alpha)) {
  764.                if (is(curFile,lowerCase)) toUpper(curFile)
  765.                else toLower(curFile)
  766.            }
  767.            moveCursor(curFile,eChar) >
  768. <ctl-g:    flipFlag(curFile,markGadgets) >
  769. <alt-g:    putMsg("Enter new lines/page:")
  770.            inputNum(n54)
  771.            if (gtNum(n54,0))
  772.            { setLocal(curFile,pageLines,n54) equateNum(pageLines,n54) } >
  773.  
  774. unhilite the hilite
  775. <alt-h:    equateLoc(curFile,sHilite,eHilite) refreshDisplay >
  776. clear hilite region - No Copy is made
  777. <ctl-h:    clearRgn(curFile,hilite) >
  778. uninvert the invert
  779. <alt-i:    equateLoc(curFile,sInvert,eInvert) refreshDisplay >
  780. clear invert region - No Copy is made
  781. <ctl-i:    clearRgn(curFile,invert) >
  782. Scan list in buf41, create index.  ((See shftAlt-buttonDown & buttonUp.))
  783. <shftAlt-i:
  784.    if (isEmpty(buf41)) returnFalse
  785.    runKey(alt-g)
  786.    freeBuf(buf54)
  787.    label(1)
  788.    moveCursor(buf41,sFile)
  789.    while (is(buf41,whiteSpace)) clearChar(buf41)
  790.    if (is(buf41,eFile)) {
  791.        swapBuf(buf54,buf41)
  792.        freeBuf(buf54)
  793.        setFileName(buf41,"Index")
  794.        equateLoc(buf41,sPage,sFile)
  795.        equateLoc(buf41,atCursor,sFile)
  796.        putMsg("Press ctl-w to see Index")
  797.        returnTrue
  798.    }
  799.    freeBuf(buf49)
  800.    insertRgn(buf49,sFile,buf41,line)
  801.    clearRgn(buf41,line)
  802.    putMsg(buf49)
  803.    moveCursor(buf54,eFile)
  804.    insertRgn(buf54,eFile,buf49,all)
  805.    insertRgn(buf54,eFile,"  ",all)
  806.    insertChar(buf54,eLine)
  807.    moveCursor(buf54,sChar)
  808.    equateNum(n53,0)
  809.    moveCursor(curFile,sFile)
  810.    label(2)
  811.    while (search(curFile,sInvert,eInvert,buf49,eChar)) {
  812.        moveCursor(curFile,sChar)
  813.        if (is(curFile,alpha)) {
  814.            label(3)
  815.            moveCursor(curFile,eInvert)
  816.            goto label(2)
  817.        }
  818.        if (is(curFile,digit)) goto label(3)
  819.        moveCursor(curFile,eInvert)
  820.        if (is(curFile,alpha)) goto label(2)
  821.        if (is(curFile,digit)) goto label(2)
  822.        locToLine(curFile,n54,atCursor)
  823.        div(n54,n54,pageLines)
  824.        incNum(n54)
  825.        if (not eqNum(n54,n53)) {
  826.            if (not eqNum(n53,0)) insertChar(buf54,",")
  827.            toWord(buf54,n54)
  828.            equateNum(n53,n54)
  829.        }
  830.    }
  831.    goto label(1)
  832. >
  833. <alt-j:    flipFlag(curFile,rightJustify) >
  834. join two lines together
  835. <ctl-j:    if (not is(curFile,eLine)) moveCursor(curFile,eLine)
  836.            equateLoc(curFile,locA,atCursor)
  837.            label(1)
  838.            moveCursor(curFile,eChar)
  839.            if (is(curFile,space)) goto label(1)
  840.            equateLoc(curFile,locB,atCursor)
  841.            clearRgn(curFile,loc)
  842.            insertRgn(curFile,atCursor," ",all) >
  843. move hilite region to left by one space
  844. <alt-l:    moveCursor(curFile,sHilite)
  845.            if (not is(curFile,sLine)) moveCursor(curFile,sLine)
  846.            label(1)
  847.            if (is(curFile,space)) clearChar(curFile)
  848.            if (not is(curFile,eLine)) moveCursor(curFile,eLine)
  849.            moveCursor(curFile,eChar)
  850.            if (gtLoc(curFile,eHilite,atCursor)) goto label(1) >
  851. convert char under cursor to lower case
  852. <ctl-l:    toLower(curFile) moveCursor(curFile,eChar) >
  853. <ctl-m:    putMsg("Input command multiplier:") inputNum(cmdMultiplier) >
  854. rename document in window
  855. <alt-n:    putMsg("Input new filename:")
  856.            getFileName(buf43,curFile)
  857.            if (inputString(buf43))
  858.            setFileName(curFile,buf43) >
  859. go to line number in text
  860. <ctl-n:    putMsg("Input line number:")
  861.            if (inputNum(n54))
  862.                { lineToLoc(curFile,atCursor,n54) vScroll(atCursor) } >
  863. open cursor line for typing
  864. <ctl-o:    insertChar(curFile,eLine) moveCursor(curFile,sChar) >
  865.  
  866. print hilite region
  867. <ctl-p:    print(curFile,hilite) >
  868. switch between printing thru parallel port and through Amiga Preferences
  869. <alt-p:    flipFlag(curFile,prefPrint) >
  870. move hilite region to right by one space
  871. <alt-r:    moveCursor(curFile,sHilite)
  872.            if (not is(curFile,sLine)) moveCursor(curFile,sLine)
  873.            label(1)
  874.            if (gtLoc(curFile,eHilite,atCursor)) {
  875.                insertChar(curFile," ")
  876.                if (not is(curFile,eLine)) moveCursor(curFile,eLine)
  877.                moveCursor(curFile,eChar)
  878.                goto label(1)
  879.            } >
  880. run whatever is stored in learn-buffer
  881. <ctl-r:    runLearn >
  882. speak the hilite region a line at a time
  883. <alt-s:    if (gtLoc(curFile,eHilite,sHilite)) {
  884.                equateLoc(curFile,locA,atCursor)
  885.                equateLoc(curFile,sInvert,sHilite)
  886.                equateLoc(curFile,atCursor,sHilite)
  887.                while (gtLoc(curFile,eHilite,sInvert)) {
  888.                    if (not is(curFile,eLine)) moveCursor(curFile,eLine)
  889.                    moveCursor(curFile,eChar)
  890.                    if (gtLoc(curFile,atCursor,eHilite))
  891.                         equateLoc(curFile,eInvert,eHilite)
  892.                    else equateLoc(curFile,eInvert,atCursor)
  893.                    if (gtLoc(curFile,eInvert,sInvert)) {
  894.                        freeBuf(buf50)
  895.                        insertRgn(buf50,sFile,curFile,invert)
  896.                        speak(buf50)
  897.                    }
  898.                    equateLoc(curFile,sInvert,atCursor)
  899.                }
  900.                equateLoc(curFile,atCursor,locA)
  901.            } >
  902. start/abort Learn Mode
  903. <ctl-s:    if (not getFlag(curFile,learnMode)) putMsg("LEARN MODE ACTIVE!")
  904.            else putMsg("Learn Mode cancelled.")
  905.            flipFlag(curFile,learnMode) >
  906. Use keys for character/number input
  907. <alt-u: flipFlag(curFile,useKeys)>
  908. switch char under cursor to upper case
  909. <ctl-u:    toUpper(curFile) moveCursor(curFile,eChar) >
  910. switch flag that makes control-characters visible/invisible
  911. <ctl-v:    flipFlag(curFile,spooks) refreshDisplay >
  912. swap current buffer in window with buffer 41
  913. <ctl-w:    swapBuf(curFile,buf41) >
  914. for programmers:  toggle number under cursor betw hexadecimal/decimal
  915. <ctl-x:    hexDecimal(curFile) >
  916. execute AmigaDOS command but don't collect the results
  917. <ctl-y:    putMsg("Enter AmigaDOS command")
  918.            freeBuf(buf40)
  919.            if (inputString(buf40)) execute(" ",buf40) >
  920. execute AmigaDOS command and collect results
  921. <ctl-z:    putMsg("Enter AmigaDOS command")
  922.            freeBuf(buf40)
  923.            if (not inputString(buf40)) returnFalse
  924.            freeBuf(buf39)
  925.            if (not execute(buf39,buf40)) returnFalse
  926.            if (not isEmpty(buf39))
  927.                { putMsg("Result of AmigaDOS command:") editBuf(buf39) }
  928.                else
  929.                { putMsg("No message from AmigaDOS.") freeBuf(buf39) } >
  930. get a directory - this sets directoryname in buf38 that is used in click-
  931. loading files (see ctl-buttonDown)
  932. <alt-z:    putMsg("Enter directory: ")
  933.            freeBuf(buf38)
  934.            inputString(buf38)
  935.            freeBuf(buf54)
  936.            insertRgn(buf54,eFile,"Dir ",all)
  937.            insertRgn(buf54,eFile,buf38,all)
  938.            if (not execute(buf39,buf54)) returnFalse
  939.            moveCursor(buf38,eFile)
  940.            moveCursor(buf38,sChar)
  941.            if (not isEmpty(buf38)) if (not is(buf38,":"))
  942.                      insertRgn(buf38,eFile,"/",all)
  943.            insertRgn(buf39,sFile,"
  944. ",all)
  945.            insertRgn(buf39,sFile,buf38,all)
  946.            newFile
  947.            swapBuf(buf39,curFile)
  948.            freeBuf(buf39)
  949.            vScroll(sFile)
  950.            putMsg("To load files, ctrl-click names with mouse.")
  951.            setFileName(curFile,buf54)
  952.            flipFlag(curFile,changed) >
  953.  
  954. match columns
  955. <alt-0: equateNum(n43,n44)
  956.            runKey(alt-7)
  957.            while (gtNum(n43,n44)) {
  958.                insertChar(curFile,32)
  959.                decNum(n43)
  960.            }
  961.            while (gtNum(n44,n43)) {
  962.                moveCursor(curFile,sChar)
  963.                if (not is(curFile," ")) returnFalse
  964.                incNum(n43)
  965.                clearChar(curFile)
  966.            } >
  967. clear leading white space
  968. <alt-1:   if (not is(curFile,sLine)) moveCursor(curFile,sLine)
  969.            while (is(curFile,whiteSpace)) {
  970.                if (is(curFile,eLine)) returnTrue
  971.                clearChar(curFile)
  972.            } >
  973. center text in line
  974. <alt-2:    runKey(alt-1)
  975.            equateNum(n54,lineLength)
  976.            do (n53,1,n54) {
  977.                if (is(curFile,eLine)) goto label(1)
  978.                incLoc(curFile,atCursor)
  979.            }
  980.            label(1)
  981.            if (gtNum(lineLength,n53)) {
  982.                if (not is(curFile,sLine)) moveCursor(curFile,sLine)
  983.                sub(n53,lineLength,n53)
  984.                div(n53,n53,2)
  985.                do (n54,2,n53) insertChar(curFile," ")
  986.            } >
  987. go to page #
  988. <alt-3: putMsg("Go to page #:")
  989.         if (inputNum(n54)) if (gtNum(pageLines,1)) {
  990.            sub(n54,n54,1)
  991.            mul(n54,n54,pageLines)
  992.            moveCursor(curFile,sFile)
  993.            do (n53,1,n54) moveCursor(curFile,downLine)
  994.         } else putMsg("Lines/page not defined")>
  995. match indent of prev line
  996. <alt-4:    if (not is(curFile,sLine)) moveCursor(curFile,sLine)
  997.            if (is(curFile,sFile)) returnFalse
  998.            moveCursor(curFile,sLine)
  999.            equateNum(n54,0)
  1000.            while (is(curFile,space)) {
  1001.                incLoc(curFile,atCursor)
  1002.                incNum(n54)
  1003.            }
  1004.            moveCursor(curFile,downLine)
  1005.            if (not is(curFile,sLine)) moveCursor(curFile,sLine)
  1006.            equateNum(n53,0)
  1007.            while (is(curFile,space)) {
  1008.                incLoc(curFile,atCursor)
  1009.                incNum(n53)
  1010.            }
  1011.            if (not is(curFile,sLine)) moveCursor(curFile,sLine)
  1012.            while (gtNum(n54,n53)) {
  1013.                insertChar(curFile,32)
  1014.                incNum(n53)
  1015.            }
  1016.            while (gtNum(n53,n54)) {
  1017.                clearChar(curFile)
  1018.                decNum(n53)
  1019.            } >
  1020. justify right
  1021. <alt-5:    equateLoc(curFile,locA,atCursor)
  1022.            runKey(alt-6)
  1023.            equateLoc(curFile,atCursor,locA)
  1024.            decNum(n45)
  1025.            while (gtNum(lineLength,n45)) {
  1026.                insertChar(curFile,32)
  1027.                incNum(n45)
  1028.            }
  1029.            while (gtNum(n45,lineLength)) {
  1030.                moveCursor(curFile,sChar)
  1031.                if (not is(curFile,32)) returnFalse
  1032.                clearChar(curFile)
  1033.                decNum(n45)
  1034.            } >
  1035. store cursor line length in n45
  1036. <alt-6:    equateLoc(curFile,locA,atCursor)
  1037.            if (not is(curFile,sLine)) moveCursor(curFile,sLine)
  1038.            do (n45,1,999999999) {
  1039.                if (is(curFile,eLine)) goto label(1)
  1040.                moveCursor(curFile,eChar)
  1041.            }
  1042.            label(1)
  1043.            equateLoc(curFile,atCursor,locA) >
  1044. store cursor col in n44
  1045. <alt-7:    equateLoc(curFile,locA,atCursor)
  1046.            if (not is(curFile,sLine)) moveCursor(curFile,sLine)
  1047.            do (n44,1,999999999) {
  1048.                if (eqLoc(curFile,atCursor,locA)) goto label(1)
  1049.                if (is(curFile,eLine)) goto label(1)
  1050.                moveCursor(curFile,eChar)
  1051.            }
  1052.            label(1)
  1053.            equateLoc(curFile,atCursor,locA) >
  1054. Show value of n-variable
  1055. <alt-8:    putMsg("n-variable #: ")
  1056.            inputNum(n54)
  1057.            freeBuf(buf54)
  1058.            insertChar(buf54,"n")
  1059.            toWord(buf54,n54)
  1060.            insertRgn(buf54,eFile," is ",all)
  1061.            toWord(buf54,n[n54])
  1062.            putMsg(buf54) >
  1063. Set value of n-variable
  1064. <alt-9:    putMsg("Set n-variable #:")
  1065.            inputNum(n54)
  1066.            putMsg("To value:")
  1067.            inputNum(n[n54])>
  1068. tell what ASCII value is of char under cursor (use to ID ctl-chars)
  1069. <ctl-/:    copyChar(curFile,n54)
  1070.            freeBuf(buf54)
  1071.            toWord(buf54,n54)
  1072.            insertRgn(buf54,sFile,"Character value under cursor was ",all)
  1073.            putMsg(buf54)
  1074.            moveCursor(curFile,eChar) >
  1075. display file-size in message line (if slow, it packed file first)
  1076. <ctl-1:    fileSize(curFile,n54)
  1077.            freeBuf(buf54)
  1078.            insertRgn(buf54,sFile,"File size in bytes: ",all)
  1079.            toWord(buf54,n54)
  1080.            putMsg(buf54)>
  1081. <ctl-2:    flipFlag(curFile,rowCol) >
  1082. reformat paragraph
  1083. <ctl-3:    putMsg("Reformatting...")
  1084.            if (reformat) moveCursor(curFile,downLine)
  1085.            putMsg(" ")>
  1086.  
  1087. delete trailing white-space in entire document
  1088. <ctl-4:    equateLoc(curFile,locA,atCursor)
  1089.            moveCursor(curFile,sFile)
  1090.            label(1)
  1091.            if (is(curFile,eFile))
  1092.                { equateLoc(curFile,atCursor,locA) returnTrue }
  1093.            moveCursor(curFile,eLine)
  1094.            moveCursor(curFile,sChar)
  1095.            while (is(curFile,space))
  1096.                { clearChar(curFile) moveCursor(curFile,sChar) }
  1097.            moveCursor(curFile,eLine)
  1098.            goto label(1) >
  1099. save learn-sequence to disk
  1100. <ctl-5:    putMsg("Save Learn under what #?")
  1101.            if (inputNum(n54)) saveLearn(n54) >
  1102. load a learn-sequence stored on disk
  1103. <ctl-6:    putMsg("Load what Learn #?")
  1104.            if (inputNum(n54)) loadLearn(n54) >
  1105. both load & run a learn-sequence stored on disk
  1106. <ctl-7:    putMsg("Input learn # to load & run:")
  1107.            if (inputNum(n54)) if (loadLearn(n54)) runLearn >
  1108. <ctl-8:    flipFlag(curFile,searchCaps) >
  1109.  
  1110. ---------------------------  arithmetic commands  --------------------
  1111. set running total to zer0
  1112. <ctl-0:     equateNum(n49,0) >
  1113. type running total into text at cursor
  1114. <ctl-\:     freeBuf(buf54)
  1115.             div(n52,n49,100)
  1116.             if (gtNum(0,n49)) if (eqNum(n52,0)) insertChar(buf54,"-")
  1117.             toWord(buf54,n52)
  1118.             insertChar(buf54,".")
  1119.             if (gtNum(0,n49)) mul(n52,n49,-1)
  1120.             else equateNum(n52,n49)
  1121.             mod(n52,n52,100)
  1122.             if (gtNum(10,n52)) insertChar(buf54,"0")
  1123.             toWord(buf54,n52)
  1124.             insertRgn(curFile,atCursor,buf54,all)
  1125.             insertRgn(buf54,sFile,"Inserted total into text ",all)
  1126.             putMsg(buf54) >
  1127. add next word (if a number) to running total & display total
  1128. <ctl-=:     moveCursor(curFile,eWord)
  1129.             moveCursor(curFile,sWord)
  1130.             toNumber(n54,curFile)
  1131.             moveCursor(curFile,eWord)
  1132.             if (is(curFile,".")) {
  1133.                moveCursor(curFile,eChar)
  1134.                if (not is(curFile,digit)) goto label(1)
  1135.                toNumber(n53,curFile)
  1136.                moveCursor(curFile,eChar)
  1137.                if (not is(curFile,digit)) {
  1138.                    mul(n53,n53,10)
  1139.                    moveCursor(curFile,sChar)
  1140.                }
  1141.                moveCursor(curFile,eWord)
  1142.             } else { label(1) equateNum(n53,0) }
  1143.             mul(n54,n54,100)
  1144.             if (gtNum(0,n54)) mul(n52,n53,-1)
  1145.             else equateNum(n52,n53)
  1146.             add(n54,n54,n52)
  1147.             add(n49,n49,n54)
  1148.             freeBuf(buf54)
  1149.             div(n52,n49,100)
  1150.             if (gtNum(0,n49)) if (eqNum(n52,0)) insertChar(buf54,"-")
  1151.             toWord(buf54,n52)
  1152.             insertChar(buf54,".")
  1153.             mod(n52,n49,100)
  1154.             if (gtNum(0,n49)) mul(n52,-1,n52)
  1155.             if (gtNum(10,n52)) insertChar(buf54,"0")
  1156.             toWord(buf54,n52)
  1157.             insertRgn(buf54,sFile,"Running total is ",all)
  1158.             putMsg(buf54) >
  1159.  
  1160. subtract next word (if a number) from running total & display total
  1161. <ctl--:     moveCursor(curFile,eWord)
  1162.             moveCursor(curFile,sWord)
  1163.             toNumber(n54,curFile)
  1164.             moveCursor(curFile,eWord)
  1165.             if (is(curFile,".")) {
  1166.                moveCursor(curFile,eChar)
  1167.                if (not is(curFile,digit)) goto label(1)
  1168.                toNumber(n53,curFile)
  1169.                moveCursor(curFile,eChar)
  1170.                if (not is(curFile,digit)) {
  1171.                    mul(n53,n53,10)
  1172.                    moveCursor(curFile,sChar)
  1173.                }
  1174.                moveCursor(curFile,eWord)
  1175.             } else { label(1) equateNum(n53,0) }
  1176.             mul(n54,n54,100)
  1177.             if (gtNum(0,n54)) mul(n52,n53,-1)
  1178.             else equateNum(n52,n53)
  1179.             add(n54,n54,n52)
  1180.             sub(n49,n49,n54)
  1181.             freeBuf(buf54)
  1182.             div(n52,n49,100)
  1183.             if (gtNum(0,n49)) if (eqNum(n52,0)) insertChar(buf54,"-")
  1184.             if (gtNum(0,n49)) insertChar(buf54,"-")
  1185.             toWord(buf54,n52)
  1186.             insertChar(buf54,".")
  1187.             mod(n52,n49,100)
  1188.             if (gtNum(0,n52)) mul(n52,n52,-1)
  1189.             if (gtNum(10,n52)) insertChar(buf54,"0")
  1190.             toWord(buf54,n52)
  1191.             insertRgn(buf54,sFile,"Running total is ",all)
  1192.             putMsg(buf54) >
  1193.  
  1194. ------------------ These are for columnar data -------------------------
  1195.  
  1196. Switch to columnar hilite/invert display mode
  1197. <shftCtl-`: flipFlag(curFile,columnar) refreshDisplay>
  1198.  
  1199. Clear hilited column data
  1200. <shftCtl-1: freeBuf(buf37)
  1201.             copyColData(buf37,sFile,curFile,hilite,1)
  1202.             clearColData(curFile,hilite,0) >
  1203.  
  1204. Space-out hilited column data
  1205. <shftCtl-2: clearColData(curFile,hilite,1) >
  1206.  
  1207. Copy hilited column data
  1208. <shftCtl-3: if (geLoc(curFile,sHilite,eHilite)) returnFalse
  1209.             freeBuf(buf37) copyColData(buf37,sFile,curFile,hilite,1)>
  1210.  
  1211. Insert buf37 column data
  1212. <shftCtl-4: copyColData(curFile,atCursor,buf37,all,1)>
  1213.  
  1214. Overlay buf37 column data onto current data
  1215. <shftCtl-5: copyColData(curFile,atCursor,buf37,all,0)>
  1216.  
  1217. Insert hilite at cursor
  1218. <shftCtl-6: copyColData(curFile,atCursor,curFile,hilite,1)>
  1219.  
  1220. Overlay hilite at cursor
  1221. <shftCtl-7: copyColData(curFile,atCursor,curFile,hilite,0)>
  1222.  
  1223. ----------------- Interlace Mode -------------------------
  1224.  
  1225. Switch to/from interlace
  1226. <shft-esc: flipFlag(curFile,lace)>
  1227.  
  1228. Tune the RGB colors in interlace using mouse  (Use alt-Help also)
  1229. <alt-esc:  laceColor>
  1230.  
  1231. <ctl-esc:  putMsg("Enter gadget number (1-4):")
  1232.            if (not inputNum(n54)) returnFalse
  1233.            if (gtNum(n54,4)) returnFalse
  1234.            if (gtNum(1,n54)) returnFalse
  1235.            putMsg("Enter gadget name (one Space to clear):")
  1236.            freeBuf(buf54)
  1237.            inputString(buf54)
  1238.            if (not isEmpty(buf54)) {
  1239.                gadgetName(n54,buf54)
  1240.                putMsg(" ")
  1241.            } >
  1242.  
  1243.  
  1244. <shftAltCtl-a:
  1245.    getBufNum(n54)
  1246.    freeBuf(buf54)
  1247.    insertRgn(buf54,sFile,
  1248. "
  1249.  
  1250.                                 Uedit V2.0             
  1251.                     Copyright (C) 1986-87, Rick Stiles 
  1252.                         2420 Summit Springs Drive      
  1253.                             Dunwoody, GA 30350         
  1254.  
  1255. Uedit V2.0 is ShareWare.  Feel free to copy and distribute it to friends and
  1256. bulletin boards.  If you like Uedit, become a registered user by sending $25
  1257. cash, check or money order to the above address.
  1258.  
  1259. When you register, include the Serial # of the copy you are using.  To see
  1260. the Serial # of your copy, select 'Show vals' in the 'Numbers' menu.
  1261.  
  1262. You will receive the Manual, a Serial Number, and a $5 bonus for everyone who
  1263. registers off of your copy of Uedit!
  1264.  
  1265. (If you've already registered, you'll be sent a Manual update and Serial #.
  1266. If you bought a pre-V1.7 copy of Uedit, send your original disk and $15.)
  1267.  
  1268.  
  1269.  
  1270.  
  1271.  
  1272.  
  1273.  
  1274.  
  1275.  
  1276.  
  1277.  
  1278.  
  1279.  
  1280.  
  1281.  
  1282.  
  1283.  
  1284.  
  1285.  
  1286.  
  1287.  
  1288.  
  1289.  
  1290.  
  1291.  
  1292.  
  1293.  
  1294.  
  1295.  
  1296. ",all)
  1297.    moveCursor(buf54,sFile)
  1298.    do (n52,1,5) moveCursor(buf54,eLine)
  1299.    equateLoc(buf54,eHilite,atCursor)
  1300.    do (n52,1,3) moveCursor(buf54,upLine)
  1301.    do (n52,1,36) moveCursor(buf54,sChar)
  1302.    equateLoc(buf54,sHilite,atCursor)
  1303.    moveCursor(buf54,eFile)
  1304.    if (getFlag(curFile,columnar)) equateNum(n51,0)
  1305.    else { flipFlag(curFile,columnar) equateNum(n51,1) }
  1306.    editBuf(buf54)
  1307.    setFileName(buf54,"               About Uedit...")
  1308.    putMsg("  ")
  1309.    vScroll(sFile)
  1310.    getKey(n53)
  1311.    editBuf(buf[n54])
  1312.    putMsg(" ")
  1313.    if (eqNum(n51,1)) flipFlag(curFile,columnar)
  1314.    freeBuf(buf54)
  1315. >
  1316.  
  1317. load DU config
  1318. <shftAltCtl-f:  freeBuf(buf20)  freeBuf(buf21)  equateNum(n53,0)
  1319.            killKey(shftAltCtl-z)
  1320.            newFile
  1321.            setFileName(curFile,"Click 2nd Gadget ==> for Directory")
  1322.            loadConfig("S:DU-Data!") >
  1323.  
  1324. -------------------------- end of Config! ----------------------------------
  1325.  
  1326. Erase this when you no longer want to run the demo.  Or just erase the left
  1327. angle-bracket so that it won't get compiled.
  1328.  
  1329. <shftAltCtl-d: if (loadFile("demo")) { compile runKey(shftAlt-1) } >
  1330.  
  1331.  
  1332.