home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 24 / CD_ASCQ_24_0995.iso / dos / tools / aurora21 / function.dox < prev    next >
Text File  |  1995-08-10  |  362KB  |  8,397 lines

  1.  
  2.  
  3.   The AML Function Reference
  4.   ──────────────────────────
  5.   This Function Reference documents all macro language Statements,
  6.   Builtin functions, and Library functions. Several editor Extension
  7.   functions are also documented. For a complete description of the
  8.   Aurora Macro Language (AML), see the Aurora Macro Language Reference.
  9.   For information on how to install, configure, and use Aurora, see the
  10.   Aurora Editor Users Guide.
  11.  
  12.   To use the Function Reference within a macro: move the cursor to a
  13.   function name or statement keyword and press <shift f2>. You can use
  14.   <shift f2> in any document, including the Language Reference
  15.   (LANGUAGE.DOX) and the Function Quick Reference (QUICKFUN.DOX). You
  16.   can also navigate through this document by moving the cursor to the
  17.   'see also' keywords and pressing <shift f2>.
  18.  
  19.   ──────────────────────────────────────────────────────────────────────
  20.   Copyright (C) 1995 by nuText Systems.  All rights reserved worldwide.
  21.   No parts of this document may be copied in part or in whole, except as
  22.   provided in the License in the accompanying documentation.
  23.   ──────────────────────────────────────────────────────────────────────
  24.  
  25.  
  26.   This document is divided into two sections:
  27.  
  28.     1. Language Statements
  29.     2. Functions (builtin functions and library functions)
  30.  
  31.   Statements and functions are sorted alphabetically in each section.
  32.  
  33.   Statements are indicated by the label [Statement], library functions
  34.   are indicates by [Lib], and extension functions are indicated by
  35.   [Ext]. Builtin functions are not labeled. Each library function also
  36.   displays the object where it is defined (i.e [Lib][edit]).
  37.  
  38.  
  39.  ┌─────────────────────────────────────────────────────────────────────┐
  40.  │ Language Statements                                                 │
  41.  └─────────────────────────────────────────────────────────────────────┘
  42.  
  43.   break                                                      [Statement]
  44.   ──────────────────────────────────────────────────────────────────────
  45.   remarks:     The 'break' statement will force an unconditional exit
  46.                from 'loop', 'repeat', and 'while' loops.
  47.  
  48.   returns:     nothing
  49.   see also:    loop, repeat, while
  50.  
  51.   example:     loop  
  52.                  keycode = getkey
  53.                  case keycode
  54.                    when <esc>           // <esc> exits the loop
  55.                      break 
  56.                    otherwise 
  57.                      say "you pressed " + (getkeyname keycode)
  58.                  end 
  59.                end 
  60.  
  61.  
  62.   case                                                       [Statement]
  63.   ──────────────────────────────────────────────────────────────────────
  64.   format:      case case_expr
  65.                  when when_expr
  66.                    expressions
  67.                  when when_expr, when_expr, when_expr
  68.                    expressions
  69.                   .
  70.                   .
  71.                  otherwise 
  72.                    expressions
  73.                end / endcase 
  74.  
  75.                The 'otherwise' clause is optional.
  76.  
  77.   remarks:     The 'case' statement evaluates 'case_expr', and then
  78.                evaluates each 'when' expression in order, until one is
  79.                found whose value is equal to the value of 'case_expr'.
  80.                If a matching 'when' expression is found, the expressions
  81.                associated with the 'when' statement are evaluated.
  82.  
  83.                Multiple 'when' expressions (separated by commas) may be
  84.                specified within a single 'when' clause.
  85.  
  86.                If no matching 'when' expressions are found, then the
  87.                'otherwise' clause (if present) is evaluated.
  88.  
  89.   returns:     The value of the last expression evaluated in the 'when'
  90.                or 'otherwise' clause.
  91.  
  92.   see also:    if, if?
  93.  
  94.   example:     case value
  95.                  when 1
  96.                    say "value is one"
  97.                  when 3, 7
  98.                    say "value is three or seven"
  99.                  when "abc" + "d"
  100.                    say "value is abcd"
  101.                  otherwise 
  102.                    say "value is " + value
  103.                end 
  104.  
  105.                value = case value
  106.                          when 1 "one"
  107.                          when 2 "two"
  108.                          otherwise "undefined"
  109.                        end 
  110.  
  111.  
  112.   databuf                                                    [Statement]
  113.   ──────────────────────────────────────────────────────────────────────
  114.   format:      databuf  buffer
  115.                 .
  116.                 .
  117.                end / enddatabuf 
  118.  
  119.   remarks:     This statement creates a new buffer and initializes the
  120.                buffer with data, or adds data to the end of an existing
  121.                buffer. 'buffer' specifies the bufferid. Each expression
  122.                listed within the databuf-end group becomes a separate
  123.                line in the buffer. At least one line is required.
  124.  
  125.                This statement is generally used to define an 'inline'
  126.                data buffer in a macro, without requiring a separate file
  127.                to be loaded.
  128.  
  129.   returns:     nothing
  130.   see also:    createbbuf, createbuf, destroybuf
  131.  
  132.   example:     databuf "abc"              // bufferid 'abc'
  133.                  "first line"             // 1st line
  134.                  x + 5 - y                // 2rd line
  135.                  y                        // 3th line
  136.                  "a string"               // 4th line
  137.                end 
  138.  
  139.  
  140.   define                                                     [Statement]
  141.   ──────────────────────────────────────────────────────────────────────
  142.   format:      define 
  143.                 .
  144.                 .
  145.                end / enddefine 
  146.  
  147.   remarks:     This statement defines a section of macro code which is
  148.                executed at compile-time. No object code is generated for
  149.                any expressions contained within the define-end group.
  150.  
  151.                Any functions defined within the define-end group are
  152.                evaluated at compile time when called. Similarly, object
  153.                variables which are assigned values within the define-end
  154.                group are treated as constants when referenced outside
  155.                the define-end group.
  156.  
  157.   returns:     nothing
  158.   see also:    forward, function, include, set, var
  159.  
  160.  
  161.   forward      identifier                                    [Statement]
  162.   ──────────────────────────────────────────────────────────────────────
  163.   remarks:     This keyword defines the specified identifier as a
  164.                function name. If a function is called before it is
  165.                defined with the 'function' statement, the 'forward'
  166.                keyword must be used to inform the compiler that the
  167.                identifier is a function name.
  168.  
  169.   returns:     nothing
  170.   see also:    function, key, var
  171.  
  172.  
  173.   function                                                   [Statement]
  174.   ──────────────────────────────────────────────────────────────────────
  175.   format:      function  functionname  (arg1 arg2 ...)
  176.                 .
  177.                 .
  178.                end / endfunction 
  179.  
  180.   remarks:     This statement defines a function in the current object
  181.                with the name 'functionname'. Expressions contained
  182.                within the function definition will be evaluated when the
  183.                function is called.
  184.  
  185.                Function arguments can be referenced as variables within
  186.                the function by listing them within parentheses after the
  187.                function name. Note that arguments can also be referenced
  188.                with the 'arg' function (see the 'arg' function).
  189.  
  190.   returns:     nothing
  191.   see also:    arg, forward, key
  192.  
  193.   example:     function  hello (name)
  194.                  say "Hello " + name + '!'
  195.                end 
  196.  
  197.  
  198.   if                                                         [Statement]
  199.   ──────────────────────────────────────────────────────────────────────
  200.   format:      if if_expr then 
  201.                  expressions
  202.                elseif elseif_expr then 
  203.                  expressions
  204.                 .
  205.                 .
  206.                else 
  207.                  expressions
  208.                end / endif 
  209.  
  210.                The 'elseif' and 'else' clauses are optional. The keyword
  211.                'then' is also optional, but may make the statement
  212.                easier to read.
  213.  
  214.   remarks:     The 'if' statement evaluates the expression 'if_expr'. If
  215.                the value is TRUE (not zero and not null), then the
  216.                expressions in the 'if' clause are evaluated. If the
  217.                value is not TRUE, then the expression 'elseif_expr' is
  218.                evaluated. If the value is TRUE, then the expressions in
  219.                the 'elseif' clause are evaluated, otherwise the
  220.                expressions in the 'else' clause (if present) are
  221.                evaluated. Multiple 'elseif' clauses may be specified.
  222.  
  223.   returns:     The value of the last expression evaluated in the 'if',
  224.                'elseif', or 'else' clauses.
  225.  
  226.   see also:    case, if?
  227.  
  228.  
  229.   if?          if_expr then_expr else_expr                   [Statement]
  230.   ──────────────────────────────────────────────────────────────────────
  231.   remarks:     The 'if?' statement is a shorter form of the 'if'
  232.                statement (see the 'if' statement'). The keywords 'then',
  233.                'elseif', and 'else' are not used. The expression
  234.                'else_expr' is optional.
  235.  
  236.                The 'if?' statement is primarily intended for use within
  237.                expressions, where it may be more convenient than the
  238.                'if' statement.
  239.  
  240.   returns:     The value of 'then_expr' or 'else_expr'.
  241.   see also:    case, if
  242.  
  243.   example:     string1 = if? a == 1  "a is one"  "a is not one"
  244.  
  245.  
  246.   key                                                        [Statement]
  247.   ──────────────────────────────────────────────────────────────────────
  248.   format:      key  <key or event>  (arg1 arg2 ...)
  249.                 .
  250.                 .
  251.                end / endkey 
  252.  
  253.                The 'end' keyword is not required if this statement is
  254.                followed by another 'key' or 'function' statement.
  255.  
  256.   remarks:     This statement defines an keyboard event handling
  257.                function in the current object with for the event name:
  258.                <key or event>. Expressions contained within the function
  259.                definition will be evaluated whenever the event is is
  260.                sent to the current object.
  261.  
  262.                Function arguments can be referenced as variables within
  263.                the function by listing them within parentheses after the
  264.                function name. Note that arguments can also be referenced
  265.                with the 'arg' function (see the 'arg' function).
  266.  
  267.                For all keyboard events generated by the editor except
  268.                <char>, a keycode is passed as the first argument. The
  269.                <char> event handling function is passed the ASCII
  270.                character entered as the first argument, and the keycode
  271.                as the second argument.
  272.  
  273.   returns:     nothing
  274.   see also:    arg, forward, function
  275.  
  276.   example:     key <ctrl c> (keycode)
  277.                  say "you pressed <ctrl c>, keycode=" + keycode
  278.                end 
  279.  
  280.  
  281.   keyword      keyword1, keyword2, ...                       [Statement]
  282.   ──────────────────────────────────────────────────────────────────────
  283.   remarks:     This statement inserts 'keyword1', 'keyword2', etc. as
  284.                syntax highlighting keywords in the current (executing)
  285.                object. The keywords must be separated by commas.
  286.  
  287.                Syntax highlighting keywords are stored as object
  288.                variables whose value is the keyword color. If the value
  289.                is null, then the keyword color defined in the 'syntax'
  290.                function is assumed. The 'keyword' statement always
  291.                assigns a value of null to the object variable.
  292.  
  293.   returns:     nothing
  294.   see also:    setsyntax, syntax
  295.   example:     see the configuration file SYNTAX.AML
  296.  
  297.  
  298.   include      expression                                    [Statement]
  299.   ──────────────────────────────────────────────────────────────────────
  300.   remarks:     This statement includes the macro language file defined
  301.                by 'expression' at the current source code location.
  302.  
  303.                The specified expression is always evaluated at compile
  304.                time. Any user-defined variables or functions referenced
  305.                within the expression must have been previously defined
  306.                within a 'define-end' group.
  307.  
  308.                This statement will include both macro source (.AML)
  309.                files and compiled macro (.X) files.
  310.  
  311.   returns:     nothing
  312.   see also:    define
  313.  
  314.   example:     include "d:\\macros.aml"
  315.                include  drive + path + filename
  316.  
  317.  
  318.   loop                                                       [Statement]
  319.   ──────────────────────────────────────────────────────────────────────
  320.   format:      loop 
  321.                  expressions
  322.                end / endloop 
  323.  
  324.   remarks:     The 'loop' statement evaluates 'expressions' repeatedly
  325.                until a 'break' or 'return' statement is encountered.
  326.  
  327.   returns:     nothing
  328.   see also:    break, repeat, return, while
  329.  
  330.  
  331.   menu                                                       [Statement]
  332.   ──────────────────────────────────────────────────────────────────────
  333.   format:      menu  menuname
  334.                  item  description1  expressions1
  335.                  item  description2  expressions2
  336.                   .
  337.                   .
  338.                end / endmenu 
  339.  
  340.   remarks:     This statement creates a new menu buffer with the
  341.                bufferid 'menuname'.
  342.  
  343.                'description1', 'description2', etc. are the text strings
  344.                associated with each item on the menu. Each description
  345.                may contain one ampersand character (&) indicating that
  346.                the character following it is to be highlighted.
  347.  
  348.                'expressions1', 'expressions2', etc. are macro
  349.                expressions to be associated with the menu items. These
  350.                expressions can be retrieved and evaluated when a menu
  351.                item is selected (see the 'getmenu' function).
  352.  
  353.   returns:     The new menu bufferid if successful, otherwise null.
  354.   see also:    asciibuf, createbbuf, destroybuf, loadbuf, menubar, popup
  355.  
  356.   example:     menu "Colors"
  357.                  item  "&Red"        say "you selected red"
  358.                  item  "&Green"      say "you selected green"
  359.                  item  "&Blue"       say "you selected blue"
  360.                end 
  361.  
  362.  
  363.   menubar                                                    [Statement]
  364.   ──────────────────────────────────────────────────────────────────────
  365.   format:      menubar  window  bar[1-4]
  366.                  item  description1  expressions1
  367.                  item  description2  expressions2
  368.                   .
  369.                   .
  370.                end / endmenubar 
  371.  
  372.   remarks:     This statement creates or changes a menu bar for a
  373.                window. If 'window' is null, then the current window is
  374.                assumed.
  375.  
  376.                'description1', 'description2', etc. are the text strings
  377.                associated with each item on the menu bar. Each
  378.                description may contain one ampersand character (&)
  379.                indicating that the character following it is to be
  380.                highlighted. If a pair of ampersand characters (&&) is
  381.                specified, the character is highlighted with the window
  382.                title bar control color.
  383.  
  384.                'expressions1', 'expressions2', etc. are macro
  385.                expressions to be associated with the menu bar items.
  386.                These expressions can be retrieved and evaluated when a
  387.                menu bar item is selected (see the 'getmenubar'
  388.                function).
  389.  
  390.                Up to four menu bars can be defined for one window. 'bar'
  391.                specifies which of the four menu bars is being defined,
  392.                and can be one of the following values:
  393.  
  394.                1 - the primary menu bar at the top of the window, under
  395.                    the north title bar (if any)
  396.                2 - menu bar 2 directly underneath the primary menu bar
  397.                3 - menu bar 3 directly underneath menu bar 2
  398.                4 - menu bar 4 at the bottom of the window, above the
  399.                    south title bar (if any)
  400.  
  401.                If 'bar' is null, then 1 is assumed.
  402.  
  403.   returns:     TRUE if successful, otherwise null.
  404.   see also:    getmenubar, menu
  405.  
  406.   example:     menubar '' 1                   // primary menu bar
  407.                  item  "&Red"                 say "you selected red"
  408.                  item  "&Green"               say "you selected green"
  409.                  item  "&Blue"                say "you selected blue"
  410.                end 
  411.  
  412.  
  413.   object                                                     [Statement]
  414.   ──────────────────────────────────────────────────────────────────────
  415.   format:      object  objectname ( parent1 parent2 ... )
  416.  
  417.                The inheritance list (parent1 parent2 ...) is optional.
  418.  
  419.   remarks:     This statement changes the current (executing) object to
  420.                'objectname'. If the object does not exist, then it is
  421.                created.
  422.  
  423.                If the inheritance path '(parent1 parent2 ...)' is
  424.                specified, then the object will inherit functions and
  425.                object variables from the objects 'parent1', 'parent2',
  426.                etc.
  427.  
  428.                The 'object' statement can not be used within the scope
  429.                of the 'function' statement.
  430.  
  431.   returns:     nothing
  432.   see also:    destroyobject, function, getcurrobj, inheritfrom,
  433.                inheritkeys, object?
  434.  
  435.   example:     object abc
  436.                  // makes 'abc' the current object (and creates it
  437.                  //   if it doesn't exist)
  438.                object abc (def xyz)
  439.                  // makes 'abc' the current object (and creates it
  440.                  //   if it doesn't exist). 'abc' will inherit
  441.                  //   code and data from objects 'def' and 'xyz'
  442.  
  443.  
  444.   ref          variable                                      [Statement]
  445.   ──────────────────────────────────────────────────────────────────────
  446.   remarks:     The 'ref' keyword can be used to return more than one
  447.                value from a function.
  448.  
  449.                When 'ref' is specified immediately before a local or
  450.                global variable in a function call, it indicates that the
  451.                variable is to be passed 'by reference' to the function.
  452.                If the variable is modified in the called function, it is
  453.                also modified where it was called.
  454.  
  455.   returns:     nothing
  456.  
  457.   example:     function  modify (c d)
  458.                  c = 13
  459.                  d = 14
  460.                end 
  461.  
  462.                function  callmod
  463.                  a = 1
  464.                  b = 2
  465.                  modify  ref a  ref b
  466.                  return a + b                 // returns 27
  467.                end 
  468.  
  469.  
  470.   repeat                                                     [Statement]
  471.   ──────────────────────────────────────────────────────────────────────
  472.   format:      repeat 
  473.                  expressions
  474.                until until_expr
  475.  
  476.   remarks:     The 'repeat' statement evaluates 'expressions' repeatedly
  477.                until the value of the expression 'until_expr' is TRUE
  478.                (not zero and not null). 'until_expr' is tested after the
  479.                first iteration of the loop. The 'break' or 'return'
  480.                statements can be used to force an exit from the loop.
  481.  
  482.   returns:     null
  483.   see also:    break, loop, return, while
  484.  
  485.   example:     var i
  486.                repeat                         // counts from 0 to 9
  487.                  say "i is " + i
  488.                  delay 500
  489.                  i = i + 1
  490.                until i == 10
  491.  
  492.  
  493.   return       expression                                    [Statement]
  494.   ──────────────────────────────────────────────────────────────────────
  495.   remarks:     This statement returns the value of 'expression'
  496.                immediately and unconditionally to the calling function.
  497.  
  498.   returns:     the value of the specified expression.
  499.  
  500.   example:     return  "The value is: 13"    // returns a string
  501.                return  6 + 7                 // returns 13
  502.                return                        // returns the null string
  503.  
  504.  
  505.   set          variable expression                           [Statement]
  506.   ──────────────────────────────────────────────────────────────────────
  507.   remarks:     Assigns the value of 'expression' to an object variable
  508.                in the current (executing) object. Leading underscores
  509.                are ignored.
  510.  
  511.   returns:     nothing
  512.   see also:    function?, lookup, setobj, setx, setxfun, setxobj, unsetx
  513.  
  514.   example:     set Two 2
  515.                set _Two 2                     // underscore is ignored
  516.                set number  1 + 2 + x - 4
  517.                set abc_string 'a' + b + 'c'
  518.                set "A variable"  2
  519.  
  520.  
  521.   setobj       variable expression objexpression             [Statement]
  522.   ──────────────────────────────────────────────────────────────────────
  523.   remarks:     Assigns the value of 'expression' to an object variable
  524.                in the object defined by 'objexpression'. An object must
  525.                be specified
  526.  
  527.   returns:     nothing
  528.   see also:    function?, lookup, set, setx, setxfun, setxobj, unsetx
  529.  
  530.   example:     setobj Two 2 "edit"
  531.                setobj Two 2 "ed" + "it"
  532.  
  533.  
  534.   setx         varexpression expression                      [Statement]
  535.   ──────────────────────────────────────────────────────────────────────
  536.   remarks:     Assigns the value of 'expression' to an object variable
  537.                defined by 'varexpression' in the current object.
  538.  
  539.   returns:     nothing
  540.   see also:    function?, lookup, set, setobj, setxfun, setxobj, unsetx
  541.  
  542.   example:     setx "FourTeen"  14
  543.                setx "Four" + "Teen"  8 + 6   // assigns 14 to the object
  544.                                              //   variable "FourTeen"
  545.  
  546.                variable = "Fourteen"         // assigns 14 to the object
  547.                setx  variable  14            //   variable "FourTeen"
  548.  
  549.  
  550.   setxfun      funexpression expression objexpression        [Statement]
  551.   ──────────────────────────────────────────────────────────────────────
  552.   remarks:     Changes the function definition of the function
  553.                'funexpression' in the object 'objexpression' to the
  554.                macro source code in the string 'expression'. An object
  555.                must be specified.
  556.  
  557.                This statement can be used to change the definition of a
  558.                function to macro source code which is not known at
  559.                compile-time.
  560.  
  561.   returns:     nothing
  562.   see also:    function?, lookup, set, setobj, setx, setxobj, unsetx
  563.  
  564.   example:     setxfun "<ctrl d>"  "beep 400 400"  "edit"
  565.                  // assigns the macro code 'beep 400 400' to <ctrl d>
  566.                  //   in the object 'edit'
  567.  
  568.  
  569.   setxobj      varexpression expression objexpression        [Statement]
  570.   ──────────────────────────────────────────────────────────────────────
  571.   remarks:     Assigns the value of 'expression' to an object variable
  572.                defined by 'varexpression' in the object defined by
  573.                'objexpression'. An object must be specified.
  574.  
  575.   returns:     nothing
  576.   see also:    function?, lookup, set, setobj, setx, setxfun, unsetx
  577.  
  578.   example:     setxobj "Four" + "Teen"  8 + 6  "edit"
  579.                  // assigns 14 to the object variable 'Fourteen' in
  580.                  //   the object 'edit'
  581.  
  582.  
  583.   var          identifier                                    [Statement]
  584.   ──────────────────────────────────────────────────────────────────────
  585.   remarks:     This keyword defines the specified identifier as a
  586.                variable name, and initializes it to zero when entering a
  587.                macro or function.
  588.  
  589.                If a variable is referenced before it is assigned a value
  590.                (and not referenced in a function argument list), then
  591.                this keyword must be used to inform the compiler that the
  592.                specified identifier is a variable name.
  593.  
  594.   returns:     nothing
  595.   see also:    forward
  596.  
  597.   example:     function count (b)
  598.                  var a
  599.                  while a < b do 
  600.                    a = a + 1
  601.                  end 
  602.                end 
  603.  
  604.  
  605.   while                                                      [Statement]
  606.   ──────────────────────────────────────────────────────────────────────
  607.   format:      while while_expr do 
  608.                  expressions
  609.                end / endwhile 
  610.  
  611.                The keyword 'do' is optional, but may make the statement
  612.                easier to read.
  613.  
  614.   remarks:     The 'while' statement evaluates 'expressions' repeatedly
  615.                while the expression 'while_expr' is TRUE (not zero and
  616.                not null). 'while_expr' is tested before the first
  617.                iteration of the loop. The 'break' or 'return' statements
  618.                can be used to force an exit from the loop.
  619.  
  620.   returns:     null
  621.   see also:    break, loop, repeat, return
  622.  
  623.  
  624.  
  625.  
  626.  ┌─────────────────────────────────────────────────────────────────────┐
  627.  │ Functions                                                           │
  628.  └─────────────────────────────────────────────────────────────────────┘
  629.  
  630.  
  631.   about                                                         [Lib][a]
  632.   ──────────────────────────────────────────────────────────────────────
  633.   remarks:     Displays an about box with the editor version, and the
  634.                date and time.
  635.   returns:     The button pressed (Ok), or null if nothing was pressed.
  636.   see also:    finddlg, repldlg, scandlg
  637.  
  638.  
  639.   addhistory   historybuffer string                             [Lib][a]
  640.   ──────────────────────────────────────────────────────────────────────
  641.   remarks:     Adds 'string' to the specified history buffer and makes
  642.                it the most recently used history string. The history
  643.                buffer is created if it does not exist.
  644.  
  645.   returns:     nothing
  646.   see also:    askhistory, gethiststr, pophistory
  647.  
  648.   example:     addhistory "_load" "C:\\FILE.TXT"
  649.                  // adds C:\FILE.TXT to the history buffer '_load'
  650.                addhistory "_find" "apples"
  651.                  // adds 'apples' to the history buffer '_find'
  652.  
  653.  
  654.   addline      string col row buffer
  655.   ──────────────────────────────────────────────────────────────────────
  656.   remarks:     Inserts a new line containing the specified string into a
  657.                buffer. This function is almost identical to the
  658.                'insline' function, except that new lines are added to
  659.                the end of the buffer if 'row' is not specified (see
  660.                'insline').
  661.  
  662.   returns:     TRUE if successful, otherwise null.
  663.   see also:    delline, insline, insabove, joinline, splitline
  664.  
  665.   example:     addline
  666.                  // adds a new blank line to the end of the
  667.                  //   current buffer
  668.                addline "Last line"
  669.                  // adds a new line with the text 'Last line'
  670.                  //   after the last line in the current buffer
  671.  
  672.  
  673.   adjustcol    col window
  674.   ──────────────────────────────────────────────────────────────────────
  675.   remarks:     Scrolls a window left or right relative to the position
  676.                of the cursor in the window. If 'window' is not
  677.                specified, the current window is assumed.
  678.  
  679.                This function does not move the cursor in the buffer. The
  680.                window is scrolled so that the cursor appears 'col' minus
  681.                1 columns from the left edge of the client area. If 'col'
  682.                is not specified, the window is scrolled to a position
  683.                that leaves the cursor in the vertical center of the
  684.                window.
  685.  
  686.   returns:     nothing
  687.   see also:    adjustrow
  688.  
  689.   example:     adjustcol
  690.                  // attempts to scroll the window so that the cursor
  691.                  //   is vertically centered in the window.
  692.                adjustcol 3
  693.                  // attempts to scroll the window so that the cursor
  694.                  //   is 3 columns from the left edge of the window
  695.  
  696.  
  697.   adjustrow    row window
  698.   ──────────────────────────────────────────────────────────────────────
  699.   remarks:     Scrolls a window up or down relative to the position of
  700.                the cursor in the window. If 'window' is not specified,
  701.                the current window is assumed.
  702.  
  703.                This function does not move the cursor in the buffer. The
  704.                window is scrolled so that the cursor appears 'row' minus
  705.                1 lines from the top edge of the client area. If 'row' is
  706.                not specified, the window is scrolled to a position that
  707.                leaves the cursor in the horizontal center of the window.
  708.  
  709.   returns:     nothing
  710.   see also:    adjustcol
  711.  
  712.   example:     adjustrow
  713.                  // attempts to scroll the window so that the cursor
  714.                  //   is horizontally centered in the window.
  715.                adjustrow 3
  716.                  // attempts to scroll the window so that the cursor
  717.                  //   is 3 rows from the top edge of the window
  718.  
  719.  
  720.   actualrow    (+/-)lines row buffer
  721.   ──────────────────────────────────────────────────────────────────────
  722.   remarks:     This function returns the actual line number which is the
  723.                apparent distance on the screen of 'lines' lines away
  724.                from the specified row. If 'buffer' is null or not
  725.                specified, then the current buffer is assumed. If 'row'
  726.                is not specified, then the line at the cursor is assumed.
  727.  
  728.   returns:     A line number if successful, otherwise null.
  729.   see also:    apparentrow, fold?, getfold
  730.  
  731.   example:     actualrow -5
  732.                  // returns the line number which appears to be 5
  733.                  //  lines above the current line on the screen
  734.  
  735.  
  736.   apparentrow  (+/-)lines row buffer
  737.   ──────────────────────────────────────────────────────────────────────
  738.   remarks:     This function returns the apparent line number on the
  739.                screen which is the actual distance of 'lines' lines away
  740.                from the specified row. If 'buffer' is null or not
  741.                specified, then the current buffer is assumed. If 'row'
  742.                is not specified, then the line at the cursor is assumed.
  743.  
  744.   returns:     A line number if successful, otherwise null.
  745.   see also:    actualrow, fold?, getfold
  746.  
  747.   example:     apparentrow 5
  748.                  // returns the apparent line number on the screen
  749.                  //   of the line 5 lines below the current line
  750.  
  751.  
  752.   arg          n
  753.   ──────────────────────────────────────────────────────────────────────
  754.   remarks:     Retrieves the 'nth' argument, or the number of arguments
  755.                passed to the currently executing function. If 'n' is
  756.                zero or not specified, then the number of arguments is
  757.                returned, otherwise the 'nth' argument is returned.
  758.  
  759.   returns:     A function argument or the number of function arguments.
  760.   see also:    function, key
  761.  
  762.   example:     function abc
  763.                  say (arg) + " args passed, first arg is: " + (arg 1)
  764.                end 
  765.  
  766.                abc 1 2 3     // displays: '3 args passed, first is: 1'
  767.  
  768.  
  769.   asciibuf     buffer
  770.   ──────────────────────────────────────────────────────────────────────
  771.  
  772.   remarks:     This function creates a new buffer containing an ASCII
  773.                chart with 256 lines - one for each ASCII character. The
  774.                new buffer will become the current buffer. If 'buffer' is
  775.                null or not specified, a unique bufferid will be
  776.                assigned.
  777.  
  778.                Note: this function will not display the new buffer in a
  779.                window. The 'popup' or 'openbuf' library functions should
  780.                be used to display the buffer.
  781.  
  782.   returns:     The new bufferid if successful, otherwise null.
  783.  
  784.   see also:    asciibuf, createbbuf, destroybuf, loadbuf, menu, openbuf,
  785.                popup
  786.  
  787.  
  788.   ask          prompt history init title opt=[c12d] width       [Ext][a]
  789.   ──────────────────────────────────────────────────────────────────────
  790.   remarks:     Prompts the user to enter a string. The following
  791.                parameters may be specified:
  792.  
  793.                prompt   - the prompt displayed to the user
  794.                history  - the history buffer to use in the prompt
  795.                init     - the initial value to place in the prompt
  796.                title    - the prompt title (dialog boxes only)
  797.                width    - the prompt width (dialog boxes only)
  798.  
  799.                The following 'prompt style' options may also be
  800.                specified:
  801.  
  802.                  c - command line prompt
  803.                  1 - one-line box prompt
  804.                  2 - two-line box prompt
  805.                  d - dialog box prompt
  806.  
  807.                If no options are specified, the value of 'PromptStyle'
  808.                in CONFIG.AML is used as the default prompt style.
  809.  
  810.                If a history bufferid is specified and does not already
  811.                exist, then it is created. Note that entered strings are
  812.                not automatically added to the history buffer (the
  813.                'addhistory' function must be used).
  814.  
  815.   returns:     This function returns the string entered. If nothing is
  816.                entered and the <enter> key is pressed, then one blank
  817.                (ASCII 32) is returned. If the prompt is cancelled, then
  818.                null is returned.
  819.  
  820.   see also:    addhistory, askfile, okbox, popup, repldlg, scandlg,
  821.                yncbox
  822.  
  823.   example:     ask "Enter a string"
  824.                  // prompts for a string
  825.                ask "Enter a file name" "_load" "C:\\FILE.TXT"
  826.                  // prompts for a string, initializing the prompt with
  827.                  //   C:\FILE.TXT. The "_load" history buffer is
  828.                  //   available within the prompt
  829.                ask "Enter a string" '' "initial string" "Enter" 'd' 20
  830.                  // prompts for a string using a dialog box prompt of
  831.                  //   width 20 with the title 'Enter". The prompt
  832.                  //   is initialized with "initial string".
  833.  
  834.  
  835.   askbox       refvalue prompt history init                     [Lib][a]
  836.   ──────────────────────────────────────────────────────────────────────
  837.   remarks:     Prompts the user to enter a string in a 2-line box
  838.                prompt. The following parameters may be specified:
  839.  
  840.                refvalue - the variable to hold the return string
  841.                prompt   - the prompt displayed to the user
  842.                history  - the history buffer to use in the prompt
  843.                init     - the initial value to place in the prompt
  844.  
  845.                If a history bufferid is specified and does not already
  846.                exist, then it is created. Note that entered strings are
  847.                not automatically added to the history buffer (the
  848.                'addhistory' function must be used).
  849.  
  850.   returns:     TRUE if a string was entered, or null if the prompt was
  851.                cancelled. The user string is returned in the variable
  852.                'refvalue' (passed by reference).
  853.  
  854.   see also:    addhistory, ask, askbox1, askline
  855.  
  856.   example:     var value
  857.                // prompt for a string
  858.                if askbox ref value "File name?" _load "FILE.TXT" then 
  859.                  // user string is returned in 'value'
  860.                  msgbox "You entered " + value
  861.                end 
  862.  
  863.  
  864.   askbox1      refvalue prompt history init                     [Lib][a]
  865.   ──────────────────────────────────────────────────────────────────────
  866.   remarks:     Prompts the user to enter a string in a 1-line box
  867.                prompt. The parameters and return values are identical to
  868.                the 'askbox' function.
  869.  
  870.   returns:     see askbox.
  871.   see also:    ask, askbox, askline
  872.  
  873.  
  874.   askfile      filespec title sortoptions fmgroptions bufname   [Lib][a]
  875.   ──────────────────────────────────────────────────────────────────────
  876.   remarks:     Displays a file selection menu based on 'filespec'. The
  877.                following parameters can be specified:
  878.  
  879.                title       - the menu title
  880.  
  881.                sortoptions - One of the following sort options can be
  882.                              specified:
  883.  
  884.                                 d - file date/time (descending)
  885.                                 e - file extension
  886.                                 n - file name
  887.                                 o - DOS default order
  888.                                 s - file size (descending)
  889.  
  890.                              If no options are specified, the setting
  891.                              'FmgrSort' in CONFIG.AML is assumed.
  892.  
  893.                fmgroptions - One of the following options can be
  894.                              specified:
  895.  
  896.                                d - show subdirectories
  897.                                h - show hidden & system files
  898.                                k - show file sizes in 1k increments
  899.                                1 - show directories first when sorting
  900.                                    by name
  901.  
  902.                              If no options are specified, the setting
  903.                              'FmgrOpt' in CONFIG.AML is assumed.
  904.  
  905.                bufname     - A buffer name to be used for the menu. If a
  906.                              buffer name is specified, the menu will
  907.                              'remember' its window and cursor positions,
  908.                              and associate them with the buffer name.
  909.  
  910.   returns:     The selected file or directory, or null if nothing was
  911.                selected.
  912.  
  913.   see also:    popup
  914.  
  915.   example:     askfile "C:\\*.*" "Select a file"
  916.                  // displays a file selection menu for the C drive
  917.                askfile "C:\\*.*" "Select a file" 's' 'dk'
  918.                  // displays a file selection menu for the C drive,
  919.                  //   sorted by file size. The menu will show
  920.                  //   subdirectories, and file sizes in 1k increments
  921.  
  922.  
  923.   askhistory                                               [Lib][prompt]
  924.   ──────────────────────────────────────────────────────────────────────
  925.   remarks:     Displays a history popup menu for the current prompt. If
  926.                a string is selected, it is entered automatically into
  927.                the prompt. This function is only for use within prompts.
  928.   returns:     The string selected from the popup menu, or null if
  929.                nothing was selected or the history buffer does not
  930.                exist.
  931.   see also:    pophistory
  932.  
  933.  
  934.   askline      refvalue prompt history init                     [Lib][a]
  935.   ──────────────────────────────────────────────────────────────────────
  936.   remarks:     Prompts the user to enter a string in a command-line
  937.                prompt. The parameters and return values are identical to
  938.                the 'askbox' function.
  939.  
  940.   returns:     see askbox.
  941.   see also:    ask, askbox, askbox1
  942.  
  943.  
  944.   assignkey                                                   [Lib][mon]
  945.   ──────────────────────────────────────────────────────────────────────
  946.   remarks:     Assigns the current scrap key macro to a key. The user is
  947.                prompted to enter the key. If the key macro is assigned,
  948.                the scrap macro is erased.
  949.  
  950.                Note: key macros cannot be assigned to multi-keys with
  951.                this function.
  952.  
  953.   returns:     nothing
  954.   see also:    assignkey, openkey, playing?, savekey, setting
  955.  
  956.  
  957.   base         number newbase
  958.   ──────────────────────────────────────────────────────────────────────
  959.   remarks:     Converts a decimal or hexadecimal number to a string
  960.                representing a number of any base from 2 to 36.
  961.  
  962.   returns:     a string representing the number in base 'newbase'.
  963.   see also:    bin2hex, hex2bin
  964.  
  965.   example:     base 45 16     // returns "2D"
  966.                base 45 8      // returns "55"
  967.                base 45 2      // returns "101101"
  968.  
  969.  
  970.   beep         frequency milliseconds
  971.   ──────────────────────────────────────────────────────────────────────
  972.   remarks:     Beeps the PC speaker at the specified frequency (in Hz)
  973.                for the specified number of milliseconds. If
  974.                'milliseconds' is omitted, the speaker will sound
  975.                indefinitely until the next call to this function. If no
  976.                arguments are passed to this function, then the speaker
  977.                is turned off.
  978.  
  979.   returns:     nothing
  980.   see also:    delay
  981.  
  982.   example:     beep 500 1000        // beeps at 500Hz for 1 second
  983.                beep 800             // beeps at 800Hz indefinitely
  984.                beep                 // turns sound off
  985.  
  986.  
  987.   begdesk                                                       [Lib][a]
  988.   ──────────────────────────────────────────────────────────────────────
  989.   remarks:     Clears the current desktop and marks the beginning of a
  990.                series of window 'close' calls which add each closed
  991.                window to the current desktop. This would typically be
  992.                used for exiting the editor and saving all open windows
  993.                as the current desktop.
  994.   returns:     nothing
  995.   see also:    close, enddesk
  996.  
  997.  
  998.   bin2hex      binarystring
  999.   ──────────────────────────────────────────────────────────────────────
  1000.   remarks:     Converts a binary string into a string representing its
  1001.                hexadecimal value
  1002.  
  1003.   returns:     a hexadecimal string.
  1004.   see also:    hex2bin
  1005.  
  1006.   example:     bin2hex 'a'                    // returns "61"
  1007.                bin2hex 'abc'                  // returns "616263"
  1008.  
  1009.  
  1010.   bin2int      binarystring
  1011.   ──────────────────────────────────────────────────────────────────────
  1012.   remarks:     Converts 1, 2, or 4 byte binary strings into integers.
  1013.  
  1014.   returns:     an integer.
  1015.   see also:    char, char2, char4
  1016.  
  1017.   example:     bin2int 'a'                    // returns 97
  1018.                bin2int 'ab'                   // returns 25185
  1019.                bin2int 'abcd'                 // returns 1684234849
  1020.  
  1021.  
  1022.   blink        [0/1]
  1023.   ──────────────────────────────────────────────────────────────────────
  1024.   remarks:     Enables (1) or disables (0) the video blink mode.
  1025.                Disabling the video blink mode allows the brighter
  1026.                background colors (128-255) to be used.
  1027.   returns:     nothing
  1028.   see also:    display
  1029.  
  1030.  
  1031.   bootpath     filename
  1032.   ──────────────────────────────────────────────────────────────────────
  1033.   remarks:     Converts an unqualified or partially qualified filename
  1034.                into a fully-qualified filename based on the editor
  1035.                'bootpath' (the location of the main editor .EXE file).
  1036.  
  1037.   returns:     a fully qualified filename or directory specification.
  1038.   see also:    getbootpath, qualify
  1039.  
  1040.   example:     bootpath "KBD.AML"
  1041.                  // returns C:\AURORA\KBD.AML if 'C:\AURORA' is the
  1042.                  //   editor bootpath
  1043.  
  1044.  
  1045.   bufchanged?  buffer
  1046.   ──────────────────────────────────────────────────────────────────────
  1047.   remarks:     Tests if a buffer is modified by checking the buffer
  1048.                'modified' flag. If 'buffer' is null or not specified,
  1049.                the current buffer is assumed.
  1050.   returns:     non-zero if the buffer is modified, otherwise null.
  1051.   see also:    bufchanged?, bufferflag
  1052.  
  1053.  
  1054.   buffer?      buffer
  1055.   ──────────────────────────────────────────────────────────────────────
  1056.   remarks:     Tests if a buffer exists. If 'buffer' is null or not
  1057.                specified, the current buffer is assumed.
  1058.   returns:     TRUE if the buffer exists, otherwise null.
  1059.   see also:    trunc?
  1060.  
  1061.  
  1062.   bufferflag   opt=[cdmr-] buffer
  1063.   ──────────────────────────────────────────────────────────────────────
  1064.   remarks:     Turns buffer flags on or off. If 'buffer' is null or not
  1065.                specified, the current buffer is assumed. The following
  1066.                flags can be specified:
  1067.  
  1068.                  d - process 'dirty' or modified lines
  1069.                  m - buffer 'modified' flag
  1070.                  r - buffer read/only (protected) flag
  1071.                  - - turns off flags
  1072.  
  1073.                If option '-' is specified, any other specified flags
  1074.                will be turned off, otherwise all specified flags will be
  1075.                turned on.
  1076.  
  1077.                The following option can also be specified:
  1078.  
  1079.                  c - clear all 'dirty' or modified lines
  1080.  
  1081.   returns:     nothing
  1082.   see also:    bufchanged?, bufferflag?, lineflag, lineflag?
  1083.  
  1084.   example:     bufferflag "-m"    // turn off the buffer-modified flag
  1085.                bufferflag "c"     // clear all modified lines
  1086.                bufferflag "r"     // make current buffer read/only
  1087.  
  1088.  
  1089.   bufferflag?  opt=[dmr] buffer
  1090.   ──────────────────────────────────────────────────────────────────────
  1091.   remarks:     Tests if buffer flags are on. If 'buffer' is null or not
  1092.                specified, the current buffer is assumed. The following
  1093.                flags can be specified:
  1094.  
  1095.                  d - process 'dirty' or modified lines
  1096.                  m - buffer 'modified' flag
  1097.                  r - buffer read/only (protected) flag
  1098.  
  1099.   returns:     non-zero if any of the specified buffer flags are ON,
  1100.                otherwise null.
  1101.   see also:    bufchanged?, bufferflag
  1102.  
  1103.   example:     bufferflag? "m"    // returns non-zero if the current
  1104.                                   //   buffer has been modified
  1105.  
  1106.  
  1107.   button       title x y width height                           [Lib][a]
  1108.   ──────────────────────────────────────────────────────────────────────
  1109.   remarks:     Adds a button window control to the current dialog box.
  1110.                The button window becomes the current window. The
  1111.                following parameters may be specified:
  1112.  
  1113.                title   - the button title
  1114.                x       - the button x-position in the dialog box
  1115.                y       - the button y-position in the dialog box
  1116.                width   - the button width (if not specified, the button
  1117.                          is sized to accomodate the title)
  1118.                height  - the button heigth (if not specified, the button
  1119.                          height is 1)
  1120.  
  1121.   returns:     The button window id.
  1122.   see also:    field, dialog, groupbox, listbox, whenenter
  1123.  
  1124.   example:     dialog "Test Dialog Box" 40 5   // create a dialog box
  1125.                button "O&k" 18 2 8             // add a button
  1126.                getdialog                       // display the dialog box
  1127.  
  1128.  
  1129.   button?      buttonmask
  1130.   ──────────────────────────────────────────────────────────────────────
  1131.   remarks:     Tests if the specified mouse button(s) are currently
  1132.                pressed down. 'buttonmask' can be any combination of the
  1133.                following values OR'ed together (bitwise):
  1134.  
  1135.                01h - left button is down
  1136.                02h - right button is down
  1137.                04h - center button is down
  1138.  
  1139.                If 'buttonmask' is not specified, then 07h is assumed.
  1140.  
  1141.   returns:     Non-zero if the specified button keys are down, otherwise
  1142.                zero.
  1143.  
  1144.   example:     button?      // test if any mouse buttons are down
  1145.                button? 2    // test if the right mouse button is down
  1146.  
  1147.  
  1148.   call         funexpression arg1 arg2 ...
  1149.   ──────────────────────────────────────────────────────────────────────
  1150.   remarks:     Calls a function in the current object whose name is the
  1151.                value of 'funexpression', passing the arguments 'arg1',
  1152.                'arg2', etc.
  1153.  
  1154.   returns:     The return value of 'funexpression'.
  1155.   see also:    eval, pass, send, sendobject
  1156.  
  1157.   example:     call "beep" 400 400
  1158.                call "be" + "ep" 400 400
  1159.  
  1160.  
  1161.   cascade                                                     [Lib][win]
  1162.   ──────────────────────────────────────────────────────────────────────
  1163.   remarks:     Cascades all non-minimized windows on the screen.
  1164.   returns:     nothing
  1165.   see also:    splitwin, tile
  1166.  
  1167.  
  1168.   caseblock    opt=[lu] mark
  1169.   ──────────────────────────────────────────────────────────────────────
  1170.   remarks:     Changes the case of marked text. If 'mark' is not
  1171.                specified, then the default markid is assumed.
  1172.  
  1173.                Any combination of the following options may be specified:
  1174.  
  1175.                  l - change text to lower case
  1176.                  u - change text to upper case
  1177.  
  1178.                If options 'l' and 'u' are both specified, the case of
  1179.                each character in the mark is toggled. If no options are
  1180.                specified, then 'u' is assumed.
  1181.  
  1182.   returns:     TRUE if successful, otherwise null.
  1183.   see also:    flipcase, locase, upcase
  1184.  
  1185.  
  1186.   char         number1 number2 ...
  1187.   ──────────────────────────────────────────────────────────────────────
  1188.   remarks:     Converts its numeric arguments to 1 byte character
  1189.                strings whose ASCII value is the numeric argument.
  1190.  
  1191.   returns:     The concatenated string of all arguments converted to 1
  1192.                byte strings.
  1193.   see also:    bin2int, char2, char4
  1194.  
  1195.   example:     char 97                        // returns "a"
  1196.                char 65 66 67                  // returns "ABC"
  1197.  
  1198.  
  1199.   char2        number1 number2 ...
  1200.   ──────────────────────────────────────────────────────────────────────
  1201.   remarks:     Converts its numeric arguments to 2 byte binary character
  1202.                strings.
  1203.  
  1204.   returns:     The concatenated string of all arguments converted to 2
  1205.                byte strings.
  1206.   see also:    bin2int, char, char4
  1207.  
  1208.   example:     char2 6261h                    // returns "ab"
  1209.  
  1210.  
  1211.   char4        number1 number2 ...
  1212.   ──────────────────────────────────────────────────────────────────────
  1213.   remarks:     Converts its numeric arguments to 4 byte binary character
  1214.                strings.
  1215.  
  1216.   returns:     The concatenated string of all arguments converted to 4
  1217.                byte strings.
  1218.   see also:    bin2int, char, char2
  1219.  
  1220.   example:     char4 64636261h                // returns "abcd"
  1221.  
  1222.  
  1223.   chgfileattr  filename attributes=[ahrs]
  1224.   ──────────────────────────────────────────────────────────────────────
  1225.   remarks:     Changes the attributes of the file 'filename'. Any of the
  1226.                following attributes can be specified:
  1227.  
  1228.                  a - archive
  1229.                  h - hidden
  1230.                  r - read-only
  1231.                  s - system
  1232.                  null - no attributes
  1233.  
  1234.   returns:     Non-zero if successful, otherwise zero.
  1235.   see also:    fileattr?
  1236.  
  1237.   example:     chgfileattr "C:\\FILE.TXT" "r"
  1238.                  // makes C:\\FILE.TXT a read-only file
  1239.  
  1240.  
  1241.   close        opt=[s]           [Lib][win,edit_fmgr,prompt] [Ext][edit]
  1242.   ──────────────────────────────────────────────────────────────────────
  1243.   remarks:     Closes the current window. If the buffer in the window is
  1244.                not displayed in any other windows, the buffer is also
  1245.                destroyed. If option 's' is specified and the window is
  1246.                an edit window, the file is saved.
  1247.  
  1248.   returns:     nothing
  1249.   see also:    open, save, setname
  1250.  
  1251.   example:     close
  1252.                  // closes the current window
  1253.                close 's'
  1254.                  // saves the current buffer and closes the current
  1255.                  //   window
  1256.  
  1257.  
  1258.   closefile    handle
  1259.   ──────────────────────────────────────────────────────────────────────
  1260.   remarks:     Closes a file handle opened with 'openfile'.
  1261.   returns:     nothing
  1262.   see also:    filepos, openfile, readfile, writefile
  1263.  
  1264.  
  1265.   closefold    opt=[s] row buffer
  1266.   ──────────────────────────────────────────────────────────────────────
  1267.   remarks:     Closes the open fold spanning the specified row. If
  1268.                'buffer' is null or not specified, then the current
  1269.                buffer is assumed. If 'row' is not specified, then the
  1270.                line at the cursor is assumed. If option 's' is
  1271.                specified, all open subfolds within the fold are also
  1272.                closed.
  1273.  
  1274.   returns:     the number of folds closed
  1275.   see also:    createfold, destroyfold, foldblock, getfold, openfold
  1276.  
  1277.   example:     closefold
  1278.                  // closes the open fold spanning the current line in
  1279.                  //   the current buffer, leaving any subfolds open
  1280.  
  1281.  
  1282.   closemouse 
  1283.   ──────────────────────────────────────────────────────────────────────
  1284.   remarks:     Deactivates the mouse driver and removes the mouse
  1285.                pointer from the screen. When this function is called,
  1286.                mouse events will no longer be processed by the event
  1287.                queue.
  1288.   returns:     nothing
  1289.   see also:    openmouse
  1290.  
  1291.  
  1292.   col          col buffer
  1293.   ──────────────────────────────────────────────────────────────────────
  1294.   remarks:     Moves the cursor to the specified column, but does not
  1295.                change the row. If 'buffer' is null or not specified, the
  1296.                current buffer is assumed.
  1297.  
  1298.   returns:     TRUE if successful, otherwise null.
  1299.   see also:    gotopos, row
  1300.  
  1301.   example:     col 1
  1302.                  // moves the cursor to column 1 of the current line
  1303.                  //   in the current buffer
  1304.                col getlinelen + 1
  1305.                  // moves the cursor one column past the end of the
  1306.                  //   current line in the current buffer
  1307.  
  1308.  
  1309.   colorcursor  color cursor
  1310.   ──────────────────────────────────────────────────────────────────────
  1311.   remarks:     Changes the color of a cursor to the attribute 'color'.
  1312.                If 'cursor' is not specified, the current 'cursor' in the
  1313.                current buffer is assumed.
  1314.  
  1315.   returns:     TRUE if successful, otherwise null.
  1316.   see also:    getcolor, getcurrcurs, setcolor
  1317.  
  1318.   example:     colorcursor 95
  1319.                  // changes the color of the current cursor to
  1320.                  //   white on magenta
  1321.  
  1322.  
  1323.   colormark    color mark
  1324.   ──────────────────────────────────────────────────────────────────────
  1325.   remarks:     Changes the mark color to the attribute 'color'. If this
  1326.                function is not used, the window mark color is assumed.
  1327.                This function allows individual marks to have different
  1328.                colors. If 'mark' is not specified, the default markid is
  1329.                assumed.
  1330.  
  1331.   returns:     TRUE if successful, otherwise null.
  1332.   see also:    getcolor, setcolor
  1333.  
  1334.   example:     colormark 95
  1335.                  // changes the color of the current mark to
  1336.                  //   white on magenta
  1337.  
  1338.  
  1339.   compilemacro  sourcefile destfile
  1340.   ──────────────────────────────────────────────────────────────────────
  1341.   remarks:     Compiles the macro source file 'sourcefile' and places
  1342.                the compiled macro object code in the file 'destfile'.
  1343.                Compiler error information can be retrieved with the
  1344.                'geterror' function.
  1345.  
  1346.   returns:     Null if the compilation was successful, otherwise one of
  1347.                the following compiler error codes:
  1348.  
  1349.                  1001 - can't open file
  1350.                  1002, 1003 - read error
  1351.                  1004 - not an executable macro file
  1352.                  1031 - write error
  1353.                  1032 - can't open compiler output file
  1354.  
  1355.                  1101 - no closing quote
  1356.                  1102 - no closing bracket
  1357.                  1103 - invalid symbol
  1358.                  1104 - invalid key or event
  1359.  
  1360.                  1301 - no terminator
  1361.                  1302 - unexpected end of source
  1362.                  1303 - no closing parenthesis
  1363.                  1310 - unexpected argument
  1364.                  1311 - unexpected terminator
  1365.                  1312 - unexpected function
  1366.                  1313 - unexpected operator
  1367.                  1318 - invalid number
  1368.                  1319 - identifier not defined (the identifier name
  1369.                           can be retrieved with the 'geterror' function,
  1370.                           using option 's')
  1371.                  1320 - bad assignment
  1372.                  1330 - bad when clause
  1373.                  1336 - improperly placed break
  1374.                  1337 - invalid reference
  1375.  
  1376.                  1501 - can't open include file (the include file name
  1377.                           can be retrieved with the 'geterror' function,
  1378.                           option 's')
  1379.                  1502 - include level exceeded
  1380.                  1503 - can't include compiled file in expression
  1381.                  1504 - include must be at top level
  1382.                  1505 - define can't be nested
  1383.                  1506 - function must be at top level
  1384.                  1507 - can't redefine builtin function
  1385.                  1508 - duplicated function argument
  1386.                  1509 - object statement not permitted
  1387.  
  1388.                  1701 - too many variables
  1389.                  1702 - too many function arguments
  1390.                  1703 - function or expression too large
  1391.                  1704, 1705 - internal stack overflow
  1392.                  1706 - out of symbol space
  1393.                  1707 - internal stack overflow
  1394.  
  1395.                  any other code -  fatal compilation error
  1396.  
  1397.   see also:    eval, geterror, includemacro, runmacro
  1398.  
  1399.   example:     compilemacro "c:\\aurora\\macro\\utility.aml"
  1400.                             "c:\\aurora\\macro\\utility.x"
  1401.  
  1402.  
  1403.   concat       string1 string2 ...
  1404.   ──────────────────────────────────────────────────────────────────────
  1405.   remarks:     Concatenates all of its arguments.
  1406.  
  1407.                Note: the concatenation operator (+) may also be used to
  1408.                concatenate strings.
  1409.  
  1410.   returns:     the concatenated string of all the arguments.
  1411.   see also:    copystr
  1412.  
  1413.   example:     concat "Red" "Green" "Blue"    // returns "RedGreenBlue"
  1414.  
  1415.  
  1416.   copyblock    mark buffer col row
  1417.   ──────────────────────────────────────────────────────────────────────
  1418.   remarks:     Copies marked text after the position 'col','row' in the
  1419.                specified buffer. The text is inserted at the new
  1420.                position and the mark is also moved to the new position.
  1421.  
  1422.                If 'mark' is not specified, the default markid is
  1423.                assumed. If 'buffer' is null or not specified, the
  1424.                current buffer is assumed. If 'col' and 'row' are not
  1425.                specified, the current cursor position is assumed.
  1426.  
  1427.   returns:     TRUE if successful, otherwise null.
  1428.   see also:    copyblockover, moveblock
  1429.  
  1430.  
  1431.   copyblockover  mark buffer col row
  1432.   ──────────────────────────────────────────────────────────────────────
  1433.   remarks:     Copies marked text to 'col','row' in the specified
  1434.                buffer. The text is overlaid at the new position (not
  1435.                inserted) and the mark is moved to the new location.
  1436.  
  1437.                If 'mark' is not specified, the default markid is
  1438.                assumed. If 'buffer' is null or not specified, the
  1439.                current buffer is assumed. If 'col' and 'row' are not
  1440.                specified, the current cursor position is assumed.
  1441.  
  1442.   returns:     TRUE if successful, otherwise null.
  1443.   see also:    copyblock, moveblock
  1444.  
  1445.  
  1446.   copyfile     sourcefile destfile opt=[au]
  1447.   ──────────────────────────────────────────────────────────────────────
  1448.   remarks:     Copies the file 'sourcefile' to 'destfile'. Any of the
  1449.                following options can be specified:
  1450.  
  1451.                  a - append the sourcefile to the destination file
  1452.                  u - update the destination file date/time
  1453.  
  1454.   returns:     Non-zero if successful, otherwise zero.
  1455.   see also:    deletefile, renamefile
  1456.  
  1457.  
  1458.   copymark     oldmark newmark
  1459.   ──────────────────────────────────────────────────────────────────────
  1460.   remarks:     Creates a new mark with the markid 'newmark' by making a
  1461.                copy of 'oldmark'. If 'newmark' is not specified, a
  1462.                unique markid will be assigned.
  1463.  
  1464.                The new mark will reside in the same buffer as 'oldmark'
  1465.                and have the same size and type. The new mark becomes the
  1466.                current mark for the buffer.
  1467.  
  1468.   returns:     TRUE if successful, otherwise null.
  1469.   see also:    markchar, markcolumn, markline, markstream
  1470.  
  1471.   example:     copymark '*' 'T'   // create a temporary copy of a mark
  1472.                  .
  1473.                  .
  1474.                destroymark 'T'    // destroy the temporary mark
  1475.  
  1476.  
  1477.   copystr      string count
  1478.   ──────────────────────────────────────────────────────────────────────
  1479.   remarks:     Concatenates a string with itself for 'count' number of
  1480.                times.
  1481.  
  1482.   returns:     the argument string copied 'count' times.
  1483.   see also:    concat, pad, sizeof
  1484.  
  1485.   example:     copystr "Red" 4    // returns "RedRedRedRed"
  1486.  
  1487.  
  1488.   copywin                                                    [Lib][edit]
  1489.   ──────────────────────────────────────────────────────────────────────
  1490.   remarks:     Copies the current edit window. The new edit window will
  1491.                display the same file in memory as the original window.
  1492.   returns:     TRUE if successful, otherwise null.
  1493.   see also:    splitwin
  1494.  
  1495.  
  1496.   createbuf    buffer line1 line2 ...
  1497.   ──────────────────────────────────────────────────────────────────────
  1498.   remarks:     This function creates a new buffer with the specified
  1499.                bufferid. If the bufferid is already in use, this
  1500.                function will fail. If 'buffer' is null or not specified,
  1501.                a unique bufferid will be assigned. The new buffer will
  1502.                become the current buffer.
  1503.  
  1504.                Initial lines can be placed in the buffer with the
  1505.                arguments 'line1', 'line2', etc. If no lines are
  1506.                specified, one blank line is assumed.
  1507.  
  1508.                Note: this function will not display the new buffer in a
  1509.                window. The 'openbuf' library function should be used to
  1510.                display the buffer.
  1511.  
  1512.   returns:     The new bufferid if successful, otherwise null.
  1513.  
  1514.   see also:    asciibuf, buffer?, createbbuf, destroybuf, loadbuf, menu,
  1515.                openbuf
  1516.  
  1517.   example:     createbuf        // creates a new buffer and returns a
  1518.                                 //   unique bufferid
  1519.                createbuf "abc"  // creates new buffer with the
  1520.                                 //   bufferid "abc"
  1521.                createbuf ''     // creates a new buffer with 2 lines
  1522.                  "First Line"   //   and returns a unique bufferid
  1523.                  "Second Line"
  1524.  
  1525.  
  1526.   createbbuf   buffer line1 line2 ...
  1527.   ──────────────────────────────────────────────────────────────────────
  1528.   remarks:     This function creates a new binary buffer with the
  1529.                bufferid 'buffer'. By default, when a binary buffer is
  1530.                saved, line delimiter characters are not appended to the
  1531.                end of each line.
  1532.  
  1533.                This function is almost identical to the 'createbuf'
  1534.                function, except that a binary buffer is created (see
  1535.                'createbuf').
  1536.  
  1537.   returns:     The new bufferid if successful, otherwise null.
  1538.   see also:    asciibuf, buffer?, createbuf, destroybuf, loadbuf, menu
  1539.  
  1540.  
  1541.   createdir    path
  1542.   ──────────────────────────────────────────────────────────────────────
  1543.   remarks:     Creates a new directory specified by 'path'. Only one
  1544.                directory in the path can be created at a time.
  1545.   returns:     Non-zero if successful, otherwise zero.
  1546.   see also:    locatefile
  1547.  
  1548.  
  1549.   createfold   opt=[c] row buffer
  1550.   ──────────────────────────────────────────────────────────────────────
  1551.   remarks:     Creates a one-line text fold. If 'buffer' is null or not
  1552.                specified, then the current buffer is assumed. If 'row'
  1553.                is not specified, then the line at the cursor is assumed.
  1554.                If option 'c' is specified, the fold is created 'closed',
  1555.                otherwise the fold is created 'open'.
  1556.  
  1557.   returns:     non-zero if successful, otherwise null.
  1558.  
  1559.   see also:    closefold, destroyfold, foldblock, foldline, getfold,
  1560.                openfold
  1561.  
  1562.   example:     createfold
  1563.                  // creates an open fold on the current line in
  1564.                  //   the current buffer
  1565.  
  1566.  
  1567.   createwindow  window
  1568.   ──────────────────────────────────────────────────────────────────────
  1569.   remarks:     Creates a new window.  If 'window' is null or not
  1570.                specified, a unique windowid will be assigned. The new
  1571.                window will become the current window.
  1572.  
  1573.                The new window will be sized to cover the entire physical
  1574.                screen and will not have any borders or frame controls.
  1575.                To add frame controls to the window, see the 'setframe'
  1576.                function. To change the border size and style, see the
  1577.                'setborder' function.
  1578.  
  1579.                The window event object will be set to the current
  1580.                (executing) object. To change the window event object,
  1581.                see the 'setwinobj' function.
  1582.  
  1583.                This function can be used to create simple video output
  1584.                windows, or windows that display buffers.
  1585.  
  1586.   returns:     The new windowid if successful, otherwise null.
  1587.   see also:    destroywindow, setwinobj, window?
  1588.  
  1589.   example:     createwindow                // create a new window
  1590.                setframe "b"                // add borders
  1591.                setborder "1i"              // set the border style
  1592.                setcolor  0  127            // set border color
  1593.                setcolor  5  112            // set text color
  1594.                settitle "Hello World!"     // set window title
  1595.                sizewindow 6 5 72 20 "ad"   // size the window
  1596.                setshadow 2 1               // add shadows to the window
  1597.  
  1598.  
  1599.   currbook     bookmark
  1600.   ──────────────────────────────────────────────────────────────────────
  1601.   remarks:     Makes the specified bookmark the current bookmark by
  1602.                moving it to the top of the bookmark list in the current
  1603.                buffer.
  1604.   returns:     TRUE if successful, otherwise null.
  1605.   see also:    getcurrbook
  1606.  
  1607.  
  1608.   currbuf      buffer
  1609.   ──────────────────────────────────────────────────────────────────────
  1610.   remarks:     Makes the specified buffer the current buffer by moving
  1611.                it to the top of the buffer list.
  1612.   returns:     nothing
  1613.   see also:    getcurrbuf, gotobuf
  1614.  
  1615.  
  1616.   currcursor   cursor
  1617.   ──────────────────────────────────────────────────────────────────────
  1618.   remarks:     Makes the specified cursor the current cursor by moving
  1619.                it to the top of the cursor list in the current buffer.
  1620.   returns:     TRUE if successful, otherwise null.
  1621.   see also:    getcurrcurs
  1622.  
  1623.  
  1624.   currdesk                                                      [Lib][a]
  1625.   ──────────────────────────────────────────────────────────────────────
  1626.   remarks:     Sets the 'current' desktop to the current window layout
  1627.                on the screen. The current desktop can be restored later
  1628.                with the 'restoredesk' function, or saved to a file with
  1629.                the 'savedesk' function.
  1630.   returns:     nothing
  1631.   see also:    begdesk, enddesk, opendesk, openhistory, restoredesk,
  1632.                savedesk
  1633.  
  1634.  
  1635.   currmark     mark
  1636.   ──────────────────────────────────────────────────────────────────────
  1637.   remarks:     Makes the specified mark the current mark by moving it to
  1638.                the top of the mark list in the current buffer. Marks at
  1639.                the top of the mark list have higher priority when
  1640.                displayed on the screen.
  1641.   returns:     TRUE if successful, otherwise null.
  1642.   see also:    getcurrmark
  1643.  
  1644.  
  1645.   currpath     path
  1646.   ──────────────────────────────────────────────────────────────────────
  1647.   remarks:     Changes the current DOS path to 'path' for the disk drive
  1648.                specified in 'path'.
  1649.   returns:     Non-zero if successful, otherwise zero.
  1650.   see also:    getcurrpath
  1651.  
  1652.   example:     currpath "d:\\abc"
  1653.                  // changes the current path for the D drive to 'abc'
  1654.  
  1655.  
  1656.   currwin      window                                           [Lib][a]
  1657.   ──────────────────────────────────────────────────────────────────────
  1658.   remarks:     Brings the specified window to the top of the screen and
  1659.                makes it the current window.
  1660.   returns:     nothing
  1661.   see also:    getcurrwin
  1662.  
  1663.  
  1664.   cursor?      cursor
  1665.   ──────────────────────────────────────────────────────────────────────
  1666.   remarks:     Tests if a cursor exists. If 'cursor' is null or not
  1667.                specified, then the current cursor for the current buffer
  1668.                is assumed.
  1669.   returns:     TRUE if the cursor exists, otherwise null.
  1670.   see also:    destroycursor, setcursor
  1671.  
  1672.  
  1673.   cursorsize   overtop overbot instop insbot
  1674.   ──────────────────────────────────────────────────────────────────────
  1675.   remarks:     Sets the physical cursor size for insert and overstrike
  1676.                modes in windows which display a buffer. 'overtop' and
  1677.                'overbot' specify the cursor top and bottom in overstrike
  1678.                mode. 'instop' and 'insbot' specify the cursor top and
  1679.                bottom in insert mode.
  1680.  
  1681.                The cursor top and bottom must be numbers from 0 to 99
  1682.                and indicate the distance of the top and bottom of the
  1683.                cursor from the top of the character cell, on a scale of
  1684.                0 to 99.
  1685.  
  1686.   returns:     nothing
  1687.   see also:    hidecursor, showcursor
  1688.  
  1689.  
  1690.   defext       filename extension                               [Ext][a]
  1691.   ──────────────────────────────────────────────────────────────────────
  1692.   remarks:     Appends the default extension 'extension' to the
  1693.                specified filename if the filename has no extension.
  1694.  
  1695.   returns:     a filename with the default extension.
  1696.   see also:    forceext
  1697.  
  1698.   example:     defext "file" "doc"          // returns 'file.doc'
  1699.                defext "file.txt" "doc"      // returns 'file.txt'
  1700.                defext "file." "doc"         // returns 'file.'
  1701.  
  1702.  
  1703.   delay        milliseconds
  1704.   ──────────────────────────────────────────────────────────────────────
  1705.   remarks:     Suspends execution of the editor for the specified number
  1706.                of milliseconds.
  1707.  
  1708.   returns:     nothing
  1709.   see also:    beep, exec, halt
  1710.  
  1711.   example:     delay 1000            // delay for 1 second
  1712.  
  1713.  
  1714.   delchar      count col row buffer
  1715.   ──────────────────────────────────────────────────────────────────────
  1716.   remarks:     Deletes text on a line in a buffer. If 'buffer' is null
  1717.                or not specified, then the current buffer is assumed.
  1718.  
  1719.                The text at the specified 'col' and 'row' are deleted. If
  1720.                'col' are 'row' are not specified, the text at the cursor
  1721.                is deleted. 'count' specifies the number of characters to
  1722.                delete. If 'count' is not specified, 1 is assumed.
  1723.  
  1724.   returns:     TRUE if successful, otherwise null.
  1725.   see also:    instext, ovltext, text
  1726.  
  1727.   example:     delchar
  1728.                  // deletes the character at the cursor in the
  1729.                  //   current buffer
  1730.                delchar 4
  1731.                  // deletes 4 characters at the cursor in the
  1732.                  //   current buffer
  1733.                delchar 1 5 20 "abc"
  1734.                  // deletes the character at column 5, line 20
  1735.                  //   in the buffer "abc"
  1736.  
  1737.  
  1738.   deleteblock  mark
  1739.   ──────────────────────────────────────────────────────────────────────
  1740.   remarks:     Deletes marked text and destroys the mark. If 'mark' is
  1741.                not specified, the default markid is assumed.
  1742.   returns:     TRUE if successful, otherwise null.
  1743.   see also:    copyblock
  1744.  
  1745.  
  1746.   deletefile   filename
  1747.   ──────────────────────────────────────────────────────────────────────
  1748.   remarks:     Deletes the specified filename. 'filename' may also
  1749.                specify an empty directory.
  1750.   returns:     TRUE if successful, otherwise null.
  1751.   see also:    copyfile, renamefile
  1752.  
  1753.  
  1754.   deletewin                                                     [Lib][a]
  1755.   ──────────────────────────────────────────────────────────────────────
  1756.   remarks:     Deletes the current window. For edit windows, the buffer
  1757.                in the window is not destroyed.
  1758.   returns:     nothing
  1759.   see also:    close
  1760.  
  1761.  
  1762.   delline      count row buffer
  1763.   ──────────────────────────────────────────────────────────────────────
  1764.   remarks:     Deletes a line or lines in a buffer. If 'buffer' is null
  1765.                or not specified, the current buffer is assumed.
  1766.  
  1767.                If 'row' is specified, lines are deleted starting with
  1768.                'row', otherwise lines are deleted at the cursor. 'count'
  1769.                specifies the number of lines to delete. If 'count' is
  1770.                not specified, 1 is assumed.
  1771.  
  1772.   returns:     the line number of the line deleted if successful,
  1773.                otherwise null.
  1774.  
  1775.   see also:    addline, insabove, insline, joinline, splitline
  1776.  
  1777.   example:     delline
  1778.                  // deletes the line at cursor in the current buffer
  1779.                delline 4
  1780.                  // deletes the line at cursor and 3 lines below
  1781.                  //   it in the current buffer
  1782.                delline 1 1 "abc"
  1783.                  // deletes the first line in the buffer "abc"
  1784.  
  1785.                if delline > getrow then 
  1786.                  // deletes the current line and tests if it was the
  1787.                  //   last line
  1788.                  .
  1789.                  .
  1790.                end 
  1791.  
  1792.  
  1793.   destroybook  bookmark
  1794.   ──────────────────────────────────────────────────────────────────────
  1795.   remarks:     Destroys a bookmark created with the 'setbook' function.
  1796.                If 'bookmark' is not specified, the current bookmark is
  1797.                assumed.
  1798.   returns:     TRUE if successful, otherwise null.
  1799.   see also:    setbook
  1800.  
  1801.  
  1802.   destroybuf   buffer
  1803.   ──────────────────────────────────────────────────────────────────────
  1804.   remarks:     Destroys a buffer, If 'buffer' is null or not specified,
  1805.                then the current buffer is destroyed. All windows,
  1806.                cursors, bookmarks, and marks associated with the buffer
  1807.                will also be destroyed. The previous buffer in the buffer
  1808.                list will become the current buffer.
  1809.  
  1810.   returns:     nothing
  1811.   see also:    createbbuf, createbuf, loadbuf
  1812.  
  1813.  
  1814.   destroycursor  cursor
  1815.   ──────────────────────────────────────────────────────────────────────
  1816.   remarks:     Destroys the specified cursor, and any window in which
  1817.                the cursor is displayed. If 'cursor' is not specified,
  1818.                then the current cursor in the current buffer is
  1819.                destroyed. If the buffer contains more than one cursor,
  1820.                the next cursor in the cursor list will become the
  1821.                current cursor.
  1822.   returns:     TRUE if successful, otherwise null.
  1823.   see also:    getcurswin, setcursor
  1824.  
  1825.  
  1826.   destroyfold  opt=[s] row buffer
  1827.   ──────────────────────────────────────────────────────────────────────
  1828.   remarks:     Destroys a closed fold. If 'buffer' is null or not
  1829.                specified, then the current buffer is assumed. If 'row'
  1830.                is not specified, then the line at the cursor is assumed.
  1831.                If option 's' is specified, all closed subfolds within
  1832.                the fold are also destroyed.
  1833.  
  1834.   returns:     the number of folds destroyed
  1835.  
  1836.   see also:    closefold, createfold, foldblock, foldline, getfold,
  1837.                openfold
  1838.  
  1839.   example:     destroyfold
  1840.                  // destroys the closed fold at the current line in the
  1841.                  //   current buffer, leaving subfolds intact
  1842.  
  1843.  
  1844.   destroymark  mark
  1845.   ──────────────────────────────────────────────────────────────────────
  1846.   remarks:     Destroys a mark created with the markline, markcolumn,
  1847.                markchar, markstream, or copymark functions. The text
  1848.                within the mark is not affected. If 'mark' is not
  1849.                specified, the default markid is assumed.
  1850.   returns:     TRUE if successful, otherwise null.
  1851.   see also:    copymark, markchar, markcolumn, markline, markstream
  1852.  
  1853.  
  1854.   destroyobject  object
  1855.   ──────────────────────────────────────────────────────────────────────
  1856.   remarks:     Flags the specified object to be destroyed. The object
  1857.                will actually be destroyed the next time the editor is
  1858.                idle. If 'object' is not specified, then the current
  1859.                object is assumed.
  1860.   returns:     nothing
  1861.   see also:    object, object?, runmacro, stayresident
  1862.  
  1863.  
  1864.   destroytimer  timerid
  1865.   ──────────────────────────────────────────────────────────────────────
  1866.   remarks:     Stops and destroys the timer identified by 'timerid'.
  1867.                This function will destroy both interval and alarm
  1868.                timers.
  1869.   returns:     nothing
  1870.   see also:    setalarm, settimer, timer?
  1871.  
  1872.  
  1873.   destroywindow  window
  1874.   ──────────────────────────────────────────────────────────────────────
  1875.   remarks:     Destroys a window and removes it from the screen. If
  1876.                'window' is null or not specified, then the current
  1877.                window is destroyed. Any child windows of 'window' are
  1878.                also destroyed. The previous window in the window list
  1879.                will become the current window.
  1880.   returns:     nothing
  1881.   see also:    createwindow, window?
  1882.  
  1883.  
  1884.   dialog       title width height opt=[cp] object               [Lib][a]
  1885.   ──────────────────────────────────────────────────────────────────────
  1886.   remarks:     Creates a main dialog box window to which dialog box
  1887.                controls may be added. The new dialog box becomes the
  1888.                current window and the 'current' dialog box. The
  1889.                following parameters may be specified:
  1890.  
  1891.                title   - the dialog box title
  1892.                width   - the dialog box width
  1893.                height  - the dialog box height
  1894.                object  - the name of an object to be notified when
  1895.                          dialog box events occur
  1896.  
  1897.                The following options may also be specified:
  1898.  
  1899.                  c - center the dialog box title (if this option is not
  1900.                      specified, the title is left-justified)
  1901.                  p - remember the dialog box position after closing (if
  1902.                      this option is not specified, the dialog box will
  1903.                      be centered)
  1904.  
  1905.   returns:     The dialog box window id.
  1906.   see also:    button, field, getdialog, groupbox, listbox, showdialog
  1907.  
  1908.   example:     dialog "Test Dialog Box" 40 5   // create a dialog box
  1909.                getdialog                       // display the dialog box
  1910.  
  1911.  
  1912.   dir?         filespec                                         [Lib][a]
  1913.   ──────────────────────────────────────────────────────────────────────
  1914.   remarks:     Tests if 'filespec' specifies a directory.
  1915.  
  1916.   returns:     TRUE if filespec specifies a directory, otherwise null.
  1917.  
  1918.   example:     dir? "file.txt"      // returns null
  1919.                dir? "*.txt"         // returns true
  1920.                dir? "c:"            // returns true
  1921.  
  1922.  
  1923.   dispatch 
  1924.   ──────────────────────────────────────────────────────────────────────
  1925.   remarks:     This function reads the next event from the event queue
  1926.                and 'dispatches' it by calling a user-defined event
  1927.                handling function associated with the event. If no events
  1928.                are on the queue, this function waits for an event to
  1929.                appear on the queue.
  1930.   returns:     TRUE if the 'endprocess' function was not called in the
  1931.                user event-handling function, otherwise null.
  1932.   see also:    endprocess, process
  1933.  
  1934.  
  1935.   display      opt=[f]
  1936.   ──────────────────────────────────────────────────────────────────────
  1937.   remarks:     Updates the display. Any windows, buffers, and marks, and
  1938.                cursors which have been modified are redrawn.
  1939.  
  1940.                Specifying option 'f' forces the entire display to be
  1941.                redrawn (the background, all windows, etc.), even if
  1942.                nothing has been modified within the editor. This can be
  1943.                used to restore the display after another program,
  1944.                utility, or DOS command has overwritten it.
  1945.  
  1946.   returns:     TRUE if the display was updated, otherwise null.
  1947.   see also:    setdisplay
  1948.  
  1949.  
  1950.   down         rows buffer
  1951.   ──────────────────────────────────────────────────────────────────────
  1952.   remarks:     Moves the cursor downward. 'rows' specifies the number of
  1953.                lines to move. If 'rows' is not specified, 1 is assumed.
  1954.                If 'buffer' is null or not specified, the current buffer
  1955.                is assumed.
  1956.  
  1957.   returns:     TRUE if successful, otherwise null.
  1958.   see also:    left, right, up
  1959.  
  1960.   example:     down       // moves the cursor down 1 row
  1961.                down 5     // moves the cursor down 5 rows
  1962.  
  1963.  
  1964.   enddesk                                                       [Lib][a]
  1965.   ──────────────────────────────────────────────────────────────────────
  1966.   remarks:     Marks the end of a series of window 'close' calls which
  1967.                add the closed window to the current desktop.
  1968.   returns:     nothing
  1969.   see also:    begdesk
  1970.  
  1971.  
  1972.   endprocess 
  1973.   ──────────────────────────────────────────────────────────────────────
  1974.   remarks:     Posts a special internal 'quit' event to the event queue.
  1975.                When the editor processes this event, the current editor
  1976.                'process' is terminated, and the editor returns to the
  1977.                previous process (or to DOS if there is no previous
  1978.                process). The internal 'quit' event forces the 'dispatch'
  1979.                function to return null, and the 'process' function call
  1980.                to return.
  1981.  
  1982.   returns:     TRUE if successful, otherwise null.
  1983.   see also:    dispatch, process
  1984.  
  1985.  
  1986.   eotstring    titleid window
  1987.   ──────────────────────────────────────────────────────────────────────
  1988.   remarks:     Sets the end-of-text line for a window which displays a
  1989.                buffer to a window title previously set with the
  1990.                'settitle' function. If 'window' is not specified, the
  1991.                current window is assumed.
  1992.  
  1993.                'titleid' specifies which one of the 5 window titles
  1994.                should be used. The title should be hidden with settitle
  1995.                option 'z' (see 'settitle').
  1996.  
  1997.                If 'titleid' is not specified, then the 'end-of-text line
  1998.                is removed. If 'titleid' is -1, then the end-of-text line
  1999.                defaults to: "≡≡≡≡≡≡ End of Text ≡≡≡≡≡≡".
  2000.  
  2001.   returns:     nothing
  2002.   see also:    gettitle, settitle
  2003.  
  2004.   example:     eotstring
  2005.                  // removes the end-of-text line in the current window
  2006.                eotstring -1
  2007.                  // sets the end-of-text line to
  2008.                  //   '≡≡≡≡≡≡ End of Text ≡≡≡≡≡≡'
  2009.  
  2010.  
  2011.   erasekey     opt=[a]                                          [Lib][a]
  2012.   ──────────────────────────────────────────────────────────────────────
  2013.   remarks:     Erases the current scrap key macro. If option 'a' is
  2014.                specified, all current key macros are erased.
  2015.   returns:     TRUE if successful, otherwise null.
  2016.   see also:    openkey, playkey, savekey, setting
  2017.  
  2018.  
  2019.   eval         string object
  2020.   ──────────────────────────────────────────────────────────────────────
  2021.   remarks:     Compiles and evaluates a macro language source code
  2022.                string in the specified object. If 'object' is not
  2023.                specified, the current object is assumed. This function
  2024.                can also evaluate compiled expressions.
  2025.  
  2026.                Note that local and global variables defined outside of
  2027.                the scope of the eval string are not accessible from
  2028.                within the 'eval' function.
  2029.  
  2030.   returns:     The result of evaluating the macro source string. The
  2031.                'geterror' function can also be called to return an error
  2032.                code. The error code is zero if the string compiled
  2033.                successfully.
  2034.  
  2035.   see also:    compilemacro, geterror, includemacro, runmacro
  2036.  
  2037.   example:     eval "beep 700 300"            // beeps the speaker
  2038.                a = 40
  2039.                x = eval '3 + ' + a [1]        // x is '7'
  2040.  
  2041.  
  2042.   event? 
  2043.   ──────────────────────────────────────────────────────────────────────
  2044.   remarks:     Test if one or more events are currently in the event
  2045.                queue, including keyboard, mouse, and user-defined
  2046.                events.
  2047.   returns:     TRUE if an event is in the queue, otherwise null.
  2048.   see also:    geteventcount, keyhit?, shiftkey?
  2049.  
  2050.  
  2051.   eventobject  object
  2052.   ──────────────────────────────────────────────────────────────────────
  2053.   remarks:     Changes the current event object to the specified object.
  2054.                The current event object is where events are dispatched
  2055.                by the editor. If 'object' is not specified, the current
  2056.                (executing) object is assumed.
  2057.  
  2058.                Note: if a window has been associated with an event
  2059.                object via the 'setwinobj' function, the current event
  2060.                object is automatically changed to the window object when
  2061.                the window becomes the current window.
  2062.  
  2063.   returns:     TRUE if successful, otherwise null.
  2064.   see also:    geteventobj, setwinobj
  2065.  
  2066.  
  2067.   exec         program opt=[chk]
  2068.   ──────────────────────────────────────────────────────────────────────
  2069.   remarks:     Executes a DOS program. Any of the following options may
  2070.                be specified:
  2071.  
  2072.                  c - clears the screen before executing
  2073.                  h - displays the header "Type EXIT to return" after
  2074.                      executing the program
  2075.                  k - prompts the user with a keypress to return to the
  2076.                      editor
  2077.  
  2078.                Since DOS 'PATH' is not searched, 'program' should be
  2079.                fully qualified or reside in the current directory. If
  2080.                the path of the program is not known, the function
  2081.                'locatefile' can be used to search the DOS path.
  2082.  
  2083.   returns:     the DOS errorlevel
  2084.   see also:    delay, halt, locatefile
  2085.  
  2086.  
  2087.   extendmark   col row mark
  2088.   ──────────────────────────────────────────────────────────────────────
  2089.   remarks:     Extends a mark to the position defined by 'col','row'. If
  2090.                'col' and 'row' are not specified then the current cursor
  2091.                position is assumed. If 'mark' is not specified, the
  2092.                default markid is assumed.
  2093.   returns:     nothing
  2094.   see also:    markchar, markcolumn, markline, markstream, stopmark
  2095.  
  2096.  
  2097.   fdobrk                                                     [Lib][fmgr]
  2098.   ──────────────────────────────────────────────────────────────────────
  2099.   remarks:     Breaks out of the current 'fdomark' call.
  2100.   returns:     nothing
  2101.   see also:    fdomark
  2102.  
  2103.  
  2104.   fdomark      function arg1 arg2 ...
  2105.   ──────────────────────────────────────────────────────────────────────
  2106.   remarks:     Calls the specified function once for each marked file in
  2107.                the current file manager window. If no files are marked,
  2108.                the function is called only once for the file or
  2109.                directory at the current line in the file manager. The
  2110.                function is called in the current event object.
  2111.  
  2112.                The fully qualified file name and the arguments 'arg1',
  2113.                'arg2', etc. are passed to the function in following
  2114.                order:
  2115.  
  2116.                  filename arg1 arg2 ...
  2117.  
  2118.   returns:     nothing
  2119.   see also:    fdobrk, fmark, fmark?
  2120.  
  2121.   example:     fdomark "chgfileattr" attribute
  2122.                  // calls the function 'chgfileattr' (passing the value
  2123.                  //   of the variable 'attribute') in the current event
  2124.                  //   object for all marked files in the current
  2125.                  //   file manager window
  2126.  
  2127.  
  2128.   field        title x y width initvalue history                [Lib][a]
  2129.   ──────────────────────────────────────────────────────────────────────
  2130.   remarks:     Adds an edit field window control to the current dialog
  2131.                box. The edit field window becomes the current window.
  2132.                The following parameters may be specified:
  2133.  
  2134.                title     - the edit field title or prompt. If the last
  2135.                            character of the title is '>', the title will
  2136.                            be displayed to the left of the edit field,
  2137.                            otherwise the title will be displayed above
  2138.                            the edit field.
  2139.                x         - the edit field x-position in the dialog box
  2140.                y         - the edit field y-position in the dialog box
  2141.                width     - the edit field width
  2142.                initvalue - the initial value (if any) to be placed in
  2143.                            the edit field
  2144.                history   - the history buffer (if any) to be associated
  2145.                            with the edit field
  2146.  
  2147.   returns:     The edit field window id.
  2148.   see also:    button, dialog, groupbox, listbox, whenenter
  2149.  
  2150.   example:     dialog "Test Dialog Box" 40 5
  2151.                  // create a dialog box
  2152.                field "Enter string: " 18 2 8 "inital value"
  2153.                  // add an edit field control
  2154.                getdialog
  2155.                  // display the dialog box
  2156.  
  2157.  
  2158.   fileattr?    filename attributes=[adhrsv]
  2159.   ──────────────────────────────────────────────────────────────────────
  2160.   remarks:     Tests if 'filename' has the specified file attributes.
  2161.                Any combination of the following attributes can be
  2162.                specified:
  2163.  
  2164.                  a - archive
  2165.                  d - directory
  2166.                  h - hidden
  2167.                  r - read only
  2168.                  s - system
  2169.                  v - volume
  2170.  
  2171.   returns:     Non-zero if any of the specified attributes are present,
  2172.                otherwise null.
  2173.   see also:    chgfileattr
  2174.  
  2175.   example:     if fileattr? "C:\\FILE.TXT" 'r' then   // test for
  2176.                  say "Read Only!"                     // read-only file
  2177.                else                                   // before saving
  2178.                  savebuf "C:\\FILE.TXT"
  2179.                end 
  2180.  
  2181.  
  2182.   filelist                                                      [Lib][a]
  2183.   ──────────────────────────────────────────────────────────────────────
  2184.   remarks:     Displays a popup menu of buffers which have not been
  2185.                'hidden'. Selecting a buffer will make it the current
  2186.                buffer and display it in the current edit window. The
  2187.                buffer previously displayed in the edit window will not
  2188.                be destroyed.
  2189.   returns:     the bufferid selected, or null if nothing was selected.
  2190.   see also:    hidebuf, nextfile, prevfile
  2191.  
  2192.  
  2193.   filepos      handle position opt=[ace]
  2194.   ──────────────────────────────────────────────────────────────────────
  2195.   remarks:     Changes the current position in the open file specified
  2196.                by 'handle'. The new position depends on the value of
  2197.                'position', the current position, and the options
  2198.                specified. One of the following options may be specified:
  2199.  
  2200.                  a - 'position' is an absolute position in the file (1
  2201.                      is the first position)
  2202.                  c - 'position' is an offset from the current position
  2203.                  e - 'position' is an offset from the end of the file.
  2204.  
  2205.                If no options are specified, then 'a' is assumed.
  2206.  
  2207.   returns:     The new absolute position in the file (1 is the first
  2208.                position) if successful, otherwise null.
  2209.   see also:    closefile, openfile, readfile, writefile
  2210.  
  2211.  
  2212.   fillblock    string mark
  2213.   ──────────────────────────────────────────────────────────────────────
  2214.   remarks:     Fills a mark with the specified string. If 'mark' is not
  2215.                specified, the default markid is assumed.
  2216.   returns:     TRUE if successful, otherwise null.
  2217.   see also:    copystr
  2218.  
  2219.  
  2220.   fillrect     length height char col row
  2221.   ──────────────────────────────────────────────────────────────────────
  2222.   remarks:     Fills a rectangular area in the current video window with
  2223.                the specified character. 'length' and 'height' specify
  2224.                the dimensions of the rectangular area. 'col' and 'row'
  2225.                specify the upper left corner of the rectangle. If 'col'
  2226.                and 'row' are not specified, the current cursor position
  2227.                is assumed.
  2228.  
  2229.   returns:     nothing
  2230.   see also:    gotoscreen, hilite, writeline, writestr
  2231.  
  2232.   example:     xd = getcoord 'x1'
  2233.                yd = getcoord 'y1'
  2234.                hilite xd yd (getcolor text_color) 1 1
  2235.                fillrect xd yd ' ' 1 1
  2236.                  // clear the current video window (fill with blanks)
  2237.  
  2238.  
  2239.   find         searchstring opt=[abfgilnorswx*[~] mark buffer
  2240.   ──────────────────────────────────────────────────────────────────────
  2241.   remarks:     Searches for the specified search string in a buffer,
  2242.                mark, or line. If 'buffer' is not specified, the current
  2243.                buffer is assumed.
  2244.  
  2245.                Various combinations of the following search options may
  2246.                be specified:
  2247.  
  2248.                  a - find all occurrences
  2249.                  b - limit the search to the specified mark
  2250.                  f - search for closed text folds
  2251.                  g - start the search from the beginning or end of the
  2252.                      buffer, mark, or line
  2253.                  i - ignore case during the search
  2254.                  l - limit the search to the current line
  2255.                  n - prevent the cursor position from being updated
  2256.                  o - search for open text folds
  2257.                  r - search in reverse towards the beginning of the
  2258.                      buffer, rather than towards the end of the buffer
  2259.                  s - skip closed text folds
  2260.                  w - search for 'whole words' only
  2261.                  x - check for regular expression characters in the
  2262.                      search string (see 'Regular Expression Searching').
  2263.                  * - force the search to begin at the current cursor
  2264.                      position instead of the next character position
  2265.                  [ - search for the first character also found in the
  2266.                      search string. Character ranges can be specified
  2267.                      (a-zA-Z, etc.)
  2268.                  ~ - search for the first character not found in the
  2269.                      search string. Character ranges can be specified
  2270.                      (a-zA-Z, etc.)
  2271.  
  2272.                If the string is found, and options 'a' and 'n' are not
  2273.                specified, then the cursor is moved to the beginning of
  2274.                the matched string, otherwise the cursor does not move.
  2275.  
  2276.   returns:     If option 'a' is specified, the number of occurrences
  2277.                found is returned, otherwise the length of the matched
  2278.                string is returned. If nothing is found, then null is
  2279.                returned.
  2280.  
  2281.   see also:    replace, search
  2282.  
  2283.   example:     find "apples"
  2284.                  // searches for the string 'apples' (case sensitive)
  2285.                  //   starting at one char to the right of the cursor
  2286.                  //   and searching toward the end of the buffer
  2287.                find "apples" "*ir"
  2288.                  // searches for 'apples' (case insensitive) starting at
  2289.                  //   the cursor position and searching toward the
  2290.                  //   beginning of the buffer
  2291.                find "apples" "bgw"
  2292.                  // searches for 'apples' (whole words only), limiting
  2293.                  //   the search to the current mark and starting from
  2294.                  //   the beginning of the mark
  2295.                find "{apples}|{oranges}" "agx"
  2296.                  // returns the total number of occurrences of the
  2297.                  //   strings 'apples' and 'oranges' (using regular
  2298.                  //   expressions) in the current buffer. The cursor is
  2299.                  //   not moved.
  2300.                find "a-zA-Z" "[gl"
  2301.                  // Moves the cursor to the first alphabetic character
  2302.                  //   in the current line
  2303.                find "^ *$" "agx"
  2304.                  // Counts the number of blank lines in the current
  2305.                  //   buffer using regular expressions
  2306.  
  2307.  
  2308.   findbuf      buffername
  2309.   ──────────────────────────────────────────────────────────────────────
  2310.   remarks:     Finds the first buffer in the buffer list with the
  2311.                specified buffer name. A buffer name can be associated
  2312.                with a buffer by using the 'setbufname' function. For
  2313.                most ordinary editing buffers, the buffer name is usually
  2314.                a fully qualified file name.
  2315.  
  2316.   returns:     The first bufferid with specified name if successful,
  2317.                otherwise null.
  2318.   see also:    getcurrbuf, getprevbuf, setbufname
  2319.  
  2320.   example:     findbuf "C:\\FILE.TXT"
  2321.                  // returns the bufferid of the buffer with the
  2322.                  //   name C:\FILE.TXT
  2323.  
  2324.  
  2325.   finddlg                                                    [Lib][edit]
  2326.   ──────────────────────────────────────────────────────────────────────
  2327.   remarks:     Displays a find dialog box.
  2328.   returns:     the search multi-string (searchstring/options) to be used
  2329.                when searching, or null if nothing is specified.
  2330.   see also:    about, repldlg, scandlg
  2331.  
  2332.  
  2333.   flipcase     string
  2334.   ──────────────────────────────────────────────────────────────────────
  2335.   remarks:     Toggles the case of each character in the string.
  2336.   returns:     the 'flipcased' string.
  2337.   see also:    locase, upcase
  2338.   example:     flipcase "Oranges"             // returns "oRANGES"
  2339.  
  2340.  
  2341.   fmark        opt=[amu]                                     [Lib][fmgr]
  2342.   ──────────────────────────────────────────────────────────────────────
  2343.   remarks:     Marks or unmarks files in the current file manager
  2344.                window. The following options can be specified:
  2345.  
  2346.                  a - unmarks all files when specified with option 'u',
  2347.                      otherwise all files are marked.
  2348.                  m - marks the file or directory at the cursor. If
  2349.                      option 'a' is specified, all files are marked.
  2350.                  u - unmarks the file or directory at the cursor. If
  2351.                      option 'a' is specified, all files and directories
  2352.                      are unmarked.
  2353.  
  2354.                If no options are specified, 'm' is assumed.
  2355.  
  2356.   returns:     nothing
  2357.   see also:    fdobrk, fdomark, fmark?
  2358.  
  2359.   example:     fmark
  2360.                  // mark the file or directory at the cursor
  2361.                fmark "ma"
  2362.                  // mark all files
  2363.                fmark "ua"
  2364.                  // unmark all files and directories
  2365.  
  2366.  
  2367.   fmark?                                                     [Lib][fmgr]
  2368.   ──────────────────────────────────────────────────────────────────────
  2369.   remarks:     Tests if any files or directories are marked in the
  2370.                current file manager window.
  2371.   returns:     Non-zero if a file or directory is marked, otherwise
  2372.                null.
  2373.   see also:    fdobrk, fdomark, fmark?
  2374.  
  2375.  
  2376.   fold?        opt=[contbsl] row buffer
  2377.   ──────────────────────────────────────────────────────────────────────
  2378.   remarks:     This function is a synonym for the 'getfold' function.
  2379.                Calling this function with no arguments is useful for
  2380.                testing whether or not a closed fold exists on the
  2381.                current line in the current buffer.
  2382.   returns:     see the 'getfold' function.
  2383.   see also:    getfold
  2384.  
  2385.  
  2386.   foldblock    opt=[cdkos] mark
  2387.   ──────────────────────────────────────────────────────────────────────
  2388.   remarks:     Manipulates folds within a mark. If 'mark' is not
  2389.                specified, the default markid is assumed. The following
  2390.                options may be specified:
  2391.  
  2392.                  c - Closes open folds in the mark. If option 's' is
  2393.                      also specified, all subfolds are also closed.
  2394.  
  2395.                  d - Destroys folds in the mark. The following options
  2396.                      may also be specified:
  2397.  
  2398.                        s - destroys subfolds
  2399.                        c - destroys closed folds
  2400.                        o - destroys open folds
  2401.  
  2402.                      If option 'd' is specified and options 'o' or 'c'
  2403.                      are not specified, then 'dco' is assumed.
  2404.  
  2405.                  k - Creates a fold spanning the mark. If option 'o' is
  2406.                      also specified, then the fold is created 'open',
  2407.                      otherwise the fold is created 'closed'.
  2408.  
  2409.                  o - Opens closed folds in the mark. If option 's' is
  2410.                      also specified, all subfolds are also opened.
  2411.  
  2412.                If no options are specified, then 'k' is assumed.
  2413.  
  2414.   returns:     the number of folds opened, closed, or destroyed.
  2415.  
  2416.   see also:    actualrow, apparentrow, closefold, createfold,
  2417.                destroyfold, fold?, getfold, openfold
  2418.  
  2419.   example:     foldblock
  2420.                  // creates a new closed fold spanning the default mark
  2421.                foldblock 'ds'
  2422.                  // destroys all open and closed folds and subfolds
  2423.                  //   in the default mark
  2424.                foldblock 'o'
  2425.                  // opens all top level closed folds in the default mark
  2426.                foldblock 'cs'
  2427.                  // closes all open folds and subfolds in the default
  2428.                  //   mark
  2429.  
  2430.  
  2431.   foldline     opt=[u]                                       [Ext][edit]
  2432.   ──────────────────────────────────────────────────────────────────────
  2433.   remarks:     Folds or unfolds the current line in the current buffer.
  2434.                If option 'u' is specified, the line is unfolded,
  2435.                otherwise the line is folded.
  2436.   returns:     nothing
  2437.  
  2438.   see also:    actualrow, apparentrow, closefold, createfold,
  2439.                destroyfold, fold?, foldblock, getfold, openfold
  2440.  
  2441.  
  2442.   forceext     filename extension                               [Ext][a]
  2443.   ──────────────────────────────────────────────────────────────────────
  2444.   remarks:     Forces a filename to have the specified extension.
  2445.  
  2446.   returns:     a filename with the specified extension.
  2447.   see also:    defext
  2448.  
  2449.   example:     forceext "file" "doc"        // returns 'file.doc'
  2450.                forceext "file.txt" "doc"    // returns 'file.doc'
  2451.  
  2452.  
  2453.   formatblock  leftmarg rightmarg opt=[kjr] mark
  2454.   ──────────────────────────────────────────────────────────────────────
  2455.   remarks:     Reformats marked text. If 'mark' is not specified, the
  2456.                default markid is assumed.
  2457.  
  2458.                For column marks, the text is reformatted to fit between
  2459.                the left and right edges of the mark. For all other
  2460.                marks, the text is reformatted to fit between 'leftmarg'
  2461.                and 'rightmarg'.
  2462.  
  2463.                Any combination of the following options may be
  2464.                specified:
  2465.  
  2466.                  j - the text is both left and right justified (blanks
  2467.                      are inserted to pad text to the right margin)
  2468.                  k - attempts to preserve spaces during the reformat
  2469.                  r - maintains the indenting relationship between the
  2470.                      first and second line of the text
  2471.  
  2472.   returns:     TRUE if successful, otherwise null.
  2473.   see also:    justblock
  2474.  
  2475.   example:     formatblock 5 50 "kr"
  2476.                  // reformats the text within a line mark to fit between
  2477.                  //   columns 5 and 50, preserving spaces and
  2478.                  //   maintaining the relationship between the first
  2479.                  //   and second lines in the mark.
  2480.  
  2481.  
  2482.   frame?       components window
  2483.   ──────────────────────────────────────────────────────────────────────
  2484.   remarks:     Tests if the specified window frame components are
  2485.                present. If 'window' is not specified, the current window
  2486.                is assumed. See the 'setframe' function for a list of
  2487.                window component options.
  2488.  
  2489.   returns:     Non-zero if any of the specified components are present.
  2490.   see also:    setframe
  2491.  
  2492.   example:     frame? "bn"
  2493.                  // returns non-zero if the current window has a
  2494.                  //   border or a north title bar
  2495.  
  2496.  
  2497.   fscanstr                                                   [Lib][fmgr]
  2498.   ──────────────────────────────────────────────────────────────────────
  2499.   remarks:     Returns the scan string (if any) used to generate the
  2500.                current file manager window.
  2501.   returns:     a scan search string in multi-string format
  2502.   see also:    ftype?
  2503.  
  2504.  
  2505.   fsort        opt=[ednos]                                      [Lib][a]
  2506.   ──────────────────────────────────────────────────────────────────────
  2507.   remarks:     Sorts files and directories in the current file manager
  2508.                window. One of the following options can be specified:
  2509.  
  2510.                  d - sorts by date and time (descending order)
  2511.                  e - sorts by file extension
  2512.                  n - sorts by file name
  2513.                  o - arrange in the DOS default order
  2514.                  s - sorts by file size (descending order)
  2515.  
  2516.                If no options are specified, 'o' is assumed.
  2517.  
  2518.   returns:     nothing
  2519.   see also:    askfile
  2520.  
  2521.   example:     fsort 'n'            // sort by file name
  2522.                fsort 's'            // sort by size (descending)
  2523.  
  2524.  
  2525.   ftype?       opt=[is]                                      [Lib][fmgr]
  2526.   ──────────────────────────────────────────────────────────────────────
  2527.   remarks:     Tests the current file manager window 'type'. One of the
  2528.                following options can be specified:
  2529.  
  2530.                  i - an 'include file' picklist
  2531.                  s - generated by the 'file scanning' process
  2532.  
  2533.   returns:     TRUE if successful, otherwise null.
  2534.   see also     fscanstr
  2535.  
  2536.   example:     if ftype 's' then    // is this a scan window?
  2537.                  .
  2538.                  .
  2539.                end 
  2540.  
  2541.  
  2542.   function?    funexpression objexpression
  2543.   ──────────────────────────────────────────────────────────────────────
  2544.   remarks:     Tests for the existence of a function defined by
  2545.                'funexpression' in the object defined by 'objexpression'.
  2546.                If 'objexpression' is not specified, then the current
  2547.                object is assumed. The inheritance hierarchy of the
  2548.                specified object may also be searched for the function.
  2549.  
  2550.   returns:     Non-zero if the function exists, otherwise null.
  2551.   see also:    lookup, set, setobj, setx, setxfun, setxobj, unsetx
  2552.  
  2553.   example:     function? "function?"
  2554.                  // returns non-zero
  2555.                function? "markword" "edit"
  2556.                  // tests if the 'markword' function is accessible
  2557.                  //   from within the object 'edit'
  2558.  
  2559.  
  2560.   fup                                                        [Lib][fmgr]
  2561.   ──────────────────────────────────────────────────────────────────────
  2562.   remarks:     Reloads the current file manager window with the parent
  2563.                directory of the currently displayed directory.
  2564.   returns:     TRUE if successful, otherwise null.
  2565.   see also:    open, reopen
  2566.  
  2567.  
  2568.   getattr      x y
  2569.   ──────────────────────────────────────────────────────────────────────
  2570.   remarks:     Gets the color at the specified x,y position in the
  2571.                current video output window. If x or y are not specified,
  2572.                the current video cursor position is assumed.
  2573.  
  2574.   returns:     the color at x,y
  2575.   see also:    fillrect, getstr, getx, gety, gotoxy, gotoscreen,
  2576.                hilite, writeline, writestr
  2577.  
  2578.  
  2579.   getbinarylen  buffer
  2580.   ──────────────────────────────────────────────────────────────────────
  2581.   remarks:     Gets the binary line length that was used to load a
  2582.                binary buffer. If 'buffer' is null or not specified, then
  2583.                the current buffer is assumed. This function can also be
  2584.                used to test if a buffer is a binary buffer.
  2585.   returns:     The binary line length associated with a buffer.
  2586.   see also:    createbbuf, insertbuf, loadbuf
  2587.  
  2588.  
  2589.   getbookbuf   bookmark
  2590.   ──────────────────────────────────────────────────────────────────────
  2591.   remarks:     Retrieves the buffer associated with a bookmark. If
  2592.                'bookmark' is not specified, the current 'bookmark' in
  2593.                the current buffer is assumed.
  2594.   returns:     The bufferid associated with the bookmark if successful,
  2595.                otherwise null.
  2596.   see also:    getcurrbook
  2597.  
  2598.  
  2599.   getbootpath 
  2600.   ──────────────────────────────────────────────────────────────────────
  2601.   remarks:     Retrieves the editor 'boot' path. The boot path is the
  2602.                location of the editor .EXE file currently executing.
  2603.   returns:     The boot path.
  2604.   see also:    bootpath, setbootpath
  2605.  
  2606.  
  2607.   getborder    opt=[xyt] window
  2608.   ──────────────────────────────────────────────────────────────────────
  2609.   remarks:     Retrieves information about a window border. If 'window'
  2610.                is not specified, the current window is assumed. One of
  2611.                the following options can be specified:
  2612.  
  2613.                  x - returns the width of the left and right borders
  2614.                  y - returns the width of the top and bottom borders
  2615.                  t - returns the border type, See the 'setborder'
  2616.                      function for a description of border types.
  2617.  
  2618.   returns:     Information based on the options specified.
  2619.   see also:    setborder
  2620.  
  2621.  
  2622.   getbotwin 
  2623.   ──────────────────────────────────────────────────────────────────────
  2624.   remarks:     Gets the bottommost window on the screen.
  2625.   returns:     the windowid of the bottommost window on the screen
  2626.   see also:    getcurrwin
  2627.  
  2628.  
  2629.   getbufname   buffer
  2630.   ──────────────────────────────────────────────────────────────────────
  2631.   remarks:     Retrieves the descriptive name associated with a buffer.
  2632.                If 'buffer' is null or not specified, then the current
  2633.                buffer is assumed.
  2634.  
  2635.                A buffer name can be associated with a buffer by using
  2636.                the 'setbufname' function. For most ordinary editing
  2637.                buffers, the buffer name is usually a fully qualified
  2638.                file name.
  2639.  
  2640.   returns:     The descriptive name associated with a buffer.
  2641.   see also:    findbuf, setbufname
  2642.  
  2643.  
  2644.   getchar      col row buffer
  2645.   ──────────────────────────────────────────────────────────────────────
  2646.   remarks:     Retrieves the character at the specified column and row
  2647.                in the buffer 'buffer'. If 'buffer' is null or not
  2648.                specified, then the current buffer is assumed. If 'col'
  2649.                and 'row' are not specified, then the character at the
  2650.                cursor is retrieved. If the column is beyond the end of a
  2651.                line, null is returned.
  2652.  
  2653.   returns:     A one-character string if successful, otherwise null.
  2654.   see also:    gettext
  2655.  
  2656.   example:     getchar
  2657.                  // returns the character at the cursor in the
  2658.                  //   current buffer
  2659.                getchar 3 5
  2660.                  // returns the character at column 3, line 5 in the
  2661.                  //   current buffer
  2662.                getchar 1 1 "abc"
  2663.                  // returns the first character in the buffer "abc"
  2664.  
  2665.  
  2666.   getchild     window opt=[bt]
  2667.   ──────────────────────────────────────────────────────────────────────
  2668.   remarks:     Gets a child window for a window. If 'window' is not
  2669.                specified, the current window is assumed. The following
  2670.                options may be specified:
  2671.  
  2672.                  b - returns the bottommost child window
  2673.                  t - returns the topmost child window
  2674.  
  2675.   returns:     the windowid of the topmost or bottommost child window if
  2676.                successful, otherwise null.
  2677.  
  2678.   see also:    getparent, setnextwin, setparent, setprevwin
  2679.  
  2680.  
  2681.   getcol       buffer
  2682.   ──────────────────────────────────────────────────────────────────────
  2683.   remarks:     Gets the column position of the cursor. If 'buffer is
  2684.                null or not specified, the current buffer is assumed.
  2685.   returns:     The current cursor column position.
  2686.   see also:    getrow
  2687.  
  2688.  
  2689.   getcolor     component window
  2690.   ──────────────────────────────────────────────────────────────────────
  2691.   remarks:     Gets the color of a window component. If 'window' is not
  2692.                specified, the current window is assumed. See the
  2693.                'setcolor' function for 'component' values.
  2694.  
  2695.   returns:     the color of the specified window component.
  2696.   see also:    setcolor
  2697.  
  2698.   example:     getcolor 5
  2699.                  // returns the text color of the current window
  2700.                getcolor 6
  2701.                  // returns the mark color of the current window
  2702.  
  2703.  
  2704.   getcoord     opt=[ltrb1xyd] window
  2705.   ──────────────────────────────────────────────────────────────────────
  2706.   remarks:     Retrieves the coordinates and dimensions of a window. If
  2707.                'window' is not specified, the current window is assumed.
  2708.  
  2709.                The following options may be specified:
  2710.  
  2711.                  l - returns the virtual left edge of the window
  2712.                  t - returns the virtual top edge of the window
  2713.                  r - returns the virtual right edge of the window
  2714.                  b - returns the virtual bottom edge of the window
  2715.  
  2716.                  x - returns the window width (the width of the client
  2717.                      area if option '1' is specified)
  2718.                  y - returns the window height (the height of the client
  2719.                      area if option '1' is specified)
  2720.                  d - returns the height or width of the 'visible'
  2721.                      portion of the window on the screen, when used with
  2722.                      the 'x' or 'y' options above
  2723.  
  2724.                  0 - returns a main window coordinate
  2725.                  1 - returns a client window coordinate. If not
  2726.                      specified, main window coordinates are assumed.
  2727.  
  2728.  
  2729.   returns:     Information based on the options specified.
  2730.   see also:    movewindow, sizewindow
  2731.  
  2732.   example:     getcoord "l"
  2733.                  // return the virtual coordinate of the left edge of
  2734.                  //   the current window
  2735.                getcoord "1xd"
  2736.                  // returns the visible width of the current window
  2737.                  //   client area on the screen
  2738.  
  2739.  
  2740.   getcurrbook  buffer
  2741.   ──────────────────────────────────────────────────────────────────────
  2742.   remarks:     Retrieves the current bookmark for the specified buffer.
  2743.                If 'buffer' is null or not specified, the current buffer
  2744.                is assumed.
  2745.   returns:     The current bookmarkid for a buffer.
  2746.   see also:    currbook
  2747.  
  2748.  
  2749.   getcurrbuf 
  2750.   ──────────────────────────────────────────────────────────────────────
  2751.   remarks:     Gets the current buffer at the top of the buffer list.
  2752.   returns:     The current bufferid if successful, otherwise null.
  2753.   see also:    findbuf, getprevbuf, gotobuf
  2754.  
  2755.  
  2756.   getcurrcurs  buffer
  2757.   ──────────────────────────────────────────────────────────────────────
  2758.   remarks:     Retrieves the current cursorid for the specified buffer.
  2759.                If 'buffer' is null or not specified, the current buffer
  2760.                is assumed.
  2761.   returns:     The current cursorid for a buffer.
  2762.   see also:    currcursor, destroycursor, setcursor
  2763.  
  2764.  
  2765.   getcurrmark  buffer
  2766.   ──────────────────────────────────────────────────────────────────────
  2767.   remarks:     Retrieves the current markid for the specified buffer. If
  2768.                'buffer' is null or not specified, the current buffer is
  2769.                assumed.
  2770.   returns:     The current markid for a buffer.
  2771.   see also:    currmark
  2772.  
  2773.  
  2774.   getcurrobj 
  2775.   ──────────────────────────────────────────────────────────────────────
  2776.   remarks:     Gets the current (executing) object where this function
  2777.                is called.
  2778.   returns:     The current object.
  2779.   see also:    object
  2780.  
  2781.  
  2782.   getcurrpath  drive
  2783.   ──────────────────────────────────────────────────────────────────────
  2784.   remarks:     Retrieves the current path for the specified disk drive.
  2785.                If 'drive' is not specified, the current drive is
  2786.                assumed. If a drive is specified, it must be specified
  2787.                with a colon: 'C:', 'D:', etc.
  2788.   returns:     The current fully qualified path for the specified drive.
  2789.   see also:    currpath
  2790.  
  2791.  
  2792.   getcurrwin   opt=[c]
  2793.   ──────────────────────────────────────────────────────────────────────
  2794.   remarks:     Gets the current (topmost) window on the screen. If no
  2795.                options are specified, the topmost non-child window is
  2796.                returned. If option 'c' is specified, the topmost window
  2797.                is returned, whether or not the window is a child window.
  2798.   returns:     the current windowid
  2799.   see also:    getbotwin, gotowindow
  2800.  
  2801.  
  2802.   getcursbuf   cursor
  2803.   ──────────────────────────────────────────────────────────────────────
  2804.   remarks:     Retrieves the buffer associated with a cursor. If
  2805.                'cursor' is not specified, the current 'cursor' in the
  2806.                current buffer is assumed.
  2807.   returns:     The bufferid associated with the cursor if successful,
  2808.                otherwise null.
  2809.   see also:    getcurrbook
  2810.  
  2811.  
  2812.   getcurswin   cursor
  2813.   ──────────────────────────────────────────────────────────────────────
  2814.   remarks:     Retrieves the windowid, if any, associated with a cursor.
  2815.                If 'cursor' is not specified, the current 'cursor' in the
  2816.                current buffer is assumed.
  2817.   returns:     The windowid associated with a cursor if successful,
  2818.                otherwise null.
  2819.   see also:    getwincurs
  2820.  
  2821.  
  2822.   getdate 
  2823.   ──────────────────────────────────────────────────────────────────────
  2824.   remarks:     Gets the current date in the format set by the
  2825.                'international' function.
  2826.   returns:     The current date.
  2827.   see also:    getrawtime, gettime, international
  2828.  
  2829.  
  2830.   getdialog    ref1 ref2 ...                                    [Lib][a]
  2831.   ──────────────────────────────────────────────────────────────────────
  2832.   remarks:     Displays the current dialog box as a 'modal' dialog box
  2833.                (any existing windows on the screen cannot be placed on
  2834.                top of a modal dialog box). This function does not return
  2835.                until the dialog box has been closed.
  2836.  
  2837.                The current dialog box control values are returned in the
  2838.                variables (ref1, ref2, etc.) passed by reference to this
  2839.                function. The order of the return values is the same
  2840.                order in which the dialog box controls were defined.
  2841.  
  2842.                The following values are returned for each control:
  2843.  
  2844.                  button    - null
  2845.                  field     - the contents of the edit field
  2846.                  group     - the checked items in the group box, in
  2847.                              'initvalue' format (see the 'groupbox'
  2848.                              function)
  2849.                  listbox   - the line at the cursor within the list box
  2850.  
  2851.   returns:     The title of the button pressed to close the window. If
  2852.                <enter> is pressed then 'Ok' is returned. If <esc> is
  2853.                pressed, then null is returned.
  2854.  
  2855.                If the 'close' function is called from within a dialog
  2856.                box event-handling function (defined with 'whenenter' or
  2857.                'whenselect'), then the first argument passed to 'close'
  2858.                is returned.
  2859.  
  2860.                Dialog box control values are also returned in variables
  2861.                passed by reference to this function.
  2862.  
  2863.   see also:    dialog, showdialog, whenenter, whenselect
  2864.  
  2865.   example:     dialog "Test Dialog Box" 40 17
  2866.                field "Enter string1: " 18 2 8
  2867.                field "Enter string2: " 18 4 8
  2868.                var field1
  2869.                var field2
  2870.                // display the dialog box, and get return values
  2871.                if (getdialog ref field1 ref field2) == 'Ok' then 
  2872.                  :
  2873.                  :
  2874.                end 
  2875.  
  2876.  
  2877.   getdisk      opt=[cfmnv] drive
  2878.   ──────────────────────────────────────────────────────────────────────
  2879.   remarks:     Retrieves information about the specified disk drive. If
  2880.                a drive is not specified, the current drive is assumed.
  2881.                The following options can be specified:
  2882.  
  2883.                  c - returns the total drive capacity
  2884.                  f - returns the free space on the drive
  2885.                  m - returns a string composed of all available disk
  2886.                      drive letters. If option 'n' is also specified,
  2887.                      each drive letter is followed by '2' if a network
  2888.                      drive or '1' if not a network drive
  2889.                  v - returns the volume name for the drive
  2890.  
  2891.   returns:     Information based on the specified options.
  2892.   see also:    getcurrpath
  2893.  
  2894.   example:     getdisk 'f'
  2895.                  // returns the free space on the current drive
  2896.                getdisk 'v' "c:"
  2897.                  // returns the volume name for drive C
  2898.  
  2899.  
  2900.   getenv       environvariable
  2901.   ──────────────────────────────────────────────────────────────────────
  2902.   remarks:     Gets the value of the specified environment variable.
  2903.                'environvariable' must be in upper case.
  2904.  
  2905.   returns:     The value of an environment variable if successful,
  2906.                otherwise null.
  2907.   see also:    getos
  2908.  
  2909.   example:     getenv "PATH"        // returns the DOS 'PATH' string
  2910.  
  2911.  
  2912.   geterror     opt=[cfkls]
  2913.   ──────────────────────────────────────────────────────────────────────
  2914.   remarks:     Retrieves error information after compiling macro source
  2915.                code with the 'compilemacro' or 'eval' functions, or
  2916.                executing macros with the 'runmacro' and 'includemacro'
  2917.                functions. One of the following options can be specified:
  2918.  
  2919.                  c - error code (zero if successful)
  2920.                  f - source filename where the error occurred
  2921.                  k - column in the source file where the error occurred
  2922.                  l - line in the source file where the error occurred
  2923.                  s - an error information string.  The string contents
  2924.                      depend on the error code (see the 'compilemacro'
  2925.                      function for additional information).
  2926.  
  2927.                If no options are specified, 'c' is assumed.
  2928.  
  2929.   returns:     Information based on the options specified.
  2930.   see also:    compilemacro, eval, includemacro, runmacro
  2931.  
  2932.  
  2933.   geteventcount 
  2934.   ──────────────────────────────────────────────────────────────────────
  2935.   remarks:     Gets the number of real physical events (keyboard and
  2936.                mouse) which have occurred in the current editing
  2937.                session.
  2938.   returns:     The number of real events.
  2939.   see also:    event?, keyhit?, shiftkey?
  2940.  
  2941.  
  2942.   geteventobj 
  2943.   ──────────────────────────────────────────────────────────────────────
  2944.   remarks:     Gets the current event object. The current event object
  2945.                is where events are dispatched by the editor.
  2946.   returns:     The current event objectid.
  2947.   see also:    eventobject
  2948.  
  2949.  
  2950.   getexe 
  2951.   ──────────────────────────────────────────────────────────────────────
  2952.   remarks:     Gets the name of the currently executing editor .EXE
  2953.                file, without path information or the .EXE extension.
  2954.   returns:     The editor .EXE name.
  2955.   see also:    getversion  getos
  2956.  
  2957.  
  2958.   getffile                                                   [Lib][fmgr]
  2959.   ──────────────────────────────────────────────────────────────────────
  2960.   remarks:     Gets the fully qualified file or directory name on the
  2961.                current line in the current file manager window.
  2962.   returns:     a fully qualified file or directory name.
  2963.   see also:    openf
  2964.  
  2965.  
  2966.   getfold      opt=[contbsl] row buffer
  2967.   ──────────────────────────────────────────────────────────────────────
  2968.   remarks:     Returns information about a fold at the specified row in
  2969.                a buffer. If 'buffer' is null or not specified, then the
  2970.                current buffer is assumed. If 'row' is not specified,
  2971.                then the line at the cursor is assumed. The following
  2972.                options may be specified:
  2973.  
  2974.                  l - Returns the line number of the top or bottom row in
  2975.                      an open fold. The following options may also be
  2976.                      specified:
  2977.  
  2978.                        t - returns the top line number
  2979.                        b - returns the bottom line number
  2980.  
  2981.                      If options 't' and 'b' are not specified, then 't'
  2982.                      is assumed.
  2983.  
  2984.                  n - Returns the total number of folds in the buffer
  2985.                      ('row' is ignored). The following options may be
  2986.                      specified:
  2987.  
  2988.                        c - returns the total number of closed folds
  2989.                        o - returns the total number of open folds
  2990.  
  2991.                      If options 'c' and 'o' are not specified, then 'co'
  2992.                      (both open and closed folds) is assumed.
  2993.  
  2994.                  s - returns the number of lines in the closed fold at
  2995.                      the specified row.
  2996.  
  2997.                If none of the above options are specified, then the
  2998.                following options may be used to test whether or not the
  2999.                current line is on a fold boundary:
  3000.  
  3001.                  c - returns true if the specified row is on the top or
  3002.                      bottom line of a closed fold.
  3003.                  o - returns true if the specified row is on the top or
  3004.                      bottom line of an open fold.
  3005.                  t - returns true if the specified row is on the top
  3006.                      line of a fold.
  3007.                  b - returns true if the specified row is on the bottom
  3008.                      line of a fold.
  3009.  
  3010.                If no options are specified, then 'ct' is assumed.
  3011.  
  3012.   returns:     Information based on the options specified.
  3013.  
  3014.   see also:    actualrow, apparentrow, closefold, createfold,
  3015.                destroyfold, fold?, foldblock, openfold
  3016.  
  3017.   example:     getfold
  3018.                  // returns true if a closed fold exists at the cursor
  3019.                  //   in the current buffer
  3020.                getfold 'ot'
  3021.                  // returns true if the cursor is on the top line of
  3022.                  //   an open fold
  3023.                getfold 'ns'
  3024.                  // returns the total number of closed folds in the
  3025.                  //   current buffer
  3026.                getfold 's'
  3027.                  // returns the number of lines in the closed fold at
  3028.                  //   the cursor in the current buffer
  3029.  
  3030.  
  3031.   gethistname                                                      [Lib]
  3032.   ──────────────────────────────────────────────────────────────────────
  3033.   remarks:     Gets the history bufferid for the current prompt. This
  3034.                function is only for use within prompts.
  3035.   returns:     the history bufferid for the current prompt.
  3036.   see also:    addhistory, askhistory, gethiststr, pophistory
  3037.  
  3038.  
  3039.   gethiststr   historybuffer                                    [Lib][a]
  3040.   ──────────────────────────────────────────────────────────────────────
  3041.   remarks:     Gets the most recently used (or added) string for the
  3042.                specified history buffer.
  3043.  
  3044.   returns:     the most recently used history string.
  3045.   see also:    addhistory, askhistory, pophistory
  3046.  
  3047.   example:     addhistory "_find" "apples"
  3048.                say (gethiststr "_find")       // displays 'apples'
  3049.  
  3050.  
  3051.   getkey       opt=[ds]
  3052.   ──────────────────────────────────────────────────────────────────────
  3053.   remarks:     Waits for a key to be entered, bypassing the editor event
  3054.                queue. The display is updated if needed. The following
  3055.                options may be specified:
  3056.  
  3057.                  d - disable updating of the display
  3058.                  s - include scancodes for non-function (typeable) keys
  3059.  
  3060.   returns:     A keycode for the key pressed.
  3061.   see also:    getkeycode, getkeyname
  3062.  
  3063.   example:     say "you pressed keycode: " + getkey
  3064.  
  3065.  
  3066.   getkeycode   keyname
  3067.   ──────────────────────────────────────────────────────────────────────
  3068.   remarks:     Gets the key code for the specified key name.
  3069.  
  3070.   returns:     a key code
  3071.   see also:    getkeyname
  3072.  
  3073.   example:     say "The keycode for <ctrl b> is: " +
  3074.                     (getkeycode "<ctrl b>")
  3075.  
  3076.  
  3077.   getkeyname   keycode
  3078.   ──────────────────────────────────────────────────────────────────────
  3079.   remarks:     Gets the key name for the specified key code.
  3080.   returns:     a key name
  3081.   see also:    getkeycode
  3082.  
  3083.   example:     say "You pressed the key: " + (getkeyname (getkey))
  3084.  
  3085.  
  3086.   getlinebeg   row buffer
  3087.   ──────────────────────────────────────────────────────────────────────
  3088.   remarks:     Gets the column of the first non-blank character in a
  3089.                line. If 'buffer' is null or not specified, then the
  3090.                current buffer is assumed. If 'row' is not specified,
  3091.                then the line at the cursor is assumed.
  3092.  
  3093.   returns:     The column of the first non-blank character, otherwise
  3094.                null.
  3095.   see also:    getlinelen
  3096.  
  3097.   example:     getlinebeg
  3098.                  // returns the first non-blank column of the current
  3099.                  //   line in the current buffer
  3100.                getlinelen 1
  3101.                  // returns the first non-blank column of the first
  3102.                  //   line in the current buffer
  3103.                getlinebeg 5 "abc"
  3104.                  // returns the first non-blank column of line 5 in
  3105.                  //   buffer "abc"
  3106.  
  3107.  
  3108.   getlinelen   row buffer
  3109.   ──────────────────────────────────────────────────────────────────────
  3110.   remarks:     Gets the length of a line. If 'buffer' is null or not
  3111.                specified, then the current buffer is assumed. If 'row'
  3112.                is not specified, then the line at the cursor is assumed.
  3113.  
  3114.   returns:     For non-binary buffers, the position of the last
  3115.                non-blank character in the line is returned. For binary
  3116.                buffers, the position of the last character in the line
  3117.                is returned.
  3118.  
  3119.   see also:    getbinarylen, getlinebeg
  3120.  
  3121.   example:     getlinelen
  3122.                  // returns the length of the line at the cursor in
  3123.                  //   the current buffer
  3124.                getlinelen 1
  3125.                  // returns the length of the first line in the
  3126.                  //   current buffer
  3127.                getlinelen 5 "abc"
  3128.                  // returns the length of line 5 in the buffer "abc"
  3129.  
  3130.  
  3131.   getlines     buffer
  3132.   ──────────────────────────────────────────────────────────────────────
  3133.   remarks:     Gets the total number of lines in a buffer. If 'buffer'
  3134.                is null or not specified, then the current buffer is
  3135.                assumed. A buffer will always have at least one line.
  3136.   returns:     The number of lines in a buffer.
  3137.  
  3138.  
  3139.   getloadinfo  opt=[dfst]
  3140.   ──────────────────────────────────────────────────────────────────────
  3141.   remarks:     Obtains information about the file or directory which was
  3142.                loaded by the most recent 'loadbuf' or 'insertbuf'
  3143.                function call. One of the following options can be
  3144.                specified:
  3145.  
  3146.                  d - return the number of subdirectories for a directory
  3147.                        load
  3148.                  f - return the number of files for a directory load
  3149.                  s - return total size of all files for a directory load
  3150.                  t - return the load type: 0 for files, 1 for
  3151.                        directories
  3152.  
  3153.   returns:     Information based on the options specified.
  3154.   see also:    insertbuf, loadbuf
  3155.  
  3156.  
  3157.   getmarkbot   mark
  3158.   ──────────────────────────────────────────────────────────────────────
  3159.   remarks:     Gets the bottommost line of a mark. If 'mark' is not
  3160.                specified, the default markid is assumed.
  3161.   returns:     The bottommost line of the mark if successful, otherwise
  3162.                null.
  3163.   see also:    getmarkleft, getmarkright, getmarktop
  3164.  
  3165.  
  3166.   getmarkbuf   mark
  3167.   ──────────────────────────────────────────────────────────────────────
  3168.   remarks:     Retrieves the buffer associated with a mark. If 'mark' is
  3169.                not specified, the default markid is assumed.
  3170.   returns:     The bufferid of the buffer associated with the mark
  3171.                if successful, otherwise null.
  3172.   see also:    getcurrmark
  3173.  
  3174.  
  3175.   getmarkcols  mark
  3176.   ──────────────────────────────────────────────────────────────────────
  3177.   remarks:     Gets the width of a mark. For line marks, 16001 is
  3178.                returned. For column, character, and stream marks, the
  3179.                end column minus the start column plus 1 is returned. If
  3180.                'mark' is not specified, the default markid is assumed.
  3181.   returns:     The mark width if successful, otherwise null.
  3182.   see also:    getmarkrows
  3183.  
  3184.  
  3185.   getmarkleft  mark
  3186.   ──────────────────────────────────────────────────────────────────────
  3187.   remarks:     Gets the leftmost column of a mark. For line marks, zero
  3188.                is returned. For character and stream marks, the starting
  3189.                column of the mark is returned. If 'mark' is not
  3190.                specified, the default markid is assumed.
  3191.   returns:     The leftmost column of the mark if successful, otherwise
  3192.                null.
  3193.   see also:    getmarkbot, getmarkright, getmarktop
  3194.  
  3195.  
  3196.   getmarkright  mark
  3197.   ──────────────────────────────────────────────────────────────────────
  3198.   remarks:     Gets the rightmost column of a mark. For line marks,
  3199.                16001 is returned. For character and stream marks, the
  3200.                ending column of the mark is returned. If 'mark' is not
  3201.                specified, the default markid is assumed.
  3202.   returns:     The rightmost column of the mark if successful, otherwise
  3203.                null.
  3204.   see also:    getmarkbot, getmarkleft, getmarktop
  3205.  
  3206.  
  3207.   getmarkrows  mark
  3208.   ──────────────────────────────────────────────────────────────────────
  3209.   remarks:     Gets the mark height (the number of lines spanned by the
  3210.                mark). If 'mark' is not specified, the default markid is
  3211.                assumed.
  3212.   returns:     The mark height if successful, otherwise null.
  3213.   see also:    getmarkcols
  3214.  
  3215.  
  3216.   getmarktop   mark
  3217.   ──────────────────────────────────────────────────────────────────────
  3218.   remarks:     Gets the topmost line of a mark.  If 'mark' is not
  3219.                specified, the default markid is assumed.
  3220.   returns:     The topmost line of the mark if successful, otherwise
  3221.                null.
  3222.   see also:    getmarkbot, getmarkleft, getmarkright
  3223.  
  3224.  
  3225.   getmarktype  mark
  3226.   ──────────────────────────────────────────────────────────────────────
  3227.   remarks:     Gets the mark type (column, line, character, or stream).
  3228.                If 'mark' is not specified, the default markid is
  3229.                assumed.
  3230.  
  3231.   returns:     A one-byte string indicating the mark type:
  3232.                  l - line mark
  3233.                  k - column mark
  3234.                  c - character mark
  3235.                  s - stream mark
  3236.  
  3237.   see also:    markchar, markcolumn, markline, markstream
  3238.  
  3239.  
  3240.   getmarkuse 
  3241.   ──────────────────────────────────────────────────────────────────────
  3242.   remarks:     Gets the default markid.
  3243.   returns:     the default markid.
  3244.   see also:    usemark
  3245.  
  3246.  
  3247.   getmenu      opt=[hwnxym] row menubuffer
  3248.   ──────────────────────────────────────────────────────────────────────
  3249.   remarks:     Retrieves information about a menu buffer created with
  3250.                the 'menu' keyword. 'menubuffer' specifies the name of
  3251.                the menu. If 'menubuffer' is null or not specified, then
  3252.                the current buffer is assumed. If 'row' is not specified,
  3253.                then the line at the cursor is assumed.
  3254.  
  3255.                One of the following options can be specified.
  3256.  
  3257.                  h - return the menu highlight column for the row
  3258.                  m - return TRUE if the buffer is a menu buffer
  3259.                  n - return the menu item description text
  3260.                  w - return the menu width
  3261.                  y - return the cursor row at last menu exit
  3262.                  x - return the menu item compiled macro code (if any)
  3263.  
  3264.   returns:     Information based on the options specified.
  3265.   see also:    menu
  3266.  
  3267.  
  3268.   getmenubar   opt=[cfnosw] menubar[1-4] item window
  3269.   ──────────────────────────────────────────────────────────────────────
  3270.   remarks:     Retrieves information about a menu bar. If 'window' is
  3271.                not specified, the current window is assumed.
  3272.  
  3273.                'menubar' (1-4) specifies one of the 4 possible menu bars
  3274.                for a window. If 'menubar' is not specified, 1 is assumed
  3275.                (the primary menu bar).
  3276.  
  3277.                'item' is an integer specifying the relative position of
  3278.                a menu bar item from the beginning of the menu bar. If
  3279.                'item' is not specified, the current highlighted menu bar
  3280.                item is assumed.
  3281.  
  3282.                The following options may be specified:
  3283.  
  3284.                  c - returns the highlighted character for a menu bar
  3285.                      item
  3286.                  f - returns the menu bar item function string
  3287.                  n - returns the total number of menu bar items
  3288.                  o - returns the offset (in columns) of the menu bar
  3289.                      item description text from the beginning of the
  3290.                      menu bar
  3291.                  s - returns the menu bar item description text
  3292.                  w - returns the menu bar width (for west menus only)
  3293.  
  3294.                If no options are specified, the current highlighted
  3295.                menu bar item is returned.
  3296.  
  3297.   returns:     Information based on the options specified
  3298.   see also:    hilitebar, menubar
  3299.  
  3300.   example:     getmenubar
  3301.                  // returns the currently highlighted item on the
  3302.                  //   primary menu bar (tests if an item is highlighted)
  3303.                getmenubar 'n' 2
  3304.                  // returns the total number of menu bar items for
  3305.                  //   menu bar 2
  3306.                getmenubar 's' '' 3
  3307.                  // returns the description for the third menu bar item
  3308.                  //   on the primary menu bar
  3309.  
  3310.  
  3311.   getmousex    opt=[e]
  3312.   ──────────────────────────────────────────────────────────────────────
  3313.   remarks:     Gets the virtual X coordinate of the mouse pointer. If
  3314.                option 'e' is specified, the X coordinate where the last
  3315.                mouse event occurred is returned.
  3316.   returns:     the mouse virtual X coordinate
  3317.   see also:    getmousex, mousepos
  3318.  
  3319.  
  3320.   getmousey    opt=[e]
  3321.   ──────────────────────────────────────────────────────────────────────
  3322.   remarks:     Gets the virtual Y coordinate of the mouse pointer. If
  3323.                option 'e' is specified, the Y coordinate where the last
  3324.                mouse event occurred is returned.
  3325.   returns:     the mouse virtual Y coordinate
  3326.   see also:    getmousey, mousepos
  3327.  
  3328.  
  3329.   getnextwin   window opt=[z]
  3330.   ──────────────────────────────────────────────────────────────────────
  3331.   remarks:     Gets the window after 'window' the window list. If
  3332.                'window' is not specified, the current window is assumed.
  3333.                If option 'z' is specified, any window may be returned,
  3334.                otherwise only a window at the same child-level as
  3335.                'window' is returned.
  3336.   returns:     the windowid of the next window if successful, otherwise
  3337.                null.
  3338.   see also:    getchild, getprevwin
  3339.  
  3340.  
  3341.   getos        opt=[vm]
  3342.   ──────────────────────────────────────────────────────────────────────
  3343.   remarks:     Gets the operating system name or the operating system
  3344.                version. One of the following options may be specified:
  3345.  
  3346.                  v - return the major OS version number
  3347.                  m - return the minor OS version number
  3348.  
  3349.                If no options are specified, the operation system name
  3350.                'DOS' is returned.
  3351.  
  3352.   returns:     The operating system name or version.
  3353.   see also:    getversion
  3354.  
  3355.  
  3356.   getpalette   position
  3357.   ──────────────────────────────────────────────────────────────────────
  3358.   remarks:     Retrieves a color attribute from a 100-byte user-defined
  3359.                palette area defined with the 'setpalette' function. If
  3360.                no position is specified, the entire palette area is
  3361.                returned. The editor library code (LIB.X) expects color
  3362.                attributes to be in the positions defined in COLOR.AML.
  3363.   returns:     a numeric color attribute, or the 100-byte palette.
  3364.   see also:    setpalatte
  3365.  
  3366.  
  3367.   getparent    window
  3368.   ──────────────────────────────────────────────────────────────────────
  3369.   remarks:     Gets the parent window of a window. If 'window' is not
  3370.                specified, the current window is assumed.
  3371.   returns:     the windowid of the parent window if successful,
  3372.                otherwise null.
  3373.   see also:    getchild, setparent
  3374.  
  3375.  
  3376.   getprevbook  bookmark
  3377.   ──────────────────────────────────────────────────────────────────────
  3378.   remarks:     Gets the bookmark preceding 'bookmark' in the bookmark
  3379.                list for the current buffer. If 'bookmark' is not
  3380.                specified, the current 'bookmark' in the current buffer
  3381.                is assumed.
  3382.   returns:     The bookmarkid of the previous bookmark if successful,
  3383.                otherwise null.
  3384.   see also:    currbook
  3385.  
  3386.  
  3387.   getprevbuf   buffer
  3388.   ──────────────────────────────────────────────────────────────────────
  3389.   remarks:     Gets the buffer before 'buffer' in the buffer list. If
  3390.                'buffer' is null or not specified, then the current
  3391.                buffer is assumed.
  3392.   returns:     The previous bufferid, or null if no previous buffer
  3393.                exists.
  3394.   see also:    findbuf, getcurrbuf
  3395.  
  3396.   example:     buffer = getcurrbuf           // cycles through existing
  3397.                while buffer do               //   buffers
  3398.                  buffer = getprevbuf buffer
  3399.                end 
  3400.  
  3401.  
  3402.   getprevcurs  cursor
  3403.   ──────────────────────────────────────────────────────────────────────
  3404.   remarks:     Gets the cursor before 'cursor' in the cursor list for
  3405.                the current buffer. If 'cursor' is not specified, the
  3406.                current 'cursor' in the current buffer is assumed.
  3407.   returns:     The cursorid of the previous cursor if successful,
  3408.                otherwise null.
  3409.   see also:    currcursor
  3410.  
  3411.  
  3412.   getprevmark  mark
  3413.   ──────────────────────────────────────────────────────────────────────
  3414.   remarks:     Gets the mark preceding 'mark' in the mark list for the
  3415.                current buffer. If 'mark' is not specified, the default
  3416.                markid is assumed.
  3417.   returns:     The markid of the previous mark if successful, otherwise
  3418.                null.
  3419.   see also:    currmark
  3420.  
  3421.  
  3422.   getprevwin   window opt=[z]
  3423.   ──────────────────────────────────────────────────────────────────────
  3424.   remarks:     Gets the window before 'window' the window list. If
  3425.                'window' is not specified, the current window is assumed.
  3426.                If option 'z' is specified, any window may be returned,
  3427.                otherwise only a window at the same child-level as
  3428.                'window' is returned.
  3429.   returns:     the windowid of the previous window if successful,
  3430.                otherwise null.
  3431.   see also:    getchild, getnextwin
  3432.  
  3433.  
  3434.   getrawtime 
  3435.   ──────────────────────────────────────────────────────────────────────
  3436.   remarks:     Gets the current date and time in a 17 character string.
  3437.                The format of the string is as follows:
  3438.  
  3439.                format:
  3440.                  YYYYMMDDWhhmmssuu
  3441.  
  3442.                where:
  3443.                  YYYY = year
  3444.                  MM   = month [1-12]
  3445.                  DD   = day [1-31]
  3446.                  W    = day of the week [0-6, 0=sunday]
  3447.                  hh   = hour [0-23]
  3448.                  mm   = minutes [0-59]
  3449.                  ss   = seconds [0-59]
  3450.                  uu   = hundredths of a second [0-99]
  3451.  
  3452.   returns:     The current date and time in raw format.
  3453.   see also:    getdate, gettime
  3454.  
  3455.  
  3456.   getregion    virtualX virtualY window
  3457.   ──────────────────────────────────────────────────────────────────────
  3458.   remarks:     Returns an integer code identifying the region of a
  3459.                window containing the virtual screen coordinate
  3460.                'virtualX', 'virtualY'. If 'window' is not specified, the
  3461.                current window is assumed. If 'virtualX' and 'virtualY'
  3462.                are not specified, the current mouse position is assumed.
  3463.                This function is useful for determining where a mouse
  3464.                click occurred.
  3465.  
  3466.                The following table shows the integer codes and the
  3467.                corresponding window regions:
  3468.  
  3469.                code        region
  3470.                ────        ──────
  3471.                  0         'virtualX', 'virtualY' is not in the window
  3472.                  1         client area
  3473.  
  3474.                  2         north border
  3475.                  3         east border
  3476.                  4         south border
  3477.                  5         west border
  3478.                  6         northwest border corner
  3479.                  7         northeast border corner
  3480.                  8         southeast border corner
  3481.                  9         southwest border corner
  3482.  
  3483.                 11         north title bar
  3484.                 12         south title bar
  3485.                 13         west title
  3486.                 14         east title
  3487.  
  3488.                 19         vertical & horizontal scroll bar intersection
  3489.                 21         vertical scroll bar up arrow
  3490.                 22         vertical scroll bar down arrow
  3491.                 23         vertical scroll bar page-up bar
  3492.                 24         vertical scroll bar page-down bar
  3493.                 25         vertical scroll bar thumb
  3494.  
  3495.                 31         horizontal scroll bar left arrow
  3496.                 32         horizontal scroll bar right arrow
  3497.                 33         horizontal scroll bar page-left bar
  3498.                 34         horizontal scroll bar page-right bar
  3499.                 35         horizontal scroll bar thumb
  3500.  
  3501.                 51 - 100   window title bar controls from left to right
  3502.  
  3503.                101 - 200   primary menu bar items from left to right
  3504.                201 - 300   menu bar 2 items from left to right
  3505.                301 - 400   menu bar 3 items from left to right
  3506.                401 - 500   menu bar 4 items from left to right
  3507.                501 - 600   menu bar 5 items from top to bottom
  3508.  
  3509.   returns:     a window region code.
  3510.  
  3511.   example:     function <lbutton>   // determine where a left mouse
  3512.                  case getregion     //   button click occurred
  3513.                    when 1  ...      // client area?
  3514.                    when 11 ...      // north title bar?
  3515.                    .
  3516.                    .
  3517.                  end 
  3518.                end 
  3519.  
  3520.  
  3521.   getrow       buffer
  3522.   ──────────────────────────────────────────────────────────────────────
  3523.   remarks:     Gets the current line number of the cursor. If 'buffer'
  3524.                is null or not specified, the current buffer is assumed.
  3525.   returns:     The current line number of the cursor.
  3526.   see also:    getcol, getlines
  3527.  
  3528.  
  3529.   getsettings                                                 [Lib][mon]
  3530.   ──────────────────────────────────────────────────────────────────────
  3531.   remarks:     Gets the current window settings as they appear on the
  3532.                edit window title bar. See the 'setting' command for a
  3533.                description of window settings.
  3534.   returns:     a string containing the current window settings.
  3535.   see also:    setting, setting?
  3536.  
  3537.  
  3538.   getstr       length x y
  3539.   ──────────────────────────────────────────────────────────────────────
  3540.   remarks:     Gets a string of the specified length at the specified
  3541.                x,y position in the current video output window. If x or
  3542.                y are not specified, the current video cursor position is
  3543.                assumed.
  3544.  
  3545.   returns:     the string at x,y
  3546.   see also:    fillrect, getattr, getx, gety, gotoxy, gotoscreen,
  3547.                hilite, writeline, writestr
  3548.  
  3549.  
  3550.   gettext      col length row buffer
  3551.   ──────────────────────────────────────────────────────────────────────
  3552.   remarks:     Retrieves text within a line in the specified buffer. If
  3553.                'buffer' is null or not specified, then the current
  3554.                buffer is assumed. If 'row' is not specified, then the
  3555.                line at the cursor is assumed. If 'col' is not specified,
  3556.                then column 1 is assumed. If 'length' is not specified,
  3557.                then the length from the specified column to the end of
  3558.                the line is assumed. If 'col' is beyond the end of the
  3559.                line, then null is returned.
  3560.  
  3561.   returns:     A copy of a line (or portion of the line) if successful,
  3562.                otherwise null.
  3563.  
  3564.   see also:    getchar
  3565.  
  3566.   example:     gettext
  3567.                  // returns the line at the cursor in the current buffer
  3568.                gettext 3
  3569.                  // returns the portion of the current line from
  3570.                  //   column 3 to the end of the line
  3571.                gettext 3 5
  3572.                  // returns 5 characters at column 3, on the current line
  3573.                  //   in the current buffer
  3574.                gettext 3 5 20 "abc"
  3575.                  // returns 5 characters at column 3, line 20 in the
  3576.                  //   buffer "abc"
  3577.  
  3578.  
  3579.   gettitle     titleid[1-5] window opt=[h]
  3580.   ──────────────────────────────────────────────────────────────────────
  3581.   remarks:     Gets a window title string for a window. If 'window' is
  3582.                not specified, the current window is assumed. 'titleid'
  3583.                specifies which window title to retrieve. If 'titleid' is
  3584.                zero, then 1 is assumed (the primary title).
  3585.  
  3586.                If option 'h' is specified, then this function returns
  3587.                the highlighted position within the title string.
  3588.  
  3589.   returns:     a window title string.
  3590.   see also:    settitle
  3591.  
  3592.   example:     gettitle
  3593.                  // returns title 1 for the current window
  3594.                gettitle 3 "abc"
  3595.                  // returns title 3 for window "abc"
  3596.  
  3597.  
  3598.   gettime 
  3599.   ──────────────────────────────────────────────────────────────────────
  3600.   remarks:     Gets the current time in the format set by the
  3601.                'international' function.
  3602.   returns:     The current time.
  3603.   see also:    getdate, getrawtime
  3604.  
  3605.  
  3606.   getversion 
  3607.   ──────────────────────────────────────────────────────────────────────
  3608.   remarks:     Gets the current version of the editor.
  3609.   returns:     The current version (major and minor) of the editor as a
  3610.                string.
  3611.   see also:    getexe, getos
  3612.  
  3613.  
  3614.   getvidbot 
  3615.   ──────────────────────────────────────────────────────────────────────
  3616.   remarks:     Gets the virtual coordinate of the bottommost row of the
  3617.                physical screen.
  3618.   returns:     the bottom edge of the physical screen.
  3619.   see also:    getvidleft, getvidright, getvidrows, getvidtop
  3620.  
  3621.  
  3622.   getvidcols 
  3623.   ──────────────────────────────────────────────────────────────────────
  3624.   remarks:     Gets the number of columns on the screen.
  3625.   returns:     the number of columns on the screen.
  3626.   see also:    getvidleft, getvidright, getvidrows
  3627.  
  3628.  
  3629.   getvidleft 
  3630.   ──────────────────────────────────────────────────────────────────────
  3631.   remarks:     Gets the virtual coordinate of the leftmost column of the
  3632.                physical screen.
  3633.   returns:     the left edge of the physical screen.
  3634.   see also:    getvidbot, getvidcols, getvidright, getvidtop
  3635.  
  3636.  
  3637.   getvidright 
  3638.   ──────────────────────────────────────────────────────────────────────
  3639.   remarks:     Gets the virtual coordinate of the rightmost column of
  3640.                the physical screen.
  3641.   returns:     the right edge of the physical screen.
  3642.   see also:    getvidbot, getvidcols, getvidleft, getvidtop
  3643.  
  3644.  
  3645.   getvidrows 
  3646.   ──────────────────────────────────────────────────────────────────────
  3647.   remarks:     Gets the number of rows on the screen.
  3648.   returns:     the number of rows on the screen.
  3649.   see also:    getvidbot, getvidcols, getvidtop
  3650.  
  3651.  
  3652.   getvidtop 
  3653.   ──────────────────────────────────────────────────────────────────────
  3654.   remarks:     Gets the virtual coordinate of the topmost row of the
  3655.                physical screen.
  3656.   returns:     the top edge of the physical screen.
  3657.   see also:    getvidbot, getvidleft, getvidright, getvidrows
  3658.  
  3659.  
  3660.   getviewbot   window
  3661.   ──────────────────────────────────────────────────────────────────────
  3662.   remarks:     Gets the line number of the bottommost visible row in a
  3663.                window. If 'window' is not specified, the current window
  3664.                is assumed.
  3665.   returns:     the bottommost visible row in a window.
  3666.   see also:    getviewleft, getviewright, getviewtop
  3667.  
  3668.  
  3669.   getviewcols  window
  3670.   ──────────────────────────────────────────────────────────────────────
  3671.   remarks:     Gets the number of visible columns in a window. If
  3672.                'window' is not specified, the current window is assumed.
  3673.   returns:     the number of visible columns.
  3674.   see also:    getviewleft, getviewright, getviewrows
  3675.  
  3676.  
  3677.   getviewleft  window
  3678.   ──────────────────────────────────────────────────────────────────────
  3679.   remarks:     Gets the leftmost column in a window. If 'window' is not
  3680.                specified, the current window is assumed.
  3681.   returns:     the leftmost column in a window.
  3682.   see also:    getviewbot, getviewright, getviewtop
  3683.  
  3684.  
  3685.   getviewright  window
  3686.   ──────────────────────────────────────────────────────────────────────
  3687.   remarks:     Gets the rightmost visible column in a window. If
  3688.                'window' is not specified, the current window is assumed.
  3689.   returns:     the rightmost visible column in a window.
  3690.   see also:    getviewbot, getviewleft, getviewtop
  3691.  
  3692.  
  3693.   getviewrows  window
  3694.   ──────────────────────────────────────────────────────────────────────
  3695.   remarks:     Gets the number of visible rows in a window. If 'window'
  3696.                is not specified, the current window is assumed.
  3697.   returns:     the number of visible rows.
  3698.   see also:    getviewbot, getviewcols, getviewtop
  3699.  
  3700.  
  3701.   getviewtop   window
  3702.   ──────────────────────────────────────────────────────────────────────
  3703.   remarks:     Gets the line number of the topmost row in a window. If
  3704.                'window' is not specified, the current window is assumed.
  3705.   returns:     the topmost row in a window.
  3706.   see also:    getviewbot, getviewleft, getviewright
  3707.  
  3708.  
  3709.   getwinbuf    window
  3710.   ──────────────────────────────────────────────────────────────────────
  3711.   remarks:     Gets the buffer associated with a window. If 'window' is
  3712.                not specified, the current window is assumed.
  3713.   returns:     the bufferid associated with the window is successful,
  3714.                otherwise null.
  3715.   see also:    getwincurs, setwincurs
  3716.  
  3717.  
  3718.   getwincount  window
  3719.   ──────────────────────────────────────────────────────────────────────
  3720.   remarks:     Gets the number of windows on the screen. If 'window' is
  3721.                specified, this function returns the number of child
  3722.                windows attached to 'window'.
  3723.   returns:     the number of windows on the screen, or the number of
  3724.                child windows attached to a window.
  3725.   see also:    getchild, setparent
  3726.  
  3727.  
  3728.   getwinctrl   n  window
  3729.   ──────────────────────────────────────────────────────────────────────
  3730.   remarks:     Gets the 'nth' title bar control for a window. If
  3731.                'window' is not specified, the current window is assumed.
  3732.   returns:     a one-character title bar control
  3733.   see also:    setwinctrl
  3734.  
  3735.  
  3736.   getwincurs   window
  3737.   ──────────────────────────────────────────────────────────────────────
  3738.   remarks:     Gets the cursor associated with a window. If 'window' is
  3739.                not specified, the current window is assumed. Only
  3740.                cursors associated with a buffer are returned.
  3741.   returns:     the cursorid of the window cursor if successful,
  3742.                otherwise null.
  3743.   see also:    getwinbuf, setwincurs
  3744.  
  3745.  
  3746.   getwinobj    window
  3747.   ──────────────────────────────────────────────────────────────────────
  3748.   remarks:     Gets the event object associated with a window. If
  3749.                'window' is not specified, the current window is assumed.
  3750.   returns:     the window event object.
  3751.   see also:    setwinobj
  3752.  
  3753.  
  3754.   getwinscr    virtualX virtualY window
  3755.   ──────────────────────────────────────────────────────────────────────
  3756.   remarks:     Translates a virtual x,y coordinate in a scroll bar to a
  3757.                column or row in a window. If 'window' is not specified,
  3758.                the current window is assumed. This function can be used
  3759.                to translate a mouse pointer position in a scroll bar to
  3760.                a position in a window.
  3761.  
  3762.   returns:     A window column if virtualX, virtualY lies within a
  3763.                horizontal scroll bar, or a window row if virtualX,
  3764.                virtualY lies within a vertical scroll bar, otherwise
  3765.                null.
  3766.  
  3767.   see also:    getviewbot, getviewleft, getviewright, getviewtop
  3768.  
  3769.  
  3770.   getx 
  3771.   ──────────────────────────────────────────────────────────────────────
  3772.   remarks:     Gets the cursor column in the current video window. This
  3773.                function is ignored for windows which contain a buffer.
  3774.   returns:     the cursor column in the current video window
  3775.   see also:    fillrect, getattr, getstr, gety, gotoxy, gotoscreen,
  3776.                hilite, writeline, writestr
  3777.  
  3778.  
  3779.   gety 
  3780.   ──────────────────────────────────────────────────────────────────────
  3781.   remarks:     Gets the cursor row in the current video window. This
  3782.                function is ignored for windows which contain a buffer.
  3783.   returns:     the cursor row in the current video window
  3784.   see also:    fillrect, getattr, getstr, getx, gotoxy, gotoscreen,
  3785.                hilite, writeline, writestr
  3786.  
  3787.  
  3788.   gotobar      item                                     [Lib][edit_fmgr]
  3789.   ──────────────────────────────────────────────────────────────────────
  3790.   remarks:     Activates the specified menu bar item from the primary
  3791.                menu bar. 'item' specifies the menu bar item or the menu
  3792.                bar description text.
  3793.  
  3794.   returns:     nothing
  3795.   see also:    getmenubar, gotobar2, menubar
  3796.  
  3797.   example:     gotobar 1       // highlights the 'File' menu bar item
  3798.                gotobar "File"  // highlights the 'File' menu bar item
  3799.  
  3800.  
  3801.   gotobar2     item                                     [Lib][edit_fmgr]
  3802.   ──────────────────────────────────────────────────────────────────────
  3803.   remarks:     Activates the specified menu bar item on the toolbar of
  3804.                an edit window, or the drive bar of a file manager
  3805.                window. 'item' specifies the menu bar item or the menu
  3806.                bar description text.
  3807.  
  3808.   returns:     nothing
  3809.   see also:    getmenubar, gotobar, menubar
  3810.  
  3811.  
  3812.   gotobook     bookmark
  3813.   ──────────────────────────────────────────────────────────────────────
  3814.   remarks:     Moves the cursor to a bookmark. Only the current cursor
  3815.                in the buffer associated with the bookmark is moved. If
  3816.                'bookmark' is not specified, the current 'bookmark' in
  3817.                the current buffer is assumed.
  3818.   returns:     TRUE if successful, otherwise null.
  3819.   see also:    getcurrbook, setbook
  3820.  
  3821.  
  3822.   gotobuf      buffer
  3823.   ──────────────────────────────────────────────────────────────────────
  3824.   remarks:     Makes the specified buffer the current buffer. If
  3825.                'buffer' is not specified, the buffer at the top of the
  3826.                buffer list becomes the current buffer.
  3827.  
  3828.                Unlike the 'currbuf' function, the position of the buffer
  3829.                in the buffer list is not changed.
  3830.  
  3831.   returns:     The previous current buffer if successful, otherwise null.
  3832.   see also:    currbuf, findbuf, getcurrbuf
  3833.  
  3834.   example:     oldbuffer = gotobuf 'abc'
  3835.                  // switch to buffer 'abc'
  3836.                  .
  3837.                  .
  3838.                gotobuf oldbuffer
  3839.                  // switch back to the old buffer
  3840.  
  3841.  
  3842.   gotomatch    char-pairs                                       [Lib][a]
  3843.   ──────────────────────────────────────────────────────────────────────
  3844.   remarks:     Finds the matching character for a character specified in
  3845.                'char-pairs'.
  3846.   returns:     Non-zero if found, otherwise null.
  3847.   example:     gotomatch "(){}[]<>"
  3848.  
  3849.  
  3850.   gotomenu     pulldown                                 [Lib][edit_fmgr]
  3851.   ──────────────────────────────────────────────────────────────────────
  3852.   remarks:     Displays the specified pulldown menu from the primary
  3853.                menu bar. 'pulldown' specifies the menu bar item or menu
  3854.                bar item description for the pulldown menu.
  3855.  
  3856.   returns:     nothing
  3857.   see also:    getmenu, menu, submenu
  3858.  
  3859.   example:     gotomenu 1        // displays the 'File' pulldown menu
  3860.                gotomenu "File"
  3861.  
  3862.  
  3863.   gotopos      col row buffer
  3864.   ──────────────────────────────────────────────────────────────────────
  3865.   remarks:     Moves the cursor to the specified column and row. If
  3866.                'buffer' is null or not specified, the current buffer is
  3867.                assumed.
  3868.  
  3869.   returns:     TRUE if successful, otherwise null.
  3870.   see also:    col  row  movepos
  3871.  
  3872.   example:     gotopos 1 1
  3873.                   // moves the cursor to column one of the first line
  3874.  
  3875.  
  3876.   gotoscreen 
  3877.   ──────────────────────────────────────────────────────────────────────
  3878.   remarks:     Changes all video functions to operate immediately on the
  3879.                actual physical screen. The physical screen becomes the
  3880.                current window for all builtin video functions. Column 1
  3881.                and row 1 are located at the upper left corner of the
  3882.                screen. This function can be used to perform custom
  3883.                drawing of the display.
  3884.  
  3885.   returns:     nothing
  3886.   see also:    fillrect, getattr, getstr, getx, gety, gotowindow,
  3887.                gotoxy, hilite, writeline, writestr
  3888.  
  3889.  
  3890.   gotowindow   window
  3891.   ──────────────────────────────────────────────────────────────────────
  3892.   remarks:     Makes the specified window the current window. If
  3893.                'window' is not specified, the topmost window on the
  3894.                screen becomes the current window.
  3895.  
  3896.                Note that this function does not change the ordering of
  3897.                windows on the screen. It changes the 'current' or
  3898.                default window referenced in builtin window functions.
  3899.  
  3900.   returns:     The previous current window if successful, otherwise null.
  3901.   see also:    getcurrwin, gotoscreen
  3902.  
  3903.  
  3904.   gotoxy       col row
  3905.   ──────────────────────────────────────────────────────────────────────
  3906.   remarks:     Moves the cursor to the specified column and row in the
  3907.                current video window. This function is ignored for
  3908.                windows which contain a buffer.
  3909.  
  3910.   returns:     nothing
  3911.  
  3912.   see also:    fillrect, getattr, getstr, getx, gety, gotoscreen,
  3913.                hilite, writeline, writestr
  3914.  
  3915.  
  3916.   groupbox     title x y buffer width initvalue valuemap        [Lib][a]
  3917.   ──────────────────────────────────────────────────────────────────────
  3918.   remarks:     Adds a group box window control to the current dialog
  3919.                box. The group box window becomes the current window. The
  3920.                group box may contain check boxes or radio buttons. The
  3921.                following parameters may be specified:
  3922.  
  3923.                title     - the group box title
  3924.                x         - the group box x-position in the dialog box
  3925.                y         - the group box y-position in the dialog box
  3926.                buffer    - the menu buffer to display in the group box
  3927.                width     - the group box width (if not specified, the
  3928.                            title width or widest menu item width is
  3929.                            used, whichever is widest)
  3930.                initvalue - the values (if any) used to intialize the
  3931.                            group box. Initial values are entered as a
  3932.                            string of one-character codes, with each
  3933.                            character representing a checked menu item
  3934.                            from a string of possible choices specified
  3935.                            by the 'valuemap' argument. If 'initvalue' is
  3936.                            not specified, the first menu item is
  3937.                            checked.
  3938.                valuemap  - a string of possible choices of one-character
  3939.                            codes for 'initvalue', which each character
  3940.                            representing a menu item. The first character
  3941.                            in the string represents the first menu item,
  3942.                            the second character represents the second
  3943.                            menu item, and so on.
  3944.  
  3945.                A group box menu item is a check box if the characters
  3946.                '[ ]' are the the first 4 characters in the menu item.
  3947.                The menu item is a radio button if the characters ' ( )'
  3948.                are the the first 4 characters in the menu item.
  3949.  
  3950.   returns:     The group box window id.
  3951.   see also:    button, dialog, field, listbox, setgroupbox, whenenter,
  3952.                whenselect
  3953.  
  3954.   example:     dialog "Test Dialog Box" 40 8
  3955.                  // create a dialog box
  3956.  
  3957.                groupbox 'Group Box:' 22 2
  3958.                  ( menu ''
  3959.                     item " [ ] &Apples"
  3960.                     item " [ ] &Oranges"
  3961.                     item " [ ] &Melons"
  3962.                     item " [ ] &Bananas"
  3963.                   end ) 15 'am' 'aomb'
  3964.                  // add a group box containing check boxes, initially
  3965.                  // checking the first and third menu items
  3966.  
  3967.                getdialog
  3968.                  // display the dialog box
  3969.  
  3970.  
  3971.   halt 
  3972.   ──────────────────────────────────────────────────────────────────────
  3973.   remarks:     Terminates the execution of the editor immediately and
  3974.                unconditionally.
  3975.   returns:     nothing
  3976.   see also:    delay, exec
  3977.  
  3978.  
  3979.   hex2bin      hexstring
  3980.   ──────────────────────────────────────────────────────────────────────
  3981.   remarks:     Converts a hexadecimal string, composed of only the
  3982.                characters 0-9 and A-F, to a binary string.
  3983.  
  3984.   returns:     a binary string.
  3985.   see also:    bin2hex
  3986.  
  3987.   example:     hex2bin "61"           // returns 'a'
  3988.                hex2bin "616263"       // returns 'abc'
  3989.  
  3990.  
  3991.   hidebuf      buffer
  3992.   ──────────────────────────────────────────────────────────────────────
  3993.   remarks:     Hides a buffer from the 'getprevbuf' function. If
  3994.                'buffer' is null or not specified, then the current
  3995.                buffer is assumed. This function can used to prevent
  3996.                temporary or internal buffers from being displayed on
  3997.                editor buffer lists.
  3998.   returns:     nothing
  3999.   see also:    getprevbuf
  4000.  
  4001.  
  4002.   hidecursor 
  4003.   ──────────────────────────────────────────────────────────────────────
  4004.   remarks:     Hides the physical cursor in the current window. If the
  4005.                current window contains a buffer, the effects of this
  4006.                function are temporary and will disappear the next time
  4007.                the display is updated.
  4008.   returns:     nothing
  4009.   see also:    showcursor
  4010.  
  4011.  
  4012.   hidemouse 
  4013.   ──────────────────────────────────────────────────────────────────────
  4014.   remarks:     Hides the mouse pointer.
  4015.   returns:     nothing
  4016.   see also:    showmouse
  4017.  
  4018.  
  4019.   hidewindow   window
  4020.   ──────────────────────────────────────────────────────────────────────
  4021.   remarks:     Hides a window temporarily. If 'window' is null or not
  4022.                specified, then the current window is assumed. The window
  4023.                will be shown again the next time the display is updated.
  4024.   returns:     nothing
  4025.   see also:    showwindow
  4026.  
  4027.  
  4028.   hilite       length height color col row
  4029.   ──────────────────────────────────────────────────────────────────────
  4030.   remarks:     Highlights a rectangular area in the current window with
  4031.                the specified color attribute. 'length' and 'height'
  4032.                specify the dimensions of the highlighted rectangle.
  4033.                'col' and 'row' specify the upper left corner of the
  4034.                rectangle. If 'col' and 'row' are not specified, the
  4035.                current cursor position is assumed.
  4036.  
  4037.                If the current window displays a buffer, the effects of
  4038.                this function are temporary and will disappear the next
  4039.                time the display is updated.
  4040.  
  4041.                If the current window does not display a buffer and the
  4042.                'height' is 1, the current cursor position is moved to
  4043.                the right of the highlighted area.
  4044.  
  4045.   returns:     nothing
  4046.  
  4047.   see also:    fillrect, getattr, getstr, getx, gety, gotoscreen,
  4048.                gotoxy, writeline, writestr
  4049.  
  4050.   example:     hilite 6 1 95
  4051.                  // highlights a word at the cursor of length 6
  4052.                  //   with the color 'white on magenta'
  4053.  
  4054.  
  4055.   hilitebar    menubar[1-4] item window
  4056.   ──────────────────────────────────────────────────────────────────────
  4057.   remarks:     Highlights or un-highlights a menu bar item in a window.
  4058.                There can only be one highlighted item per menu bar. If
  4059.                'window' is not specified, the current window is assumed.
  4060.  
  4061.                'menubar' specifies one of the 4 available menu bars in
  4062.                the window. If 'menubar' is not specified, 1 is assumed
  4063.                (the primary menu bar).
  4064.  
  4065.                'item' indicates the relative position of the menu bar
  4066.                item from the beginning of the menu bar (1 for the first
  4067.                item, 2 for the second item, and so on).
  4068.  
  4069.                If 'item' is null or zero, then the highlight is removed
  4070.                from any currently highlighted item in the menu bar.
  4071.  
  4072.   returns:     If successful, the offset (in character positions) of the
  4073.                specified menu bar item from the beginning of the menu
  4074.                bar, otherwise null.
  4075.  
  4076.   see also:    getmenubar, menubar
  4077.  
  4078.   example:     hilitebar
  4079.                  // removes the highlight from the primary menu bar
  4080.                hilitebar 2 5
  4081.                  // highlights item 5 on menu bar 2
  4082.  
  4083.  
  4084.   icompare     string1 string2 ...
  4085.   ──────────────────────────────────────────────────────────────────────
  4086.   remarks:     Tests if 'string1' is equal to any of the following
  4087.                arguments, ignoring case.
  4088.  
  4089.   returns:     TRUE if the comparison succeeds, otherwise null.
  4090.   see also:    flipcase, locase, upcase
  4091.  
  4092.   example:     icompare "apples" "Apples"     // returns TRUE
  4093.                icompare "apples" "oranges"    // returns null
  4094.  
  4095.  
  4096.   includemacro  filename arg2 arg3 ...
  4097.   ──────────────────────────────────────────────────────────────────────
  4098.   remarks:     Loads the compiled macro code in the file 'filename' and
  4099.                executes it in the current event object. The 'filename'
  4100.                is passed to the macro as the first argument, followed by
  4101.                the optional arguments 'arg2', 'arg3', etc.
  4102.  
  4103.   returns:     The return value from executing the macro.
  4104.   see also:    compilemacro, eval, runmacro
  4105.  
  4106.   example:     includemacro "C:\\AURORA\\MACRO\\MYMACRO.X"
  4107.  
  4108.  
  4109.   inheritfrom  objexpression1 objexpression2 ...
  4110.   ──────────────────────────────────────────────────────────────────────
  4111.   remarks:     Sets the inheritance path of the current object to the
  4112.                specified objects. After this function is called, the
  4113.                current object will inherit functions and object
  4114.                variables from the objects specified by objexpression1,
  4115.                objexpression2, etc.
  4116.  
  4117.   returns:     nothing
  4118.   see also:    inheritkeys, object, objtype?
  4119.  
  4120.   example:     inheritfrom "win"
  4121.                  // the current object now inherits functions and
  4122.                  // object variables from the object 'win'
  4123.  
  4124.  
  4125.   inheritkeys  [0/1] object
  4126.   ──────────────────────────────────────────────────────────────────────
  4127.   remarks:     Enables (1) or disables (0) the inheritance of keyboard
  4128.                events for the specified object. If 'object' is not
  4129.                specified, then the current object is assumed. When an
  4130.                object is initially created, keyboard inheritance is
  4131.                enabled.
  4132.   returns:     nothing
  4133.   see also:    inheritfrom, object, objtype?
  4134.  
  4135.  
  4136.   inmark?      col row buffer
  4137.   ──────────────────────────────────────────────────────────────────────
  4138.   remarks:     Tests if the specified column and row position lies
  4139.                within a mark. If 'col' and 'row' are not specified, then
  4140.                the current cursor position is assumed. If 'buffer' is
  4141.                not specified, the current buffer is assumed.
  4142.  
  4143.   returns:     The topmost markid containing 'col','row', otherwise
  4144.                null.
  4145.   see also:    mark?
  4146.  
  4147.   example:     if inmark? then      // if cursor is within a mark
  4148.                  deleteblock        //   then delete the mark text
  4149.                else                 // otherwise..
  4150.                  delchar            //   delete the char at the cursor
  4151.                end 
  4152.  
  4153.  
  4154.   insabove     string col row buffer
  4155.   ──────────────────────────────────────────────────────────────────────
  4156.   remarks:     Inserts a new line containing the specified string into a
  4157.                buffer. If 'buffer' is null or not specified, then the
  4158.                current buffer is assumed.
  4159.  
  4160.                If 'row' is specified, the new line is inserted before
  4161.                the specified row, otherwise the new line is inserted
  4162.                before the line at the cursor. If 'col' is specified, the
  4163.                string is placed at the specified column, otherwise the
  4164.                string is placed at column 1.
  4165.  
  4166.   returns:     TRUE if successful, otherwise null.
  4167.   see also:    addline, delline, insline, joinline, splitline
  4168.  
  4169.   example:     insabove
  4170.                  // inserts a new line above the line at the cursor
  4171.                  //   in the current buffer
  4172.                insabove "New line" 1 6
  4173.                  // inserts a new line with the text "  New line"
  4174.                  //   above line 6 in the current buffer
  4175.                insabove "New line" 1 1 "abc"
  4176.                  // inserts a new line with the text "New line"
  4177.                  //   above line 1 in the buffer "abc"
  4178.  
  4179.  
  4180.   insert?      buffer
  4181.   ──────────────────────────────────────────────────────────────────────
  4182.   remarks:     Tests if the cursor is in insert or overstrike mode. If
  4183.                'buffer' is null or not specified, the current buffer is
  4184.                assumed.
  4185.   returns:     TRUE if the cursor is in insert mode, otherwise null.
  4186.   see also:    setcursor, writetext
  4187.  
  4188.  
  4189.   insertbuf    filespec buffer delim/binlen opt=[bdfhkx] trunc comment
  4190.                linenumber
  4191.   ──────────────────────────────────────────────────────────────────────
  4192.   remarks:     Inserts a file or directory into an existing buffer. If
  4193.                'buffer' is null or not specified, the current buffer is
  4194.                assumed.
  4195.  
  4196.                The file is inserted after the line 'linenumber'. If
  4197.                'linenumber' is not specified, then the file is loaded
  4198.                after the current cursor position in the buffer.
  4199.  
  4200.                All other arguments and options are identical to the
  4201.                'loadbuf' function (see the 'loadbuf' function).
  4202.  
  4203.   returns:     The bufferid if successful, otherwise null.
  4204.  
  4205.   see also:    asciibuf, createbbuf, createbuf, destroybuf, getloadinfo,
  4206.                loadbuf, menu
  4207.  
  4208.   example:     insertbuf "c:\\file.txt"
  4209.                  // loads "c:\file.txt" into the current buffer after
  4210.                  //   the current line in the buffer
  4211.                insertbuf "c:\\file.txt" "abc" 32 'b' '' '' 1000
  4212.                  // loads "c:\file.txt" with a binary line length
  4213.                  //   of 32, and inserts it after line 1000 of the
  4214.                  //   buffer "abc"
  4215.  
  4216.  
  4217.   insline      string col row buffer
  4218.   ──────────────────────────────────────────────────────────────────────
  4219.   remarks:     Inserts a new line containing the specified string into a
  4220.                buffer. If 'buffer' is null or not specified, then the
  4221.                current buffer is assumed.
  4222.  
  4223.                If 'row' is specified, the new line is inserted after the
  4224.                specified row, otherwise the new line is inserted after
  4225.                the line at the cursor. If 'col' is specified, the string
  4226.                is placed at the specified column, otherwise the string
  4227.                is placed at column 1.
  4228.  
  4229.   returns:     TRUE if successful, otherwise null.
  4230.   see also:    addline, delline, insabove, joinline, splitline
  4231.  
  4232.   example:     insline
  4233.                  // inserts a new line after the line at the cursor
  4234.                  //   in the current buffer
  4235.                insline "New line" 1 (getlines)
  4236.                  // inserts a new line with the text "New line"
  4237.                  //   after the last line in the current buffer
  4238.                insline "New line" 1 1 "abc"
  4239.                  // inserts a new line with the text "New line"
  4240.                  //   after line 1 in the buffer "abc"
  4241.  
  4242.  
  4243.   instext      string col row buffer
  4244.   ──────────────────────────────────────────────────────────────────────
  4245.   remarks:     Inserts the specified string into a buffer at the
  4246.                specified row and column. If 'buffer' is null or not
  4247.                specified, the current buffer is assumed. If 'col' and
  4248.                'row' are not specified, then the string is inserted at
  4249.                the current cursor position.
  4250.  
  4251.   returns:     TRUE if successful, otherwise null.
  4252.   see also:    delchar, ovltext
  4253.  
  4254.   example:     instext "some text"
  4255.                  // inserts 'some text' at the cursor in the current
  4256.                  //   buffer
  4257.                instext "some text" 2 20
  4258.                  // inserts 'some text' at column 2, line 20 in the
  4259.                  //   current buffer
  4260.                instext "some text" 1 1 "abc"
  4261.                  // inserts 'some text' at column 1, line 1 in the
  4262.                  //   buffer 'abc'
  4263.  
  4264.  
  4265.   international  dateformat dateseparator timeformat timeseparator
  4266.                  thousandsseparator
  4267.   ──────────────────────────────────────────────────────────────────────
  4268.   remarks:     Defines international system settings. The following
  4269.                settings can be specified:
  4270.  
  4271.                dateformat         - The date format to use [0-2]:
  4272.                                       0 = mmddyy
  4273.                                       1 = ddmmyy
  4274.                                       2 = yymmdd
  4275.  
  4276.                dateseparator      - The character used to separate
  4277.                                     days, months, and years
  4278.  
  4279.                timeformat         - The time format to use [0-3]:
  4280.                                       0 = 12hr
  4281.                                       1 = 24hr
  4282.                                       2 = 12hr with seconds
  4283.                                       3 = 24hr with seconds
  4284.  
  4285.                timeseparator      - The character used to separate
  4286.                                     hours, minutes, and seconds
  4287.  
  4288.                thousandsseparator - The character used to separate
  4289.                                     thousands-groups in large numbers
  4290.  
  4291.   returns:     nothing
  4292.   see also:    getdate, gettime, thousands
  4293.  
  4294.  
  4295.   joinline     col row buffer
  4296.   ──────────────────────────────────────────────────────────────────────
  4297.   remarks:     Joins two lines into one line in a buffer. If 'buffer' is
  4298.                null or not specified, then the current buffer is
  4299.                assumed.
  4300.  
  4301.                'row' specifies the first of two lines to be joined, and
  4302.                'col' specifies the column in the first line where the
  4303.                second line is to be appended. If 'col' is less than or
  4304.                equal to the length of the first line, then the second
  4305.                line is appended to the end of the first line.
  4306.  
  4307.                If 'row' and 'col' are not specified, the current cursor
  4308.                position is assumed.
  4309.  
  4310.   returns:     TRUE if successful, otherwise null.
  4311.   see also:    delline, insabove, insline, splitline
  4312.  
  4313.   example:     joinline
  4314.                  // joins the line below the cursor to the current line
  4315.                  //   at the cursor position in the current buffer
  4316.                joinline 1
  4317.                  // appends the line below the cursor to the current line
  4318.                  //   in the current buffer
  4319.  
  4320.  
  4321.   joinstr      delimit+quote string1 string2 ...
  4322.   ──────────────────────────────────────────────────────────────────────
  4323.   remarks:     This function joins any number of strings together into
  4324.                an editor 'multistring'. This differs from normal string
  4325.                concatenation in the following ways:
  4326.  
  4327.                - The delimiter character 'delimit' is inserted between
  4328.                  the component strings.
  4329.  
  4330.                - The character 'quote' is inserted before any
  4331.                  occurrences of the 'delimit' character or the 'quote'
  4332.                  character in the resulting string.
  4333.  
  4334.                If the 'delimit' or 'quote' character are not specified,
  4335.                then the default delimiter character is a slash (/) and
  4336.                the default quote character is a backquote (`).
  4337.  
  4338.   returns:     a multistring
  4339.   see also:    splitstr
  4340.  
  4341.   example:     joinstr '' "abc" "def" "xyz"   // returns "abc/def/xyz"
  4342.                joinstr '' "abc" "d/ef" "xyz"  // returns "abc/d`/ef/xyz"
  4343.                joinstr "|\\" "abc" "x|yz"     // returns "abc|x\|yz"
  4344.  
  4345.  
  4346.   justblock    opt=[clr] mark leftmarg rightmarg
  4347.   ──────────────────────────────────────────────────────────────────────
  4348.   remarks:     Left justifies, right justifies, or centers marked text.
  4349.                If 'mark' is not specified, the default markid is
  4350.                assumed.
  4351.  
  4352.                For column marks, the text is justified to fit between
  4353.                the left and right edges of the mark. For all other
  4354.                marks, the text is justified to fit between 'leftmarg'
  4355.                and 'rightmarg'.
  4356.  
  4357.                One of the following options may be specified:
  4358.  
  4359.                  c - center the text
  4360.                  l - left justify the text
  4361.                  r - right justify the text
  4362.  
  4363.                If no options are specified, then 'l' is assumed.
  4364.  
  4365.   returns:     TRUE if successful, otherwise null.
  4366.   see also:    formatblock
  4367.  
  4368.  
  4369.   kbdoptions   opt=[egw]
  4370.   ──────────────────────────────────────────────────────────────────────
  4371.   remarks:     Sets various keyboard options. Any of the following
  4372.                options may be specified:
  4373.  
  4374.                  e - enable enhanced keyboard keys
  4375.                  g - enable unshifted grey keypad function keys
  4376.                        (<grey*>, <grey->, <grey+>)
  4377.                  w - enable shifted white keypad function keys
  4378.                        (<shift del>, <shift ins>, <shift end>, etc.)
  4379.   returns:     nothing
  4380.  
  4381.  
  4382.   keyhit? 
  4383.   ──────────────────────────────────────────────────────────────────────
  4384.   remarks:     Test if non-shift key has been pressed.
  4385.   returns:     TRUE if a key has been pressed and not processed,
  4386.                otherwise null.
  4387.   see also:    event?, shiftkey?
  4388.  
  4389.  
  4390.   lastpos      buffer
  4391.   ──────────────────────────────────────────────────────────────────────
  4392.   remarks:     Moves the cursor to the last cursor position. If 'buffer'
  4393.                is null or not specified, the current buffer is assumed.
  4394.   returns:     TRUE if successful, otherwise null.
  4395.   see also:    gotopos
  4396.  
  4397.  
  4398.   left         cols buffer
  4399.   ──────────────────────────────────────────────────────────────────────
  4400.   remarks:     Moves the cursor to the left. 'cols' specifies the number
  4401.                of columns to move. If 'cols' is not specified, 1 is
  4402.                assumed. If 'buffer' is null or not specified, the
  4403.                current buffer is assumed.
  4404.  
  4405.   returns:     TRUE if successful, otherwise null.
  4406.   see also:    down, right, up
  4407.  
  4408.   example:     left       // moves the cursor left 1 column
  4409.                left 5     // moves the cursor left 5 columns
  4410.  
  4411.  
  4412.   lineflag     opt=[m-] row buffer
  4413.   ──────────────────────────────────────────────────────────────────────
  4414.   remarks:     Turns line flags ON or OFF. If 'buffer' is null or not
  4415.                specified, the current buffer is assumed. If 'row' is not
  4416.                specified, the line at the cursor is assumed. The
  4417.                following flags can be specified:
  4418.  
  4419.                  m - line 'dirty' or modified flag
  4420.                  - - turns off flags
  4421.  
  4422.                If option '-' is specified, any other specified flags
  4423.                will be turned off, otherwise all specified flags will be
  4424.                turned on.
  4425.  
  4426.   returns:     nothing
  4427.   see also:    bufferflag, bufferflag?, lineflag?
  4428.  
  4429.   example:     lineflag "-m"
  4430.                  // turns off the modified flag for the current buffer
  4431.  
  4432.  
  4433.   lineflag?    opt=[m] row buffer
  4434.   ──────────────────────────────────────────────────────────────────────
  4435.   remarks:     Tests if line flags are ON. If 'buffer' is null or not
  4436.                specified, the current buffer is assumed. If 'row' is not
  4437.                specified, the line at the cursor is assumed. The
  4438.                following flags can be specified:
  4439.  
  4440.                  m - line 'dirty' or modified flag
  4441.  
  4442.   returns:     non-zero if any of the specified line flags are ON,
  4443.                otherwise null.
  4444.   see also:    bufferflag, bufferflag?, lineflag
  4445.  
  4446.  
  4447.   listbox      title x y buffer width height                    [Lib][a]
  4448.   ──────────────────────────────────────────────────────────────────────
  4449.   remarks:     Adds a list box window control to the current dialog box.
  4450.                The listbox window becomes the current window. A list box
  4451.                displays a buffer in scrollable window, allowing a line
  4452.                to be selected from the buffer. The following parameters
  4453.                may be specified:
  4454.  
  4455.                title     - the list box title
  4456.                x         - the list box x-position in the dialog box
  4457.                y         - the list box y-position in the dialog box
  4458.                buffer    - the buffer to display in the list box
  4459.                width     - the list box width (if not specified, the
  4460.                            title width is used)
  4461.                height    - the list box height (if not specified, the
  4462.                            number of lines in the buffer is used)
  4463.  
  4464.   returns:     The group box window id.
  4465.  
  4466.   see also:    button, dialog, field, groupbox, whenenter, whenselect
  4467.  
  4468.   example:     dialog "Test Dialog Box" 40 17
  4469.                  // create a dialog box
  4470.                listbox "&Listbox:" 3 2 (loadbuf "C:\\*.*") 16 12
  4471.                  // add a list box displaying a directory of drive C
  4472.                getdialog
  4473.                  // display the dialog box
  4474.  
  4475.  
  4476.   loadbuf      filespec buffer delim/binlen opt=[bdhkx1] trunc comment
  4477.   ──────────────────────────────────────────────────────────────────────
  4478.   remarks:     Loads the specified file or directory into a new buffer.
  4479.                If 'buffer' is null or not specified, a unique bufferid
  4480.                will be assigned. The new buffer will become the current
  4481.                buffer.
  4482.  
  4483.                The buffer name of the new buffer will automatically be
  4484.                set to 'filespec'. The 'setbufname' function is generally
  4485.                not required (see 'setbufname').
  4486.  
  4487.                The following options may be specified:
  4488.  
  4489.                  b - loads the file in binary mode. The third argument
  4490.                      specifies the binary line length.
  4491.                  d - includes subdirectories when loading directories
  4492.                  h - includes hidden/system files when loading
  4493.                      directories
  4494.                  k - shows file sizes in 1k increments when loading
  4495.                      directories
  4496.                  x - disables conversion of fold comments to folds
  4497.                  1 - sorts subdirectories first when loading directories
  4498.  
  4499.                If option 'b' is specified, the file is loaded in binary
  4500.                mode and the third argument specifies a fixed binary line
  4501.                length. If the third argument is not specified, the
  4502.                default binary line length is 64.
  4503.  
  4504.                If option 'b' is not specified, the third argument
  4505.                specifies a 1 or 2 byte line delimiter string to use. If
  4506.                the third argument is not specified, a line delimiter of
  4507.                0D0Ah (CR/LF) is assumed.
  4508.  
  4509.                The argument 'trunc' specifies the length at which lines
  4510.                are truncated. If 'trunc' is zero or not specified, the
  4511.                editor maximum (16000) is assumed.
  4512.  
  4513.                The argument 'comment' specifies the fold comment string
  4514.                to look for when converting fold comments to text folds
  4515.                during the loading process. Specifying option 'x'
  4516.                disables the conversion.
  4517.  
  4518.                Note: this function will not display the new buffer in a
  4519.                window. The 'openbuf' or 'popup' library functions should
  4520.                be used to display the buffer.
  4521.  
  4522.   returns:     The new bufferid if successful, otherwise null.
  4523.  
  4524.   see also:    asciibuf, createbbuf, createbuf, destroybuf, getloadinfo,
  4525.                insertbuf, menu, popup, setbufname
  4526.  
  4527.   example:     loadbuf "c:\\file.txt"
  4528.                  // loads 'c:\file.txt' into a new buffer (using line
  4529.                  //   delimiter CR/LF) and returns a unique bufferid
  4530.                loadbuf "c:\\file.txt" "abc"
  4531.                  // loads 'c:\file.txt' into a new buffer with the
  4532.                  //   bufferid 'abc'
  4533.                loadbuf "c:\\file.txt" '' (hex2bin "0A")
  4534.                  // loads 'c:\file.txt' into a new buffer using line
  4535.                  //   delimiter '0A' (LF) and returns a unique bufferid
  4536.                loadbuf "c:\\file.txt" '' 25 'b'
  4537.                  // loads 'c:\file.txt' into a new binary buffer with
  4538.                  //   a fixed line length of 25 and returns a unique
  4539.                  //   bufferid
  4540.  
  4541.  
  4542.   locase       string
  4543.   ──────────────────────────────────────────────────────────────────────
  4544.   remarks:     Converts a string to lowercase.
  4545.   returns:     the string in lowercase.
  4546.   see also:    upcase  flipcase
  4547.   example:     locase "PEACHES"           // returns "peaches"
  4548.  
  4549.  
  4550.   locatefile   filename path opt=[d]
  4551.   ──────────────────────────────────────────────────────────────────────
  4552.   remarks:     Searches a path for a filename. 'path' can be a sequence
  4553.                of paths separated by semicolons (;) (as specified in the
  4554.                DOS 'PATH' environment string).
  4555.  
  4556.                If option 'd' is specified, then 'filename' must be a
  4557.                directory and the path is searched for directories only.
  4558.  
  4559.                This function returns the fully qualified filename or
  4560.                directory if found, otherwise it returns null.
  4561.  
  4562.   returns:     TRUE if successful, otherwise null.
  4563.   see also:    createdir, scanfile
  4564.  
  4565.   example:     locatefile "FILE.TXT" "C:\\"
  4566.                  // returns C:\FILE.TXT, if FILE.TXT is found in C:\
  4567.                locatefile "FILE.TXT" (getenv "PATH")
  4568.                  // returns FILE.TXT (fully qualified), if FILE.TXT is
  4569.                  //   found in the DOS PATH
  4570.                locatefile "MACROS" "D:\\AURORA" 'd'
  4571.                  // returns D:\MACROS\AURORA, if MACROS is a directory
  4572.                  //   in D:\AURORA
  4573.  
  4574.  
  4575.   lookup       varexpression objexpression opt=[e]
  4576.   ──────────────────────────────────────────────────────────────────────
  4577.   remarks:     Gets the value of an object variable defined by
  4578.                'varexpression' in the object defined by 'objexpression'.
  4579.                If 'objexpression' is not specified, the current object
  4580.                is assumed. If option 'e' is specified, then this
  4581.                function only tests for the existence of the object
  4582.                variable.
  4583.  
  4584.   returns:     If option 'e' is not specified, this function returns the
  4585.                value of an object variable. If option 'e' is specified,
  4586.                this function returns non-zero if the object variable
  4587.                exists, otherwise it returns null.
  4588.  
  4589.   see also:    function?, set, setobj, setx, setxfun, setxobj, unsetx
  4590.  
  4591.   example:     lookup "VidCols"
  4592.                lookup "Vid" + "Cols" "prf"
  4593.  
  4594.                lookup variable
  4595.                  // returns the value of an object variable whose
  4596.                  //   name is the value of 'variable'
  4597.  
  4598.  
  4599.   mark?        mark
  4600.   ──────────────────────────────────────────────────────────────────────
  4601.   remarks:     Tests if a mark exists. If 'mark' is not specified, then
  4602.                the default markid is assumed.
  4603.   returns:     TRUE if the mark exists, otherwise null.
  4604.   see also:    inmark?
  4605.  
  4606.  
  4607.   markchar     startcol endcol toprow botrow mark buffer
  4608.   ──────────────────────────────────────────────────────────────────────
  4609.   remarks:     Creates, extends, or modifies a character mark. A
  4610.                character mark designates a stream of one or more
  4611.                characters in a buffer. If 'buffer' is null or not
  4612.                specified, the current buffer is assumed. If 'mark' is
  4613.                not specified, the default markid is assumed.
  4614.  
  4615.                If the mark does not exist then a new mark is created. If
  4616.                the mark already exists and is not located in the
  4617.                specified buffer, then it is moved there.
  4618.  
  4619.                The mark will be sized to span from 'startcol','toprow'
  4620.                to 'endcol','botrow'. If none of these are specified,
  4621.                then the cursor line and column are assumed and the mark
  4622.                is left 'open' (moving the cursor resizes the mark). If
  4623.                the mark was already open, then it is closed.
  4624.  
  4625.   returns:     The markid of the new mark if created, otherwise null.
  4626.  
  4627.   see also:    destroymark, extendmark, markcolumn, markline,
  4628.                markstream, stopmark
  4629.  
  4630.   example:     markchar
  4631.                  // marks the character at the cursor using the default
  4632.                  //   markid and leaves the mark 'open'.
  4633.  
  4634.  
  4635.   markcolumn   leftcol rightcol toprow botrow mark buffer
  4636.   ──────────────────────────────────────────────────────────────────────
  4637.   remarks:     Creates, extends, or modifies a rectangular column mark.
  4638.                If 'buffer' is null or not specified, then the current
  4639.                buffer is assumed. If 'mark' is not specified, the
  4640.                default markid is assumed.
  4641.  
  4642.                If the mark does not exist then a new mark is created. If
  4643.                the mark already exists and is not located in the
  4644.                specified buffer, then it is moved there.
  4645.  
  4646.                The mark will be sized to span from 'leftcol','toprow' to
  4647.                'rightcol','botrow'. If none of these are specified, then
  4648.                the cursor line and column are assumed and the mark is
  4649.                left 'open' (moving the cursor resizes the mark). If the
  4650.                mark was already open, then it is closed.
  4651.  
  4652.   returns:     The markid of the new mark if created, otherwise null.
  4653.  
  4654.   see also:    destroymark, extendmark, markchar, markline, markstream,
  4655.                stopmark
  4656.  
  4657.   example:     markcolumn
  4658.                  // marks the character at the cursor using the default
  4659.                  //   markid and leaves the mark 'open'.
  4660.                markcolumn 1 1 1 (getlines)
  4661.                  // marks the first column of the entire buffer using
  4662.                  // the default markid
  4663.  
  4664.  
  4665.   markline     toprow botrow mark buffer
  4666.   ──────────────────────────────────────────────────────────────────────
  4667.   remarks:     Creates, extends, or modifies a line mark. If 'buffer' is
  4668.                null or not specified, then the current buffer is
  4669.                assumed. If 'mark' is not specified, the default markid
  4670.                is assumed.
  4671.  
  4672.                If the mark does not exist then a new mark is created. If
  4673.                the mark already exists and is not located in the
  4674.                specified buffer, then it is moved there.
  4675.  
  4676.                The mark will be sized to span from 'toprow' to 'botrow'.
  4677.                If 'toprow' and 'botrow' are not specified, then the line
  4678.                at the cursor is assumed and the mark is left 'open'
  4679.                (moving the cursor resizes the mark). If the mark was
  4680.                already open, then it is closed.
  4681.  
  4682.   returns:     The markid of the new mark if created, otherwise null.
  4683.  
  4684.   see also:    destroymark, extendmark, markchar, markcolumn,
  4685.                markstream, stopmark
  4686.  
  4687.   example:     markline
  4688.                  // marks the current line in the current buffer using
  4689.                  //   the default markid, and leaves the mark 'open'
  4690.                markline 1 (getlines)
  4691.                  // marks the entire buffer using the default markid
  4692.                markline '' '' 'T'
  4693.                  // marks the current line using the markid 'T'
  4694.  
  4695.  
  4696.   markstream   startcol endcol toprow botrow mark buffer
  4697.   ──────────────────────────────────────────────────────────────────────
  4698.   remarks:     Creates, extends, or modifies a stream mark. A stream
  4699.                mark designates a stream of zero or more characters in a
  4700.                buffer and does not include 'endcol' on the row 'botrow'.
  4701.                If 'buffer' is null or not specified, then the current
  4702.                buffer is assumed. If 'mark' is not specified, the
  4703.                default markid is assumed.
  4704.  
  4705.                If the mark does not exist then a new mark is created. If
  4706.                the mark already exists and is not located in the
  4707.                specified buffer, then it is moved there.
  4708.  
  4709.                The mark will be sized to span from 'startcol','toprow'
  4710.                to 'endcol','botrow'. If none of these are specified,
  4711.                then the cursor line and column are assumed and the mark
  4712.                is left 'open' (moving the cursor resizes the mark). If
  4713.                the mark was already open, then it is closed.
  4714.  
  4715.   returns:     The markid of the new mark if created, otherwise null.
  4716.  
  4717.   see also:    destroymark, extendmark, markchar, markcolumn, markline,
  4718.                stopmark
  4719.  
  4720.   example:     markstream
  4721.                  // opens a stream mark at the cursor position with the
  4722.                  //   default markid. Characters will not be marked
  4723.                  //   until the cursor is moved.
  4724.  
  4725.  
  4726.   max?         window                                           [Lib][a]
  4727.   ──────────────────────────────────────────────────────────────────────
  4728.   remarks:     Tests if a window is maximized. If 'window' is not
  4729.                specified, the current window is assumed.
  4730.   returns:     TRUE if the window is maximized, otherwise null.
  4731.   see also:    min?
  4732.  
  4733.  
  4734.   maxems       size
  4735.   ──────────────────────────────────────────────────────────────────────
  4736.   remarks:     Specifies the maximum amount of EMS memory the editor may
  4737.                use, in 1K increments. If -1 is specified, the maximum
  4738.                available EMS will be used. All available XMS memory will
  4739.                be used before EMS memory is used.
  4740.  
  4741.                Note: this function may only be called once during an
  4742.                edit session. An EMS driver must be installed before EMS
  4743.                memory can be used.
  4744.  
  4745.   returns:     Non-zero if successful, otherwise zero.
  4746.   see also:    maxxms, memoptions, swapfiles
  4747.  
  4748.  
  4749.   maximize     window                                           [Lib][a]
  4750.   ──────────────────────────────────────────────────────────────────────
  4751.   remarks:     Maximizes the specified window. If 'window' is not
  4752.                specified, the current window is assumed.
  4753.   returns:     nothing
  4754.   see also:    max?, min?, minimize, restore
  4755.  
  4756.  
  4757.   maxxms       size-in-K
  4758.   ──────────────────────────────────────────────────────────────────────
  4759.   remarks:     Specifies the maximum amount of XMS memory the editor may
  4760.                use, in 1K increments. If -1 is specified, the maximum
  4761.                available XMS will be used.
  4762.  
  4763.                Note: this function may only be called once during an
  4764.                edit session. An XMS driver must be installed before XMS
  4765.                memory can be used.
  4766.  
  4767.   returns:     Non-zero if successful, otherwise zero.
  4768.   see also:    maxems, memoptions, swapfiles
  4769.  
  4770.  
  4771.   memoptions   opt=[o]
  4772.   ──────────────────────────────────────────────────────────────────────
  4773.   remarks:     Specifies memory usage options. The following options may
  4774.                be specified:
  4775.  
  4776.                  o - allows large files to left open after loading (this
  4777.                      can increase performance when loading large files).
  4778.  
  4779.   returns:     nothing
  4780.   see also:    maxems, maxxms, swapfiles
  4781.  
  4782.  
  4783.   min?         window                                           [Lib][a]
  4784.   ──────────────────────────────────────────────────────────────────────
  4785.   remarks:     Tests if a window is minimized. If 'window' is not
  4786.                specified, the current window is assumed.
  4787.   returns:     TRUE if the window is minimized, otherwise null.
  4788.   see also:    max?
  4789.  
  4790.  
  4791.   minimize     window                                           [Lib][a]
  4792.   ──────────────────────────────────────────────────────────────────────
  4793.   remarks:     Minimizes the specified window. If 'window' is not
  4794.                specified, the current window is assumed.
  4795.   returns:     nothing
  4796.   see also:    max?, maximize, min?, restore
  4797.  
  4798.  
  4799.   mono? 
  4800.   ──────────────────────────────────────────────────────────────────────
  4801.   remarks:     Tests if the editor is operating in monochrome mode.
  4802.   returns:     TRUE if the editor is in monochrome mode, otherwise null.
  4803.  
  4804.  
  4805.   mousepos     virtualX virtualY
  4806.   ──────────────────────────────────────────────────────────────────────
  4807.   remarks:     Moves the mouse pointer to the specified virtual X and
  4808.                virtual Y coordinates on the screen.
  4809.  
  4810.   returns:     nothing
  4811.   see also:    getmousex, getmousey, openmouse
  4812.  
  4813.   example:     mousepos 16000 16000
  4814.                  // moves the mouse pointer to the upper left
  4815.                  //   of the virtual screen at startup
  4816.                mousepos  15999 + getvidcols  15999 + getvidrows
  4817.                  // moves the mouse pointer to the lower right
  4818.                  //   of the virtual screen at startup
  4819.  
  4820.  
  4821.   mousesense   horz vert doublespeed
  4822.   ──────────────────────────────────────────────────────────────────────
  4823.   remarks:     Changes the mouse sensitivity by setting the horizontal
  4824.                mickey-to-pixel and vertical mickey-to-pixel ratios, and
  4825.                by setting the double speed threshold. The default mouse
  4826.                sensitivity after calling 'openmouse' are:
  4827.  
  4828.                Horz mickey-to-pixel ratio:   8
  4829.                Vert mickey-to-pixel ratio:  16
  4830.                Double speed threshold:      64
  4831.  
  4832.                Lower numbers for these parameters result in increased
  4833.                sensitivity.
  4834.  
  4835.   returns:     nothing
  4836.   see also:    openmouse
  4837.  
  4838.   example:     mousesense 5 12 50             // more sensitive mouse
  4839.  
  4840.  
  4841.   moveblock    mark buffer col row
  4842.   ──────────────────────────────────────────────────────────────────────
  4843.   remarks:     Moves marked text after the specified column and row
  4844.                position in the specified buffer. The text is inserted at
  4845.                the new position and the mark is moved to the new
  4846.                position.
  4847.  
  4848.                If 'mark' is not specified, the default markid is
  4849.                assumed. If 'buffer' is null or not specified, the
  4850.                current buffer is assumed. If 'col' and 'row' are not
  4851.                specified, the current cursor position is assumed.
  4852.  
  4853.   returns:     TRUE if successful, otherwise null.
  4854.   see also:    copyblock, copyblockover
  4855.  
  4856.  
  4857.   movepos      (+/-)cols (+/-)rows buffer
  4858.   ──────────────────────────────────────────────────────────────────────
  4859.   remarks:     Moves the cursor a relative number of columns and rows
  4860.                away from the current position. If 'buffer' is null or
  4861.                not specified, the current buffer is assumed.
  4862.  
  4863.   returns:     TRUE if successful, otherwise null.
  4864.   see also:    col, down, gotopos, left, right, row, up
  4865.  
  4866.   example:     movepos 2 3
  4867.                   // moves the cursor right 2 columns and down 3 rows
  4868.  
  4869.  
  4870.   movewindow   x y opt=[acdrswz1] window relativewindow
  4871.   ──────────────────────────────────────────────────────────────────────
  4872.   remarks:     Changes the position of a window. If 'window' is not
  4873.                specified, the current window is assumed. 'x' and 'y'
  4874.                specify the new window coordinates. See the 'sizewindow'
  4875.                function for a description of the coordinates and
  4876.                available options.
  4877.  
  4878.                This call is nearly identical to the 'sizewindow'
  4879.                function, except that only the position of the window can
  4880.                be changed.
  4881.  
  4882.   returns:     TRUE if successful, otherwise null.
  4883.   see also:    getcoord, sizewindow
  4884.  
  4885.  
  4886.   msgbox       message title opt=[b]                            [Lib][a]
  4887.   ──────────────────────────────────────────────────────────────────────
  4888.   remarks:     Displays the specified message in a popup window with an
  4889.                'Ok' button. If a title is not specified, 'Message' is
  4890.                assumed. If option 'b' is specified, the PC speaker
  4891.                beeps.
  4892.  
  4893.   returns:     nothing
  4894.   see also:    okbox, say, shortbox, yncbox
  4895.  
  4896.   example:     msgbox "Hello World"
  4897.  
  4898.  
  4899.   nextfile                                                   [Lib][edit]
  4900.   ──────────────────────────────────────────────────────────────────────
  4901.   remarks:     Makes the next buffer in the buffer list the current
  4902.                buffer, and displays it in the current edit window. The
  4903.                buffer previously displayed in the edit window will not
  4904.                be destroyed.
  4905.   returns:     nothing
  4906.   see also:    filelist, prevfile
  4907.  
  4908.  
  4909.   nexthist                                                 [Lib][prompt]
  4910.   ──────────────────────────────────────────────────────────────────────
  4911.   remarks:     Displays the next history string in a prompt. This
  4912.                function is only for use within prompts.
  4913.   returns:     nothing
  4914.   see also:    gethistname, prevhist
  4915.  
  4916.  
  4917.   nextwindow                                                  [Lib][win]
  4918.   ──────────────────────────────────────────────────────────────────────
  4919.   remarks:     Switches the focus to the next window on the screen.
  4920.   returns:     nothing
  4921.   see also:    prevwindow
  4922.  
  4923.  
  4924.   object?      object
  4925.   ──────────────────────────────────────────────────────────────────────
  4926.   remarks:     Tests if an object exists. If 'object' is not specified,
  4927.                then the current object is assumed.
  4928.   returns:     TRUE if the object exists, otherwise null.
  4929.   see also:    destroyobject, object, objtype?
  4930.  
  4931.  
  4932.   objtype?     parentobj object
  4933.   ──────────────────────────────────────────────────────────────────────
  4934.   remarks:     Tests if the object 'parentobj' is located in the
  4935.                inheritance path of the specified object. If 'object' is
  4936.                not specified, the current object is assumed.
  4937.   returns:     TRUE if 'parentobj' is a parent object of 'object',
  4938.                otherwise null.
  4939.   see also:    inheritfrom, object, object?, wintype?
  4940.  
  4941.  
  4942.   okbox        message title                                    [Lib][a]
  4943.   ──────────────────────────────────────────────────────────────────────
  4944.   remarks:     Displays the specified message in a popup window with
  4945.                'Ok' and 'Cancel' buttons. If a title is not specified,
  4946.                'Message' is assumed.
  4947.  
  4948.   returns:     The name of the button pressed (Ok or Cancel), or null if
  4949.                no button was pressed.
  4950.   see also:    msgbox, say, shortbox, yncbox
  4951.  
  4952.   example:     if (okbox "Delete the file?" "Delete") == 'Ok' then 
  4953.                  .
  4954.                  .
  4955.                end 
  4956.  
  4957.  
  4958.   onalarm                                                          [Lib]
  4959.   ──────────────────────────────────────────────────────────────────────
  4960.   remarks:     This user-defined function is called by the editor
  4961.                library code (LIB.X) when sounding the PC speaker to call
  4962.                attention to a message. This function can be used to
  4963.                customize the alarm sound. 'onalarm' is called directly
  4964.                in the current event object and is not passed any
  4965.                parameters.
  4966.  
  4967.   returns:     none required
  4968.  
  4969.   example:     function  onalarm
  4970.                  // customized alarm sound
  4971.                  beep 950 30
  4972.                  beep 750 30
  4973.                end 
  4974.  
  4975.  
  4976.   onclose                                                          [Lib]
  4977.   ──────────────────────────────────────────────────────────────────────
  4978.   remarks:     This user-defined function is called by the editor
  4979.                library code (LIB.X) when a file or file manager window
  4980.                is closed and removed from memory.
  4981.  
  4982.                'onclose' is called directly in the current event object
  4983.                and is not passed any parameters.
  4984.  
  4985.   returns:     none required
  4986.   see also:    onfocus, onopen, onsave
  4987.   example:     see the configuration file EXT.AML
  4988.  
  4989.  
  4990.   oncomment    filename comment1 comment2                       [Lib][a]
  4991.   ──────────────────────────────────────────────────────────────────────
  4992.   remarks:     This user-defined function is called by the editor
  4993.                library (LIB.X) and extension code (EXT.AML) to return
  4994.                the language comments associated with a filename.
  4995.  
  4996.                'oncomment' is called directly in the current event
  4997.                object and is passed the filename as the first argument.
  4998.                'comment1' and 'comment2' are passed by reference and
  4999.                should be modified within 'oncomment' to return comment
  5000.                symbols.
  5001.  
  5002.   returns:     comment1 and comment2 (by reference)
  5003.   example:     see EXT.AML.
  5004.  
  5005.  
  5006.   oncompiling  filename linenumber
  5007.   ──────────────────────────────────────────────────────────────────────
  5008.   remarks:     This user-defined function is called by the editor
  5009.                (A.EXE) while a macro language source file is being
  5010.                compiled, and can be used to show progress during macro
  5011.                compilation.
  5012.  
  5013.                'oncompiling' is called directly in the current event
  5014.                object and is passed the name of the file being compiled
  5015.                and the line number of the last line compiled. After the
  5016.                file is compiled, 'oncompiling' is called again with no
  5017.                arguments.
  5018.  
  5019.   returns:     none required
  5020.   see also:    onloading, onprinting, onsaving
  5021.   example:     see the configuration file EXT.AML
  5022.  
  5023.  
  5024.   ondraw 
  5025.   ──────────────────────────────────────────────────────────────────────
  5026.   remarks:     This user-defined function is called by the editor
  5027.                (A.EXE) immediately after a window client area is updated
  5028.                (the 'd' window flag must be turned on - see the
  5029.                'windowflag' function). This function can be used to
  5030.                perform custom drawing or highlighting of the window
  5031.                client area.
  5032.  
  5033.                'ondraw' is called directly in the window event object
  5034.                with no arguments. Before calling this function, the
  5035.                editor sets the current window, current event object, and
  5036.                current buffer to those values associated with the window
  5037.                being drawn.
  5038.  
  5039.   returns:     none required
  5040.   see also:    onstatus, windowflag
  5041.  
  5042.  
  5043.   onentry      dosarg1 dosarg2 ...                                 [Lib]
  5044.   ──────────────────────────────────────────────────────────────────────
  5045.   remarks:     This user-defined function is called by the editor
  5046.                library code (LIB.X) after the default macro file A.X is
  5047.                loaded and executed.
  5048.  
  5049.                This function is typically used to perform a variety of
  5050.                editor initialization tasks, load DOS command line
  5051.                files, and process user-defined command line options.
  5052.  
  5053.                'onentry' is queued for execution (not called directly),
  5054.                and executes in the current event object. Any arguments
  5055.                passed to A.EXE on the DOS command line are also passed
  5056.                to 'onentry'.
  5057.  
  5058.   returns:     none required
  5059.   see also:    onexit
  5060.   example:     see the configuration file EXT.AML
  5061.  
  5062.  
  5063.   onexit                                                           [Lib]
  5064.   ──────────────────────────────────────────────────────────────────────
  5065.   remarks:     This user-defined function is called by the editor
  5066.                library code (LIB.X) when an edit session is ended and
  5067.                control is returned to DOS. This function is typically
  5068.                used to perform a variety of final-exit cleanup tasks.
  5069.  
  5070.                'onexit' is called directly in the current event object
  5071.                and is not passed any parameters.
  5072.  
  5073.   returns:     none required
  5074.   see also:    onentry
  5075.   example:     see the configuration file EXT.AML
  5076.  
  5077.  
  5078.   onfocus                                                          [Lib]
  5079.   ──────────────────────────────────────────────────────────────────────
  5080.   remarks:     This user-defined function is called by the editor
  5081.                library code (LIB.X) after the focus is switched to
  5082.                another file or file manager window. 'onfocus' is called
  5083.                directly in the current event object and is not passed
  5084.                any parameters.
  5085.   returns:     none required
  5086.   see also:    onclose, onkillfocus, onopen, onsave
  5087.  
  5088.  
  5089.   onfound      stringlength                                  [Ext][edit]
  5090.   ──────────────────────────────────────────────────────────────────────
  5091.   remarks:     This user-defined function is called by the editor
  5092.                library (LIB.X) and extension code (EXT.AML) when a
  5093.                string is found in the current buffer. Typically, this
  5094.                function is used to change the window view and/or
  5095.                highlight the string found.
  5096.  
  5097.                'onfound' is called directly in the current event object
  5098.                and is passed the length of the string.
  5099.  
  5100.   returns:     none required
  5101.   see also:    onhotkey
  5102.  
  5103.   example:     function  onfound (length)
  5104.                  .
  5105.                  .
  5106.                  // highlights the string found with the color
  5107.                  //   white on magenta
  5108.                  hilite length 1 95
  5109.                end 
  5110.  
  5111.  
  5112.   onhotkey     character                                     [Ext][edit]
  5113.   ──────────────────────────────────────────────────────────────────────
  5114.   remarks:     This user-defined function is called by the editor
  5115.                library (LIB.X) and extension code (EXT.AML) when a when
  5116.                a hotkey is entered from the file manager or a file
  5117.                picklist. Typically, this function is used to jump to a
  5118.                file beginning with the hotkey character
  5119.  
  5120.                'onhotkey' is called directly in the current event object
  5121.                and is passed the hotkey character.
  5122.  
  5123.   returns:     none required
  5124.   see also:    onfound
  5125.  
  5126.  
  5127.   onkillfocus                                                      [Lib]
  5128.   ──────────────────────────────────────────────────────────────────────
  5129.   remarks:     This user-defined function is called by the editor library
  5130.                code (LIB.X) when a window is about to lose the focus.
  5131.                'onkillfocus' is called directly in the current event
  5132.                object and is not passed any parameters.
  5133.  
  5134.   returns:     none required
  5135.   see also:    onfocus
  5136.  
  5137.  
  5138.   onloading    linenumber
  5139.   ──────────────────────────────────────────────────────────────────────
  5140.   remarks:     This user-defined function is called by the editor
  5141.                (A.EXE) as a file is being loaded, and can be used to
  5142.                show progress when loading a file.
  5143.  
  5144.                'onloading' is called directly in the current event
  5145.                object and is passed the line number of the last line
  5146.                loaded. After the file is loaded, 'onloading' is called
  5147.                again with no arguments.
  5148.  
  5149.   returns:     none required
  5150.   see also:    oncompiling, onprinting, onsaving
  5151.   example:     see the configuration file EXT.AML
  5152.  
  5153.  
  5154.   onopen       options                                             [Lib]
  5155.   ──────────────────────────────────────────────────────────────────────
  5156.   remarks:     This user-defined function is called by the editor
  5157.                library code (LIB.X) whenever a new file or file manager
  5158.                window is opened. This function is only called once when
  5159.                the file is initially opened, or when the file manager
  5160.                window is initially created (not when switching to other
  5161.                files or windows).
  5162.  
  5163.                This function can be used to perform a variety of
  5164.                initialization tasks on the newly opened file, such as
  5165.                turning on settings based on file extension, altering the
  5166.                position in the file, checking for tab expansion, etc.
  5167.  
  5168.                'onopen' is called directly in the current event object
  5169.                after the file or directory is loaded and before the
  5170.                window is displayed. The open options used to open the
  5171.                window are passed to 'onopen'.
  5172.  
  5173.   returns:     none required
  5174.   see also:    onclose, onfocus, onsave
  5175.  
  5176.  
  5177.   onprinting   linenumber
  5178.   ──────────────────────────────────────────────────────────────────────
  5179.   remarks:     This user-defined function is called by the editor
  5180.                (A.EXE) as a file is being printed, and can be used to
  5181.                show progress when printing a file.
  5182.  
  5183.                'onprinting' is called directly in the current event
  5184.                object and is passed the line number of the last line
  5185.                printed. After the file is printed, 'onprinting' is
  5186.                called again with no arguments.
  5187.  
  5188.   returns:     none required
  5189.   see also:    oncompiling, onloading, onsaving
  5190.   example:     see the configuration file EXT.AML
  5191.  
  5192.  
  5193.   onsave       filename                                      [Ext][edit]
  5194.   ──────────────────────────────────────────────────────────────────────
  5195.   remarks:     This user-defined function is called by the editor
  5196.                extension code (EXT.AML) immediately before a file is
  5197.                saved. 'onsave' is called directly in the current event
  5198.                object. The name of the file being saved is passed to
  5199.                'onsave'.
  5200.   returns:     none required
  5201.   see also:    onclose, onopen
  5202.  
  5203.  
  5204.   onsaving     linenumber
  5205.   ──────────────────────────────────────────────────────────────────────
  5206.   remarks:     This user-defined function is called by the editor
  5207.                (A.EXE) as a file is being saved, and can be used to show
  5208.                progress when saving a file.
  5209.  
  5210.                'onsaving' is called directly in the current event object
  5211.                and is passed the line number of the last line saved.
  5212.                After the file is saved, 'onsaving' is called again with
  5213.                no arguments.
  5214.  
  5215.   returns:     none required
  5216.   see also:    oncompiling, onloading, onprinting
  5217.   example:     see the configuration file EXT.AML
  5218.  
  5219.  
  5220.   onscanning   filename position                                   [Lib]
  5221.   ──────────────────────────────────────────────────────────────────────
  5222.   remarks:     This user-defined function is called by the editor
  5223.                library code (LIB.X) as files are being scanned for a
  5224.                string, and can be used to show progress during the scan.
  5225.  
  5226.                'onscanning' is called directly in the current event
  5227.                object before each file is scanned, and is passed the
  5228.                file name as the first argument. If the string is found
  5229.                in the file, 'onscanning' is called again with the same
  5230.                file name as the first argument, and a second argument
  5231.                which is the position (in bytes) in the file where the
  5232.                string was found. After all files are scanning,
  5233.                'onscanning' is called again with no arguments.
  5234.  
  5235.   returns:     none required
  5236.   see also:    scanfiles
  5237.   example:     see the configuration file EXT.AML.
  5238.  
  5239.  
  5240.   onstatus 
  5241.   ──────────────────────────────────────────────────────────────────────
  5242.   remarks:     This user-defined function is called by the editor
  5243.                (A.EXE) immediately before an edit window status line is
  5244.                updated (the 's' window flag must be turned on - see the
  5245.                'windowflag' function). The user-defined return value of
  5246.                'onstatus' will become the actual status line, allowing
  5247.                the status line to be customized.
  5248.  
  5249.                'onstatus' is called directly in the window event object
  5250.                with no arguments. Before calling this function, the
  5251.                editor sets the current window, current event object, and
  5252.                current buffer to those values associated with the window
  5253.                being drawn.
  5254.  
  5255.   returns:     The new user-defined status line
  5256.   see also:    ondraw, windowflag
  5257.  
  5258.  
  5259.   onsyntax     filename                                         [Lib][a]
  5260.   ──────────────────────────────────────────────────────────────────────
  5261.   remarks:     This user-defined function is called by the editor
  5262.                library (LIB.X) and extension code (EXT.AML) to return
  5263.                the syntax highlighting object associated with a
  5264.                filename.
  5265.  
  5266.                'onsyntax' is called directly in the current event object
  5267.                and is passed the filename. 'onsyntax' should return the
  5268.                syntax highlighting object associated with the filename.
  5269.  
  5270.   returns:     a syntax highlighting object.
  5271.   example:     see SYNTAX.AML.
  5272.  
  5273.  
  5274.   open         filespec opt=[bcefilhnprvz]                      [Lib][a]
  5275.   ──────────────────────────────────────────────────────────────────────
  5276.   remarks:     Opens the specified file or directory. If a file is
  5277.                specified, then an edit window is opened, otherwise a
  5278.                file manager window is opened. If nothing is specified,
  5279.                then the directory '*.*' is assumed.
  5280.  
  5281.                The following open options may be specified:
  5282.  
  5283.                  b - opens the file in binary mode. The binary line length
  5284.                      can be specified after the option 'b'. For example,
  5285.  
  5286.                        open "file.ext" "b20"
  5287.  
  5288.                      In the example above, a file is opened with a
  5289.                      binary line length of 20. If a binary line length
  5290.                      is not specified, the 'BinaryLength' configuration
  5291.                      variable in CONFIG.AML is assumed.
  5292.  
  5293.                  c - cascades the window with other windows when loading.
  5294.  
  5295.                  e - loads the file into the current edit window. The
  5296.                      previous buffer in the window is not destroyed.
  5297.  
  5298.                  f - opens the window in 'full-screen' mode (maximized,
  5299.                      with all the borders visible).
  5300.  
  5301.                  i - inserts the file at the cursor in the current edit
  5302.                      window. If a directory is specified, then the user
  5303.                      is prompted to select a file.
  5304.  
  5305.                  l - specifies the line in the file where the cursor
  5306.                      should be placed after loading. The line number is
  5307.                      specified after the option 'l'. For example:
  5308.  
  5309.                        open "file.ext" "l541"
  5310.  
  5311.                      In the example above, a file is opened and the
  5312.                      cursor is placed on line 541.
  5313.  
  5314.                  h - tiles the window horizontally with other windows on
  5315.                      the screen when loading.
  5316.  
  5317.                  n - minimizes the window when loading.
  5318.  
  5319.                  p - ignores history (the last window and cursor
  5320.                      position) when loading the file or directory. This
  5321.                      temporarily overrides the 'SavePosition'
  5322.                      configuration setting in CONFIG.AML
  5323.  
  5324.                  r - replaces the file in the current window with the
  5325.                      new file. The previous buffer in the window is
  5326.                      destroyed.
  5327.  
  5328.                  v - tiles the window vertically with other windows
  5329.                      on the screen when loading.
  5330.  
  5331.                  z - maximizes the window when loading.
  5332.  
  5333.   returns:     the bufferid of the file or directory if successful,
  5334.                otherwise null.
  5335.  
  5336.   see also:    close, openbuf, opennew, reopen, save, setname
  5337.  
  5338.   example:     open "C:\\FILE.TXT"
  5339.                  // opens the file C:\FILE.TXT
  5340.                open "C:\\FILE.TXT" "pz"
  5341.                  // opens the file C:\FILE.TXT in a maximized window,
  5342.                  //   ignoring history
  5343.                open "D:\\*.TXT" 'f'
  5344.                  // opens a full-screen file manager window displaying
  5345.                  //   all files with the extension ".TXT" in the root
  5346.                  //   directory of the D drive.
  5347.                open "C:\\FILE.TXT" "el23"
  5348.                  // opens the file C:\FILE.TXT and displays it in the
  5349.                  //   current edit window. The cursor is placed on
  5350.                  //   line 23.
  5351.  
  5352.  
  5353.   openbuf      buffer opt=[ceflhnprvz]                          [Lib][a]
  5354.   ──────────────────────────────────────────────────────────────────────
  5355.   remarks:     Displays an existing buffer in a new edit window. Any
  5356.                open options except 'b' and 'i' may be specified. See the
  5357.                'open' function for a description of open options.
  5358.  
  5359.                This function allows buffers to be created and
  5360.                manipulated within the editor before being displayed in a
  5361.                window.
  5362.  
  5363.                The buffer should previously have been assigned a buffer
  5364.                name (a fully qualified file name). If the buffer was
  5365.                created with the 'loadbuf' function, the buffer name will
  5366.                have automatically been set to the file name where the
  5367.                buffer was loaded, otherwise the 'setbufname' function
  5368.                should be used to assign a buffer name.
  5369.  
  5370.   returns:     nothing
  5371.   see also:    close, createbbuf, createbuf, loadbuf, open, opennew,
  5372.                reopen, save, setname
  5373.  
  5374.   example:     openbuf (loadbuf "C:\\FILE.TXT") 'z'
  5375.                  // load C:\FILE.TXT and display it in a maximized
  5376.                  //   window
  5377.  
  5378.                buffer = createbuf            // create a new buffer
  5379.                if buffer then 
  5380.                  setbufname "C:\\FILE.TXT"   // set the buffer name
  5381.                  openbuf buffer              // display the buffer
  5382.                end 
  5383.  
  5384.  
  5385.   opendesk     filename                                         [Lib][a]
  5386.   ──────────────────────────────────────────────────────────────────────
  5387.   remarks:     Loads a previously saved desktop from the specified
  5388.                filename and makes it the current desktop. The desktop
  5389.                does not become visible until the 'restoredesk' function
  5390.                is called.
  5391.   returns:     Non-zero if successful, otherwise zero
  5392.   see also:    begdesk, currdesk, enddesk, restoredesk, savedesk
  5393.  
  5394.  
  5395.   openf        file opt=[bcefilhnprvz1q]                     [Lib][fmgr]
  5396.   ──────────────────────────────────────────────────────────────────────
  5397.   remarks:     Opens a file with the specified options from the current
  5398.                file manager window. This call is a low level call
  5399.                intended for use within the file manager.
  5400.  
  5401.                See the 'open' function for a description of the
  5402.                available options. In addition to the options supported
  5403.                by the 'open' function, the following options are also
  5404.                supported:
  5405.  
  5406.                  1 - opens only the file or directory on the current
  5407.                      line, even if multiple files are marked.
  5408.                  q - closes the file manager window when loading.
  5409.  
  5410.   returns:     TRUE if successful, otherwise null.
  5411.   see also:    fdomark, open
  5412.  
  5413.  
  5414.   openfile     filename opt=[rwc]
  5415.   ──────────────────────────────────────────────────────────────────────
  5416.   remarks:     Opens the specified file for reading and/or writing. The
  5417.                following options can be specified:
  5418.  
  5419.                  c - create a new file or truncate the file if it
  5420.                      already exists
  5421.                  r - open the file for reading
  5422.                  w - open the file for writing
  5423.  
  5424.                If no options are specified, 'r' is assumed.
  5425.  
  5426.   returns:     A file handle if successful, otherwise -1.
  5427.   see also:    closefile, filepos, readfile, writefile
  5428.  
  5429.  
  5430.   openhistory  filename                                         [Lib][a]
  5431.   ──────────────────────────────────────────────────────────────────────
  5432.   remarks:     Opens the specified history file and replaces all
  5433.                existing history buffers with the history in the file.
  5434.                The current desktop is also replaced with the desktop
  5435.                saved in the history file.
  5436.   returns:     Non-zero if successful, otherwise null.
  5437.   see also:    savehistory
  5438.  
  5439.  
  5440.   openfold     opt=[s] row buffer
  5441.   ──────────────────────────────────────────────────────────────────────
  5442.   remarks:     Opens a closed fold. If 'buffer' is null or not
  5443.                specified, then the current buffer is assumed. If 'row'
  5444.                is not specified, then the line at the cursor is assumed.
  5445.                If option 's' is specified, all closed subfolds within
  5446.                the fold are also opened.
  5447.  
  5448.   returns:     the number of folds opened
  5449.   see also:    closefold, createfold, destroyfold, foldblock, getfold
  5450.  
  5451.   example:     openfold
  5452.                  // opens the closed fold at the current line in the
  5453.                  //   current buffer, leaving any subfolds closed
  5454.  
  5455.  
  5456.   openkey      filename                                         [Lib][a]
  5457.   ──────────────────────────────────────────────────────────────────────
  5458.   remarks:     Opens a key macro file saved with the 'savekey' function.
  5459.                If there is a name conflict with any currently defined
  5460.                key macros, the key macros in the opened file will
  5461.                replace the current key macros.
  5462.   returns:     TRUE if successful, otherwise null.
  5463.   see also:    savekey
  5464.  
  5465.  
  5466.   opennew      filename opt=[ceflhnprvz]                        [Ext][a]
  5467.   ──────────────────────────────────────────────────────────────────────
  5468.   remarks:     Creates a new buffer and displays it in an edit window.
  5469.                If 'filename' is not specified, the name "NEW.TXT" is
  5470.                assumed. See the 'open' function for a description of
  5471.                valid open options.
  5472.  
  5473.   returns:     nothing
  5474.   see also:    close, open, openbuf, reopen, save, setname
  5475.  
  5476.   example:     opennew "NEW.C"
  5477.  
  5478.  
  5479.   openmouse    opt=[dr]
  5480.   ──────────────────────────────────────────────────────────────────────
  5481.   remarks      Initializes the mouse. If successful, the mouse pointer
  5482.                is displayed at the center of the screen and the event
  5483.                queue will process mouse events. For this function to
  5484.                return successfully, a mouse driver such as MOUSE.COM or
  5485.                MOUSE.SYS must be installed before the editor is started.
  5486.  
  5487.                Any combination of the following options can be
  5488.                specified:
  5489.  
  5490.                  d - hides the mouse pointer when a key is pressed. The
  5491.                      mouse pointer is re-displayed when the mouse is
  5492.                      used again.
  5493.                  r - reverses the mouse buttons
  5494.  
  5495.   returns:     TRUE is successful, otherwise null
  5496.   see also:    closemouse
  5497.  
  5498.  
  5499.   ovltext      string col row buffer
  5500.   ──────────────────────────────────────────────────────────────────────
  5501.   remarks:     This function overlays a string onto a buffer at the
  5502.                specified row and column. If 'buffer' is null or not
  5503.                specified, then the current buffer is assumed. If 'col'
  5504.                and 'row' are not specified, then the current cursor
  5505.                position is assumed.
  5506.  
  5507.   returns:     TRUE if successful, otherwise null.
  5508.  
  5509.   see also:    delchar, instext
  5510.  
  5511.   example:     ovltext "some text"
  5512.                  // overlays "some text" at the cursor in the current
  5513.                  //   buffer
  5514.                ovltext "some text" 2 20
  5515.                  // overlays "some text" at column 2, line 20 in the
  5516.                  //   current buffer
  5517.                ovltext "some text" 1 1 "abc"
  5518.                  // overlays "some text" at column 1, line 1 in the
  5519.                  //   buffer "abc"
  5520.  
  5521.  
  5522.   pad          string field opt=[lr] padstring
  5523.   ──────────────────────────────────────────────────────────────────────
  5524.   remarks:     Left or right justifies the specified string within a
  5525.                field of length 'field'. One of the following options may
  5526.                be specified:
  5527.  
  5528.                  l - left justifies the string
  5529.                  r - right justifies the string
  5530.  
  5531.                If no options are specified, then 'r' is assumed.
  5532.  
  5533.                'padstring' is the string used to pad unused positions in
  5534.                the field. If 'padstring' is not specified, then blanks
  5535.                are assumed.
  5536.  
  5537.   returns:     A padded left or right justified string.
  5538.   see also:    copystr, sizeof
  5539.  
  5540.   example:     pad 123 7                      // returns "    123"
  5541.                pad 123 7 'l'                  // returns "123    "
  5542.                pad 123 7 'r' '.'              // returns "....123"
  5543.  
  5544.  
  5545.   pagedown     (+/-)lines window
  5546.   ──────────────────────────────────────────────────────────────────────
  5547.   remarks:     Scrolls the text in a window down one page, plus or minus
  5548.                the specified number of lines. The default page size is
  5549.                the number of visible rows on the screen minus one row.
  5550.                The cursor is moved by the same amount that the text
  5551.                scrolls.
  5552.  
  5553.                If 'window' is not specified, the current window is
  5554.                assumed. The value of 'lines' is added to the page size.
  5555.  
  5556.   returns:     TRUE if successful, otherwise null.
  5557.   see also:    pageup
  5558.  
  5559.   example:     pagedown
  5560.                  // scrolls down one page
  5561.                pagedown 1
  5562.                  // scrolls down one page and one line
  5563.                pagedown -(getviewrows / 2)
  5564.                  // scrolls down one half page
  5565.  
  5566.  
  5567.   pageup       (+/-)lines window
  5568.   ──────────────────────────────────────────────────────────────────────
  5569.   remarks:     Scrolls the text in a window up one page, plus or minus
  5570.                the specified number of lines. The default page size is
  5571.                the number of visible rows on the screen minus one row.
  5572.                The cursor is moved by the same amount that the text
  5573.                scrolls.
  5574.  
  5575.                If 'window' is not specified, the current window is
  5576.                assumed. The value of 'lines' is added to the page size.
  5577.  
  5578.   returns:     TRUE if successful, otherwise null.
  5579.   see also:    pagedown
  5580.  
  5581.   example:     pageup
  5582.                  // scrolls up one page
  5583.                pageup 1
  5584.                  // scrolls up one page and one line
  5585.                pageup -(getviewrows / 2)
  5586.                  // scrolls up one half page
  5587.  
  5588.  
  5589.   pan          (+/-)cols (+/-)rows
  5590.   ──────────────────────────────────────────────────────────────────────
  5591.   remarks:     Pans to a new relative location on the virtual screen by
  5592.                changing the mapping of the physical video device (the
  5593.                screen) to the virtual video device. 'cols' and 'rows'
  5594.                specify the relative distance in screen columns and rows
  5595.                from the current position.
  5596.  
  5597.   returns:     TRUE if successful, otherwise null
  5598.   see also:    panto
  5599.  
  5600.   example:     pan 2 -2    // pans right 2 columns and up 2 rows
  5601.  
  5602.  
  5603.   pankey                                                      [Lib][win]
  5604.   ──────────────────────────────────────────────────────────────────────
  5605.   remarks:     Pans through the virtual screen by using the cursor keys.
  5606.   returns:     nothing
  5607.   see also:    sizekey
  5608.  
  5609.  
  5610.   panto        virtualX virtualY
  5611.   ──────────────────────────────────────────────────────────────────────
  5612.   remarks:     Pans to a new absolute location on the virtual screen by
  5613.                changing the mapping of the physical video device (the
  5614.                screen) to the virtual video device. 'virtualX' and
  5615.                'virtualY' specify an absolute X,Y coordinate on the
  5616.                virtual screen where the upper left corner of the
  5617.                physical screen is to be located.
  5618.  
  5619.                The virtual video device is 64000 x 64000 characters.
  5620.                When the editor is initially invoked, physical screen is
  5621.                placed at 16000,16000 in the virtual screen.
  5622.  
  5623.   returns:     TRUE if successful, otherwise null
  5624.   see also:    panto
  5625.  
  5626.   example:     panto 8000 10000     // pans to column 8000, row 10000
  5627.  
  5628.  
  5629.   parse        searchstr string opt=[irwx] ref1 ref2 ...
  5630.   ──────────────────────────────────────────────────────────────────────
  5631.   remarks:     Parses substrings (or substring positions) within a
  5632.                string into local or global variables. This function can
  5633.                be very convenient for parsing almost any string with
  5634.                only one function call. See the 'pos' function for a
  5635.                description of valid search options.
  5636.  
  5637.                If search option 'x' (regular expressions) is specified,
  5638.                and 'tagged' patterns (enclosed within the {} grouping
  5639.                operators) are specified in the search string, any tagged
  5640.                patterns found are returned in the variables (ref1, ref2,
  5641.                etc.) passed by reference to this function.
  5642.  
  5643.                If search option 'x' is not specified (or tagged patterns
  5644.                are not specified) the positions of successive
  5645.                occurrences of 'searchstr' within 'string' are returned
  5646.                in the variables (ref1, ref2, etc.) passed by reference
  5647.                to this function.
  5648.  
  5649.   returns:     The position in the string where the first occurrence of
  5650.                'searchstr' is found. Substrings (or substring positions)
  5651.                are returned in variables passed by reference to this
  5652.                function.
  5653.  
  5654.   see also:    pos, poschar, posnot, sub
  5655.  
  5656.   example:     parse "{[0-9]#}.*{[0-9]#}.*{[0-9]#}" str 'x'
  5657.                       ref a ref b ref c
  5658.                  // parses 'str', and places the first three numbers
  5659.                  // found in variables a, b, and c.
  5660.                str = "bacdaae"
  5661.                parse "a" str '' ref x ref y ref z
  5662.                  // after this function call: x=2, y=5, z=6
  5663.  
  5664.  
  5665.   pass         arg1 arg2 ...
  5666.   ──────────────────────────────────────────────────────────────────────
  5667.   remarks:     Calls the current executing function in the parent
  5668.                object(s) of the current (executing) object, passing the
  5669.                arguments 'arg1', 'arg2', etc.
  5670.  
  5671.                This function can be used to intercept an event or
  5672.                function call for pre-processing or post-processing.
  5673.  
  5674.   returns:     The return value from the function call.
  5675.   see also:    call, eval, passprev, send, sendobject
  5676.  
  5677.   example:     function <lbutton>
  5678.                  .
  5679.                  // pre-processing
  5680.                  .
  5681.                  pass  // pass control to <lbutton> in a parent object
  5682.                  .
  5683.                  // post-processing
  5684.                  .
  5685.                end 
  5686.  
  5687.  
  5688.   passprev     arg1 arg2 ...
  5689.   ──────────────────────────────────────────────────────────────────────
  5690.   remarks:     Calls the current executing function in the 'preempted'
  5691.                object (if any) of the current object, passing the
  5692.                arguments 'arg1', 'arg2', etc. In all other respects,
  5693.                this function is identical to the 'pass' function.
  5694.  
  5695.                A 'preempted' object is an object which has been
  5696.                temporarily overridden by an object with the same name,
  5697.                defined from within an external macro executed with the
  5698.                'runmacro' function.
  5699.  
  5700.                Individual functions are temporarily replaced or
  5701.                'preempted' from within the macro by simply redefining
  5702.                the functions in an object with the same name as the
  5703.                object to be overridden. This allows detailed, temporary
  5704.                modifications to be made to an existing object, without
  5705.                adding new objects to the object hierarchy. The
  5706.                modifications will disappear when the macro is finished
  5707.                executing.
  5708.  
  5709.                This function allows you to access an older overridden or
  5710.                'preempted' function from within the newer overriding or
  5711.                'preempting' function.
  5712.  
  5713.   returns:     The return value from the function call.
  5714.   see also:    call, eval, pass, send, sendobject
  5715.  
  5716.  
  5717.   peek         address length
  5718.   ──────────────────────────────────────────────────────────────────────
  5719.   remarks:     Gets the portion of DOS memory specified by 'address' and
  5720.                'length'. The specified address must be an absolute
  5721.                32-bit address, not a segmented address. The maximum
  5722.                length is 16000.
  5723.  
  5724.   returns:     a string representing a copy of the specified DOS memory
  5725.                area.
  5726.   see also:    poke
  5727.  
  5728.   example:     peek 0 100     // returns the first 100 bytes of memory
  5729.  
  5730.  
  5731.   playkey      keyname                                        [Lib][mon]
  5732.   ──────────────────────────────────────────────────────────────────────
  5733.   remarks:     Plays the key macro assigned to the specified key. If
  5734.                'keyname' is not specified, the current scrap key macro
  5735.                is assumed.
  5736.  
  5737.   returns:     TRUE if successful, otherwise null.
  5738.   see also:    assignkey, openkey, playing?, savekey, setting
  5739.  
  5740.   example:     playkey
  5741.                  // plays the current scrap key macro
  5742.                playkey "<ctrl b>"
  5743.                  // plays the key macro assigned to <ctrl b>
  5744.  
  5745.  
  5746.   playing?     keyname
  5747.   ──────────────────────────────────────────────────────────────────────
  5748.   remarks:     Tests if a key macro is currently playing. If 'keyname'
  5749.                is not specified, the current scrap key macro is assumed.
  5750.   returns:     nothing
  5751.   see also:    assignkey, openkey, playkey, savekey, setting
  5752.  
  5753.  
  5754.   poke         address string
  5755.   ──────────────────────────────────────────────────────────────────────
  5756.   remarks:     Copies a string to the specified DOS memory address.
  5757.                'address' must be an absolute 32-bit address, not a
  5758.                segmented address. Obviously, this function should be
  5759.                used with care.
  5760.   returns:     nothing
  5761.   see also:    peek
  5762.  
  5763.  
  5764.   popcursor    buffer opt=[ad]
  5765.   ──────────────────────────────────────────────────────────────────────
  5766.   remarks:     If no options are specified, this function pops a
  5767.                position from the internal cursor stack, and moves the
  5768.                cursor to the popped position. The popped position must
  5769.                have been placed on the stack with the 'pushcursor'
  5770.                function. If 'buffer' is null or not specified, the
  5771.                current buffer is assumed.
  5772.  
  5773.                Any combination of the following options may be specified:
  5774.  
  5775.                  a - pops all positions from the cursor stack
  5776.                  d - don't move the cursor to the popped position
  5777.  
  5778.   returns:     nothing
  5779.   see also:    pushcursor
  5780.  
  5781.  
  5782.   pophistory   historybuffer title                              [Lib][a]
  5783.   ──────────────────────────────────────────────────────────────────────
  5784.   remarks:     Displays a history popup menu for the specified history
  5785.                buffer, with an optional menu title.
  5786.  
  5787.   returns:     The string selected from the popup menu. Returns null if
  5788.                nothing was selected or the history buffer does not
  5789.                exist.
  5790.  
  5791.   see also:    askhistory
  5792.  
  5793.   example:     pophistory "_load"
  5794.                  // displays a popup menu for the "_load" history buffer
  5795.                pophistory "_load" "Select a File"
  5796.                  // displays a popup menu for the "_load" history buffer
  5797.                  //   with the title 'Select a File'
  5798.  
  5799.  
  5800.   popup        menuname title menuwidth menuheight              [Lib][a]
  5801.   ──────────────────────────────────────────────────────────────────────
  5802.   remarks:     Displays the popup menu 'menuname'. 'menuname' can be the
  5803.                name of a menu defined with the 'menu' statement, or a
  5804.                bufferid. The following parameters can also be specified:
  5805.  
  5806.                title      - the popup window title.
  5807.  
  5808.                menuwidth  - the menu width. If none is specified, and
  5809.                             the menu was defined with the 'menu'
  5810.                             function, the length of the longest line
  5811.                             determines the menu width.
  5812.  
  5813.                menuheight - the menu height. If none is specified, the
  5814.                             lesser of the screen rows or the menu rows
  5815.                             is assumed.
  5816.  
  5817.                If the menu or buffer has been named with 'setbufname',
  5818.                it will remember the previous window and cursor position
  5819.                each time it is displayed.
  5820.  
  5821.   returns:     For popup menus defined with the 'menu' statement, the
  5822.                macro expression associated with the menu item is
  5823.                evaluated and the result is returned. If no macro
  5824.                expression is associated with menu item or the menu was
  5825.                not defined with the 'menu' statement, then the menu item
  5826.                description line is returned. If no item was selected
  5827.                from the menu, then the null string is returned.
  5828.  
  5829.   see also:    askfile, getmenu, menu
  5830.  
  5831.   example:     popup "files" "Select a File"
  5832.                  // displays the popup menu 'files' with the title
  5833.                  //   'Select a File'
  5834.                popup "files" '' 25 10
  5835.                  // displays the popup menu 'files' with no title and
  5836.                  //   a width of 25 columns and a height of 10 rows
  5837.  
  5838.  
  5839.   pos          searchstr string opt=[irwx]
  5840.   ──────────────────────────────────────────────────────────────────────
  5841.   remarks:     Searches for the specified search string within 'string'.
  5842.                Any of the following search options may be specified:
  5843.  
  5844.                  i - ignore case
  5845.                  r - search in reverse from the end of the string
  5846.                  w - whole words only
  5847.                  x - use regular expressions (see 'Regular Expression
  5848.                      Searching')
  5849.  
  5850.   returns:     The position in 'string' where the first occurrence of
  5851.                the search string is found, or zero if nothing is found.
  5852.  
  5853.   see also:    parse, poschar, posnot, sub
  5854.  
  5855.   example:     pos 'p' "apples"               // returns 2
  5856.                pos 'p' "apples" 'r'           // returns 3
  5857.                pos 'ES' "apples" 'i'          // returns 5
  5858.  
  5859.  
  5860.   poschar      charclass string opt=[r]
  5861.   ──────────────────────────────────────────────────────────────────────
  5862.   remarks:     Searches for the first character in 'string' which is
  5863.                found in 'charclass'. Character ranges such as 'a-z' or
  5864.                'A-Z' can be specified. If option 'r' is specified, the
  5865.                search proceeds from the end of string to the beginning
  5866.                of the string.
  5867.  
  5868.   returns:     The position in the string where the first character was
  5869.                found, or zero if not found.
  5870.  
  5871.   see also:    parse, pos, posnot, sub
  5872.  
  5873.   example:     poschar "abc" "123b5a78"       // returns 4
  5874.                poschar "abc" "123b5a78" 'r'   // returns 6
  5875.                poschar "apples" "oranges"     // returns 3
  5876.                poschar "c-f" "oranges"        // returns 6
  5877.  
  5878.  
  5879.   posnot       charclass string opt=[r]
  5880.   ──────────────────────────────────────────────────────────────────────
  5881.   remarks:     Searches for the first character in 'string' which is not
  5882.                found in 'charclass'. Character ranges such as 'a-z' or
  5883.                'A-Z' can be specified. If option 'r' is specified, the
  5884.                search proceeds from the end of string to the beginning
  5885.                of the string.
  5886.  
  5887.   returns:     The position in the string where the first character not
  5888.                in 'charclass' was found, or zero if not found.
  5889.  
  5890.   see also:    parse, pos, poschar, sub
  5891.  
  5892.   example:     posnot "abc" "abc123ab"        // returns 4
  5893.                posnot "abc" "abc123ab" 'r'    // returns 6
  5894.                posnot "oranges" "apples"      // returns 2
  5895.                posnot "a-r" "oranges"         // returns 7
  5896.  
  5897.  
  5898.   prevfile                                                   [Lib][edit]
  5899.   ──────────────────────────────────────────────────────────────────────
  5900.   remarks:     Makes the previous buffer in the buffer list the current
  5901.                buffer, and displays it in the current edit window. The
  5902.                buffer previously displayed in the edit window will not
  5903.                be destroyed.
  5904.   returns:     nothing
  5905.   see also:    filelist, nextfile
  5906.  
  5907.  
  5908.   prevhist                                                 [Lib][prompt]
  5909.   ──────────────────────────────────────────────────────────────────────
  5910.   remarks:     Displays the previous history string in a prompt. This
  5911.                function is only for use within prompts.
  5912.   returns:     nothing
  5913.   see also:    gethistname, nexthist
  5914.  
  5915.  
  5916.   prevwindow                                                  [Lib][win]
  5917.   ──────────────────────────────────────────────────────────────────────
  5918.   remarks:     Switches the focus to the previous window on the screen.
  5919.   returns:     nothing
  5920.   see also:    nextwindow
  5921.  
  5922.  
  5923.   printblock   device header mark
  5924.   ──────────────────────────────────────────────────────────────────────
  5925.   remarks:     Prints marked text. The text is printed using the printer
  5926.                settings specified with the 'printformat' function. If
  5927.                'mark' is not specified, the default markid is assumed.
  5928.  
  5929.                All other arguments are identical to the 'printbuf'
  5930.                function (see 'printbuf').
  5931.  
  5932.   returns:     TRUE if successful, otherwise null.
  5933.   see also:    printbuf, printformat
  5934.  
  5935.  
  5936.   printbuf     device header buffer
  5937.   ──────────────────────────────────────────────────────────────────────
  5938.   remarks:     Prints a buffer. The text is printed using the printer
  5939.                settings specified with the 'printformat' function. If
  5940.                'buffer' is null or not specified, then the current
  5941.                buffer is assumed.
  5942.  
  5943.                'header' specifies a string to place on the header and/or
  5944.                footer of each page. Print headers and/or footers must be
  5945.                enabled with the 'printformat' function (see the
  5946.                'printformat' function).
  5947.  
  5948.                'device' is the printer device to use. Filenames or
  5949.                device names such as 'prn', 'lpt1', 'lpt2', etc.  can be
  5950.                specified. If 'device' is null or not specified, then
  5951.                'prn' is assumed.
  5952.  
  5953.   returns:     TRUE if successful, otherwise null.
  5954.   see also:    printblock, printformat
  5955.  
  5956.   example:     printbuf
  5957.                  // prints the current buffer to the device 'prn'
  5958.                printbuf "c:\\print.txt"
  5959.                  // prints the current buffer to the file 'c:\\print.txt'
  5960.                printbuf "lpt1" "Inventory" "abc"
  5961.                  // prints the buffer 'abc' to the device 'prn' using
  5962.                  //   the header/footer 'Inventory'
  5963.  
  5964.  
  5965.   printformat  printer opt=[efhlps] pagesize leftmarg topmarg rightmarg
  5966.                bottommarg linespace copies
  5967.   ──────────────────────────────────────────────────────────────────────
  5968.   remarks:     Changes the current printer settings. The following
  5969.                printer settings can be specified:
  5970.  
  5971.                printer    - reserved for future use
  5972.  
  5973.                pagesize   - specifies the lines per page of printed
  5974.                             output. This includes the top margin and the
  5975.                             bottom margin. After the specified lines per
  5976.                             page have been printed, a formfeed character
  5977.                             (ASCII 12) will be sent to the printer and a
  5978.                             new page will be started.
  5979.  
  5980.                             If 'pagesize' is zero, printing will be
  5981.                             continuous (no formfeed characters will be
  5982.                             sent to the printer) and 'topmarg',
  5983.                             'bottommarg', and the option 'p' will be
  5984.                             ignored.
  5985.  
  5986.                linespace  - specifies the number of lines to advance
  5987.                             after printing each line of output. A value
  5988.                             of 1 generates single-spaced output, 2
  5989.                             generates double-spaced output, and so on.
  5990.  
  5991.                copies     - specifies the number of copies to print.
  5992.  
  5993.                topmarg    - specifies the number of blank lines to
  5994.                             precede printed output at the top of each
  5995.                             page. This value is included in 'pagesize'.
  5996.                             'topmarg' is ignored if 'pagesize' is zero.
  5997.  
  5998.                bottommarg - specifies the number of blank lines to
  5999.                             follow  printed output at the bottom of each
  6000.                             page. This value is included in 'pagesize'.
  6001.                             'bottommarg' is ignored if 'pagesize' is
  6002.                             zero.
  6003.  
  6004.                leftmarg   - specifies the number of blank columns to
  6005.                             precede the printed output on each line.
  6006.  
  6007.                rightmarg  - specifies the column position at which to
  6008.                             truncate each printed line. This column
  6009.                             position is relative to column zero of the
  6010.                             printed output, not the file being printed.
  6011.                             If zero is specified, lines are not
  6012.                             truncated.
  6013.  
  6014.  
  6015.                Any of the following print options can also be specified:
  6016.  
  6017.                h - prints a header at the top of each page. The header
  6018.                    is specified in the 'printbuf' or 'printblock'
  6019.                    functions when printing. This option is ignored if
  6020.                    'pagesize' is zero.
  6021.  
  6022.                f - prints a footer at the bottom of each page. The
  6023.                    footer is specified in the 'printbuf' or 'printblock'
  6024.                    functions when printing. This option is ignored if
  6025.                    'pagesize' is zero.
  6026.  
  6027.                s - adds a separator line after the header line and
  6028.                    before the footer line.
  6029.  
  6030.                p - prints a right justified page number on the header
  6031.                    and footer lines. If neither a header or footer was
  6032.                    specified, a blank header line is assumed. This
  6033.                    option is ignored if 'pagesize' is zero.
  6034.  
  6035.                l - prints a line number at the beginning of each line.
  6036.  
  6037.                e - sends a formfeed character to the printer when
  6038.                    printing is completed.
  6039.  
  6040.   returns:     nothing
  6041.   see also:    printblock, printbuf
  6042.  
  6043.  
  6044.   process 
  6045.   ──────────────────────────────────────────────────────────────────────
  6046.   remarks:     Creates an editor subprocess by invoking the editor
  6047.                recursively. This function does not return until the
  6048.                'endprocess' function is called. The effect of this
  6049.                function is equivalent to the following loop:
  6050.  
  6051.                  while dispatch do 
  6052.                    .
  6053.                    .
  6054.                  end 
  6055.  
  6056.   returns:     nothing
  6057.   see also:    dispatch, endprocess
  6058.  
  6059.  
  6060.   purgequeue 
  6061.   ──────────────────────────────────────────────────────────────────────
  6062.   remarks:     Removes all events from the event queue.
  6063.   returns:     nothing
  6064.   see also:    queue, queueobject, sizequeue
  6065.  
  6066.  
  6067.   pushcursor   buffer
  6068.   ──────────────────────────────────────────────────────────────────────
  6069.   remarks:     Saves the cursor position on an internal cursor stack
  6070.                which is unique for each buffer. If 'buffer' is null or
  6071.                not specified, the current buffer is assumed.
  6072.   returns:     nothing
  6073.   see also:    popcursor
  6074.  
  6075.  
  6076.   qualify      filename filespec
  6077.   ──────────────────────────────────────────────────────────────────────
  6078.   remarks:     Converts an unqualified or partially qualified filename
  6079.                into a fully-qualified filename, including drive and
  6080.                directory. 'filespec' is used as the 'template' for the
  6081.                qualification. If 'filespec' is not specified, the
  6082.                current drive and path are assumed.
  6083.  
  6084.   returns:     a fully qualified filename or directory specification.
  6085.   see also:    bootpath, getbootpath
  6086.  
  6087.   example:     qualify "file.txt"
  6088.                  // returns C:\FILE.TXT if C:\ is the current path
  6089.                qualify "file.txt" "e:\\doc"
  6090.                  // returns E:\DOC\FILE.TXT
  6091.  
  6092.  
  6093.   queue        function arg1 arg2 ...
  6094.   ──────────────────────────────────────────────────────────────────────
  6095.   remarks:     Queues a function call for later execution. The specified
  6096.                function and arguments 'arg1', 'arg2', etc. are placed on
  6097.                on the event queue. When the editor is idle, it will read
  6098.                the event queue and attempt to call the function in the
  6099.                current event object.
  6100.  
  6101.   returns:     TRUE if successful, otherwise null.
  6102.   see also:    purgequeue, queueobject, sizequeue
  6103.  
  6104.   example:     queue "abc" 1 2 4
  6105.                  // queues the function call 'abc 1 2 4' for later
  6106.                  //   execution in the current event object
  6107.  
  6108.  
  6109.   queuekey     keycode1 keycode2 ...
  6110.   ──────────────────────────────────────────────────────────────────────
  6111.   remarks:     Pushes the specified keycodes onto the editor event queue
  6112.                for later execution.
  6113.  
  6114.   returns:     nothing
  6115.   see also:    getkey, getkeycode, sendkey
  6116.  
  6117.   example:     keycode = getkey     // gets a keycode...
  6118.                queuekey keycode     // and queues it for execution
  6119.  
  6120.  
  6121.   queueobject  object function arg1 arg2 ...
  6122.   ──────────────────────────────────────────────────────────────────────
  6123.   remarks:     Queues a function call for later execution in a specific
  6124.                object. The specified object, function, and arguments
  6125.                'arg1', 'arg2', etc. are placed on the event queue. When
  6126.                the editor is idle, it will read the event queue and
  6127.                attempt to call the function in the specified object.
  6128.  
  6129.   returns:     TRUE if successful, otherwise null.
  6130.   see also:    purgequeue, queue, sizequeue
  6131.  
  6132.   example:     queueobject "edit" "abc" 1 2 4
  6133.                  // queues the function call 'abc 1 2 4' for later
  6134.                  //   execution in the object 'edit'
  6135.  
  6136.  
  6137.   rand         seed
  6138.   ──────────────────────────────────────────────────────────────────────
  6139.   remarks:     Generates a random number between 0 and 2147483647. The
  6140.                random number generator can be initialized by specifying
  6141.                a random number 'seed'.
  6142.  
  6143.                Note: the editor library initializes the random number
  6144.                generator with a value based on the current time when the
  6145.                editor is started.
  6146.  
  6147.   returns:     a random number.
  6148.  
  6149.   example:     rand 12345    // initializes the random number generator
  6150.                rand mod 100  // returns a random number between 0 and 99
  6151.  
  6152.  
  6153.   readfile     handle length
  6154.   ──────────────────────────────────────────────────────────────────────
  6155.   remarks:     Reads 'length' characters from the current position in
  6156.                the open file specified by 'handle'. 'length' may not
  6157.                exceed 16000. The current position in the file is
  6158.                advanced by the amount of characters read.
  6159.  
  6160.   returns:     The data read from the file if successful, otherwise
  6161.                null. The number of characters actually read from the
  6162.                file can be determined by using the 'sizeof' function on
  6163.                the returned string.
  6164.  
  6165.   see also:    closefile, filepos, openfile, writefile
  6166.  
  6167.   example:     handle = openfile "C:\\FILE.TXT"   // reads the first
  6168.                if handle <> -1 then               // 100 bytes of
  6169.                  str = readfile handle 100        // C:\FILE.TXT into
  6170.                  closefile handle                 // the variable 'str'
  6171.                end 
  6172.  
  6173.  
  6174.   redo         buffer
  6175.   ──────────────────────────────────────────────────────────────────────
  6176.   remarks:     Reverses the changes made by the last 'undo' function
  6177.                call for a specific buffer. If 'buffer' is null or not
  6178.                specified, then the current buffer is assumed.
  6179.   returns:     TRUE if successful, otherwise null.
  6180.   see also:    undo, undobegin, undocursor, undoend
  6181.  
  6182.  
  6183.   renamefile   filename newfilename
  6184.   ──────────────────────────────────────────────────────────────────────
  6185.   remarks:     Renames the the specified filename to 'newfilename'. A
  6186.                directory can also be renamed to another directory on the
  6187.                same drive.
  6188.   returns:     TRUE if successful, otherwise null.
  6189.   see also:    copyfile, deletefile
  6190.  
  6191.  
  6192.   reopen       filename                                 [Ext][edit_fmgr]
  6193.   ──────────────────────────────────────────────────────────────────────
  6194.   remarks:     Reloads the current window with the specified file or
  6195.                directory. If 'filename' is not specified, the buffer
  6196.                name of the current buffer is assumed. The previous file
  6197.                or directory is destroyed.
  6198.  
  6199.   returns:     nothing
  6200.   see also:    close, open, openbuf, opennew, save, setname
  6201.  
  6202.   example:     reopen
  6203.                  // refreshes the current file from disk
  6204.                reopen "C:\\FILE.TXT"
  6205.                  // loads C:\FILE.TXT into the current window,
  6206.                  //   destroying the existing buffer in the window
  6207.  
  6208.  
  6209.   replace      searchstr replacestr opt=[abfgilnorswx*[~] mark buffer
  6210.   ──────────────────────────────────────────────────────────────────────
  6211.   remarks:     Searches for the specified search string within a buffer,
  6212.                mark, or line, and replaces it with 'replstr'. If
  6213.                'buffer' is not specified, the current buffer is assumed.
  6214.  
  6215.                See the 'find' function for a list of available search
  6216.                options.
  6217.  
  6218.                If option 'a' is specified, all occurrences of the
  6219.                'searchstr' found will be replaced with 'replacestr'. If
  6220.                option 'a' is not specified, then only the first
  6221.                occurrence of the search string is replaced.
  6222.  
  6223.                If the string is found and neither of the search options
  6224.                'a' or 'n' are specified, then the cursor is moved to the
  6225.                beginning of the found string, otherwise the cursor does
  6226.                not move.
  6227.  
  6228.   returns:     If option 'a' is specified, the number of replacements
  6229.                made is returned, otherwise the length of the replaced
  6230.                string is returned. If nothing is found, then null is
  6231.                returned.
  6232.  
  6233.   see also:    find, search
  6234.  
  6235.   example:     replace "apples" "oranges"
  6236.                  // replaces the next occurrence of 'apples' with
  6237.                  //   'oranges' in the current buffer, starting at one
  6238.                  //   character after the cursor position
  6239.                replace "apples" "oranges" "ag"
  6240.                  // replaces all occurrences of 'apples' with 'oranges'
  6241.                  //   in the current buffer and returns the number of
  6242.                  //   occurrences. The cursor is not moved.
  6243.  
  6244.  
  6245.   repldlg                                                    [Lib][edit]
  6246.   ──────────────────────────────────────────────────────────────────────
  6247.   remarks:     Displays a find and replace dialog box.
  6248.   returns:     the search and replace multi-string (searchstr /
  6249.                replacestr / options) to be used for the searching and
  6250.                replacing, or null if nothing is specified
  6251.   see also:    about, finddlg, scandlg
  6252.  
  6253.  
  6254.   restore      window                                           [Lib][a]
  6255.   ──────────────────────────────────────────────────────────────────────
  6256.   remarks:     Restores the specified window. If 'window' is not
  6257.                specified, the current window is assumed.
  6258.   returns:     nothing
  6259.   see also:    max?, maximize, min?, minimize
  6260.  
  6261.  
  6262.   restoredesk                                                   [Lib][a]
  6263.   ──────────────────────────────────────────────────────────────────────
  6264.   remarks:     Removes all existing windows on the screen and makes the
  6265.                current desktop visible. The current desktop is set by
  6266.                the 'opendesk', 'currdesk', and 'openhistory' functions.
  6267.                The 'begdesk' and 'enddesk' functions also change the
  6268.                current desktop.
  6269.  
  6270.   returns:     nothing
  6271.   see also:    begdesk, currdesk, enddesk, opendesk, openhistory,
  6272.                savedesk
  6273.  
  6274.   example:     opendesk "C:\\DESKTOP.DSK"
  6275.                  // loads the previously saved desktop in C:\DESKTOP.DSK
  6276.                  //   and makes it the current desktop
  6277.                restoredesk
  6278.                  // makes the current desktop visible
  6279.  
  6280.  
  6281.   right        cols buffer
  6282.   ──────────────────────────────────────────────────────────────────────
  6283.   remarks:     Moves the cursor to the right. 'cols' specifies the
  6284.                number of columns to move. If 'cols' is not specified, 1
  6285.                is assumed. If 'buffer' is null or not specified, the
  6286.                current buffer is assumed.
  6287.  
  6288.   returns:     TRUE if successful, otherwise null.
  6289.   see also:    down, left, up
  6290.  
  6291.   example:     right      // moves the cursor right 1 column
  6292.                right 5    // moves the cursor right 5 columns
  6293.  
  6294.  
  6295.   rollcol      (+/-)cols window
  6296.   ──────────────────────────────────────────────────────────────────────
  6297.   remarks:     Scrolls the text in a window left or right, relative to
  6298.                the current position. If 'window' is not specified, the
  6299.                current window is assumed. The cursor is moved by the
  6300.                same amount that the text scrolls.
  6301.  
  6302.                'cols' specifies the number of columns to scroll.
  6303.                Positive numbers scroll right and negative numbers scroll
  6304.                left.
  6305.  
  6306.   returns:     TRUE if successful, otherwise null.
  6307.   see also:    rollrow
  6308.  
  6309.   example:     rollcol 4            // scrolls right 4 columns
  6310.                rollcol -1           // scrolls left 1 column
  6311.  
  6312.  
  6313.   rollrow      rows window
  6314.   ──────────────────────────────────────────────────────────────────────
  6315.   remarks:     Scrolls the text in window up or down, relative to the
  6316.                current position. If 'window' is not specified, the
  6317.                current window is assumed. The cursor is moved by the
  6318.                same amount that the text scrolls.
  6319.  
  6320.                'rows' specifies the number of lines to scroll. Positive
  6321.                numbers scroll down and negative numbers scroll up.
  6322.  
  6323.   returns:     TRUE if successful, otherwise null.
  6324.   see also:    rollcol
  6325.  
  6326.   example:     rollrow 4            // scrolls down 4 rows
  6327.                rollrow -1           // scrolls up 1 row
  6328.  
  6329.  
  6330.   row          row buffer
  6331.   ──────────────────────────────────────────────────────────────────────
  6332.   remarks:     Moves the cursor to the specified row, but does not
  6333.                change the column. If 'buffer' is null or not specified,
  6334.                the current buffer is assumed.
  6335.  
  6336.   returns:     TRUE if successful, otherwise null.
  6337.   see also:    col, gotopos
  6338.  
  6339.   example:     row 1
  6340.                  // moves the cursor to line 1 in the current buffer
  6341.                row (getlines)
  6342.                  // moves the cursor to the last line in the current
  6343.                  //   buffer
  6344.  
  6345.  
  6346.   runmacro     filename arg2 arg3 ...
  6347.   ──────────────────────────────────────────────────────────────────────
  6348.   remarks:     Runs the compiled macro code in the specified filename.
  6349.                The macro code is loaded into a temporary object which is
  6350.                descended from the current event object. The macro code
  6351.                is then executed in the temporary object and is passed
  6352.                the 'filename' followed by the optional arguments 'arg2',
  6353.                'arg3', etc.
  6354.  
  6355.                Normally, when the macro is finished executing, the
  6356.                temporary object is destroyed and the macro is discarded.
  6357.                However, if the 'stayresident' function is called from
  6358.                within the macro, the macro will remain resident until
  6359.                the temporary object created by 'runmacro' is explicitly
  6360.                destroyed with the 'destroyobject' function.
  6361.  
  6362.   returns:     The return value from executing the macro.
  6363.  
  6364.   see also:    compilemacro, destroyobject, eval, includemacro,
  6365.                stayresident
  6366.  
  6367.   example:     runmacro "c:\\aurora\\macro\\mymacro.x"
  6368.  
  6369.  
  6370.   save         filename                                      [Ext][edit]
  6371.   ──────────────────────────────────────────────────────────────────────
  6372.   remarks:     Saves the current buffer to the specified filename. If a
  6373.                filename is not specified, the buffer name of the current
  6374.                buffer is assumed. If the backup setting in the current
  6375.                window is ON, the file is backed-up before saving.
  6376.  
  6377.   returns:     Non-zero if successful, otherwise zero.
  6378.   see also:    close, open, setname, setting, setting?
  6379.  
  6380.   example:     save
  6381.                  // saves the current buffer to the file name specified
  6382.                  //   by the name of the buffer
  6383.                save "C:\SAVE.TXT"
  6384.                  // saves the current buffer to C:\SAVE.TXT
  6385.  
  6386.  
  6387.   saveblock    filename opt=[abetxz] mark delimiter filedelim comment1
  6388.                comment2
  6389.   ──────────────────────────────────────────────────────────────────────
  6390.   remarks:     Saves marked text to the specified filename. If 'mark' is
  6391.                not specified, the default markid is assumed.
  6392.  
  6393.                All other arguments and options are identical to the
  6394.                'savebuf' function (see 'savebuf').
  6395.  
  6396.   returns:     TRUE if successful, otherwise null.
  6397.   see also:    loadbuf, savebuf
  6398.  
  6399.  
  6400.   savebuf      filename opt=[abetxz] buffer delimiter filedlm comment1
  6401.                comment2
  6402.   ──────────────────────────────────────────────────────────────────────
  6403.   remarks:     Saves a buffer to the specified filename. If 'buffer' is
  6404.                null or not specified, then the current buffer is
  6405.                assumed.
  6406.  
  6407.                The following options may be specified:
  6408.  
  6409.                  a - appends to end of the file when saving
  6410.                  b - saves the file in binary mode, with no line
  6411.                      delimiters
  6412.                  e - entabs the buffer while saving. The tabwidth is
  6413.                      specified after the 'e' option - for example: 'e8'.
  6414.                  t - trims trailing blanks from each line
  6415.                  x - disables conversion of folds to fold comments
  6416.                  z - appends ctrl-z (ASCII 26) to the end of the file
  6417.                      when saving
  6418.  
  6419.                'delimiter' specifies a 1 or 2 byte line delimiter string
  6420.                to be appended to the end of each line in the saved file.
  6421.                If 'delimiter' is null or not specified, then the line
  6422.                delimiter specified when loading the file is assumed. If
  6423.                the buffer was not loaded but created new, then a line
  6424.                delimiter of 0D0Ah (CR/LF) is assumed.
  6425.  
  6426.                'filedlm' specifies an alternate 1 byte file delimiter to
  6427.                save at the end of the file.
  6428.  
  6429.                'comment1' and 'comment2' specify the opening and closing
  6430.                comment strings to be used when converting text folds to
  6431.                fold comments during the saving process. Specifying
  6432.                option 'x' disables the saving of folds as fold comments.
  6433.  
  6434.   returns:     TRUE if successful, otherwise null.
  6435.   see also:    createbbuf, createbuf, destroybuf, loadbuf, saveblock
  6436.  
  6437.   example:     savebuf "c:\\file.txt"
  6438.                  // saves the current buffer to the file 'c:\file.txt',
  6439.                  //   and overwrites any previous data in the file.
  6440.                  //   The file is saved with CR/LF line delimiters.
  6441.                savebuf "c:\\file.txt" 'b' "abc"
  6442.                  // saves the buffer 'abc' to 'c:\file.txt' in binary
  6443.                  //   mode, with no line delimiters
  6444.                savebuf "c:\\file.txt" 't' '' (hex2bin "0A") (char 0)
  6445.                  // saves the current buffer to 'c:\file.txt' and
  6446.                  //   trims trailing blanks from each line. The file
  6447.                  //   is saved with '0A' (LF) line delimiters and a
  6448.                  //   file delimiter of ASCII 0.
  6449.  
  6450.  
  6451.   savedesk     filename                                         [Lib][a]
  6452.   ──────────────────────────────────────────────────────────────────────
  6453.   remarks:     Saves the current desktop to the specified filename. The
  6454.                current desktop is set by the 'opendesk', 'currdesk', and
  6455.                'openhistory' functions. The 'begdesk' and 'enddesk'
  6456.                functions also change the current desktop.
  6457.  
  6458.   returns:     TRUE is successful, otherwise null.
  6459.   see also:    begdesk, currdesk, enddesk, opendesk, restoredesk
  6460.  
  6461.   example:     currdesk
  6462.                  // set current desktop to the current window layout
  6463.                savedesk "C:\\DESKTOP.DSK"
  6464.                  // save the current desktop to C:\DESKTOP.DSK
  6465.  
  6466.  
  6467.   savehistory  filename                                         [Lib][a]
  6468.   ──────────────────────────────────────────────────────────────────────
  6469.   remarks:     Saves all existing history buffers and the current
  6470.                desktop to the specified filename.
  6471.   returns:     TRUE if successful, otherwise null.
  6472.   see also:    openhistory
  6473.  
  6474.  
  6475.   savekey      filename                                         [Lib][a]
  6476.   ──────────────────────────────────────────────────────────────────────
  6477.   remarks:     Saves all current key macros to the specified filename.
  6478.                The key macros can be reloaded later with the 'openkey'
  6479.                function.
  6480.   returns:     TRUE if successful, otherwise null.
  6481.   see also:    openkey
  6482.  
  6483.  
  6484.   saveobject   object filename
  6485.   ──────────────────────────────────────────────────────────────────────
  6486.   remarks:     Saves an object to the specified filename as executable
  6487.                macro code. If 'object' is not specified, then the
  6488.                current object is assumed.
  6489.   returns:     TRUE if successful, otherwise null.
  6490.   see also:    includemacro, runmacro
  6491.  
  6492.  
  6493.   say          message opt=[b]
  6494.   ──────────────────────────────────────────────────────────────────────
  6495.   remarks:     Displays the specified message at the location of the
  6496.                primary title (title 1) of the current window. If option
  6497.                'b' is specified, the PC speaker beeps. The message is
  6498.                cleared the next time the display is updated.
  6499.  
  6500.   returns:     nothing
  6501.   see also:    msgbox, okbox, shortbox, yncbox
  6502.  
  6503.   example:     say "Hello World"
  6504.  
  6505.  
  6506.   scandlg                                               [Lib][edit_fmgr]
  6507.   ──────────────────────────────────────────────────────────────────────
  6508.   remarks:     Displays a file scan dialog box.
  6509.   returns:     the scan multi-string (searchstr / filespec / options) to
  6510.                be used for the scan, or null if nothing is specified
  6511.   see also:    about, finddlg, repldlg
  6512.  
  6513.  
  6514.   scanfile     filename searchstr opt=[iwx] delimiter
  6515.   ──────────────────────────────────────────────────────────────────────
  6516.   remarks:     Scans the specified filename for the string 'searchstr'.
  6517.                'delimiter' specifies the line delimiter used to separate
  6518.                lines in the file. If 'delimiter' is not specified, then
  6519.                CR/LF (0D0Ah) is assumed.
  6520.  
  6521.                Any of the following options may be specified:
  6522.  
  6523.                  i - ignores case during the scan
  6524.                  w - scans for whole words only
  6525.                  x - checks for regular expression chars in the search
  6526.                      string (see 'Regular Expression Searching')
  6527.  
  6528.   returns:     The absolute position in the file where the search string
  6529.                was found (starting with 1), or zero if not found. If the
  6530.                scan was interrupted by <ctrl break>, then -1 is
  6531.                returned.
  6532.  
  6533.   see also:    find, replace
  6534.  
  6535.   example:     scanfile "C:\\FILE.TXT" "apples" "i"
  6536.                  // returns the first position in C:\FILE.TXT where
  6537.                  //   'apples' is found (ignoring case), or zero if
  6538.                  //   not found
  6539.  
  6540.  
  6541.   scanfiles    filespec searchstr opt=[iwx]                     [Lib][a]
  6542.   ──────────────────────────────────────────────────────────────────────
  6543.   remarks:     Scans multiple files specified by 'filespec' for the
  6544.                specified search string. A file manager window is
  6545.                displayed listing all files in which the string was
  6546.                found. When a file is opened from the file manager
  6547.                window, the cursor is positioned at the first occurrence
  6548.                of the search string. The 'findlast' function can be used
  6549.                to find other occurrences.
  6550.  
  6551.                Any of the following search options can be specified:
  6552.  
  6553.                  i - ignore case during the search
  6554.                  w - search for whole words only
  6555.                  x - check for regular expression chars in the search
  6556.                      string (see 'Regular Expression Searching')
  6557.  
  6558.   returns:     The number of files in which the search string is found,
  6559.                or null if the search string is not found, or -2 if the
  6560.                filespec is not found.
  6561.  
  6562.   see also:    findlast, search
  6563.  
  6564.   example:     scanfiles "D:\\*.TXT" "apples" "iw"
  6565.                  // scans all files with the extension .TXT in the
  6566.                  //   root directory of the D drive for the string
  6567.                  //   'apples', ignoring case, whole words only.
  6568.  
  6569.  
  6570.   scrollcol    column window
  6571.   ──────────────────────────────────────────────────────────────────────
  6572.   remarks:     Scrolls the text in window so that 'column' is the
  6573.                leftmost column in the window. The cursor is moved by the
  6574.                same amount that the text scrolls. If 'window' is not
  6575.                specified, the current window is assumed.
  6576.  
  6577.   returns:     TRUE if successful, otherwise null.
  6578.   see also:    scrollrow
  6579.  
  6580.   example:     scrollcol 4
  6581.                  // scrolls the current window so that the leftmost
  6582.                  //   column in the window is 4. The cursor moves
  6583.                  //   accordingly.
  6584.  
  6585.  
  6586.   scrollrow    row window
  6587.   ──────────────────────────────────────────────────────────────────────
  6588.   remarks:     Scrolls the text in window so that 'row' is the topmost
  6589.                line in the window. The cursor is moved by the same
  6590.                amount that the text scrolls. If 'window' is not
  6591.                specified, the current window is assumed.
  6592.  
  6593.   returns:     TRUE if successful, otherwise null.
  6594.   see also:    scrollcol
  6595.  
  6596.   example:     scrollrow 4
  6597.                  // scrolls the current window so that the topmost
  6598.                  //   line in the window is 4. The cursor moves
  6599.                  //   accordingly.
  6600.  
  6601.  
  6602.   search       searchstr/replstr/options reverse repeat         [Ext][a]
  6603.   ──────────────────────────────────────────────────────────────────────
  6604.   remarks:     Searches for the specified search string in the current
  6605.                buffer, and optionally replaces it with 'replstr'. This
  6606.                function provides a higher level interface to the 'find'
  6607.                and 'replace' builtin functions.
  6608.  
  6609.                The parameters 'searchstr/replstr/options' are entered
  6610.                together as one argument in multi-string format (see the
  6611.                'joinstr' and 'splitstr' functions).
  6612.  
  6613.                If no search options are explicitly specified, the
  6614.                configuration variables 'SearchOpt' and 'ReplaceOpt' are
  6615.                assumed. See the 'find' function for a description of
  6616.                valid search options.
  6617.  
  6618.                If 'replstr' is specified and option 'a' (replace all) is
  6619.                not specified, the editor will prompt for each
  6620.                replacement.
  6621.  
  6622.                If 'reverse' is 'r', then the search proceeds in the
  6623.                reverse direction from the direction specified in the
  6624.                search options.
  6625.  
  6626.                If 'repeat' is TRUE, then search option 'g' (global
  6627.                search) will be ignored if specified.
  6628.  
  6629.   returns:     The same values as the 'find' and 'replace' builtin
  6630.                functions, depending on the action performed (find or
  6631.                replace) and the search options specified (see the 'find'
  6632.                and 'replace' functions).
  6633.  
  6634.   see also:    find, findlast, joinstr, replace, scanfiles,
  6635.                splitstr
  6636.  
  6637.   example:     search "apples"
  6638.                  // searches for the string 'apples' (case sensitive)
  6639.                  //   starting at one char to the right of the cursor
  6640.                  //   and searching toward the end of the buffer
  6641.                search "apples/ir*"
  6642.                  // searches for 'apples' (case insensitive) starting at
  6643.                  //   the cursor position and searching toward the
  6644.                  //   beginning of the buffer
  6645.                search "app'/les/bgw"
  6646.                  // searches for 'app/les' (whole words only), limiting
  6647.                  //   the search to the current mark and starting from
  6648.                  //   the beginning of the mark
  6649.                search "apples/oranges/ag"
  6650.                  // replaces all occurrences of 'apples' with 'oranges'
  6651.                  //   in the current buffer and returns the number of
  6652.                  //   occurrences. The cursor is not moved.
  6653.  
  6654.  
  6655.   send         funexpression arg1 arg2 ...
  6656.   ──────────────────────────────────────────────────────────────────────
  6657.   remarks:     Calls a function in the current event object whose name
  6658.                is the value of 'funexpression', passing the optional
  6659.                arguments 'arg1', 'arg2', etc.
  6660.  
  6661.   returns:     The return value from calling the specified function.
  6662.   see also:    call, eval, pass, sendkey, sendobject
  6663.  
  6664.   example:     send <ctrl b>                // simulates <ctrl b>
  6665.                send '<' + "ctrl b" + '>'    // simulates <ctrl b>
  6666.  
  6667.  
  6668.   sendkey      keycode1 keycode2 ...
  6669.   ──────────────────────────────────────────────────────────────────────
  6670.   remarks:     Executes the specified keycodes immediately and
  6671.                synchronously.
  6672.  
  6673.   returns:     nothing
  6674.   see also:    getkey, getkeycode, queuekey, send, sendobject
  6675.  
  6676.   example:     keycode = getkey     // gets a keycode...
  6677.                sendkey keycode      // and executes it immediately
  6678.  
  6679.  
  6680.   sendobject   objexpression funexpression arg1 arg2 ...
  6681.   ──────────────────────────────────────────────────────────────────────
  6682.   remarks:     Calls a function in the object 'objexpression' whose name
  6683.                is the value of 'funexpression', passing the optional
  6684.                arguments 'arg1', 'arg2', etc.
  6685.  
  6686.   returns:     The return value from calling the specified function.
  6687.   see also:    call, eval, pass, send, sendkey
  6688.  
  6689.   example:     sendobject "edit" <ctrl b>
  6690.                sendobject "edit" '<' + "ctrl b" + '>'
  6691.  
  6692.  
  6693.   setalarm     timerid year mon day dayofweek hour min second object
  6694.                function arg1 arg2 ...
  6695.   ──────────────────────────────────────────────────────────────────────
  6696.   remarks:     Sets a timer to call 'function' automatically at the
  6697.                specified date and time. If '-1' is specified for for any
  6698.                of the date or time parameters, the timer will call the
  6699.                function for any value of that parameter (the parameter
  6700.                becomes a 'wildcard').
  6701.  
  6702.                If -1 is specified for any of the arguments, the timer is
  6703.                a 'repeating' timer and is not destroyed, otherwise the
  6704.                timer is automatically destroyed after the function call.
  6705.  
  6706.                The function is called in the specified object, passing
  6707.                the optional arguments 'arg1', 'arg2', etc. If 'object'
  6708.                is not specified, the current event object is assumed.
  6709.  
  6710.                'timerid' uniquely identifies the timer. If a timerid is
  6711.                not specified, a unique timerid is generated. A maximum
  6712.                of 16 timerid's may be active at one time.
  6713.  
  6714.   returns:     The timerid if successful, otherwise null.
  6715.   see also:    destroytimer, setrepeat, settimer, timer?
  6716.  
  6717.   example      setalarm "xyz"   // timerid 'xyz'
  6718.                   -1            // any year
  6719.                   -1            // any month
  6720.                   -1            // any day
  6721.                   -1            // any day of the week
  6722.                   22            // 10 o'clock at night
  6723.                    0            // zero minutes
  6724.                    0            // zero seconds
  6725.                   ''            // send to current event object
  6726.                   "abc"         // function 'abc'
  6727.  
  6728.                // the above example sets timer 'xyz' to call the function
  6729.                //  'abc' at 10 o'clock every night in the current event
  6730.                //  object
  6731.  
  6732.  
  6733.   setbook      bookmark buffer
  6734.   ──────────────────────────────────────────────────────────────────────
  6735.   remarks:     Creates a new bookmark or modifies an existing bookmark.
  6736.                The bookmark is placed at the current cursor position in
  6737.                the specified buffer. If the buffer is null or not
  6738.                specified, the current buffer is assumed.
  6739.  
  6740.   returns:     The bookmarkid if a bookmark is created, or TRUE if an
  6741.                existing bookmark is modified, otherwise null.
  6742.   see also:    destroybook
  6743.  
  6744.   example:     setbook 'A'
  6745.                  // places bookmark "A" at the cursor position
  6746.  
  6747.  
  6748.   setbootpath  path
  6749.   ──────────────────────────────────────────────────────────────────────
  6750.   remarks:     Changes the editor 'boot' path for the current session.
  6751.   returns:     nothing
  6752.   see also:    bootpath, getbootpath
  6753.  
  6754.  
  6755.   setborder    opt=[ios012345] xd yd cornerX cornerY bchr1 bchr2 window
  6756.   ──────────────────────────────────────────────────────────────────────
  6757.   remarks:     Changes the border style of a window. If 'window' is not
  6758.                specified, the current window is assumed. Note that the
  6759.                window must first be configured to allow borders by
  6760.                calling the 'setframe' function.
  6761.  
  6762.                The following parameters can be specified:
  6763.  
  6764.                xd       - left and right border thickness
  6765.                yd       - top and bottom border thickness
  6766.                cornerX  - amount or horz overlap on the border corners
  6767.                cornerY  - amount or vert overlap on the border corners
  6768.                bchr1    - border fill character
  6769.                bchr2    - border corner fill character
  6770.  
  6771.                The following options can also be specified:
  6772.  
  6773.                  i - inward 3D effect
  6774.                  o - outward 3D effect
  6775.                  s - attempts to change the size of other parts of the
  6776.                      window to accommodate the new border style, without
  6777.                      changing the overall size of the window.
  6778.                  0 - use 'expanded' borders (the default)
  6779.  
  6780.                For the following options, the 'xd', 'yd', 'cornerX', and
  6781.                'cornerY', 'bchr1', and 'bchr2' parameters are ignored,
  6782.                and the horizontal and vertical border thickness is
  6783.                always 1:
  6784.  
  6785.                  1 - single line
  6786.                  2 - double horizontal
  6787.                  3 - double vertical
  6788.                  4 - double line
  6789.                  5 - solid
  6790.                  6 - blank
  6791.  
  6792.                Specifying no options or parameters removes any existing
  6793.                borders.
  6794.  
  6795.   returns:     nothing
  6796.   see also:    getborder, setframe, setshadow
  6797.  
  6798.   example:     setborder
  6799.                  // removes the border
  6800.                setborder "1i"
  6801.                  // sets the border style to a single-line border with
  6802.                  //   an inward 3D effect
  6803.                setborder '0' 2 2 3 3
  6804.                  // sets the border style to an 'expanded' border with
  6805.                  //   border width 2 and corner size 3
  6806.  
  6807.  
  6808.   setbufname   name buffer
  6809.   ──────────────────────────────────────────────────────────────────────
  6810.   remarks:     Associates a descriptive name with a buffer.  If 'buffer'
  6811.                is null or not specified, then the current buffer is
  6812.                assumed.
  6813.  
  6814.                The buffer name is used by editor library functions to
  6815.                identify the current buffer, and is usually a fully
  6816.                qualified file name.
  6817.  
  6818.                Note: the 'loadbuf' function will automatically set the
  6819.                buffer name to the file name where the buffer was loaded
  6820.                ('setbufname' is not required).
  6821.  
  6822.   returns:     nothing
  6823.   see also:    getbufname
  6824.  
  6825.  
  6826.   setcolor     component color window
  6827.   ──────────────────────────────────────────────────────────────────────
  6828.   remarks:     Changes the color attribute of a window component. If
  6829.                'window' is not specified, the current window is assumed.
  6830.  
  6831.                The following values can be specified for 'component':
  6832.  
  6833.                 0 - border
  6834.                 1 - border corners
  6835.                 2 - north and east titles
  6836.                 3 - south and west titles
  6837.                 4 - title bar controls
  6838.                 5 - text
  6839.                 6 - marks
  6840.                 7 - scroll bars
  6841.                 8 - menus
  6842.                 9 - menu character highlight
  6843.                10 - menu disable
  6844.                11 - menu bar highlight
  6845.                12 - end-of-text line
  6846.                13 - border highlight color
  6847.                14 - folds
  6848.                15 - modified lines
  6849.                16 - modified line at the cursor
  6850.                17 - open fold begin
  6851.                18 - open fold end
  6852.  
  6853.   returns:     nothing
  6854.   see also:    getcolor
  6855.  
  6856.   example:     setcolor 5 95
  6857.                  // sets the window text color to white on magenta
  6858.                setcolor 6 32
  6859.                  // sets the mark default color to black on green
  6860.  
  6861.  
  6862.   setcursor    opt=[rhiv+-] cursor buffer
  6863.   ──────────────────────────────────────────────────────────────────────
  6864.   remarks:     Creates a new cursor or changes the state of an existing
  6865.                cursor. If 'buffer' is null or not specified, then the
  6866.                current buffer is assumed. If 'cursor' is not specified,
  6867.                the current cursor is assumed.
  6868.  
  6869.                If 'cursor' refers to an existing cursor, it is modified
  6870.                according to the options specified, otherwise a new
  6871.                cursor is created. If a new cursor is created, it becomes
  6872.                the current cursor.
  6873.  
  6874.                Any of the following options may be specified:
  6875.  
  6876.                  i - cursor is in insert mode
  6877.                  h - cursor is hidden
  6878.                  v - blinking hardware cursor indicates position
  6879.                  - - turns off any specified options
  6880.                  + - turns on any specified options
  6881.  
  6882.   returns:     The cursorid if a cursor is created, or TRUE if an
  6883.                existing cursor is modified successfully, otherwise null.
  6884.   see also:    cursor?, destroycursor
  6885.  
  6886.  
  6887.   setdisplay   [-1/0/1]
  6888.   ──────────────────────────────────────────────────────────────────────
  6889.   remarks:     Enables (1) or disables (0) updating of the display. Note
  6890.                that any operations involving window sizing, movement, or
  6891.                reordering will still update the display, even if the
  6892.                display is disabled with this function.
  6893.  
  6894.                If -1 is specified, the display is 'validated' and the
  6895.                next screen update will be skipped. This allows you to
  6896.                draw on the text in an Edit or File Manager window,
  6897.                leaving your changes visible until the following screen
  6898.                update.
  6899.  
  6900.   returns:     nothing
  6901.   see also:    display
  6902.  
  6903.   example:     setdisplay OFF   // disable display for faster execution
  6904.                playkey          // play the scrap key macro
  6905.                setdisplay ON    // enable the display
  6906.  
  6907.                writestr "Hello"   // write 'Hello' in an edit window
  6908.                setdisplay -1      // allow it to remain visible
  6909.  
  6910.  
  6911.  
  6912.   setdraw      opt=[01234] window                               [Lib][a]
  6913.   ──────────────────────────────────────────────────────────────────────
  6914.   remarks:     Changes the line drawing style for an edit window. If
  6915.                'window' is not specified, the current window is assumed.
  6916.                One of the following options can be specified:
  6917.  
  6918.                  0 - single lines
  6919.                  1 - double horizontal lines
  6920.                  2 - double vertical lines
  6921.                  3 - double horizontal and vertical lines
  6922.                  4 - eraser
  6923.  
  6924.   returns:     nothing
  6925.   see also:    setting
  6926.  
  6927.   example:     setdraw 3
  6928.                  // sets the line drawing style to double horizontal
  6929.                  //   and vertical lines
  6930.  
  6931.  
  6932.   setframe     opt=[bwneshvm2345z>+-]  window westwidth eastwidth
  6933.   ──────────────────────────────────────────────────────────────────────
  6934.   remarks:     Adds or removes window frame components. If 'window' is
  6935.                not specified, the current window is assumed.
  6936.  
  6937.                Any of the following options can be specified:
  6938.  
  6939.                  + - add specified components to the window
  6940.                  - - remove specified components from the window
  6941.  
  6942.                  (if neither '+' or '-' are specified, then the window
  6943.                   frame components are replaced)
  6944.  
  6945.                  b - border
  6946.                  e - east title bar
  6947.                  h - horizontal scroll bar
  6948.                  m - primary menu bar
  6949.                  n - north title bar
  6950.                  s - south title bar
  6951.                  v - vertical scroll bar
  6952.                  w - west title bar
  6953.                  z - south title controls
  6954.                  2 - menu bar 2 (north)
  6955.                  3 - menu bar 3 (north)
  6956.                  4 - menu bar 4 (south)
  6957.                  5 - menu bar 5 (west)
  6958.                  > - place north title bar in the window border
  6959.                      (for bordertype > 0)
  6960.                  < - place south title bar in the window border
  6961.                      (for bordertype > 0)
  6962.  
  6963.                Specifying no options will remove all window frame
  6964.                components.
  6965.  
  6966.                The following parameters can also be specified:
  6967.  
  6968.                  westwidth - the width of the west title, if present
  6969.                  eastwidth - the width of the east title, if present
  6970.  
  6971.   returns:     nothing
  6972.   see also:    frame?, setborder, setshadow
  6973.  
  6974.   example:     setframe
  6975.                  // removes all frame components from the current window
  6976.                setframe "bn"
  6977.                  // replaces the current window frame components with
  6978.                  //   a border and a north title bar
  6979.                setframe "+s"
  6980.                  // adds a south title bar to the current window
  6981.  
  6982.  
  6983.   setgroupbox  initvalue valuemap window                        [Lib][a]
  6984.   ──────────────────────────────────────────────────────────────────────
  6985.   remarks:     Re-initializes the checked/unchecked state of check boxes
  6986.                and radio buttons in a group box, after the group box has
  6987.                already been created. If 'window' (the group box window
  6988.                id) is not specified, the current window is assumed. See
  6989.                the 'group' function for a description of 'initvalue' and
  6990.                'valuemap'.
  6991.   returns:     nothing
  6992.   see also:    dialog, group, whenenter, whenselect
  6993.  
  6994.  
  6995.   setname      filename                                      [Lib][edit]
  6996.   ──────────────────────────────────────────────────────────────────────
  6997.   remarks:     Changes the buffer name in the current edit window to the
  6998.                specified filename. The primary window title (title 1) is
  6999.                also changed.
  7000.   returns:     1 if successful, -1 if the filename is invalid, or -2 if
  7001.                the filename is already loaded.
  7002.   see also:    close, open, save, setbufname, settitle
  7003.  
  7004.  
  7005.   setnextwin   nextwindow window
  7006.   ──────────────────────────────────────────────────────────────────────
  7007.   remarks:     Changes the order of windows on the screen by placing
  7008.                'nextwindow' on top of 'window'. If 'window' is not
  7009.                specified, the current window is assumed.
  7010.   returns:     Non-zero if successful, otherwise null.
  7011.   see also:    getnextwin, getprevwin, setprevwin
  7012.  
  7013.  
  7014.   setpalette   position charstring
  7015.   ──────────────────────────────────────────────────────────────────────
  7016.   remarks:     Fills a 100-byte user-defined color palette area with
  7017.                'charstring', starting at the specified position in the
  7018.                palette. The editor library code (LIB.X) expects color
  7019.                attributes to be in the positions defined in COLOR.AML.
  7020.   returns:     nothing
  7021.   see also:    getpalatte
  7022.   example:     see COLOR.AML
  7023.  
  7024.  
  7025.   setparent    parent window
  7026.   ──────────────────────────────────────────────────────────────────────
  7027.   remarks:     Makes 'parent' the parent window of 'window'. If 'window'
  7028.                is not specified, the current window is assumed.
  7029.   returns:     Non-zero if successful, otherwise null.
  7030.   see also:    getparent
  7031.  
  7032.  
  7033.   setprevwin   prevwindow window
  7034.   ──────────────────────────────────────────────────────────────────────
  7035.   remarks:     Changes the order of windows on the screen by placing
  7036.                'window' on top of 'prevwindow'. If 'window' is not
  7037.                specified, the current window is assumed.
  7038.   returns:     Non-zero if successful, otherwise null.
  7039.   see also:    getnextwin, getprevwin, setnextwin
  7040.  
  7041.  
  7042.   setrepeat    timerid milliseconds object function arg1 arg2 ...
  7043.   ──────────────────────────────────────────────────────────────────────
  7044.   remarks:     Sets a timer to call 'function' automatically at regular
  7045.                intervals. 'milliseconds' specifies the time interval in
  7046.                milliseconds. The first function call will occur after
  7047.                the specified time interval has expired (not after the
  7048.                'setrepeat' call).
  7049.  
  7050.                The function is called in the specified object, passing
  7051.                the optional arguments 'arg1', 'arg2', etc. If 'object'
  7052.                is not specified, the current event object is assumed.
  7053.  
  7054.                'timerid' uniquely identifies the timer. If a timerid is
  7055.                not specified, a unique timerid is generated. A maximum
  7056.                of 16 timerid's may be active at one time.
  7057.  
  7058.   returns:     The timerid if successful, otherwise null.
  7059.   see also:    destroytimer, setalarm, settimer, timer?
  7060.  
  7061.   example:     setrepeat "xyz" 1000 '' "abc"
  7062.                  // sets timerid 'xyz' to call the function 'abc' every
  7063.                  //   second in the current event object
  7064.                setrepeat "t1" 0 '' "idle"
  7065.                  // sets timerid 't1' to call the function 'idle'
  7066.                  //   repeatedly in the current event object whenever
  7067.                  //   the editor is idle
  7068.  
  7069.  
  7070.   setshadow    right bottom window
  7071.   ──────────────────────────────────────────────────────────────────────
  7072.   remarks:     Adds or removes window shadows. If 'window' is not
  7073.                specified, the current window is assumed.
  7074.  
  7075.                'bottom' and 'right' specify the shadow thickness on the
  7076.                bottom and right borders. If 'bottom' and 'right' are
  7077.                zero or null, the shadow is removed.
  7078.  
  7079.   returns:     nothing
  7080.   see also:    setborder, setframe, setshadow2
  7081.  
  7082.   example:     setshadow
  7083.                  // removes any shadows from the current window
  7084.                setshadow 2 1
  7085.                  // sets the shadow thickness to 2 on the right border
  7086.                  //   and 1 on the bottom border
  7087.  
  7088.  
  7089.   setshadow2   color window
  7090.   ──────────────────────────────────────────────────────────────────────
  7091.   remarks:     Adds or removes a one-half width shadow. If 'window' is
  7092.                not specified, the current window is assumed. 'color'
  7093.                specifies the shadow color.
  7094.  
  7095.                This function is intended for use with stationary windows
  7096.                on a blank background (such as dialog box controls).
  7097.  
  7098.   returns:     nothing
  7099.   see also:    setshadow
  7100.  
  7101.  
  7102.   setsyntax    [0/1] object window
  7103.   ──────────────────────────────────────────────────────────────────────
  7104.   remarks:     Enables (1) or disables (0) syntax highlighting for a
  7105.                window. If 'window' is not specified, the current window
  7106.                is assumed. Specifying 'object' will change the syntax
  7107.                highlighting object associated with the window.
  7108.   returns:     nothing
  7109.   see also:    keyword, setsyntax
  7110.  
  7111.  
  7112.   settimer     timerid milliseconds object function arg1 arg2 ...
  7113.   ──────────────────────────────────────────────────────────────────────
  7114.   remarks:     Sets a timer to call 'function' automatically after a
  7115.                specified time interval. 'milliseconds' specifies the
  7116.                time interval in milliseconds. The timer is automatically
  7117.                destroyed when the function is called.
  7118.  
  7119.                The function is called in the specified object, passing
  7120.                the optional arguments 'arg1', 'arg2', etc. If 'object'
  7121.                is not specified, the current event object is assumed.
  7122.  
  7123.                'timerid' uniquely identifies the timer. If a timerid is
  7124.                not specified, a unique timerid is generated. A maximum
  7125.                of 16 timerid's may be active at one time.
  7126.  
  7127.   returns:     The timerid if successful, otherwise null.
  7128.   see also:    destroytimer, setalarm, setrepeat, timer?
  7129.  
  7130.   example:     settimer "xyz" 1000 '' "abc"
  7131.                  // sets timerid 'xyz' to call the function 'abc' one
  7132.                  //   second later in the current event object
  7133.  
  7134.  
  7135.   setting      settings [0/1/2/-1]                           [Lib][edit]
  7136.   ──────────────────────────────────────────────────────────────────────
  7137.   remarks:     Changes or toggles the specified window settings. Any
  7138.                combination of the following settings may be specified:
  7139.  
  7140.                  a - Autoindent
  7141.                  b - Backup
  7142.                  d - Draw Mode
  7143.                  i - Insert Mode
  7144.                  l - Live Word Wrap
  7145.                  m - Match Character
  7146.                  s - Smart tabs
  7147.                  t - Translate
  7148.                  u - Undo enabled
  7149.                  v - Variable tabs
  7150.                  w - Word Wrap (standard)
  7151.                  x - Syntax Highlighting
  7152.  
  7153.                After the 'settings' parameter, one of the following
  7154.                values can be specified:
  7155.  
  7156.                  0 - turns specified settings OFF
  7157.                  1 - turns specified settings ON
  7158.                 -1 - toggles specified settings
  7159.                  2 - sets specified settings to default values
  7160.  
  7161.   returns:     nothing
  7162.   see also:    getsettings, setting?
  7163.  
  7164.   example:     settings "abu" 1
  7165.                  // turns ON autoindent, backup, and undo
  7166.                settings "xd" 0
  7167.                  // turns OFF syntax highlighting and drawmode
  7168.                settings "w" -1
  7169.                  // toggles word wrap
  7170.  
  7171.  
  7172.   setting?     settings                                       [Lib][mon]
  7173.   ──────────────────────────────────────────────────────────────────────
  7174.   remarks:     Tests if any of the specified window settings are ON. See
  7175.                the 'setting' command for a description of window
  7176.                settings.
  7177.  
  7178.   returns:     Non-zero if one of the specified settings is ON,
  7179.                otherwise null.
  7180.  
  7181.   see also:    getsettings, setting
  7182.  
  7183.   example:     setting? "lw"
  7184.                  // tests if word wrap or live word wrap are ON
  7185.  
  7186.  
  7187.   settitle     string opt=[nsewlcrdxh1z] titleid[1-5] window
  7188.   ──────────────────────────────────────────────────────────────────────
  7189.   remarks:     Changes a window title. If 'window' is null or not
  7190.                specified, then the current window is assumed.
  7191.  
  7192.                Each window can have up to 5 titles. 'titleid' (1-5)
  7193.                specifies which window title to change. If the 'titleid'
  7194.                is null or not specified, then 1 (the primary title) is
  7195.                assumed.
  7196.  
  7197.                Any combination of the following options can be
  7198.                specified:
  7199.  
  7200.                  e - places the title on east title bar
  7201.                  n - places the title on north title bar
  7202.                  s - places the title on south title bar
  7203.                  w - places the title on west title bar
  7204.  
  7205.                  l - left justifies the title
  7206.                  c - centers the title
  7207.                  r - right justifies the title
  7208.  
  7209.                  d - redraws the window title immediately after this
  7210.                      function call
  7211.  
  7212.                  x - sets the title to the 'default status line'. The
  7213.                      status line displays information about the buffer
  7214.                      (if any) displayed in the window.
  7215.  
  7216.                  h - checks for the highlight character "&". Specifying
  7217.                      "&" before a character in the title indicates that
  7218.                      the character is to be highlighted.
  7219.  
  7220.                  1 - the title is not padded with spaces. Normally the
  7221.                      title is padded with one space if it is left or
  7222.                      right justified.
  7223.  
  7224.                  z - hides the title. This can be used to associate a
  7225.                      string with a window by storing it as a hidden
  7226.                      window title. This option must also be used to
  7227.                      specify a title for the end-of-text line (see the
  7228.                      'eotstring' function).
  7229.  
  7230.                If no options are specified, and the title has not been
  7231.                previously set, the options 'nl1' are assumed. If the
  7232.                title has been previously set, then the options of the
  7233.                previous title are assumed.
  7234.  
  7235.   returns:     TRUE if successful, otherwise null.
  7236.   see also:    eotstring, gettitle
  7237.  
  7238.   example:     settitle "Hello World"
  7239.                  // sets window title 1 to 'Hello World'
  7240.                settitle "Hello World" "cs" 3
  7241.                  // sets window title 3 to 'Hello World' and
  7242.                  //   centers it on the south title bar
  7243.  
  7244.  
  7245.   setvideo     cols rows color fillstring
  7246.   ──────────────────────────────────────────────────────────────────────
  7247.   remarks:     Changes the video mode and/or sets the background color
  7248.                attribute and background fill string. Either operation
  7249.                can be done separately or simultaneously.
  7250.  
  7251.                When changing the video mode, 'cols' must be 40 or 80 and
  7252.                'rows' must be 12, 14, 21, 25, 28, 43, or 50. If 'cols'
  7253.                or 'rows' are zero or null, the video mode is not
  7254.                changed.
  7255.  
  7256.                Specifying either 'color' or 'fillstring' changes the
  7257.                video background. If 'color' is not specified, black (0)
  7258.                is assumed. If 'fillstring' is not specified, blanks are
  7259.                assumed. The maximum size of 'fillstring' is 50
  7260.                characters.
  7261.  
  7262.   returns:     TRUE if successful, otherwise null.
  7263.   see also:    videomode
  7264.  
  7265.  
  7266.   setwinctrl   controlstring rightcontrol window
  7267.   ──────────────────────────────────────────────────────────────────────
  7268.   remarks:     Changes the one-character title bar controls for a
  7269.                window. If 'window' is not specified, the current window
  7270.                is assumed. Controls are normally placed on the north
  7271.                title bar unless south title bar controls are specified
  7272.                with the 'setframe' function.
  7273.  
  7274.                'controlstring' is a string of the one-character title
  7275.                bar controls to appear on the title bar from left to
  7276.                right.
  7277.  
  7278.                By default, controls are left justified on the title bar.
  7279.                If specified, 'rightcontrol' defines the character
  7280.                position in 'controlstring' of the first right justified
  7281.                control.
  7282.  
  7283.   returns:     TRUE if successful, otherwise null.
  7284.   see also:    getwinctrl
  7285.  
  7286.   example:     setwinctrl ""
  7287.                  // places one left justified control () on the
  7288.                  //   title bar
  7289.                setwinctrl "≡" 2
  7290.                  // places 3 controls on the title bar. (≡) is
  7291.                  //   left justified, () and () are right justified
  7292.  
  7293.  
  7294.   setwincurs   cursor window
  7295.   ──────────────────────────────────────────────────────────────────────
  7296.   remarks:     Attaches a cursor to a window and associates a buffer
  7297.                with a window. If 'window' is not specified, the current
  7298.                window is assumed. When a cursor is attached to a window,
  7299.                the window will display the buffer associated with the
  7300.                cursor.
  7301.  
  7302.                If 'cursor' is null or not specified, then the cursor is
  7303.                detached from the window and the window will no longer
  7304.                display a buffer.
  7305.  
  7306.                Only one cursor may be associated with a window at one
  7307.                time. Windows that do not display a buffer do not need to
  7308.                use this call.
  7309.  
  7310.   returns:     TRUE if successful, otherwise null.
  7311.   see also:    getwincurs
  7312.  
  7313.  
  7314.   setwinobj    object window
  7315.   ──────────────────────────────────────────────────────────────────────
  7316.   remarks:     Sets the window event object associated with a window. If
  7317.                'window' is not specified, the current window is assumed.
  7318.                This function also changes the current event object to
  7319.                'object'.
  7320.  
  7321.                Whenever a window becomes the current window, the current
  7322.                event object is set to the window event object. This
  7323.                allows an object 'class' to be associated with an
  7324.                individual window.
  7325.  
  7326.   returns:     nothing
  7327.   see also:    eventobject, getwinobj
  7328.  
  7329.   example:     setwinobj "edit"
  7330.                  // sets the event object for the current window to
  7331.                  //   'edit', and also changes the current event object
  7332.                  //   to 'edit'
  7333.  
  7334.  
  7335.   shiftblock   (+/-)cols  mark fillchar
  7336.   ──────────────────────────────────────────────────────────────────────
  7337.   remarks:     Shifts marked text to the left or to the right. If 'mark'
  7338.                is not specified, the default markid is assumed.
  7339.  
  7340.                'cols' specifies the number of columns to shift. Positive
  7341.                values shift text to the right and negative values shift
  7342.                text to the left.
  7343.  
  7344.                'fillchar' is the character to use when filling empty
  7345.                spaces created by shifting to the right. If 'fillchar' is
  7346.                not specified, blanks (ASCII 32) are assumed.
  7347.  
  7348.   returns:     TRUE if successful, otherwise null.
  7349.   see also:    delchar, instext
  7350.  
  7351.   example:     shiftblock -1
  7352.                  // shifts the text in default markid one space to the
  7353.                  //   left
  7354.                shiftblock  1 '' '>'
  7355.                  // shifts the text in the default markid one space to
  7356.                  //   the right, filling empty spaces with '>'
  7357.  
  7358.  
  7359.   shiftkey?    shiftstate
  7360.   ──────────────────────────────────────────────────────────────────────
  7361.   remarks:     Tests if the specified shift key(s) are currently pressed
  7362.                down. 'shiftstate' can be any combination of the
  7363.                following values OR'ed together bitwise:
  7364.  
  7365.                  01h - right shift key down   10h - scroll lock ON
  7366.                  02h - left shift key down    20h - num lock ON
  7367.                  04h - ctrl key down          40h - caps lock ON
  7368.                  08h - alt key down           80h - insert ON
  7369.  
  7370.                If shiftstate is not specified, then a value of 03h
  7371.                (right and left shift keys) is assumed.
  7372.  
  7373.   returns:     Non-zero if the specified shift keys are down, otherwise
  7374.                zero.
  7375.  
  7376.   see also:    event?, keyhit?
  7377.  
  7378.   example:     shiftkey?
  7379.                  // tests if the left or right shift keys are pressed
  7380.                shiftkey? 12h
  7381.                  // tests if the <ctrl> or <alt> keys are pressed
  7382.  
  7383.  
  7384.   shortbox     message title opt=[b]                            [Lib][a]
  7385.   ──────────────────────────────────────────────────────────────────────
  7386.   remarks:     Displays the specified message in a popup window without
  7387.                an 'Ok' button. If a title is not specified, 'Message' is
  7388.                assumed. If option 'b' is specified, the PC speaker
  7389.                beeps.
  7390.  
  7391.   returns:     nothing
  7392.   see also:    msgbox, okbox, say, yncbox
  7393.  
  7394.   example:     shortbox "This is a message with a beep!" 'b'
  7395.  
  7396.  
  7397.   showcursor   top bottom
  7398.   ──────────────────────────────────────────────────────────────────────
  7399.   remarks:     Shows the physical cursor in the current window. If the
  7400.                current window contains a buffer, the effects of
  7401.                this function are temporary and may disappear the next
  7402.                time the display is updated.
  7403.  
  7404.                If 'top' and 'bottom' are specified, the physical cursor
  7405.                size is changed. 'top' and 'bottom' indicate the distance
  7406.                of the top and bottom of the cursor from the top of the
  7407.                character cell, on a scale of 0 to 99.
  7408.  
  7409.   returns:     nothing
  7410.   see also:    hidecursor
  7411.  
  7412.   example:     showcursor 0 99
  7413.                  // sets the cursor size to fill the entire char cell
  7414.                showcursor 50 99
  7415.                  // sets the cursor size to fill the bottom half of
  7416.                  //   the character cell
  7417.  
  7418.  
  7419.   showdialog                                                    [Lib][a]
  7420.   ──────────────────────────────────────────────────────────────────────
  7421.   remarks:     Tags the current dialog box as a 'modeless' dialog box.
  7422.                The dialog box will function as an independent window on
  7423.                the desktop (existing windows on the screen can be placed
  7424.                on top of a modeless dialog box). This function returns
  7425.                immediately, without actually displaying the dialog box.
  7426.  
  7427.                The 'whenenter' and 'whenselect' functions can be used to
  7428.                process events from dialog box controls.
  7429.  
  7430.   returns:     nothing
  7431.   see also:    dialog, getdialog, whenenter, whenselect
  7432.  
  7433.   example:     dialog "Test Dialog Box" 40 8
  7434.                button "O&k" 17 2 8
  7435.                // tag the dialog box as modeless
  7436.                showdialog
  7437.  
  7438.  
  7439.   showentry 
  7440.   ──────────────────────────────────────────────────────────────────────
  7441.   remarks:     Temporarily displays the screen as it appeared in DOS
  7442.                immediately before the editor was started. Pressing any
  7443.                key or mouse button will restore the editor screen.
  7444.   returns:     nothing
  7445.   see also:    display
  7446.  
  7447.  
  7448.   showmouse 
  7449.   ──────────────────────────────────────────────────────────────────────
  7450.   remarks:     Shows the mouse pointer.
  7451.   returns:     nothing
  7452.   see also:    hidemouse
  7453.  
  7454.  
  7455.   showwindow   window
  7456.   ──────────────────────────────────────────────────────────────────────
  7457.   remarks:     Re-displays a window that was previously hidden with the
  7458.                'hidewindow' function. If 'window' is null or not
  7459.                specified, then the current window is assumed.
  7460.   returns:     nothing
  7461.   see also:    hidewindow
  7462.  
  7463.  
  7464.   sizekey                                                     [Lib][win]
  7465.   ──────────────────────────────────────────────────────────────────────
  7466.   remarks:     Resizes the current window using the cursor keys.
  7467.   returns:     nothing
  7468.   see also:    pankey, sizewin
  7469.  
  7470.  
  7471.   sizeof       string
  7472.   ──────────────────────────────────────────────────────────────────────
  7473.   remarks:     Gets the size of a string in bytes.
  7474.   returns:     the number of characters in the string.
  7475.   see also:    copystr, pad
  7476.  
  7477.   example:     sizeof "apples"                // returns 6
  7478.                sizeof ''                      // returns 0
  7479.                sizeof "ab" + "bc"             // returns 4
  7480.                sizeof 50 + 51                 // returns 3
  7481.  
  7482.  
  7483.   sizequeue    size
  7484.   ──────────────────────────────────────────────────────────────────────
  7485.   remarks:     Removes all events from the event queue and changes the
  7486.                event queue size to 'size' events. Values of 5 through
  7487.                200 may be specified. The default queue size is 20 when
  7488.                the editor is started.
  7489.   returns:     Non-zero if successful, otherwise zero.
  7490.   see also:    dispatch, process
  7491.  
  7492.  
  7493.   sizewin      l t r b reps opt=[acdrswz1] window             [Lib][win]
  7494.   ──────────────────────────────────────────────────────────────────────
  7495.   remarks:     Resizes the specified window. If 'window' is not
  7496.                specified, the current window is assumed.
  7497.  
  7498.                This function is nearly identical to the 'sizewindow'
  7499.                builtin function, except that the window title bar
  7500.                controls are set properly after resizing, and 'reps'
  7501.                (sizing repetitions) can be specified.
  7502.  
  7503.   returns:     nothing
  7504.   see also:    movewindow, sizewindow
  7505.  
  7506.  
  7507.   sizewindow   l t r b opt=[acdrswz1] window relativewindow
  7508.   ──────────────────────────────────────────────────────────────────────
  7509.   remarks:     Changes the size and position of a window. If 'window' is
  7510.                not specified, the current window is assumed. When a
  7511.                window is resized, all parts of the window are redrawn
  7512.                immediately.
  7513.  
  7514.                'l', 't', 'r', and 'b' specify the new window
  7515.                coordinates. The following options can be specified:
  7516.  
  7517.                a - The coordinates are absolute and are relative to an
  7518.                    'origin'. The location of the origin depends on which
  7519.                    of the following options are also specified:
  7520.  
  7521.                    d - the origin is located at the top left corner of
  7522.                        the physical screen
  7523.                    w - the origin is located at the top left corner of
  7524.                        the window 'relativewindow'
  7525.                    1 - the origin is located at the top left corner of
  7526.                        the client area of the window 'relativewindow'
  7527.                    z - the origin is located at the virtual coordinates
  7528.                        (0,0)
  7529.  
  7530.                    If option 'a' is specified and none of the above
  7531.                    options are specified, then 'd' is assumed.
  7532.  
  7533.                r - the coordinates are relative to another rectangle on
  7534.                    the screen. 'l', 't', 'r', and 'b' specify relative
  7535.                    offsets from the left, top, right, and bottom edges
  7536.                    of the rectangle. The location of the rectangle
  7537.                    depends on which of the following options are also
  7538.                    specified:
  7539.  
  7540.                    d - the rectangle is the physical screen
  7541.                    w - the rectangle is the main window area of the
  7542.                        window 'relativewindow'
  7543.                    1 - the rectangle is the client area of the window
  7544.                        'relativewindow'
  7545.                    z - the rectangle is the main window area of the
  7546.                        window being resized (relative to itself, in
  7547.                        other words)
  7548.  
  7549.                    If option 'r' is specified and none of the above
  7550.                    options are specified, then 'z' is assumed.
  7551.  
  7552.                c - the coordinates specify the size of the client area
  7553.                    of the window being sized, not the entire window.
  7554.  
  7555.                s - scrolls the window to keep the cursor visible, if
  7556.                    needed
  7557.  
  7558.                If no options are specified, options 'rz' are assumed.
  7559.  
  7560.   returns:     TRUE if successful, otherwise null.
  7561.   see also:    getcoord, movewindow
  7562.  
  7563.   example:     sizewindow -1 -1 1 1
  7564.                  // expands the current window size by 1 in all four
  7565.                  //   directions
  7566.                sizewindow 0 0 0 0 "rd"
  7567.                  // sizes the current window to fill the entire screen
  7568.                  //  with all the borders visible
  7569.                sizewindow 6 5 72 20 "ad"
  7570.                  // sizes the current window relative to the upper
  7571.                  //  left corner of the screen
  7572.                sizewindow 6 5 72 20 "a1" '' "abc"
  7573.                  // sizes the current window relative to the upper
  7574.                  //  left corner of the client area of window 'abc'
  7575.  
  7576.  
  7577.   sortblock    opt=[di] mark
  7578.   ──────────────────────────────────────────────────────────────────────
  7579.   remarks:     Sorts marked lines. If 'mark' is not specified, the
  7580.                default markid is assumed.
  7581.  
  7582.                For column marks, the text between the left and right
  7583.                edges of the mark is used as the sort key. For all other
  7584.                marks, the entire line is used as the sort key. In either
  7585.                case, all lines spanned by the mark are sorted, not just
  7586.                the text within the mark.
  7587.  
  7588.                One of the following options may be specified:
  7589.  
  7590.                  d - sort in descending order
  7591.                  i - ignore case when sorting
  7592.  
  7593.   returns:     TRUE if successful, otherwise null.
  7594.  
  7595.  
  7596.   speaker      [0/1]
  7597.   ──────────────────────────────────────────────────────────────────────
  7598.   remarks:     Enables (1) or disables (0) sound from the PC speaker.
  7599.   returns:     nothing
  7600.   see also:    beep
  7601.  
  7602.  
  7603.   splitline    col row buffer
  7604.   ──────────────────────────────────────────────────────────────────────
  7605.   remarks:     Splits one line into two lines in a buffer. If 'buffer'
  7606.                is null or not specified, then the current buffer is
  7607.                assumed.
  7608.  
  7609.                'row' specifies which line is to be split and 'col'
  7610.                specifies the column where the split is to occur. If
  7611.                'row' and 'col' are not specified, the current cursor
  7612.                position is assumed.
  7613.  
  7614.                All characters after, and including the specified column
  7615.                are moved to column 1 in a new line after the line to be
  7616.                split.
  7617.  
  7618.   returns:     TRUE if successful, otherwise null.
  7619.   see also:    delline, insabove, insline, joinline
  7620.  
  7621.   example:     splitline
  7622.                  // splits the current line at the cursor in the
  7623.                  //   current buffer
  7624.                splitline 10
  7625.                  // splits the current line at column 10
  7626.  
  7627.  
  7628.   splitstr     delimit+quote multistring ref1 ref2 ...
  7629.   ──────────────────────────────────────────────────────────────────────
  7630.   remarks:     Splits an editor 'multistring' (created by the 'joinstr'
  7631.                function) into individual strings. The 'delimit' and
  7632.                'quote' characters are used as delimiters and literal
  7633.                quoting characters to separate the string (see 'joinstr'
  7634.                above).
  7635.  
  7636.                If 'delimit' and 'quote' are not specified, then the
  7637.                default delimiter character is a slash (/) and the
  7638.                default quote character is a backquote (`).
  7639.  
  7640.                'ref1', 'ref2', etc. refer to variables passed by
  7641.                reference which are to contain the resulting component
  7642.                strings (see the 'ref' keyword).
  7643.  
  7644.   returns:     This function returns the number of component strings in
  7645.                the multistring.  The actual component strings are
  7646.                returned in variables passed by reference to this
  7647.                function.
  7648.  
  7649.   see also:    joinstr, ref
  7650.  
  7651.   example:     splitstr '' "abc/def/xyz" ref a ref b ref c
  7652.                  // returns 'abc' in a, 'def' in b, and 'xyz' in c.
  7653.                  // the entire function call returns '3'
  7654.  
  7655.                splitstr "|\\" "abc|x\|yz" ref a ref b
  7656.                  // returns 'abc' in a, and 'x|yz' in b.
  7657.                  // the entire function call returns '2'
  7658.  
  7659.  
  7660.   splitwin     opt=[hv]                                      [Lib][edit]
  7661.   ──────────────────────────────────────────────────────────────────────
  7662.   remarks:     Splits the current edit window. The following options may
  7663.                be specified:
  7664.  
  7665.                  h - favor horizontal splits
  7666.                  v - favor vertical splits
  7667.  
  7668.   returns:     TRUE if successful, otherwise null.
  7669.   see also:    copywin
  7670.  
  7671.  
  7672.   stayresident 
  7673.   ──────────────────────────────────────────────────────────────────────
  7674.   remarks:     Forces the currently executing macro (invoked by the
  7675.                runmacro function) to remain resident within the editor
  7676.                after the macro is finished executing. Any functions,
  7677.                object variables, or global variables defined in the
  7678.                macro will also remain resident.
  7679.  
  7680.                The macro will remain resident until the temporary object
  7681.                created by 'runmacro' is explicitly destroyed with the
  7682.                'destroyobject' function.
  7683.  
  7684.   returns:     nothing
  7685.   see also:    destroyobject, runmacro
  7686.  
  7687.  
  7688.   stopmark     mark
  7689.   ──────────────────────────────────────────────────────────────────────
  7690.   remarks:     Closes an 'open' mark created with the markline,
  7691.                markcolumn, markchar, or markstream functions. This stops
  7692.                the automatic extension of the mark when the cursor is
  7693.                moved. If 'mark' is not specified, the default markid is
  7694.                assumed.
  7695.  
  7696.   returns:     nothing
  7697.   see also:    extendmark, markchar, markcolumn, markline, markstream
  7698.  
  7699.   example:     markline   // marks the current line
  7700.                stopmark   // stop cursor extension of the mark
  7701.  
  7702.  
  7703.   sub          searchstr replacestr string opt=[irwx]
  7704.   ──────────────────────────────────────────────────────────────────────
  7705.   remarks:     Replaces all occurrences of 'searchstr' found in 'string'
  7706.                with 'replacestr'. Any of the following search options
  7707.                may be specified:
  7708.  
  7709.                  i - ignore case
  7710.                  r - search in reverse from the end of the string
  7711.                  w - whole words only
  7712.                  x - use regular expressions (see 'Regular Expression
  7713.                      Searching')
  7714.  
  7715.                Specifying a null replace string will remove all
  7716.                occurrences of 'searchstr' within 'string'.
  7717.  
  7718.   returns:     The new string resulting from the substitution of
  7719.                'replacestr' for all occurrences of the search string.
  7720.  
  7721.   see also:    pos, poschar, posnot
  7722.  
  7723.   example:     sub 'p' '112' "apples"      // returns 'a112112les'
  7724.                sub 'es' 'y' "apples"       // returns 'apply'
  7725.                sub 'PL' '' "apples" 'i'    // returns 'apes'
  7726.  
  7727.  
  7728.   submenu      menuname                                         [Lib][a]
  7729.   ──────────────────────────────────────────────────────────────────────
  7730.   remarks:     Displays the specified menu as a submenu. This function
  7731.                is only intended for use within a pulldown menu.
  7732.   returns:     nothing
  7733.   see also:    getmenu, gotomenu, menu
  7734.  
  7735.  
  7736.   swapfiles    swapfile1 swapfile2 swapfile3
  7737.   ──────────────────────────────────────────────────────────────────────
  7738.   remarks:     Defines swap files for the editor to use in low memory
  7739.                situations. If available, EMS and XMS memory will always
  7740.                be used before the swap files are created.
  7741.  
  7742.                'swapfile2' will only be used when there is no room on
  7743.                the drive containing 'swapfile1', and 'swapfile3' will
  7744.                only be used when there is no room on the drive
  7745.                containing 'swapfile2'. All swap files should be on
  7746.                different drives.
  7747.  
  7748.                Note: this function may only be called once during an
  7749.                edit session.
  7750.  
  7751.   returns:     TRUE if successful, otherwise null.
  7752.   see also:    maxems, maxxms, memoptions
  7753.  
  7754.  
  7755.   syntax       opt=[bcin] symbols stringchars stringlit numeric
  7756.                eolcom1 startcol1 eolcom2 startcol2 opencom1 closecom1
  7757.                opencom2 closecom2 backscan keywordcolor symbolcolor
  7758.                stringcolor numericcolor eolcomment1color
  7759.                eolcomment2color comment1color comment2color
  7760.   ──────────────────────────────────────────────────────────────────────
  7761.   remarks:     Defines a syntax highlighting template for the current
  7762.                (executing) object. A syntax highlighting template can be
  7763.                customized to highlight the source code of almost any
  7764.                programming language, or even text files.
  7765.  
  7766.                Any of the following syntax highlighting options can be
  7767.                specified:
  7768.  
  7769.                  b - highlighting shows through marked blocks
  7770.                  c - disable highlighting on the line at the cursor
  7771.                  f - use only the foreground portion of the specified
  7772.                      colors, and use the existing background color of
  7773.                      the window
  7774.                  i - ignore keyword case
  7775.                  n - automatically highlight numbers
  7776.  
  7777.                The following parameters can also be specified:
  7778.  
  7779.                symbols      - defines a set of one-character language
  7780.                               symbols to be highlighted. A maximum of 40
  7781.                               symbols can be specified.
  7782.  
  7783.                stringchars  - defines up to 3 one-character string
  7784.                               symbols used to enclose highlighted
  7785.                               character strings.
  7786.  
  7787.                stringlit    - the character used to indicate a literal
  7788.                               character in a character string.
  7789.  
  7790.                numeric      - the character (if any) used to indicate a
  7791.                               numeric value.
  7792.  
  7793.                eolcom1      - single line comment symbol 1 (10 char max)
  7794.                startcol1    - the required start column for 'eolcom1'.
  7795.                               If not specified, all columns are checked.
  7796.  
  7797.                eolcom2      - single line comment symbol 2 (10 char max)
  7798.                startcol2    - the required start column for 'eolcom2'.
  7799.                               If not specified, all columns all checked.
  7800.  
  7801.                opencom1     - the start symbol for multiline comment 1
  7802.                               (10 char max)
  7803.                closecom1    - the end symbol for multiline comment 1
  7804.                               (10 char max)
  7805.  
  7806.                opencom2     - the start symbol for multiline comment 2
  7807.                               (10 char max)
  7808.                closecom2    - the end symbol for multiline comment 2
  7809.                               (10 char max)
  7810.  
  7811.                backscan     - the number of lines to scan backwards to
  7812.                               check if a multiline comment is in effect
  7813.                               (400 line max)
  7814.  
  7815.                The following syntax highlighting colors may also be
  7816.                specified:
  7817.  
  7818.                keywordcolor
  7819.                symbolcolor
  7820.                stringcolor
  7821.                numericcolor
  7822.                eolcom1color
  7823.                eolcom2color
  7824.                comment1color
  7825.                comment2color
  7826.  
  7827.                If option 'f' is specified, and the window foreground
  7828.                color is equal to the foreground portion (lower 4 bits)
  7829.                of any of the above colors, then the background portions
  7830.                (upper 4 bits) of these colors are used as alternate
  7831.                foreground colors. This allows you to change the window
  7832.                color without having to change the syntax highlighting
  7833.                color definitions.
  7834.  
  7835.   returns:     nothing
  7836.   see also:    keyword, setsyntax
  7837.  
  7838.   example:     see the configuration file SYNTAX.AML
  7839.  
  7840.  
  7841.   tabblock     (+/-)tabwidth[1-64] mark
  7842.   ──────────────────────────────────────────────────────────────────────
  7843.   remarks:     Entabs or detabs marked text. If 'mark' is not specified,
  7844.                the default markid is assumed.
  7845.  
  7846.                'tabwidth' specifies the tab width to use. If 'tabwidth'
  7847.                is not specified, then 8 is assumed.
  7848.  
  7849.                If 'tabwidth' is positive, then tab characters (ASCII 9)
  7850.                are converted into spaces (detab). Tab characters within
  7851.                single or double quotes are ignored.
  7852.  
  7853.                If 'tabwidth' is negative, then spaces are converted into
  7854.                tab characters (entab). Spaces occurring after a single
  7855.                or double quote on a line will not be entabbed.
  7856.  
  7857.   returns:     TRUE if successful, otherwise null.
  7858.  
  7859.  
  7860.   thousands    number
  7861.   ──────────────────────────────────────────────────────────────────────
  7862.   remarks:     Converts a number into a thousands-separated string. The
  7863.                'international' function determines what thousands
  7864.                separator character is used.
  7865.  
  7866.   returns:     a thousands-separated string.
  7867.   see also:    international
  7868.  
  7869.   example:     thousands 12345678    // returns '12,345,678'
  7870.  
  7871.  
  7872.   tile         opt=[hv]                                       [Lib][win]
  7873.   ──────────────────────────────────────────────────────────────────────
  7874.   remarks:     Tiles all non-minimized windows on the screen. The
  7875.                following options may be specified:
  7876.  
  7877.                  h - favor horizontal tiling
  7878.                  v - favor vertical tiling
  7879.  
  7880.   returns:     nothing
  7881.   see also:    cascade, splitwin
  7882.  
  7883.  
  7884.   tilewindow   opt=[hvlb] splitnum limit window
  7885.   ──────────────────────────────────────────────────────────────────────
  7886.   remarks:     Tiles windows on the screen, or 'splits' a window into
  7887.                tiles. If 'window' is not specified, the current window
  7888.                is assumed.
  7889.  
  7890.                'limit' specifies the maximum number of tiles. If 'limit'
  7891.                is null or zero, then all windows are tiled.
  7892.  
  7893.                'splitnum' specifies the maximum number of tiles that can
  7894.                be oriented in one direction before the next tile is
  7895.                oriented in a perpendicular direction. If 'splitnum' is
  7896.                null or zero, 2 is assumed.
  7897.  
  7898.                The following options can be specified:
  7899.  
  7900.                  b - reverses the tiling order by starting with the
  7901.                      bottom window on the screen
  7902.                  h - favors horizontal splits
  7903.                  l - tile only the specified window and any other
  7904.                      windows which display the same buffer
  7905.                  v - favors vertical splits
  7906.  
  7907.                If no options are specified, then 'h' is assumed.
  7908.  
  7909.   returns:     TRUE if successful, otherwise null.
  7910.   see also:    getcoord, movewindow, sizewindow
  7911.  
  7912.   example:     tilewindow
  7913.                  // tiles all windows horizontally on the screen
  7914.                tilewindow 'lv'
  7915.                  // vertically tiles any windows which display
  7916.                  //   the same buffer as the current window
  7917.  
  7918.  
  7919.   timer?       timerid
  7920.   ──────────────────────────────────────────────────────────────────────
  7921.   remarks:     Tests if the specified timer is active.
  7922.   returns:     TRUE if timerid is active, otherwise null.
  7923.   see also:    destroytimer, setalarm, settimer
  7924.  
  7925.  
  7926.   toolbar                                                    [Lib][edit]
  7927.   ──────────────────────────────────────────────────────────────────────
  7928.   remarks:     Toggles the display of a toolbar on the current edit
  7929.                window. The toolbar is defined in MENU.AML.
  7930.   returns:     nothing
  7931.   see also:    togglestyle
  7932.  
  7933.  
  7934.   touchfile    filename
  7935.   ──────────────────────────────────────────────────────────────────────
  7936.   remarks:     Changes the last-modified date and time for the specified
  7937.                file to the current date and time.
  7938.   returns:     Non-zero if successful, otherwise zero.
  7939.   see also:    chgfileattr, copyfile
  7940.  
  7941.  
  7942.   trackmouse                                                    [Lib][a]
  7943.   ──────────────────────────────────────────────────────────────────────
  7944.   remarks:     Moves the cursor to the mouse pointer in the current
  7945.                buffer.
  7946.   returns:     nothing
  7947.   see also:    getmousex, getmousey, mousepos, virtocol, virtorow
  7948.  
  7949.  
  7950.   trunc?       buffer
  7951.   ──────────────────────────────────────────────────────────────────────
  7952.   remarks:     Tests if the specified buffer has been truncated when
  7953.                loaded. Truncation can occur if <ctrl break> was pressed
  7954.                while loading the file. If 'buffer' is null or not
  7955.                specified, the current buffer is assumed.
  7956.  
  7957.   returns:     TRUE if the buffer was truncated, otherwise null.
  7958.   see also:    buffer?
  7959.  
  7960.  
  7961.   undo         buffer
  7962.   ──────────────────────────────────────────────────────────────────────
  7963.   remarks:     Reverses the changes made by the last undoable function
  7964.                (or group of functions marked with undobegin - undoend)
  7965.                for a specific buffer. If 'buffer' is null or not
  7966.                specified, then the current buffer is assumed.
  7967.   returns:     TRUE if successful, otherwise null.
  7968.   see also:    redo, undobegin, undoend
  7969.  
  7970.  
  7971.   undobegin 
  7972.   ──────────────────────────────────────────────────────────────────────
  7973.   remarks:     Marks the beginning of a group of function calls which
  7974.                are considered to be one 'undoable/redoable' editing
  7975.                operation. The group is terminated by a matching
  7976.                'undoend' function. 'undobegin' and 'undoend' pairs may
  7977.                be nested.
  7978.  
  7979.                Undo/redo information for all undoable function calls
  7980.                within this group is saved as one undoable operation on
  7981.                the undo/redo stack for each operation's buffer. The
  7982.                follow types of editing functions are undoable:
  7983.  
  7984.                  - functions which modify buffers
  7985.                  - functions which create or modify marks
  7986.                  - functions which create or modify text folds
  7987.  
  7988.                The current cursor position, window size, and window
  7989.                view, are also saved on the undo/redo stack.
  7990.  
  7991.                When the 'undo' or 'redo' functions are called, all
  7992.                undoable editing operations within the group are 'undone'
  7993.                together at one time.
  7994.  
  7995.   returns:     nothing
  7996.   see also:    redo, undo, undocursor, undoend
  7997.  
  7998.   example:     undobegin                // groups 3 editing operations
  7999.                delline                  //   together as one undoable
  8000.                writetext "some text"    //   operation
  8001.                insline "new line"
  8002.                undoend
  8003.  
  8004.  
  8005.   undocursor   buffer
  8006.   ──────────────────────────────────────────────────────────────────────
  8007.   remarks:     Saves the current window size, window view, and cursor
  8008.                position on the undo/redo stack as one undoable
  8009.                operation. If 'buffer' is null or not specified, then the
  8010.                current buffer is assumed.
  8011.   returns:     nothing
  8012.   see also:    redo, undo, undobegin, undoend
  8013.  
  8014.  
  8015.   undoend 
  8016.   ──────────────────────────────────────────────────────────────────────
  8017.   remarks:     Marks the end of a group of undoable/redoable function
  8018.                calls started with the 'undobegin' function (see
  8019.                'undobegin' above).
  8020.   returns:     nothing
  8021.   see also:    redo, undo, undobegin
  8022.  
  8023.  
  8024.   undosize     size buffer
  8025.   ──────────────────────────────────────────────────────────────────────
  8026.   remarks:     Sets the undo/redo stack size for a buffer to 'size'
  8027.                editing operations. If 'buffer' is null or not specified,
  8028.                the current buffer is assumed. Setting the undo/redo
  8029.                stack size to zero disables undo/redo for the specified
  8030.                buffer.
  8031.  
  8032.                The stack size determines the maximum number of undoable
  8033.                editing operations (single or group) that will be saved
  8034.                for each buffer. When an undoable operation is performed
  8035.                and the size limit is exceeded, the undo information for
  8036.                the least-recently performed operation is discarded.
  8037.  
  8038.                When a buffer is initially created, the undo/redo stack
  8039.                size is set to zero (undo is disabled). Whenever the
  8040.                undo/redo stack size is changed with this function, all
  8041.                previous undo/redo information for the buffer is erased.
  8042.  
  8043.   returns:     nothing
  8044.   see also:    redo, undo, undobegin, undoend
  8045.  
  8046.   example:     undosize
  8047.                  // disables undo for the current buffer
  8048.                undosize 200
  8049.                  // deletes the current undo stack and sets the undo
  8050.                  //   stack size for the current buffer to 200
  8051.                  //   editing operations
  8052.  
  8053.  
  8054.   unsetx       varexpression objexpression
  8055.   ──────────────────────────────────────────────────────────────────────
  8056.   remarks:     Destroys the object variable defined by 'varexpression'
  8057.                in the specified object. If 'objexpression' is not
  8058.                specified, then the current object is assumed.
  8059.  
  8060.   returns:     nothing
  8061.   see also:    function?, lookup, set, setobj, setx, setxfun, setxobj
  8062.  
  8063.   example:     unsetx "TempVar"
  8064.                unsetx "Temp" + "Var" "edit"
  8065.  
  8066.  
  8067.   up           rows buffer
  8068.   ──────────────────────────────────────────────────────────────────────
  8069.   remarks:     Moves the cursor upward. 'rows' specifies the number of
  8070.                lines to move. If 'rows' is not specified, 1 is assumed.
  8071.                If 'buffer' is null or not specified, the current buffer
  8072.                is assumed.
  8073.  
  8074.   returns:     TRUE if successful, otherwise null.
  8075.   see also:    down, left, right
  8076.  
  8077.   example:     up         // moves the cursor up 1 row
  8078.                up 5       // moves the cursor up 5 rows
  8079.  
  8080.  
  8081.   upcase       string
  8082.   ──────────────────────────────────────────────────────────────────────
  8083.   remarks:     Converts a string to uppercase.
  8084.   returns:     the string in uppercase.
  8085.   see also:    flipcase, locase
  8086.   example:     upcase "peaches"      // returns "PEACHES"
  8087.  
  8088.  
  8089.   usemark      mark
  8090.   ──────────────────────────────────────────────────────────────────────
  8091.   remarks:     Sets the default markid to 'mark'. If 'mark' is not
  8092.                specified, the markid '*' is assumed. When the editor is
  8093.                started, the default markid is '*'.
  8094.  
  8095.   returns:     The previous default markid.
  8096.   see also:    getmarkuse
  8097.  
  8098.   example:     oldid = usemark 'T'
  8099.                  // set the default markid to 'T'
  8100.                  .
  8101.                  .
  8102.                usemark oldid
  8103.                  // always restore the default markid
  8104.  
  8105.  
  8106.   videoborder  color
  8107.   ──────────────────────────────────────────────────────────────────────
  8108.   remarks:     Changes the video overscan border color to the specified
  8109.                color.
  8110.   returns:     nothing
  8111.  
  8112.  
  8113.   videomode    cols rows                                        [Lib][a]
  8114.   ──────────────────────────────────────────────────────────────────────
  8115.   remarks:     Changes the current video mode to 'cols' x 'rows'. 'cols'
  8116.                must be 40 or 80 and 'rows' must be 12, 14, 21, 25, 28,
  8117.                43, or 50.
  8118.  
  8119.   returns:     nothing
  8120.   see also:    setvideo
  8121.  
  8122.   example:     videomode 80 28    // change the video mode to 80 x 28
  8123.                videomode 80 50    // change the video mode to 80 x 50
  8124.  
  8125.  
  8126.   virtocol     virtualX window
  8127.   ──────────────────────────────────────────────────────────────────────
  8128.   remarks:     Converts a virtual screen X-coordinate to a column in a
  8129.                window. If 'window' is not specified, the current window
  8130.                is assumed. If 'virtualX' is not specified, the current
  8131.                mouse pointer position is assumed.
  8132.  
  8133.   returns:     the window column.
  8134.   see also:    virtorow
  8135.  
  8136.   example:     say (virtocol)
  8137.                  // displays the column in the current window where
  8138.                  //   the mouse pointer is located
  8139.  
  8140.  
  8141.   virtorow     virtualY window
  8142.   ──────────────────────────────────────────────────────────────────────
  8143.   remarks:     Converts a virtual screen Y-coordinate to a row in a
  8144.                window. If 'window' is not specified, the current window
  8145.                is assumed. If 'virtualY' is not specified, the current
  8146.                mouse pointer position is assumed.
  8147.  
  8148.   returns:     the window row.
  8149.   see also:    virtocol
  8150.  
  8151.   example:     say (virtorow)
  8152.                  // displays the row in the current window where
  8153.                  //   the mouse pointer is located
  8154.  
  8155.  
  8156.   whenenter    functionname                                     [Lib][a]
  8157.   ──────────────────────────────────────────────────────────────────────
  8158.   remarks:     Defines an event-handling function to be called by the
  8159.                most recently defined dialog box control, when the
  8160.                control has the focus and the <enter> key (or equivalent)
  8161.                is pressed. The control 'id' (a number indicating the
  8162.                order in which the control was defined) is passed to the
  8163.                event-handling function.
  8164.  
  8165.   returns:     nothing
  8166.   see also:    dialog, getdialog, showdialog, whenselect
  8167.  
  8168.   example:     dialog "Test Dialog Box" 40 8
  8169.                button "&Test" 17 4 8
  8170.                whenenter "testbutton"
  8171.                  // beep when the 'Test' button is pressed
  8172.                function testbutton (id)
  8173.                  msgbox "You pressed control #" + id
  8174.                end 
  8175.                getdialog
  8176.  
  8177.  
  8178.   whenselect   functionname                                     [Lib][a]
  8179.   ──────────────────────────────────────────────────────────────────────
  8180.   remarks:     Defines an event-handling function to be called by the
  8181.                most recently defined group box or list box control, when
  8182.                an item is selected within the control (without pressing
  8183.                <enter> or the equivalent). The control 'id' (a number
  8184.                indicating the order in which the control was defined) is
  8185.                passed to the event-handling function.
  8186.  
  8187.   returns:     nothing
  8188.   see also:    dialog, getdialog, showdialog, whenenter
  8189.  
  8190.   example:     dialog "Test Dialog Box" 40 8
  8191.                groupbox 'Radio Buttons: ' 10 2
  8192.                  ( menu ''
  8193.                      item " ( ) Beep at &200hz"
  8194.                      item " ( ) Beep at &400hz"
  8195.                      item " ( ) Beep at &600hz"
  8196.                    end )
  8197.                whenselect "radio"
  8198.                function radio (id)
  8199.                  beep getrow * 200 500
  8200.                end 
  8201.                getdialog
  8202.  
  8203.  
  8204.   window?      window
  8205.   ──────────────────────────────────────────────────────────────────────
  8206.   remarks:     Tests if a window exists. If 'window' is not specified,
  8207.                the current window is assumed.
  8208.   returns:     TRUE if the window exists, otherwise null.
  8209.   see also:    frame?, wintype?
  8210.  
  8211.  
  8212.   windowflag   opt=[ds-] window
  8213.   ──────────────────────────────────────────────────────────────────────
  8214.   remarks:     Turns window flags on or off. If 'window' is null or not
  8215.                specified, the current window is assumed. The following
  8216.                flags can be specified:
  8217.  
  8218.                  d - flags the window to call the function 'ondraw' in
  8219.                      the window event object after the window client
  8220.                      area is updated. This allows custom drawing or
  8221.                      highlighting of the window client area to be
  8222.                      performed.
  8223.  
  8224.                  s - flags the window to call the function 'onstatus' in
  8225.                      the window event object before the status line is
  8226.                      updated (edit windows only). The user-defined
  8227.                      return value of 'onstatus' will become the actual
  8228.                      status line, allowing the status line to be
  8229.                      customized.
  8230.  
  8231.                  - - turns off flags
  8232.  
  8233.                If option '-' is specified, any other specified flags
  8234.                will be turned off, otherwise all specified flags will be
  8235.                turned on.
  8236.  
  8237.   returns:     nothing
  8238.   see also:    ondraw, onstatus
  8239.  
  8240.  
  8241.   winlist                                                       [Lib][a]
  8242.   ──────────────────────────────────────────────────────────────────────
  8243.   remarks:     Displays a list of open windows. If a window is selected,
  8244.                it becomes the current window.
  8245.   returns:     nothing
  8246.   see also:    currwin
  8247.  
  8248.  
  8249.   wintype?     object window
  8250.   ──────────────────────────────────────────────────────────────────────
  8251.   remarks:     Tests if the specified object is located in the
  8252.                inheritance path of the window event object. If 'window'
  8253.                is not specified, the current window is assumed.
  8254.  
  8255.   returns:     TRUE if 'object' is located in the inheritance path of
  8256.                the window event object, otherwise null.
  8257.  
  8258.   see also:    objtype?
  8259.  
  8260.   example:     wintype? "edit_fmgr"
  8261.                  // tests if the object 'edit_fmgr' is located in the
  8262.                  //   inheritance path of the window (tests if the
  8263.                  //   window is a fmgr window or an edit window)
  8264.  
  8265.  
  8266.   write        string                                 [Ext][edit,prompt]
  8267.   ──────────────────────────────────────────────────────────────────────
  8268.   remarks:     Enters a string into the current buffer at the cursor
  8269.                position, and moves the cursor to the end of the string.
  8270.                If the cursor is in insert mode, the string is inserted
  8271.                into the text, otherwise the string is overlaid onto the
  8272.                text.
  8273.  
  8274.                This function is similar to the 'writetext' function.
  8275.                However, the 'write' function provides support for the
  8276.                following window settings:
  8277.  
  8278.                - Live Word Wrap
  8279.                - MatchCharacter
  8280.                - Standard Word Wrap
  8281.                - Translate
  8282.  
  8283.   returns:     nothing
  8284.   see also:    instext, ovltext, writetext
  8285.  
  8286.   example:     write "some text"
  8287.  
  8288.  
  8289.   writefile    handle string opt=[k]
  8290.   ──────────────────────────────────────────────────────────────────────
  8291.   remarks:     Writes the specified string at the current position in the
  8292.                open file specified by 'handle'. The current position in
  8293.                the file is advanced by the number of characters written.
  8294.                If option 'k' is specified, the file date and time are
  8295.                not modified.
  8296.   returns:     The number of characters written if successful, otherwise
  8297.                null.
  8298.   see also:    closefile, filepos, openfile, readfile
  8299.  
  8300.  
  8301.   writeline    string color col row
  8302.   ──────────────────────────────────────────────────────────────────────
  8303.   remarks:     Displays the specified string in the current window using
  8304.                the color attribute 'color'. If 'col' and 'row' are not
  8305.                specified, the current cursor position is assumed. If
  8306.                'color' is not specified, the window 'text' color is
  8307.                assumed (see 'setcolor').
  8308.  
  8309.                The current cursor position is moved to column one of the
  8310.                next row. If the cursor was on the last row in the
  8311.                window, the window contents are scrolled up by one line.
  8312.  
  8313.                If the current window contains a buffer, the effects of
  8314.                this function (except for cursor movement) are temporary
  8315.                and will disappear the next time the display is updated.
  8316.  
  8317.   returns:     nothing
  8318.  
  8319.   see also:    fillrect, getattr, getstr, getx, gety, gotoscreen,
  8320.                gotoxy, hilite, writestr
  8321.  
  8322.   example:     writeline "some text"
  8323.                  // writes the string 'some text' at the cursor and
  8324.                  //   moves the cursor to the next line
  8325.                writeline "some text" 95
  8326.                  // writes the string 'some text' at the cursor with the
  8327.                  //   color white on magenta, and moves the cursor to
  8328.                  //   the next line
  8329.  
  8330.  
  8331.   writestr     string color col row
  8332.   ──────────────────────────────────────────────────────────────────────
  8333.   remarks:     Displays the specified string in the current window using
  8334.                the color attribute 'color'. If 'col' and 'row' are not
  8335.                specified, the current cursor position is assumed. If
  8336.                'color' is not specified, the window 'text' color is
  8337.                assumed (see 'setcolor').
  8338.  
  8339.                The current cursor position is moved one column past the
  8340.                end of the string.
  8341.  
  8342.                If the current window contains a buffer, the effects of
  8343.                this function (except for cursor movement) are temporary
  8344.                and will disappear the next time the display is updated.
  8345.  
  8346.   returns:     nothing
  8347.  
  8348.   see also:    fillrect, getattr, getstr, getx, gety, gotoscreen,
  8349.                gotoxy, hilite, writeline
  8350.  
  8351.   example:     writestr "some text"
  8352.                  // writes the string 'some text' at the cursor
  8353.                writestr "some text" 95
  8354.                  // writes the string 'some text' at the cursor with the
  8355.                  //   color white on magenta
  8356.  
  8357.  
  8358.   writetext    string col row buffer
  8359.   ──────────────────────────────────────────────────────────────────────
  8360.   remarks:     Enters a string into a buffer at the specified row and
  8361.                column, and moves the cursor to the end of the string. If
  8362.                the cursor is in insert mode, then the text is inserted,
  8363.                otherwise the text is overlaid.
  8364.  
  8365.                If 'buffer' is null or not specified, then the current
  8366.                buffer is assumed. If 'col' and 'row' are not specified,
  8367.                then the string is inserted at the current cursor
  8368.                position.
  8369.  
  8370.   returns:     TRUE if successful, otherwise null.
  8371.   see also:    delchar, ovltext
  8372.  
  8373.   example:     writetext "some text"
  8374.                  // writes 'some text' at the cursor in the current
  8375.                  //   buffer
  8376.                writetext "some text" 2 20
  8377.                  // writes 'some text' at column 2, line 20 in the
  8378.                  //   current buffer
  8379.                writetext "some text" 1 1 "abc"
  8380.                  // writes 'some text' at column 1, line 1 in the
  8381.                  //   buffer "abc"
  8382.  
  8383.  
  8384.   yncbox       message  title                                   [Lib][a]
  8385.   ──────────────────────────────────────────────────────────────────────
  8386.   remarks:     Displays the specified message in a popup window with
  8387.                'Yes', 'No', and 'Cancel' buttons. If a title is not
  8388.                specified, 'Message' is assumed.
  8389.  
  8390.   returns:     The name of the button pressed (Yes, No, or Cancel), or
  8391.                null if no button was pressed.
  8392.  
  8393.   see also:    msgbox, okbox, say, shortbox
  8394.  
  8395.   example:     yncbox "Replace the string?" "Replace"
  8396.  
  8397.