home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / alib / d9xx / d977 / kingcon.lha / KingCON / Docs / KingCON.doc < prev    next >
Text File  |  1994-04-03  |  47KB  |  1,170 lines

  1. ***************************************************************************
  2. *                                      *
  3. *                                      *
  4. *                --- KingCON 1.2 ---                  *
  5. *                                      *
  6. *                  --- User Documentation ---              *
  7. *                                        *
  8. *         --- Copyright © 1993,1994 David Larsson ---          *
  9. *                                      *
  10. *                                      *
  11. ***************************************************************************
  12.  
  13.  
  14. =========
  15.  Preface
  16. =========
  17.  
  18. The program and files in this distribution are freely distributable,
  19. but are also copyright (c) David Larsson. They may be freely
  20. distributed as long as no more than a nominal fee is charged to cover
  21. time and copying costs.
  22.   No commercial usage is permitted without written permission from the
  23. author.  Everything in this distribution must be kept together, in original
  24. unmodified form.
  25.   The above is generally known as freeware.
  26.  
  27.   Please contact me if you have any comments or suggestions:
  28.  
  29.   E-Mail:  f92dala@dd.chalmers.se
  30.  
  31.   Mail:    David Larsson
  32.             Gibraltarg. 82:150
  33.             S-412 79 GÖTEBORG
  34.             Sweden
  35.        ¯¯¯¯¯¯
  36.  
  37.     ! KingCON needs Kickstart 2.0 or better to run. !
  38.  
  39.  
  40. ==========
  41.  Contents
  42. ==========
  43.  
  44. 1. KingCON compared to CON
  45. 2. Installation
  46. 3. Editing
  47. 4. Filename- command- and device-completion
  48. 5. Review-buffer
  49. 6. Menus
  50. 7. Iconifying the window
  51. 8. Options when opening the console-window
  52. 9. To do
  53.  
  54.  
  55. ============================
  56.  1. KingCON compared to CON
  57. ============================
  58.  
  59.    The WB2.0 console-handler - CON: - is really good, but it lacks some
  60. very handy features that make life easier if you use it a lot.
  61. KingCON (or KCON) is a replacement that behaves EXACTLY like CON, but it
  62. also adds these important features:
  63.  
  64.    * Filename completion. You just type the first letters of a filename,
  65.      press the TAB-key, and - voilà! - the rest of the name is filled
  66.      in for you. This makes typing MUCH faster and minimizes frustrating
  67.      misspellings. KingCON has many options that let you control the
  68.      operation of this function. Maybe you prefer it window-oriented,
  69.      UNIX-like or something else.
  70.      DOS-commands and devicenames can be completed in a similar way.
  71.      Some of you might say that the Shell should provide this function
  72.      instead, but since all editing is managed by the console-handler
  73.      anyway, this is only natural. And as a "sideeffect", the filename-
  74.      completion will be available AT ALL TIMES - not only when you are
  75.      standing at the shell-prompt.
  76.  
  77.    * Review-buffer. A scrollbar in the right windowborder lets you browse
  78.      through all text that has been output to the window at any time.
  79.      (Very useful when your compiler spits out ten pages of errorlistings.)
  80.      The buffer can be turned on and off, and saved to a separate file.
  81.  
  82.    * Intuition-menus that give you a quick access to the features mentioned
  83.      above. You can control the size of the window, clear it etc.
  84.  
  85.    * Default settings can be stored in an environment-variable.
  86.  
  87.    * Jump-scroll option, which increases output speed a lot.
  88.  
  89.    * The console window can be iconified and put on the Workbench
  90.      as an AppIcon. The window also has a special icon in the titlebar
  91.      to quickly iconify it.
  92.  
  93.    * Asynchronous typeahead, if you want to type in the next command while
  94.      watching the output from the previous one.
  95.  
  96.    * Workbench icondrop is supported.
  97.  
  98.    * You can have the current directory displayed in the windowtitle.
  99.  
  100.    * The mouse can be used for positioning the cursor on the input line.
  101.  
  102.    * The text can be any (non-proportional) font you like.
  103.      Topaz 44 is a killer.
  104.  
  105.    * The command-history buffer eliminates identical lines, the window is
  106.      positioned more intelligently etc.
  107.  
  108.    Please note that KingCON does NOT patch CON in any way, it is written
  109. completely from scratch. There is a way, however, to mount KingCON as 'CON:'.
  110. In this way, every program that use 'CON:' will actually be using KingCON
  111. and all the good it stands for.:-> Of course, this is optional.
  112.  
  113.    KRAW: is a replacement for RAW:, and is very similar to KCON:, except
  114. it doesn't have any line-editing. See some DOS-documentation for details
  115. about the differences between CON: and RAW:.
  116.  
  117.  
  118. =================
  119.  2. Installation
  120. =================
  121.  
  122.   Simply run 'Installation' by double-clicking on its icon.
  123.  
  124.   The install-script does the following things:
  125.  
  126.   * Depending on which processor you have, 'KingCON-handler' or
  127.     'KingCON-handler.020' is copied to L:. Once copied, it is
  128.     always called 'KingCON-handler'.
  129.  
  130.   * 'KingCON-mountlist' is copied to DEVS:
  131.  
  132.   * 'KCON:' and 'KRAW:' are mounted.
  133.  
  134.   * Optionally, the necessary Mount-commands are added to s:user-startup.
  135.     They are:
  136.       Mount KCON: from DEVS:KingCON-mountlist
  137.       Mount KRAW: from DEVS:KingCON-mountlist
  138.  
  139.  
  140.    When KCON: is installed and mounted, you  can try it (at last!) by
  141. typing the following in a shell-window:
  142.  
  143.   Newshell window KCON:
  144.  
  145. or:
  146.  
  147.   Echo "Yes it is!!" >"KCON:////Is this happening?/FONT topaz.22/WAIT/CLOSE"
  148.  
  149. (Make sure you get those /'s right!)
  150.  
  151.  
  152. Mounting KCON: as CON:
  153. ----------------------
  154.    When KingCON is installed, the DOS-devicename for it is 'KCON:' (and
  155. 'KRAW:' for the unbuffered version). If you want that all your
  156. shell-windows you open should be KCON-windows, you just change the
  157. WINDOW-ToolType of the Shell-icon to say KCON: instead of CON:. (See
  158. your Workbench-documentation.) But in this way, you will only get a
  159. KCON-window if you start a new shell by double-clicking on the Shell-icon.
  160. Furthermore, some programs have their own console-windows and won't let
  161. you change them from CON: to KCON:. (Real3D v2.0 is one example).
  162.    What you need is something that makes every reference to 'CON:'
  163. actually lead to KingCON. This is done by mounting 'KCON:' as 'CON:'
  164. instead. BUT, this is normally not possible, since 'CON:' (and 'RAW:')
  165. are mounted before the startup-sequence is executed.
  166.  
  167.    This is the solution:
  168.  
  169.    * Add these lines BEFORE the Mount-commands in the user-startup:
  170.        Assign CON: DISMOUNT
  171.        Assign RAW: DISMOUNT
  172.    * Change the Mount-commands to:
  173.        Mount CON: from DEVS:KingCON-mountlist
  174.        Mount RAW: from DEVS:KingCON-mountlist
  175.  
  176.    Now when you boot, every console-window should be a KingCON-window. There
  177. is no need to have a special KCON: or KRAW:-device. Enjoy!
  178.  
  179. !! WARNING !!
  180.    Before you try the above, PLEASE make sure that the normal installation
  181. was successful and that you can mount KCON: and KRAW: when rebooting.
  182. Make sure that you follow the steps carefully. If something for some reason
  183. goes wrong after the Assign-DISMOUNT-commands, you won't have any console
  184. at all. A very frustrating situation if you must start your favourite
  185. text-editor, in order to correct the mistake, from the Shell... Remember
  186. that you have the Workbench-menu "Execute command" as a final rescue!
  187.  
  188.  
  189. ============
  190.  3. Editing
  191. ============
  192.  
  193.    Note: Everything said here is only true for the "cooked" KCON-console.
  194. KRAW is "raw" and has no editing capabilities. Also, if you have specified
  195. the ASYNC-option, things will work a bit different from what you may be
  196. used to. See the end of this section for details.
  197.  
  198.    'KCON:' is probably most often used as output for the Shell, but editing
  199. works the same if it is a program's private AREXX-console, for example.
  200. Even the filename-completion is identical.
  201.  
  202.    I assume some experience of the editing used in 'CON'. Most things are
  203. identical, the exceptions from this are marked with a (!).
  204.  
  205.    These keys are used for the line-editing:
  206.  
  207. Key            Effect
  208. ---------------------------------------------------------------------------
  209. Any "printable"    char.    Inserts the character pressed under the cursor,
  210.             shifting the characters right of the cursor one
  211.             step to the right.
  212.  
  213.  
  214. Return or         Finishes the line and adds it to the history-buffer,
  215. Control-M        UNLESS it is identical to the previous line.
  216.  
  217. Alt-Return (!)        The line is finished and added to the history-buffer,
  218.             but it is not sent to the command shell. This means
  219.             that it won't be executed.
  220.  
  221. Control-\        Inserts an EOF-character and finishes the line.
  222.             This often means that the window is closed, but it's
  223.             up to the program that opened 'KCON:' to decide.
  224.  
  225. Control-J or        Adds a linefeed.
  226. Control-Return
  227.  
  228.  
  229. Right Arrow        Moves the cursor to the right.
  230.  
  231. Left Arrow        Moves the cursor to the left.
  232.  
  233. Up Arrow        Displays the previous history-line.
  234.  
  235. Down Arrow        Displays the next history-line.
  236.  
  237. Shift-Right Arrow or    Cursor to the end of the line.
  238. Control-Z
  239.  
  240. Shift-Left Arrow or    Cursor to the beginning of the line.
  241. Control-A
  242.  
  243. Alt-Right Arrow (!)    Cursor to the beginning of the next word.
  244.  
  245. Alt-Left Arrow (!)    Cursor to the beginning of the previous word.
  246.  
  247. Control-Right Arrow (!)    Cursor to the next part of a filename.
  248.  
  249. Control-Left Arrow (!)    Cursor to the previous part of a filename.
  250.  
  251. Left Mousebutton (!)    Moves the cursor to to the position on the input-
  252.             line that you clicked on. If you click somewhere
  253.             else in the window, nothing will happen.
  254.             Note that the cursor is moved when the button is
  255.             released and that you must not drag the mouse
  256.             pointer before you release the button.
  257.             You can still select text to be copied to the
  258.             clipboard as usual.
  259.  
  260.  
  261. Backspace        Deletes the character to the left of the cursor and
  262.             shifts the rest of the line to the left.
  263.  
  264. Delete            Deletes the character under the cursor and shifts
  265.             the rest of the line to the left.
  266.  
  267. Shift-Backspace (!) or    Deletes the line to the left of the cursor.
  268. Control-U
  269.  
  270. Shift-Delete (!) or    Deletes the line to the right of the cursor and
  271. Control-K        puts the characters in a cut-buffer (NOT on the
  272.             clipboard.)
  273.  
  274. Alt-Backspace (!) or    Deletes the word that the cursor is standing on
  275. Control-W        to the left.
  276.  
  277. Alt-Delete (!)        Deletes the word that the cursor is standing on
  278.             to the right.
  279.  
  280. Amiga-Delete (!)    Deletes the word that the cursor is standing on.
  281.  
  282. Control-Backspace (!)    Deletes a part of a filename to the left.
  283.  
  284. Control-Delete (!)    Deletes a part of a filename to the right.
  285.  
  286. Control-B or        Deletes the whole line.
  287. Control-X
  288.  
  289. Control-L (!)        Deletes the whole line and clears the console.
  290.  
  291.  
  292. Shift-Up Arrow or    Finds the next history-line whose leading characters
  293. Control-R        match the first characters in the line up to the
  294.             cursor.
  295.  
  296. Shift-Down Arrow    Clears the line and puts you at the end of the
  297.             history buffer. (That means that if you then press
  298.             'Up Arrow', the last line of the history will be
  299.             displayed.)
  300.  
  301.  
  302. Alt-Up Arrow (!)    Scrolls backwards one page in the review-buffer.
  303.             See section 5 about the review.
  304.  
  305. Alt-Down Arrow    (!)    Scrolls forwards one page in the review-buffer
  306.  
  307. Shift-Alt-Up Arrow (!)    Scrolls to the beginning of the review-buffer.
  308.  
  309. Shift-Alt-Down Arrow (!) Scrolls to the end of the review-buffer.
  310.  
  311.  
  312. Amiga-V            Inserts text from the clipboard.
  313.  
  314. Control-Y        Inserts the characters deleted with Control-K or
  315.             Shift-Delete.
  316.  
  317. Control-S        Halts the output (if you are listing a directory
  318.             for example). This could be done by typing any
  319.             key and then type Backspace to resume output.
  320.             During filename-completion, the select-window
  321.             is opened to make it easier to browse through
  322.             the matching files. See Other selection-methods.
  323.  
  324. Control-Q        Resumes output again.
  325.  
  326.  
  327. TAB (!)            Filename-completion. See section 4 for details.
  328.  
  329. Shift-TAB (!)        Device-completion. See section 4.
  330.  
  331. Alt-TAB (!)        Command-completion. See section 4.
  332.  
  333. Control-D (!)        Outputs the files in the directory before the
  334.             cursor, unless the command-line is empty. In
  335.             that case it acts like a breaksignal. See
  336.             section 4 for details.
  337.  
  338. Asynchronous typeahead
  339. ----------------------
  340.    Normally, when you press a key while a program ('list' for example) is
  341. outputting text to the console, the output is halted until you have
  342. finished the your input in some way or another. However, if you specify
  343. the ASYNC-option, your keystrokes will be buffered while the output is
  344. going on and printed on the command-line when the prompt returns.
  345.    If you start stepping backwards with the arrow-keys or do something
  346. else that makes it hard for you to keep track of what currently lies in
  347. the buffer or where the cursor is, the output is halted and the buffer
  348. is printed on the command line where you can continue to edit it.
  349.  
  350.  
  351.  
  352. =============================================
  353.  4. Filename- command- and device-completion
  354. =============================================
  355.  
  356.    The idea with xx-completion (or TAB-expansion) is to make typing faster
  357. and more accurate. Once used to it, it will be a great help you don't
  358. want to live without.
  359.  
  360.  
  361. Filename-completion
  362. -------------------
  363.    If you want to enter a specific filename (or a complete path), you start
  364. with entering the first characters in the filename, then press TAB (or
  365. Amiga-F, see section 6). If only one file or directory relative to the
  366. current directory matches those leading characters, the rest of the name
  367. will be filled in for you.
  368.    Normally you just enter the first letters of a filename and then press
  369. TAB. If many files begin with the same letters, you can also use standard
  370. AmigaDOS wildcards to filter out the file you want. For example, if you
  371. want a file that ENDS with the characters '.gif', you type '#?.gif' and
  372. press TAB.
  373.    If more than one file matches the characters you typed, by default, a
  374. window with a list of possible filenames will be opened. (You can change
  375. this behaviour, however. See further down on how to do this.)
  376. You pick the file you want by:
  377.  
  378.     * Clicking on it and then choosing 'OK' or
  379.     * Double-clicking on it or
  380.     * Browse through the names with TAB and Shift-TAB or
  381.       Up- and Down-Arrows, then press Return.
  382.  
  383.    To cancel, you:
  384.  
  385.        * Press 'Cancel' or
  386.        * Close the window or
  387.        * Press ESC.
  388.  
  389.    If you didn't type any characters at all before you pressed TAB (or
  390. Amiga-F), an asl-requester will be opened for you, where you select
  391. your file or directory.
  392.    By default, .info-files are not shown. This can be toggled by selecting
  393. the menu Complete->Show .info. See section 6.
  394.  
  395.  
  396. Command-completion
  397. ------------------
  398.    Command-completion works in the same way as filename-completion. The
  399. difference is that not only the current directory is searched, but also all
  400. the command-paths. Only plain executable files are considered in the search.
  401. If your system has many command-paths, this operation may take a while.
  402.    Command-completion is activated by pressing Alt-TAB or Amiga-M.
  403.  
  404.  
  405. Device-completion
  406. -----------------
  407.    Device-completion is quite simple, and is invoked by pressing Shift-TAB
  408. or Amiga-D. All volumes (like 'Workbench:'), assigns ('L:', 'FONTS:' etc)
  409. and DOS-devices ('PAR:', 'CON:' etc) are searched for a match.
  410.  
  411. Other selection-methods
  412. -----------------------
  413.    When more than one file matches what you have typed, you must choose
  414. between the different alternatives in some way. By default, KingCON opens
  415. a window as described above. Even if this can be fully operated with the
  416. keyboard (you don't have to reach for the mouse), you might prefer another
  417. way to present the list.
  418.    The FNCMODE-option lets you set a combination of "flags" that control
  419. what KingCON does when multiple files match you description. Each flag
  420. consists of one letter, and is typed directly after FNCMODE.
  421. The flags and their function are:
  422.  
  423.     W   - Opens a window with a list of filenames. This is the default.
  424.  
  425.     C   - The leading characters that are common for all the alternatives
  426.           are inserted when you press TAB for the first time. An example:
  427.           Let's say that you have these files in the current directory:
  428.             KingCON.doc
  429.             KingCON.guide
  430.             KingCON-handler
  431.           If you type 'ki' and then press TAB, the string 'KingCON' will
  432.           be inserted on the line, because among the matching files,
  433.           these characters were common.
  434.           What happens if you press TAB a second time (before pressing
  435.           any other key!) is determined by the other flags.
  436.  
  437.     B   - After pressing TAB the first time, subsequent TABs or
  438.           Shift-TABs browse you through the alternatives, forwards and
  439.           backwards respectively. An example:
  440.           Suppose that you have the same files in your current
  441.           directory as in the first example. You begin with typing
  442.           'ki' and then press TAB. The string 'KingCON.doc' is inserted.
  443.           Pressing TAB again inserts 'KingCON.guide' etc. You can step
  444.           backwards with Shift-TAB.
  445.           Pressing any other key than these exits the "browse-mode".
  446.           Note: This flag cannot be combined with the W-flag for
  447.           obvious reasons!
  448.  
  449.           Browsing through many matching files just using TAB can be
  450.           quite tedious. You can at any time press Control-S to open
  451.           the select-window, and you will get more overview.
  452.  
  453.  
  454.     L   - Always outputs a list with all the alternatives on the
  455.           console.
  456.  
  457.     S   - Silent mode. The display doesn't flash when a completion
  458.           fails.
  459.  
  460.    The real strength with the FNCMODE-option comes when you combine the
  461. flags to suite your needs. I suggest that you experiment to see what
  462. you like best. Some useful combinations that you should try are:
  463.  
  464.     WC  - After the first press on TAB, the common characters are
  465.           inserted. Pressing TAB again opens the selection-window.
  466.  
  467.     BC  - This mode is very common on UNIX-system. First the common
  468.           characters are inserted, then you can browse through the
  469.           alternatives with TAB and Shift-TAB.
  470.  
  471.    Note that some combinations are quite useless and very confusing. Only
  472. specifying the L-flag will just make KingCON print the alternatives, and
  473. that's it. No characters will be filled in for you.
  474.  
  475.  
  476. A few notes on the completion-functions
  477. ---------------------------------------
  478.    After having read this, two questions come to our mind (?):
  479. The first is how spaces in filenames are handled. If you have completed
  480. a filename that includes spaces, quotation-marks will be inserted
  481. automatically in the beginning and the end of the word (where necessary).
  482. Let's say that you want to enter the following path:
  483.  
  484.     My Directory/The Manual.doc
  485.  
  486.    You start by entering 'my' and then press TAB. The line will look
  487. like this:
  488.  
  489.     "My Directory/
  490.  
  491.    Now you enter 'the' and press TAB again. The path is now complete:
  492.  
  493.     "My Directory/The Manual.doc"
  494.  
  495.    Note how one quotation-mark was inserted in front of My Directory and
  496. one after The Manual.doc. The path will now be interpreted as one word
  497. by the command shell.
  498.    If you want to match on a string that contains spaces, you must put
  499. a quotation-mark in front of the first word before you press TAB:
  500.  
  501.     "my dir<TAB>
  502.  
  503.    To sum up, KingCON does the following to determine which filename to
  504. complete: If the line contains and ODD number of "'s left of the the cursor, the
  505. name is taken from the last quotation-mark to the position of the cursor.
  506. Otherwise, the beginning of the word is taken from the character next
  507. to the first space, comma, or one of ` = < >. (Dot not included.)
  508.  
  509.    The second question (remember?) is probably: What is this talk about
  510. 'current directories' and 'command-paths'? 'KCON:' is just a DOS-device
  511. and has no 'current dir' like the Shell. Is 'KCON:' some kind of
  512. shell, or what??
  513.    The answer is that KingCON keeps track of which process that opened a
  514. KCON-window. Every time you invoke filename- or command-completion, KingCON
  515. looks at which directory is the current directory for the process that
  516. opened the window. Command-paths are also found this way.
  517.    If the process that opened the window dies before the window is closed
  518. (this could be the case if it is a WAIT-window. See section 8), KingCON
  519. keeps the directory that was used last time some kind of completion was
  520. activated. Command-paths are lost, though.
  521.  
  522.  
  523. Dropping icons on the console
  524. -----------------------------
  525.   Another quick way to insert a filename on command-line is to drag one
  526. or more icons from the Workbench over the console window and drop them
  527. there. The complete path for the icon, including quotation-marks (when
  528. necessary), will be printed.
  529.  
  530.   Holding down the Control-key while releasing the mouse-button inserts
  531. the pathpart of the filename. (If you have the icon "Work:Stuff/File",
  532. only "Work:Stuff/" will be inserted.) Holding down the Alt-key will
  533. insert the filename. ("Stuff" in the previous example.)
  534.  
  535.    This is only possible if the window was opened on the Workbench-screen.
  536.  
  537.  
  538.   I've said it before, but I'll do it again, for the sake of clarity:
  539. KingCON is NOT a Shell, despite of the filename-completion and some other
  540. functions. No interpretation of what you type is done. To the programs
  541. that use 'KCON:' for input and output, it behaves just like 'CON:'.
  542.  
  543.  
  544.  
  545. ==================
  546.  5. Review-buffer
  547. ==================
  548.  
  549.    One of the major differences between a CON-window and a KCON-window is
  550. that the latter has a scrollgadget in the right windowborder, that lets you
  551. browse through all the text that has been output to it since it was opened.
  552.  
  553.    When you have done a long directory-listing and want to go back to take
  554. a look at the first files that were listed, you just grab the knob and
  555. move it up until you find the place you looked for. The arrows can be used
  556. to scroll (approx.) one row up and down.
  557.    As soon as you type something on the keyboard or a program wants to
  558. output something to the window, the "review-mode" is exited and the
  559. scrollknob moves to the bottom. This means that if you try to scroll while
  560. a file is being Type'd, the text will jump up and down between the position
  561. you want to look at and the bottom of the review-buffer. Confusing, maybe,
  562. but fully normal.
  563.  
  564.  
  565. Differences between buffered text and original output
  566. -----------------------------------------------------
  567.    The text shown in the review-buffer doesn't always look like the text
  568. that originally was output to the window. Control-sequences to move the
  569. cursor, delete characters etc are not interpretated, which means that some
  570. programs that do fancy things to their output won't look that fancy when
  571. you begin dragging the scrollknob. This is not a bug, just a sacrifice
  572. for speed. :->
  573.    The output of LhA will, unfortunately, not look very good in the
  574. review-buffer. I suggest that you use LhA's option for simple I/O, -Qa.
  575. You won't have any progress indication this way, but at least you will
  576. see what files that were unpacked.
  577.    If you specify the NOSTYLES-option, all textstyle control-sequences will
  578. be filtered. This saves some memory and perhaps speeds up output on plain
  579. 68000's. The text in the buffer will always be black and white, though.
  580.  
  581. Memory-management - dynamic and static model
  582. --------------------------------------------
  583.    By default, the memory for the review-buffer is allocated dynamically
  584. when something is output to the window. Normally a maximum of 64Kb can be
  585. allocated for the buffer before the first lines start disappearing.
  586. The MAXBUF-option lets you specify another limit, if you should find 64Kb
  587. too much or too little.
  588.    Don't forget that no memory is allocated for the buffer when the console
  589. window is opened, because of its dynamic nature. The drawback with this is
  590. that you lose memory for every line you write. This can be frustrating if
  591. you are debugging a program to see if it frees all memory when it returns.
  592. ('Avail', 'Program', 'Avail', you know.) In those situations, you should
  593. disable the review-buffer.
  594.    A better solution is to make the review-buffer static. Entering a
  595. negative value after MAXBUF tells KingCON that all memory for the buffer
  596. should be allocated immediately when the window is opened. Note that if all
  597. the memory can't be allocated at once, the memory will be allocated
  598. dynamically instead.
  599.    See section 8 for details about MAXBUF.
  600.  
  601.  
  602. Some notes on speed (68000-owner, read this!)
  603. ----------------------------------------------
  604.    You may notice that output is slowed down a bit when the buffer is
  605. enabled, especially if you have a plain 68000-Amiga. On faster machines,
  606. it takes more time just to scroll the window than to manage the buffer,
  607. so it shouldn't be a problem there.
  608.    If you DO find it too slow, there are five things you can do:
  609.  
  610.    * Enable the jump-scroll. This can be done with the JUMP-option or
  611.      by selecting the "Console » Jump scroll"-menu. Output will be fast
  612.      but maybe a bit jumpy.
  613.  
  614.    * Specify the FASTUPDATE-option. The scrollgadget will be updated more
  615.      seldom, and you will gain much speed this way. I suggest that you try
  616.      this option before you start disabling the scrollbar completely.
  617.  
  618.    * Specify the NOGADS-option. You will still have a review-buffer as
  619.      usual, but no scrollgadget in the right windowborder. Because the
  620.      updating of the scrollgadget has much overhead, removing it in this
  621.      way is probably enough to solve the speedproblem.
  622.  
  623.    * Select the "Review » Enabled" menu to disable the buffer temporarily.
  624.      You will still be able to scroll back to text that was buffered
  625.      earlier, though.
  626.  
  627.    * Specify the NOREVIEW-option. In this way, you won't get any review-
  628.      buffer at all.
  629.  
  630.    * Specify the NOSTYLES-option. The buffered text will only be black and
  631.      white and you can save a lot of memory this way. Speed is also affected,
  632.      especially if the text that is ouput to the window has a lot of
  633.      fancy colors and styles.
  634.  
  635.  
  636.  
  637. ==========
  638.  6. Menus
  639. ==========
  640.  
  641.    The menubar contains the following menus and menuitems:
  642.  
  643. "Console"-menu:
  644. ---------------
  645.     Reset        (Z)    - Clears the console-window and resets all
  646.                   styles etc. Use this if a program leaves
  647.                   the window in a complete mess.
  648.  
  649.     Jump scroll    (J)    - If checked, output speed will be increased
  650.                   by scrolling the window several lines
  651.                   at the time. By default, jump-scroll
  652.                   is disabled, because it isn't 100%
  653.                   compatible with programs that do their
  654.                   own jump-scrolling, like 'more'.
  655.                   Use the JUMP-option to have this function
  656.                   enabled when the window is opened.
  657.  
  658.     Iconify        (I)    - The console window is iconified and put
  659.                   on the Workbench as an AppIcon. If
  660.                   you specify the NOICONIFY-option, the
  661.                   menu will read "Minimize", and the window
  662.                   will just be as small as possible
  663.                   instead of being turned into an icon.
  664.                   See section 7 for important details
  665.                   about this feature.
  666.  
  667.     Normalize    (N)    - Positions the window at the same place
  668.                   with the same size as when it was opened.
  669.                   Can be disabled.
  670.  
  671.     Maximize    (A)    - Makes the window as big as possible
  672.                   within the visible area of the screen.
  673.                   Can be disabled.
  674.  
  675.     Halt        (H)    - Halts output.
  676.  
  677.     Resume        (R)    - Resumes output.
  678.  
  679.     About...    (?)    - Opens a requester telling you about the
  680.                   current version of KingCON, the author etc.
  681.  
  682.     Close        (Q)    - The same as clicking in the window's
  683.                   closegadget or typing Control-\. The
  684.                   process that owns the window decides if
  685.                   it should be closed.
  686.  
  687. "Complete"-menu: (See also section 4!)
  688. --------------------------------------
  689.     Filename    (F)    - Completes a filename or directoryname.
  690.                   The same as pressing TAB.
  691.  
  692.     Command        (M)    - Completes a DOS-command. Same as pressing
  693.                   Alt-TAB.
  694.  
  695.     Device        (D)    - Completes a devicename. Same as pressing
  696.                   Shift-TAB.
  697.  
  698.     Show .info    (.)    - If checked, .info-files will be considered
  699.                   when KingCON is looking for matches.
  700.  
  701. "Review"-menu: (See also section 5!)
  702. ------------------------------------
  703.     Enabled        (W)    - If checked, all text output to the window
  704.                   will be saved in the review-buffer. If
  705.                   not, you will still be able to scroll
  706.                   through old text, but no new text will
  707.                   be added.
  708.  
  709.     Clear buffer        - Clears the review-buffer.
  710.  
  711.     Save plain text as...    - Lets you select a file to which the buffer
  712.                   will be saved as plain text.
  713.  
  714.     Save with styles as...    - Lets you select a file to which the buffer
  715.                   will be saved, including control-sequences
  716.                   for text style and color.
  717.  
  718. "History"-menu:
  719. ---------------
  720.     Enabled            - If checked, lines typed by you will be
  721.                   saved in the command-history buffer.
  722.                   If not, no lines are saved, but you will
  723.                   still be able to browse through the lines
  724.                   that are already in the buffer.
  725.  
  726.     Clear buffer        - Clears the history-buffer.
  727.  
  728.  
  729.    The menus are ghosted while the console is in RAW-mode. The NOMENUS-
  730. option opens a window without a menubar. See section 8.
  731.  
  732.  
  733.  
  734. ==========================
  735.  7. Iconifying the window
  736. ==========================
  737.  
  738.    A very nice way to quickly get rid of a console window temporarily
  739. is to iconify it. This can be done by selecting the menu Console»Iconify
  740. or by clicking the gadget next to the zoom-gadget in the titlebar.
  741. Normally an icon with the same name as the window will be created and
  742. put on the Workbench. (You can change the icon's default image and
  743. position with the IMAGE and ICONPOS-options. See section 8.)
  744. The window can then be brought back by simply double-clicking the icon.
  745.    If you think that icons clutter up your Workbench, you can specify the
  746. MENUFY-option together with NOICONIFY in order to have an extra menuitem
  747. in the Tools-menu created for you instead.
  748.  
  749.    The icon's or menu's title is normally the same as the window's. You
  750. can change it to something else with the ICONTITLE-option. Here you can
  751. use the substitution-strings, described in section 8, to insert the
  752. name of the current dir etc. If you have specified the SHOWDIR-option,
  753. the current directory will NOT be added to the icon. Use the %S or %D
  754. substitution instead.
  755.  
  756.    If a window is iconified, it will be opened again as soon as a program
  757. outputs text to the console or tries to read from it. The KEEPCLOSED-option
  758. changes this behaviour, so the window will remain closed in most cases.
  759. If you have the review-buffer enabled, the output will be saved to it, so
  760. you can for example start a long directory-listing, iconify the window, and
  761. return later to see what was output.
  762.  
  763.    NOTE!
  764.    A very importand aspect of this feature is that it doesn't always work.
  765. When a program has used a special AmigaDOS-call to find out the address
  766. of the console-window it is running in, it is no longer safe to close
  767. that window. When you have run such a program (SetFont is one of them),
  768. and then try to iconify the window, you will be presented a requester
  769. telling you that the window can't be closed in a safe way. You can then
  770. select that you still want to iconify it, but you should be very careful
  771. when doing this. NEVER iconify the window while running 'More', because
  772. this WILL crash your system. Iconifying the window when More is finished
  773. works fine, though.
  774.  
  775.    This behaviour is a bit ugly, but there isn't much I can do about it.
  776. The standard CON: also suffers from this problem, but maybe you haven't
  777. noticed it: The AUTO-feature, which is CON's way of iconifying a window
  778. (sort of), stops working after running SetFont or More.
  779.  
  780.    So, please programmers, stop using the DiskInfo()-call in order to get
  781. the address of the window if you just want to know the dimensions of the
  782. console. Instead, use the control sequence called 'WINDOW STATUS REQUEST'
  783. (9B 30 20 71). The dimensions will then be returned to you with a
  784. 'WINDOW BOUNDS REPORT'-sequence (9B 31 3B 31 3B <height> 3B <width> 72).
  785. Of course, the console must be in RAW mode when doing this.
  786.  
  787.  
  788.  
  789. ============================================
  790.  8. Options when opening the console-window
  791. ============================================
  792.  
  793.    A KCON-window is opened in the same way as a CON-window. The template
  794. for the "filename" is:
  795.  
  796.     KCON:LeftEdge/TopEdge/Width/Height/Title/Options/...
  797.  
  798.    All keywords are optional. If you want the default-value, you write
  799. nothing. For example, if you want to specify a title, but no position or
  800. size, you write: (Don't forget the quotation-marks if you have spaces
  801. in the filename!)
  802.  
  803.     "KCON:////My Title"
  804.  
  805.    The meaning of the keywords are quite obvious. The default is to
  806. open a window that covers the whole horisontal and half the vertical
  807. visible area of the screen. The window is positioned below the menubar
  808. of the screen if possible. The default title is 'KingCON'.
  809.    This differs a bit from CON, which always opens a window in the top
  810. left corner of the screen with a fixed height. I think KingCON's way of
  811. opening is better. :-)
  812.  
  813.  
  814. Inserting the current directory and CLI number in the title
  815. -----------------------------------------------------------
  816.    When working with the Shell, you probably want to see which the
  817. current directory is without having to issue a special command for
  818. this. An easy solution is to use the SHOWDIR-option when you open
  819. the console-window. This will insert the current dir after your title.
  820.  
  821.    Another, perhaps more flexible, way of doing this is to put
  822. substitution-strings in the title, much like the AmigaDOS Prompt-command.
  823. These substitutions also work with the ICONTITLE-option:
  824.  
  825.     %S    Inserts the complete path for the current directory.
  826.         Putting this at the end of the title is the same as
  827.         the SHOWDIR-option
  828.  
  829.     %D    Only the last part of the current dir is inserted. This
  830.         is very useful together with ICONTITLE, since it doesn't
  831.         produce as long strings as %S
  832.  
  833.     %N    The CLI-number of the owning process, if it is a CLI.
  834.         Otherwise, a minus-sign is inserted.
  835.  
  836.     %P    The name of the owning process is inserted. Note that
  837.         in a shell, this isn't the same as the name of the
  838.         command that is executed, since all commands are executed
  839.         by the same process.
  840.  
  841.    This example creates a rather instructive title:
  842.  
  843.        NewShell WINDOW "KCON:////Shell #%N in '%S'/CLOSE"
  844.  
  845.    The title can then look something like:
  846.  
  847.        Shell #4 in 'Work:Pictures/XXX-Rated/Flowers'
  848.  
  849.  
  850. Default settings in environment variable
  851. ------------------------------------------
  852.    Apart from old CON:, KingCON offers you many options. Probably you find
  853. a certain combination useful, but you don't want to type it every time
  854. you open a console. In addition to this, some programs have the CON:-file
  855. hard-coded, making it impossible to customize those consoles.
  856.    The solution to this problem is an environment variable (see the
  857. AmigaDOS-documentation) that contains the options you want to be default,
  858. unless you specify something else. There is one variable for KCON:
  859. (and CON:) and another for KRAW: (and RAW:). They are called KCON.prefs and
  860. KRAW.prefs respectively, and have the same form as the "filename" for
  861. the KCON: and KRAW: window. Confused? These examples might help:
  862.  
  863.    Suppose that you want a closegadget on every window you open. Then you
  864. should put put this command in your user-startup (or issue it before
  865. you open a console):
  866.  
  867.     SetEnv KCON.prefs /////CLOSE
  868.  
  869.    If you now type 'NewShell WINDOW KCON:', it will have the same effect
  870. as if you had typed 'NewShell WINDOW KCON://///CLOSE'. That saved some
  871. typing, didn't it? Now, if you don't want a closegadget for some reason,
  872. you will have to type 'NewShell WINDOW KCON://///NOCLOSE'. You could, of
  873. course, delete the variable with 'UnSetEnv KCON.prefs', and you will be
  874. back where you started.
  875.  
  876.    The advantage with env.-variables becomes even more clear when you want
  877. to personalise your consoles more drastically. The following sequence
  878. changes the default size, alternative (zip) size, windowtitle and makes
  879. the review-buffer static:
  880.  
  881.     SetEnv KCON.prefs 0/0/640/512/ElvisCON/MAXBUF-10/ALT590/462/50/50
  882.  
  883. NOTE 1: Changing the default options may make KingCON incompatible with CON:.
  884. For example, a program that opens a window without the CLOSE-option, expects
  885. that the window will have no closegadget. However, if you have put this
  886. option in the KCON.prefs-variable, the window will get a closegadget, and
  887. the program that uses the console may not like that, but it is rather
  888. unlikely that it actually will. But you should be aware of it, anyway.
  889.  
  890. NOTE 2: The options in the env-variables have a lower priority than the
  891. options that are specified when a console is opened. In the previos example,
  892. the windowtitle will only read 'ElvisCON' if you don't specify another
  893. title, like 'KingsTON,Jamaica'.
  894.  
  895.  
  896. Multiple defaultsettings
  897. ------------------------
  898.    When you open a console, you can specify another env-variable to be
  899. used as default instead of KCON.prefs. This makes it possible to have
  900. a set of different settings for different uses, that are easily accessed
  901. with just one keyword. There are two ways to specify the env-variable. The
  902. first one is the PREFS-option, that is described further down. The second
  903. method involves much less typing. You simply put the name of the variable
  904. after the devicename (CON:, RAW: etc), before the first coordinate for
  905. the window. The general form for the "filename" then looks like:
  906.  
  907.     KCON:Variable/LeftEdge/TopEdge/Width/Height/Title/Options/...
  908.  
  909.    Note that the variable-name mustn't begin with a number, or it will be
  910. recognised as the LeftEdge-value. Now an example:
  911.  
  912.    Let's say you have created a variable like this:
  913.  
  914.        SetEnv BigCON 0/0/640/512/Big/MAXBUF-500
  915.  
  916.    If you want to open a shell with this very expensive configuration
  917.    (it will eat ½ Mb for you!), you type:
  918.  
  919.        NewShell WINDOW KCON://///PREFSBigCON
  920.  
  921.            or
  922.  
  923.        NewShell WINDOW KCON:BigCON
  924.  
  925.            or, if you want to add some other options:
  926.  
  927.        NewShell WINDOW KCON:BigCON/////BIG!!/CLOSE/JUMP
  928.  
  929.  
  930. Options
  931. -------
  932.    Most options have an opposite form within parenthesis. They actually
  933. reflect the default-state, and specifying one of them is only useful if
  934. the positive form is present in either one of the variables KCON.prefs and
  935. KRAW.prefs, or a variable you have specified. For example, NOCLOSE cancels
  936. CLOSE, if that was specified in, let's say, KCON.prefs. Using the negative
  937. form in an environment variable is thus useless.
  938.  
  939.    These options are compatible with CON:
  940.  
  941.    ALT<x>/<y>/<w>/<h>  When the zoom-gadget is clicked, the window will
  942.         get the position and dimensions described by x,y,w & h.
  943.         For example, ...ALT100/100/400/50... will make the window
  944.         a thin strip in the middle of the screen when you click
  945.         the zoom-gadget.
  946.  
  947.    AUTO        The window isn't opened until some text is output to it or
  948.    (NOAUTO)    a program wants to read from it. It also gets a close-gadget.
  949.         You can also use the AUTOICONIFY-option for the same purpose
  950.         if you want an icon for the window while it is closed.
  951.  
  952.    BACKDROP    The window is opened as a backdrop behind all other
  953.    (NOBACKDROP)    windows on the screen.
  954.  
  955.    CLOSE    The window is equipped with a closegadget.
  956.    (NOCLOSE)
  957.  
  958.    INACTIVE    The window isn't activated when it is opened.
  959.    (ACTIVE)
  960.  
  961.    NOBORDER    The window has no border. Very confusing.
  962.    (BORDER)
  963.  
  964.    NODRAG    The window has no dragbar.
  965.    (DRAG)
  966.  
  967.    NOSIZE    The window has no sizing-gadget or zoom-gadget.
  968.    (SIZE)    The "Minimize"- and "Maximize"-menuitems are disabled.
  969.  
  970.    SIMPLE    You can mark and copy text from the console. This is
  971.            the default.
  972.  
  973.    SMART    The opposite of SIMPLE. This is the way the console window
  974.            was before v2.0 of the OS. If the window is scaled down and
  975.            then resized again, you will lose the text that was printed
  976.            on the revealed portions of the window.
  977.  
  978.    SCREEN <name>  The window will be opened on a public screen with a
  979.            certain name (case-sensitive!). To open on the screen
  980.            "TERM", you type: .../SCREEN TERM/... or .../SCREENTERM/...
  981.         Calling the screen '*' opens the window on the topmost
  982.         screen. Note that the screen must be a public screen, or
  983.         the window will open on the Workbench.
  984.         Also see the POPSCREEN-option.
  985.  
  986.    WAIT        The window isn't closed until you type Control-\, select
  987.    (NOWAIT)    Quit or click the closegadget.
  988.  
  989.  
  990.    WINDOW <address>  The console is attached to an already open window
  991.            with the address expressed in hexadecimal numbers.
  992.         The menus and gadgets will be disabled for compability.
  993.  
  994.  
  995.    These options are new for KingCON:
  996.  
  997.    ASYNC    Enables asynchronous typeahead. See also end of section 3.
  998.    (SYNC)
  999.  
  1000.    AUTOICONIFY    This is exactly the same as the AUTO-option, except that
  1001.    (NOAUTO)    an AppIcon is put on the Workbench as long as the window is
  1002.         closed. If you try a lot of PD-programs, it can be convenient
  1003.          to have the following line in the startup-sequence:
  1004.             Run >NIL: Enforcer FILE CON:////Bang!/AUTOICONIFY
  1005.         (This option was called AUTOICON before)
  1006.  
  1007.    FNCMODE <flags> Sets the flags that determine how you select the file
  1008.            you want after you have activated any of the completion-
  1009.            functions. The flags are described in section 4 and
  1010.            "Other selection-methods". The following sequence makes
  1011.            KingCON behave more "tcsh-like":
  1012.                .../FNCMODE BC/...
  1013.  
  1014.    FASTUPDATE    The scrollbar isn't updated at every line that is output,
  1015.    (NICEUPDATE)    which is the default, but in bigger intervals. This
  1016.            enhances the performance considerably on slower machines.
  1017.  
  1018.    FONT <name.size>  Another font than the default-font is used. To specify
  1019.            a bigger topaz-font you type: .../FONT topaz.44/... or
  1020.            .../FONTtopaz.44/... Note that the font must be monospaced!
  1021.            I suggest that you use the FONT-option to change the font
  1022.            instead of the SETFONT-command.
  1023.  
  1024.    ICONPOS <x>/<y>  Specifies the exact position for the icon in screen
  1025.            coordinates. Note that if another icon is already placed
  1026.            at that position, the icon will be put at a random
  1027.            place on the Workbench.
  1028.  
  1029.    ICONTITLE <title> Specifies the title for the icon (and menu) when the
  1030.            console is iconified. Use substitution-strings in order to
  1031.            tell the icons apart easier. An example:
  1032.                .../ICONTITLE Shell.%N (%D)/...
  1033.         See also the section about substitution-strings.
  1034.  
  1035.    IMAGE <filename> This option lets you change the look of the icon when
  1036.            the window is iconified. <filename> is the name of an
  1037.            .info-file (without .info!) in ENV:Sys/, that will be
  1038.            used to describe the icon.
  1039.            If this option isn't specified, the file
  1040.            ENV:Sys/def_KingCON.info will be used, if it exists.
  1041.            An example:
  1042.                KCON://///IMAGEmy_icon
  1043.            The file ENV:Sys/my_icon.info will be used as an icon.
  1044.  
  1045.    JUMP        Enables jump-scroll. You can also use the
  1046.    (NOJUMP)    "Console » Jump scroll" menu to enable it. Note that some
  1047.            programs, like 'more', don't like jump-scroll.
  1048.  
  1049.    MAXBUF <size>  Sets the biggest size for the review-buffer in kilobytes.
  1050.         The smallest possible value is 4. It is not always wise to
  1051.         set the size to a very big value, because your system
  1052.         can run out of memory if you output a lot of text to
  1053.         the console.
  1054.         A negative value makes the buffer static, which means that
  1055.         the amount of memory you specified (-size) will be allocated
  1056.         when the window is opened.
  1057.  
  1058.    MENUFY    When the window is iconified, a menuitem with the same
  1059.    (NOMENUFY)    label as the windotitle is added to the Tools-menu
  1060.            on the Workbench.
  1061.  
  1062.    MINI        The window is minimized the first time you hit the
  1063.    (MAXI)    zoom-gadget instead of being resized to fill the
  1064.            whole screen.
  1065.  
  1066.    NOFNC    (Short for No FileName Completion). The TAB, Shift-TAB and
  1067.    (FNC)    ESC-keys don't activate any completion-function in order
  1068.            to be compatible with CON. Note that you can still
  1069.            use the "Completion"-menu!!!
  1070.  
  1071.    NOGADS    No scrollgadget in the right windowborder is created. On
  1072.    (GADS)    slower machines this will increase the speed of the review-
  1073.             buffer noticeably. You can still use the keys described
  1074.             in section 3 to scroll through buffered text, of course.
  1075.             There will also be no gadget in the titlebar for
  1076.             iconifying the window.
  1077.  
  1078.    NOICONIFY    The window will just be minimized instead of iconified
  1079.    (ICONIFY)    when you select Iconify/Minimize from the menu.
  1080.            This is identical to the old NOICON-option (which
  1081.            still works.)
  1082.  
  1083.    NOMENUS    No menubar is created.
  1084.    (MENUS)
  1085.  
  1086.    NOREVIEW    The window gets no review-buffer. No scrollgadget is
  1087.    (REVIEW)    created and the "Review"-menu is disabled. If you just
  1088.            want to gain speed, first try the FASTUPDATE-option.
  1089.  
  1090.    NOSTYLES    Control-sequences that control textstyle and -color are
  1091.    (STYLES)    not saved in the review-buffer. Buffered text will be
  1092.            plain black and white.
  1093.  
  1094.    PLAIN    The same as NOREVIEW/NOFNC/NOMENUS. The window will behave
  1095.    (NOPLAIN)    exactly like a CON-window.
  1096.  
  1097.    POPSCREEN     Brings the screen, on which the window is opened, to
  1098.    (NOPOPSCREEN) the front.
  1099.  
  1100.    PREFS <variable>  The env-variable <variable> will be used as
  1101.            prefs-file instead if KCON.prefs (or KRAW.prefs for
  1102.            a RAW console). This keyword is not allowed inside
  1103.            the env-variable itself (no recursion).
  1104.         Using PREFS is equivalent to putting the variable-name
  1105.         right after the colon in the filename, before the
  1106.         LeftEdge-value.
  1107.  
  1108.    KEEPCLOSED     If a program wants to do output or input from the console,
  1109.    (NOKEEPCLOSED) while it is iconified, the window will not open. Instead,
  1110.             the text will be saved to the review (if it is enabled)
  1111.             and the read-requests will be queued up. This is useful
  1112.             if you want to open a shell and want it to iconify
  1113.             immediately, without first opening a window. You can
  1114.             then use the following combination:
  1115.                 .../KEEPCLOSED/AUTOICONIFY/...
  1116.  
  1117.    SHOWDIR    The current directory is displayed in the titlebar. You
  1118.    (NOSHOWDIR)    can also use substitution-strings (described above) for
  1119.            the same purpose.
  1120.  
  1121.  
  1122. ==========
  1123.  9. To do
  1124. ==========
  1125.  
  1126.    KingCON introduces some very useful features that makes it a worthy
  1127. replacement for CON. But there are still a few things I want to see
  1128. in a future version:
  1129.  
  1130.    * KingCON needs a preference-editor.
  1131.  
  1132.    * Configurable editing- and function-keys.
  1133.  
  1134.    * A configurable shortcut-menu, that lets you quickly insert commonly
  1135.      used strings. These strings should also be tied to the function-keys.
  1136.  
  1137.    * The review-buffer could be more intelligent and interpret cursor-moves.
  1138.  
  1139.    * A new completion-function that completes words from a textfile that
  1140.      you specify. All the switches for DOS-commands, for example.
  1141.      This should replace the command-completion, which is too slow to be
  1142.      really useful.
  1143.  
  1144.    * Localized menus, Kickstart 3.0-specific functions, smaller, faster...
  1145.  
  1146.    If you have something else that you would like to see implemented in
  1147.    KingCON (or if you find one of those annoying b*gs), feel free to mail
  1148.    me. Who knows, maybe I do something about it! (Be prepared that it
  1149.    might take some time before I can read and answer your letter.)
  1150.  
  1151.  
  1152.            /|t last I want to say a BIG THANKYOU to everybody
  1153.           / | that have reported bugs and come with good ideas.
  1154.          /  | I also want to thank Anders Hammarqvist for testing
  1155.         /   | KingCON, and for sharing his knowledge on consoles,
  1156.        /    | shells and many other things!
  1157.       /     |
  1158.      /¯¯¯¯¯¯| Last but not least - thankyou Stefan Stuntz, for providing
  1159.     /        | the sourcecode for the iconify-gadget!
  1160.    /         | (My favourite feature, actually :)
  1161.   /         |
  1162. ¯¯¯        ¯¯¯
  1163.  
  1164.  
  1165.         /¯\ David Larsson /¯\  Engineering Physics                /¯\_/¯¯¯¯
  1166.        /   \_/¯\   /¯¯¯\_/   \ Chalmers University of Technology / Sweden
  1167.       /         \_/           \      /¯\   /¯\     /¯\_/¯\      /
  1168. ¯\   /                         \    /   \_/   \   /       \    /
  1169.   \_/  f92dala@dd.chalmers.se   \__/           \_/         \__/
  1170.