
  ####    ####               ###         ######     ####    ####  ####    ####
  #####   ####               ###       ##########   #####   ####  ####    ####
  ######  ####              ####      ####    ####  ######  ####  ####    ####
  ####### ####   ######   #########   ####          ####### ####  ####    ####
  ############ ########## #########   #### #######  ############  ####    ####
  ############ ###    ###   ####      #### #######  ############  ####    ####
  #### ####### ###    ###   ####      ####    ####  #### #######  ####    ####
  ####  ###### ###    ###   ####      ####    ####  ####  ######  ####    ####
  ####   ##### ##########   #########  ##########   ####   #####   ##########
  ####    ####   ######       ######     ######     ####    ####     ######


                                 Version 1.4
                               October 16, 1993

                          D O C U M E N T A T I O N


                                 %%%%%%%%%%%%
                             %%%%############%%%%
           %%%%%%          %%####  ########  ####%%          %%%%%%
           %%##%%%%      %%####  ############  ####%%      %%%%##%%
           %%%%%%      %%####  ###    ####   ##  ####%%      %%%%%%
             %%##%%  %%##########  OO  ##  OO  ########%%  %%##%%
             %%####%%############      ##      ##########%%####%%
               %%%%%%#####    #####    ####    ###    ###%%%%%%
                 %%######  ##  ##################  ##  ####%%
                 %%###########                     ########%%
                 %%##############     XXXXXX     ##########%%
                 %%##################          ############%%
                 %%########################################%%
                 %%########################################%%
                 %%########################################%%
                 %%########################################%%
                  %%######################################%%
                   %%####################################%%
                    %%##################################%%
                     %%################################%%
                       %%############################%%
                         %%########################%%
                           %%%%%%############%%%%%%
                           %%####%%%%%%%%%%%%####%%
                           %%####%%        %%####%%
                         %%%%%%%%%%        %%%%%%%%%%
                       %%########%%        %%########%%
                       %%%%%%%%%%%%        %%%%%%%%%%%%

    ________________________________________________________________________
    NotGNU 1.4                               Copyright (C) 1993 Julie Melbin

    Section 1:  Table of contents                                     Page 2
    ------------------------------------------------------------------------

    2.  Introduction ................................................  3

    3.  Upgrades since last release .................................  4
           a) New functions .........................................  4
           b) Changes, Bug fixes ....................................  4
           c) NotGNU services .......................................  4

    4.  Configuring NotGNU ..........................................  5
           a) Window settings: Size, Font, Colors, MenuBar ..........  5
           b) Environment variables .................................  5
           c) Command Line Switches .................................  6
           d) Startup file: NOTGNU.ST ...............................  7
           e) MESHELL.PIF, COMMAND.PIF ..............................  9
           f) Using an alternative command interpreter ..............  9

    5.  Extra features .............................................. 10
           a) NotAlarm .............................................. 10
           b) NotBoot ............................................... 10

    6.  NotGNU Operations ........................................... 11
           a) Mouse operations ...................................... 11
           b) Killing, Yanking, Cutting, Pasting .................... 12
           c) Rectangle operations .................................. 12
           d) Autocompletion ........................................ 13
           e) Minibuffer ............................................ 13
           f) Buffer List ........................................... 13
           g) dired ................................................. 13
           h) query-replace, replace-string, set-case ............... 14
           i) undo .................................................. 14

    7.  Command reference ........................................... 15
           a) Some basic Emacs commands  ............................ 15
           b) Specific NotGNU keys .................................. 19
           c) Specific NotGNU functions ............................. 20

    8.  Limitations and bugs (yuk!) ................................. 25

    9.  Frequently Asked Questions .................................. 27

    10. Services, updates, mailing lists ............................ 29
           a) FTP access ............................................ 29
           b) NotGNU-request ........................................ 29
           c) NotGNU-list ........................................... 30
           d) Other lists ........................................... 30
    ________________________________________________________________________
    NotGNU 1.4                               Copyright (C) 1993 Julie Melbin

    Section 2:  Introduction                                          Page 3
    ------------------------------------------------------------------------

    NotGNU - This is not the GNU Emacs Editor. A text editor similar to
    GNU emacs but much smaller and lighter. Compare a (quick) economy car
    to a mobile home and that's notgnu vs GNU emacs. They'll both get you
    where you want to be, with more or less gadgets along the way.

    The editor was based on MG2a, which was based on the original Conroy
    emacs. Some of the basics remain the same, but I have heavily modified
    the code to support the windowing environments, support large files
    and Windows/Un*x virtual memory, and to make it's basic editing look 
    more like GNU, or to add whatever I needed. Your mileage may vary.

    I have built it on various Window's (Intel) machines, an Intel NT box,
    a DEC RISC (MIPS) Ultrix workstation, a DEC Alpha OSF box, a DEC Alpha
    NT box, an INTERACTIVE Unix 486, a SparcStation 10 running Solaris
    2.1, and HP-UX 300 and 700 series workstations; It also appears to run
    well on LINUX and a few other UN*X machines, but not built by me. If
    you want sources to build it for your system, send me mail.

    This program is free in binary form; you can redistribute it as long
    as you don't charge for it, or include it in a product which is
    distributed for profit. I reserve all rights to this software in
    source and binary form, and you should not redistribute the source
    or otherwise make a profit on this software in any form.

        This program is distributed in the hope that it will be useful,
        but WITHOUT ANY WARRANTY; without even the implied warranty of
        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

    If you make modifications and/or bugfixes to the source, or just
    discover repeatable bugs/problems, please feel obliged to send them
    to me. I will maintain and support versions I distribute as time and
    money allows.

    Please send me mail if you try this editor. I would appreciate any/all
    comments.

    Please enjoy and find it useful; that's the overall goal. Donations
    graciously accepted.

    Julie Melbin                     email: julie@world.std.com
    P.O Box 1007
    Groton Ma 01450
    USA

    ________________________________________________________________________
    NotGNU 1.4                               Copyright (C) 1993 Julie Melbin

    Section 3:  Upgrades since last release                           Page 4
    ------------------------------------------------------------------------

    The following is a description of the more important changes since
    last release, version 1.3~ of September 8, 1993:

    3.a)  New functions
    -------------------
        For a more complete description of these functions, refer to
        section 7.c.

        1) buffer-flush-undo     = Clear the undo stack
        2) copy-region-to-buffer = Copy region to specified buffer
        3) display-filename      = Toggle filename display in modeline
        4) display-time          = Toggle time display in modeline
        5) print-file            = Guess..
        6) print-file-exit       = Same as above, then exit
        7) set-directory-cols    = Single or multiple columns
        8) set-select-highlight  = Text or background highlight (w/mouse)
        9) undo-high-threshold   = Same as set-undo-stack-depth


    3.b)  Changes, bug fixes
    ------------------------
        1) Some 'undo' problems, e.g. after the TAB key, were fixed.
        2) DOS version (dnot.exe) now detects screen sizes other than
           80x25 on startup. Use set-window-size to change.
        3) DOS version (dnot.exe) now has coloring of touched text.
        4) DOS version (dnot.exe) now has 'compile' and 'next-error'
        5) Windows version (wnot.exe) now uses its own colormap,
           rather than the Windows default; change via the application
           control menu in the upper left corner. 
        6) Windows version now uses background highlight by default.
           Change with set-select-highlight.


    3.c)  NotGNU services
    ---------------------
        With this release of NotGNU, a couple of new services are
        being made available:
        1) NotGNU-list; a mailing list for NotGNU related discussions.
        2) NotGNU-request; an automatic service for list maintenance,
           program mailing, information, etc.

        You are strongly encouraged to check these out; please refer
        to section 10 for details.

    ________________________________________________________________________
    NotGNU 1.4                               Copyright (C) 1993 Julie Melbin

    Section 4:  Configuring NotGNU                                    Page 5
    ------------------------------------------------------------------------

    Strictly speaking, it is not necessary to perform any configuration
    before running NotGNU. It will operate fairly well with its default
    settings, and a sample startup file (NOTGNU.ST) is also included.
    Nevertheless, you will probably want to adjust certain things to your
    liking as you go along; the following is a description of how to go
    about it.


    4.a)  Window settings: Size, Fonts, Colors, MenuBar
    ---------------------------------------------------
        If you click once on the 'application control menu' item in the
        upper left corner after starting NotGNU, you will see that there
        are some NotGNU specific items in addition to the standard Windows
        ones.  Use these to toggle NotGNU's menu bar on and off, select
        its font and colors, and to save current settings. If you choose
        this last item, the current position and size of the NotGNU window
        will also be saved.

        NOTE: You should "Save Settings" at an early convenience, to
        disable the "Welcome to NotGNU!" message box from appearing every
        time you start NotGNU. Also, if you upgrade from an earlier
        version, you should specify a color for the new item "Echo Text
        Color", and save.

        The settings will be saved to the file NOTGNU.INI in your Windows
        directory.


    4.b)  Environment variables
    ---------------------------
        Two environment variables will be interpreted by NotGNU if
        present: HOME and MESHELL.  HOME should point to a directory where
        you have your NOTGNU.ST (and NOTGNU.ALR) file, if different from
        the directory of your executable.  MESHELL is the shell to invoke
        for shell-command and shell-window.  For Windows 3/NT, you can
        insert the following line in your autoexec.bat:
            set MESHELL=%COMSPEC%
        If you specify %MESHELL%, also be sure to edit the PIF file
        associated with the new shell; see section 4.e) for details.

        DOS version uses COMSPEC rather than MESHELL out of historical
        reasons.  Sorry for inconsistency.


    ________________________________________________________________________
    NotGNU 1.4                               Copyright (C) 1993 Julie Melbin

    Section 4:  Configuring NotGNU (cont.)                            Page 6
    ------------------------------------------------------------------------

    4.c)  Command Line Switches
    ---------------------------

        -x function   
               Executes "function" on startup. Equivalent to -f under
               GNU emacs.  Say you want to use dnot as a text editor;
               start it up using the following command:

                        dnot.exe -x auto-fill-mode filename

               This  mode  will  be  toggled for the first file only.
               Or if want to have certain file types always opened as
               read-only under Winodws 3.x, associate the appropriate
               file extensions with the command:

                        wnot.exe -x toggle-read-only


        -p filename
               (Windows 3.x only)  Prints file, then exits.  Used for
               Notepad compability.  This switch  will also work with
               NotBoot.


        Note  that  the  DOS  and Windows versions also accept '/' as
        switch character, so /x and -x (and /p and -p for the Windows
        version) are equivalent.

















    ________________________________________________________________________
    NotGNU 1.4                               Copyright (C) 1993 Julie Melbin

    Section 4:  Configuring NotGNU (cont.)                            Page 7
    ------------------------------------------------------------------------

    4.d)  Startup file: NOTGNU.ST
    -----------------------------
        NOTGNU.ST will basically contain commands that you want to be
        executed at startup. Most commands that you can execute at
        run-time, you can also put into this file.

        NOTE this code is not bullet proof, and broken syntax in the file
        may still crash the editor.


        1)  Basic syntax
        ----------------
            The syntax is similar to GNU Emacs. The commands are enclosed
            in a pair of parentheses, '(' and ')':
                (toggle-just-write-newline)


        2)  Arguments
        -------------
            Any arguments should be preceded by the ' character:
                (set-window-size '43,80)


        3)  OS Dependent configuration
        ------------------------------
            A special 'if' statement is available for OS-dependent
            configuration:
                if OS (command)    ; execute command if running under OS
                if !OS (command)   ; execute command if not running under OS
            where OS is one of: DOS, Win3, WinNT, X11  (case sensitive)
            One example: if !DOS (global-set-key "\^x`"  'next-error)


        4) Comments
        -----------
            Comments in NOTGNU.ST should be prefixed by a ; (semi-colon).








    ________________________________________________________________________
    NotGNU 1.4                               Copyright (C) 1993 Julie Melbin

    Section 4:  Configuring NotGNU (cont.)                            Page 8
    ------------------------------------------------------------------------

        5) global-set-key
        -----------------
            It is also very common to specify keyboard commands in
            NOTGNU.ST. Use the following syntax:
                (global-set-key "\^x!"    'shell-command)      ; C-x !
                (global-set-key "\e\^h"   'backward-kill-word) ; M-Backspace.
                (global-set-key "\Insert" 'set-mark-command)   ; Insert key


            The following are legal key names on a PC:
            ----------------------------------------------------------------
            Gray keypad           | \Insert, \Delete,
                                  | \Home, \End, \Page-Up, \Page-Down,
                                  | \Up-Arrow, \Down-Arrow,
                                  | \Left-Arrow, \Right-Arrow
                                  |
            Ctrl + Gray           | \Control-Home, \Control-End,
                                  | \Control-PgUp, \Control-PgDn,
                                  | \Control-Up, \Control-Down,
                                  | \Control-Left, \Control-Right,
                                  | \CBackspace, \CDelete
                                  |
            Shift + Gray          | \SBackspace, \SDelete
                                  |
            Function keys         | \F<n>
            Shift + F-keys        | \FS<n>
            Ctrl + F-keys         | \FC<n>
            Shift + Ctrl + F-keys | \FCS<n>
            Alt + F-keys          | \FM<n>
                                  |
            Keypad characters     | \Kp-+, \Kp--, \Kp-*, \Kp-/, \Kp-.,
                                  | \Kp-0 .. \Kp-9
                                  |
            Characters            | <c>
            Ctrl + Character      | \^<c>
            Alt + Character       | \e<c>
                                  |
            Esc                   | \e
            Tab                   | \^i
            ----------------------------------------------------------------
            <n> is 1..10 for the DOS version, and 1..12 for Windows 3 and NT.
            <c> is a character


    ________________________________________________________________________
    NotGNU 1.4                               Copyright (C) 1993 Julie Melbin

    Section 4:  Configuring NotGNU (cont.)                            Page 9
    ------------------------------------------------------------------------

    4.d)  MESHELL.PIF, COMMAND.PIF
    ------------------------------
        [Windows 3.x and NT only]

        MESHELL.PIF and COMMAND.PIF are sample Windows Program Information
        Files (PIF) that NotGNU uses to execute shell-window and
        shell-command, respectively. They are similar to _default.pif, but
        with increased background priority, execution in background enabled,
        exclusive execution enabled, and close window on exit.

        It is important that you copy COMMAND.PIF to your Windows
        directory if you want background tasks like 'compile' to actually
        RUN in the background under Windows 3.x.  Failure to do so means
        that background jobs will run VERY VERY SLOWLY.

        Also note that if your pif file does not define CloseWindow on
        EXIT, then NotGNU can not tell when the spawned task is complete!
        (This code is under repair so apps that don't even start a window
        can be monitored; stay tuned..)


    4.e)  Using an alternative command interpreter
    ----------------------------------------------
        If you have specified the %MESHELL% environment variable,
        MESHELL.PIF and COMMAND.PIF will not be used. Instead, execution
        parameters for BOTH shell-command and shell-window will be read
        from the PIF file that corresponds to the specification in this
        variable.  Suppose, for instance, that %MESHELL% points to
        c:\dos\4dos\4dos.com. You would then have to edit the file
        c:\dos\4dos\4dos.pif, so that the following are specified
        (Use the Windows PIF editor):

            Advanced->Background priority: 90 or more
            Execution in background      : Yes
            Execution exclusive          : Yes
            Close window on exit         : Yes

        Also, make sure that NO working directory is specified; otherwise
        make/compile will not work properly.

        (These are things you should do anyway, even w/o NotGNU).



    ________________________________________________________________________
    NotGNU 1.4                               Copyright (C) 1993 Julie Melbin

    Section 5:  Extra features                                       Page 10
    ------------------------------------------------------------------------

    5.a)  NotAlarm
    --------------
        NotAlarm is a simple reminder function that can be set via the
        'alarm' command in NotGNU. Or, if you prefer, you can edit the
        alarm file directly: NOTGNU.ALR.  Make sure you put notalarm.exe
        where you put the editor exe file. The NOTGNU.ALR file is loaded
        from HOME on startup.

        When setting an alarm, 5 parameters are expected. They are, in
        order: Day (1-31), Month (1-12), Hour (0-23), Minute (0-59),
        Message (string).  '99' can be used as a substitute for 'every'
        (every day, every month, every hour..).

        This code has minimal error checking.


    5.b)  NotBoot
    -------------
        NotBoot is a boot manager for the Windows 3.x and NT versions of
        NotGNU. Only one instance of NotGNU can run at once on Windows 3.1, 
        but starting up 'notboot.exe' with an argument will import the 
        filename given in the argument into the existing NotGNU window; or 
        if none exists, NotBoot will start a new NotGNU.

        By associating the appropriate file extensions in the File Manager
        (or Norton Desktop etc.) with 'notboot.exe', you will be able to
        edit the corresponding files by double-click on the file icons,
        even if another NotGNU is running. Also, if you are using Norton
        Desktop for Windows, you should make 'notboot.exe' your default
        Windows editor rather than 'wnot.exe'.

        Note that at this time you can't associate a file with notboot 
        and have the editor print the file by dragging the file to the
        print manager. In other words, use notboot if you like to use
        file manager to open many files into the editor, and use wnot
        if you want to drag and drop for printing. This will be changed
        in the future.







    ________________________________________________________________________
    NotGNU 1.4                               Copyright (C) 1993 Julie Melbin

    Section 6:  NotGNU Operations                                    Page 11
    ------------------------------------------------------------------------

    6.a)  Mouse operations
    ----------------------
        [These will not work in DOS, sorry!]

        Set cursor position:
            Left button down-up at desired position.

        Resize buffer window (when multiple buffers are displayed):
            Left button down-drag on modeline that separates the buffers

        Copy region to clipboard:
            Left button down-drag over text to be copied. Mark will be set
            where dragging started, cursor where it stops.

        Cut region to clipboard:
            Shift + Left button down-drag over text to be cut. Mark will
            be set where dragging started, cursor where it stops.

        Paste/Yank:
            Right button down-up at desired position. (Note that a new can
            be set by down-click ie GNU emacs, or paste occurs at current
            dot ie xterms, etc. See toggle-mouse-paste-where).

        Insert file from drag & drop client (e.g. File Manager):
            Drag file icon from external application, release button at
            desired position in NotGNU. (Windows 3 and NT)

        Open new buffer w/file from drag & drop client:
            Drag file icon from external application, release button on
            the modeline. (Windows 3 and NT).

        Retrieve file from DIRED buffer:
            Left button double-click on filename.

        Use buffer from Buffer List:
            Left button double-click on buffer name.

        Scrolling:
            Ctrl-left button will scroll the window; shift-control-left
            button reverse the scroll direction. On X11, the editor won't
            see the keystate change w/o a mouse motion event. Text
            selection highlight (ie dot) will Not update during a scroll
            until you move the mouse.)

    ________________________________________________________________________
    NotGNU 1.4                               Copyright (C) 1993 Julie Melbin

    Section 6:  NotGNU Operations (cont.)                            Page 12
    ------------------------------------------------------------------------

    6.b)  Killing, Yanking, Cutting, Pasting
    ----------------------------------------
        The windowed versions of NotGNU operate on three different
        kill-buffers/clipboards for cutting & pasting purposes:

        1)  The internal kill-buffer, updated on the following commands:
                - copy-region-as-kill,
                - kill-word, kill-line, kill-paragraph, kill-region
            To paste back from this buffer, use C-y (yank)
        2)  A separate buffer for rectangle operations. Use the commands
            described in section 6.c.
        3)  The Windows clipboard, updated on the following commands:
                - copy-region-to-clipboard
                - kill-region-to-clipboard
                - Mouse operations, described in section 6.a.
            To paste back from this clipboard, use M-x
            yank-from-clipboard, or the right mouse button.

        Please note that mouse operations (section 6.a) will NO LONGER
        affect NotGNU's internal kill buffer, but merely the external
        clipboard.

        DNOT.EXE only supports the internal kill buffers (1) and (2).


    6.c)  Rectangle operations
    --------------------------
        NotGNU provides GNU Emacs 19-like rectangle operations. Select a
        region using the mouse, or set-mark-command followed by a cursor
        movement; then type either of the following commands:
            M-x copy-rectangle   ; Copy rectangle between mark and cursor
            M-x delete-rectangle ; Erase rectangle between mark and cursor
            M-x kill-rectangle   ; Cut rectangle between mark and cursor
            M-x clear-rectangle  ; Replace text in rectangle with blanks
            M-x open-rectangle   ; Insert blanks into the rectangle (*)

        To yank back the rectangle buffer into the text, use
            M-x yank-rectangle   ; Insert rectangle buffer into text (*)

        (*) Please note that TABs cause strange results in open-rectangle.
        Also, yank-rectangle will not change the contents of a rectangle
        to account for any yanking to a different tab offset. The other
        functions attempt to do the right thing with TABs.

    ________________________________________________________________________
    NotGNU 1.4                               Copyright (C) 1993 Julie Melbin

    Section 6:  NotGNU Operations (cont.)                            Page 13
    ------------------------------------------------------------------------

    6.d)  Autocompletion
    --------------------
        Pretty straightforward; simply press SPACE or TAB to complete a
        filename or a command while typing in the minibuffer. For
        filenames, SPACE will list all files, while TAB will list only
        directories (useful for quick access to subdirectories in cases
        where the parent directory contains many files, such as your
        windows directory).

        'M-x set-gnu' alters the behavior of file completion such that TAB
        attempts full completion w/o generating a full dired-completion
        buffer, thus you lose the step-down-into-directory feature
        defaulted by notGNU. <Space> attempts to complete only to token
        (.,-) when filling in a file name, a'la GNU. It's still not
        exactly like GNU, but it's closer.

        Wildcards can be used w/autocompletion: Use *.txt <SPACE> to list
        all files w/extension ".txt", etc.. NotGNU can NOT open a file
        with wildcards in the name, however. 'fo*.bar' will not get you
        foo.bar.


    6.e)  Minibuffer
    ----------------
        Minibuffer editing is not available. However the following keys
        are supported:
            C-h, Backpace, Del | Delete last typed character
            C-w                | Delete last typed word
            C-u                | Delete the whole line


    6.f)  Buffer List
    -----------------
        Invoked by M-x list-buffers (C-x C-b).
        Available commands are 'u' (use), 's' (save), and 'k' (kill).


    6.g)  dired
    -----------
        Invoked by M-x dired (C-x d)
        Available commands are 'e' (edit), 'f' (find-file), 'v' (view)



    ________________________________________________________________________
    NotGNU 1.4                               Copyright (C) 1993 Julie Melbin

    Section 6:  NotGNU Operations (cont.)                            Page 14
    ------------------------------------------------------------------------

    6.h)  query-replace, replace-string, set-case
    ---------------------------------------------
        M-x query-replace performs interactive string replacement with
        user confirmation for each entry, while M-x replace-string
        performs an unconditional replace.

        The following options are available when prompted whether to
        replace an occurrence with query-replace.

             !       = unconditionally replace the rest
             .       = replace this occurrence, and then skip the rest
             n, DEL  = do not replace this occurrence
             y, SP   = do replace this occurrence
             ^G, ESC = quit 'query-replace' mode.

        After being done with one buffer, you have the option of moving to
        the next buffer, skipping the next, or quitting.


    6.i)  Undo
    ----------
        The way undo works is a bit different from GNU emacs. In GNU, an
        undo operation is itself pushed onto the undo stack when executed.
        If you do several undos in a row, it will go back in the stack,
        but if you do another operation in between two undos, it will
        start over again from the top (and undo your undos).

        NotGNU has a simpler and more logical approach; any undo will
        simply pop out the last executed operation from the undo stack,
        and the stack will shrink. Undo also takes an argument; 'C-u 5 M-x
        undo' will do 5 undos. Undo's are stored on a per buffer basis and
        edits/undos in one buffer do not effect the state in any other.

        You can set the maximum depth of the undo stack to some other
        value than the default 100; use M-x set-undo-stack-depth.
        Increasing the depth increases memory usage, setting the size to 0
        disables undo.  Saving the file clears the undo stack, you can
        also clear it by hand with M-x empty-undo-stacks (to free some
        memory).





    ________________________________________________________________________
    NotGNU 1.4                               Copyright (C) 1993 Julie Melbin

    Section 7:  Command reference                                    Page 15
    ------------------------------------------------------------------------

    7.a)  Some basic Emacs commands
    -------------------------------
        If you are new to emacs, the following will undoubtedly be of
        help.  A word on notation:
            C-h means Control-H. Hold down the Ctrl key, and press H.
            M-h means Meta-H. Some computers do indeed have a Meta key,
                but may label it differently. Look for "Alt", "Extended
                char" (HP workstations)...  On a PC, M-h means "Alt-H".
                If your computer does not have such a key, you can use
                ESC. M-h would then be 'ESC h' (Press ESC, then press h).


        (NG) means that the function is NotGNU specific, and not
             defined in GNU emacs.
        (HW) means that the key is hardwired, and cannot be changed.

        --------------------------------------------------------------------
        C-b, C-f, C-p, C-n  | backward-char, forward-char,
        or arrow keys       | previous-line, next-line
                            |    moves cursor left, right, up, and down.
                            |
        C-a,  C-e           | beginning-of-line, end-of-line
        or Home, End        |    moves to the beginning or end of line.
                            |
        C-v, M-v            | scroll-up, scroll-down
        or PgDn, PgUp       |    jumps one screenfull down or up
                            |
        C-d                 | delete-char
        Backspace           | backward-delete-char
                            |    delete one character
                            |
        C-g                 | keyboard-quit
                            |    if you have started a complex command
                            |    (described below), but you do not want to
                            |    complete it, this command can be used to
                            |    abort it.
                            |
        C-h                 | help
        C-h a, C-h b,       |    apropos, describe-bindings,
        C-h c, C-h d        |    describe-key-briefly, list-key-names
                            |    
                            |


    ________________________________________________________________________
    NotGNU 1.4                               Copyright (C) 1993 Julie Melbin

    Section 7:  Command reference (cont.)                            Page 16
    ------------------------------------------------------------------------

        C-k                 | kill-line
                            |    cuts to end-of-line if there is anything
                            |    in it; if not, delete the line itself.
                            |    Two C-k's deletes a line with text.
                            |
        C-l                 | recenter
                            |    redraws the screen and places the line
                            |    with the cursor in the middle. can also
                            |    be used to clean the screen if it
                            |    should 'mess up' for some reason.
                            |
        M-q                 | quoted-insert
                            |    the next character you type in is
                            |    inserted no matter if it is a control
                            |    character or not. if, however, you type
                            |    C-q and 3 octal digits, the appropriate
                            |    ascii-code will be inserted. (e.g.
                            |    'C-q 145' would be equivalent to 'e').
                            |
        C-r, C-s            | isearch-backward, isearch-forward
                            |    search as you type; and move the cursor
                            |    to the closest occurrence of the string
                            |    typed so far.
                            |
                            |
        C-u                 | universal-argument
                            |    type in a number and a command, and that
                            |    command will be executed the appropriate
                            |    number of times. (e.g. 'C-u 79 -' will
                            |    insert 79 hyphens)
                            |
        C-x                 | c-x prefix
                            |    Special prefix char.
                            |
        C-w, M-w            | kill-region, copy-region-as-kill
                            |    cut or copy the current region; that is
                            |    -- the text between the mark and the
                            |    cursor. see set-mark-command below.
                            |
        C-y                 | yank
                            |    'paste' the text in the kill buffer.
                            |    used after cutting with C-k or C-w, or
                            |    copying with M-w.
                            |
    ________________________________________________________________________
    NotGNU 1.4                               Copyright (C) 1993 Julie Melbin

    Section 7:  Command reference (cont.)                            Page 17
    ------------------------------------------------------------------------

        C-@                 | set-mark-command
        or C-Space     (HW) |    sets the mark at the cursor position,
                            |    thus defining the start (end) of the
                            |    region.
                            |
        M-^                 | delete-indentation
                            |    join with line above, squish out spaces
                            |
        M-b, M-f            | backward-word, forward-word
                            |    moves the cursor one word backward or
                            |    forward.
                            |
        M-d                 | kill-word
                            |    cut a word.
                            |
        M-m            (NG) | delete-line
                            |    delete line regardless of location of
                            |    dot.
                            |
        M-q                 | fill-paragraph
                            |    reorder the text in this paragraph,
                            |    making the lines fairly adjusted based
                            |    on fill column.
                            |
        M-w                 | copy-region-as-kill
                            |    described above
                            |
        M-x                 | execute-extended-command
                            |    do any emacs command; including the more
                            |    complex ones that are not assigned to any
                            |    key or key sequence. To find the current
                            |    line number, for example, type
                            |    'M-x what-line'.
                            |
        M-%                 | query-replace
                            |    replace one string with another, and asks
                            |    for confirmation every time.
                            |
        C-x b               | switch-to-buffer
                            |    if editing more than one file, switch to
                            |    another file.
                            |
        C-x i               | insert-file
                            |    inserts a file into the current text.
    ________________________________________________________________________
    NotGNU 1.4                               Copyright (C) 1993 Julie Melbin

    Section 7:  Command reference (cont.)                            Page 18
    ------------------------------------------------------------------------

        C-x k               | kill-buffer
                            |    'quit' this file.
                            |
        C-x o               | other-window
                            |    puts the cursor in another window, if any.
                            |    see split-window-vertically below.
                            |
        C-x s               | save-some-buffers
                            |    save all modified buffers
                            |
        C-x u               | undo
                            |    undo the last operation and pop it off
                            |    the undo stack.
                            |
        C-x C-c             | save-buffers-kill-emacs
                            |    EXIT. If there are modified buffers,
                            |    emacs will ask if you want to save them.
                            |
        C-x C-f             | find-file
                            |    load a file into a new buffer. this is
                            |    one of the most frequently used commands.
                            |
        C-x C-l, C-x C-u    | downcase-region, upcase-region
                            |
        C-x C-s             | save-buffer
                            |    save current buffer!
                            |
        C-x C-w             | write-file
                            |    save current buffer, and prompt for
                            |    filename. default is 'current' name, just
                            |    like C-x C-s
                            |
        C-x C-x             | exchange-point-and-mark
                            |    put the cursor at the mark, and set the
                            |    mark where the cursor was.









    ________________________________________________________________________
    NotGNU 1.4                               Copyright (C) 1993 Julie Melbin

    Section 7:  Command reference (cont.)                            Page 19
    ------------------------------------------------------------------------

    7.b)  Specific NotGNU keys
    --------------------------
        NotGNU has some key commands that are not available in GNU emacs,
        keys that are hardwired and cannot be changed, and/or keys that
        perform functions not available as extended commands via M-x.

        These are:
        --------------------------------------------------------------------
        C-Space  (H)        | set-mark-command
        C-Up     (H, N)     | scroll-one-line-down
        C-Down   (H, N)     | scroll-one-line-up
        M-m      (N)        | delete-line
        M-C-Up   (H, N, K)  | Previous window
        M-C-Down (H, N, K)  | Next window
        C-Left   (N)        | backward-word
        C-Right  (N)        | forward-word
        C-TAB    (N)        | Insert TAB character
        TAB      (N, K)     | Insert 4 spaces
        --------------------------------------------------------------------
        (H) means that the key is hardwired, and cannot be changed (note:
            <Esc> can not be used for Meta here).
        (N) means that the key is NotGNU specific.
        (K) means that the function is not available via M-x.





















    ________________________________________________________________________
    NotGNU 1.4                               Copyright (C) 1993 Julie Melbin

    Section 7:  Command reference (cont.)                            Page 20
    ------------------------------------------------------------------------

    7.c)  Specific NotGNU functions
    -------------------------------
        This is a list of some of the newer functions in NotGNU. The ones
        that are not listed, are generally the same as in GNU Emacs.

        To get a complete list, with bindings, press C-h a RET (apropos).
        ====================================================================
        apropos
            list all commands containing argument. for a list of ALL
            commands, do M-x apropos RET (Or C-h a RET).

        append-region-to-buffer
            append region to the kill buffer

        buffer-flush-undo
            clear the undo stack; free memory

        clear-rectangle
            fill rectangle region with blanks

        compile
            trys-to-be like GNU version, defaults are 'nmake' on
            Windows/NT, 'make' on uni*x systems.

        copy-rectangle
            copy text from rectangle to the rectangle kill buffer

        copy-region-as-kill
            copy region to kill buffer

        copy-region-to-buffer
            copy region and yank into specified buffer

        copy-region-to-clipboard
            copy region to the Windows clipboard or X11 cutbuffer 0.

        delete-rectangle
            delete text in rectangle (don't save in kill buffer)
            See also kill-rectangle.

        display-filename
            toggle filename display in modeline


    ________________________________________________________________________
    NotGNU 1.4                               Copyright (C) 1993 Julie Melbin

    Section 7:  Command reference (cont.)                            Page 21
    ------------------------------------------------------------------------

        display-time
            Toggle time display in modeline

        find-first-change, find-next-change
            find changes in the text since last save.

        goto-match
            paren matching: finds (), {}, [].. matches

        kill-rectangle
            cut text from rectangle to the rectangle kill buffer

        kill-region-to-clipboard
            cut region to the Windows clipboard or X11 cutbuffer 0.

        make-backup-files
            toggles whether to create backup files (same as
            toggle-make-backups)

        next-error
            On SOME supported systems, will locate the error lines in the
            make log and find the source file/line for you in another
            buffer.  Supported on Windows for MSC 6 and 7, version 3.x of
            the Borland C++ compiler, the MS compiler on NT, Ultrix,
            DEC-OSF, HP-UX, Solaris 2. 1 with SunSoft compiler.  Author is
            thinking on making it user-definable via a template file...

        open-rectangle
            inserts spaces into rectangle

        print-buffer, print-file, print-file-exit
            guess..

        replace-string
            unconditional string replace, a la GNU Emacs.

        reread-file
            equal to killing w/o saving the current file, then revisiting.

        revert-to-incremental
            At fixed intervals, ~20 secs of so, the contents of all
            buffers with filenames are saved to incremental backups. This
            cmd reloads the buffer with the content of the most recent
            save.  (equal to M-x recover-file)
    ________________________________________________________________________
    NotGNU 1.4                               Copyright (C) 1993 Julie Melbin

    Section 7:  Command reference (cont.)                            Page 22
    ------------------------------------------------------------------------

        set-autosave-inc
            specify interval between each auto-save (in seconds)

        set-case
            specify whether replace-string and query-replace should do
            case insensitive search, and/or preserve case when replacing

        set-bg-color
        set-fg-color
        set-fg2-color
        set-fg3-color
            set background, text, touched text, and echoline prompt
            colors.  (Old set-text-color, set-touched-text-color,
            set-window-color are also supported)

        set-directory-cols
            specify whether file listings should use single or multiple
            columns

        set-font
            set the current window font; should be fixed pitch
            (monospaced) else nasty results.

        set-gnu
            set/unset GNU-style auto-completion.

        set-select-highlight
            specify whether highlighted region (w/mouse operations) should
            use text or background highlight. Default is background.

        set-tab-stop
            requires > 1, and divisible by 2

        shell-command
            executes the contents of the MESHELL environment variable, or
            COMMAND.PIF, or command.com/cmd.exe (Windows 3.x/NT), with
            given arguments. See sections 4.e) and 4.f)

        shell-window
            executes the contents of the MESHELL environment variable, or
            MESHELL.PIF, or command.com/cmd.exe (Windows, NT). See
            sections 4.e) and 4.f)


    ________________________________________________________________________
    NotGNU 1.4                               Copyright (C) 1993 Julie Melbin

    Section 7:  Command reference (cont.)                            Page 23
    ------------------------------------------------------------------------

        show-region
            temporary highlight of current region

        toggle-check-file-timestamp
            change state of file timestamp checking; while enabled, each
            op that would modify a buffer checks see that the file is not
            newer than the buffer content.  Slow on floppies.  (Default: no)

        toggle-just-write-newline
            causes files with to be written w/o the CR (just NL); Can be
            overridden per buffer with set-write-cr.

        toggle-make-backups
            make backup files (Default: yes)

        toggle-modified-state
            change modified state of a buffer; may clear the undo stack

        toggle-mouse-paste-where
            determines if MB2 (right mouse button) pastes at dot (cursor),
            or at the mouse pointer.  (Default: pointer)

        toggle-newline-behavior
            REMOVED. Use 'toggle-just-write-newline'

        toggle-read-only
            change read-only state of a buffer; may clear undo stack

        toggle-show-linenumber
            puts linenumber in modeline. Use ctrl-l if seems out of sync.

        toggle-show-touched-text
            toggle the drawing of edited text in a different color.

        toggle-window-menu
            create/destroy a window menubar (Windows/NT).  Supports editor
            commands plus access to the Windows clipboard.

        undo
            multilevel undo. See section 6.i)

        undo-high-threshold
            same as set-undo-stack-depth

    ________________________________________________________________________
    NotGNU 1.4                               Copyright (C) 1993 Julie Melbin

    Section 7:  Command reference (cont.)                            Page 24
    ------------------------------------------------------------------------

        unix-exec
            somewhat like win-exec; spawn a process and don't wait for it.

        view-file
            like find file, marks buffer read-only

        win-exec
            execute a Windows program, don't wait for completion (Windows)

        yank-rectangle
            inserts text from the rectangle kill buffer into rectangle.

        yank-from-clipboard
            paste text from the Windows clipboard or X11 cutbuffer 0.






























    ________________________________________________________________________
    NotGNU 1.4                               Copyright (C) 1993 Julie Melbin

    Section 8:  Limitations and bugs                                 Page 25
    ------------------------------------------------------------------------
    The following is a list of some of NotGNU's limitations in terms of
    capabilities, and some of its known bugs. If you discover strange
    behaviors that are not described here, please contact the author; her
    address is listed in the introduction.


    Size limitations
        There is no editor-defined filesize limit in NotGNU. Line
        length will be limited by the size of a signed integer. The
        other limiting factor is virtual memory, though if you have
        1000 byte filenames, it might get messy.

        Please note, however, that DOS version does NOT have the
        ability to use extended or virtual memory and therefore CAN
        run out of memory with very large/many files.

    No TeX, Lisp or Info
        These features are currently beyond the scope of NotGNU.

    No binary file support
        NotGNU is designed to run under both Unix and DOS; it reads a file
        in either format and writes it in desired format. This sometimes
        means converting ^M^J to just ^J, sometimes ^J to ^M^J.

    No editing in minibuffer
        ... although Backspace and Ctrl-U will work the usual way. Ctrl-W
        will backup (destructively) by words.

    TABs in rectangles
        Not so much a bug as inelegant. Rectangles are defined by absolute
        character offsets, and TABS confuse open-rectangle since it isn't
        looking at 'columns' yet.

    Display not updated w/DEC's "compose" utility
        DEC's "compose" utility steals the focus while composing a
        character; NotGNU does not handle that. Press C-l to refresh;
        move the NotGNU window away from the Compose bar to avoid.

    describe-bindings
        'C-h b', or describe-bindings, does not list meta or
         ESC key bindings properly.




    ________________________________________________________________________
    NotGNU 1.4                               Copyright (C) 1993 Julie Melbin

    Section 8:  Limitations and bugs (cont.)                         Page 26
    ------------------------------------------------------------------------

    Timestamp checking and write-file
        Timestamp checking won't save you from overwriting a file if you
        use write-file directly. Perhaps the buffer should have a timestamp
        when created that can be checked against a file.

    Startup file processing
        can be confused. Also, some commands that require a user action
        will stop it. Note that if you put (set-fg-color) in the startup
        file, that Window's dialog boxes will pop up on Windows 3.x/NT,
        but X11 versions take a command line argument and thus work. In
        addition, broken syntax may have the incredibly nasty effect of
        crashing the editor!

    Some keys are hardwired
        The hardwired keys are not perfectly friendly, but it was much
        easier to do a couple things that way.

    Long-line display
        is simplistic.

    Pasting with the mouse
        into an extended line is pretty hard to get right!

    Printing (Windows 3.1/NT only)
        is quite simplistic!

    Keyboard problems:
        Not all X11 servers return the "correct" keypress names for
        certain keys. On my PC, m-^ works fine. On my HP server, I need to
        do ESC ^ because m-^ doesn't work. Most other meta keys work on
        the HP machine though. Similar things are true with the keycodes
        for BACKSPACE and DELETE, and their modified values. On my HP
        keyboard, m-backspace returns 'U' and m-DeleteLine returns
        m-backspace and c-DeleteLine returns c-backspace!










    ________________________________________________________________________
    NotGNU 1.4                               Copyright (C) 1993 Julie Melbin

    Section 9:  Frequently asked questions                           Page 27
    ------------------------------------------------------------------------

    Since the last release, certain questions have appeared more or less
    regularly:

    Q) When running iconized, 'make' and 'compile' are S-L-O-W!
    A) Copy the file COMMAND.COM to your windows directory, or if you are
       using an alternative command interpreter, edit its PIF file. See
       section 4.e) and 4.f)

    Q) How do I list available commands?
    A) Use ``C-h a'' or ``M-x apropos'', then specify your argument.
       If you want to list ALL commands, just press RET.

    Q) Is source code available?
    A) The author is trying to keep the distribution of source code at a
       minimum to make fixing bugs/adding features easier. Contact her
       directly for more information as the source is available.

    Q) Highlight of selected region does not work
    A) You have upgraded from a previous version, and not specified
       a color for the new item "Echo Text Color". Do this, and save
       settings. See section 4.a).

    Q) DOS version doesn't use extended memory, the mouse, or extended
       keys. Can it be changed?
    A) No and Yes. DOS version now reads bios console size and 
       set-window-size works . If enough people beat me up and I get a
       32 bit compiler, other things may also change..

    Q) Why do the menu items look the way they do in the window menu?
    A) Capital words are commands that are hopefully obvious. The commands
       with '-' in the name are the actual notGNU command names. And no, I
       don't think there'll ever be a mode to list the English equivalents.

    Q) How come there are no scroll bars?
       I'll make them optional when I get them working correctly.

    Q) Will there be an extension language?
    A) Someday maybe. Never say never, but remember this is a small(ish)
       editor and not everyone has tons of disk or ram. Remember this answer
       in regards to features which are outside the mainstream. :)




    ________________________________________________________________________
    NotGNU 1.4                               Copyright (C) 1993 Julie Melbin

    Section 9:  Frequently asked questions (cont.)                   Page 28
    ------------------------------------------------------------------------

    Q) open-rectangle looks hosed; yank-rectangle sometimes looks wrong.
       What's wrong?
    A) The other rectangle ops now do a semi-reasonable job of handling
       tabs when operating on rectangles. Yank makes no attempt at all to
       figure the tabs in the rectangle and destination to do 'something'
       when pasting in (I don't think GNU emacs does either), and Open
       gets confused by them when inserting blanks to open an area.  So,
       open-rectangle has a known bug.

    Q) NotGNU sounded interesting, until I read it doesn't have XXXX
    A) Thanks for your comment, it will count as a 'vote' for further
       development! :-)
































    ________________________________________________________________________
    NotGNU 1.4                               Copyright (C) 1993 Julie Melbin

    Section 10:  Updates, mailing lists                              Page 29
    ------------------------------------------------------------------------

    10.a)  FTP downloads
    --------------------
        This release of NotGNU is available via anonymous FTP to the
        following sites (and mirror sites):

        Site                   File                              Environment
        ====================================================================
        oak.oakland.edu        /pub/msdos/editor/xnot14.zip      Win3/NT/DOS
        ftp.cica.indiana.edu   /pub/pc/win3/uploads/xnot14.zip   Win3/NT/DOS
        netcom.com             /pub/notgnu/dnot14.zip            DOS
        netcom.com             /pub/notgnu/wnot14.zip            Win3
        netcom.com             /pub/notgnu/ntnot14.zip           NT/Intel
        netcom.com             /pub/notgnu/ntaxp14.zip           NT/DEC AXP
        ====================================================================

        Only major releases will be uploaded to oak and cica though;
        intermediate beta releases will primarily be found at netcom.com.
        

    10.b)  NotGNU-request
    ---------------------
        Another way to obtain NotGNU executables, as well as information
        on the current status, is to send email to:
            notgnu-request@netcom.com (NotGNU request service)

        In the body of your message, give a "SEND <packet>" command;
        packet is one of DNOT, WNOT, NTNOT, NTAXP, DOC, or INFO. 


        Example:
         +------
         | To: notgnu-request@netcom.com (NotGNU request service)
         | From: alice@wonderland.com (Alice in Wonderland)
         |
         | SEND WNOT
         +------

        For more information on how to use NotGNU-request, including
        information on how to join the lists described below, give
        a 'HELP' command w/o arguments in the same manner.




    ________________________________________________________________________
    NotGNU 1.4                               Copyright (C) 1993 Julie Melbin

    Section 10:  Updates, mailing lists                              Page 30
    ------------------------------------------------------------------------


    10.c)  NotGNU-list
    ------------------
        On request from several users, a NotGNU mailing list is being
        introduced these days.  The topics for discussion have not yet
        been completely settled, but will *probably* have to do mostly
        with NotGNU itself (suggestions, problems, ..) and maybe a bit
        with editors and/or programming in general. It all depends on
        you. :)

        To subscribe to the list, send a ``JOIN MAILING'' command to
        notgnu-request@netcom.com, in the same manner as described above.

        It may take a little while to build it up; moderate traffic is
        expected in the beginning.



    10.d)  Other lists
    ------------------
        A separate list exists for various NotGNU announcements, such as
        information on new versions, bug findings, etc; and a third
        list exists for distribution of binaries as soon as they are
        posted (thereby saving the subscribers the work of that extra
        "SEND" command.. :)  The syntax for joining these lists are:

            JOIN ANNOUNCEMENT
            JOIN DISTRIBUTION

        Again, a summary of the commands available can be obtained by
        sending a ``HELP'' message.





    ________________________________________________________________________
    This document was created by Tor Slettnes on August 9, 1993; last
    update was for NotGNU version 1.4 on October 4, 1993. Additions to
    match typeset version incorporated on October 16 by Bernie Hayden.
    Any comments, suggestions, bug reports are certainly most welcome.
    Send e-mail to:
    
    <tor@netcom.com>                                     -tor
    ________________________________________________________________________
    NotGNU 1.4                               Copyright (C) 1993 Julie Melbin

