home *** CD-ROM | disk | FTP | other *** search
/ Amiga Elysian Archive / AmigaElysianArchive.iso / wp_dtp / xdme1820.lha / XDME / Macros / BN / XDME.macros < prev    next >
Text File  |  1993-01-27  |  8KB  |  342 lines

  1. MACROS START
  2. ##
  3. ##  $VER: XDME.macros 1.02 (04.12.92) by b_noll
  4. ##
  5. ##  Macro - File for XDME 1.60.04
  6. ##
  7. ##  WARNING: That file was manually created,
  8. ##         plese do not overwrite it by
  9. ##         a machine-created (the structure will be lost)
  10. ##
  11. ##  WARNING: the current XDME.edrc file would produce another
  12. ##         XDME.macros
  13. ##
  14.  
  15. ## Style-guide cut/copy/paste:
  16.  
  17.     MACRO paste
  18.      BODY clipins
  19.     MACRO cut
  20.      BODY copy bdelete
  21.     MACRO copy
  22.      BODY bsave t:dme_clip execute (tool:clipftxt > NIL: w t:dme_clip)                    execute (delete > NIL: t:dme_clip)
  23.  
  24.  
  25. ## DME 1.51 compability:
  26. ##    DotStack:
  27.  
  28.     MACRO purgedot
  29.      BODY purge pos
  30.     MACRO popdot
  31.      BODY pop   pos
  32.     MACRO pushdot
  33.      BODY push  pos
  34.     MACRO swapdot
  35.      BODY swap  pos
  36.  
  37. ##    Window Switching:
  38.  
  39.     MACRO prevwindow
  40.      BODY select prev
  41.     MACRO lastwindow
  42.      BODY select last
  43.     MACRO nextwindow
  44.      BODY select next
  45.     MACRO firstwindow
  46.      BODY select first
  47.     MACRO window
  48.      ARGS 1
  49.      BODY select ($arg1)
  50.  
  51. ##    Asl-Requestor:
  52.  
  53.     MACRO aslsource
  54.      BODY arpsource
  55.     MACRO aslinsfile
  56.      BODY arpinsfile
  57.     MACRO aslsave
  58.      BODY arpsave
  59.     MACRO aslload
  60.      BODY arpload
  61.  
  62. ##    Control flow:
  63.  
  64.     MACRO quiet
  65.      ARGS 1
  66.      BODY force s  $arg1
  67.     MACRO untitle
  68.      ARGS 1
  69.      BODY force t  $arg1
  70.     MACRO unfail
  71.      ARGS 1
  72.      BODY force f  $arg1
  73.  
  74. ##    Misc:
  75.  
  76.     MACRO space
  77.      BODY insert ( )
  78.     MACRO findmatch
  79.      BODY match
  80.     MACRO insert
  81.      ARGS 1
  82.      BODY untitle (pushvar insertmode insertmode on  ($arg1) popvar insertmode)
  83.     MACRO overwrite
  84.      ARGS 1
  85.      BODY untitle (pushvar insertmode insertmode off ($arg1) popvar insertmode)
  86.     MACRO setrexx
  87.      ARGS 2
  88.      BODY rxset $arg1 $arg2
  89.  
  90.  
  91. ##    Commodities:
  92. ##    fast find brackets (no need of MATCH)
  93.  
  94.     MACRO rundzu
  95.      ARGS 1
  96.      BODY pushvar findstr findstr (\)) eval $arg1 popvar findstr
  97.     MACRO rundauf
  98.      ARGS 1
  99.      BODY pushvar findstr findstr (\() eval $arg1 popvar findstr
  100.     MACRO schweifzu
  101.      ARGS 1
  102.      BODY pushvar findstr findstr (\}) eval $arg1 popvar findstr
  103.     MACRO schweifauf
  104.      ARGS 1
  105.      BODY pushvar findstr findstr (\{) eval $arg1 popvar findstr
  106.     MACRO eckzu
  107.      ARGS 1
  108.      BODY pushvar findstr findstr (\]) eval $arg1 popvar findstr
  109.     MACRO eckauf
  110.      ARGS 1
  111.      BODY pushvar findstr findstr (\[) eval $arg1 popvar findstr
  112.  
  113.  
  114. ##    The different parts of Pretty-Printer
  115. ##    and of RETURN
  116.  
  117.  
  118.     # if arg1 is a word in arg2 then execute arg3
  119.     MACRO checkexistance
  120.      ARGS 3
  121.      BODY rx ("if find('$arg2','$arg1') then '$arg3'")
  122.  
  123.     # goto the previous not-empty line or to the top of file
  124.     MACRO prevline
  125.      BODY  if !top (up first while right (if top break up)) firstnb
  126.  
  127.     # do-nothing if in an emptyline else do return
  128.     MACRO freeline
  129.      BODY last ifelse left adjustline cr
  130.  
  131.     # set the firstnb-position in the currentline to arg1
  132.     MACRO startlinewith
  133.      ARGS 1
  134.      BODY firstnb while x<$arg1 space while x>$arg1 bs
  135.  
  136.     MACRO checkunblockers
  137.      ARGS 1
  138.      BODY firstnb if ca (checkexistance ($currentword) ($blockender)    (sub $arg1 $tabstop))
  139.  
  140.     MACRO checkblockers
  141.      ARGS 1
  142.      BODY firstnb untitle (if ca (checkexistance ($currentword) ($blockbeginner) (add $arg1 $tabstop)))
  143.  
  144.     # short for split down first
  145.     MACRO spdw
  146.      BODY split down first
  147.  
  148.     # create a newline and call adjustline
  149.     MACRO cr
  150.      BODY split down adjustline
  151.  
  152.     # make the firstnb the "right" position
  153.     MACRO adjustline
  154.      BODY quiet (getlineno _crl prevline firstnb getcolno _crc checkblockers _crc gotolinevar _crl) firstnb checkunblockers _crc startlinewithvar _crc
  155.  
  156.     # make the current line have the same indention as the previous
  157.     MACRO equalizeline
  158.      BODY pushdot quiet (prevline firstnb getcolno _crc popdot) startlinewithvar _crc
  159.  
  160.     MACRO startlinewithvar
  161.      ARGS 1
  162.      BODY eval (startlinewith $$arg1)
  163.  
  164.  
  165. ##  The commands for manual definition for
  166. ##  Qualifiers (need FILTER)
  167.  
  168.     MACRO qset
  169.      ARGS 1
  170.      BODY ifelse \$arg1<240 (ifelse \$arg1=239 (qcont) (ifelse \$arg1=238 (qquit) (titlevar QTitle2))) (toggle $arg1 titlevar QTitle2)
  171.     MACRO qcheck
  172.      ARGS 2
  173.      BODY if $arg1 (qualifier +$arg2 )
  174.     MACRO qcont
  175.      BODY qcheck 240 s qcheck 241 a qcheck 242 c qcheck 243 x qcheck 244 y qcheck 245 z qcheck 246 R qcheck 247 M qcheck 248 L qquit
  176.     MACRO qquit
  177.      BODY filter q () () () set 240 0 set 241 0 set 242 0 set 243 0 set 244 0 set 245 0 set 246 0 set 247 0 set 248 0
  178.  
  179.  
  180. ##     Addes for [un]setmacro
  181.  
  182.     MACRO alias
  183.      ARGS 2
  184.      BODY setmacro     $arg1 0 $arg2
  185.     MACRO unalias
  186.      ARGS 1
  187.      BODY unsetmacro $arg1
  188.  
  189.  
  190. ##    Commodities:
  191. ##    Do not argue about escaping variables - use macros
  192.  
  193.     # print the value of the var in arg1
  194.     MACRO rxshowvar
  195.      ARGS 1
  196.      BODY eval (rx ("say $$arg1"))
  197.     # show the value of the var in arg1 in the titlebar
  198.     MACRO titlevar
  199.      ARGS 1
  200.      BODY eval (title ($$arg1))
  201.     # write the value of the var in arg1 to the current cursorpos
  202.     MACRO writevar
  203.      ARGS 1
  204.      BODY eval (($$arg1))
  205.  
  206.     # go to the line that's number is in the var that's name is in arg1
  207.     MACRO gotolinevar
  208.      ARGS 1
  209.      BODY eval (goto $$arg1)
  210.     # go to the column that's number is in the var that's name is in arg1
  211.     MACRO gotocolvar
  212.      ARGS 1
  213.      BODY eval (col $$arg1)
  214.  
  215.     # set REXXVAR arg1 to the value of arg2
  216.     MACRO rxgetvalue
  217.      ARGS 2
  218.      BODY eval (setrexx $arg1 $$arg2)
  219.     # set arg1 to the value of arg2
  220.     MACRO getvalue
  221.      ARGS 2
  222.      BODY eval (set $arg1 $$arg2)
  223.     # set arg1 to the current lineno
  224.     MACRO getlineno
  225.      ARGS 1
  226.      BODY set $arg1 $lineno
  227.     # set arg1 to the current colno
  228.     MACRO getcolno
  229.      ARGS 1
  230.      BODY set $arg1 $colno
  231.  
  232.  
  233. ##    Tools for access to the filesystem
  234.  
  235.     # load a file and immediately set viewmode
  236.     MACRO arpvisitfile
  237.      BODY newwindow arpload viewmode 1
  238.     MACRO visitfile
  239.      ARGS 1
  240.      BODY newwindow newfile ($arg1) viewmode 1
  241.  
  242.     # save a file, but make a backup of the old one
  243.     MACRO baksaveas
  244.      ARGS 1
  245.      BODY execute (delete >NIL: <NIL: $filename.bak) execute (rename >NIL: <NIL: $filename $filename.bak) saveas $arg1
  246.     MACRO baksaveold
  247.      BODY execute (delete >NIL: <NIL: $filename.bak) execute (rename >NIL: <NIL: $filename $filename.bak) saveold
  248.  
  249.  
  250. ##    Macros for blocking
  251. ##    (for compability to DME-Macros: there were not as good commands as in XDME)
  252.  
  253.     MACRO clearblock
  254.      BODY unblock resettoggle $_block2
  255.     MACRO startblock
  256.      BODY unblock bstart settoggle $_block2
  257.     MACRO endblock
  258.      BODY if blockon abort if !$_block2 abort bend resettoggle $_block2
  259.  
  260.  
  261. ##  Utilities: startofword/endofword
  262. ##           toupper/tolower
  263.  
  264.     # goto start of word
  265.     MACRO sow
  266.      BODY while !left  (ifelse ca (left)  (right break))
  267.     # goto end of word
  268.     MACRO eow
  269.      BODY while !right (ifelse ca (right) (left  break))
  270.  
  271.     # make the current word to_lower
  272.     MACRO strlower
  273.      BODY sow while ca (if cu (tlate +32) right)
  274.     # make the current word to_upper
  275.     MACRO strupper
  276.      BODY sow while ca (if cl (tlate -32) right)
  277.     # make the current char to_lower
  278.     MACRO tolower
  279.      BODY if cu (tlate +32)
  280.     # make the current word to_upper
  281.     MACRO toupper
  282.      BODY if cl (tlate -32)
  283.  
  284.  
  285. ##  Commodity of DME
  286. ##    a almost perfect multireplace - it only needs FILTER
  287. ##    (perhaps for 1.60.06)
  288.  
  289.     MACRO multireplace
  290.      ARGS 2
  291.      BODY findstr $arg1 repstr $arg2 next mr_title filter m (( ) y n q a) (mr_res) (ifelse \$mr_res=1 (mr_this) (ifelse \$mr_res=2 (next) (ifelse \$mr_res=3 (mr_quit) (if \$mr_res=4 (mr_all)))) mr_title)
  292.     MACRO mr_title
  293.      BODY title (replace (y/n/q/a))
  294.     MACRO mr_all
  295.      BODY unfail (repeat -1 mr_this) mr_quit
  296.     MACRO mr_quit
  297.      BODY filter q () () () abort
  298.     MACRO mr_this
  299.      BODY right prevr next
  300.  
  301.  
  302. ##  Commodity of DME
  303. ##    a almost perfect commandname-completition - it only needs FILTER
  304. ##    (perhaps for 1.60.06)
  305.  
  306.     MACRO startmatching
  307.      ARGS 1
  308.      BODY endmatching set _M_QUEST ($arg1) matchnext
  309.     MACRO matchfstart
  310.      BODY if !l wleft eval (startmatching $currentword matchfilter)
  311.     MACRO matchfilter
  312.      BODY filter amb (q x esc tab spc return enter) _M_FIL (matchf2 \$_M_FIL)
  313.     MACRO matchf2
  314.      ARGS 1
  315.      BODY eval (ifelse \$arg1>2 (ifelse \$arg1>3 (while ca del (\$_M_RES ) matchfend if \$arg1>4 return) (matchnext)) (ifelse \$arg1>0 (matchfend) (title (forbidden key))))
  316.     MACRO matchfend
  317.      BODY endmatching filter q x x x
  318.     MACRO matchnext
  319.      BODY untitle (rx ('x=LS_FIND("$tabfile",$_M_COUNT,"$_M_QUEST",a); "set" _M_COUNT WORD(x,1)+1" set _M_RES ("DELWORD(x,1,1)")"')) titlevar _M_RES
  320.     MACRO endmatching
  321.      BODY set _M_COUNT 0 set _M_QUEST () set _M_RES ()
  322.  
  323.  
  324. ##    some shortcuts
  325.  
  326.     MACRO so
  327.      BODY saveold
  328.  
  329.     MACRO tg
  330.      ARGS 1
  331.      BODY toggle $arg1
  332.  
  333.     MACRO nf
  334.      ARGS 1
  335.      BODY newfile $arg1
  336.  
  337. MACROS END
  338. # checkblockers        BODY untitle (firstnb if ca (rx ("'rxgetvalue X currentvar'; if find('$blockbeginner', x) ~= 0 then 'add $arg1 $tabstop'")))
  339.  
  340.  
  341.  
  342.