@database GED.HYPER

@node MAIN


              @{"  Feature list          " link FEATURE_LIST}   @{"  Command list           " link COMMAND_LIST}
              @{"  Licence               " link LICENCE}   @{"  General hints          " link GENERAL_HINTS}
              @{"  Introduction          " link INTRODUCTION}   @{"  Credits                " link CREDITS}
              @{"  Required system       " link REQUIRED_SYSTEM}   @{"  How to register        " link HOW_TO_REGISTER}
              @{"  Getting started       " link GETTING_STARTED}   @{"  How to get updates     " link HOW_TO_GET_UPDATES}
              @{"  Description of menus  " link DESCRIPTION_OF_MENUS}   @{"  How to contact author  " link HOW_TO_CONTACT_AUTHOR}
              @{"  Keyboard              " link KEYBOARD}
              @{"  ARexx port            " link AREXX_PORT}   @{"           ???           " link APPENDIX}


Suggested reading is from top to bottom. Novice users should skip the section
on GoldED's internal commands respectively its ARexx interface.


@endnode
@node FEATURE_LIST "FEATURE LIST"
                                 FEATURE LIST 

          o OS3.x look & functions (@{" AppWindows " link M0.6} & more)
          o @{" Folding " link M4.7} of paragraphes (unlimited nesting available)
          o Menus fully customizable (easy-to-use requesters)
          o @{" ARexx port " link AREXX_PORT} (about 340 commands/options)
          o @{" QuickReference " link M3.12} capability (includes, sources, ...)
          o @{" APC " link M3.14} (TM): Automatic phrase completion, based on dictionary
          o @{" shifting " link M1.16} (two speeds)
          o Smooth display, fast scrolling
          o @{" HotKey " link M0.24} support
          o unlimited number of windows
          o @{" Formatter " link LAYOUT_MENU} (aligned, block, centered), @{" WordWrap " link M2.2}
          o automatic indention (left margin)
          o @{" SmartIndention " link M7.7} (code dependend, e.g. after 'if')
          o @{" AutoBackup " link M7.15} (any interval, any backup path)
          o @{" MenuHelp " link GETTING_STARTED} (AmigaGuide)
          o localized (English/German so far)
          o printer control (linefeed/spacing/style)
          o @{" Multiselect " link M0.6} of files (e.g. join files together)
          o direkt @{" XPK support " link M0.18}: (de)crunching
          o ASCII character selection window
          o flexible GUI handling: any @{" display mode " link M7.9}/@{" font " link M7.9}
          o protection bits support, file comment support
          o @{" clipboard " link M1.5} support (snapping): Cut & paste
          o @{" AutoLoad " link M7.15} of project file
          o @{" FastLoad " link M0.7} mode
          o @{" AutoCase " link M7.6} (TM) correction (based on user's dictionary)
          o automatic @{" parenthesis check " link M7.6} available
          o @{" QuickFunc " link M3.24} jump table display for many prog. languages
          o @{" insertion of columns " link M1.12}, @{" removal of columns " link M1.11}
          o user friendly (about 25 requesters)
          o fixed/regular/@{" dynamic TABs " link TAB_KEY}; solid/tranparent TABs
          o @{" character set remap " link M3.19} (e.g. Amiga to MS-DOS)
          o four @{" speeds of scrolling " link CURSOR_KEYS}
          o quick starter ED
          o @{" startup macro " link M7.15}
          o powerful @{" macro recording " link M6.3}
          o @{" global search " link M5.3} accross file boundaries
          o @{" file hunter " link M5.4} (extract file name under cursor, search file)
          o @{" search/replace history " link M3.0}
          o and many more ...



@endnode
@node LICENCE "LICENCE"
                                   LICENCE 

This  licence agreement affects all programs, manuals and disks of the editor
package  GoldED  (registered  or unregistered) exept files within the support
directory.  Violations  of any of the topics below will cause this licence to
expire,  i.e.  terminate  your  rights  to  use  or  otherwise  handle  (e.g.
distribute) the package.

You may - apart from backups for private use - neither copy this program, nor
modify  it  nor  transfer  it to other media. This doesn't apply for the demo
version.  You  may duplicate/distribute the demo version as long as you don't
charge  money for it apart from compensation for time/media expenditures. You
may not distribute the registered version.

You  are  not  allowed  to include the demo version into any kind of software
collection  apart from the Amiga Library (compiled by Fred Fish) and BBS file
areas  without  written  permission  of the author. This applies for CD roms,
disk  magazines,  ...  The  demo  version may not be distributed as part of a
bundle (e.g. bookware, disk magazine).

The  copyright  owner(s)  reserve  the right to interdict distribution at any
time  if  the  distributor  fails  to obey to this licence from the copyright
owner(s)  point  of  view.  Profits  made  by illegal distribution have to be
passed to the copyright owner(s).
  
You  may not modify the package: do not change the compilation, do not change
(patch) files. The editor might become inoperational if you do so.
  
The copyright owner(s) provide this program "as is". The entire risk of using
this  program  is with you. The copyright owner(s) won't ever be reliable for
damages  to  you  -  wether  they  arise  from the use of this package or the
inability  to use it, wether they are direct or consequential, including, but
not limited to, the loss of data or the generation of inaccurate data.


@endnode
@node INTRODUCTION "INTRODUCTION"
                                 INTRODUCTION 

The  basic  design  goals  of  this  editor were: make it as user friendly as
possible. And make it as fast as possible. A lot of attention has been put to
the  general  look & feel, performance considerations and full support of the
great  Amiga  OS.  The  whole  design  is  based  on  OS2.1/3.0,  a fast CPU,
sufficient RAM and a hard disk. I neither cared much about memory consumption
nor did I pay attention to OS1.3 compatibility since this would have meant to
make concessions to speed or general handling.

GoldED's way of working is basically event based: the editor waits for events
like a pressed key or a menu selection and then calls a dispatcher to perform
approbiate  action.  Action  is  not  hard  coded:  you may assign any of the
editor's  internal  functions  to  an  event (though most people won't do any
assignments  at  all  but use the default configuration). For example you may
assign  the  'open  file'  function to the 'A' key by using GoldED's keyboard
requester.  Or assign the text "hi, I'm the A key" to the A key. Or assign an
ARexx  macro  script  to  it. Or a DOS command. Or just leave it as it is. No
matter  what  kind of interface to GoldED you use (the menus, the keyboard or
its  ARexx  port):  all of them do support the same command set. It's easy to
use,  straight-forward  and  flexible.  GoldED  doesn't use an internal macro
language  like  DME:  Its  internal  functions  are basically function calls,
performing  some  kind  of  action.  It  fully  relies  on  ARexx  as  far as
conditional statements like IF ... THEN are concerned.

Please  keep in mind that this is a very early (beta) release of GoldED. Some
features  require  additional work. I do expect bugs to show up. The settings
file format as well as the command set of GoldED's ARexx interface may change
with the first official release.


@endnode
@node REQUIRED_SYSTEM "REQUIRED SYSTEM"
                               REQUIRED SYSTEM 

Minimum  requirements  are  OS2.04,  68000  and 1 MB RAM. GoldED has NOT been
tested  with  a  68000. Suggested minimum system for average performance (I'm
serious  about  that)  is  OS3.0,  68020  &  2 MB RAM. Some advanced features
require  OS2.1,  some other features even require OS3.0. I strongly recommend
to  install/rekick  OS3.x  if  your  Amiga is capable of it. GoldED is *much*
faster under OS3.x.

Software  requirements  (all  these  files  have been realeased to the public
already - check Fish disks):

o @{" reqtools " link CREDITS} library
o @{" xpk " link CREDITS} library
o amigaguide library

@endnode
@node GETTING_STARTED "GETTING STARTED"
                               GETTING STARTED 


Start  the  editor either by doubleclicking its icon or by typing its name at
shell  level. Or use the @{" HotKey " link M0.24} combination (i.e. right ALT + right SHIFT &
RETURN)  if  the  editor  is  present in the background already. Depending on
wether or not AutoLoad (see @{" config/misc " link M7.15}) is enabled, it might happen that a
file  is  loaded  automatically  even  though you have provided no file name.
Don't get confused - it's a feature, not a bug :-)

QuickStarter 

Besides  the main editor GoldED, a quick starter ED is provided. This program
is  a  small  (4  KB)  GoldED  frontend.  You can use it AS IF it were a real
editor. For example you might type 'ed letter' to edit the file letter if the
quick  starter  were  named 'ed'. The big advantage of a quick starter is its
abilty  to  pass a new job to an already running instance of GoldED (if there
is  any).  Needless to say that this happens very fast. The quick starter may
be  made  resident  (the  main  editor  may  not).  The  source code of ED is
available in the "GoldED:Tools/EDSource" drawer.

Arguments 

GoldED  accepts  four  kinds  of arguments: a list of file names to load, the
name   of  a  public  screen  to  open  on  (after  the  SCREEN  keyword),  a
configuration  file  to use (CONFIG keyword) and finally the HIDE option. The
SCREEN/CONFIG/HIDE arguments may be passed as command line options as well as
icon  tool  types  (don't  use  quotes  around  file  names  within tool type
entries). Example:

                 GoldED s:startup-sequence CONFIG s:MyPrefs

If  you  want  the  editor  to  stay in the background initially (waiting for
@{" HotKey " link M0.24} activation), use the HIDE option but don't supply file names:

                 GoldED HIDE

The  quickstarter  ED additionally supports the STICKY option (see below). It
will ignore the CONFIG/SCREEN options if it is able to pass the list of files
to a running instance of GoldED. Example:

                 ED mail:answer CONFIG s:BBS.prefs STICKY

The  quickstarter  has  been designed to for synchronous operation (except if
the HIDE option is used to run the editor in the background). It won't detach
itself  from  a  shell  window unless you RUN it. If the STICKY option is not
specified, a call to ED returns after the last GoldED window has been closed.
If STICKY is specified, a call to ED returns after the window opened by ED is
closed  (GoldED  itself  may  keep on running if there are further windows to
handle).  This  is  designed  to  be used in command files where you want the
execution  of  the  batch  file  or command script to wait until the user has
finished  editing a particular file. ED will return (using the sticky option)
when the user quits out of the file.

MenuHelp 

The editor's help facility is based on Commodore's AmigaGuide library. Simply
doubleclick the 'manual' icon - its default tool is AmigaGuide. You might use
'MultiView'  of  OS3.0  to  read  the 'GoldED.guide' file, too. GoldED itself
supports  menu  help:  press  the  <HELP> key during selection of a menu item
(within GoldED) to get explanations related to the item you selected.

Language 

Locale  library of OS2.1 or better is supported as far as GoldED's requesters
are  concerned:  if  you have selected German to be your default language (by
using  the  'locale'  preferences  of  your Workbench), requesters as well as
time/date  strings  will  be  German.  So  far  only  English  and German are
available;  other languages might be available in the future. Locale settings
do  not  affect  menus  because  menus  are not part of the editor itself but
external  text files. Use @{" config/menus " link M7.10} to edit/load menus. The default menu
definition  file  is  available  in  German & English. It is installed by the
Install  utility  when installing the GoldED package. You may load a new menu
definition file at any time (see @{" config/menus " link M7.10}).

GUI 

The  editor's  user interface supports the look & feel of OS2.x. Most gadgets
offer  keyboard  activation: if a character of the gadget inscription appears
underscored, it may be used as shortcut. Thus you may move a slider gadget or
activate   a  button  gadget  by  a  single  keystroke.  Use  the  shift  key
simultanously to toggle 'direction' of changes - e.g. to move a slider gadget
one  step  to  the  left  instead  of  to  the  right.  Use  the  'Amiga' key
simultanously to activate another gadget from within a string gadget (without
R-Amiga your input would go to the string gadget).


@endnode
@node DESCRIPTION_OF_MENUS "DESCRIPTION OF MENUS"
                             DESCRIPTION OF MENUS 

Since  the  editor offers many possibilities for user configuration, there is
no  'standard'  appearance, neither as far as colors, resolution or fonts nor
as  far as menus & functions are concerned. This manual describes the default
configuration. Use @{" config/load " link M7.19} to load a settings file.

The standard menus are:

                    @{"  Project menu  " link PROJECT_MENU}  @{"  Control menu  " link CONTROL_MENU}
                    @{"  Block menu    " link BLOCK_MENU}  @{"  Misc menu     " link MISC_MENU}
                    @{"  Layout menu   " link LAYOUT_MENU}  @{"  Macro menu    " link MACRO_MENU}
                    @{"  Find menu     " link FIND_MENU}  @{"  Config menu   " link CONFIG_MENU}


@endnode
@node PROJECT_MENU "PROJECT MENU"
                                 PROJECT MENU 
                           menu tree of project menu 


           @{"  project/about          " link M0.0}   @{"  project/new name         " link M0.13}
           @{"  project/user           " link M0.1}   @{"  project/current dir      " link M0.14}
           @{"  project/clear text     " link M0.3}   @{"  project/save             " link M0.16}
           @{"  project/more ed        " link M0.4}   @{"  project/save as          " link M0.17}
           @{"  project/load           " link M0.6}   @{"  project/save as XPK      " link M0.18}
           @{"  project/load fast      " link M0.7}   @{"  project/save & exit      " link M0.19}
           @{"  project/load new       " link M0.8}   @{"  project/bits             " link M0.21}
           @{"  project/load original  " link M0.9}   @{"  project/print            " link M0.22}
           @{"  project/insert         " link M0.10}   @{"  project/quit             " link M0.24}
           @{"  project/append         " link M0.11}


The  project menu offers a variety of commands related to general handling of
a  document,  especially  as far a basic input/output functions are concerned
(load/save or printing).


@endnode
@node M0.0 "project/about"
project/about of @{" PROJECT MENU " link PROJECT_MENU}

Displays  version ID. Furthermore the name of this task's ARexx port and this
task's  screen  name  are  displayed. If you told the editor to open a custom
screen,  this  screen  is  always 'public', i.e. you are invited to run other
tasks     on     the     editor's     screen     (example:     type     SHELL
CON:0/11/640/100/Shell/screenGOLDED.1  to open a shell window on the editor's
screen).  See  @{" config/display " link M7.9}  for infomation on how to make other programs
appear on GoldED's screen.


@endnode
@node M0.1 "project/user"
project/user of: @{" PROJECT MENU " link PROJECT_MENU}

If you are a registered user of GoldED, your name would be displayed when you
select  this  menu  item.  The unregistered release shows a general copyright
information.


@endnode
@node M0.3 "project/clear text"
project/clear text of: @{" PROJECT MENU " link PROJECT_MENU}

Clears  contents  of  current window. Protection bits are set to the defaults
(see  @{" config/misc " link M7.15}) before any further action takes place. The path is reset
to  the  current path, the file name is reset to "unnamed". You are asked for
confirmation if the window's text has been changed since loading


@endnode
@node M0.4 "project/more ed"
project/more ed of: @{" PROJECT MENU " link PROJECT_MENU}

Does  open  further  window  for  input.  The  window  size  is read from the
configuration  file  (see @{" config/load " link M7.19}). If you have enabled AutoCenter (see
@{" config/misc " link M7.15},  default  is  ON),  the  new  window  is  centered  on screen,
otherwise  the  window position is read from the configuration file, too. Use
@{" config/save " link M7.18}  to  save window dimnsions & position of your current window as
default  settings.  This  editor  offers  many  functions  related  to window
management,  e.g. it is able to 'arrange' your windows on screens. Autoscroll
screens  are  fully  supported: window functions consider the visible section
only. See @{" control/arrange windows " link M4.13} for more details.


@endnode
@node M0.6 "project/load"
project/load of: @{" PROJECT MENU " link PROJECT_MENU}

Discards   current   text   if   any   was  loaded  (internally  realized  as
@{" project/clear text " link M0.3}), asks for new file(s) & loads the file(s).

Multiselect 

Like most file requesters of GoldED, the file requester used by this function
supports  multi  select,  i.e.  you  may  select  more than one file at once.
Treatment of multi selected files depends on the context: while this function
will open a new window for each file, @{" project/append " link M0.11} will load all selected
files to one window.

AppWindows 

GoldED's  text windows are so called AppWindows: it is possible to drag icons
(of text files) over a text window. These files would be appended to the text
of  that  window.  Multi select is supported: You may drag more than one file
over  a  window  using  extended selection (hold down the shift key while you
select icons).

Crunched   XPK   files   (see  @{" project/save  as  XPK " link M0.18})  are  recognized  and
decompressed  while  reading if the @{" XPK " link CREDITS} library is available. This function
checks  for  TABs  (dez.  8);  TABs  will  be replaced by SPC (dez. 32) while
loading. See @{" config/tabs " link M7.1} if you want to influence substitution. LOAD uses a
reasonable  sized  input buffer of about 16KB to speed up operation. However,
if you want even better performance, use @{" project/load fast " link M0.7} instead.
  
If  AutoFold  (@{" config/misc " link M7.15})  is ON, the file is scanned for folded sections
automatically after loading. You should disable AutoFold if you don't want to
use  this editor's folding capabilty to prevent scanning for fold markers and
thus save time.

Warning:  Do  never  attempt  to  edit  binaries (programs). GoldED is a text
editor,  not  a  file  monitor. It will change the data in a way suitable for
text  files  but  definitely  unsuitable for binaries ( e.g. remove CR return
codes, substitute spaces, clear the executable-bit).


@endnode
@node M0.7 "project/load fast"
project/load fast of: @{" PROJECT MENU " link PROJECT_MENU}

FastLoad 

A  fast  replacement for @{" project/load " link M0.6}. This option requires an IO buffer of
the original file's size and it doesn't check for TABs. However, since GoldED
never  writes TABs (a concession to speed), this function might suit you very
well  if  your  Amiga  has a decent amount of RAM. This function is about 50%
faster than 'slow' load. Use @{" project/load original " link M0.9} to reload a file in slow
mode  (with  TAB  substitution enabled) if you discover after loading that it
contains   TAB's   ('strange'  characters  at  beginning  of  lines).  GoldED
automatically  falls  back  to  slow  load if it detects TAB codes within the
first 1500 bytes of a file.


@endnode
@node M0.8 "project/load new"
project/load new of: @{" PROJECT MENU " link PROJECT_MENU}

Load  a  document  but  don't load it to the current window as @{" project/load " link M0.6}
would do. Instead, a new window is prepared.


@endnode
@node M0.9 "project/load original"
project/load original of: @{" PROJECT MENU " link PROJECT_MENU}

Reload  current  file  from disk. Useful after you have made some changes but
want  to  switch back to the original. This function uses 'slow loading' (see
@{" project/load fast " link M0.7}), i.e. TAB's will be substituted by spaces.


@endnode
@node M0.10 "project/insert"
project/insert of: @{" PROJECT MENU " link PROJECT_MENU}

Insert  a  file  at  current  cursor  position  (before current line). A file
requester  will pop up, asking you for one or more files to be inserted. Hold
down  the  SHIFT  key  to  select  more than one file (this feature is called
'multiselect').


@endnode
@node M0.11 "project/append"
project/append of: @{" PROJECT MENU " link PROJECT_MENU}

Append  one or more files to your current text. A file requester will pop up,
asking  you  for  one  or more files to append to your text. This function is
quite useful to join a couple of files together.


@endnode
@node M0.13 "project/new name"
project/new name

Usesul  to  change the name of current text (you are prompted for a new one).
Only  the document in memory is affected - no disk file is renamed. Since one
usually  would  use  @{" PROJECT/SAVE AS " link M0.17} to save a file to a new location, this
function is rarely used.


@endnode
@node M0.14 "project/current dir"
project/current dir of: @{" PROJECT MENU " link PROJECT_MENU}

This  function sets the 'current path' to wherever you want. The current path
is  used  by  many functions (e.g. @{" project/load new " link M0.8}) as default path. It is
used  by  all menu items of type DOS, too (e.g. 'new shell'). If you have set
the  current  path to 's:', a function like @{" project/load new " link M0.8} would list the
s-directory when asking for a file.

Setting  the  current  path doesn't change the name of an existing text - use
the  menu  command  @{" project/new  name " link M0.13}  to reset the text to the new default
directory.  Some functions (like @{" project/load " link M0.6}) don't care about the current
path  -  they  extract path information from the current document's name. Use
@{" project/clear text " link M0.3} to reset the path of an empty text window.


@endnode
@node M0.16 "project/save"
project/save of: @{" PROJECT MENU " link PROJECT_MENU}

Save  your  current  text,  using  the  current  name  displayed in/below the
window's  title  bar.  Any  old copy (no matter how protection bits have been
set)  is overwritten without asking for confirmation. However, you might turn
on backup creation if you want the editor to backup the old version if any is
available;  see @{" config/misc " link M7.15} for more information on backups. You might even
ask  the  editor to backup your files regulary (e.g. every 10 minutes) to any
directory (see @{" config/misc " link M7.15} as well).

This  function  is disabled for windows of type read-only to prevent the user
from  accidentally  overwriting  important  files.  QickRef  (TM) windows are
read-only (see @{" QuickReference " link M3.12}).


@endnode
@node M0.17 "project/save as"
project/save as of: @{" PROJECT MENU " link PROJECT_MENU}

Same as @{" project/save " link M0.16} but gives you the opportunity to enter a new file name
before the text is written to disk.

This  function  is disabled for windows of type read-only to prevent the user
from  accidentally  overwriting  important  files.  QickRef  (TM) windows are
read-only (see @{" QuickReference " link M3.12}).


@endnode
@node M0.18 "project/save as XPK"
project/save as XPK of: @{" PROJECT MENU " link PROJECT_MENU}

XPK support 

Save  current  file  in compressed mode (about 50% less disk space required).
See  @{" config/misc " link M7.15}  on how to select compression mode. This function requires
the  complete set of XPK libraries which has been released as FD. Note: other
editors/programs  might  not  be able to handle crunched files, so be careful
when using this function. Don't crunch your sources - the compiler won't like
it.


@endnode
@node M0.19 "project/save & exit"
project/save & exit of: @{" PROJECT MENU " link PROJECT_MENU}

Same  as @{" project/save " link M0.16} followed by @{" project/quit " link M0.24}: Save current text & close
window.  Exit  from  GoldED  if the last window has been closed. GoldED won't
close  a window respectively exit if the SAVE operation fails (e.g. disk full
error).

This  function  is disabled for windows of type read-only to prevent the user
from  accidentally  overwriting  important  files.  QickRef  (TM) windows are
read-only (see @{" QuickReference " link M3.12}).


@endnode
@node M0.21 "project/bits"
project/bits of: @{" PROJECT MENU " link PROJECT_MENU}

Edit  protection  bits  of  the  current  text. Have a look at your Amiga DOS
manual  if you are unfamilar with these bits. In generally you should set the
S  (script)  bit  for  batch  files but let the other bits untouched. Changes
won't  have  any  effect  until  you  save  the text. These bits are set to a
default  state  after  performing @{" project/clear text " link M0.3}). Use @{" config/misc " link M7.15} to
define the default state.


@endnode
@node M0.22 "project/print"
project/print of: @{" PROJECT MENU " link PROJECT_MENU}

Send  current text to printer 'PRT:'. See @{" config/printer " link M7.14} for information on
how  to  affect  output style. DeskJet/LaserJet owners should use the HiSpeed
printing  facility  of  the  @{" misc " link MISC} menu instead (@{" misc/hispeed " link M5.17}). HiSpeed is
shareware;   a   registered  HiSpeed  release  is  part  of  the  GoldED  Pro
registration.


@endnode
@node M0.24 "project/quit"
project/quit of: @{" PROJECT MENU " link PROJECT_MENU}

Close  current  window.  Exit from GoldED if the last window has been closed.
You  are  asked  for confirmation if you attempt to exit without having saved
your  text  so  far  (unless  you didn't change the text at all). You are NOT
asked   for   confirmation   if  only  preferences  have  been  changed  (see
@{" config/save " link M7.18}).

GoldED's memory management is asynchronous - after having closed a window you
don't  have  to wait for the memory to be freed (this is done by a background
task).  Your  Amiga  might  appear to be slightly slower than usual while the
background  task  is busy - especially if the text buffer has been large (200
KB or more).

HotKey 

If  hotkey support (see @{" config/misc " link M7.15}) is enabled, GoldED will not be removed
from  RAM  even  after  closing  the  last window. Instead it will wait for a
hotkey  combination  (right  ALT & right SHIFT & RETURN). Press these keys to
make  the  editor  reappear.  Or use the commodities exchange program of your
workbench.  HotKey  activation  will give you a very fast response time since
the editor won't have to be reloaded from disk.



@endnode
@node BLOCK_MENU "BLOCK MENU"
                                  BLOCK MENU 
                           menu tree of block menu 


           @{"  block/mark           " link M1.0}   @{"  block/insert column  " link M1.12}
           @{"  block/hide mark      " link M1.1}   @{"  block/append text    " link M1.13}
           @{"  block/cut            " link M1.3}   @{"  block/column text    " link M1.14}
           @{"  block/copy           " link M1.4}   @{"  block/indent         " link M1.16}
           @{"  block/paste          " link M1.5}   @{"  block/sort           " link M1.17}
           @{"  block/bcopy          " link M1.7}   @{"  block/uppercase      " link M1.19}
           @{"  block/bdelete        " link M1.8}   @{"  block/lowercase      " link M1.20}
           @{"  block/bmove          " link M1.9}   @{"  block/save as        " link M1.22}
           @{"  block/delete column  " link M1.11}   @{"  block/print          " link M1.23}


All  functions  of  the block menu are related to the management of 'blocks',
which  are  marked  sections  of lines. Ususally one would use menu functions
(respectively  corresponding  keyboard  shortcuts) to mark lines, however the
mouse  may  be used as well: simply hold down the left mouse button while you
drag the pointer over a desired section of lines. You can have only one block
per document. Blocks work on a line-by-line basis, i.e. it is not possible to
mark  single  words.  This  will  change  with  future  releases  of  GoldED.
Suggestion: Use PowerSnap (FD) inbetween.


@endnode
@node M1.0 "block/mark"
block/mark of: @{" BLOCK MENU " link BLOCK_MENU}

Mark beginning or end of a block. If you call this function for the fist time
(no  marked lines so far), the editor will remember the current line as START
of  a  new  block.  If  you  call this function for a second time, the editor
considers  the current cursor position as the block's END - all lines between
START and END are highlighted. START respectively END are symbolic line names
-  START  doesn't necessaryly have to be smaller than END. Things are handled
differently if you use this function after a block has already been selected:
If  cursor  position  is  closer  to the end of the current block than to its
start,  the  end  position is updated. Otherwise the start position is set to
the  cursor's  line.  You  might use @{" block/hide mark " link M1.1} to get rid of a block,
i.e. to unmark lines.


@endnode
@node M1.1 "block/hide mark"
block/hide mark of: @{" BLOCK MENU " link BLOCK_MENU}

Turn  block  off,  ie.  don't have any text section highlighted. Useful after
@{" block/mark " link M1.0} to get rid of a block selection.


@endnode
@node M1.3 "block/cut"
block/cut of: @{" BLOCK MENU " link BLOCK_MENU}

Cut  selected  lines (see @{" block/mark " link M1.0}) from text. These lines are written to
the  clipboard,  ready  to  be  inserted  into any application supporting the
clipboard  device (e.g. into a shell window by pressing AMIGA & V or into any
GoldED  document  using @{" block/paste " link M1.5}). The clipboard offers several storages
called  "units"  and  thus is able to keep many blocks of data; standard unit
(used  to  exchange  data  between applications) is unit 0. You shouldn't use
these  cliboard-based  functions  to  move/copy  data  within a single GoldED
document;  @{" block/bcopy " link M1.7}  or  @{" block/bmove " link M1.9}  would perform the same task much
faster.


@endnode
@node M1.4 "block/copy"
block/copy of: @{" BLOCK MENU " link BLOCK_MENU}

Copy  marked  lines  (see  @{" block/mark " link M1.0}) to the clipboard device, ready to be
inserted  into  any  application supporting this device. The clipboard offers
several storages called "units" and thus is able to keep many blocks of data;
standard  unit  (used  to exchange data between applications) is unit 0. This
function  doesn't  affect  your  current  text  (as  @{" block/cut " link M1.3}  would). See
@{" block/paste " link M1.5} for more details.


@endnode
@node M1.5 "block/paste"
block/paste of: @{" BLOCK MENU " link BLOCK_MENU}

Insert clipboard contents (if any are available) into current text.
  
Clipboard 

The   'clipboard'   (actually   the   'CLIPS:'-directory)  is  used  by  many
applications to exchange data. It offers serveral storages called "units" and
thus  is able to keep several blocks of data simultanously. GoldED can access
any  unit  (see @{" CLIP " link CLIP} command), though usually only unit 0 is used. Postings
to  the  clipboard  are IFF files; GoldED supports IFF/FTXT clipboard access.
For  example, you could mark a text within a shell window, press AMIGA + C to
copy these lines to the clipboard unit 0 and then reinsert them into a GoldED
window  using  AMIGA  +  V.  A paste operation won't remove the data from the
clipboard, i.e. you can call this function several times.


@endnode
@node M1.7 "block/bcopy"
block/bcopy of: @{" BLOCK MENU " link BLOCK_MENU}

Copy  marked  lines  (see @{" block/mark " link M1.0}) to current cursor position. Useful to
duplicate  sections  within  a single document (while you would have to use a
@{" block/cut " link M1.3}/@{" block/paste " link M1.5}  pair to exchange data between different windows or
different applications).


@endnode
@node M1.8 "block/bdelete"
block/bdelete of: @{" BLOCK MENU " link BLOCK_MENU}

Delete  highlighted lines (see @{" block/mark " link M1.0}). It is not possible to undo this
operations,  so  better be careful. If you don't want to miss an undo option,
use @{" block/cut " link M1.3} instead (@{" block/paste " link M1.5} to undo) - however those functions are
no as fast as this one.


@endnode
@node M1.9 "block/bmove"
block/bmove of: @{" BLOCK MENU " link BLOCK_MENU}

Move  highlighted  lines  (see  @{" block/mark " link M1.0}) from their original position to
current  cursor  position.  This function is useful to move sections of lines
within    a    single   document   (while   you   would   have   to   use   a
@{" block/cut " link M1.3}/@{" block/paste " link M1.5}  pair  to  move  text  from  one  window to another
window/application).


@endnode
@node M1.11 "block/delete column"
block/delete column of: @{" BLOCK MENU " link BLOCK_MENU}

Removal of columns 

Delete  a  column  from  highlighted lines (see @{" block/mark " link M1.0}). Move cursor to
desired  column  before you call this function (e.g. move cursor to column 10
if  you  want  to  delete this column from all block line). You shouldn't use
this  function if you simply want to change indention of a paragraphe because
- use @{" block/indent " link M1.16} instead.


@endnode
@node M1.12 "block/insert column"
block/insert column of: @{" BLOCK MENU " link BLOCK_MENU}

Insertion of columns 

Insert  a  column  into  highlighted  lines  (see @{" block/mark " link M1.0} on how to mark
lines). Move cursor to desired column before you call this function. Example:
Move  cursor  to  column  40 if you want to insert one space character before
this column into all marked lines.


@endnode
@node M1.13 "block/append text"
block/append text of: @{" BLOCK MENU " link BLOCK_MENU}

Append   text   to   marked  lines.  Example  usage:  Mark  some  lines  (see
@{" block/mark " link M1.0}) and call this function. A requester will pop up, asking you for
a  text  to  be  appended. If you enter ';', a semicolon would be appended to
each line you have marked.


@endnode
@node M1.14 "block/column text"
block/column text of: @{" BLOCK MENU " link BLOCK_MENU}

Insert  a  text  into marked lines at current cursor position. Example usage:
Mark  some  lines  (see  @{" block/mark " link M1.0}),  move  cursor to desired column (e.g.
column  1)  and call this function. A requester will pop up, asking you for a
text  to  be inserted. If you enter 'Prototype ', this word would be inserted
at the beginning (column 1) of each block line. This function is quite useful
if  you  want  to  create tables (for example you could insert a '|' to get a
vertical line).


@endnode
@node M1.16 "block/indent"
block/indent of: @{" BLOCK MENU " link BLOCK_MENU}

Shifting 

Change  indention  of marked lines (@{" block/mark " link M1.0}). Use arrow gadgets to shift
text   left   or   right.   Currently  selected  keyboard-TAB  distance  (see
@{" config/tabs " link M7.1}) is used as default indention step, however you may change this
value  using  the step gadget. An indent function (two speeds) is assigned to
keyboard's cursor keys, too (see @{" cursor keys " link CURSOR_KEYS}).


@endnode
@node M1.17 "block/sort"
block/sort of: @{" BLOCK MENU " link BLOCK_MENU}

Sort  selected  lines (see @{" block/mark " link M1.0}) alphabetically. This function is not
case sensitive (i.e. 'A' and 'a' would be considered equal).


@endnode
@node M1.19 "block/uppercase"
block/uppercase of: @{" BLOCK MENU " link BLOCK_MENU}

Make  all  characters of highlighted lines (see @{" block/mark " link M1.0}) uppercase. This
function  uses  the locale library if available to treat non-ASCII characters
(e.g.  '')  the  right  way.  Locale  library  is part of OS2.1 and OS3.0 or
better. It is not part of OS2.04.


@endnode
@node M1.20 "block/lowercase"
block/lowercase of: @{" BLOCK MENU " link BLOCK_MENU}

Make  all  characters of highlighted lines (see @{" block/mark " link M1.0}) lowercase. This
function  uses  the locale library if available to treat non-ASCII characters
(e.g.  '')  the  right  way.  Locale  library  is part of OS2.1 and OS3.0 or
better. It is not part of OS2.04.


@endnode
@node M1.22 "block/save as"
block/save as of: @{" BLOCK MENU " link BLOCK_MENU}

Save  marked  lines  (see @{" block/mark " link M1.0}) to disk. You will be asked for a file
name.  Do  not  use this function to move text from one text to another - use
the clipboard instead (see @{" block/copy " link M1.4}).


@endnode
@node M1.23 "block/print"
block/print of: @{" BLOCK MENU " link BLOCK_MENU}

Print  marked  lines  (see @{" block/mark " link M1.0}). The standard preferences printer is
used. See @{" config/printer " link M7.14} if you want to affect output settings like quality
or linefeed.



@endnode
@node LAYOUT_MENU "LAYOUT MENU"
                                 LAYOUT MENU 
                           menu tree of layou menu 


          @{"  layout/set right margin  " link M2.0} @{"  layout/block center    " link M2.7}
          @{"  layout/word wrap         " link M2.2} @{"  layout/section block   " link M2.9}
          @{"  layout/block left/right  " link M2.4} @{"  layout/section left    " link M2.10}
          @{"  layout/block left        " link M2.5} @{"  layout/section right   " link M2.11}
          @{"  layout/block right       " link M2.6} @{"  layout/section center  " link M2.12}


Formatter 

All  functions  of the layout menu are related to formatting a text. They are
of no use when writing source code - which is the main purpose of GoldED. But
they should turn out useful if you edit normal


 text files (e.g. your e-mail).

Paragraphe vs. block 

Some of the formatting functions actually are block functions: they do affect
marked  lines  only.  See  @{" block/mark " link M1.0}  if you don't know how to mark lines.
Others  do  affect  the 'current paragraphe' of a text. For example you might
move  the  cursor to this star '*' and then choose @{" layout/section left " link M2.10}: the
lines from 'Some ...' (beginning of paragraphe) to the end of this paragraphe
would  be made left aligned. The editor determines the end of a paragraphe by
looking for an empty line (however some lines appear to be empty but actually
contain multiple spaces - these lines are not considered empty).


@endnode
@node M2.0 "layout/set right margin"
layout/set right margin of: @{" LAYOUT MENU " link LAYOUT_MENU}

Set  rigth margin to current cursor position (margin values are considered by
formatting  operations like @{" WordWrap " link M2.2}). Example usage: move cursor to column
80, then call this menu. This will set the right margin to column 80.


@endnode
@node M2.2 "layout/word wrap"
layout/word wrap of: @{" LAYOUT MENU " link LAYOUT_MENU}

WordWrap 

Toggles  word warp mode on/off. Current status is displayed in screen's title
bar  (either  WRAP or NORM). If word wrap is on, the editor will reformat the
current  paragraphe  (left  aligned) if cursor moves behind right margin (see
@{" config/layout " link M7.12}  on how to set right margin). Word wrap is very useful if you
work on a plain ASCII text: You won't have to bother about pressing the enter
key - the editor will switch to a new line automatically if the current lines
is full.

Do  never  use  word wrap if you work on a source file - the source would get
mixed  up  as  soon as the editor attempts to reformat a section of lines. Do
not  use word wrap when creating tables or any other kind of formatted output
for the same reason, too.


@endnode
@node M2.4 "layout/block left/right"
layout/block left/right of: @{" LAYOUT MENU " link LAYOUT_MENU}

Reformats  marked  lines  (see @{" block/mark " link M1.0}) to make them appear left & right
aligned.  The  block's  last  line  is made left aligned. Empty lines are not
removed  during  formatting,  i.e.  your  document's  basic structure remains
unchanged.  Multiple  spaces  are removed, so better do not attempt to format
tables. Use @{" config/layout " link M7.12} to set block width respectively left border.


@endnode
@node M2.5 "layout/block left"
layout/block left of: @{" LAYOUT MENU " link LAYOUT_MENU}

Reformats  marked  lines (see @{" block/mark " link M1.0}) to make them appear left aligned.
Empty  lines  are  not  removed during formatting, i.e. your document's basic
structure  remains  unchanged.  Multiple  SPC's are removed, so better do not
attempt  to  format  tables.  Use  @{" config/layout " link M7.12}  to set maximum line width
respectively left border.

@endnode
@node M2.6 "layout/block right"
layout/block right of: @{" LAYOUT MENU " link LAYOUT_MENU}

Reformats  marked lines to make them appear left aligned. Empty lines are not
removed   during   formatting,   i.e.  your  document's  basic  structure  of
paragraphes  remains  unchanged. Multiple SPC's are removed, so better do not
attempt  to  format  tables.  Use  @{" config/layout " link M7.12}  to set maximum line width
respectively left border.


@endnode
@node M2.7 "layout/block center"
layout/block center of: @{" LAYOUT MENU " link LAYOUT_MENU}

Reformats marked lines to make them appear centered within currently selected
layout area. Use @{" config/layout " link M7.12} to set width of layout area respectively its
left  margin.  Empty  lines  are  not  removed  during  formatting, i.e. your
document's basic structure of paragraphes remains unchanged.


@endnode
@node M2.9 "layout/section block"
layout/section block of: @{" LAYOUT MENU " link LAYOUT_MENU}

Reformats  current  paragraphe (see @{" Paragraphe vs. block " link LAYOUT_MENU}) to make the lines
appear  left  &  right aligned. The last line of a paragraphe is not affected
-it  is  made  left  aligned.  A line is a 'last' line if its successor is an
empty line (however some lines appear to be empty but actually contain spaces
-these  lines  are  NOT considered empty). Empty lines are not removed during
formatting,  i.e.  your  document's  basic  structure  of paragraphes remains
unchanged.  Multiple  SPC's  are  removed, so better do not attempt to format
tables. Use @{" config/layout " link M7.12} to set block width respectively left border.


@endnode
@node M2.10 "layout/section left"
layout/section left of: @{" LAYOUT MENU " link LAYOUT_MENU}

Reformats  current  paragraphe (see @{" Paragraphe vs. block " link LAYOUT_MENU}) to make the lines
appear left aligned. Empty lines are not removed during formatting, i.e. your
document's basic structure remains unchanged. Multiple SPC's are removed. Use
@{" config/layout " link M7.12} to set layout width respectively left border.


@endnode
@node M2.11 "layout/section right"
layout/section right of: @{" LAYOUT MENU " link LAYOUT_MENU}

Reformats  current  paragraphe (see @{" Paragraphe vs. block " link LAYOUT_MENU}) to make the lines
appear  right  aligned.  Empty  lines are not removed during formatting, i.e.
your  document's  basic  structure  remains  unchanged.  Multiple  SPC's  are
removed. Use @{" config/layout " link M7.12} to set layout width respectively left border.


@endnode
@node M2.12 "layout/section center"
layout/section center of: @{" LAYOUT MENU " link LAYOUT_MENU}

Reformats  current  paragraphe (see @{" Paragraphe vs. block " link LAYOUT_MENU}) to make the lines
appear centered within currently selected layout area. Use @{" config/layout " link M7.12} to
set  layout width width respectively left border. Empty lines are not removed
during  formatting,  i.e.  your document's basic structure remains unchanged.
Multiple SPC's are removed.


@endnode
@node FIND_MENU "FIND MENU"
                                  FIND MENU 
                            menu tree of find menu 


            @{"  find/find              " link M3.0} @{"  find/reference...      " link M3.13}
            @{"  find/find next         " link M3.1} @{"  find/complete          " link M3.14}
            @{"  find/find previous     " link M3.2} @{"  find/ASCII table       " link M3.16}
            @{"  find/replace           " link M3.4} @{"  find/ASCII insert      " link M3.17}
            @{"  find/replace next      " link M3.5} @{"  find/show code         " link M3.18}
            @{"  find/count             " link M3.7} @{"  find/character set     " link M3.19}
            @{"  find/check             " link M3.9} @{"  find/insert code       " link M3.21}
            @{"  find/matching bracket  " link M3.10} @{"  find/toggle case       " link M3.22}
            @{"  find/reference         " link M3.12} @{"  find/functions         " link M3.24}



@endnode
@node M3.0 "find/find"
find/find of: @{" FIND MENU " link FIND_MENU}

Shows  a requester to enter the text to search for. You may choose the search
to be case sensitive or not by using the approbiate checkmark gadget. Use the
OK  gadget  to go to the next (i.e. after current cursor position) occurrence
of  the  text  to  search  for.  Use  the  FIRST gadget to look for the first
occurence  of  the search pattern. Note: case-sensitive search is much faster
than case-insensitive search.

Search/replace history 

Use  the arrow gadget to open a search/replace history listview. The listview
will  offer some of the previously used search/replace strings as well as the
word under the cursor for fast selection.


@endnode
@node M3.1 "find/find next"
find/find next of: @{" FIND MENU " link FIND_MENU}

Go to the next occurrence (i.e. after current cursor position) of the pattern
to search for. Use @{" find/find " link M3.0} to enter search text.


@endnode
@node M3.2 "find/find previous"
find/find previous of: @{" FIND MENU " link FIND_MENU}

Go  to  the  previous occurrence (i.e. before current cursor position) of the
pattern to search for. Use @{" find/find " link M3.0} to enter the search text.


@endnode
@node M3.4 "find/replace"
find/replace of: @{" FIND MENU " link FIND_MENU}

Shows  a  requester  to  enter  both,  the  text  to  search for as well as a
replacement.  You  may  choose  the  operation to be case sensitive or not by
using  the approbiate checkmark gadget. Select the NEXT gadget to replace the
next occurrence of the search text by the replace text. Use the ALL gadget to
replace  all  occurrencies of the search text. Decide for the BLOCK gadget if
you  want  the  replacement  operation  to be restricted to marked lines (see
@{" block/mark " link M1.0}).

Use  the arrow gadget to open a search/replace history listview. The listview
will  offer  some  of  the previously used search/replace strings (if any) as
well as the word under the cursor for fast selection.


@endnode
@node M3.5 "find/replace next"
find/replace next of: @{" FIND MENU " link FIND_MENU}

Replaces  next  occurance  of  search pattern by replace text. Replacement as
well as the search pattern are set using the @{" find/replace " link M3.4} requester.


@endnode
@node M3.7 "find/count"
find/count of: @{" FIND MENU " link FIND_MENU}

Shows a requester to enter a search text. You may choose the search operation
to be case sensitive or not by using the approbiate checkmark gadget. Finally
select the COUNT gadget to count all occurencies of the search pattern within
your text.


@endnode
@node M3.9 "find/check"
find/check of: @{" FIND MENU " link FIND_MENU}

Checks  for correct use of braces '(' within current line. You will be warned
if  the  are  more opening braces than closing ones or vice versa. Nesting is
checked,  too.  You  may  turn  on  automatic  checking after each line using
@{" config/dictionary " link M7.6}.


@endnode
@node M3.10 "find/matching bracket"
find/matching bracket of: @{" FIND MENU " link FIND_MENU}

Move cursor to matching bracket. Handles ()<>... depending on character under
cursor.  Useful  to  check  levels of execution within a program (move cursor
over first opening parenthesis within a C-function, then use this function).


@endnode
@node M3.12 "find/reference"
find/reference of: @{" FIND MENU " link FIND_MENU}

QuickReference 

Does  try to open a help text related to the word your cursor is placed over.
Example usage: Type 'struct RastPort', move cursor over 'RastPort', then call
this  function.  If  the  reference  system is set up (see below), a new text
window  should  pop  up,  showing you a file 'graphics.h' from you compiler's
include  directory.  The  cursor  will  be  placed  in  the first line of the
structure  definition  'RastPort'.  The reference file is read-only, i.e. you
may  change its contents but you may not save it (this is to prevent you from
accidentally overwriting important files).

Setting up the reference system

In  order  to  have this command work properly you'll have to set up GoldED's
reference  system  first  (i.e.  tell the editor where to look for files like
'graphics.h'):  Use  @{" config/references " link M7.3} to do this. Setting up the reference
system  basically  consists  of  selecting  the  files  or  directories to be
referenced  (e.g.  your  includes directory); it's a matter of a few seconds.
GoldED is shipped without the reference system set up.

What files can be referenced ?

It  is  possible to reference a lot of different file types like source codes
(C,  BASIC,  Pascal,  Assembler),  autodocs  or  C-header  files  (*.h).  See
@{" config/references " link M7.3}  for  details.  Example:  you  might set up the reference
system  to  know  the functions of your current programming project (probably
consisting  of  many files). After having done this you could move the cursor
over   a   function   call  of  one  of  your  own  functions  and  then  use
find/reference. A new window would pop up, presenting you the lines of a file
where this function is defined.


@endnode
@node M3.13 "find/reference..."
find/reference... of: @{" FIND MENU " link FIND_MENU}

Prompts for a string to be referenced. Example usage (if the reference system
is  set  up):  Enter  'Window',  then  use  OK.  A  new  window would pop up,
presenting you the header file from your compilers includes directory where a
structure 'Window' is defined. See @{" find/reference " link M3.12} for further explanations.


@endnode
@node M3.14 "find/complete"
find/complete of: @{" FIND MENU " link FIND_MENU}

APC  (Automatic Phrase Completion)

Trys  to  'complete' the word your cursor is placed over. Example usage: type
'swin',  then call this function. 'swin' would be replaced by 'struct Window'
if   the   C-dictionary   is  present  (see  @{" config/dictionary " link M7.6}  on  how  to
load/edit/create  a  dictionary). You might type 'swindow' as well - it would
be  replaced  by  'struct  Window',  too.  You  might  even  type 'swdow'. Or
'struwi'.  However,  something  like  'wind' wouldn't be recognized since the
abbreviation's  first  letter  must always be the same as the first letter of
the  full  form.  This function uses the dictionary facility; the larger your
dictionary  grows  the  more  detailed  your abbreviations will have to be to
ensure  unique  identification.  A  keyboard  shortcut  of  this  function is
assigned to the @{" ESC key " link ESC_KEY}.


@endnode
@node M3.16 "find/ASCII table"
find/ASCII table of: @{" FIND MENU " link FIND_MENU}

Opens  a  character  selection requester: All characters of your current font
are  displayed in a table. Pick the character you are looking for; it will be
inserted at current cursor postion.


@endnode
@node M3.17 "find/ASCII insert"
find/ASCII insert of: @{" FIND MENU " link FIND_MENU}

Prompts  you  for  an  ASCII code. Enter desired number (e.g. 65), then press
return.  The character will be inserted at current cursor position. The ASCII
insert  function  is  useful  to  embed control codes into your text. Example
usage:  Insert  the codes 27 91 49 109 (calling this function 4 times) at the
top of a document. This sequence is recognized by the printer device as 'turn
bold on' command. The printer would switch to bold mode if the text were sent
to the printer device (using @{" project/print " link M0.22}).

Often-used sequences should be assigned to menu entries instead of using this
requester; see @{" config/menus " link M7.10} on how to create menu entries of type 'text'.


@endnode
@node M3.18 "find/show code"
find/show code of: @{" FIND MENU " link FIND_MENU}

Show  ASCII  code of character under cursor. This might be useful to identify
'garbage'  characters.  Example  usage: After loading of a large text file in
fast mode (see @{" project/load fast " link M0.7}; TAB substitution turned off) you discover
strange  characters  at  the beginning of some lines. Using this function you
might  find  out that those characters actually are TAB codes (ASCII code 9).
You  then would have to reload (see @{" project/load original " link M0.9}) the text to have
TABs  replaced  by  spaces  (use  @{" find/character  set " link M3.19}  to  get rid of other
'strange' codes).


@endnode
@node M3.19 "find/character set"
find/character set of: @{" FIND MENU " link FIND_MENU}

Character set remap 

Asks you for a character set translation file before GoldED attempts to remap
the  current text. Remapping means that each character is replaced by another
character  defined  in the translation file. The result solely depends on the
translation  file.  If you load the 'AmigaToMSDOS' file using the REQ(uester)
gadget,  the  text  would  be  remaped  in a way to make it readable by MSDOS
machines.  You  could  use the 'MSDOStoAmiga' to do it vice versa (make MSDOS
files  readable  for the Amiga). Or load 'StripControl' to have non-printable
'garbage'  characters  removed.  Finally  StripNonASCII  is  useful to remove
non-ASCII characters (many e-mail networks do not allow non-ASCII codes).

Most translation files are 'lossy': some characters won't get translated. For
example  MSDOS doesn't know the '' character, thus a '' couln'd be remapped
properly by an AmigaToMSDOS translation file (a 'c' would be used instead).


@endnode
@node M3.21 "find/insert code"
find/insert code of: @{" FIND MENU " link FIND_MENU}

FF (same as pressing CTRL + L):

 Inserts a form feed code (ASCII 12) at current cursor position. This code is
 recognized  by  printers.  If  the text is sent to the printer device (using
 @{" project/print " link M0.22}),  the  printer  would  eject a page when it encounters this
 code.

ESC (same as pressing CTRL + ESC)

 Inserts  an  ESC  code  (ASCII  27)  at  current  cursor position. This code
 introduces   many   command  sequences  understood  by  the  printer  device
 respectively the console device (see @{" FIND/ASCII insert " link M3.17}).


@endnode
@node M3.22 "find/toggle case"
find/toggle case of: @{" FIND MENU " link FIND_MENU}

Toggle  case  of character under cursor (make it uppercase if it is lowercase
so far or vice versa).


@endnode
@node M3.24 "find/functions"
find/functions of: @{" FIND MENU " link FIND_MENU}

QuickFunc 

All  functions  of  this  submenu  will  scan the current text for functions,
structure  definitions  or  AutoDoc  entries.  A listview is made up for fast
selection:  click  at  a  function  name  to  jump  to where this function is
defined.  Several  scan  modes are available: Select C if you are looking for
C-functions,  PASCAL  if  you  are  looking for Pascal procedures/ functions,
BASIC  if  you  are looking for Basic PROCEDUREs or SUBROUTINEs, ASSEMBLER if
you  are looking for labels beginning with an underscore (e.g. _main), HEADER
if  you  are  looking  for  structure definitions and finally AUTODOC to scan
AutoDoc-like files (programmer manuals). QuickFunc heavily depends on the way
of  formatting: Don't use a left margin in source codes. Function definitions
must  start  at  column one. Some indention schemes are not handled properly.
For  example  C-function  headers  (function  name,  parenthesis,  arguments,
parenthesis) must fit within one line to be recognized.

You  may  preselect  a  default  scan  mode  for special file names using the
pattern gadget below the listview. For example you could set the default file
extension  of  the  C-mode  to  '*.c'.  Thus  the  C-mode  would be used when
referencing  a  file  like  'main.c' (referencing means scanning the file for
keywords; see @{" config/references " link M7.3}).

Besides  making  GoldED  create a jump table you may use the 'current phrase'
option  to move to a definition related to the word under the cursor. Exa
m
p
le
usage:  Switch  to C scanning mode. Then place the cursor over a 'C' function
call  like  "CleanUp()"  and  use  'current  phrase':  GoldED will look for a
function  definition  of "CleanUp()" within the current file and move to that
function (if available).

Custom scan functions  (advanced programmers only)

GoldED supports custom scanning functions: select the <mode> gadget to open a
setup requester, then load a handler using <add>. The handler is LoadSeg()'ed
by  GoldED,  i.e.  it  is exepected to be an executable. The external handler
will  be  called  for  each  line of a text. It will recieve the address of a
line's  string pointer (char **) in A0. The line's length is available in D0.
The  handler will have to examine this line. It is expected to return NULL if
the line is of no interest from the handlers point of view (e.g. if you write
a  handler  to  look  for #defines, return NULL if the line doesn't contain a
#define).  Or  it  may  return  the length of a result string to be displayed
within  the  jump table. Set the string pointer (address passed within a0) to
the result string's address in this case. Example code (looking for #define):

          START:

           MOVE.L a1,-(a7)

           CMP.L #10,d0                   ; might there be a '#define ' ?
           BLT NOTHING_FOUND              ; no, line too short

           MOVE.L (a0),a1                 ; put line's address into A1

           CMP.B #35,(a1)                 ; look for '#' of '#define'
           BNE NOTHING_FOUND

           CMP.B #100,1(a1)               ; compare 1st character to 'd'
           BNE NOTHING_FOUND
           CMP.B #101,2(a1)               ; 'e'
           BNE NOTHING_FOUND
           CMP.B #102,3(a1)               ; 'f'
           BNE NOTHING_FOUND
           CMP.B #105,4(a1)               ; 'i'
           BNE NOTHING_FOUND
           CMP.B #110,5(a1)               ; 'n'
           BNE NOTHING_FOUND
           CMP.B #101,6(a1)               ; 'e'
           BNE NOTHING_FOUND

           MOVE.L (a7)+,a1
           RTS                            ; return line: D0, (A0) untouched

           NOTHING_FOUND:

           MOVE.L (a7)+,a1
           MOVE.L #00,d0                  ; make GoldED ignore line
           RTS
           END


@endnode
@node CONTROL_MENU "CONTROL MENU"
                                 CONTROL MENU 
                          menu tree of control menu 


          @{"  control/go to line        " link M4.0} @{"  control/arrange windows  " link M4.13}
          @{"  control/top-bottom        " link M4.1} @{"  control/center window    " link M4.14}
          @{"  control/to last change    " link M4.2} @{"  control/zip window       " link M4.15}
          @{"  control/store position    " link M4.4} @{"  control/enlarge window   " link M4.16}
          @{"  control/recall position   " link M4.5} @{"  control/freeze window    " link M4.18}
          @{"  control/fold all          " link M4.7} @{"  control/unfreeze window  " link M4.19}
          @{"  control/unfold all        " link M4.8} @{"  control/next window      " link M4.21}
          @{"  control/insert-overwrite  " link M4.10} @{"  control/iconify          " link M4.23}
          @{"  control/toggle TAB mode   " link M4.11}


@endnode
@node M4.0 "control/go to line"
control/go to line of: @{" CONTROL MENU " link CONTROL_MENU}

Asks  you  for  a line to go to. First line of a document is considered to be
line 1. Use the 'unfold' (checkmark-)gadget to decide wether you want to have
folded  sections  unfolded  if  necessary  (see  @{" Folding " link M4.7}).  If unfolding is
enabled,  line  numbers are absolute, i.e. if you enter 255, the editor would
jump  to line 255, no matter wether this line is folded (unvisible) so far or
not.  If  you don't enable unfolding, line numbers are based on the number of
visible  lines.  The  editor would jump to the 255th visible line. The actual
line  number  of  that  line - if all folds were unfolded - is either 255 (no
folds  before  this  line) or greater (some folds before this line). The line
numbers displayed below the window titles are based on the number of visisble
lines,  too.  They  are not abolute. If you would perform an absolute jump to
line  300,  a  number less than 300 might be displayed if your text containes
folds (i.e. if not all lines of the text are visible).


@endnode
@node M4.1 "control/top-bottom"
control/top-bottom of: @{" CONTROL MENU " link CONTROL_MENU}


Moves  the  cursor to line one if it has been positioned near the end of your
text  so  far. Moves it to the last line of your text if it has been close to
the top so far.


@endnode
@node M4.2 "control/to last change"
control/to last change of: @{" CONTROL MENU " link CONTROL_MENU}

Moves  the  cursor  to  the  line  of  last change (or at least close to that
position it if the last operation was a 'delete line').


@endnode
@node M4.4 "control/store position"
control/store position of: @{" CONTROL MENU " link CONTROL_MENU}

Records the position of the cursor & the view area of the text in the window.
Use  @{" control/recall  position " link M4.5}  to  recall the cursor and view area. You may
store positions for each text window seperately. GoldED supports 10 bookmarks
for  each  text  (5  found  within  this  submenu  -  see  @{" config/menus " link M7.10} for
information on modifying menus).


@endnode
@node M4.5 "control/recall position"
control/recall position of: @{" CONTROL MENU " link CONTROL_MENU}

Recall  cursor  position/view  stored by @{" control/store position " link M4.4} from one of
five  bookmarks.  If  you  simply  want to jump back to the line of your last
operation  at  some  time  or  other  you  do  not have to use bookmarks. Use
@{" control/to last change " link M4.2} instead.


@endnode
@node M4.7 "control/fold all"
control/fold all of: @{" CONTROL MENU " link CONTROL_MENU}

Scans  text  for  fold  markers.  Folds  all text sections surrounded by fold
markers  (see  below for general information on GoldED's folding facilities).
There  is a keyboard shortcut quite similar to this function: CTRL + HELP; it
toggles  all folds: if the cursor is placed over a fold header, all folds are
unfolded.  If  the  cursor  is  placed  over a normal text line, all sections
surrounded by fold markers are folded.

Folding 

One  of this editor's most useful features is its folding capability: Folding
means  hiding  some  lines of a file temporarily. This is quite useful if you
are  working on a large sourcefile but don't want to get lost in thousands of
lines.  Simply  fold away all functions you are not interested in. Unfold the
ones you are working on.

How to fold lines 

If  you want to hide a section of lines, enclose it into 'fold markers'. Fold
markers  are  just  character  sequences.  Default  sequence is /// (which is
regarded  as a comment by most K&R compilers respectively all C++ compilers).
Example - type:

                           /// "important function"

                           void
                           main()
                           {
                              puts("fold me !");
                           }

                           ///

Now  place  the  cursor  over  any line of the example above (except the last
line)  and press the HELP key. The lines above will vanish, a single new line
- the 'fold header' - appears:

                           > important function

To  unfold  that  header,  press the HELP key once more. You may fold as many
sections  of a document as you like. Use CTRL + HELP to unfold all folds upon
a  single  keystroke.  You  may  even have folds within folds up to any level
(nested  folding),  however  this  requires  the use of different markers for
beginning/end  of a fold section (see @{" config/misc " link M7.15}). Fold markers may be set
to  any string of up to 8 letters. The shorter the faster. They must start in
column  1  to  5  (to  speed  up  scanning). In generally you should choose a
sequence regarded as comment by your compiler. Or embed the fold markers into
comments - for example after a REM if you are a BASIC programmer.

Fold  headers  are  write  protected since they aren't normal lines: keyboard
input  is  suppressed  if  the  cursor  is  placed over a fold header. Folded
sections  are  not  recognized by find & replace operations. Unfold a fold if
you  want to change it. However, block operations (see @{" block menu " link BLOCK_MENU}) do work.
It is possible to copy, duplicate, cut or remove a fold if it has been marked
as a block. Saving or printing a file is not influenced by folding - the text
is treated as if all folds were unfolded.


@endnode
@node M4.8 "control/unfold all"
control/unfold all of: @{" CONTROL MENU " link CONTROL_MENU}

Scans  text  for  fold  headers. If some are found, they are unfolded. Have a
look at the @{" Folding " link M4.7} chapter for information on GoldED's folding facilities.


@endnode
@node M4.10 "control/insert-overwrite"
control/insert-overwrite of: @{" CONTROL MENU " link CONTROL_MENU}

Toggles  writing mode from insert to overwrite and vice versa. In insert mode
keyboard  input  is  inserted  into the text without overwriting the existing
text.  In  overwrite  mode  the  existing text is replaced by your input. The
current  mode  is  displayed  in  the  window's  title bar. It is either INSR
(insert) or OVER (overwrite).


@endnode
@node M4.11 "control/toggle TAB mode"
control/toggle TAB mode of: @{" CONTROL MENU " link CONTROL_MENU}

Toggles  TAB  mode  from  solid to light and vice versa. Solid TAB's actually
insert blank characters into your text. Depending on wether insert mode is on
or off (see @{" control/insert-overwrite " link M4.10}), the existing text is either indented
or  overwritten.  Light TABs do not overwrite anything - the cursor is simply
moved  to  the  next  TAB  position.  See  @{" config/TABs " link M7.1}  on  how  to set TAB
positions.


@endnode
@node M4.13 "control/arrange windows"
control/arrange windows of: @{" CONTROL MENU " link CONTROL_MENU}

Arranges  windows  on screen. If you have only one open window, the window is
resized  to  cover  the  complete  screen.  If you have two open windows, the
windows are made to share the display without overlapping. The screen's title
bar  is  left  free. This function handles autoscroll screens (screens larger
then  the  display)  properly - the window(s) are arranged within the visible
section.


@endnode
@node M4.14 "control/center window"
control/center window of: @{" CONTROL MENU " link CONTROL_MENU}

Centers current window on screen. If the screen is an autoscroll screen (i.e.
larger  than the display), the window is centered within the screen's visible
section.


@endnode
@node M4.15 "control/zip window"
control/zip window of: @{" CONTROL MENU " link CONTROL_MENU}

Zips  current  window  as if the window's zip (zoom) gadget were used: The OS
keeps  track  of two alternative window sizes for each window. This functions
toggles  between  them.  The  minimum  window  size is limited by GoldED (the
editor  ensures  that  at least one line of text can be displayed; besides it
keeps the column/line display readable).


@endnode
@node M4.16 "control/enlarge window"
control/enlarge window of: @{" CONTROL MENU " link CONTROL_MENU}

Enlarge  current  window  to make it as big as the screen. The screen's title
bar  won't  get  covered.  This  functions handles autoscroll screen (screens
larger than the display), too: only the visible section is considered.


@endnode
@node M4.18 "control/freeze window"
control/freeze window of: @{" CONTROL MENU " link CONTROL_MENU}

Freeze  text  buffer,  i.e.  close the window but don't free the text itself.
Useful to have several text files present without cluttering the display. Use
@{" control/unfreeze  window " link M4.19}  from  the  control  menu  to  reopen  the window.
Freezing  the  last window will leave you without menus - use the @{" hotkey " link M0.24} to
reopen display: right ALT + right SHIFT + RETURN.


@endnode
@node M4.19 "control/unfreeze window"
control/unfreeze window of: @{" CONTROL MENU " link CONTROL_MENU}

Asks  you  for a frozen window to reopen. This functions tries to restore the
old  window position/size. See @{" control/freeze window " link M4.18} for information on how
to freeze a window.
  

@endnode
@node M4.21 "control/next window"
control/next window of: @{" CONTROL MENU " link CONTROL_MENU}

Activate  the  'next' window. A *very* handy function since you won't have to
use  the  mouse anymore for window activation. Simply flip from one window to
another using this command.


@endnode
@node M4.23 "control/iconify"
control/iconify of: @{" CONTROL MENU " link CONTROL_MENU}

Iconify  GoldED.  All windows as well as the GoldED screen (if the editor did
use  an  own screen) are closed. This function depends on the availability of
the  workbench  screen where the editor attempts to place an AppIcon. Iconify
won't work if the workbench is closed.

AppIcon 

The  AppIcon  may  be  used to pass new files to GoldED: Simply drag icons of
text  files  over  it. Multi select is supported (i.e. you may drag more than
one  file  at once over the icon using extended selection: hold the SHIFT key
down  while  you  select  icons).  The editor will open a new window for each
file. Doubleclick at the icon to wake GoldED up again.


@endnode
@node MISC_MENU "MISC MENU"
                                  MISC MENU 
                           menu tree of misc menu 


              @{"  misc/help              " link M5.0} @{"  misc/statistics       " link M5.12}
              @{"  misc/project setup     " link M5.2} @{"  misc/new shell        " link M5.14}
              @{"  misc/filter            " link M5.3} @{"  misc/files            " link M5.15}
              @{"  misc/search file       " link M5.4} @{"  misc/calculator       " link M5.16}
              @{"  misc/pick line         " link M5.6} @{"  misc/HiSpeed          " link M5.17}
              @{"  misc/push line         " link M5.7} @{"  misc/insert date      " link M5.19}
              @{"  misc/swap lines        " link M5.8} @{"  misc/insert time      " link M5.20}
              @{"  misc/double line       " link M5.9} @{"  misc/command          " link M5.22}
              @{"  misc/undo line         " link M5.10} @{"  misc/last error       " link M5.23}


@endnode
@node M5.0 "misc/help"
misc/help of: @{" MISC MENU " link MISC_MENU}

AmigaGuide is made to display the main page of GoldED's manual ('database' in
terms  of  AmigaGuide).  You may use @{" config/menus " link M7.10} to select a new database.
This  feature depends on the amigaguide library - if it is not available, you
won't get any help.


@endnode
@node M5.2 "misc/project setup"
misc/project setup of: @{" MISC MENU " link MISC_MENU}

Open  project  definition  requester.  Used  to specify all source files that
belong  to  a  project. Doubleclick on a file being part of that list to load
it. GoldED itself doesn't use this list. The editor only provides a few basic
functions  to add/remove source files to/from the list. This command has been
implemeted  to support the development of third party make utilities. Further
processing has to be done by external programs:
  
List access (programmers only)

Programs  may  send  a  @{" QUERY " link QUERY}  command to GoldED's @{" ARexx port " link AREXX_PORT} in order to
obtain  a  pointer  to  a linked list of nodes: QUERY PRJLIST. Example source
code  is  is shipped with GoldED; check the GoldED:Tools/PRJSource directory.
The  node->ln_Name fields of the list's nodes will point to source file names
(NULL  terminated).  You  may  pass this list to a listview. Use of this list
requires  a  previous LOCK to ensure a valid list. The list is read-only. Use
the  @{" PROJECT " link PROJECT} command to add or remove files. Do not modify the list on your
own.


@endnode
@node M5.3 "misc/filter"
misc/filter of: @{" MISC MENU " link MISC_MENU}

Global search 

Shows  a  requester to enter the text to search for. Examines all files found
within  the project list (see @{" misc/project setup " link M5.2}). If the search pattern is
not  found  within  a file, the file is removed from the list. You may choose
the  search  to  be  case  sensitive or not by using the approbiate checkmark
gadget.

Note: case-sensitive search is much faster than case-insensitive search.


@endnode
@node M5.4 "misc/search file"
misc/search file of: @{" MISC MENU " link MISC_MENU}

File hunter  (suggested by David Ghler)

Extract file name from text under cursor. The editor knows about several file
name  delimiters  used  by  different programming environments (e.g. <...> or
quotations  marks).  It  will decide for the word under cursor (surrounded by
spaces)  if  no  delimiters  are  found.  Tries to locate and open that file.
Searches the directory of the current text as well as default directories set
up  by  @{" config/file  hunter " link M7.4}  (unless  the  file name is absolute). Tries to
append  a  default suffix (see @{" config/file hunter " link M7.4}) if the file has not been
found.  Useful to follow file links found in many programming languages (e.g.
#includes of 'C' source codes).


@endnode
@node M5.6 "misc/pick line"
misc/pick line of: @{" MISC MENU " link MISC_MENU}

Delete  current  line  from  text.  The  line  is  not  lost - it is put to a
pick-push ring buffer (last in, first out). You may reinsert it anywhere else
by  using  @{" misc/push  line " link M5.7}.  This function is assigned to the keyboard, too
(CTRL-DEL).  Note:  keyboard  access  (CTRL-DEL)  will give you a MUCH BETTER
response  time  than  menus  due  to  the Amiga's OS (keyboard queue settings
unfortunately  don't  affect  menu shortcuts). Example usage: Delete 3 lines,
move  to  another line and call @{" misc/push line " link M5.7} three times to resinsert the
lines. The pick/push buffer holds up up 50 lines.


@endnode
@node M5.7 "misc/push line"
misc/push line of: @{" MISC MENU " link MISC_MENU}

Inserts  the  last  line  of  the  pick/push  buffer before current line. See
@{" misc/pick line " link M5.6} for further explantions.


@endnode
@node M5.8 "misc/swap lines"
misc/swap lines of: @{" MISC MENU " link MISC_MENU}

Swaps  current  line  with  next  line. The function is ususally used via the
ARexx interface to sort a text.


@endnode
@node M5.9 "misc/double line"
misc/double line of: @{" MISC MENU " link MISC_MENU}

Doubles current line. Faster than using the clipboard or @{" block/copy " link M1.4}.


@endnode
@node M5.10 "misc/undo line"
misc/undo line of: @{" MISC MENU " link MISC_MENU}

Restores  the  previous contents of a line after you have changed it. You can
undo  a  line  as  long  as  the  curs
or
 h
as not been moved to another line -
leaving  a  line means accepting the change. This function can not be used to
undo  a  delete  line  operation.  Use @{" misc/push line " link M5.7} to reinsert a deleted
line.


@endnode
@node M5.12 "misc/statistics"
misc/statistics of: @{" MISC MENU " link MISC_MENU}

Presents  a  statistic  overview  of  a text. Bytes, lines, folded blocks and
non-ASCII-characters  (codes above 127) are counted. Additionaly the width of
the  longest  line is determined. This function treats the text as if it were
saved (i.e. all folds unfolded, CR codes appended to the lines).


@endnode
@node M5.14 "misc/new shell"
misc/new shell of: @{" MISC MENU " link MISC_MENU}

Opens a shell window on the screen used by the editor. The window is arranged
on  screen, i.e. it will open within the visible section of overscan screens.
GoldED  takes  care  of  providing valid path information: if you have a PATH
SYS:C2 ADD command in your startup-sequence, the shell window will know about
it.


@endnode
@node M5.15 "misc/files"
misc/files of: @{" MISC MENU " link MISC_MENU}

DELETE FILE

Asks  you  for files to delete (hold the SHIFT button down to select multiple
files).  You  are  asked  for  confirmation.  It  is  not  possible to delete
delete-protected files.

RENAME FILE

Ask  you  for a file to rename; you are asked for new names if you select one
or more files.

CREATE DIRECTORY

Asks you for a directory to create. Attempting to create an already extisting
directory will result in an 'object in use' error.

@endnode
@node M5.16 "misc/calculator"
misc/calculator of: @{" MISC MENU " link MISC_MENU}

Tries  to run the calculator of your workbench (must be placed in sys:tools).
The  calculator  is  made  to  appear  on the screen used by GoldED even if a
custom screen is used.


@endnode
@node M5.17 "misc/HiSpeed"
misc/HiSpeed of: @{" MISC MENU " link MISC_MENU}

Tries  to  run  the  HiSpeed  printer  tool - the program is made to open its
window on the screen used by GoldED.

HiSpeed

HiSpeed  has  been  designed  for PCL printers like Hewlett Packard's DeskJet
family. It is used to reduce the amount of paper when printing large files by
using a small typeface. Up to 8 A4 pages are redirected to a single A4 sheet.
It  is  fast.  Speed  depends  on  your  DeskJet  model;  DeskJet+:  about  4
pages/minute  if  you switch to HiSpeed mode. It should be a nice utility for
people who have to do a lot of printing. Some of HiSpeed's features are:

  o workbench interface               o spooler (job list)
  o AppWindow/AppIcon support         o HiSpeed mode: fast printing
  o shell interface                   o preview (WYSIWYG)
  o ARexx port                        o many fonts supported
  o single or double sided printing   o page headers
  o descending printing available     o numbering of lines
  o free layout - e.g. two columns    o index/appendix creation
  o ANSI ESC sequences supported      o protrait/landscape
  o Linefeed adjustable               o book mode to print A5 books

Please   read   the   HiSpeed  manual  (see  GoldED:Tools/HiSpeed)  for  more
information on this tool. HiSpeed is shareware. The registered version is not
part  of  the  GoldED  light  distribution  but  it is part of the GoldED pro
package; see @{" how to register " link HOW_TO_REGISTER}.


@endnode
@node M5.19 "misc/insert date"
misc/insert date of: @{" MISC MENU " link MISC_MENU}

Inserts  current  date (e.g. "Boston, 3/5/93") at cursor position. You should
set  the environment variable USERTOWN to the name of your town using the DOS
command  setenv  (e.g.  setenv USERTOWN "Boston"). DOS/setenv uses the 'env:'
directory  to  store  environment  variables. Unfortunately this directory is
placed  in RAM, so your settings are lost after a reset. Copy env:usertown to
envarc:usertown to prevent this.


@endnode
@node M5.20 "misc/insert time"
misc/insert time of: @{" MISC MENU " link MISC_MENU}

Inserts  time  string  at  cursor  position. Formatting depends on the locale
library (see @{" language " link GETTING_STARTED}).


@endnode
@node M5.22 "misc/command"
misc/command of: @{" MISC MENU " link MISC_MENU}

Asks  you  for  one  of GoldED' internal commands to be executed (see list of
@{" internal commands " link INTERNAL_COMMANDS}). This function is assigned to SHIFT ESC, too. Parsing is
done by the OS function ReadArgs, which is used by most CLI commands, too, so
same rules as usual apply (arguments containing spaces have to be quoted).


@endnode
@node M5.23 "misc/last error"
misc/last error of: @{" MISC MENU " link MISC_MENU}

Shows the last error message once more (if there has been any so far).


@endnode
@node MACRO_MENU "MACRO MENU"
                                  MACRO MENU 
                           menu tree of macro menu 


        @{"  macros/edit macro         " link M6.0} @{"  macros/macros              " link M6.12}
        @{"  macros/run text as macro  " link M6.1} @{"  macros/GUIMake             " link M6.14}
        @{"  macros/record start-stop  " link M6.3} @{"  macros/config              " link M6.15}
        @{"  macros/play               " link M6.4} @{"  macros/modules             " link M6.16}
        @{"  macros/play many          " link M6.5} @{"  macros/options             " link M6.17}
        @{"  macros/load               " link M6.6} @{"  macros/compile & link      " link M6.19}
        @{"  macros/save               " link M6.7} @{"  macros/compile & link new  " link M6.20}
        @{"  macros/dmake              " link M6.9} @{"  macros/errors              " link M6.21}
        @{"  macros/compile+link text  " link M6.10} @{"  macros/run executable      " link M6.23}


@endnode
@node M6.0 "macros/edit macro"
macros/edit macro of: @{" MACRO MENU " link MACRO_MENU}

Changes  to GoldED's macro directory and asks you for an ARexx macro to load.
You  schould  save  your  current  text before or open a new window. GoldED's
ARexx  macros  use  'GED'  as suffix (e.g. number.ged). All macros addressing
GoldED  must use a special protocol to register with GoldED before performing
operations  to  prevent race conditions if user & macro are trying to control
the  editor  simultanously (see @{" ARexx port " link AREXX_PORT}). I have provided an empty macro
(empty.ged) to be used as basis for own development efforts. Simply load this
macro, insert your code and save it under a new name.


@endnode
@node M6.1 "macros/run text as macro"
macros/run text as macro of: @{" MACRO MENU " link MACRO_MENU}

Tries  to  execute the current text as macro. You should save the text before
you  call  this  function since the copy on disk is executed, not the text in
memory.  All  ARexx  macros  have  to start with a comment (/* ... */) to get
recognized  by  the  ARexx  server.  If  the  first  line of the text isn't a
comment,  nothing happens. A script called by this functions has its host set
up  properly  already (i.e. you don't need an ADDRESS command). Example: type
these lines (without left margin) and then select 'run as macro' to have them
executed:

                            /* this is a test */

                            'LOCK CURRENT'
                            'REQUEST BODY="Hi!"'
                            'UNLOCK'


@endnode
@node M6.3 "macros/record start-stop"
macros/record start-stop of: @{" MACRO MENU " link MACRO_MENU}

Macro recording 

Start   (first   call)   respectively  stop  (second  call)  recording  of  a
keyboard/command   sequence.  During  recording  all  key  presses  and  menu
selections   are   logged.   Mouse  movments/clicks  are  not  recorded.  Use
@{" macros/play " link M6.4}  to  replay a recorded sequence. Use @{" macros/save " link M6.7} to write the
sequence  to  disk,  ready  to  be  used  at  some  other time. If you open a
requester  while recording you will be asked wether this requester should pop
up  in  playback  mode,  too  (unless  it belongs to the config menu). If you
disable  the requester, GoldED will use the selections made at recording time
(e.g.  if you moved the cursor to line 100 during recording, it will be moved
to  line  100  in  playback  mode, too. No GOTO requester will appear). Macro
recording  is  based  on low-level events like keystrokes or menu selections.
For example pressing of the F10 key is recorded as "F10 has been pressed", no
matter  what action has been assigned to that key. If you change key bindings
or  menus  after  recording  a macro, the macro will behave differently. This
command is assigned to the SHIFT-F10 key, too.


@endnode
@node M6.4 "macros/play"
macros/play of: @{" MACRO MENU " link MACRO_MENU}

Replay  a  previously  recorded  keyboard/command  sequence (use SHIFT+F10 or
@{" macros/record  start-stop " link M6.3}  to  enter/leave recording mode). This command is
assigned  to the F10 key, too. If you want to replay the macro several times,
use @{" macros/play many " link M6.5}.


@endnode
@node M6.5 "macros/play many"
macros/play many of: @{" MACRO MENU " link MACRO_MENU}

Replay  a  previously  recorded  keyboard/command sequence several times (use
SHIFT+F10  or  @{" macros/record  start-stop " link M6.3}  to  enter/leave  recording mode).
Replay of the sequence will stop if an error occurs during execution (e.g. if
the find function reaches the end of a file).


@endnode
@node M6.6 "macros/load"
macros/load of: @{" MACRO MENU " link MACRO_MENU}

Load a recorded keyboard/command sequence to be replayed by @{" macros/play " link M6.4} (or
by  pressing the F10 key). In generally it is more convenient to assign often
used  sequences  to keys or menu items (see @{" MACRO " link MACRO} command] instead of using
this function.


@endnode
@node M6.7 "macros/save"
macros/save of: @{" MACRO MENU " link MACRO_MENU}

Save  a  recorded  command  sequence,  created by @{" macros/record start-stop " link M6.3}.
Sequences  related  to  GoldED should be written to the GoldED:Macros drawer.
Default file extension is "*.ged".


@endnode
@node M6.9 "macros/dmake"
macros/dmake of @{" MACRO MENU " link MACRO_MENU}

Does  look  for  a  makefile  called  'dmakefile' within the directory of the
current  text. If one is found, dmake of the DICE C compiler is evoked (won't
work  if  you  don't  own  DICE,  of course). This menu command actually is a
macro.  It  fails  if  the  ARexx  server  RexxMast  is  not  running  in the
background.   Usually   the   ARexx   server   is  installed  during  startup
(s:startup-sequence): run >NIL: sys:system/RexxMast.


@endnode
@node M6.10 "macros/compile+link text"
macros/compile+link text of: @{" MACRO MENU " link MACRO_MENU}

Compiles  and links the text using DCC of the DICE C distribution (won't work
if  you  don't own DICE). To be more precisely: a temporary copy of your text
(T:TEST.c)  is  created, this is passed to DCC to create an executable called
T:TEST.  If  DCC  has compiled/linked your file (without error/warnings), you
are  asked  wether  you  want  to  run  it. Example: type the following lines
(without left margin) and then call the compile & link command:

                           main()
                           {
                               printf("hello world !");
                               exit(0);
                           }

@endnode
@node M6.12 "macros/macros"
macros/macros of @{" MACRO MENU " link MACRO_MENU}

This  menu  offers  several ARexx macros (GoldED's ARexx port is described in
the @{" ARexx port " link AREXX_PORT} section of this manual):


FOLD BLOCK

Fold  marked lines (see @{" block/mark " link M1.0} on how to mark lines). You are asked for
a  comment  to  be  used as fold header. Please read the @{" Folding " link M4.7} section of
this manual if you are unfamilar with GoldED's folding feature.


FUNCTION BODY

Insert  empty  function  body ('C' style function). You will be asked for the
function's  name  (e.g.  "main")  and  the return type (e.g. UWORD). An empty
function  body is inserted at current cursor psotion, an empty comment placed
above the function. Everything is put into fold markers (see @{" Folding " link M4.7}).


REVISION: Revision control (programmers only)

Update  version string, revise history: This function will scan your text for
a  version  string  according  to  the programmers' style guide (published by
Commodore).  If  one  is  found,  the  revision  number  is increased by one.
Versions  strings (e.g. $VER GED 1.0 (1.10.93)') are emedded into programs to
provide  required information for the AmigaDos command VERSION (VERSION scans
files  for  the  '$VER:'  keyword).  Additionally,  you are asked for a short
comment  about  the latest version if a '$HISTORY:' section has been detected
within  current  text.  The  comment is added at the top of the history list.
Example text header understood by the revision command:

            char *Version = "$VER: revision 0.8 (21 Jul 1993)";

            /*
               $HISTORY:

               18 Jul 1993 : 000.003 :  added commandline args
               18 Jul 1993 : 000.001 :  initial release
            */

This  command  actually  is a macro (done by Marius Grger). It won't work if
the ARexx server RexxMast is not running in the background. Usually the ARexx
server  is  installed  during startup (s:startup-sequence or s:user-startup):
run >NIL: sys:system/RexxMast


NUMBER

Does  number  all lines of a text. You are asked for the first line number as
well  the  step  value to be used. Choose 1000 respectively 10 if you want to
use  1000, 1010, 1020, ... This command actually is a macro. It won't work if
the ARexx server RexxMast is not running in the background. Usually the ARexx
server  is  installed  during startup (s:startup-sequence or s:user-startup):
run >NIL: sys:system/RexxMast


ASSEMBLE

Assemble  the  current  file which is expected to be assembler source code: A
temporary  copy  of the current file named "t:test.asm" is created and passed
to  the  assembler in order to create an object file "t:test.o" (pass 1). The
object  file  (if  the assembler has completed successfully) is passed to the
linker  in  order to create an executable "t:test". This macro depends on the
A68K  assembler  (copyright  1985  by  Brian R. Anderson, AmigaDOS conversion
copyright  1991  by Charlie Gibbs) and the linker "Blink"; these programs are
not shipped with GoldED.


EXECUTE LINE

Execute  the  current  line  as DOS command. Useful to execute compiler calls
being part of the source code; example file header (place the cursor over the
"dcc ..." line before calling this macro):

    /* ----------------------------------------------------------------

      ED v0.91 - GoldED quick starter, 1993 Dietmar Eilert. DICE:

      dcc main.c -// -proto -mRR -mi -r -2.0 -o ram:ED

      ------------------------------------------------------------------
    */

    .....


@endnode
@node M6.14 "macros/GUIMake"
macros/GUIMake of: @{" MACRO MENU " link MACRO_MENU}

GUIMake 

Display  GUIMake  copyright  information.  GUIMake  is  a project manager for
DICE-C.  The  GUIMake package has been developed by Rico Krasowski - included
with  kind  permission  of  the  author. The purpose of GUIMake is to replace
makefiles  by  a  GUI-driven  program.  Besides  comfortable  file management
(compiling/linking)  GUIMake offers very handy error handling facilities. For
example  GUIMake might make the editor jump to the first erroneous line after
compilation.  GUIMake is a stand alone program -communication between GUIMake
and  GoldED  is  based  on  ARexx.  Have  a look at the GUI guide file (tools
directory)  for more detailed information on GUIMake and its ARexx port. This
function  as  well  as  all  other  menu  entries  related to GUIMake are not
available  if  you  have disabled DICE support during installation of GoldED.
GUIMake  access depends on the ARexx server RexxMast which must be running in
the  background.  Usually  the  ARexx  server  is  installed  during  startup
(s:startup-sequence): run >NIL: sys:system/RexxMast.


@endnode
@node M6.15 "macros/config"
macros/config of @{" MACRO MENU " link MACRO_MENU}

Open  config window of GUIMake (used to set up a project). Have a look at the
@{" GUIMake " link M6.14}  manual  for  a  more  detailed  description.  This  function isn't
available if you have disabled DICE support during installation of GoldED.


@endnode
@node M6.16 "macros/modules"
macros/modules of: @{" MACRO MENU " link MACRO_MENU}

Open  modules  window  of  @{" GUIMake " link M6.14}.  Used  to  select files related to your
project:  source  files,  header files, ... Have a look at the GUIMake manual
for a more detailed description of Rico's make utility.


@endnode
@node M6.17 "macros/options"
macros/options of: @{" MACRO MENU " link MACRO_MENU}

Open options window of GUIMake (used to set compiler options). Have a look at
the  @{" GUIMake " link M6.14}  manual  for  a more detailed description. This function isn't
available if you have disabled DICE support during installation of GoldED.


@endnode
@node M6.19 "macros/compile & link"
macros/compile & link of: @{" MACRO MENU " link MACRO_MENU}

Compile  &  link  files  of  your  current  project. See @{" macros/GUIMake " link M6.14} for
information  on how to set up a project. Won't recompile a file unless it has
been changed since last compilation (see @{" macros/compile & link new " link M6.20}). Have a
look  at  the GUIMake manual (BUILD command) for a more detailed description.
This  function  isn't  available  if  you  have  disabled DICE support during
installation of GoldED.


@endnode
@node M6.20 "macros/compile & link new"
macros/compile & link new of: @{" MACRO MENU " link MACRO_MENU}

Compile  and  link  all files of your current project, no matter wether files
have  been changed or not since last compilation. Use @{" macros/GUIMake " link M6.14} to set
up  a  project  (i.e.  to specify source files, header-files and object files
related  to  your  project  or  to  set compiler options). Have a look at the
GUIMake manual for a more detailed description. This function isn't available
if you have disabled DICE support during installation of GoldED.


@endnode
@node M6.21 "macros/errors"
macros/errors of: @{" MACRO MENU " link MACRO_MENU}

SHOW ALL

Load  error  file  created  during compilation (see @{" macros/compile & link " link M6.19}).
This  function  isn't  available  if  you  have  disabled DICE s
upp
ort
 during
installation of GoldED.


ERROR: FIRST

Make  GoldED jump to the first erroneous line (either error or warning) after
compilation  (see  @{" macros/compile  & link " link M6.19}) has completed. The original DICE
errror/warning  text is displayed below the window's title bar. This function
isn't  available  if  you  have  disabled DICE support during installation of
GoldED.


ERROR: NEXT

Make  GoldED  jump  to the 'next' error/warning. The line number is extracted
from  the  file  T:ERRORS produced by the compiler/GUIMake during compilation
(see  @{" macros/compile  &  link " link M6.19}).  The  original  DICE errror/warning text is
displayed  below the window's title bar. This function isn't available if you
have  disabled  DICE  support  during  installation of GoldED.


ERROR: PREVIOUS

Make  GoldED jump to the 'previous' error/warning line (after having used the
'next'  option  of @{" macros/errors " link M6.21}). The original DICE errror/warning text is
displayed  below the window's title bar. This function isn't available if you
have disabled DICE support during installation of GoldED.


@endnode
@node M6.23 "macros/run executable"
macros/run executable of: @{" MACRO MENU " link MACRO_MENU}

Run  the  executable  created  by DICE/GUIMake (see @{" macros/compile & link " link M6.19}).
This  function  isn't  available  if  you  have  disabled DICE support during
installation of GoldED.




@endnode
@node CONFIG_MENU "CONFIG MENU"
                                 CONFIG MENU 
                          menu tree of config menu 


             @{"  config/keyboard bindings  " link M7.0} @{"  config/menus          " link M7.10}
             @{"  config/TABs               " link M7.1} @{"  config/layout         " link M7.12}
             @{"  config/references         " link M7.3} @{"  config/printer        " link M7.14}
             @{"  config/file hunter        " link M7.4} @{"  config/misc           " link M7.15}
             @{"  config/dictionary         " link M7.6} @{"  config/calender-time  " link M7.16}
             @{"  config/indention          " link M7.7} @{"  config/save           " link M7.18}
             @{"  config/display            " link M7.9} @{"  config/load           " link M7.19}

Use  these  functions  to  ajust  GoldED to your likings; don't forget to use
@{" config/save " link M7.18}  before  you  leave  the editor; your definitions would be lost
otherwise.

Configuration guidelines 

I'd  like  to  have  other  people  developing  their  own  menus or keyboard
assignments and release them to the public. I'd like to include some into the
unregistered release of GoldED, too. Useful guidelines for contributions:

Use  standard  shortcuts  for  standard  menu  functions. For example, do not
decide for A as shortcut for 'open file' if all other editors use O.

Provide a guide help file (AmigaGuide) for your menu definitions respectively
a documentation of your keyboard assignments. Use the same language for menus
& help text. Feel free to copy parts of the original GoldED manual(s).

Use  a  symbolic  path  when referencing external files/programs through menu
calls.  Suggested:  'GoldED:tools'  for DOS tools respectively 'GoldED:ARexx'
for ARexx scripts. Do not use something like this: 'dh0:c/muchmore'.

Provide  an  'Installer' script to set up a working environment. Feel free to
copy parts of the original script(s) that came with GoldED.


@endnode
@node M7.0 "config/keyboard bindings"
config/keyboard bindings of: @{" CONFIG MENU " link CONFIG_MENU}

Open  keyboard  binding  requester  used  to  map  desired  action to keys or
key-qualifier  combinations  (GoldED  recognizes the qualifiers ALT, CTRL and
SHIFT).  As long as you don't bind any action to a key, the default keymap is
used  whenever  it  is  possible: Pressing the 'A' key would insert an 'A' at
current  cursor  position.  Non-character  keys  (like  the  cursor keys) are
initially  unset, i.e. they wouldn't have the expected effect like moving the
cursor  (however  GoldED  is shipped with this stuff already set up). To make
the cursor keys move the cursor you would have to bind 'move cursor' commands
to  these keys. Setting up a key(-combination) is easy: Simply use the record
gadget  and  press  the desired keys. A new requester will pop up, asking you
for  what  action  is  to  be  assigned to this event (see @{" Event definition " link EVENT_DEFINITION}
below).  However,  some  key kombinations are consumed by the OS and thus not
available  for  remapping  ('dead keys'). For example pressing ALT-G will not
result  in  a  character  but incluence the next event ("a" after ALT-G turns
into ""). The following keys are dead keys:

                              `       ALT-H
                              ALT-F   ALT-J
                              ALT-G   ALT-K
@endnode
@node EVENT_DEFINITION "Event definition"
Event definition 

You  may  assign  any  of  the  editor's @{" internal commands " link INTERNAL_COMMANDS} to a given event
(event  = keystroke or menu selection). Or a DOS command. Or a macro. Or just
a  string.  Write  the command/script name respectively string (use quotation
marks  !) to the CMD gadget and set the event type; supported event types are
internal,  arexx, shell, text or dummy. If you set the event type to 'dummy',
you  would  disable  the  event  (i.e.  nothing  would happen if the event is
encountered).  The  DIR gadget may be used to set the current directory while
the  event is processed. This is supported for events of type shell only. You
may  set  the output handle (e.g. 'con:0/0/640/400') using the OUTPUT gadget;
this  is  supported  for  events  of  type  'arexx'  and 'shell' only. GoldED
defaults  to  opening  a console window on its screen if the output handle is
omitted.  The string contents of the CMD/OUTPUT/DIR gadgets are 'interpreted'
before use (exept if the event is of type 'internal'); see @{" Magic codes " link MAGIC_CODES}.

Select  'shanghai' if you want to make all windows use GoldED's screen during
event  processing.  You have to specify how long shangai mode is to be turned
on;  units  are  seconds.  Turn  Async  ON  to  make  events  of type 'shell'
asynchronous.  Finally  you  may  assign  a  help  text to an event using the
'hyper'  gadget:  enter a node name of the 'current' AmigaGuide database (see
@{" config/menus " link M7.10}).  The  help text assigned to a menu event is displayed during
@{" MenuHelp " link GETTING_STARTED}  processing.  If you don't provide a node name, GoldED defaults to
use  M<menu  number>.<item number> (e.g. M1.2). You may use the '@' character
to select a database (i.e. to override the default database) . Example usage:
GOLDED:GOLDED.GUIDE@MAIN  would make the editor look for a node 'MAIN' within
the amigaguide file 'GOLDED:GOLDED.GUIDE'.

Multiple commands 

You  may  assign any number of commands to a single event (menu item or key).
You  may  mix command types (e.g. a shell command followed by one of GoldED's
@{" internal  commands " link INTERNAL_COMMANDS}),  too, but all commands will share the general settings
of  the  item requester (e.g. all shell commands will be aynchronous if ASYNC
is   checked).   Please   keep  in  mind  that  ARexx  processing  is  always
asynchronous: after the command has been sent to the ARexx server GoldED will
proceed  immidiately.  Don't  make assumptions about wether the ARexx command
has  already  completed  then (in most cases it won't - ARexx isn't that fast
;-). In generally you should avoid mixing ARexx commands with other commands.

@endnode
@node MAGIC_CODES "Magic codes"
Magic codes 

Interpretation of strings (see @{" event definition " link EVENT_DEFINITION}) means that some predefined
symbols  like  \DATE  are  replaced  by  their  actual value if the string is
finally  referenced  by  GoldED;  quote  a  string if you don't want it to be
interpreted. The following keywords are supported:


             "<characters>" ..... character constant
             %<number> .......... inserts ASCII code <number>
             \n ................. return
             \t ................. tab
             \b ................. move cursor left
             \" ................. quote
             \NAME .............. current file name
             \CON ............... window dimension string
             \DATE .............. current date
             \TIME .............. current time
             \SCREEN ............ screen name
             \HOST .............. name of GoldED's ARexx port
             $<name> ............ environment variable <name>


@endnode
@node M7.1 "config/TABs"
config/TABs of: @{" CONFIG MENU " link CONFIG_MENU}

Open  TAB  configuration  requester.  GoldED supports several modes as far as
TABs  are  concerned:  solid  TABs  as well as light TABs are available (see:
@{" control/toggle  TAB mode " link M4.11}. Additionally you may decide for distinctive TABs,
regular  ones or dynamic TABs: while regular TABs are set using the 'tab key'
slider (e.g. to every 4th column), distinctive ("fixed") TABs are set using a
listview; simply enter desired TAB positions. Last but not least dynamic TABs
are  available:  In  dynamic  mode  GoldED  will  examine the last line(s) to
determine  approbiate  TAB  positions.  If  none are found, regular TAB's are
used.

GoldED  never  uses  TABs  when  writing  a  file to disk, however some other
editors   do,  usually  replacing  eight  spaces  by  a  single  TAB.  GoldED
resubstitutes  these  TAB codes by spaces while loading (see @{" project/load " link M0.6}).
Usually  one  TAB code is replaced by eight spaces. Use the 'tab file' gadget
to change this. Setting it to four would make GoldED use four spaces for each
TAB.


@endnode
@node M7.3 "config/references"
config/references of: @{" CONFIG MENU " link CONFIG_MENU}

Open  requester  to  set  up the editor's reference system. Whenever the user
asks  for  a  reference (see @{" find/reference " link M3.12}), GoldED examines its reference
database.  This  database  consists  of keyword-filename pairs: one reference
file  for each keyword (e.g. RastPort) GoldED knows about. If a match for the
user's request is found, the corresponding reference file is loaded.
  
Database creation

Use the string gadget respectively the GET gadget (next to the string gadget)
to  select  a  database; if you select a non-existant one, it is created (the
editor   is   shipped   without   a   database;   suggested   file   name  is
's:GoldED.refs').  A  new data base initially is empty. All you have to do in
order  to  fill  the  database  is selecting some files using the file gadget
(central gadget below list) or directories using the directory gadget next to
the  file  gadget: GoldED will scan all selected files for keywords. Scanning
mode  depends  on  the  file  name: if the file name suffix is '.c', function
names  are  extracted.  If  the  suffix  is  '.h',  structure definitions are
exctracted.  Several  other types are recognized, too (see @{" find/functions " link M3.24}).
You  may  even  change  the default file extensions recognized by the scanner
(see @{" find/functions " link M3.24}).
  

@endnode
@node M7.4 "config/file hunter"
config/file hunter of: @{" CONFIG MENU " link CONFIG_MENU}

Open  file  hunter window. Used to set up default drawers where the editor is
going  to  look for a file if requested by @{" misc/search file " link M5.4}. Subdirectories
are  examined,  too. You may specify a default suffix for each directory. The
editor  will  append  this suffix to the file name if it isn't able to locate
the  file without the suffix (the suffix must be given in the form *.suffix).
Example  usage: add the include directory of your C compiler to the directory
list;  set  the suffix to "*.h". Now place the cursor over the following file
name (between the brackets - this is 'C' code) and use @{" misc/search file " link M5.4}:

#include <amiga20/exec/exec.h>

The  editor  will  then  search  the  include  directory  for  a  file called
"amiga20/exec/exec.h".  Note  that  "amiga20/exex/exec.h"  is a relative path
without drive specification, so we can't use the file name directly.


@endnode
@node M7.6 "config/dictionary"
config/dictionary of: @{" CONFIG MENU " link CONFIG_MENU}

Opens requester to edit the dictionary. The dictionary is used by the editors
@{" APC " link M3.14} facility (to complete expressions) as well as by its AutoCase support:

AutoCase 

If  you enable AutoCase checking, the editor will search the current line for
words  present  within  the dictionary, too. This check is performed when the
cursor  leaves  the  current  line. It is case-insensitive (e.g. Rastport and
RastPort would be recognized as the same expression). If a match is found, it
is replaced by the dictionary entry, thus possibly correcting case.

General hints

Don't  make  the dictionary to big - the smaller it is, the more efficient it
will  be.  Only  add  unique  names to it - otherwise the editor might try to
correct  the  spelling  of  a  word even if you don't want it. For example it
wouldn't  be  a  good  idea to add 'RastPort' for this would prevent you from
using  a variable 'rastport' within your programm. However, 'struct RastPort'
is  fine,  since  this  is  the  only  way  to  write  this kind of structure
definition  (at  least  as  far  as  Amiga C programmers are concerned). Make
tailing  spaces part of the dictionary entries: For example there is always a
space  after  the  "int"  keyword as far as C sources are concerned, so don't
make  "int"  part  of the dictionary but use "int " (this prevents the editor
from replacing INTERNATIONAL by intERNATIONAL).

Parenthesis check 

Toggle  the  ()-check gadget to ON if you want the current line to be checked
for correct use of braces as soon as the cursor leaves it (see @{" find/check " link M3.9}).
Unfortunately  this check is performed if the display is shifted, too, due to
the  internal  design  of  GoldED.  Don't  use  this  option for 'free-style'
programming languages like C.


@endnode
@node M7.7 "config/indention"
config/indention of: @{" CONFIG MENU " link CONFIG_MENU}

AutoIndention ,  SmartIndention 

Open  requester  to  set  the indention scheme. Turn AutoIndention ON, if you
want  the  cursor to be indented the same amount as the previous line after a
CR (see @{" return key " link RETURN_KEY}). Turn SmartIndention ON if you want automatic indention
after  user-defined  keywords (e.g. after IF); use the listview gadget to set
desired keywords.


@endnode
@node M7.9 "config/display"
config/display of: @{" CONFIG MENU " link CONFIG_MENU}

Display mode   Font 

Open  requester  to  set  up display (i.e. resolution, fonts, window look and
more).  Some  gadgets  of  this  requester are 'dangerous' since they require
closing down the current windows/display temporarily: the editor might not be
able to reopen its display if you are _very_ short of memory.

You  may  select  three  different  fonts  to  be  used  for the text, within
requesters  or  for  menus  (if  GoldED runs on a custom screen). These fonts
(apart from the screen font) have to be fixed width fonts.

Icons

Enable/disable  use of icons within requesters. Since the editor's icons have
been  designed  with the OS2/OS3 color sheme they might not look that good if
you use your own color scheme. Use this gadget to turn icons on/off.

Pens

You  may  set  the  pens  used  by  the  OS  (and  GoldED) to render the user
interface.  Some  pens are not adjustable under OS2.1 or earlier. For example
setting the menu background pen used to render menus requires at least OS3.0.

Shanghai

Turn  shanghai  mode  ON if you want to force all windows ususally opening on
the  default  public  screen  (i.e. the workbench screen) to open on GoldED's
custom  screen.  Use not recommended if GoldED's screen is a one-plane screen
(many programs won't look that pleasing then).

Chunky pixel

Many external graphics boards don't use a bitplane representation of graphics
(as  the  current Amiga chipsets do) but a chunky pixel organization. Use the
'chunky  mode' gadget to configure GoldED according to your hardware. Usually
(chunky  pixel gadget not checked) GoldED will try to speed up the display by
restricting output to single planes - this will give you a considerable speed
increase as long as a native plane-based Amiga chipset (e.g. the ECS chipset)
is  used.  But  it  wont't  give you a speed increase at all if your external
graphics   board   is   based   on  a  chunky  pixel  organization.  In  fact
write-protecting  planes  might even slow down output, so switching GoldED to
chunky  mode might be a good idea if you own such a board. Be careful to have
this  gadget  set  properly  to  avoid  loss  of performance. Better leave it
untouched (unchecked) if you feel unsure about this option.


@endnode
@node M7.10 "config/menus"
config/menus of: @{" CONFIG MENU " link CONFIG_MENU}

Open  menu  requester; used to set up menus. You may have as many menu titles
(left  listview) as you like - up to intuition's limit. Each menu may have as
many  menu entries (middle listview) or submenus (right listview) as you like
(up to intuition's limit once more - 32, I guess). Doubleclick at a menu item
to  set  its action (see @{" event definition " link EVENT_DEFINITION}). Use the '+/-' gadgets to move a
listview entry one position up respectively down. Use the 'key' gadget to set
a menu shortcut. Select the arrow gadget to get a list of "unused" shortcuts.
Only  ASCII characters (ie. codes <= 128) will be listed; na
tional characters
(reside  above  1
28)  are  n
ot recommended to be used as menu shortcuts. Menu
shortcuts are not case sensitive.
 
The  'hyper' string gadget selects a guide file ('database'), containing menu
descriptions.  This  database  is  used  as  default database by all commands
related to AmigaGuide handling (e.g. @{" misc/help " link M5.0}).


@endnode
@node M7.12 "config/layout"
config/layout of: @{" CONFIG MENU " link CONFIG_MENU}

Set  layout  area  for formatting functions. 'Left border' as well as 'width'
may  be  set. Example: Set border to 5 respectively width to 70 before before
using  @{" layout/section  block " link M2.9}. Your text be left & right aligned afterwards.
Total  width (including border) will be 75 characters, 'black' width 70, left
margin 5 columns.


@endnode
@node M7.14 "config/printer"
config/printer of: @{" CONFIG MENU " link CONFIG_MENU}

Printer   definition   requester.   Used   to   define   printing   mode  for
@{" project/print " link M0.22}  as well as @{" block/print " link M1.23}. Since all output of GoldED goes to
the   standard   printer   driver,   this   works  with  any  printer  (while
@{" misc/HiSpeed " link M5.17}  supports  PCL  printers  only). Contents of the 'init' string
gadget  are  send to the printer after all other initialization (e.g. quality
selection)  has  been  done. This gadget may be used to pass printer specific
data, too: The gadget's contents are interpreted (see @{" magic codes " link MAGIC_CODES}), you may
easily  pass  a so called aRaw to the printer device: '27 [ <bytes> 34 r'. To
send a 7-bytes command (e.g. "0123456") to the printer, enter:

                        %27 "[7" %34 "r" "0123456"


@endnode
@node M7.15 "config/misc"
config/misc of: @{" CONFIG MENU " link CONFIG_MENU}

Open main preferences requester. This requester is used to set several 'Auto'
features  as  well  as  the  backup  handling,  default protection bits, fold
markers and XPK compression mode (see @{" project/save as XPK " link M0.18}):

AutoFold   AutoLoad   AutoCenter 

If  AutoFold  is enabled, the editor looks for fold markers after loading; if
some  are  found,  the  corresponding  sections  are  folded (see @{" Folding " link M4.7});
happens before the text is displayed. Use the fold marker gadgets (start/end)
to  set  the marker sequence for start respectively end of folds. The shorter
this  sequences  are, the faster folding will be. Using the same sequence for
marking  start/end  of sections to fold speeds up folding even more. However,
this  would  prevent  you  from using nested folding: nested folding requires
different markers.

If  AutoLoad  is  enabled,  GoldED  attempts to load your last project during
startup - unless file names are specified.

If   AutoCenter   is   enabled,  window  positions  are  not  read  from  the
configuration  file.  Instead,  GoldED  attempts  to center windows on screen
(only visible section considered).

XPK compression mode

The  XPK  listview presents a list of available XPK compressors, found within
the  libs:compressors  subdirectory.  Additionally  you  may enter a passowrd
(used  by  some  XPK encryption libraries) and set efficiency for compression
(0% to 100%). Please read the original XPK documentation.

Backup creation:  AutoBackup 

The  editor  attempts  to  backup  old  copies  of a file before saving a new
version   if  'create  *.bak'  is  enabled  (otherwise  the  old  version  is
overwritten).  Backups  are  written  to  any  path you like (see backup path
gadget).  Enable AutoSave if you want backups of your windows every x minutes
(use  gadget  below  AutoSave to enter period). Toggle 'ask' gadget to ON, if
you want to be asked for confirmation of AutoBackup events.

Create *.info

If 'create *.info' is ON, the editor generates an icon for each file saved to
disk  (unless  an  old  one exists). The default tool of icons created by the
editor is GoldED.

Fast scrolling

GoldED  will  speed  up scrolling after the cursor has reached the first/last
line  of a text window if the FastScroll gadget is checked. You might want to
turn  this  feature off in monochrome mode (provided you own a fast A4000) to
slow down the display.

File protection bits

These  gadgets (read/del/write/script) are used to set the default bits for a
new  text  (e.g. created by @{" project/more ed " link M0.4}). Use @{" project/bits " link M0.21} to set the
actual bits of a document.

Startup macro 

The  startup  ARexx  macro is executed once (asynchronously) after the editor
has been launched, windows already open. Have a look at the section about the
editor's @{" ARexx port " link AREXX_PORT} as far as ARexx programming is concerned. You could use
the  macro to customize the GoldED environment according to the type of files
loaded during startup (e.g. switch to a C programming environment). Leave the
startup  gadget  empty  if  you  don't  need automatic execution of a startup
macro.

HotKey support (stay-in-ram gadget)

GoldED   supports  @{" HotKey " link M0.24}  activation:  if  hotkey  activation  is  enabled
(stay-in-ram  gadget checked) the editor will not be removed from memory even
after  the  last  window  has  been closed. Instead it will wait for a hotkey
combination  (right  SHIFT & right ALT & RETURN) before it attempts to reopen
its  screen  again.  HotKey  activation  will  give you a quick response time
though  it  will  consume  some  memory,  too. You might want to disable this
feature  if  you  are  short  of  RAM.  Use  the  QUIT  UNLOAD  command  (see
@{" misc/command " link M5.22})  to  remove the editor completely from RAM (you could use the
commodities exchange program of your workbench, too).


@endnode
@node M7.16 "config/calender-time"
config/calender-time of: @{" CONFIG MENU " link CONFIG_MENU}

Attempts to open the time/date preferences program of your workbench (must be
placed within sys:prefs).

@endnode
@node M7.18 "config/save"
config/save of: @{" CONFIG MENU " link CONFIG_MENU}

Save  configuration  to  a  preferences  file.  Has to be used after GoldED's
settings  have  been  changed  if  you  don't want to loose your definitions.
Default  settings  file is envarc:GoldEd/GoldED (this file is used during the
editor's startup if no other configuration is specified).


@endnode
@node M7.19 "config/load"
config/load of: @{" CONFIG MENU " link CONFIG_MENU}

Load  a  configuration  file  &  adjust  to  the new settings. This operation
includes closing down and reopening all windows; might be a dangerous call if
not  enough  memory is available (i.e. if the editor isn't able to reopen the
windows).

@endnode
@node KEYBOARD "Keyboard"
                                   Keyboard 

Please read this chapter carefully if you want to take full advantage of this
editor's  features.  Keys  usually  perform different tasks depending on what
qualifier  key(s) is/are pressed simultanously. Qualifier keys are SHIFT, ALT
or  CTRL.  For  example  the cursor keys map to seven different funcions. Key
bindings are not fixed; use @{" config/keyboard bindings " link M7.0} to adjust them to your
likings.  This manual describes the default setup. The following descriptions
are available:


                       @{"  Cursor keys  " link CURSOR_KEYS} @{"   TAB key   " link TAB_KEY}
                       @{"  HELP key     " link HELP_KEY} @{"   ESC key   " link ESC_KEY}
                       @{"  RETURN key   " link RETURN_KEY} @{"   F-keys    " link F-KEYS}
                       @{"  DEL key      " link DEL_KEY}


@endnode
@node CURSOR_KEYS "Cursor keys"
                                 Cursor keys 
                             Speeds of scrolling 
UP/DOWN + ALT

This  sequence  provides fast scrolling (up or down) - it is one oft GoldED's
most  useful  key  combinations.  The cursor won't move during fast scrolling
(i.e.  it  will  stay  in the middle of the screen if it was there before you
switched to fast scrolling).

UP/DOWN + SHIFT

Go  to next (DOWN) respectively previous (UP) page. Pages do overlap a bit to
make navigation more comfortable.

UP/DOWN + CRTL

Fast  jump:  the  cursor  moves  to  the next quarter of your text. Useful to
roughly  set  a  new  position  before  using  fast/normal scrolling for fine
tuning.

LEFT/RIGHT + ALT

Shifts  the  display  area to the left respectively right. Usually display is
shifted  automatically  if  the cursor reaches the right/left window borders.
This  function  is useful if you want to shift the display without moving the
cursor at all.

LEFT/RIGHT + CTRL

This  is  a  shifting  function: mark same lines using @{" block/mark " link M1.0}, then use
this  key combination to shift (indent) the block. Mainly used by programmers
to  ensure  a proper indention sheme. Usually the marked lines are shifted by
one  column;  use the SHIFT key simultanously to set shifting distance to TAB
distance.

LEFT/RIGHT + SHIFT

Moves  cursor  to  the  beginning  of  the next (RIGHT) respectively previous
(LEFT) word.
  
LEFT/RIGHT + SHIFT + ALT

Moves  cursor  to  the  end of the current/next (RIGHT) respectively previous
(LEFT) word.


@endnode
@node HELP_KEY "HELP key"
                                   HELP key 

HELP

Fold/unfold  current  section:  Unfold if cursor is placed over a fold header
(see @{" Folding " link M4.7}), otherwise look for fold markers & fold lines between markers
(cursor must bee placed between a fold start marker and a folf end marker).

HELP + CTRL

Fold/unfold the whole text: Unfold all folded sections if cursor is placed on
a fold header (see @{" Folding " link M4.7}), otherwise fold all sections surrounded by fold
markers.


@endnode
@node TAB_KEY "TAB key"
                                   TAB key 

TAB  (+ SHIFT)

Move  cursor  to  next TAB position. This editor supports simple/regular TABs
(e.g.  every  4th  column)  as  well  as fixed TABs (any column you want) and
dynamic TAB's. Use @{" config/tabs " link M7.1} to set mode & TAB positions. Press the SHIFT
key simultanously if you want to jump to the previous instead of the next tab
position (backtab). TABs are either solid (i.e. they behave as if they were a
sequence  of  spaces)  or  light  (i.e.  they  simply move the cursor without
inserting   any   character);   use   either  @{" control/toggle  tab  mode " link M4.11}  or
@{" config/tabs " link M7.1} to switch from light to solid and vice versa.
  
Dynamic TABs 

GoldED  supports  dynamic  TAB's  (suggested by David Ghler): in dynamic TAB
mode  (set  by  @{" config/TABs " link M7.1} the editor will examine the previous line(s) to
determine  approbiate  TAB  positions.  Quite useful if you are about to edit
assembler  sources.  Dynamic TABs default to regular TABs, if the lines above
the current line are empty.

TAB + ALT (+ SHIFT)

Usually either distinctive or normal TABs are active. However, you can switch
to distinctive tabs on the fly by holding down the ALT key while using TAB or
TAB SHIFT.


@endnode
@node RETURN_KEY "RETURN key"
                                  RETURN key 

RETURN

Split current line at cursor position & move cursor to next line. This editor
supports  @{" AutoIndention " link M7.7}:  if  you  press the RETURN key, the current line's
indention is used as default indention for the next line (i.e. if the current
line  is  indented by four columns, pressing <CR> will move the cursor to the
fourth column of the next line).

RETURN + SHIFT

Same  as  RETURN  but  the  current  line is not splitted no matter where the
cursor is positioned so far.

RETURN + CTRL

Inserts  an  empty  line:  the  cursor  is not moved at all but a new line is
inserted before the current line.


@endnode
@node DEL_KEY "DEL key"
                                   DEL key 

DELETE (+ SHIFT)

Delete  character at current cursor position, shift rest of line one position
to  the  left.  Press the shift key simultanously if you want to delete until
the end of line. You can undo this operation using @{" misc/undo line " link M5.10}.

DELETE + CTRL

Delete  the  current  line.  You  can  recall  up  to  50 deleted lines using
@{" misc/push  line " link M5.7}  since lines are not actually lost but put to the pick/push
buffer.

DELETE + ALT

Delete  the  next  word.  You  can  undo this operation as long as the cursor
doesn't leave the current line using @{" misc/undo line " link M5.10}.


@endnode
@node ESC_KEY "ESC key"
                                   ESC key 


Trys  to  'complete' the word your cursor is placed over. Example usage: type
'TIG', then press the ESC key. 'TIG' would be replaced by 'TAG_IGNORE' if the
C-dictionary is present (see @{" config/dictionary " link M7.6} on how to load/edit/create a
dictionary).  GoldED  uses  a  (simple)  pattern  matching  algorithm to find
approbiate  dictionary  entries,  so  you  might use other abbreviations than
'TIG',  too  (e.g. 'TAGI'). This will work as long as the first letter of the
short  form  is  the  first letter of the full form. However, the larger your
dictionary  grows  the  more detailed your abbreviations have to be to ensure
unique identification.


@endnode
@node F-KEYS "F-Keys"
                                    F-Keys 

Use  the  @{" config/keyboard  bindings " link M7.0} menu to assign strings, shell commands,
ARexx  macros or one of the editor's @{" internal commands " link INTERNAL_COMMANDS} to any key including
the  function  keys.  However,  some  commodities  do  their own function key
mapping.  If  such a commodity is installed, the editor won't notice function
key events. Default mappings of the function keys are:


          key     decription        see
          -----------------------------------------------------
          F1      open  file        @{" project/load " link M0.6}
          F2      merge file        @{" project/insert " link M0.10}
          F3      print file        @{" project/print " link M0.22}
          F4      hide block        @{" block/hide mark " link M1.1}
          F5      mark line         @{" block/mark " link M1.0}
          F6      find next         @{" find/find next " link M3.1}
          F7      next page         @{" cursor keys " link CURSOR_KEYS}
          F8      set insert mode   @{" control/insert-overwrite " link M4.10}
          F9      toggle TAB mode   @{" control/toggle TAB mode " link M4.11}
          F10     play macro        @{" macros/play " link M6.4}

          SHIFT
          & key   decription        see
          -----------------------------------------------------
          F1      save as           @{" project/save as " link M0.17}
          F2      save as XPK       @{" project/save as XPK " link M0.18}
          F3      quit              @{" project/quit " link M0.24}
          F4      clear text        @{" project/clear text " link M0.3}
          F5      mark line         @{" block/mark " link M1.0}
          F6      replace           @{" find/replace " link M3.4}
          F7      page up           @{" cursor keys " link CURSOR_KEYS}
          F8      overwrite mode    @{" control/insert-overwrite " link M4.10}
          F9      project setup     @{" misc/project setup " link M5.2}
          F10     record macro      @{" macros/record start-stop " link M6.3}


@endnode
@node AREXX_PORT "ARexx port"
                               ARexx port 

ARexx macros vs. recorded sequences

GoldED  offers  two  kinds of macros for automated control: ARexx scripts and
recorded  sequences.  ARexx scripts are programs quite similar to programming
languages  like  BASIC.  They are evoked by GoldED (e.g. by setting up a menu
item of type 'ARexx'; see @{" config/menus " link M7.10}), but actually executed by the ARexx
master  server  (part  of  the Amiga operating system). The ARexx server will
examine  the script and send messages to GoldED respectively recieve messages
from  GoldED  during execution. For example the ARexx server could ask GoldED
to  jump  to  a  special  line  if it detects a GOTO command within a script.
GoldED  would tell the ARexx server wether the operation has been successful.
Due  to  the  flexibility of ARexx this is a very powerful method to automate
control  of  GoldED.  However  this  approach  requires  at  least some basic
knowledge  of  ARexx. If you need automated control but are not interested in
ARexx  you  might  want  to use GoldED's abiltity to record command sequences
instead:  Enable  recording  using  @{" macros/record  start-stop " link M6.3} and perform a
sequence  of  commands. In other words: make the editor 'learn' how to do it.
Once you have recorded a sequence you may replay it as many times as you like
(see  @{" macros/play " link M6.4}). You may save sequences @{" macros/save " link M6.7}) or assign them to
events like menus or keystrokes using GoldED's @{" MACRO " link MACRO} command. Sequences are
far less powerful than ARexx script. But they are far more handy, too.

This  section  describes the editor's ARexx interface. You are expected to be
familar  with  ARexx basics, i.e. you should know about the purpose of ARexx,
how to write scripts, how to talk to applications, ...

ARexx basics

ARexx control of this editor is somewhat complicated since you never know how
many  editor tasks are running, how many windows are open or what the user is
doing  when ARexx wants to take over control. It is therefore quite important
to obey to certain rules wich are to be discussed now:

                            1. @{"  Select a host  " link SELECT_A_HOST}
                            2. @{"  Lock a window  " link LOCK_A_WINDOW}
                            3. @{"  Do your job    " link DO_YOUR_JOB}
                            4. @{"  unlock GUI     " link UNLOCK_GUI}

@endnode
@node SELECT_A_HOST "Select a host"
Select a host 

If  you  run  ARexx  scripts  from within the editor (i.e. if you set up menu
items  of  type  'ARexx'  or  if  you execute the current text as macro using
@{" macros/run  text as macro " link M6.1}), any script commands which are not part of ARexx
itself  are  sent  to the editor (the 'host') automatically. However, if your
script is evoked f
rom a different program (e.g. rx), i
t will have 
to select a
port for communication: use ADDRESS <port name> for this purpose.
  
Port name

The  editor's ARexx port is called "GOLDED.1" if the editor is run only once.
The  ARexx  port  of  a  further  editor  task  would  be  "GOLDED.2". Select
@{" project/about " link M0.0}  if you want to know the current port/screen name. Or use the
@{" QUERY " link QUERY} command (with the HOST argument) from within a script. As long as you
use  the  @{" QuickStarter " link GETTING_STARTED}  to  run GoldED, you usually won't have to deal with
port names different from 'GOLDED.1'.


@endnode
@node LOCK_A_WINDOW "Lock a window"
Lock a window 

Your  script has to tell the editor what window is going to be affected - use
the  @{" LOCK " link LOCK}  command  (e.g. 'LOCK CURRENT' to lock the current window). After
locking a window, the GUI is locked, too, to prevent the user from disturbing
the  macro.  If you don't use the lock command, your macro might still appear
to work perfectly, but it will break under special circumstances (e.g. if the
user  closes  a  window  while  a script is executed). Once you have locked a
window  successfully  (ARexx  return  code RC is 0), you have to take care of
unlocking it again on termination of your script (see @{" Unlock GUI " link UNLOCK_GUI}).


@endnode
@node DO_YOUR_JOB "Do your Job"
Do your Job 

You can use any of the editor's @{" internal commands " link INTERNAL_COMMANDS} within your macro. Please
keep  in mind that commands send from ARexx to GoldED are parsed twice: first
by  the  ARexx  server while executing the script, second by GoldED using the
ReadArgs() function of the dos library. This sometimes screws things up a bit
-  especially  as far as quotes are concerned. Suggestion: Write the lines of
your script as if you were talking directly to GoldED: quote strings, command
names  upercase (step 1). Then put the lines to be sent to GoldED into single
qutotation  marks  to  mark  them as commands (step 2). Finally double single
quotation  marks  within  these lines to prevent ARexx from regarding them as
string delimiters (step 3). Example:

          step 1:  REQUEST BODY "Hi, I'm an empty macro"
          step 2: 'REQUEST BODY "Hi, I'm an empty macro"'
          step 3: 'REQUEST BODY "Hi, I''m an empty macro"'

Usually  GoldED passes command results to your script using the special ARexx
variable  RESULT  -  at  least  if  you  have asked for results using OPTIONS
RESULTS. Some commands like @{" QUERY " link QUERY} support specification of a variable name,
too, using the VAR/K option. Example: 'QUERY ABSLINE VAR LINE'
  
No result is returned if a command fails - instead the special variable RC is
set  to  the error level: 5 = warning, 10 = error, 20 = fatal error. RC would
be  0  if  a  command  has been successful. You have to use the OPTION FAILAT
command  of ARexx to prevent ARexx from stopping execution if RC is not NULL,
i.e. to recieve RC return codes at all. The special variable RC2 will keep an
error text if a command has failed (i.e. if RC is not 0).


@endnode
@node UNLOCK_GUI "Unlock GUI"
Unlock GUI 

An  ARexx  script must @{" unlock " link UNLOCK} the GUI before it terminates, if a prior call
to  @{" Lock " link LOCK} (see @{" Lock a window " link LOCK_A_WINDOW}) has been succesful. It mustn't use unlock if
a  prior  attempt  to  lock has failed. Omitting unlock will leave the editor
dead-locked, so take care to unlock the GUI even if your script breaks (maybe
due  to  a  systax  error).  This  can  be  achieved using the error handling
facilities  of  ARexx (e.g. SIGNAL or OPTION FAILAT). Just have a look at the
scripts  in  the  GoldED:ARexx  drawer.  As a last resort the Unlock macro is
provided: simple doubleclick at its icon - all editors will be unlocked (wich
is  a  dangerous  operation  if  one  of  those  tasks is processing an ARexx
script).


@endnode
@node INTERNAL_COMMANDS "Internal commands"
                              Internal commands 


GoldED  offers  a  set  of  about  340 commands/options (see @{" Command list " link COMMAND_LIST}),
supported by all interfaces of GoldED: you may use them in ARexx macros, bind
them   to   menu   items   (see   @{" config/menus " link M7.10}),   attach   them   to  keys
(@{" config/keyboard  bindings " link M7.0})  or execute them directly using @{" misc/command " link M5.22}.
It is possible to combine several functions (see @{" multiple commands " link EVENT_DEFINITION}). As far
as  arguments  are  concerned,  the  DOS  rules  apply  since GoldED uses the
ReadArgs  function  of  OS2.0 just like most CLI commands: strings containing
spaces  must  be  quoted,  option and keywords may be uppercase or lowercase.
Command  templates/options  are described in the same way as CLI commands are
described. Example:

              PRINT FORCE/S,ITALICS/K,ALL/S,LPI/N,CONFIG/K

This  PRINT  command obviously accepts five options: force, italics, all, lpi
and  config.  The  option  force is a switch (/S): it makes the print command
behave  in  a  special  way  decribed  in  this  manual  _if_  this option is
specified.  The  second  option  introduces a keyword (/K) - value pair; e.g.
print  italics=true.  The  equality  sign  may  be omitted. Due do ReadArgs()
parsing,  you will have to use *" instead of " when embedding quotation marks
into strings to prevent the parser from considering a quote as start/end of a
string  (** results in a single *). Options of type '/K' -just like any other
options  apart  from  /A  ones  -  do  not  have to be specified. If they are
specified,  a  further  argument  (like true) is expected. Suported arguments
depend  on  the  command:  If  one  of  the  commands  below offers an option
described  as  BOOL,  it  would  accept  the strings true, false and probably
toggle,  too.  If  a command's option is marked as STRING, any text string is
accepted  as  argument  (e.g. print config "S:prt.prefs"). The 4th keyword in
the  example above (lpi) introduces a numerical (/N) argument; example: print
lpi=10.  The equality sign may be omitted once more. The valid argument range
depends  on  the  command  (e.g.  byte, word, unsigned word or long). Further
option  types  are  "\F"  (accepts  rest  of  line  as string), "\M" (accepts
multiple strings) and "\A" (means: this argument must be specified).


@endnode
@node COMMAND_LIST "Command list"
Command list  (use: see @{" internal commands " link INTERNAL_COMMANDS}):

 @{"  BACK     " link BACK} @{"  DOWN     " link DOWN} @{"  GREP     " link GREP} @{"  MENUS    " link MENUS} @{"  PREVEND  " link PREVEND} @{"  SMARTCR  " link SMARTCR}
 @{"  BIND     " link BIND} @{"  DPAGE    " link DPAGE} @{"  HELP     " link HELP} @{"  MISC     " link MISC} @{"  PRINT    " link PRINT} @{"  TAB      " link TAB}
 @{"  BITS     " link BITS} @{"  ENDWORD  " link ENDWORD} @{"  HUNTER   " link HUNTER} @{"  MODE     " link MODE} @{"  PROJECT  " link PROJECT} @{"  TABS     " link TABS}
 @{"  BLOCK    " link BLOCK} @{"  EXALL    " link EXALL} @{"  INDENT   " link INDENT} @{"  MORE     " link MORE} @{"  PUSH     " link PUSH} @{"  TASK     " link TASK}
 @{"  BRACKET  " link BRACKET} @{"  EXTRACT  " link EXTRACT} @{"  INFO     " link INFO} @{"  NAME     " link NAME} @{"  QUERY    " link QUERY} @{"  TEXT     " link TEXT}
 @{"  CLIP     " link CLIP} @{"  FDOWN    " link FDOWN} @{"  INSERT   " link INSERT} @{"  NEW      " link NEW} @{"  QUIT     " link QUIT} @{"  UJUMP    " link UJUMP}
 @{"  CMD      " link CMD} @{"  FILE     " link FILE} @{"  KEY      " link KEY} @{"  NEXT     " link NEXT} @{"  REFRESH  " link REFRESH} @{"  UNDO     " link UNDO}
 @{"  CODE     " link CODE} @{"  FIND     " link FIND} @{"  LAYOUT   " link LAYOUT} @{"  OPEN     " link OPEN} @{"  REMAP    " link REMAP} @{"  UNLOCK   " link UNLOCK}
 @{"  COLON    " link COLON} @{"  FIRST    " link FIRST} @{"  LEFT     " link LEFT} @{"  PATH     " link PATH} @{"  REPLACE  " link REPLACE} @{"  UP       " link UP}
 @{"  CONFIG   " link CONFIG} @{"  FOLD     " link FOLD} @{"  LINES    " link LINES} @{"  PHRASE   " link PHRASE} @{"  REQUEST  " link REQUEST} @{"  UPAGE    " link UPAGE}
 @{"  CR       " link CR} @{"  FORMAT   " link FORMAT} @{"  LOCK     " link LOCK} @{"  PING     " link PING} @{"  RIGHT    " link RIGHT} @{"  USE      " link USE}
 @{"  DEL      " link DEL} @{"  FREEZE   " link FREEZE} @{"  MACRO    " link MACRO} @{"  PONG     " link PONG} @{"  RX       " link RX} @{"  VIEW     " link VIEW}
 @{"  DELETE   " link DELETE} @{"  FUNC     " link FUNC} @{"  MARK     " link MARK} @{"  POP      " link POP} @{"  SAVE     " link SAVE} @{"  WINDOW   " link WINDOW}
 @{"  DIR      " link DIR} @{"  FUP      " link FUP} @{"  MAXDOWN  " link MAXDOWN} @{"  PREFS    " link PREFS} @{"  SCREEN   " link SCREEN} @{"  XREF     " link XREF}
 @{"  DJUMP    " link DJUMP} @{"  GOTO     " link GOTO} @{"  MAXUP    " link MAXUP} @{"  PREV     " link PREV} @{"  SHIFT    " link SHIFT}       

@endnode
@node BACK "BACK"
BACK 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command     option       description
  --------------------------------------------------------------------------
  BACK       (no options)  backspace operation


@endnode
@node BIND "BIND"
BIND 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  BIND       (no options)  open keyboard requester (command assignement)


@endnode
@node BITS "BITS"
BITS 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  BITS       ASK/S         open a requester to edit protection bits/comment
             R/K           set readable bit  (BOOL)
             W/K           set writeable bit (BOOL)
             D/K           set deletable bit (BOOL)
             S/K           set script bit    (BOOL)
             COMMENT/K     set comment       (STRING)

@endnode
@node BLOCK "BLOCK"
BLOCK 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  BLOCK      UPPER/S       make block uppercase
             LOWER/S       make block lowercase
             SORT/S        sort block
             COPY/S        copy block to cursor position
             MOVE/S        move block to cursor position
             HIDE/S        hide marker after operation

@endnode
@node BRACKET "BRACKET"
BRACKET 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  BRACKET    CHECK/S       check use of () in current line
             MATCH/S       move cursor to matching bracket


@endnode
@node CLIP "CLIP"
CLIP 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  CLIP       CUT/S         move block to clipboard
             COPY/S        copy block to clipboard
             PASTE/S       insert clipboard contents at cursor position
             UNIT/N        clipboard unit to use (UBYTE); defaults to 0

@endnode
@node CMD "CMD"
CMD 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  CMD        (no options)  open command requester


@endnode
@node CODE "CODE"
CODE 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  CODE       SHOW/S        show ASCII code of character under cursor
             SET/N         insert code (UBYTE)
             ASK/S         ask for ASCII code to be inserted
             TABLE/S       open character set table requester
             TOGGLE/S      change case of character under cursor

             Comment:  The SET option is influenced by current writing mode:
             in  insert  mode a character is inserted, in overwrite mode the
             character under the cursor is overwritten.

@endnode
@node COLON "COLON"
COLON 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  COLON      (no options)  insert semicolon and possibly a CR (return)

             Comment:  Suggested  use  is  mapping  to the ;-Key. Useful for
             C/C++  programmers.  The editor tries to figure out wether a CR
             should  be inserted (e.g. no CR is inserted if the semicolon is
             part of a 'for' statement). Press CTRL simultanously to disable
             CR insertion temporarily.

@endnode
@node CONFIG "CONFIG"
CONFIG 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  CONFIG     SPLIT/K       output path prefix (STRING)

             Comment:  This  function  splits the current configuration into
             several  files  (menu definition file, dictionary, ...). Mainly
             used during devlopment of GoldED.

@endnode
@node CR "CR"
CR 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  CR         (no options)  <RETURN> command; splits line at cursor position

             Comment: This function is influenced by the current setup (e.g.
             by the indention mode settings).

@endnode
@node DEL "DEL"
DEL 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  DEL        (no options)  deletes character under cursor


@endnode
@node DELETE "DELETE"
DELETE 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  DELETE     WORD/S        delete next word
             EOL/S         delete until end of line
             LINE/S        delete current line
             BLOCK/S       delete block
             COLUMN/S      delete column (see AT/N) from block
             AT/N          column to be deleted (UWORD); defaults to current

@endnode
@node DIR "DIR"
DIR 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  DIR        ASK/S         open requester to set 'current directoy'
             NEW/F         set 'current directory' (STRING)

             Comment:  the current directory is passed to any program run by
             GoldED  (e.g.  a  shell  using @{" misc/new shell " link M5.14}). It is used by
             many of GoldED's internal functions, too.

@endnode
@node DJUMP "DJUMP"
DJUMP 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  DJUMP      (no options)  jump to end of screen / next page

             Comment:  Cursor  jumps  to last line of screen if placed above
             that  line  so  far.  Jumps  to  next  page otherwise. Compare:
             @{" DPAGE " link DPAGE}.

@endnode
@node DOWN "DOWN"
DOWN 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  DOWN       (no options)  move cursor one line down


@endnode
@node DPAGE "DPAGE"
DPAGE 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  DPAGE      (no options)  show next page (compare: @{" DJUMP " link DJUMP})


@endnode
@node ENDWORD "ENDWORD"
ENDWORD 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  ENDWORD    (no options)  move cursor to end of word


@endnode
@node EXALL "EXALL"
EXALL 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  EXALL      (no options)  Examine text

             Comment:  To  be  used within ARexx macros only. Used to update
             variables related to text statistics (see @{" QUERY " link QUERY}).

@endnode
@node EXTRACT "EXTRACT"
EXTRACT 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  EXTRACT    (no options)  Extract file name unter cursor
             VAR/K         where to put the result: ARexx variable (STRING)
             LEFT/K        left delimiter(s)  (STRING); e.g. "<[("
             RIGHT/K       right delimiter(s) (STRING); e.g. ">])"

             Comment: left & right delimiter strings must be of paired and of
             the same length. Priority is from left to right.

@endnode
@node FDOWN "FDOWN"
FDOWN 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  FDOWN      (no options)  scroll down in fast mode


@endnode
@node FILE "FILE"
FILE 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
             NAME/K        file to delete/search (STRING)
  FILE       DELETE/S      delete file
             FORCE/S       don't ask for confirmation
             SEARCH/K      search this path for specified file (STRING)

             Comment: Delete-protected files are not deleted unless the FORCE
             mode is used.

@endnode
@node FIND "FIND"
FIND 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  FIND       STRING/K      pattern to search for (STRING)
             COUNT/S       count pattern (doesn't affect cursor position)
             PREV/S        jump to previous occurrance
             NEXT/S        jump to next occurance
             FIRST/S       jump to first occurance
             ASK/S         open requester
             CASE/K        case (in)sensitive (BOOL)
             QUIET/S       don't complain about missing pattern ('not found')

@endnode
@node FIRST "FIRST"
FIRST 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  FIRST      (no options)  move to beginning of line (see @{" GOTO " link GOTO})


@endnode
@node FOLD "FOLD"
FOLD 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  FOLD       
OPEN/K        open respectively close
 fold(s) (BOO
L)
             ALL/S         consider all lines
             TOGGLE/S      toggle fold (open/close)

@endnode
@node FORMAT "FORMAT"
FORMAT 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  FORMAT     LINES/S       select current paragraphe for formatting
             MARK/S        select block for formatting
             LEFT/S        make selected area left -aligned
             RIGHT/S       make selected area right-aligned
             BLOCK/S       make selected area block-aligned
             CENTER/S      center selected area

@endnode
@node FREEZE "FREEZE"
FREEZE 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  FREEZE     CURRENT/S     freeze current window
             ASK/S         ask for text to unfreeze

@endnode
@node FUNC "FUNC"
FUNC 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  FUNC       C/S           set mode to C
             BASIC/S       set mode to BASIC
             A68K/S        set mode to Assembler
             PASCAL/S      set mode to Pascal
             AUTODOC/S     set mode to AutoDoc
             STRUCT/S      set mode to C-Header
             CURRENT/S     extract function name from text (below cursor)

             Comment:  scans  text for structures, functions, ... (depending
             on selected mode) to make up an index. If no mode is specified,
             the current mode is used.

@endnode
@node FUP "FUP"
FUP 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  FUP        (no options)  scroll upwards in fast mode


@endnode
@node GOTO "GOTO"
GOTO 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  GOTO       LINE/N        line number to go to (ULONG: 1, ...)
             COLUMN/N      column to go to (UWORD: 1, ...)
             UNFOLD/K      unfold if necessary ? (BOOL)
             TOP/S         go to first line of text
             BOTTOM/S      go to last line of text
             OTHEREND/S    toggle position
             CHANGE/S      go to last change
             ASK/S         ask for line number to go to
             EOL/S         place cursor over last character of line
             BFIRST/S      go to first line of marked block
             BLAST/S       go to last line of marked block
             STEP/N        move cursor left/right (WORD)
             TOF/S         move cursor to first line of screen
             BOF/S         move cursor to last line of screen
             BYTE/N        byte offset to go to (LF's included)

             Comment:  line  numbers are considered to be absolute if UNFOLD
             is   enabled   (folded   blocks  would  count  as  single  line
             otherwise).

@endnode
@node GREP "GREP"
GREP 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  GREP       STRING/K      string to search project files for (STRING)
             ASK/S         ask for string to search for
             CASE/K        case sensitive search ? (BOOL)

@endnode
@node HELP "HELP"
HELP 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  HELP       CATALOG/K     set database (STRING)
             TOPIC/K       node to look for (STRING)

             Comment:  if  no  database  (i.e.  help file) is specified, the
             menu's database is used (see @{" config/menus " link M7.10}).
@endnode
@node HUNTER "HUNTER"
HUNTER 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  HUNTER     ASK/S         open configuration window of file hunter
             CURRENT/S     hunt (e.e. search & open) filename under cursor
             NAME/K        hunt this file (STRING)
             CONFIG/K      load hunter configuration file (STRING)

@endnode
@node INDENT "INDENT"
INDENT 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  INDENT     ASK/S         open indention requester
             AUTO/K        set automatic indention (BOOL)
             SMART/K       set smart indention (BOOL)
             IN/K          add keyword for smart indention   (STRING)
             OUT/K         add keyword for smart outdention  (STRING)
             CONFIG/K      load smart indention keyword list (STRING)
             CLR/S         clear smart indention keyword list

@endnode
@node INFO "INFO"
INFO 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  INFO       VERSION/S     show version
             USER/S        show copyright requester
             TEXT/S        show statistics
             ERROR/S       show last error

@endnode
@node INSERT "INSERT"
INSERT 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  INSERT     LINE/S        insert a line
             BLOCK/S       insert into block (see the following options)
             COLUMN/S      BLOCK/S: insert empty column; see AT/N
             STRING/K      BLOCK/S: insert text; see AT/N (STRING)
             AT/N          BLOCK/S: column where to insert (UWORD)
             APPEND/S      BLOCK/S: append text to marked lines

@endnode
@node KEY "KEY"
KEY 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  KEY        CODE/N        key code to simulate
             RAW/S         make it a rawkey event
             ALT/S         set qualifier ALT
             CTRL/S        set qualifier CONTROL
             SHIFT/S       set qualifier SHIFT

@endnode
@node LAYOUT "LAYOUT"
LAYOUT 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  LAYOUT     LEFT/N        set left  margin for formatting (UWORD)
             RIGHT/N       set right margin for formatting (UWORD)
             WRAP/K        set WordWrap (BOOL)
             ASK/S         open requester to set layout
             CONFIG/K      read layout settings file (STRING)
             AUTO/K        use current indention as left border (BOOL)
             REFORMAT/K    reformat during WordWrap ? (BOOL)

@endnode
@node LEFT "LEFT"
LEFT 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  LEFT       (no options)  move cursor one position to the left


@endnode
@node LINES "LINES"
LINES 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  LINES      JOIN/S        join current line & next line
             SWAP/S        swap current line <-> next line
             DOUBLE/S      double current line


@endnode
@node LOCK "LOCK"
LOCK 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  LOCK       CURRENT/S     lock current window
             NAME/K        window to lock (STRING)
             QUIET/S       don't activate window

             Comment:  To  be  used  within  ARexx  macros only. An @{" UNLOCK " link UNLOCK}
             command  *must* follow later on to prevent a deadlock situation
             (take  care  for  a  clean  exit  even  after  errors using the
             SIGNAL/OPTION  FAILAT  commands  of  ARexx).  Exit  your script
             immediately  if the LOCK call fails (error code RC is 20). This
             call  doesn't  nest:  a  single  @{" UNLOCK " link UNLOCK} unlocks any number of
             locks.

@endnode
@node MACRO "MACRO"
MACRO 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  MACRO      RECORD/S      toggle sequence recording mode
             PLAY/S        play previsouly recorded sequence
             LOOPS/N       number of playback loops (UWORD); defaults to 1
             ASK/S         ask for number of loops
             FILE/K        sequence file to load/write (STRING)
             SAVE/S        save previously recorded sequence
             LOAD/S        load a sequence

@endnode
@node MARK "MARK"
MARK 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  MARK       HIDE/S        hide mark
             SET/S         set mark

@endnode
@node MAXDOWN "MAXDOWN"
MAXDOWN 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  MAXDOWN    (no options)  move to next quarter of document


@endnode
@node MAXUP "MAXUP"
MAXUP 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  MAXUP      (no options)  move to previous quarter of document


@endnode
@node MENUS "MENUS"
MENUS 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  MENUS      (no options)  open menu requester


@endnode
@node MISC "MISC"
MISC 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  MISC       ASK/S         open misc preferences requester
             AUTOBAK/K     set AutoBak mode (BOOL)
             PERIOD/N      set backup interval (UWORD); units are minutes.
             CONFIRM/K     set confirm-backup mode (BOOL)
             PATH/K        set backup path (STRING)
             INFOS/K       set creation of info files (BOOL)
             AUTOLOAD/K    set AutoLoad mode (BOOL)
             AUTOFOLD/K    set AutoFold mode (BOOL)
             CENTERWIN/K   set AutoCenter mode (BOOL)
             FOLDSTART/K   set fold-start marker (STRING)
             FOLDEND/K     set fold-end marker (STRING)
             BACKUP/K      set backup creation (BOOL)


@endnode
@node MODE "MODE"
MODE 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  MODE       INSERT/K      set insert/overwrite mode (BOOL)
             AUTOCASE/K    set AutoCase mode (BOOL)
             AUTOBRACKET/K set automatic parenthesis check (BOOL)

@endnode
@node MORE "MORE"
MORE 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  MORE       (no options)  open further window
             SMART/S       open window if current window is not empty

@endnode
@node NAME "NAME"
NAME 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  NAME       ASK/S         ask for a new text name
             NEW/F         set new text name (STRING)

@endnode
@node NEW "NEW"
NEW 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  NEW        (no option)   clear text; user is asked for confirmation
             FORCE/S       clear text at any rate
             NONAME/S      reset name to 'unnamed'

@endnode
@node NEXT "NEXT"
NEXT 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  NEXT       (no options)  move cursor to next word within current line


@endnode
@node OPEN "OPEN"
OPEN 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  OPEN       NAME/M        file(s) to open (STRING or STRINGS)
             FAST/S        use fast loading (no TAB substitution)
             NEW/S         open new window for each file
             AGAIN/S       reload current file
             APPEND/S      append file(s) to current text
             INSERT/S      insert file(s) into current text
             ASK/S         ask for file(s)
             QUIET/S       don't complain about missing files
             PATH/K        default path to be used by file requester (STRING)
             OLDPATH/S     use path of current text as default path
             SMART/S       use current window unless window is not empty

             Comment: returns window handle in ARexx mode. The window handle
             may be used to activate a window later on (see @{" window " link WINDOW}).

@endnode
@node PATH "PATH"
PATH 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  PATH       (no options)  open requester to set reference file(s)


@endnode
@node PHRASE "PHRASE"
PHRASE 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  PHRASE     CURRENT/S     try to complete current word
             ASK/S         open dictionary requester
             CONFIG/K      load dictionary (STRING)
             ADD/K         add keyword to dictionary (STRING)
             CLR/S         clear dictionary

@endnode
@node PING "PING"
PING 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  PING       SLOT/N        write cursor position to named slot

             Comment:  GoldED  offers  ten slots ('bookmarks', 0-9) for each
             window to be recalled by @{" PONG " link PONG}. Slot 0 usually is reserved for
             use within ARexx scripts.

@endnode
@node PONG "PONG"
PONG 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  PONG       SLOT/A/N      recall one of 10 bookmark positions (UWORD 0-9)

             Comment:  GoldED  offers  ten  bookmarks (0-9) for each window.
             Slot  0  usally  is  reserved for use within ARexx scripts (see
             @{" PING " link PING}).

@endnode
@node POP "POP"
POP 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  POP        (no options)  move line from text to pick/push buffer

             Comment:  the  pick/push  buffer  can  hold  up  to  50 entries
             (lines). It is a last-in-first-out buffer.

@endnode
@node PREFS "PREFS"
PREFS 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  PREFS      FILE/K        preferences file to load/save (STRING)
             LOAD/S        mode: load from file
             SAVE/S        mode: save to file

@endnode
@node PREV "PREV"
PREV 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  PREV       (no options)  move cursor to previous word


@endnode
@node PREVEND "PREVEND"
PREVEND 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  PREVEND    (no options)  move cursor to end of previous word


@endnode
@node PRINT "PRINT"
PRINT 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  PRINT      FORCE/S       don't ask for confirmation
             BLOCK/S       print block
             ALL/S         print complete file
             LPI/N         set lines per inch (UWORD): 0=6 lpi, 1=8 lpi
             LQ/K          set letter quality (BOOL)
             ITALICS/K     set italics printing (BOOL)
             PROP/K        set proportional mode (BOOL)
             DOUBLE/K      set double width mode (BOOL)
             RESET/K       reset printer before output (BOOL)
             CONFIG/K      printer configuration file to load (STRING)
             ASK/S         open printer configuration requester

@endnode
@node PROJECT "PROJECT"
PROJECT 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  PROJECT    ASK/S         open project requester
             ADD/K         add source file         (STRING)
             CONFIG/K      load project definition (STRING)
             DEL/N         remove a source file    (UWORD: 0, ...)
             CLR/S         clear list of source files
             LIST/N        set list (struct List *)

@endnode
@node PUSH "PUSH"
PUSH 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  PUSH       (no options)  insert last line of pick/push buffer into text


@endnode
@node QUERY "QUERY"
QUERY 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  QUERY      NAME/M        variable(s) you are interested in (STRING)
             VAR/K         ARexx variable; where to put the result (STRING).

             Comment:  Used  to  query  the state of one or more of GoldED's
             internal  variables.  This  function may be used in interactive
             mode, too (see @{" misc/command " link M5.22}). In interactive mode a requester
             is  used  to  display  the result - e.g. 'LINES=123'. If evoked
             from  a script file (after a @{" LOCK " link LOCK} command), the variable name
             will not be part of the result. In interactive mode it will. In
             ARexx mode you may specify the name of an ARexx variable to put
             the  result into (defaults to RESULT). The variable name has to
             be  uppercase.  It is possible to combine several options (e.g.
             QUERY  DIR  DOC); the results will be seperated by spaces, too.
             Valid variable names are:

             ABAK.......... AutoBackups enabled ? (BOOL)
             ABSLINE....... current absolute line number (ULONG)
             ABSLINES...... absolute number of lines (ULONG)
             ACENTER....... AutoCenter mode (BOOL)
             AFOLD......... AutoFold mode (BOOL)
             ALOAD......... AutoLoad mode (BOOL)
             ANSI.......... number of non-ASCII characters (*)
             ANYCHAR ...... current line not empty ? (BOOL)
             ANYFOLDS...... does text contain folds ? (BOOL)
             ANYTEXT....... any text in current window ? (BOOL)
             ASKBAK........ ask for backups ? (BOOL)
             BACKUP........ create backups ? (BOOL)
             BAKDIR........ backup path (STRING)
             BFIRST........ number of block's 1st line (ULONG). See: MARKED
             BITS.......... default protection bits (ULONG)
             BLAST......... number of block's last line (ULONG). See: MARKED
             BOLD.......... bold mode used for printing (BOOL)
             BRACKET....... automatic parenthesis check ? (BOOL)
             BUFFER ....... current line (STRING)
             BYTES......... text size (number of bytes) (ULONG) (*)
             CAT........... catalog name/language (STRING)
             CHKCASE....... automatic case check ? (BOOL)
             CODE.......... ASCII code of character under cursor (UBYTE)
             COLUMN........ current column (UWORD: 1, ...)
             COLUMNS....... window width (UWORD)
             CON........... window dimension string (STRING)
             CURRENT....... pointer to memory area of current line (char *)
             DIR........... path used by file requester (STRING)
             DOC........... window title = file name (STRING)
             DOUBLE........ use doublestrike printing ? (BOOL)
             DTABS......... use distinctive TABs ? (BOOL)
             ERR........... last error (STRING)
             FILE.......... name of current text without path (STRING)
             FIND.......... search pattern (STRING)
             FOLDA......... fold start marker (STRING)
             FOLDB......... fold end marker (STRING)
             FOLDS......... number of folds in text (ULONG) (*)
             FONTX......... width of text font (UWORD)
             FONTY......... height of text font (UWORD)
             FUNC.......... mode of QuickFunc list (UWORD: 0, ...)
             HANDLE........ window handle of current window (ULONG)
             HMI........... horizontal motion index/printer (UWORD)
             HOST.......... name of ARexx port (STRING)
             INDENT........ AutoIndention ? (BOOL)
             INFOS......... create *.info files ? (BOOL)
             INSERT........ insert mode used ? (BOOL)
             ITALICS....... italics printing ? (BOOL)
             LEFT.......... layout: left margin (UWORD)
             LEN........... length of current line
             LINE.......... number of current line; not absolute (ULONG)
             LINES......... number of lines; not absolute (ULONG)
             LPI........... lines per inch (UWORD: 0 = 6lpi, 1 = 8lpi)
             LQ...........  letter quality printing ? (BOOL)
             MARKED........ any block marked ? (BOOL)
             MAXLEN........ lenght of longest line (UWORD) (*)
             MODIFY........ has text been modified ? (BOOL)
             PATH.......... path of current text (STRING)
             PICKED........ number of lines in pick/push buffer (UWORD)
             PROG.......... program's name - usually GoldED (STRING)
             PRJLIST ...... list of project files (struct List *)
             READONLY...... is window read-only ? (BOOL)
             REM........... (file-)comment of current text (STRING)
             REMAP......... character translation file (STRING)
             RESET......... reset printer before output ? (BOOL)
             RIGHT......... layout: right margin (UWORD)
             ROWS.......... window height (UWORD)
             RPLC.......... replace text (STRING)
             SCREEN........ screen name (STRING)
             SCRMODE....... screen mode ID (ULONG)
             SCRTYPE....... screen type: public/custom (UWORD)
             SHANGHAI...... shanghai mode set ? (BOOL)
             SINDENT....... smart indention enabled ? (BOOL)
             SOLID......... solid TABs ? (BOOL)
             STDLINE....... is current line a 'normal' line ? (BOOL)
             TAB........... TAB distance keyboard (UWORD)
             TABFILE....... TAB distance for TAB substitution (UWORD)
             TIMER......... backup interval - minutes (UWORD)
             TOPLINE....... line number of window's first line (ULONG)
             UNFOLD........ unfold during GOTO ? (BOOL)
             USECASE....... case sensitive search/replace ? (BOOL)
             VER........... version string (STRING)
             WINDOWS....... number of open text windows (UWORD)
             WINH.......... window height (UWORD)
             WINW.......... window width (UWORD)
             WORDS......... number of words (ULONG) (*)
             WORD.......... current word (STRING)
             WRAP.......... word wrap mode used ? (BOOL)
             X............. window's left edge (UWORD)
             XPK........... XPK compression mode (STRING)
             Y............. window's top edge (UWORD)

             (*): These variables are valid after an @{" EXAll " link EXALL} command only.


@endnode
@node QUIT "QUIT"
QUIT 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  QUIT       (no option)   close current window (ask for confirmation)
             FORCE/S       close current window at any rate
             UNLOAD/S      close window, unload editor (see @{" HotKey " link M0.24})

@endnode
@node REFRESH "REFRESH"
REFRESH 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  REFRESH    PAGE/S        redraw current text
             LINE/S        redraw current line

@endnode
@node REMAP "REMAP"
REMAP 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  REMAP      TABLE/K       remap text; use this translation file (STRING)
             ASK/S         open remap requester

@endnode
@node REPLACE "REPLACE"
REPLACE 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  REPLACE    STRING/K      pattern to look for (STRING)
             BY/K          replacement for pattern (STRING)
             PREV/S        replace previous occurance of pattern   (*)
             NEXT/S        replace next occurance of pattern only  (*)
             ALL/S         replace all occuranies of pattern       (*)
             BLOCK/S       replace pattern within marked lines     (*)
             ASK/S         open find/replace requester
             CASE/K        set case sensitive mode (BOOL)
             QUIET/S       don't complain about missing pattern ('not found')

             (*) only one of these options may be specified.


@endnode
@node REQUEST "REQUEST"
REQUEST 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  REQUEST    HIDE/K        turn requesters off
             DEFAULT/K     set default if requesters are off (UWORD)
             BODY/K        body text, lines separated by '|' (STRING)
             BUTTON/K      text for button(s), separated by '|' (STRING)
             TITLE/K       requester title (STRING)
             LONG/S        ask for a number
             MIN/N         set lower limit for input of number (WORD)
             MAX/N         set upper limit for input of number (WORD)
             OLD/K         default value (STRING)
             FILE/S        ask for a file
             PATH/K        default path if asking for a file (STRING)
             VAR/K         ARexx variable; where to put the result (STRING)
             STRING/S      ask for a string
             STATUS/K      text to display in status line (STRING)
             KEY/S         ask for key (returns code and qualifier)

             Comment:  Don't  use  the  hide option outside of ARexx macros.
             Turn  requesters  on  again  at  the end of your macro. Turning
             requesters  off  is useful to suppress requesters like 'pattern
             not  found'  (wich would annoy the user); the return code RC is
             checked  instead  to  determine  wether a command has completed
             successfully.

@endnode
@node RIGHT "RIGHT"
RIGHT 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  RIGHT      (no options)  move cursor one position to the right


@endnode
@node RX "RX"
RX 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  RX         CMD/K         command to be send (STRING)
             ASK/S         ask for command
             PORT/K        reciever; defaults to "AREXX" (STRING)
             MACRO/K       macro to execute if PORT is not valid (STRING)

             Comment:  The  macro is called with the command string as first
             argument.  Basically  same  usage as the AmigaDos command RX if
             you  set the port to AREXX: Use single quotations marks to have
             the command string evaluated by the Arexx server (e.g. rx 'info
             user'). Use double quotation marks or no quotation marks at all
             to    make    the    server   execute   a   script   (e.g.   rx
             golded:arexx/empty.ged).


@endnode
@node SAVE "SAVE"
SAVE 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  SAVE       BLOCK/S       save block only
             ALL/S         save complete file
             NAME/K        set file name to be used for saving (STRING)
             ASK/S         open save-as requester
             EXIT/S        close window if save operation is succesful
             CRUNCH/S      compress file (XPK) while saving it
             XPKMODE/K     XPK compression mode (STRING, e.g. IMPL)

@endnode
@node SCREEN "SCREEN"
SCREEN 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  SCREEN     ASK/S         open display mode requester
             USE/K         name of public screen to use (STRING)
             FILE/K        settings file name (STRING)
             LOAD/S        load settings file (see FILE/K)             
             SAVE/S        save settings to file (see FILE/K)
             ICONIFY/K     (un)iconify (BOOL)
             FRONT/S       move GoldED's screen to the front
             BACK/S        move GoldED's screen to the back
             CLOSE/S       close screen (wait for @{" HotKey " link M0.24} activation)
             NOSIZE/K      no fixed screen dimensions ? (BOOL)

@endnode
@node SHIFT "SHIFT"
SHIFT 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  SHIFT      COLUMNS/N     number of columns to shift (UWORD)
             TAB/S         set shifting distance to TAB size
             ASK/S         open requester (left/right shifting)
             LEFT/S        shift to the left
             RIGHT/S       shift to the right (indent)

@endnode
@node SMARTCR "SMARTCR"
SMARTCR 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  SMARTCR    (no options)  'smart' return (no splitting of line)


@endnode
@node TAB "TAB"
TAB 

  command    option        description
  --------------------------------------------------------------------------
  TAB        BACK/S        perform a backtab (else a normal tab)
             SOLID/K       make it a solid TAB (BOOL)
             FIXED/S       make it a distinctive TAB
             DYNAMIC/S     make it a dynamic TAB (see @{" dynamic TABs " link TAB_KEY})
             REGULAR/S     make it a regular (standard) TAB

             Comment: options of this command may be used to change TAB mode
             temporarily. They do not affect global TAB settings (use @{" TABS " link TABS}
             instead).

@endnode
@node TABS "TABS"
TABS 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  TABS       FIXED/S       set TAB mode to distinctive TAB's
             REGULAR/S     set TAB mode to regular TAB's
             DYNAMIC/S     set TAB mode to dynamic TAB's
             FILE/N        number of SPC's used for TAB substitution (UWORD)
             KEY/N         TAB distance on screen (UWORD)
             ASK/S         open TAB preferences requester
             SET/N         add distinctive TAB position (UWORD)
             CLR/S         clear all distinctive TAB positions
             SOLID/K       make TABs solid (BOOL)

@endnode
@node TASK "TASK"
TASK 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  TASK       PRI/N         set task priority of GoldED (WORD, -3 to 3)
             DEBUG/K       set debug mode (BOOL)

             Comment:  in  debug mode recieved ARexx commands are printed to
             standard output.

@endnode
@node TEXT "TEXT"
TEXT 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  TEXT       T/K           text to be inserted at cursor position (STRING)
             STAY/S        don't move cursor while inserting text
             CR/S          append linefeed to text

             Comment:  Use  may  use  *"  with  the  text  string  to insert
             quotation  marks  (single  quotation  marks  are  considered as
             string delimiters). Example usage:

             TEXT T="He said *"Bye !*" and left the room."


@endnode
@node UJUMP "UJUMP"
UJUMP 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  UJUMP      (no options)  jump to beginning of screen / previous page

             Comment:  Cursor  jumps to first line of screen if placed below
             that  line so far. Jumps to previous page if placed in line one
             already. Compare: @{" UPAGE " link UPAGE}.

@endnode
@node UNDO "UNDO"
UNDO 

  Desc
ription of @{" internal commands " link INTERNAL_COMMANDS}

  comma
nd    option   
     description
  --------------------------------------------------------------------------
  UNDO       (no options)  undo line (restore previous contents)


@endnode
@node UNLOCK "UNLOCK"
UNLOCK 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  UNLOCK     (no option)   unlock GUI after a previously call to @{" LOCK " link LOCK}
             DELAY/S       unlock GUI, delay until exit of GoldED
             STICKY/S      unlock GUI, delay until current window is closed

             Comment:  The  DELAY/STICKY  options  are  reserved  for use by
             external   applications  (e.g.  the  @{" QuickStarter " link GETTING_STARTED}  ED).  They
             provide ways and means to synchronize with GoldED.

@endnode
@node UP "UP"
UP 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  UP         (no options)  move cursor one line up


@endnode
@node UPAGE "UPAGE"
UPAGE 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  UPAGE      (no options)  move to previous page (compare @{" UJUMP " link UJUMP})


@endnode
@node USE "USE"
USE 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  USE        (no options)  accept current line

             Comment:  To  be  used  within  ARexx macros only. After having
             written  directly to the memory area of the current line (which
             is  *dangerous*)  you have to call this function to make GoldED
             accept  your  changes. Use QUERY CURRENT (see @{" QUERY " link QUERY}) to get a
             pointer  to  the  current  line's buffer. It is not possible to
             change  the  lenght of the current line by poking into the line
             buffer.

@endnode
@node VIEW "VIEW"
VIEW 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  VIEW       LEFT/S        shift view left
             RIGHT/S       shift view right
             COLUMNS/N     number of columns to shift (UWORD)

@endnode
@node WINDOW "WINDOW"
WINDOW 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  WINDOW     MAX/S         blow up current window
             CENTER/S      center current window on screen
             ARRANGE/N     arrange windows (0: vertical, 1: horizontal)
             ZIP/S         zip window
             USE/K         activate named window/file   (STRING)
             FORCE/S       load named file if necessary (see USE/K)
             WIDTH/N       resize window width     (UWORD)
             HEIGHT/N      resize window height    (UWORD)
             X/N           set window's x position (UWORD)
             Y/N           set window's y position (UWORD)
             NEXT/S        activate next window
             RECOVER/S     redraw window
             HANDLE/N      activate window using its handle (ULONG)
             ORDINAL/N     activate 1st , 2nd, ... window (ULONG: 0, ...)

             Comment:  A  window  handle is returned by the @{" OPEN " link OPEN} function.
             You   may   query   the   current  window's  handle,  too  (see
             @{" QUERY " link QUERY}/handle).

@endnode
@node XREF "XREF"
XREF 

  Description of @{" internal commands " link INTERNAL_COMMANDS}

  command    option        description
  --------------------------------------------------------------------------
  XREF       CURRENT/S     open help text related to current word
             PHRASE/K      open help text related to this phrase (STRING)
             ASK/S         ask for topic


@endnode
@node GENERAL_HINTS "GENERAL HINTS"
                                GENERAL HINTS 

Never  change  display mode if you are short of memory - the editor might not
be able to reopen screen/windows.

Turn  AutoFold  (see @{" config/misc " link M7.15}) OFF if you do not need folding. This will
speed  up  loading  since  the  editor  won't have to examine each line after
loading a text from disk (looking for fold markers).

Use  the  same  marker  strings  for  beginning/end  of  folded sections (see
@{" config/misc " link M7.15})  to  increase  the  speed of folding: the editor won't have to
look for two different strings. However, using the same strings doesn't allow
nested folding.

The  backup path should point to the same device as your main text directory,
otherwise  backup  generation  is  slowed down because file copies have to be
used instead of a fast DOS rename (which is not available accross devices).

Don't  use soft/hardlinks with text files. If a file is renamed by the editor
(happens during backup creation) the link doesn't change, i.e. it would point
to the backup instead of the new file.

Do  not use fast loading if you are short of RAM or for huge files since fast
loading  requires  a  huge  buffer  of  exactly  the  original  file's  size.
Attempting to load a 400 KB file would allocate a 400 KB IO buffer as well as
about  450  KB  to  store  the  text  (however  the 400 KB IO buffer is freed
immediately  after  loading). Slow loading is much more efficient in terms of
memory consumption: a 16K buffer is required, no matter how large a file is.

The  editor  itself  is  not  able  to  read the position of the 'sleep' icon
(reading an AppIcon's position is not supported by the OS), so it is not able
to  remember  the icon's position after you have moved it. Nevertheless it is
possible     to     snapshot     the    preferred    position:    Open    the
'prefs/env-archive/GoldED'  directory.  Move  the  'AppIcon' icon from within
that   directory  to  desired  location,  than  snapshot  it  (icon  menu  of
workbench).  Finally  move  the icon back to its drawer. The editor will read
the new position the next time it is evoked.

The  Amiga  OS  supports  font/library  caching: Fonts or libraries opened by
GoldED  usually  are  not removed from memory when GoldED is closed - instead
they  are  marked  as  'unused'.  The OS is able to flush these ressources if
required  (in low memory situations), so the memory occupied by libs/fonts is
not lost (you may verify this by using the 'avail flush' command).

In  spite  of  the  fact  that GoldED keeps its default configuration file in
'envarc:GoldED'  -  do  not use this directory to store further configuration
files:  A  copy  of envarc is written to RAM: during startup; you would waste
memory. 'GoldED:' or even 's:' are more approbiate locations.


@endnode
@node CREDITS "CREDITS"
                                   CREDITS 

  *  DICE  *   Reqtools   *   XPK   *   ARexxBox  *  GadToolsBox  *

This  program  has  been  developed  using  Matt  Dillon's  Dice  C  compiler
(v2.07.54R).  Most  of  the  requester design has been done using Jan van den
Baard's  'GadToolsBox'.  Thanx  to  Nico Franois for his 'reqtools.library'.
Further  credits  got to the developers of 'xpk.library' - who created a fine
(de)compression  standard.  The ARexx routines of GoldED are somewhat related
to   source   code   created   by  Michael  Balzer's  ARexxBox  (though  less
sophisticated).  Thanks  to  Joerg Gutzke & Dario Fava for running Mowgli BBS
respectively  Mailway  BBS (where I got most of the stuff above). GUIMake has
been  developed  by  Rico  Krasowski.  Included  with  kind permission of the
author.


@endnode
@node HOW_TO_REGISTER "HOW TO REGISTER"
                               HOW TO REGISTER 

If  you are currently using the unregistered version (saving/printing limited
to  1000 lines) you may want to register. The registered GoldED consists of a
mailing  of  one or more disks. Please allow up to 8 weeks for delivery. This
is  the  worst  case.  Average  is  one week. To register for GoldED, send an
EURO(!)check  to me (see @{" How to contact author " link HOW_TO_CONTACT_AUTHOR}). Cash is fine, too (Europe:
must  be  DM,  outside Europe: must be US-$). I can not accept other kinds of
payments  than  eurochecks  or  cash.  Please type your letter. The following
packages are available (offers valid until end of February 1994):

GoldED Light (20 DM Europe, 20$ outside Europe)

Mailing consists of one or two disks. Includes single user licence for GoldED
(except  HiSpeed).  The  latest  versions  of  registered  GoldED  as well as
standard documentation (disk based) is shipped.

GoldED Pro (30 DM Germany, 35 DM Europe, 30$ outside Europe)

Mailing  consists  of  two  disks  and a printed manual. Includes single user
licence  for  the  latest  versions  of GoldED & HiSpeed. Printed manuals are
available in English (default) and (on request) German.

In  generally  FD  support tools and libraries are not part of the registered
distribution (even if they come along with the unregistered one) unless I get
permission  from  the  authors.  I  do  provide  disk(s)/postage  (covered by
slightly higher prices when ordering from outside of Germany/Europe). Special
conditions  are  available  if  you order more than one copy. Don't forget to
provide a user name/address for each of them (required for registration):

                  2 packages .................... -20% each
                  more (just joking :-) ......... -30% each


@endnode
@node HOW_TO_GET_UPDATES "HOW TO GET UPDATES"
                              HOW TO GET UPDATES 

The  only  (I  repeat:  only)  way  to  recieve updates, wether registered or
unregistered,  is  to  call your local BBS and look out for the latest GoldED
copy.  Registered  users  may  use  the  unlock  utility to turn unregistered
versions into registered ones. Don't send me disks unless you want to get rid
of  them.  My  uploads usually go to Mowgli BBS (Aachen, Germany) and Mailway
BBS (Aachen, Germany):

MAILWAY BBS

GoldED  placed within "Infos" area (free download). V22, V22bis, V32, V32bis,
V42, V42bis, MNP, 3 * ZyXel 16.8K. Online: 0.00 -24.00. Z-Net, lines:

port 1: 49-(0)2405-74863
port 2: 49-(0)2405-73088

MOWGLI BBS

FidoNet  2:242/7,  phone:  49-(0)241-40 59 49 (V22, V22bis, V32, V32bis, V42,
V42bis,  HST,  MNP).  Online:  0.00 - 24.00. You may use the magic GoldED for
frequesting the GoldED package (about 600K, e.g. 'GED096.lha').


@endnode
@node HOW_TO_CONTACT_AUTHOR "HOW TO CONTACT AUTHOR"
                            HOW TO CONTACT AUTHOR 

Feel  free  to e-mail me bug reports, comments or suggestions. Current e-mail
address  is  DIETMAR@MAILWAY.ZER  (German  Z-Net). FidoNet users may write to
Mowgli  2:242/7,  too (but since I don't run a Fido point, I WON'T BE ABLE TO
ANSWER). Do not send normal letters unless you want to register - at least do
not  expect  me  to answer. You definitely won't get an answer if you fail to
provide  a  self-addressed envelope, postage paid. In generally you can reach
me  by  writing  to  one  of the addresses below. These addresses are **not**
valid for requesting GoldED updates (see: @{" How to get updates " link HOW_TO_GET_UPDATES}).

Dietmar Eilert
Mies-v-d-Rohe-Str. 31
52074 Aachen (Germany)
Phone: 0241/81665

DIETMAR@MAILWAY.ZER (Z-Net)
DIETMAR@MAILWAY.ZER.SUB.ORG (Gateway to Z-Net)

My second address:

Dietmar Eilert
Kampstrasse 28
59269 Beckum (Germany)
Phone: 02525/7776

Better give me a ring to find out which one is valid when you read this text.
If you decide for the wrong one your letter is delayed for about one month.
@endnode
@node APPENDIX " GoldED "
@{"???                      "link APPENDIX} @{"FIND MENU                "link FIND_MENU} @{"MISC MENU                "link MISC_MENU} 
@{"APC                      "link M3.14} @{"FIND/ASCII INSERT        "link M3.17} @{"MISC/CALCULATOR          "link M5.16} 
@{"APPICON                  "link M4.23} @{"FIND/ASCII TABLE         "link M3.16} @{"MISC/COMMAND             "link M5.22} 
@{"APPWINDOWS               "link M0.6} @{"FIND/CHARACTER SET       "link M3.19} @{"MISC/DOUBLE LINE         "link M5.9} 
@{"AREXX PORT               "link AREXX_PORT} @{"FIND/CHECK               "link M3.9} @{"MISC/FILES               "link M5.15} 
@{"AREXXBOX                 "link CREDITS} @{"FIND/COMPLETE            "link M3.14} @{"MISC/FILTER              "link M5.3} 
@{"ARGUMENTS                "link GETTING_STARTED} @{"FIND/COUNT               "link M3.7} @{"MISC/HELP                "link M5.0} 
@{"AUTOBACKUP               "link M7.15} @{"FIND/FIND                "link M3.0} @{"MISC/HISPEED             "link M5.17} 
@{"AUTOCASE                 "link M7.6} @{"FIND/FIND NEXT           "link M3.1} @{"MISC/INSERT DATE         "link M5.19} 
@{"AUTOCENTER               "link M7.15} @{"FIND/FIND PREVIOUS       "link M3.2} @{"MISC/INSERT TIME         "link M5.20} 
@{"AUTOFOLD                 "link M7.15} @{"FIND/FUNCTIONS           "link M3.24} @{"MISC/LAST ERROR          "link M5.23} 
@{"AUTOINDENTION            "link M7.7} @{"FIND/INSERT CODE         "link M3.21} @{"MISC/NEW SHELL           "link M5.14} 
@{"AUTOLOAD                 "link M7.15} @{"FIND/MATCHING BRACKET    "link M3.10} @{"MISC/PICK LINE           "link M5.6} 
@{"BACK                     "link BACK} @{"FIND/REFERENCE           "link M3.12} @{"MISC/PROJECT SETUP       "link M5.2} 
@{"BIND                     "link BIND} @{"FIND/REFERENCE...        "link M3.13} @{"MISC/PUSH LINE           "link M5.7} 
@{"BITS                     "link BITS} @{"FIND/REPLACE             "link M3.4} @{"MISC/SEARCH FILE         "link M5.4} 
@{"BLOCK                    "link BLOCK} @{"FIND/REPLACE NEXT        "link M3.5} @{"MISC/STATISTICS          "link M5.12} 
@{"BLOCK MENU               "link BLOCK_MENU} @{"FIND/SHOW CODE           "link M3.18} @{"MISC/SWAP LINES          "link M5.8} 
@{"BLOCK/APPEND TEXT        "link M1.13} @{"FIND/TOGGLE CASE         "link M3.22} @{"MISC/UNDO LINE           "link M5.10} 
@{"BLOCK/BCOPY              "link M1.7} @{"FIRST                    "link FIRST} @{"MODE                     "link MODE} 
@{"BLOCK/BDELETE            "link M1.8} @{"FOLD                     "link FOLD} @{"MORE                     "link MORE} 
@{"BLOCK/BMOVE              "link M1.9} @{"FOLDING                  "link M4.7} @{"MULTIPLE COMMANDS        "link EVENT_DEFINITION} 
@{"BLOCK/COLUMN TEXT        "link M1.14} @{"FONT                     "link M7.9} @{"MULTISELECT              "link M0.6} 
@{"BLOCK/COPY               "link M1.4} @{"FORMAT                   "link FORMAT} @{"NAME                     "link NAME} 
@{"BLOCK/CUT                "link M1.3} @{"FORMATTER                "link LAYOUT_MENU} @{"NEW                      "link NEW} 
@{"BLOCK/DELETE COLUMN      "link M1.11} @{"FREEZE                   "link FREEZE} @{"NEXT                     "link NEXT} 
@{"BLOCK/HIDE MARK          "link M1.1} @{"FUNC                     "link FUNC} @{"OPEN                     "link OPEN} 
@{"BLOCK/INDENT             "link M1.16} @{"FUP                      "link FUP} @{"PARAGRAPHE VS. BLOCK     "link LAYOUT_MENU} 
@{"BLOCK/INSERT COLUMN      "link M1.12} @{"GADTOOLSBOX              "link CREDITS} @{"PARENTHESIS CHECK        "link M7.6} 
@{"BLOCK/LOWERCASE          "link M1.20} @{"GENERAL HINTS            "link GENERAL_HINTS} @{"PATH                     "link PATH} 
@{"BLOCK/MARK               "link M1.0} @{"GETTING STARTED          "link GETTING_STARTED} @{"PHRASE                   "link PHRASE} 
@{"BLOCK/PASTE              "link M1.5} @{"GLOBAL SEARCH            "link M5.3} @{"PING                     "link PING} 
@{"BLOCK/PRINT              "link M1.23} @{"GOTO                     "link GOTO} @{"PONG                     "link PONG} 
@{"BLOCK/SAVE AS            "link M1.22} @{"GREP                     "link GREP} @{"POP                      "link POP} 
@{"BLOCK/SORT               "link M1.17} @{"GUI                      "link GETTING_STARTED} @{"PREFS                    "link PREFS} 
@{"BLOCK/UPPERCASE          "link M1.19} @{"GUIMAKE                  "link M6.14} @{"PREV                     "link PREV} 
@{"BRACKET                  "link BRACKET} @{"HELP                     "link HELP} @{"PREVEND                  "link PREVEND} 
@{"CHARACTER SET REMAP      "link M3.19} @{"HELP KEY                 "link HELP_KEY} @{"PRINT                    "link PRINT} 
@{"CLIP                     "link CLIP} @{"HOTKEY                   "link M0.24} @{"PROJECT                  "link PROJECT} 
@{"CLIPBOARD                "link M1.5} @{"HOW TO CONTACT AUTHOR    "link HOW_TO_CONTACT_AUTHOR} @{"PROJECT MENU             "link PROJECT_MENU} 
@{"CMD                      "link CMD} @{"HOW TO FOLD LINES        "link M4.7} @{"PROJECT/ABOUT            "link M0.0} 
@{"CODE                     "link CODE} @{"HOW TO GET UPDATES       "link HOW_TO_GET_UPDATES} @{"PROJECT/APPEND           "link M0.11} 
@{"COLON                    "link COLON} @{"HOW TO REGISTER          "link HOW_TO_REGISTER} @{"PROJECT/BITS             "link M0.21} 
@{"COMMAND LIST             "link COMMAND_LIST} @{"HUNTER                   "link HUNTER} @{"PROJECT/CLEAR TEXT       "link M0.3} 
@{"CONFIG                   "link CONFIG} @{"INDENT                   "link INDENT} @{"PROJECT/CURRENT DIR      "link M0.14} 
@{"CONFIG MENU              "link CONFIG_MENU} @{"INFO                     "link INFO} @{"PROJECT/INSERT           "link M0.10} 
@{"CONFIG/CALENDER-TIME     "link M7.16} @{"INSERT                   "link INSERT} @{"PROJECT/LOAD             "link M0.6} 
@{"CONFIG/DICTIONARY        "link M7.6} @{"INSERTION OF COLUMNS     "link M1.12} @{"PROJECT/LOAD FAST        "link M0.7} 
@{"CONFIG/DISPLAY           "link M7.9} @{"INTERNAL COMMANDS        "link INTERNAL_COMMANDS} @{"PROJECT/LOAD NEW         "link M0.8} 
@{"CONFIG/FILE HUNTER       "link M7.4} @{"INTRODUCTION             "link INTRODUCTION} @{"PROJECT/LOAD ORIGINAL    "link M0.9} 
@{"CONFIG/INDENTION         "link M7.7} @{"KEY                      "link KEY} @{"PROJECT/MORE ED          "link M0.4} 
@{"CONFIG/KEYBOARD BINDINGS "link M7.0} @{"KEYBOARD                 "link KEYBOARD} @{"PROJECT/NEW NAME         "link M0.13} 
@{"CONFIG/LAYOUT            "link M7.12} @{"LANGUAGE                 "link GETTING_STARTED} @{"PROJECT/PRINT            "link M0.22} 
@{"CONFIG/LOAD              "link M7.19} @{"LAYOUT                   "link LAYOUT} @{"PROJECT/QUIT             "link M0.24} 
@{"CONFIG/MENUS             "link M7.10} @{"LAYOUT MENU              "link LAYOUT_MENU} @{"PROJECT/SAVE             "link M0.16} 
@{"CONFIG/MISC              "link M7.15} @{"LAYOUT/BLOCK CENTER      "link M2.7} @{"PROJECT/SAVE & EXIT      "link M0.19} 
@{"CONFIG/PRINTER           "link M7.14} @{"LAYOUT/BLOCK LEFT        "link M2.5} @{"PROJECT/SAVE AS          "link M0.17} 
@{"CONFIG/REFERENCES        "link M7.3} @{"LAYOUT/BLOCK LEFT/RIGHT  "link M2.4} @{"PROJECT/SAVE AS XPK      "link M0.18} 
@{"CONFIG/SAVE              "link M7.18} @{"LAYOUT/BLOCK RIGHT       "link M2.6} @{"PROJECT/USER             "link M0.1} 
@{"CONFIG/TABS              "link M7.1} @{"LAYOUT/SECTION BLOCK     "link M2.9} @{"PUSH                     "link PUSH} 
@{"CONFIGURATION GUIDELINES "link CONFIG_MENU} @{"LAYOUT/SECTION CENTER    "link M2.12} @{"QUERY                    "link QUERY} 
@{"CONTROL MENU             "link CONTROL_MENU} @{"LAYOUT/SECTION LEFT      "link M2.10} @{"QUICKFUNC                "link M3.24} 
@{"CONTROL/ARRANGE WINDOWS  "link M4.13} @{"LAYOUT/SECTION RIGHT     "link M2.11} @{"QUICKREFERENCE           "link M3.12} 
@{"CONTROL/CENTER WINDOW    "link M4.14} @{"LAYOUT/SET RIGHT MARGIN  "link M2.0} @{"QUICKSTARTER             "link GETTING_STARTED} 
@{"CONTROL/ENLARGE WINDOW   "link M4.16} @{"LAYOUT/WORD WRAP         "link M2.2} @{"QUIT                     "link QUIT} 
@{"CONTROL/FOLD ALL         "link M4.7} @{"LEFT                     "link LEFT} @{"REFRESH                  "link REFRESH} 
@{"CONTROL/FREEZE WINDOW    "link M4.18} @{"LICENCE                  "link LICENCE} @{"REMAP                    "link REMAP} 
@{"CONTROL/GO TO LINE       "link M4.0} @{"LINES                    "link LINES} @{"REMOVAL OF COLUMNS       "link M1.11} 
@{"CONTROL/ICONIFY          "link M4.23} @{"LOCK                     "link LOCK} @{"REPLACE                  "link REPLACE} 
@{"CONTROL/INSERT-OVERWRITE "link M4.10} @{"LOCK A WINDOW            "link LOCK_A_WINDOW} @{"REQTOOLS                 "link CREDITS} 
@{"CONTROL/NEXT WINDOW      "link M4.21} @{"MACRO                    "link MACRO} @{"REQUEST                  "link REQUEST} 
@{"CONTROL/RECALL POSITION  "link M4.5} @{"MACRO MENU               "link MACRO_MENU} @{"REQUIRED SYSTEM          "link REQUIRED_SYSTEM} 
@{"CONTROL/STORE POSITION   "link M4.4} @{"MACRO RECORDING          "link M6.3} @{"RETURN KEY               "link RETURN_KEY} 
@{"CONTROL/TO LAST CHANGE   "link M4.2} @{"MACROS/COMPILE & LINK    "link M6.19} @{"RIGHT                    "link RIGHT} 
@{"CONTROL/TOGGLE TAB MODE  "link M4.11} @{"MACROS/COMPILE & LINK NEW"link M6.20} @{"RX                       "link RX} 
@{"CONTROL/TOP-BOTTOM       "link M4.1} @{"MACROS/COMPILE+LINK TEXT "link M6.10} @{"SAVE                     "link SAVE} 
@{"CONTROL/UNFOLD ALL       "link M4.8} @{"MACROS/CONFIG            "link M6.15} @{"SCREEN                   "link SCREEN} 
@{"CONTROL/UNFREEZE WINDOW  "link M4.19} @{"MACROS/DMAKE             "link M6.9} @{"SEARCH/REPLACE HISTORY   "link M3.0} 
@{"CONTROL/ZIP WINDOW       "link M4.15} @{"MACROS/EDIT MACRO        "link M6.0} @{"SELECT A HOST            "link SELECT_A_HOST} 
@{"CR                       "link CR} @{"MACROS/ERRORS            "link M6.21} @{"SHIFT                    "link SHIFT} 
@{"CREDITS                  "link CREDITS} @{"MACROS/GUIMAKE           "link M6.14} @{"SHIFTING                 "link M1.16} 
@{"CURSOR KEYS              "link CURSOR_KEYS} @{"MACROS/LOAD              "link M6.6} @{"SMARTCR                  "link SMARTCR} 
@{"DEL                      "link DEL} @{"MACROS/MACROS            "link M6.12} @{"SMARTINDENTION           "link M7.7} 
@{"DEL KEY                  "link DEL_KEY} @{"MACROS/MODULES           "link M6.16} @{"SPEEDS OF SCROLLING      "link CURSOR_KEYS} 
@{"DELETE                   "link DELETE} @{"MACROS/OPTIONS           "link M6.17} @{"STARTUP MACRO            "link M7.15} 
@{"DESCRIPTION OF MENUS     "link DESCRIPTION_OF_MENUS} @{"MACROS/PLAY              "link M6.4} @{"TAB                      "link TAB} 
@{"DICE                     "link CREDITS} @{"MACROS/PLAY MANY         "link M6.5} @{"TAB KEY                  "link TAB_KEY} 
@{"DIR                      "link DIR} @{"MACROS/RECORD START-STOP "link M6.3} @{"TABS                     "link TABS} 
@{"DISPLAY MODE             "link M7.9} @{"MACROS/RUN EXECUTABLE    "link M6.23} @{"TASK                     "link TASK} 
@{"DJUMP                    "link DJUMP} @{"MACROS/RUN TEXT AS MACRO "link M6.1} @{"TEXT                     "link TEXT} 
@{"DO YOUR JOB              "link DO_YOUR_JOB} @{"MACROS/SAVE              "link M6.7} @{"UJUMP                    "link UJUMP} 
@{"DOWN                     "link DOWN} @{"MAGIC CODES              "link MAGIC_CODES} @{"UNDO                     "link UNDO} 
@{"DPAGE                    "link DPAGE} @{"MAIN                     "link MAIN} @{"UNLOCK                   "link UNLOCK} 
@{"DYNAMIC TABS             "link TAB_KEY} @{"MARK                     "link MARK} @{"UNLOCK GUI               "link UNLOCK_GUI} 
@{"ENDWORD                  "link ENDWORD} @{"MAXDOWN                  "link MAXDOWN} @{"UP                       "link UP} 
@{"ESC KEY                  "link ESC_KEY} @{"MAXUP                    "link MAXUP} @{"UPAGE                    "link UPAGE} 
@{"EVENT DEFINITION         "link EVENT_DEFINITION} @{"MENU TREE OF BLOCK MENU  "link BLOCK_MENU} @{"USE                      "link USE} 
@{"EXALL                    "link EXALL} @{"MENU TREE OF CONFIG MENU "link CONFIG_MENU} @{"VIEW                     "link VIEW} 
@{"EXTRACT                  "link EXTRACT} @{"MENU TREE OF CONTROL MENU"link CONTROL_MENU} @{"WINDOW                   "link WINDOW} 
@{"F-KEYS                   "link F-KEYS} @{"MENU TREE OF FIND MENU   "link FIND_MENU} @{"WORDWRAP                 "link M2.2} 
@{"FASTLOAD                 "link M0.7} @{"MENU TREE OF LAYOU MENU  "link LAYOUT_MENU} @{"XPK                      "link CREDITS} 
@{"FDOWN                    "link FDOWN} @{"MENU TREE OF MACRO MENU  "link MACRO_MENU} @{"XPK SUPPORT              "link M0.18} 
@{"FEATURE LIST             "link FEATURE_LIST} @{"MENU TREE OF MISC MENU   "link MISC_MENU} @{"XREF                     "link XREF} 
@{"FILE                     "link FILE} @{"MENU TREE OF PROJECT MENU"link PROJECT_MENU}                          
@{"FILE HUNTER              "link M5.4} @{"MENUHELP                 "link GETTING_STARTED}                          
@{"FIND                     "link FIND} @{"MENUS                    "link MENUS}                          
@{"FIND MENU                "link FIND_MENU} @{"MISC                     "link MISC}                          
@endnode
