# -*-Tcl-*- (nowrap)
# Cache v1.2 created on 06/02/2006 {11:06:59 PM}
set help(filesetIndentationPreference) {0.2.1 {
    This "Fileset Information" preference will ensure a given fileset is
    opened with a particular indentation amount, tab size and/or spaces-only
    setting, regardless of your global defaults.

    To use it, you can <<editAFileset>>, click on the "Attach Info" button,
    and click on any of the checkboxes next to
   
	Indentation Amount
	Tab Size
	Indent Using Spaces Only
    
    After clicking on the OK button, the "Edit A Fileset" dialog for this
    particular fileset will now have text-edit fields into which you can
    enter the desired information.
}}
set help(changeLogHelper) {0.1 {
    This package provides a keyboard shortcut which allows you to edit a
    standard ChangeLog window.  To activate this package, select the menu item
    "Config > Global Setup > Features" and then check the box that is next to
    "Change Log Helper" that appears in the dialog.
    
    Preferences: Features
    
    The default shortcut 'Shift-Command-L' will insert appropriate comments
    into the changelog nearest to the active window.  Once this package has
    been turned on, you can change the "Put Changes In Log" preference by
    selecting "Config > Preferences > Package Preferences > Miscellaneous".
}}
set help(thinkRefMenu) {1.1 {
    This menu provides access to the Think Reference (MacClassic) application.
}}
set help(electricMenu) {1.3.7 {
    file "Electrics Help"
}}
set help(openDocument) {1.2.1 {
    This package offers a variety of 'Open Document' options for opening
    various types of files.
    
    Preferences: Features
    
    The "File > Open" menu item is replaced by a submenu of the same name.
    It contains commands to open a file via the status bar prompt, and to
    quickly search through a hierarchy of files for a given file pattern.
    

	  	Table Of Contents

    "# Introduction"
    "# The 'File Open' Menu"
    "# Open Via Status Prompt"
    "# File Matching Queries"
    "# Current Working Directory"
    "# Open Document Preferences"
    "# Contextual Menu Module"
    
    <<floatNamedMarks>>


	  	Introduction

    Several different Alpha menus and features attempt to make it easier for
    you to quickly locate and open a file that you wish to edit.  There are
    many different methods for doing so: by collecting a list files in
    "filesets", by remembering recent files or directories, by assigning
    keyboard shortcuts to open favorite files, etc.  You aren't expected to
    learn and use all of these methods, as each user's style is somewhat
    different.  One of Alpha's goals is to provide with with a variety of
    tools from which you can choose to make your editing sessions easier.
    
    Related packages include
    
    package: favoritesMenu
    package: filesetsMenu
    package: ftpMenu
    package: recentDirsMenu
    package: recentFilesMenu
    package: recentFilesMultiMenu
    
    This particular package collects several of these methods, and replaces
    the "File > Open" command with a submenu of the same name.  If you want
    to give this package a try, click here <<openDocument::testPackage 1>> to
    temporarily turn on this feature.  It will be turned off the next time
    that you restart Alpha.  (Click here <<openDocument::testPackage 0>> to
    restore the previous "File > Open" menu item.)
    

	  	The 'File Open' Menu

    The new "File > Open" menu includes all of the possible "Open Document"
    options that have been registered by other AlphaTcl packages (such as
    from a remote site or via a pre-defined fileset.)  You can select any of
    them to evaluate the associated script.
    
    Click some of these hyperlinks for an example:
    
    <<openDocument::menuProc "" "Open Local File">>
    <<openDocument::menuProc "" "Open Remote File">>
    <<openDocument::menuProc "" "Open Fileset File">>
    
    Selecting the "File > Open > Local File" menu item presents a dialog that
    looks like <<findFile>> which uses the "# Open Document Preferences"
    described below to present a list of editable files.
    
    
	  	Open Via Status Prompt
    
    The menu command "File > Open > via Status Prompt" allows you to type in
    the name of the file that you're looking for.  The initial path is always
    the "Current Working Directory" which you are able to change at any time.
    (See the "# Current Working Directory" section below for more
    information.)  While you are typing the name of the file, you can ...
    
    Press Tab to complete the path.  If there is only one completion
    available, it will be added to the path automatically, otherwise all
    possible options will be offered in a list-pick dialog.  If the current
    path ends with a file separator, all files and folders within that folder
    will be offered.  If you select a file rather than a directory, that file
    will be opened immediately.  If you cancel the list-pick dialog, you'll
    still have the option to edit the path you've entered.
    
    Press Return to open the file designated by the current path.  If the
    path is incomplete and there is only one possible option, this file is
    opened automatically, otherwise all possible file options will be offered
    in a list-pick dialog.
    
    Press Escape or any of the Arrow Navigation keys to abort the prompt.
    
    Type "../" to move one level higher.
    
    Tip: You can use the "File > Open > Current Directory" menu to change the
    Current Working Directory.  If you enjoy entering commands in the status
    prompt, you can also press Escape-X and type "pwd" followed by Return to
    display the Current Working Directory in the status bar, or you can type
    "cd <directory>" to change the directory.
    
    Tip: If the current path ends with a file separator, typing that key
    again will also trigger a list-pick completion dialog.  So if the current
    directory is too low in your hierarchy, you can type "..//" to get a
    list-pick with the contents one level up.  The one thing you cannot do is
    press Delete to remove the text of the initial directory.
    
    
	  	File Matching Queries
    
    The middle section of the "File > Open" menu includes options for
    searching any local path hierarchy to find a matching file.  For example,
    if you want to open a .tex file in your "Dissertation" folder whose name
    includes "draft-1-1", you can select "File > Open > Matching File Query"
    and be presented with a dialog that looks like
    
    <<openDocument::openMatchingFile>>
    
    and fill in the appropriate values, as in
    
	draft-1-1
	.tex
	/Documents/Dissertation
    
    Alpha will then recursively search through the specified "Search Path"
    and locate any matching files.  If only one file matches the criteria,
    then it is opened automatically.  If there are several options, they will
    be presented in a list-pick dialog, and you can choose one (or more) of
    the files that you want to open.  The values that you enter will be saved
    and used as the next defaults when this menu item is called in the
    future, and saved between editing sessions.  If you don't know the exact
    name of the folder to search, you can press the "Browse Path" button to
    browse a file-system "Find Folder" dialog, or select an option from the
    "# Current Working Directory" list.
    
    The "File > Open > Fileset Query" is very similar, but in this case you
    simply select the name of a pre-defined fileset to specify which files
    will be queried.  For more information about creating filesets, see the
    "Filesets Help" file.
    
    Tip: the "File name pattern" doesn't have to include the full name of the
    file you're looking for, or even the proper start of its name.  For
    example, the pattern
    
	notes

    in your Dissertation folder could match all of
    
	/Documents/Dissertation/write-up/chapter1/chapter1-notes.txt
	/Documents/Dissertation/write-up/chapter4/chapter4-notes.txt
	/Documents/Dissertation/misc/notesToSort.txt
	/Documents/Dissertation/misc/oldNotes.txt
    
    Case sensitivity for these patterns is dependent upon your OS; in the
    MacOS the file "Readme" is the same as "readme" and README".
    
    You can also create some "Pre-Set File Matching Queries" and assign them
    unique Keyboard Shortcuts.  When these items are selected, a dialog will
    appear asking you for a file pattern to search for.  All pre-set queries
    are saved between editing sessions, and you can edit, rename, or delete
    them by selecting "File > Open > Pre-Set File Queries" menu commands.
    
    <<openDocument::addFMItem>>
    
    Here's an example, one that AlphaTcl developers might find useful:

	AlphaTcl
	/Applications/Alpha/
	.tcl
	Command-F1
    
    Tip: If you have several pre-set Matching File Queries set up, you might
    find it cumbersome to assign (and remember) a unique Keyboard Shortcut
    for each one.  The "File > Open > Open Pre-Set Query" menu item will
    present all of them in a list-pick dialog for you to choose from, and you
    could just assign one shortcut to this menu command.
    
    The "File > Open > List Local Files" has a similar dialog, but will
    present all results in a new window.
    
    <<openDocument::listMatchingFiles>>
    
    This dialog allows you to specify that the search string is the complete
    name of the file you're looking for, or the start, middle, or end.
    
    You'll notice that in both of these dialogs there is a text field named
    "Patterns to ignore" -- this should contain a list of any strings that
    you do not want included in the results.  These must follow the syntax
    found in the "Alpha Manual # File Patterns" section.  This field should
    contain a list of items, each separated by a space.  These patterns will
    apply to the full file path, including parent directories.
    
    One such pattern might be
    
   	*~
    
    to ignore backup files created by Alpha.  These patterns are _not_ case
    sensitive, so "*bak" will ignore a file named "text.BAK" .
    
    
	  	Current Working Directory
    
    Alpha maintains a "Current Working Directory" that can be used as a
    default location for locating files.  This is the path returned by the
    Tcl command: pwd , and is set by the command: cd .  Using the menu
    command "File > Open > Current Directory > Set Default Directory" you set
    the initial working directory to be set whenever ALPHA is launched.
    
    The "File > Open > Current Directory > Set Working Directory" command
    opens a dialog to select and set the working directory to any existing
    local folder.  (You can also use the "File > Open > Current Directory"
    menu to change the current working directory to any recent folder you
    have used.)  The list of saved working directories is used in the pop-up
    menus in several Open Document dialogs, allowing you to quickly choose
    from your most commonly used file hierarchies.
    
    Once the Current Working Directory has been set, select the menu command
    "File > Open > via Status Prompt" to open a status bar prompt into which
    you can type the path of a file relative to this directory.
    
    
	  	Open Document Preferences
    
    There are several global preferences that affect how items are presented
    in the standard "File > Open" dialog, such as invisible files, package
    contents, etc.  These preferences are specific to the platform that you
    are using, and the "Config > Preferences > Input-Output Prefs > Files"
    menu item allows you to change them.
     
    Preferences: Files
    
    The "File > Open > Open Document Prefs" menu lists the "flag" preferences
    as toggleable menu items, allowing you ro change them "on the fly" as
    your needs change.
    
    The "File > Open > Open Document Shortcuts" menu item allows to add or
    change any of the default shortcuts associated with these menu items.

	----------------------------------------------------------------

	  	Contextual Menu Module
    
    A Contextual Menu "Open Document" module is also available which provides
    a submenu with all Open Document options.
    
    Preferences: ContextualMenu
    
    It is not necessary to formally turn on this package in order to have
    access to this CM module.
}}
set help(compareWindows) {1.0 {
    This package allows for a quick comparison of two windows, without all
    the complexity of a full-blown 'diff'.  You can activate it using the
    "Config > Global Setup > Features" menu command, and then checking the
    box for "Compare Windows" that appears in the dialog.
    
    Preferences: Features
    
    Turning on this package creates a "Utils > Compare > Windows In Place"
    menu command.  This item will perform a quick comparison of the two
    frontmost windows (i.e. the active window and the one just behind it.)
    
    After finding the first difference in the file, use the keyboard
    shortcuts for
    
	Find Difference
	Find Difference Ignoring Space
	Find Next Difference
	Find Next Difference Ignoring Space

    that are created by this package.  To change the default values of these
    shortcuts, use "Config > Preferences > Package Preferences" and go to
    the dialog pane labelled "Compare Windows".
    
    Preferences: compareWindows
    
    For more information about the "full-blown diff" options that are
    available, see the "Diff Help" file.
}}
set help(InSh) {1.3.6 {
    This mode enables the display the output from an external program in an
    Alpha window, and can also send characters typed in the window to the
    program input.  Windows that use InSh mode behave like interactive shells.
    However, InSh mode is not a terminal emulator, so programs that use
    special control sequences to hilight text or to move the cursor may not
    work as expected.
    
    If you're working in a Unix environment (such as Mac OS X), you can test
    this experimental code for creating Unix Shell windows:
    
    <<unixShell>>
    
    <<unixShellForTopWindow>>
    
    Similarly with Cygwin's /bin/sh, you can use this equally well on
    Windows.  And, even without Cygwin, there are simple windows-native
    /bin/sh implementations which will work fine on Windows 2000/XP.
}}
set help(aeom) {1.3 {
    Implementation of Alpha's AppleEvent Object Model.  This
    package is necessary for Alpha to work properly.
}}
set help(javadocComment) {0.1 {
    This features creates a new "Java > Javadoc Comment" menu item for quick
    entry of javadoc info in Java comments.
    
    Preferences: Mode-Features-Java
    
    Selecting this menu item will insert a comment that looks like this:
    
	/**
	 * @tooltip 
	 * @default 
	 * @modifiable 1
	 */
	
    
    The comment will be inserted at the current cursor position.
}}
set help(C) {1.4.5 {
    C and C++ modes function nearly identically in Alpha.  C Mode
    provides keyword coloring and procedure marking with the Marks Menu;
    supports cmd-dbl-click for opening files or (sends the word to app
    sig "DanR"); automatically handles indentation and formatting. 
    Support for Think and CodeWarrior.  

    Click on this "C++ Example.cp" link for an example syntax file.
}}
set help(TeXC) {0.1.2 {
    file "teTeX Help"
}}
set help(Stta) {2.3b1 {
    file "Statistical Modes Help"
}}
set help(MPW) {0.6.1 {
    file "MPW Help"
}}
set help(bibToHtml) {3.0 {
    file "BibToHtml Help"
}}
set help(mailTcllib) {2.0 {
    This package enables the browsing/viewing and sending of messages with
    the package: mailMenu using the Tcl-lib "smtp" and "pop3" packages.
    
	  	Table Of Contents

    "# Introduction"
    "# Basic Usage"
    "# Inbox Browsing Window"
    "# Viewing Received Messages"
    "# Deleting Remote Messages"
    "# Sending E-mail"
    
    "# Multiple Accounts"
    "# Server Preferences"
    "# Account Passwords"
    "# Preference Settings"
    
    "# Current Limitations"
    
    <<floatNamedMarks>>

    
	  	Introduction
    
    This package turns ALPHA into a very basic e-mail client, allowing you
    to read and send messages without switching to (or using the services of)
    any other program.  Its features include "# Multiple Accounts" and the
    trashing of messages on the remote server.
    
    ALPHA's internal Mail Handler is MIME-conformant, with respect to
    Appendix A of RFC 1521.
    
    <http://www.freesoft.org/CIE/RFC/1521/43.htm>
    
    It will handle multipart, mixed content-types and include messages about
    attached files without displaying them as raw text.
    
    
	  	Basic Usage
    
    Turn on the "Mail Menu" in the "Config > Global Setup > Menus" dialog.
    
    Preferences: Menus
    
    Then select "Mail Menu > Mail Handers > ALPHA" to use this service.
    
    Then select "Mail Menu > Open Inbox" and fill in the account name, server
    address, and your password.  A new dialog will appear telling you how
    many messages are in your remote Inbox, asking you which ones you would
    like to view.  These will appear in a new "# Inbox Browsing Window".
    
    Use the Arrow keys to navigate this browsing window, and then you can
    begin "# Viewing Received Messages" by pressing Return or Enter.  A new
    Mail window will be created displaying the contents of the e-mail.
    
    Select "Mail Menu > Reply" to open a new composition window, with the
    original contents quoted in the body of the message.  When you are
    satisfied with your post, select "Mail Menu > Send" and fill out any
    required information about your SMTP server, account name and password.
    
    
	  	Inbox Browsing Window
    
    Select "Mail Menu > Open Inbox" to query the remote server for the
    messages in your main Inbox folder.  A dialog will inform you how many
    messages are in the Inbox, and inquire about which ones you would like to
    download.  Like any internet process, the time that this takes to
    complete will vary depending on your internet connection and other
    circumstances beyond ALPHA's control.  You should experiment to see how
    long it takes to download 10, 20, 100 messages.
    
    Once the messages have been retrieved, they are presented in a new
    browser window in ALPHA.  You can navigate the listed e-mail headings
    in this window using the arrow keys.  Press Return or Enter to view the
    selected e-mail in ALPHA.
    
    Closing the Mailbox browsing window closes the socket channel connection
    to your remote server.  You will not be able to trash any open Mail
    windows that were created from the browsing window.
    
    Note: As the "Mail Help # Keyboard Shortcuts" help file explains, all of
    the menu shortcuts for the Mail Menu are only work when the active window
    has been created by this package, even if the menu has been turned on
    "globally."  If you have turned on the package: newDocument then you will
    have access to a "File > New > E-mail Inbox" menu item, and you can
    assign a global Keyboard Shortcut to call this command.
    
    
	  	Viewing Received Messages
    
    Pressing Return or Enter in an Inbox browsing window to open the contents
    of the message in a new "MAIL" window.  You can then select the menu
    command(s) "Mail Menu > Reply (To All) / Forward" to open a new mail
    composition window.
    
    If the Mail mode preference for "Render Html Formatted Text" is turned on
    then we attempt to ignore plain text alternatives and instead render html
    formatted messages using the WWW menu.  You can adjust the colors used
    for the various mark-up tags by setting your WWW mode preferences with
    the "Mail Menu > Html Colors & Style" menu item.
    
    Preferences: Mode-WWW
    
    See the "# Preference Settings" section for more options.
    
    
	  	Deleting Remote Messages
    
    Messages can be deleted from your remote server while the active window
    is a Mailbox browser or a viewer with "Mail Menu > Trash Message".  If
    your preference for "Confirm Before Trashing" has been turned on
    
    Preferences: Mode-Mail
    
    then you will be asked for confirmation before performing the operation.
    Once the message has been deleted, it cannot be recovered.  Its listing
    will be removed from the Mailbox browsing window, and if a Mail view
    window is open it will display the contents of the next message.
    
    Caveat: The "socket channel connection" must be explicitly closed for the
    server to remove the message.  It it is closed prematurely, such as a
    "time-out" due to inactivity or some interruption in your internet
    connection, the messages will remain on the server.  The socket channel
    is automatically disconnected "gracefully" when the Mailbox browsing
    window is closed.
    
    
	  	Sending E-mail

    After you have opened a composition window (by replying to a received
    e-mail or via the "Mail Menu > New Message (To)" commands) you can send
    it using your smtp server.  Just select the "Mail Menu > Send" command
    and confirm your account information.
    
    Currently this package supports
    
	Digest-md5
	Cram-md5
	Login
	Plain
	
    authentication methods.  The most secure method will be tried first and
    each method tried in turn until we are either authorized or we run out of
    methods.  SMTP servers requiring stricter authentication methods, such as
    Secure Sockets Layer (SSL), are not handled.


	====================================================================

	  	Multiple Accounts
    
    ALPHA allows you to define as many different "identities" as you want
    using the "Mail Menu > Mail Accounts" menu.  The name of each identity
    will appear in this menu, and you can use the utility items to rename or
    remove them as you wish.  Each identity has its own Server Preferences
    and a separate password cache.
    
    
	  	Server Preferences
    
    Select the "Mail Menu > Mail Accounts > default" menu item to enter your
    email address and the name for your pop/imap and smtp servers.
    
    For example, the preference values might be
    
	Email Address:          cupright@earthlink.net
	Real Name:              Craig Barton Upright
	Mail Server:            pop.earthlink.net
	
	SMTP Account:           cupright@earthlink.net
	SMTP Server:            smtp.earthlink.net
	Reply To:               cupright@alumni.princeton.edu

    or they could be
    
	Email Address:          cupright@alumni.princeton.edu
	Real Name:              Craig B. Upright
	Mail Server:            imap.princeton.edu
	
	SMTP Account            cupright
	SMTP Server:            smtp.earthlink.net
	Reply To:               cupright@alumni.princeton.edu

    Note that the "Mail" server is used to view new remote messages, and the
    "smtp" is required to send new messages.  If for some reason only one of
    these server types is available, you will be able to use it to only
    read-remote/send-new e-mail messages.  We have separate account name and
    password preferences for each type of server because some users find it
    necessary to use this arrangement to peacefully exist with their ISPs.
    You must fill in the values for each server type.
    
    When you send mail, the "Email Address" and "Real Name" fields will be
    supplied as the "From:" address.  You can also set a "Reply-To:" address
    for each identity.
    
    If you need to set a "Port Number" (the default is 25), then simply
    append it to the end of the server name, as in
    
	SMTP Server:            smtp.earthlink.net:110
    
    This port number will then be parsed out when messages are sent.  Port
    numbers can also be specified for your incoming mail server.  This is an
    advanced option, consult your mail server's documentation or system
    administrator if you need to determine the correct port to use.
    
    
	  	Account Passwords

    When you perform an action that requires authorization from the remote
    server you will be prompted to enter your password for the account in a
    dialog.  The password will be retained throughout the rest of your
    ALPHA editing session, but it will never be saved when ALPHA quits.
    This is a security feature, since (as of this writing) none of ALPHA's
    preference values are encrypted.
    
    If the action you're performing fails or is aborted, the password you
    entered is forgotten just in case an incorrect value was the problem in
    the first place.
    
    
	  	Preference Settings
    
    This package offers several different preference settings allowing you to
    customize its behavior.  See the "Mail Menu > Mail Menu Prefs" dialog to
    change them.  You can turn on the Mail Menu if you want to inspect them.
    
    Preferences: Menus
    
    Some of the more useful preferences include
    
	Auto Float Mailbox Window Marks
    
    Creates a floating palette with the start of each post's subject line for
    easy viewing/switching of Mail windows.
    
	Semicolon Switches Windows
    
    You can press the ';' key to toggle back and forth between the Inbox and
    Mail viewing windows.
    
	Multiple Mail View Windows
    
    Whenever you open a new Mail window from the Inbox, the contents of any
    pre-existing Mail windows can be replaced, or each message can be
    displayed in its own window.
    


	====================================================================
    
	  	Current Limitations
    
    
    * The "socket channel" connection that is created whenever you open a new
      "Inbox" browsing window is often fragile, and closes within a few
      minutes.  The connection is always explicitly disconnected when the
      Inbox window is closed to help ensure that any trashed messages are
      truly expunged and not simply left in a queue.  If it breaks while you
      are still attempting to view new messages, you will be prompted to
      re-open the Inbox.
      
    * Attachments are listed in the body of the message received, but cannot
      be downloaded -- use a different e-mail client to retrieve them.
    
    * Attachments cannot be added to outgoing mail messages.
}}
set help(elecCompletions) {9.1.3 {
    file "Electrics Help"
}}
set help(backup) {0.2.0 {
    Alpha can automatically make a backup copy for you of the old version of a
    file whenever you save changes.  This is done if you check 'Backup' in the
    preferences dialog "Config > Preferences > Input-Output".
    
    Preferences: Backups
    
    By default the backup file is saved in the same folder, and its name is
    formed by suffixing a tilde to the name of the saved file.  The backup
    behavior can be modified by changing the following preferences found in
    the same dialog pane:

	Backup              

    Check this if you want Alpha to make backups.

	Backup Folder       

    The folder where to save the backups.  If none specified the backups are
    saved in the same folder as the original.

	Backup Extension    

    The extension to add to name of the backup file.  Don't pick a long
    extension!  Depending on the filesystem in use, the complete file 
    name may not be allowed to exceed 31 characters.

	Backup Age Requirement In Hours     

    A new backup file is only created if the old backup file is older than
    this.
    
    If you have chosen a backup folder and want to go back to the default
    behavior of saving the backup in the document's folder, follow these
    steps:

    (1) Delete or rename the backup folder. 
    (2) Save a window.  Alpha will then ask you if you want to create the
        backup folder.  If you answer 'No' Alpha will revert to the default
        behavior.
}}
set help(helpMenu) {1.8.4 {
    file "Help Files Help"
}}
set help(germanUmlaute) {0.2.1 {
    This feature supports the German keyboard in TeX and Bib modes.  Turning
    it on
    
    Preferences: Features
    
    will create the following keyboard shortcuts for the following ascii
    keystrokes in both TeX and Bib modes:
    
	0x21            \"{u}
	Shift-0x21      \"{U}
	0x27            \"{a}
	Shift-0x27      \"{A}
	0x29            \"{o}
	Shift-0x29      \"{O}
	0x1b            \ss 
    
    This feature could also be turned on just for Bib or TeX modes:
    
    Preferences: Mode-Features-TeX
    Preferences: Mode-Features-Bib
    
    although even if turned on "globally" it will only change the bindings
    for these two modes.
}}
set help(VB) {0.1 {
    This mode is for editing Microsoft's Visual Basic files.

    Visual Basic is a graphical programming language and development
    environment created by Microsoft in 1990.
    
    More information can be found here: <http://msdn.microsoft.com/vbasic/>
}}
set help(internationalMenus) {0.4.1 {
    This package changes incompatible menu keyboard shortcuts to keys which
    are useable on any (western) international keyboard.


	  	Table Of Contents

    "# Introduction"
    "# Which menu items are affected?"
    
    "# Teaching Alpha new keyboard layouts"

    
	  	Introduction

    By default, Alpha assumes that your keyboard layout is "U.S.".  As most
    "international" users will notice, keyboard layouts are different in
    different countries!  Therefore some default keyboard shortcuts for
    various menu items need to be adjusted.  For example, on a Swiss keyboard,
    '/' is Shift-7 (which means you have to press Shift to get '/').  This
    means there is no difference between Command-/ and Shift-Command-/ on such
    a keyboard.  In Alpha these two shortcuts used to be mapped separately to
    the menu items "OpenWins > Zoom" and "OpenWins > Single Page".

    If you're using a western keyboard Alpha can solve some of these problems
    for you.  The "International Menus" feature is always on by default (and
    it cannot be turned off).  It replaces some menu shortcuts and solves
    problems like the one just described.  However, only those keyboard
    shortcuts in the global menus "File" to "Windows" are modified.  Other
    menus may still have problems.

    You need to tell Alpha which keyboard layout you're using via the menu
    item "Config > Preferences > System Prefs > International".  (In a future
    version, Alpha should be able to get this information directly from the
    OS.) This will make sure that some bindings not defined in the menus work,
    e.g. that the Electric Braces work.  However, problematic shortcuts
    defined in the various packages are usually not cured by this.
    
    Preferences: International


	  	Which menu items are affected?

    The menu items that the International Menus package change are (depending
    on which keyboard layout you use, some of these may remain unchanged):

	Edit menu: 
	
    Shift Left/Right, Shift Left/Right Space

        Text menu: 
    
    Twiddle, Twiddle Words
	
	Search menu: 
	
    Return to Bookmark, Goto Line, Hilite To Pin

	Windows menu:

    Zoom, Default Size, Choose A Window


	====================================================================


	  	Teaching Alpha new keyboard layouts 

    This is really an advanced topic, and if might not be of much help if
    you're new to either Tcl or AlphaTcl.  This section assumes that you have
    read the Help file section "Alpha Manual # Changing Alpha's behavior".

    If you're not using a western keyboard or if you do encounter any
    problems, reading the following section might help to clarify things and
    could help you to fix the problem.  If you need help defining a new
    keyboard layout, ask a question on one of the mailing lists described in
    the "Readme" file.

    To solve the problem with shortcuts in the menus you can use the AlphaTcl
    proc: menu::replaceWith.  To solve the problem with the Swiss keyboard
    described above you would add the following to your preferences file:
       
	menu::replaceWith winMenu [list "//<Szoom" "//<S<I<OsinglePage"]  items "<S//zoom" "<S<O<U/=singlePage"

    To define your keyboard layout, add a line like this to your "prefs.tcl"
    file:

	set "keyboards(U.S.)" {
	 {1234567890-=[];'\`,./}
	 {!@#$%^&*()_+{}:"|~<>?}
	 <U/[
	 <U/]
	}

    The first two lines tell Alpha how to map using the 'Shift' key.  Shift
    maps each item in the upper string into the corresponding item in the
    lower string.

    The third and forth lines defines the keyboard shortcuts for the left and
    right braces, in this example to Shift-[ and Shift-].

    See the file "alphaDefinitions.tcl" for examples of keyboard layout
    definitions, and the source for this package ("internationalMenus.tcl")
    for more examples.

    If you define an array entry keyboards(my-country), then you can just
    select that in the international prefs dialog, and Alpha will set the
    flags correctly.  You can then send that keyboard array entry to the
    AlphaTcl-Users mailing list for inclusion in a future version of Alpha.

    If a package wishes to be told when the keyboard changes, it can do that
    by registering with the 'removekeyboard' or 'keyboard' hooks like this:

	# tell me when we switch to a "Swiss German" keyboard
	hook::register keyboard keys::swiss "Swiss German"
	# tell me when we disable a keyboard
	hook::register removekeyboard my_disable_proc
	# tell me when we enable a keyboard
	hook::register keyboard my_enable_proc

    In this way a clever package could remove the need for restarting Alpha by
    unbinding and then rebinding all necessary items.
}}
set help(statusPopupMenus) {1.1 {
    This package creates pop-up menus in the status bar.  A brief description
    for each is given below, along with hyperlinks for further information.
    
    "# Wrap Style"
    "# File Info"
    "# Current Mode"    
    "# Encodings"
    
	  	Wrap Style
    
    Each window has a "wrap" style associated with it, which determines how
    text is entered and/or displayed when a line exceeds a pre-set length.
    The initial wrap style is determined by the "Line Wrap" preference for
    the mode of the active window.  (The column in which wrapping comes into
    play is generally the "Fill Column" preference amount for the mode
    of the active window.)
    
    When you change the wrap style using the status bar pop-up menu, you are
    changing the setting only for the active window, and only for this
    editing session.  When you restart Alpha (or if you simply close and
    re-open the file) the initial style will revert to the default setting, i.e. the
    current mode's "Line Wrap" preference.
    
    Preferences: Mode
    
    See "Alpha Manual # Text Wrapping" for more information.
    
	  	File Info
    
    You can change several different settings for the active window using the
    "File Info" pop-up menu in the status bar.  Many of these will only be
    presented if the window exists as a file on a local disk.
    
	Line Endings
    
    Line endings can be set for Mac (\r), Unix (\n), or DOS/windows (\r\n).
    ALPHA will open and edit files with any line-ending; this setting
    determines how the line-endings will be stored in the actual file.
    
    See "Alpha Manual # File formats" for more information.
    
	Window State
    
    (AlphaX only.)
    
    When "Remember Window State" is selected, the current position (including
    any selection), font settings, and window geometry is "remembered"
    between editing sessions, with the information saved in the file's
    resource fork.  Select "Forget Window State" to stop remembering.  This
    setting is specific to the active window.
    
    The "Delete Resource Fork" item will remove the contents of the current
    resource fork; this cannot be undone.
    
	File State
    
    The "Show In Finder" and "Get Info" items do what they say.
    
    On a unix platform (such as Mac OS X), you can set the "Permissions"
    associated with the file.  The initial value in the dialog reflects the
    current permissions.
    
    The "Executable" item is toggleable; when the file of the active window
    is an executable it is preceded by a bullet.
    
	Display Parameters
    
    The commands "Lock File" and "Unlock File" will toggle the "Read-Only"
    status of the active window.
    
    The commands "Show Invisibles" and "Hide Invisibles" affect the display
    all "invisible" characters such as spaces, tabs, and returns.
    
    The current font, font-size, tab-size, and indentation amount can be set
    for the active window.  If the file is set to remember the window state,
    all of these settings _except_ the indentation amount will be saved when
    the window is closed and re-opened later.  (The indentation always
    reverts to the global or mode-specific preferences.)
    
    The "Set window to defaults" item will be enabled if any of the current
    values differ from those set as your defaults in the "Appearance"
    preference settings.
    
    Preferences: Appearance
    
    Selecting this item will change all of the settings in this section to
    those defaults for the active window.
    
	Creator
    
    (Mac OS X only.)
    
    You can set the file's "Creator" and "Type" code by selecting the
    appropriate items.  If the codes are not those specified for ALPHA, the
    "Set ALPHA As Creator" item will be enabled.
    
	  	Current Mode
    
    The current mode of the active window is displayed in this pop-up menu as
    a bulleted item.  You can select any of the other modes listed to change
    the mode of the active window.  This change will remain in effect until
    this window is closed or you quit ALPHA.  When you re-open the file,
    the standard algorithms for determining the initial mode for new windows
    will once again be used.
    
    By default, only a small set of ALPHA's many installed modes are listed
    as options in this menu.  You can select "More Choices" to be presented
    with the complete list of installed modes.
    
    As new modes are loaded, they will be automatically added to the list
    presented as items in this menu.  By default, these newly loaded modes
    will be "remembered" between editing sessions for inclusion in this menu.
    The "Set Defaults" menu item allows you to adjust this list, as well as
    other preferences associated with the presentation of this menu.
    
    (Tip: use the "Browse" button in the "Set Defaults" dialog to select
    modes; this will ensure that they are spelled correctly.  Anything you
    select will be added to the dialog's current field value.)
    
    See "Alpha Manual # Modes" for more information.
    
	  	Encodings
    
    If the "Encodings" pop-up menu is present, then ALPHA supports the
    editing of files using different encodings.  The current encoding is
    always indicated in this menu as a bulleted item.  Additional encodings
    are listed if they are included in the "Preferred Encodings" preference.
    You can select the command "Set Preferred" to adjust this list.
    
    (Tip: use the "Browse" button in the "Set Preferred" dialog to select
    encodings; this will ensure that they are spelled correctly.  Anything
    you select will be added to the dialog's current field value.)
    
    See "Alpha Manual # File encodings" for more information.
}}
set help(emacs) {0.3.3 {
    file "Emacs Help"
}}
set help(m4) {0.1 {
    Supports editing of files for 'm4' the UNIX macro processor 
    (see http://www.gnu.org/software/m4/manual/m4.html). 
    
    This mode currently supports file marking, syntax coloring and word
    completion. To quote a word or a selection, use cmd-'. This will
    enclose the word or the selected area between ` ' quotes, which are
    m4's default quotes. These can be modified with the "leftQuote" and
    "rightQuote" preferences in m4 mode.
}}
set help(rememberWindows) {0.4.0 {
    This feature will record information about windows when they are closed, so
    the cursor position, selection, etc.  can be restored the next time that
    window is opened.
    
    Preferences: Features
    
    The following window information is saved and re-introduced when the
    same window is subsequently opened:
      - cursor position
      - selection 
      - first line displayed
      - mode (if it was manually changed)
      - tabsize (again, if manually changed)
      - manually applied colours/styles and hypertext links
      - window size (width, height), position
      - which sections of text in the window have been folded (hidden)
      - whether the window had a vertical margin with line numbers showing
    
    This feature is only useful for Alphatk since Alpha already does
    most of this by storing the information in the MacOS resource fork
    of each file.  (See the "Alpha Manual # File formats" Help file
    section for more information.)
}}
set help(identities) {0.3 {
    This package allows you to create multiple identities when using ALPHA.
    Inspect the "Config > Preferences > Current Identity" menu for the
    commands which allow you to create new and edit current identities.
    These identities are used by other AlphaTcl features to create window
    templates, such as the package: documentProjects .
    
    Click on this hyperlink:
    
    <<userInfo::identityDialog "edit">>
    
    to change the settings for your current identity.
    
    Click on this hyperlink:
    
    <<userInfo::identityDialog "new">>
    
    to create a new identity.  Once you have defined multiple identities, the
    current one is marked in the "Config > Preferences > Current Identity"
    menu.  Selecting a different identity will make that one current.
    
    You don't need to suffer from any multiple personality disorder in order
    to make use of multiple identities.  You might use the same author name,
    but work on projects for different organisations, with different e-mail
    addresses or contact information...
    
    Note: There always exists one "Default" identity; you can edit its values
    but you cannot delete it.  The items in the Default identity are used as
    the initial values for any new identity.

	----------------------------------------------------------------
    
    This feature was designed to make it easier for other AlphaTcl packages
    share information amongst each other, such as the name of the current
    project defined by the package: documentProjects, or the path/name of the
    active window.  This information is often used in electric templates.
    Click here

    <<listpick [userInfo::listFields "all"]>>

    to see what is currently available.
    
    AlphaTcl developers can click here: <<userInfo::developerHelp>> for more
    information about how to use this package in their own code.
}}
set help(openWindowsMenu) {1.0 {
    Windows menu
    
    This package creates and maintains the "Open Windows" menu, found in the
    main menu bar.  Use this menu to choose between open windows, and to
    adjust the shape or arrangement of existing windows
    
    This is a 'core' package that should never be turned off or uninstalled.
}}
set help(calculator) {1.0 {
    file "Calculator Help"
}}
set help(vfsFileset) {0.3.7 {
    Mount VFS filesets and edit their contents from Alphatk.  This package
    always provides a 'vfs' fileset type (you don't need to activate the
    package to use it).  This fileset type lets you specify any supported url
    and mount its contents for editing.  The set of urls supported are those
    which can be mounted by 'vfs::urlMount' in Tcl's vfs package, and any
    local files (i.e. file:// urls) which can be mounted by the 'vfs::auto'
    command.
    
    In addition, if activated, this package lets you auto-mount and edit the
    contents of virtual filesystems.  If you try to 'Open...'  a .zip or .kit
    file, for instance, Alpha will mount the contents of the file as a
    virtual filesystem, and let you edit the contents.  The types of files
    which are supported in this way are limited by those supported by the
    'vfs::auto' command of Tcl's vfs package.
}}
set help(makeMenu) {0.2 {
    This package provides a 'Make Menu' that can be activated for any mode,
    but is probably only useful for "C C++ Java Pasc" modes.
    
    The menu items will try to 'make' the current window provided a makefile
    can be found.  It creates a new fileset option for 'Makefile location'
    which can be attached to any current fileset.
    
    This is really just a template for anyone who might want to implement
    some of this.  See the source file "makeMenu.tcl" for more information.
}}
set help(Scil) {1.0 {
    Scilab Mode supplies a menu for easy switching to Scilab.  The mode
    automatically scans Scilab's 'Help' directory to pick up all Scilab
    keywords so they can be coloured.  
    
    Command-Double-Clicking on a keyword opens up a window with the help
    information for that keyword.  This can be optionally made to open in
    Scilab itself, adjust the "Alpha Opens Help Files" preference.
    
    Preferences: Mode-Scil
    
    Click on this "Scilab Example.sci" link for an example syntax file.
}}
set help(reportABug) {1.7.4 {
    file "Alpha-Bugzilla Help"
}}
set help(colorMenu) {1.2.3 {
    This menu helps with the manual application of colors and hyperlinks to
    Alpha files.  The "Color Menu > Window Colors > Colorize Patterns" menu
    item allows you to perform a global search-and-color for specified words
    or regular expressions in the current window.  Additional submenus provide
    options for colorizing/stylizing/marking the currently selected region, or
    to add hyperlinks for Alpha/Tcl commands, urls, or e-mails.
    
    Preferences: Menus

    Most menu items can be assigned personalized keyboard shortcuts by
    selecting "Color Menu > Color Options > Assign Menu Bindings".

    IMPORTANT: If you create colors/hypers in a window, you MUST set the
    saved state of the file to "MPW" in order for them to be 'remembered'
    when you save/close the window.  Use the 'Format' popup menu in the
    status bar window to change this setting.  The preferences: Window dialog
    includes a preferences for the default saved state for all files.

    As of this writing, if you're using the Windos OS no colors will ever be
    saved no matter what you do, so this package will be of little use beyond
    creating some temporary highlights in a window.
    
    As of this writing, attempting to color text "manually" using this menu
    interferes with syntax coloring in Alpha8 and AlphaX. This is a known
    issue, there is no timetable for fixing this.

    Select "Color Menu > Color Options > Color Menu Prefs" to set the default
    colors used for creating hypertext links.  Note that the "Redefine Colors"
    menu item allows you to change the color settings used by Alpha/tk in all
    of its colorized windows, although some changes might not take full effect
    until to restart the application.  See help for the package: colorPrefs
    for more information about changing Alpha's colors.
    
    This package also creates two contextual menu submenu modules that are
    available even if this package has not been turned on globally -- they are
    named "Create Hyperlink" and "Color Style Text".
    
    Preferences: ContextualMenu

    While any colors set using this menu will not be recognized if you
    subsequently open the document any application other than Alpha/tk, they
    might be retained if sent to a color printer.  (You'll have to experiment
    to find out if your Alpha 8/X/tk application supports this feature, it
    has been reported as a 'Request For Enhancement in Bug# 324.)

	Developers Note

    This menu used to be used extensively to create marks, colors and
    hyperlinks in AlphaTcl's Help file documents (such as this window).

    AlphaTcl v 7.4 and above now uses automatic marking/coloring/hyperising
    to properly format these files and windows, see the "Help Files Help"
    file for more information.  Note that files committed to the AlphaTcl cvs
    never include the resource fork of the original file, so if that is your
    document's final destination you probably shouldn't spend a whole lot of
    time creating marks/colors/hyperlinks manually using this menu.
    
    The "Color Menu > Window Colors > Mimic Help Menu" menu command, however,
    is very useful for 'debugging' window marks/colors/hypers etc.  to see how
    the window will be marked when the user opens it the first time.  (The
    "AlphaDev > Help File Marking > Mimic Help Menu" item is identical, both
    calling [help::mimicHelpMenu], and is included here more for convenience
    than anything else, although it might be useful for users who have messed
    up colors in their help file windows.
}}
set help(macros) {2.0.1 {
    file "Macros Help"
}}
set help(tkhtmlViewer) {0.2 {
    Allows viewing of html files (for example, some of Alphatk's help pages)
    in Alphatk, by launching a Tkhtml widget in a separate interpreter.  A
    new "View Html Using" preference option named "Internal tkhtml widget" is
    available in the WWW preferences dialog.
    
    Preferences: Helpers-viewHTML
    
    If you select this option, Alphatk will use the Tkhtml widget for viewing
    local .html files.
}}
set help(marks) {1.0.1 {
    This auto-loading extension package helps create/navigate different types
    of marks within windows.  Alpha allows the user to use "marks" to
    remember positions in files.  Marks "float".  That is, if a mark is
    initially at position 312 and then five characters are inserted at
    location 297, the mark's new value will be 317.

    
	  	Table Of Contents


    "# Introduction"
    "# Permanent, Named Marks"
    "# The Window Pin"
    "# Bookmarks"
    "# Funcs Menu"
    
    <<floatNamedMarks>>
    

	  	Introduction
    
    Alpha uses three different types of marks.  One type of mark, referred to
    as "# Permanent, Named Marks", can be accessed via the 'Marks Menu' in
    the sidebar of every open window.  The Marks Menu is the one labelled
    with an M or using a paperclip icon.  Other types of window marks include
    "# The Window Pin" and "# Bookmarks".
    
    This package also implements the "# Funcs Menu" in the sidebar, which is
    an alternative, dynamically created set of named window positions.  The
    Funcs Menu has the {} icon.
    

	  	Permanent, Named Marks

    The first type of mark are the permanent marks.  Permanent marks are set,
    removed, and moved-to through the three corresponding menu items in the
    "Search > Named Marks" menu.  Permanent marks differ from the generic mark
    in that they have names, there can be any number of them, and they are
    saved in the resource fork if the file is subsequently saved.

    But setting individual marks 'by hand' can get real old real fast.  Most
    modes define their owning marking scheme based on the context of the
    current window.  Selecting 'Mark file' will generate marks for the
    current window.  In TeX mode, for example, chapters/sections etc defined
    by the strings
    
	\section{<section title>}
    
    will be identified as permanent window marks using the "Mark Window" menu
    item.  The "Marks" menu lists all marks for the current window, and
    allows them to be cleared or automatically created.  Selecting any named
    mark in the Marks menu will move the cursor to that position.  The marks
    are saved when you save the file.
    
    Refer to the mode specific help files for information about which marks
    are generated in a specific mode.

    Permanent marks can be accessed via the "Search > Named Marks" menu items,
    by a popup menu called by mousing down on the Marks Menu icon above a
    vertical scrollbar, or by Command-mousing on a window's titlebar.

    Tip: Control-Command-K will put up a listpick dialog with the current
    marks of the window.

    Tip: Command-Shift-F will create a floating menu with all of the marks in
    the current window as menu items.  Whenever you 're-mark' a window, this
    floating menu will be updated with the current marks.


	  	The Window Pin
    
    The second type of mark is referred to as "window pin".  The pin is set to
    the current insertion point by the command 'Set Pin' (Control-Space).
    (This requires that the Emacs feature is active.)  The position in the
    file indicated by the blinking cursor is referred to as the current
    insertion point.  Once the pin is set, you can use it in a variety of
    "Search > The Pin" submenu operations, such as

	Exchange Point And Pin
	Hilite To Pin

    You should try experimenting with these operations until you get used to
    them, but after a while you might see how handy they are.
    
    Tip: while the 'Hilite To Pin' has a keyboard shortcut listed in the menu,
    you'll notice that 'Exchange Point And Pin' does not.  If your keyboard
    has a numeric keypad, you should note that by default Alpha takes over the
    keypad for various navigation functions.  You can toggle this behavior on
    and off by pressing Shift-Numlock/Clear.  When the keypad is locked, NLCK
    will appear in the status bar window -- click here <<toggleNumLock>>
    several times to find it.  Keypad-5 is bound to 'Exchange Point And Pin'.
    Keypad-2 is also bound to "Hilite To Pin" for your convenience.
    
    Some commands (such as "Cut" and "Copy") can operate either on the
    currently selected (hilighted) text, or the text between the current
    insertion point and "the pin".  This is only true if the preference named
    "Cut And Copy Using Pin" is set in the preferences: Text dialog.

    For example, if you move the cursor to the beginning of the word
    "allybaba", press your keyboard shortcut for "Search > The Pin > Set Pin"
    (the status bar should say "Pin set"), move to the end of the word and hit
    Option-W or your keyboard shortcut for "Edit > Copy" (the status bar
    should say "Region copied"), the effect is the same as if you had used the
    mouse to select the text (or first called 'Hilite To Pin') and then
    selected the "Edit > Copy" menu command.

    
	  	Bookmarks

    Alpha also uses 'temporary' marks in many of its AlphaTcl routines.  Most
    of these temp marks are created/deleted behind the scenes, but one use of
    them involves the placing of 'bookmarks' throughout your collection of
    open windows.  Created via the "Search > Place Bookmark" menu item (or its
    associated keyboard shortcut), bookmarks are stacked in an incremental
    list.  The "Search > Return To Bookmark" menu item will return you to the
    most recently placed bookmark, removing it permanently from the top of the
    list.  If the last bookmark was in different window, that window is first
    brought to the front.  If the window in which that bookmark was place has
    been closed but exists on your local disk, it will be opened for you.
    
    Bookmarks are often placed for you when you perform specific actions. 
    For example, if you Command-Double-Click on a region, and the current
    mode's Command-Double-Click routine moves you to a different part of the
    current window, often a bookmark will be placed to make it easy for you
    to return to your starting point.  Clicking on hyperlinks in help windows
    will also create a bookmark so that you can easily return to where you
    started.  For example, this hyperlink "# The Window Pin" will both jump
    to that mark in this window, and place a bookmark so that you can return
    here once you're done reading that section again.  Try it!  In general,
    you will be informed in the status bar window that a bookmark has been
    automatically placed for you.


	  	Funcs Menu

    Above the vertical scrollbar on the right is an icon with curly braces
    ('{}').  This is the so called "Funcs" menu.  The content of this menu is
    mode dependent, but for modes for programming languages it usually lists
    function definitions of the current window.  Select a function in the
    menu to jump to its definition in the window.  Refer the mode specific
    help files for details about the Funcs menu for a specific mode.  The
    menu is built when you press the braces, so it is always up-to-date.

    By default, the content in this menu is sorted alphanumerically.  This
    feature can be turned off via the preference 'Sort Funcs Menu' in the
    dialog "Config > Preferences > Interface".  Note that Text mode doesn't
    have any 'function parsing' routine, so this menu is disabled for this
    window.
    
    Preferences: Appearance

    Power user tip: Command-Option-K will put up a listpick dialog of the
    content of the '{}' menu.  As this is usually alphabetical you can type
    the starting letters of the index you want to go to.

    
	==============================================================


	  	Developers Notes
    
    In order for the Marks menu to work for your mode, you need to create a
    <mode>::MarkFile procedure that is loaded when your mode is first
    sourced.  (It will _not_ be auto-loaded.)  For some examples, see the
    proc: Tcl::MarkFile or the proc: Pasc::MarkFile -- most modes contain
    mark file procedures that you can also pirate as necessary.
    
    In order for the ParseFuncs {} pop-up menu to work, you need to either
    define a <mode>::ParseFunces procedure, or else define mode preferences
    for 'parseFuncs' and 'funcExpr'.  Again, consult any of the existing
    modes for more examples.  The file "marks.tcl" contains several different
    utilities for sorting, displaying, floating etc all of the permanent
    marks in the current (or any open) window.
}}
set help(Clan) {1.1 {
    CLAN is a program that is designed specifically to analyze data
    transcribed in the format of the Child Language Data Exchange System
    (CHILDES).  CLAN was written by Leonid Spektor at Carnegie Mellon
    University.  The current version uses a graphic user interface and runs
    on both Macintosh and Windows machines.  Earlier versions also ran on DOS
    and Unix without a graphic user interface.  CLAN allows you to perform a
    large number of automatic analyses on transcript data.  The analyses
    include fre-quency counts, word searches, co-occurrence analyses, mean
    length of utterance (MLU) counts, interactional analyses, text changes,
    and morphosyntactic analysis.

    For more information, see <http://childes.psy.cmu.edu>.

    Click here "CLAN Example.cha" for an example syntax file.
}}
set help(versionControl) {0.3.1 {
    file "Version Control Help"
}}
set help(speech) {1.3.2 {
    This package provides the ability to speak text using the Mac OS speech
    facilities.  Click here <<speak::testPackage>> to find out if this
    package is available.  If it is, see the "# Basic Usage" section below,
    otherwise check the "# Requirements" section.

    
	  	Table Of Contents

    "# Basic Usage"
    "# Speech Settings"
    "# Speech Console"
    
    "# Requirements"
    "#  Mac OS"
    "#  Speech Manager Extension"
    "#  TclSpeech"
    "# Developers Note"

    <<floatNamedMarks>>

   
	  	Basic Usage
    
    This package creates an "Edit > Speech" submenu, which allows you to
    speak the current selected text, type in your own text to speak, or
    adjust settings.  While text is being spoken to you by your OS, a special
    speech console <<speak::speechConsole>> can be created as a floating menu
    allowing you to pause, resume, or stop the speech.
    
    The "Edit > Speech > Start Speaking" command will begin speaking the
    current selected text in the active window.  If there is no selection,
    you will be prompted to enter some text, as if you had selected the
    command "Edit > Speech > Speak Text".
    
    The "Pause" command will suspend speaking, and then the "Resume" command
    will be available.  The "Edit > Speech > Stop Speaking" command will
    clear the speaking queue.
    
    
	  	Speech Settings
    
    You can adjust how the text is spoken to you by the OS.
    
    Click here <<speak::describeVoices>> to see a listing of all voices
    currently available.
    
    Click here <<speak::speechPrefs>> to change the current voice used by
    this package.  (This will not necessarily be your default OS voice.)
    
    Click here <<speak::speechShortcuts>> to add keyboard shortcuts to the
    different menu commands.
    
    This package also creates a contextual menu module to speak the selected
    region surrounding the current 'click' position.  This "Speech" module is
    always available, even if this package has not been activated globally.
    
    Preferences: ContextualMenu
    
    
	  	Speech Console
    
    While text is being spoken a "Speech Console" utility window can appear
    allowing you to pause, resume, or stop the speaking.  Select the command
    "Edit > Speech > Speech Console" to display it.
    
    <<speak::speechConsole>>
    
    Select the "Set Console Parameters" to change the default location of
    this utility window.  
    
    In the <<speak::speechPrefs>> dialog you can turn on the preference named
    "Auto Open Speech Console" if you want this console available whenever
    speech is spoken, and turn on "Auto Close Speech Console" if you want
    to remove the console when speaking is done.
    
    
	====================================================================
    

	  	Requirements

	  	 	Mac OS

    As of this writing, only applications in the Mac OS (both X and Classic)
    support this feature.
    
	  	 	Speech Manager Extension
    
    As of this writing, another requirement is the Mac OS "Speech Manager"
    extension.  In MacClassic (Alpha8), you can make sure that this is active
    by clicking here <<speak::openControlPanel "Extensions Manager">> to see
    if its checkbox has been checked.  If not, turn it on and continue to
    read the rest of this section -- you will, however, need to close ALPHA
    and reboot your OS in order to use this package.
    
    Speech should be available in all versions of Mac OS X.

	  	 	TclSpeech
    
    The TclSpeech package (by Mats Bengtsson) is been included in the BI
    distribution of Tcl/Tk (version 8.4) for Mac OS X .  Open a <<tclShell>>
    window and enter this command:

	% package require TclSpeech 2.0
   
    to find out if it is available.  If you don't have it, then you can
    download it from here if you're using OSX:
    
    <http://hem.fyristorg.com/matben/download/TclSpeech2.0.sit>
    
    If you're using Alpha8 in MacClassic, you can download Bernard's port of
    the .shlib Tcl extension "TclSpeech" from here:
   
    <http://webperso.easyconnect.fr/bdesgraupes/Downloads/Tclspeech_2.0.sit.hqx>

    and install it in your "System:Extensions:Tool Command Language" folder.
    
    After installing the Tool Command Language extension in the appropriate
    folder, click here <<speak::testPackage>> to find out if the package is
    now recognized.  It shouldn't be necessary to restart ALPHA, or to reboot
    your OS. If it still doesn't work after trying all of this, send a post
    to one of the AlphaTcl mailing lists described in the "Readme" file, or
    contact the maintainer of this package listed above.


	  	Developers Note
    
    The proc: speak::speakText can be called even if this package has not
    been formally activated.  [speak::speakText] will return '1' if speaking
    has started, and '0' if the TclSpeech package was not available -- there
    is no need to perform any package checks before calling this proc.  (If
    desired, you can query the proc: speak::speechIsAvailable to find out if
    speech utilities are currently available.)
    
    The advantage of calling [speak::speakText] over [::speech::speak] is
    that our AlphaTcl interface procedures will respect the user's settings
    for voice/pitch/rate and create the handy floating speech console
    (without which it is not possible for the user to turn off or pause the
    current speaking operation!)
}}
set help(mailSystem) {2.0 {
    This package enables the sending of messages with the package: mailMenu
    using your OS-defined mailer client.
    
    To change the current mail handler to "OS Mailer", simply select this
    item in the "Mail Help > Mail Handler" menu.  Once you have done so,
    selecing the "Mail Menu > Send" command will compile the contents of the
    current Mail window to your OS client, opening a new window.  You must
    use this client to actually send the message.
    
    (More to be added.)
}}
set help(incrementalSearch) {1.2.1 {
    This "always-on" extension package implements incremental searching in
    the active window.  Incremental searches bypass the normal search dialog
    and search for the current text after each keystroke.  The result is often
    much faster and less intrusive.  Incremental searches are invoked by
    selecting "Search > Quick Find" and "Search > Reverse Quick Find".
    
    Start the search by selecting the menu item or by pressing its keyboard
    shortcut, then start typing the word you are searching for.  After each
    letter you've typed Alpha jumps to the nearest point in the text matching
    what you have typed so far.  The search string is also displayed in the
    status bar.

    Typing Control-S or Control-R again while an incremental search is in
    progress causes the search to proceed to the next instance of the current
    text.  Typing Control-W while incremental search is active causes all the
    characters to the end of the next word boundary to be added to the search.

    In Alphatk other pieces of text matching the current search are
    underlined, letting you easily see the upcoming matches.
    
    Pressing the "Delete" key, or clicking on the window with the mouse will
    remove the most recent keystroke from the search pattern, and back up the
    search to the most recent find, acting as an internal "Undo" command
    while searching incrementally.

    To escape or stop a search, press "Return", any of the arrow navigation
    keys, or the "Page Up/Down/etc" document navigation keys.
    
    The following keyboard shortcuts are also available during interactive
    searches:
    
    Closest occurrence before current match
     
	Command-Option G
	Control-R (mnemonic 'reverse')
       
    Closest occurrence after current match
     
	Command-G
	Control-S (mnemonic 'successor')
     
	  	Text Navigation

    "Forward Char" (aborts and leaves cursor after last match)

	Right-Arrow
	Control-F (emacs)

    "Backward Char" (aborts and leaves cursor before last match)
     
	Left-Arrow
	Control-B (emacs)
       
    "Beginning Of Line" (aborts and moves cursors to the start of the line
     containing the last match)
	
	Command-Left-Arrow
	Control-A (emacs)
       
    "Beginning Of Line" (aborts and moves cursors to the start of the line
    containing the last match)
	
	Command-Right-Arrow
	Control-E (emacs)
       
    "Center Redraw" (moves selection to center, without aborting)
     
	Control-L
      
    "Insert To Top" (moves selection to top, without aborting)
     
	Control-T
      
    Add the rest of the current word to the search string.
    
	Control-W
     
	  	Text Manipulation

    "Delete Selection" (aborts and deletes selection)
     
	Control-D (emacs)
       
    "Kill Line" (aborts and deletes from start of selection to end of line)
     
	Control-K (emacs)
       
	  	Changing the search type:
       
     Switch the case-sensitivity of the current search
     
	Control-I
     
     Toggle interpretation of \n,\r,\t in non-regexp searches
     
	Control-Backslash


     No other menu items can be invoked during incremental searches.
}}
set help(newDocument) {1.0.3 {
    This package offers a variety of 'New Document' options for creating
    new windows, including a preset list of template options created by
    other packages in AlphaTcl, as well as different new window 'handlers'
    as described below.  After the package has been activated, 
    
    Preferences: Features
    
    the "File > New" menu item is replaced by a submenu of the same name.

	  	Table Of Contents

    "# The New Document Menu"
    "# New Document Preferences"
    "# Contextual Menu Module"
    
    <<floatNamedMarks>>


	  	The New Document Menu

    The new "File > New" menu includes all of the possible "New Document"
    options that have been registered by other AlphaTcl packages (such as
    creating a new e-mail message, or inserting a template for a new HTML or
    LaTeX document.)  You can select any of them to evaluate the associated
    script.
    
    Click some of these hyperlinks for an example:
    
    <<newDocument::menuProc "" "New Email Message">>
    <<newDocument::menuProc "" "New LaTeX Doc">>
    <<newDocument::menuProc "" "New HTML Doc">>
    
    Selecting the "File > New > Create A New" menu item presents a dialog
    that looks like <<::newDocument::selectType>> which includes the entire
    list of the preset options.  Select "File > New > New Text Window" to
    only be prompted for a window name.  When you create a new document/text
    window your "New Document Handler" is used to complete the process, as
    described below.
    
    If you simply want to open a new untitled window without being prompted
    any further for window names or other options, then select the menu item
    "File > New Document > Untitled Window".  You can assign a Keyboard
    Shortcut to this item, as well as to any other "File > New" item by
    selecting "File > new Document > New Document Shortcuts".
    
    
	  	New Document Preferences

    For new windows which aren't templates, this package has some different
    preferences to help determine how many additional options should be
    presented.  These preferences are available by selecting the "Prefs"
    button in the "File > New > Create A new" dialog, or (after the package
    has been activated) by the "File > New > New Document Prefs" menu item.
    
    Preferences: newDocument
 
    The options include:

	Untitled Docs Are Empty

    Set this preference to always open 'untitled' windows without any extra
    template information created by your New Document Handler.
    
	New Document Handler
	
    Initially set to 'Alpha', this preference determines which package should
    handle new open windows.  'Alpha' will simply open a new window, with
    prompting you for any additional information.
    
    The package: documentProjects creates an additional handler that you can
    select.  The "Doc Projects" handler will optionally add header info at
    the top of the window, or insert additional template information.  (You
    have to activate the "Document Projects" feature to have access to this
    handler.)  Many of the "Doc Projects" headers are only useful after you
    have created your identity and defined some projects -- see the
    "documentProjects Help" window for more information.
    
	----------------------------------------------------------------

	  	Contextual Menu Module
    
    A Contextual Menu "New Document" module is also available which
    provides a submenu with all New Document options.
    
    Preferences: ContextualMenu
    
    It is not necessary to formally turn this package on in order to have
    access to this CM module.
}}
set help(elecExpansions) {9.1.3 {
    This package provides a different kind of word completion than the
    package: elecCompletions.  When you find yourself typing a lot of
    variable and function names over and over, and these names are
    word-combinations where the name is formed by either capitalizing each
    word or separating them with an underscore, just type the initial
    letter of each word and invoke an acronym expansion instead by using
    the 'expansion' key.  The "Config --> Special Keys" menu item allows
    you to set/change this key; you can access this dialog now by clicking
    here: <<global::specialKeys>>
    
    The idea of this package is to allow you to type a string consisting of
    the initial letters of the words that have been joined to make up a
    variable, function, or procedure name.  This is often shorter and more
    natural than typing a few letters and using electric completions.  As I
    developed this routine I found that a regexp for more than three
    letters caused search to choke so only those letters of a "hint" are
    significant.  A three letter pattern is used for the search.
    
    After a possible hit is located, it is turned into an acronym and
    checked against the "hint".  The string you are going to use expansion
    on can be entered in uppercase, lowercase, or any combination.  The
    words in the target you are trying to hit have to start with a capital
    (except the first word), or, be separated by an underscore or a colon.
    
    The hint can be embedded between non-alphabetic characters and certain
    punctuation marks:
    
	[ ( { , ; : ' " ] ) }  
    
    The expanded hint remains so embedded, and the cursor appears
    beyond the trailing punctuation.  Any whitespace between the hint and
    the cursor is also preserved.
    
    e.g. if 'sin($gl)' was expanded (in the file "elecExpansions.tcl"), 
    we would get 
    
	sin($__Gcw_len)
    
    Similarly, 'mouse($gph', would expand to
    
	mouse($__Gcw_prevHint,
    
    done twice, we would get
    
	mouse($__Gcw_prevHit,

    Take the "Text Tutorial" for a demonstration.
    
    See the "Electrics Help" file for more information about electrics.
}}
set help(toolboxRefMenu) {1.1 {
    This menu provides access to the QuickView Toolbox Assistant.
    
    The QuickView application (MacClassic) is available here:

    <ftp://ftp.apple.com/developer/Technical_Documentation/Toolbox_Assistant_Updates/QuickView.sit.hqx>

    and here:

    <ftp://ftp.apple.com/developer/Tool_Chest/Core_Mac_OS_Tools/MPW_etc./Documentation/MPW_Reference/QuickView.sit.hqx>
}}
set help(filesetMenu) {2.1.6 {
    file "Filesets Help"
}}
set help(wikiMenu) {1.2b8 {
    file "Wiki Menu Help"
}}
set help(Igor) {1.1.1 {
    Igor Mode supplies a menu for easy switching between Igor and Alpha,
    and provides keyword coloring.

    Click on this "Igor Example.igor" link for an example syntax file.
}}
set help(filesetRemoteMirror) {0.4.0 {
    This "Fileset Information" preference allows you to mirror a given
    fileset onto a remote site.  
    
    To use it, you can <<editAFileset>>, click on the "Attach Info" button,
    and click on the checkbox next to "Fileset Remote Mirror".  After clicking
    on the OK button, the "Edit A Fileset" dialog for this particular fileset
    will now have text-edit fields for server/username information.
   
    Now, whenever you would like to mirror the files, select the menu item
    "Fileset Menu > Utilities > Update Fileset Mirror", and you will be given
    a variety of options for which files to upload.
    
    IMPORTANT: If you're using Anarchy/Interarchy, files on your server not
    found on your disk will be deleted from the server!!
}}
set help(copyRing) {1.7.4 {
    file "Copy Ring Help"
}}
set help(voodooMenu) {2.0.2 {
    file "VOODOO Help"
}}
set help(S) {2.3 {
    file "Statistical Modes Help"
}}
set help(recentFiles) {1.3 {
    This package creates the "File > Open Recent" submenu, which by default
    includes all recent files opened in ALPHA in the order in which they
    were last opened.
    
    You can adjust the method in which these files are displayed
    
    Preferences: recentFiles
    
    such as listing files in alphabetical order, including full path names in
    the menu, and setting the number of recent files which should be added.
    
    It also allows you to define different "groups" of recent files, which
    will then be categorized into separate submenus.  You might be working on
    a number of different projects: Tcl code for ALPHA, various programming
    projects, perhaps some web-page design, ...
     
    When you switch from working on one project to the next, you might be
    annoyed by the fact that the recent files menu is full of files from the
    previous project, _and_ the particular 5 or 10 files that you were
    working on before in this project have of course long ago vanished from
    the recent files menu.
    
    This package seeks to get around that problem, by using the concept of
    groups of recent files, defined by where they lie in your filesystem.
    So, anything in the 'ALPHA' hierarchy is in a separate group to
    anything in your 'Programming' hierarchy which is in a different group to
    your 'html' hierarchy.  Recently used files in these different groups are
    remembered separately.
    
    The "File > Open Recent" menu will include the items in the most recently
    used group at the top of the list, and places in submenus the items in
    all other groups.  A "Miscellaneous" group contains items which don't fit
    into any other.
}}
set help(ODBEditor) {1.0b3 {
    This package allows Alpha to act as an external editor for applications
    that support Bare Bones' ODB Editor suite.  
    
    <http://www.barebones.com/support/developer/odbsuite.html>.
 
    Two such applications are Interarchy >= 4.1 and Fetch >= 4.0 .  This
    package allows you use Alpha instead of BBEdit to edit remote files
    listed in the windows of these applications.  Frontier is another example
    of such an application.
 
    This package is only useful in the MacOS, both MacClassic and OSX.
 

	  	Table Of Contents


    "# Integration with Interarchy"
    "#   MacClassic"
    "#   MacOSX"
    "# Integration with Fetch"
    "# Integration with Frontier"

    <<floatNamedMarks>>
      

	  	Integration with Interarchy
 
    Interarchy 4.1 or greater is required.
      
    Interarchy has a "Listing > Edit with <ftp-editor>" menu command.
    Selecting this command fetches the current selected remote file, and opens
    it in your ftp-editor helper application.  Saving the file will
    automatically upload the new version to the remote site.
    
    <http://interarchy.reppep.com/pages/menu-listing.html#EditwithBBEdit>
      
    The "ftp-editor" preference is an OS setting that you can add/edit to open
    files using Alpha following the instructions below.
      
	  	 	MacClassic
 
    To use Alpha as your Interarchy text editor, you must first go to the
    Internet(Config) control panel <<icOpen>>, open the 'Advanced' dialog
    pane, click on the 'Helper Apps' icon in the side-bar, and then press the
    'Add' button to create a new helper app type named 'ftp-editor'.  The
    description should be something like "Edit from Interarchy" and the helper
    application that you select should be your local version of Alpha.  Save
    your Internet(Config) settings.
      
	  	 	MacOSX
      
    Similar to MacClassic, OSX contains system-wide internet preferences for
    Browser, Mailer, File-Mappings, and Protocol Helpers.  For some bizarre
    reason, however, Apple has decided to not make these settings visible to
    the user.  In order to change your "ftp-editor" helper application, you
    must first download and install "MisFox" (Missing Internet Settings For X)
    
    <http://www.clauss-net.de/mac.html>
    
    or some similar application.  Start the program, and inspect your Protocol
    Helpers.  If there is no "ftp-editor" setting available, add it.  If the
    setting for this helper is not Alpha, edit it and change the value for the
    helper to Alpha.
    
    A similar tool is More Internet:

    <http://www.monkeyfood.com/software/MoreInternet/>
    
    which adds a new SystemPreferences pane allowing you to change all of your
    "Protocal Helpers".
      

	  	Integration with Fetch
 
    Fetch 4.0 or greater is required.
 
    Fetch 4.0 includes a "Fetch Example Scripts" folder in its top-level
    hierarchy which includes a file named "SetSecretOptions".  Open this file,
    and if it opens in the AppleScript Editor application press "Run".  You
    will now have a list-pick dialog of options that you can set -- choose
    "Specify external text editor", and then choose Alpha8.  You can then
    close the "SetSecretOptions" file and quit the AppleScript Editor.
 
    (In Fetch 4.0.3 there is actually a "SetSecretOptions" _folder_ that
    includes a separate "Set External Text Editor" script, if this is the case
    then simply launch that file instead and follow the rest of the
    instructions outlined above.)
 
    IMPORTANT: If you have both Fetch 3.0.3 and Fetch 4.x on your local disk,
    be sure to launch the 4.x version before running the script, or else
    running the AppleScript file might throw an error.
 
    Go back to Fetch (or launch it if necessary) and you should now see a
    "Remote > Edit File with Alpha8/X" menu item available.  If you select a
    file in a ftp window, you should be able to edit it in Alpha by selecting
    the appropriate menu item or its key binding.  When you save the file, it
    will automatically be uploaded using Fetch.
 
 
	  	Integration with Frontier
 
    Alpha has been supported as a Frontier editing application for a long
    time.  This package removes the need to change the script found in
    "suites.odbEditor.editors.Text.edit", as was necessary in Alpha 7.x.

    See the "Frontier Help" file for more information.
}}
set help(elecCorrections) {1.1b2 {
    This package helps check for and correct spelling mistakes or typos as
    you type.  Select "Config > Global Setup > Features" to turn it on.
    
    Preferences: Features
    
	  	Table Of Contents

    "# Introduction"
    "# Preferences"
    "# Electric Corrections Menu"
    "# Usage"
    "# Possible future directions"
    "# Acknowledgments"

    <<floatNamedMarks>>
    
	  	Introduction

    This is not a spell-checking extension -- instead it is more of a
    "misspell-checker": you must teach Alpha the common misspellings or typos
    to correct using the menu items described below.

    Whenever you press the return or space key, Alpha will then compare the
    previous word to the list of all typos, and correct it if necessary.
    This package also includes a "Smart i" preference, if this has been
    turned on then Alpha will automatically change "i" to "I" as you type.

    Activating the extension will create four new preferences and insert a
    new "Config > Preferences > Electric Corrections" submenu described
    below.
    

	  	Preferences

    Select "Config > Preferences > Electric Corrections > Corrections Prefs"
    to change the values of these preferences.

	Smart i

    Automatically convert " i " to " I ".

	Smart i Modes

    Allows you to specify the modes that use the "Smart i" feature, initially
    including only "Text TeX Bib HTML".  If this list is empty, automatic
    correction applies to all modes.

	Turn Corrections On/Off

    Turns automatic corrections of typos on or off.  This does not affect the
    "Smart i" preference.

	Correcting Modes

    Allows you to specify the modes that check for misspellings.  If this
    list is empty (the default value), automatic correction applies to all
    modes.

	  	Electric Corrections Menu

	View Corrections

    Open a window with all current typos.  The package only supplies one typo
    to initially correct, changing "hte" to "the"

	Add Corrections

    Open a dialog to create new typos.  Only lower-case typos need to be
    entered -- both lower-case and capitalized typos will be corrected
    automatically.

	Edit Corrections

    Open a list-pick dialog to edit all typos.

	Remove Corrections

    Open a list-pick dialog to remove all user-defined typos.

	Smart i

    Automatically convert " i " to " I ".

    (This is a toggleable menu item, turning the preference on and off.)

	Smart i Modes

    Allows you to specify the modes that use the "Smart i" preference,
    initially including only "Text TeX Bib HTML".  If this list is empty,
    automatic correction applies to all modes.

	Turn Corrections On/Off

    Turns automatic corrections of misspellings or typos on or off.  This
    does not affect the "Smart i" preference.

	Correcting Prefs

    Allows you to specify the modes that check for typos.  You can select any
    subset of the modes currently available, or choose the option for "All"
    or "None".

	Corrections Help

    Open this file.

	  	Usage

    Following every Space or Return keystroke, the desired whitespace is
    inserted into the window, and then the preceding word is checked against
    the list of defined typos -- if the word matches, it is deleted and the
    correction is inserted.  If the "Smart i" preference is set, then any
    lone i will be converted to I. Preceding words are checked even if
    followed by an intermediate character such as , .  ; etc.  -- the
    correction is inserted without disturbing the following characters.  So

	Where was i?
	i decided to ask hte, well, obviously oblivious inn-keeper, ...

    corrects to

	Where was I?
	I decided to ask the, well, obviously oblivious inn-keeper, ...

    All user-defined misspellings/typos are automatically converted to both
    lower case and capitalized words -- both "hte --> the" and "Hte --> The"
    work, but only the first must be defined.  Note that if you have multiple
    misspellings for the same word, you must defined each one separately,
    such as "teh --> the".  All typos will be corrected in any mode listed in
    the "Correcting Modes" preference.  It is not possible to define
    mode-specific typos.

    Here's one way to exploit this feature: I have defined the following
    "typos", which I generally will not accidentally type:

    "sgy  --> sociology"
    "scal --> sociological"
    "slly --> sociologically"
    "sc   --> social capital"

    Now whenever I type "sgy" or "Sgy", the "correction" is automatically
    inserted if I follow it with a Space or Return.  Suppose that I have the
    terms "screaming" and "somethingCruddy" in my file, and I have just typed
    "sc".  Note the following electric options:

	Space or Return:        correct to      "social capital"
	Completion Key:         complete to     "screaming"
	Expansion Key:          expand to       "somethingCruddy"

    If you would like to define "Electric Corrections Over-Ride" keys, open a
    "prefs.tcl" file and add these lines:
    
	Bind '\ ' <s> {insertText "\ "}
	Bind '\r' <s> {bind::CarriageReturn}

    Pressing the Shift key in combination with Space or Return will then
    over-ride corrections and simply enter a space or a carriage return.

	  	Possible future directions

     Include a pre-defined set of typos that has something more than simply
    "hte".  I would just as soon leave it up to the user to create them, but
    if somebody has a list that they would like to send along (with common
    typos and the corrections, please) I'll include it in future versions.
    One concern that I have is that for such a list to be truly useful, it
    should be comprehensive, and that will both make it much more difficult
    for the user to know what's in there and potentially slow down the
    correcting process.
    
    Procedures have already been written to unset/restore the default list.
    It would be possible to come up with several different lists to
    accommodate different editing settings, or languages ...
    
     Allow the creation of mode-specific corrections, similarly to
    mode-specific completions.  I don't have any objections, but I'm not sure
    about the best way to accomplish this.
    
    Source code can be found in "elecCorrections.tcl" -- contributions are
    certainly welcome.

	  	Acknowledgments

    This package was inspired by "Electric Completions / Expansions", and
    based upon the proc: sql_electUpper found in "sqlMode.tcl" (Joel D.
    Elkins.)  Many thanks to Vince Darley and Bernard Desgraupes for several
    bug fixes and suggestions.
}}
set help(man) {0.1.5 {
    Unix-style manual pages can be edited with this mode.  Parsing and
    viewing of man pages is not supported (use 'nroff' or 'man').
    
    Click on this hyperlink "man-Example.n" for an example.
}}
set help(windowZoom) {1.0.1 {
    This package provides an easily remembered set of key bindings for
    manipulating the current font, geometry, etc of the active window.
    
    Preferences: Features
    
    The principal functions are to (1) change the 'geometry' or the font sizes
    of the active window, and (2) switch amongst all open windows or arrange
    the open windows in a specific way.

    All operations are bound to two-step key combinations consisting of
    Control-W followed by a single key.  For example:
 
	Control-W I

    means 'zoom [i]n, increasing the font size of the active window'.
    
    Click here <<winZoom::describeBindings>> to open a new window which lists
    all of the current bindings available.
}}
set help(Text) {0.1.6 {
    If Alpha does not recognize a specific mode when it opens a file,
    the default mode is "Text" mode.  This help window is in Text mode
    -- one of the far right rectangular boxes in the status bar should
    currently read "Text".  This box is actually a pop-up menu, allowing
    you to change the mode of the current window.

    For more information regarding basic editing functions in Alpha, see
    the "Alpha Manual" or the shorter "Quick Start" help files.
}}
set help(Pyth) {1.0.3 {
    Python is an interpreted, interactive, object-oriented programming
    language.  It incorporates modules, exceptions, dynamic typing, very
    high level dynamic data types, and classes.  Python combines remarkable
    power with very clear syntax.  It has interfaces to many system calls
    and libraries, as well as to various window systems, and is extensible
    in C or C++.  
    
    It is also usable as an extension language for applications that need a
    programmable interface.  Finally, Python is portable: it runs on many
    brands of UNIX, on the Mac, and on PCs under MS-DOS, Windows, Windows
    NT, and OS/2.
    
                                            -- <http://www.python.org>

    Alpha's 'Pyth' Mode provides the following features: 
    
     syntax coloring - comments in red, strings (some) in green, keywords
    in blue, and colons (a Python particular) in magenta
    
     easy production of comment boxes etc.
    
     def and class marking - automatically generated file marks (M popup)
    give the function name first, and then the class (if any), whilst class
    definitions give the class name twice
    
     the {} popup (ParseFuncs) takes you to class definitions
    
     automatic indentation - given the importance of this in Python control
    structures, this is an essential, and is accomplished using tabs in
    syntactic context.
    
    See this "Python Example.py" hyperlink for an example syntax file.
}}
set help(MATL) {2.0.8 {
    file "Matlab Help"
}}
set help(Objc) {1.4.2 {
    This mode implements specific support for Objective C. Many features
    are identical to C mode. The mode adds coloring for the ObjC specific
    keywords, special file marking for @interface, @implementation and
    @protocol declarations.

    See ObjCMarkTester.h and ObjCMarkTester.m in the Tests folder for
    examples, or "ObjectiveC Example.m" in the 'Examples' folder.
}}
set help(autoSaveOnSwitch) {0.1.1 {
    Activating this feature via "Config > Preferences > Input-Output" will
    automatically save all windows which exist as local files when switching
    from Alpha to another application.
    
    Preferences: Backups
}}
set help(ftpMenu) {1.1.3 {
    file "FTP menu Help"
}}
set help(filesets) {2.1b1 {
    file "Filesets Help"
}}
set help(tags) {0.3.1 {
    Alpha supports the use of tags to find declarations of functions; by
    default this is set up only for 'C'.  When searching for a tag, Alpha
    looks for the tag file specified by the 'Tag File' preference, which can
    be set in the "Config > Preferences > Package Prefs > Tags" dialog.
    
    Preferences: tags
    
    Alpha's tag generating routines use the regular expression in the
    preference 'Func Expr' to look for function declarations.  In other words,
    we don't parse the text.  If you declare your functions differently, you
    can change 'Func Expr' to suit your own style.  Alpha currently uses the
    following regular expression to find C function declarations:

	    ^[^ \t\(#\r/@].*\(.*\)$

    Although complicated, this expression makes sense if you slowly wade
    through it.  The string that we are looking for must take up an entire
    line.  It must begin with a character other than '\t', '#', '\r', ' ',
    '/', '(', or '@'.  There must be a set of parenthesis.

    Note that not only can you customize this to your style of 'C'
    declarations, you could also use it to generate tags for other languages.
    The only thing you need to bear in mind is that the tag routines use the
    complete word previous to the first '(' in the selected line as the
    function's name.  If there is no '(' in the selected line, the last word
    in the line is used.  Therefore, Pascal procedures with or without
    parameters can be identified.
}}
set help(recentDirsMenu) {1.3.8 {
    This feature is similar to the package: recentFilesMenu, but keeps track
    of the parent directories (and optionally volume names) of all recently
    used files rather than the actual filenames.  You can turn this package
    on by selecting the "Config > Global Setup > Features" menu item and
    clicking on the checkbox next to "Recent Dirs".
    
    Preferences: Features

    
	  	Table Of Contents

    "# Recent Dirs menu"
    "# Save (A Copy) In menus"
    "# Directory Lists Preferences"
    "# Recent Dirs Utilities"
    "# Performance Issues"

    <<floatNamedMarks>>


	  	Recent Dirs menu
    
    This package creates and inserts a new "File > Recent Dirs" submenu
    which contains the names of all 'remembered' directories, added whenever
    a file is opened in Alpha.  Selecting any directory or volume name will
    open a standard OS "Find File" dialog using the selected item as the
    default location.  This package also defines several different contextual
    menu modules similar to the menus described below.
    
    To set the max number of items listed in the menu (15 is the default)
    select "Recent Dirs > Recent Dirs Prefs".
    
    Preferences: recentDirsMenu
    
    This dialog contains additional preferences which determine how the
    'Recent Dirs' menu is built -- read the "# Directory Lists Preferences"
    section below for more information.

    Tip: In Alpha (not Alphatk) holding down any modifier key while selecting
    a menu item will open it in the OS Finder instead of opening a Find File
    dialog.  To reverse this behavior, turn on the Recent Dirs preference
    named 'Open Item In Finder' in the preferences dialog.
    
    You also have the option to insert a new submenu to open any recent
    directory in the OS Finder, "File > File Utiles > Show Dir In Finder" by
    turning on the "Show Dir In Finder Menu" preference.
    

	  	Save (A Copy) In menus
    
    This package can also insert two new 'Save' submenus into the File menu,
    named 'Save In' and 'Save A Copy In'.  These menus will contain the exact
    same list of directories/volumes as the 'Recent Dirs' menu.  These are
    added if the 'Save (A Copy) In Menu' preferences are set in the
    preferences dialog.
    
    Selecting any menu item will either save a copy or save the current
    window IN the selected directory, bypassing the 'Save' dialog.  You will
    be prompted for the name of the file to be saved.  If the target file
    already exists, you will be asked if you want to replace it -- clicking
    on 'No' will cancel the operation.
    
    Tip: In Alpha (not Alphatk), holding down any modifier key while
    selecting a menu item in these 'Save' menus will automatically use the
    name of the current window, bypassing the prompt.  If the target file
    already exists, you will still be asked if you want to replace it.
    
    To reverse this behavior, so that you are prompted for a new filename
    ONLY if a modifier is pressed, set the 'saveUsingWindowName' preference
    in the preferences dialog.
    

	  	Directory Lists Preferences
    
    This package has a number of different preferences which can change how
    the list of recent directories will be built.  Changing any of these
    preferences will affect ALL of the submenus added by this package.
    

    This is a 'flag' preference, which can be turned on or off:
    
	Order Items Alphabetically
    
    Order all items alphabetically.  Otherwise, items are listed in the order
    in which they were last accessed, the most recent listed first.
    
    
    The remaining preferences can take on several different values:

	Number Of Recent Dirs
    
    The number of directories/volumes 'remembered' when building the list.
    This will include items that might be ignored by the next three prefs.
    
	Display In Menu ...
   
    Items can be displayed with their full path name, only their tails, or
    with 'distinct' file tails.  With the second option, duplicate items are
    ignored, and only the most recent directory with the given name is used
    in the menu.  With the third option, duplicate directories are listed
    with their parent directories to indicate an unambiguous location.

	Missing Items Should Be ...
    
    When building the menu, the existence of directory/volume can be checked,
    and if found to be missing can be ignored, included, or dimmed in the
    menu.
    
    Note: In the Windows OS, directories which might exist over a network are
    never checked to see if they actually exist, since this might cause a big
    hangup -- they are always included in the menu.  In the MacOS, networked
    items ARE checked for existence.
    
	Networked Items Should Be ...

    Since networked items (in the Windows OS) are never checked to see if
    they exist, and selecting a missing networked item might cause trouble,
    it might be useful to mark them in the menu so that you know which ones
    they are.  Networked items can also be simply ignored, or included in the
    menu.  This preference currently has no effect in the MacOS.

	Volumes Should Be ...

    Technically, any file in the top level of a volume (such as your hard
    drive or an ejectable disk) is not actually contained in a directory.
    Volume names can be ignored, included, or placed in their own section in
    the menu.


	  	Recent Dirs Utilities
    
    The main "File > Recent Dirs" menu contains several items which can also
    help maintain the list of directories.  Again, changing the list for one
    menu changes the lists for the others as well.
    
	Reset List
    
    Flushes the list of all remembered directories and volumes.
    
	Add Directory ...
    
    Opens a dialog allowing you to select directories which will be added to
    the menu.  Note that volumes can NOT be selected, only directories within
    them.  After choosing a directory, the same dialog will re-appear
    allowing you to select another -- click on 'Cancel' when you are finished
    adding directories.
    
	Remove Menu Item ...
    
    Opens a list-pick dialog containing all of the current directories or
    volumes listed in the menu.  Selecting one or more of them will remove
    them from the menu(s).
    
	Rebuild Menu(s)
    
    This item should rarely be needed, because whenever a file is opened its
    parent directory/volume is always added to the list, and any missing
    items are dealt with according to the preferences described above.  If
    any of the menus seem out of date, however, use this item to rebuild
    them.
    
	Recent Dirs Prefs ...
    
    Opens a dialog containing all of the preferences associated with this
    package.  Click on the 'Help' button in the dialog to obtain a short
    description of each preference listed.
    
	Recent Dirs Bindings ...

    You can set keyboard shortcuts to open/save/display any item in the cache
    of recent directories.  Click here <<recent::dirsPackageOptions
    Bindings>> to set these now.  These shortcuts normally require this
    package to be activated -- otherwise the list of directories is not
    maintained.

	Recent Dirs Help

    Opens this window.


	  	Performance Issues

    If you have a slower processor, activating this package might slow down
    this intitial startup of Alpha.  If this is the case, you probably want
    to set the 'Use Cache At Startup' preference, which will the menu list
    saved from when you last used Alpha, but won't check to see if the
    existence of any items has changed since your last editing session.
    
    If opening a window seems to take too long, you might also consider
    setting the following preferences to these values to make the Recent Dirs
    menus rebuild a little bit faster, listed in the order in which they'll
    have the greatest effect:

    Order Items Alphabetically --       Yes (turn this item on)
    Display In Menu --                  Any value except 'Distinct File Tails'
    Missing Items Should Be --          Included
    Networked Items Should Be --        Included
    Volumes Should Be --                Included
    
    Note that since all of the "File > Save (A Copy) In" etc menus use the
    same list of menu items, turning any of them on or off probably will not
    have any noticable effect on startup or opening windows.
}}
set help(f2cMenu) {2.0 {
    The 'f2cMenu' integrates Alpha's Fortran mode ("Fort Help") with Igor
    Mikolic-Torreira's Mac F2C and with the Codewarrior IDE.
    
    Preferences: Mode-Menus-Fort
}}
set help(filesetFtpMirror) {0.3.1 {
    This "Fileset Information" preference allows you to mirror a given
    fileset onto an ftp site.  
    
    To use it, you can <<editAFileset>>, click on the "Attach Info" button,
    and click on the checkbox next to "Fileset Ftp Mirror".  After clicking
    on the OK button, the "Edit A Fileset" dialog for this particular fileset
    will now have text-edit fields for server/username information.
   
    Now, whenever you would like to mirror the files, select the menu item
    "Fileset Menu > Utilities > Update Fileset Ftp Mirror", and you will be given
    a variety of options for which files to upload.
    
    IMPORTANT: If you're using Anarchy/Interarchy, files on your server not
    found on your disk will be deleted from the server!!
}}
set help(Diff) {4.1 {
    file "Diff Help"
}}
set help(Mf) {2.1 {
    file "Metafont Help"
}}
set help(shells) {0.2 {
    file "Shells"
}}
set help(terminal) {1.5.1 {
   file "Terminal Help"
}}
set help(smartPaste) {0.7.4 {
    This package supports the automatic indentation of the clipboard contents
    with they are Pasted into the active window.
    
    Preferences: Features
    
    By default, the level of indentation is that of the previous line.  Many
    modes have more sophisticated indentation routines, however, which take
    the context surrounding the cursor position into account.  Typically
    in programming modes, code will be indented to reflect the correct
    nesting level of braces, etc.
}}
set help(latexSizes) {1.0 {
    This is a feature for TeX and Bib modes, and when it is turned on via the
    menu item "Config > TeX/Bib Mode Prefs > Features" two new key keyboard
    shortcuts allow you to substitute related LaTeX commands for the one
    surrounding the cursor position, cycling left and right through a list
    that is presented in the status bar window.
    
    Preferences: Mode-Features-TeX
    Preferences: Mode-Features-Bib

    E.g. 

        you can turn \SMALL into \Small into \small ...

    Or 

    	you can turn the AMS-LaTeX \bigl( into \Bigl( into ... \Biggl(
	
    This also works with many grouped items in the following submenus:
   
	Sections
	Text Styles
	Math Styles
	Greek
	Theorem
	Binary Operators
	Relations
	Arrows
	Dots
	Symbols
	Functions
	Large Operators
	Math Accents
	Grouping
	Spacing
	
    Usage:
    
    Press Shift-Option-, or Shift-Option-.  and we look for the word
    surrounding or touching the current cursor position.  This word must start
    with '\', and in '\epsilon (You can adjust the keyboard shortcuts for the
    preferences 'Cycle Left/Right' in the TeX or Bib Mode preferences dialog.)

    If the current position is within {}, as in
    
	\mathbb{This is an |example}

    then the subsequent operations take place on the \word preceding the
    bracketed section.  This is true even if the cursor and the \word are not
    on the same line, as in
    
	\textrm{
	    Sometimes we do things| like this.
	}
  
    If the \word found is of any of some grouped LaTeX2e commands, the list of
    options is presented in the status bar window.  If the list is related to
    size (the original purpose of this package) then the list is presented in
    the order of magnitude, otherwise related mark-up commands are presented
    alphabetically.  Pressing the key binding again will substitute the
    next/prev item in the list for the current \word.

    Repeated keypresses continue the process.  Moving the cursor will reset
    the procedure, so the next keypress will start all over again, first
    presenting the list of options appropriate to the new position.  You can
    open the "LaTeX Example.tex" example file and activate the feature to
    experiment.
    
    Click here <<latexSizes.tcl ; showVarValue TeX::LaTeXSizes>> to see the
    list of grouped keywords that are available for cycling.  If you have any
    other groups to contribute, please contact the package's maintainer or
    send an e-mail to one of the AlphaTcl mailing lists.
    
    In Alpha8 and higher, a contextual menu item for TeX and Bib modes named
    'Related TeX Commands' is also available which operates under the same set
    of principles.
}}
set help(dtd) {0.4.2 {
    This package provides support for xml mode, see "xml Help".
}}
set help(Setx) {2.6b1 {
    file "Setext Help"
}}
set help(contextualMenu) {1.2.1 {
    This package provides support for Contextual Menus, invoked in the Mac OS
    by pressing Control and the mouse button simultaneously.  In the Windows
    OS, the CM is accessed by clicking the mouse's right button.
    
    Individual CM modules (menus or items) can be added/removed from the CM
    by selecting "Config > Preferences > Contextual Menu Utils > Prefs".
    Note that this dialog, like the CM itself, is mode specific, and you can
    change the modules associated with the mode of the current window as well
    as 'global' settings.
    
    Preferences: ContextualMenu
    
    Default items include

	Related Files

    This submenu includes all of the files found in the directory of the
    current window.  (Similar to option titlebar clicking.)
    
	Window Path Menu

    This submenu contains a list of all folders found in the path of the
    current window.  Selecting any item will open a standard OS "Find File"
    dialog using that folder as the default.  (Similar to clicking on the
    titlebar window.)
    
	Window Marks Menu

    This submenu contains all of the items found in the Marks pop-up menu.

	Text Utils

    This submenu contains various items found in the main 'Text' menu in the
    menu bar, allowing you to indent, fill, comment, etc either the selected
    region surrounding the click position or the line in which it resides.
    
	Format Menu

    This submenu contains all of the items found in the 'File Info' pop-up
    menu in the status bar, allowing you to change tab size, line endings,
    etc.  for the current window.

	Wrap Menu

    This submenu allows you to change the current 'wrap' style of the current
    window.  See the "Alpha Manual # Text Wrapping" help file section for
    more information.
    
	Mode Menu

    Allows you to change the mode of the current window.

	Contextual Menu Utils

    This menu contains two items, the first allowing you to change the
    Contextual Menu preferences, turning items on and off both globally and
    for mode specific items, and a "Help" menu item which opens this window.

	----------------------------------------------------------------
    
    In addition to these default contextual menu items, modes might have
    additional CM modules which only appear for that mode, such as a
    "Process" menu in TeX mode, or an "Html Attributes" menu which will list
    all possible options for the tag surrounding the CM click position.
    These additional modules can be turned on and off by selecting the menu
    item "Config > Packages > Contextual Menu Utils > Prefs" dialog, also
    available in the "Contextual Menu Utils" CM module.
    
    Some packages in AlphaTcl offer additional plug-ins to add submenus which
    might already appear in some of Alpha's global menus, such as one
    containing a list of all recent files (package: recentFilesMenu), or note
    files that you have created and saved (package: notes), etc.  The best
    way to find out what these items do is to simply activate them and see
    what is now available in the contextual menu -- items can always be
    turned off, with the changes taking effect immediately.
  
    AlphaTcl developers should click here <<contextualMenu::developersHelp>>
    for more information on how to create contextual menu plug-ins.
}}
set help(HTML) {3.2b1 {
	file "HTML Help"
}}
set help(prompts) {0.1.4 {
    This package is for AlphaTcl developers, and provides general purpose
    status-line completion procedures.  It is currently used by Tcl, TeX and
    Bib modes, so you can check out their usage for real-world examples.  It
    also contains a set of procedures for prompting the user for _small_
    pieces of information, with validation of type for values entered.
    
    See the "prompts.tcl" file for more information about what's available.
}}
set help(supersearch) {1.8.8 {
    Alpha has a full repertoire of searching commands.  This package
    implements Alpha's 'Find' dialog, as well as several other items in the
    "Search" menu.  It allows single / multi-file / regexp / batch /
    word-match / search / replace / replace-all / in-selection (whew!) 
    operations from the same dialog box.
    
    "# The 'Find' Dialog"
    "# Supersearch Preferences"
    "# Additional Search Packages"
    

	  	The 'Find' Dialog

    The 'Find' menu item in the Search menu brings up a dialog <<find>>
    allowing the search and replacement text to be specified.  Alpha can
    search the active window, the current selection or a set of files.

    The dialog also has checkboxes for the following options:

	Ignore Case     

    Whether the search should match case ('a' and 'A' are different) 
    or not ('a' and 'A' are the same).
    
	Regexp            

    The search and replace text are interpreted as regular expressions.  See
    documentation for the Tcl command [regexp] or the "Regular Expressions"
    help window for more information.
    
    Note that for searching purposes "\r" and "\n" are treated the same, i.e.
    as a line ending character.  Substitution strings are allowed, i.e.
    "(some regexp) and (more)" in the search string and "\1\2" in the
    replacement string.

    Pressing the "Regexp Help" button will open a <<help::regexpHelpDialog>>
    that provides a quick "cheat sheet" with regexp syntax notes -- if you
    need more details on any of these topics, press the "More Info" button to
    suspend the current search, and open the "Regular Expressions" help file.

	Batch           

    When making a batch search, a list of all matches in the fileset or
    current window are displayed in a new browser window.  A particular match
    can be displayed by moving the cursor to a line in the file of matches
    and hitting "return".

    In the Search menu there is also a very useful command 'Next Match'. 
    Regardless which window is frontmost, it brings the browser window to the
    front, navigate down one line, and goes to the match of that line.  Thus,
    this gives you a quick way to jump to all matches without having to
    manually bring the browser window to the front.
    
    See the "Brws Help" window for more information about browser windows.
    
	Word Match      

    Whether the search should match only complete words or not.
    
	Keep Capitals

    When performing 'Replace' operations, whether the search should
    check the case of the leading character of the string matched, and
    attempt to ensure the replacement has the same case.  This allows
    you to replace 'hello' by 'goodbye' and 'Hello' by 'Goodbye' with
    just one search operation.
    
	Ignore Spaces

    Ignore any differences in whitespace (spaces, tabs, newlines) between
    the search string and the attempted match.
    
	Top window (single file) searches
	
    For searches on just the current window, there are two extra options:
	
	From current pos         

    If set (the default) the search will start at the current insertion 
    point.  Otherwise the search will always start from the beginning of
    the window.  This option has no effect when doing multi-file searches.
	
	Circular

    Once the search reaches the end of the window (or the end of the
    selected range, for 'In Selection' searches), whether to continue
    from the beginning (or, when doing backwards searches, when the
    search reaches the beginning whether to continue searching from the
    end).  This option has no effect when doing multi-file searches.
    
	Not In Comments
    
    Don't match anything in commented out text.  This option has no
    effect when doing multi-file searches.

	In Selection

    Only search within the current selection.  This option has no effect
    when doing multi-file searches.

	Multiple Files      

    To search through all files in a given file set.  Selecting 'Multiple
    Files' from the popup menu allows you to choose one or more existing
    filesets in which to search, or you can quickly create a new fileset
    on the fly (with 'New Fileset'), or search in a directory of your
    choosing (with 'Dir Scan') -- this folder is also saved at the end of
    the menu for future searches.
    
    Read more about filesets in the file "Filesets Help".

	Exclude Matches

    This option to multiple file searches reverses the interpretation of
    the search -- every file which doesn't match the given pattern is
    flagged (and every file which does match is ignored).  This useful
    feature is only meaningful during 'Find' operations and so is ignored
    for 'Replace' operations.

	Patterns

    And finally, Alpha allows a library of useful search and replace texts to
    be defined.  This library is used and edited in the popup menu
    'Patterns'.  Selecting a pattern from the menu inserts the search and
    replace strings in the dialog (in Alpha 8/X you will have to press
    the 'Use Pattern From Menu' button as well).  The popup menu also
    remembers your 10 most recent search patterns from this editing session.
    There are two buttons available:

    'Save This Pattern' creates a new item in the menu from the current search
    and replace strings, prompting you for a name to use in the popup.

    'Forget Pattern' lets you permanently remove a pattern from the popup menu.
    

	  	Supersearch Preferences
		
    The 'Find' dialog includes a button named 'Prefs' -- a new dialog will
    appear allowing you to set preferences associated with this package that
    affect how searches are performed.  
    
    Preferences: supersearch
    
    Here's a description for each of them:
    
	Auto Grep
    
    To add the 'Auto Grep' button to the search dialog, which allows
    quick switching between regexp and non-regexp patterns, turn this
    item on.

	Beep On Failed Search
	
    To beep on a failed search, turn this item on.  To remain silent on
    failed searches, turn this item off.

	Box Heights

    Enter the number of rows of text to make room for in the 'Search For' and
    'Replace With' boxes in the search dialog
    
	Enter Clears Batch

    To clear the batch, multi-file and regexp flags when using shift-cmd-E to
    enter a new search selection, turn this item on.  To leave all flags
    untouched when using shift-cmd-E, turn this item off.

	Number Searcher

    To add the 'Num Search' button to the search dialog, which allows you
    to search for a number in any base (binary, hex, octal, etc), turn
    this item on.

	Separate Search And Current Fileset:

    To remember the current search fileset separately to Alpha's current
    fileset, turn this item on.  To synchronise the search fileset with
    Alpha's current fileset each time you open the search dialog, turn this
    item off.

	Smart In Selection Flag:

    To set the 'in selection' flag automatically if there's a selection of at
    least 80 more characters than the length of the current search string,
    turn this item on.  To leave the 'in selection' flag in its original
    state, turn this item off.

	Undo Off For Replace All:

    To turn Alpha's undo-memory off when doing 'replace all' (for added
    speed), turn this item on.  To remember all changes when doing 'replace
    all', turn this item off.

	Unlock Files During Batch Replacements:

    Unlock locked files when necessary to perform batch replacements.  


	  	Additional Search Packages

    The global "Filters" menu allows for even more complicated search and
    replace functions.  See the "Filters Help" file for more information. 
    Incremental searching is also available, the package: incrementalSearch
    help window provides more information.
}}
set help(prettyComments) {0.1 {
    Currently unimplemented, this package could provide additional support
    for the package: comments .  In modes which use a single comment
    character, AlphaTcl currently uses a style of paragraph comment like
    this:
    
	##
	 # Here is a
	 # comment
	 ##

    which may not appeal to everyone.  We should remove this from
    the core, and move that functionality into this package so it
    can be made optional.  The default (for any mode for which
    this feature is off) would then be:
    
	# Here is a
	# comment

    which is probably a better default.
    
    Of course none of this is yet implemented!
}}
set help(vcVoodoo) {0.2 {
    This package provides support for VOODOO (Versions Of Outdated Documents
    Organized Orthogonally) personal version control.
    
    <http://www.unisoftwareplus.com/products/voodooserver/>

    It is only useful if the package: versionControl has been activated --
    consult the help file opened by this hyperlink for more general
    information about using 'version control' in Alpha.
    
    At one point Jon wrote:
    
	No more than a dummy shell right now...

    and you can check the "vcVoodoo.tcl" file to see if you have more to
    contribute to this package.
}}
set help(vcPerforce) {0.3 {
    This package provides support for perforce version control.  It is only
    useful if the package: versionControl has been activated -- consult the
    help file opened by this hyperlink for more general information about
    using 'version control' in Alpha.

    So far it requires you to setup your client using some other tool.  Once
    that is setup, you can do simple checkout/checkin operations from within
    Alpha.
    
    See <http://www.perforce.com/> for more information about Perforce.
}}
set help(scriptRunner) {0.1.2 {
    This auto-loading extension provides some utility procs which enable
    Alpha to run generic Tcl/Tk scripts in a separate interpreter, and
    capture the output.  Useful for those using external Tcl/Tk utilities, or
    those programming in Tcl/Tk.
    
    Slave interpreters are used -- of course if your slave crashes, the whole
    application will crash.  See the "scriptRunner.tcl" file for more
    information about the procs that are available, and what they do.
}}
set help(embrace) {1.1.6 {
    This package creates a suite of keybindings and procs operating on the
    word under the cursor (or just preceding it --- see below for precise
    specification).
    
    Preferences: Features


		Table Of Contents

    "# Introduction"
    "# Key Bindings"
    "# Other Operations"
    "# Shortcomings"
    
    <<floatNamedMarks>>


		Introduction
    
    The principal functions are to put the word into any kind of braces,
    quotes, or tags, or take it out of any kind of braces, quotes, or tags.
    Each keybinding toggles the braces, quotes, or tags.  Other functions are
    similar to functions already found in Alpha: transform the word to upcase,
    lowercase, titlecase, or mixedcase; find another occurrence of it
    (forwards or backwards), hilite it or delete it.
    
    Which word?  If there is a selection the operation applies to the whole
    selection (somewhat contrary to the main philosophy of the mechanism).
    The main situation addressed is when there is no selection: then the
    'current word' is defined to be the last previous word, counting the start
    of the word.  (So if the cursor is in the middle of a word or at the end
    of a word, that word is the current; if the cursor is at the beginning of
    a word, or anywhere among punctuation characters or whitespace, then the
    previous word is the current.
    
    All operations are bound to two-step key combinations consisting of
    Control-B followed by a single key.  ('B' might be for 'braces', 'back',
    or 'balance'...  however you want to remember it.)  
    
    NOTE: the letter B can be changed to any letter via the preference
    variable embrace::trigger which can be set in Config -> Preferences ->
    Package Preferences -> Miscellaneous Packages.  In the following
    instructions we assume the letter B is used.
    
    So for example:
 
	Control-B P

    means 'set parentheses around current word'.  (Except if there are already
    parentheses around the word: then they are instead removed.)
    
    Click here <<embrace::testPackage>> to temporarily activate this package,
    and turn this window into a 'shell' to experiment with the key bindings
    described below.  (Note that in shell windows 'undo' is turned off, but
    normally all of these functions can be undone in a single action.)

    
		Key Bindings

    All of these follow Control-B
    
	P  parentheses             (  )
	A  angle brackets          <  >
	S  square brackets         [  ]
	C  curly braces            {  }
	Q  single quotes           '  '
	W  double quotes           "  "
	G  guillemets                
	H  reverse guillemets        
	J  single curly quotes       
	K  double curly quotes       
	N  back quotes             `  `
    
    (In latex mode, the quotes are inserted slightly differently, according 
    to latex syntax, so you get for example ``this'' instead of "this".)
    
    The operations can also apply to more than one word: this works by
    pressing an infix key between the Control-B and the characteristic key:
    For example
    
	Control-B 4 P

    will put parentheses around the previous four words (unless these
    parentheses already exist, in which case they are removed).  The infix
    keys allowed are 1,2,3,4,5, and 0.  0 means the entire line.  (1 is
    similar to absence of infix, but it means 'precisely one word, independent
    of any selection')
    
    Finally there is one more special infix key 'R': for example 

	Control-B R P

    will remove the innermost parentheses around the current word (even if
    these parentheses are a bit far away from the word).
    
    All actions are single-stroke undo-able.

    
		Other Operations

    All of these are without toggle
    
	L  lowercase
	U  upcase
	T  titlecase (all words)
	Y  capitalize (only first word)
	M  mixedcase
    
    lowercase, upcase, and titlecase admit infix arguments --- 
    capitalize and mixedcase don't: they only operate on the current word.
    
    (mixedcase is very useful in programming modes where you often name your
    variables and procedures with a happy mixture of lowercase and upcase
    letters.  If you have a mis-cased word then this operation corrects it!
    (it simply looks back and copies the casing from the previous occurrence
    of the variable, assumed to be correct...)
    
	X  extrapolate
    
    This tries to correct a mistyped word by looking around in the text for
    something similar.  Similar means: either two adjacent letters are 
    transposed, or one letter replaced by any other, or one letter added or 
    deleted.  For example, if the current word is 'lapm' then possible matches
    are 'lamp', 'lap', 'lam', and typically only one of the matches will
    actually exist in the text, hence the usefullness of the mechanism.
    
	Z  zpellcheck (only active if aspell is installed)
    
	D  delete    
	F  find next occurrence of word
	E  find previous occurrence of word
	
	V  toggle dollar (value of a variable)

	B  Show all embrace shortcuts
	
	O  hilite (and select)


		Shortcomings
    
    * If at a given word you set two different braces you have to set the
    outermost braces first.  Example: after the word foo if you invoke

	Control-B P Control-B 2 S
	
    then you end up with [word (foo]) --- hardly what you had in mind...  You
    have to do
    
	Control-B 2 S Control-B P
	
    to achieve proper nesting of braces.  Perhaps the programme ought to do a
    balance check inside the target, and refuse to operate on a target
    containing non-matched braces --- or better still: see if the braces can
    be matched by extending the target slightly...
    
    * Some of the good keybindings are already taken by exotic sorts of
    quotes...


		Quick reminder
		
    * Pressing "Control-B B" creates an <<embrace::displayBindings>> window
    with a short summary of all the 'embrace' keybinding combinations.
    
		Advanced users
    
    can find more information in "embrace.tcl".
}}
set help(SAS) {2.3 {
    file "Statistical Modes Help"
}}
set help(bat) {0.2 {
    This mode is for editing Microsoft Windows and DOS batch files.
    These files use a rudimentary shell programming language.
}}
set help(mailMenu) {2.0 {
    file "Mail Help"
}}
set help(Scrp) {2.3 {
    file "AppleScript Help"
}}
set help(Vlog) {0.2.1 {
    This mode is for editing Verilog language files.
    
    Verilog HDL is a hardware description language used to design and
    document electronic systems.  Verilog HDL allows designers to design
    at various levels of abstraction.  It is the most widely used HDL
    with a user community of more than 50,000 active designers.
    
    More information can be found here: <http://www.verilog.com/>
}}
set help(Lisp) {2.3 {
    file "Lisp Help"
}}
set help(xserv) {2.0.2 {
    This package defines a new interface to services provided by external
    applications.  It allows the definition of interfaces for external
    services, and the declaration of implementations of these services with
    other applications.  For more information about how Xserv works, see the
    "Xserv Help" file.

    AlphaTcl developers might also be interested in the "Xserv API" .pdf file,
    use the "AlphaDev > AlphaDev Help Files > Xserv API" menu item to open
    it using your local .pdf viewer.  This file constitutes the literate
    programming source for the "xserv.tcl" extension of AlphaTcl.
}}
set help(sourceforgeMenu) {0.3.5 {
    This global menu provides functionality to aid interactions with the open
    source repository 'sourceforge' (<http://sourceforge.net/>).  It allows
    you to specify any number of different sourceforge projects, and creates
    several different menu items to access mailing lists, forums, new, bugs,
    cvs repositories, etc.
    
    Preferences: Menus
}}
set help(C++) {1.4.5 {
    C and C++ modes function nearly identically in Alpha.  C Mode
    provides keyword coloring and procedure marking with the Marks Menu;
    supports cmd-dbl-click for opening files or (sends the word to app
    sig "DanR"); automatically handles indentation and formatting. 
    Support for Think and CodeWarrior.  

    Click on this "C++ Example.cp" link for an example syntax file.
}}
set help(clipboardPreferences) {1.3 {
    This package provides preferences for additional Clipboard Utilities,
    such as an optional preference for 'Cut Copy Whitespace' to ensure that
    the cutting/pasting of a word will adjust the whitespace surrounding it
    in a context specific way.

		Table Of Contents

    "# Additional Clipboard Utilities"
    "#   Reselect After Paste"
    "#   Cut And Copy Using Pin"
    "#   Cut Paste Whitespace"
    "# Mode Preference Over-rides"
    "# Contextual Menu Module"

    <<floatNamedMarks>>


		Additional Clipboard Utilities

    In addition to the automatic indentation of pasted text provided by the
    package: smartPaste, additional Cut/Copy/Paste functions can be added to Alpha
    by turning on this feature.
   
    Preferences: Features
   
    Settings for "# Reselect After Paste", "# Cut And Copy Using Pin", and
    "# Cut Paste Whitespace" can then be changed in the dialog pane found
    in "Config > Preferences > Interface Preferences > Text"
    
    Preferences: Text

			Reselect After Paste

    If the "Reselect After Paste" pref is set then the text string that was
    just pasted into the window will be highlighted.  This can take place
    after every paste, or only when you're pasting over a selection.
    
    This function is ignored for rectangular editing.

			Cut And Copy Using Pin

    Normally, you must have a region selected in order to user [cut] or
    [copy] -- otherwise there is no text to use for the clipboard.  Alpha,
    however, maintains a Window Pin -- a temporary floating mark for every
    window -- that can be used to create this region if you have not selected
    one already.  You can set the "Cut And Copy Using Pin" preference to use
    this region if desired for all cutting/copying operations.

    If there is already a region selected, that selection will always be used
    by default.  When there is no selection, both [cut] and [copy] will
    essentially be shortcuts for two consecutive operations:

    (1) "Search > The Pin > Hilite To Pin"
    (2) "Edit > Cut/Copy"

    Following a [copy] operation using the pin, the region copied will be
    automatically highlighted so that you know exactly what was placed into
    the clipboard.

    You can set the Window Pin by selecting "Search > The Pin > Set Pin",
    move to some different position in the window, and then [copy] the region
    between the pin and the cursor.  If you have any experience with 'emacs',
    then you are probably familiar with such 'window mark' in cut/copy
    operations

    Note that some AlphaTcl functions reset the Window Pin silently, such as
    selecting text and some text insertion operations, so in general you
    should set the pin 'manually' and then cut/copy the text relatively soon
    to ensure that you are manipulating the region that you actually want.
    (Experiment with the "The Pin > Hilite To Pin" menu item and binding for
    a while to get used to the setting of the pin and learn what the region
    looks like.)

			Cut Paste Whitespace

    This preference will adjust the whitespace surrounding cut/pasted text to
    ensure that there is not too much or too little.  For example, if the
    text string in the window looks like

	This is a test of |whitespace| adjustments
			   ^^^^^^^^^^

    and the 'whitespace' string is highlighted, performing a [cut] will
    remove one of the surrounding spaces, resulting in

	This is a test of| adjustments

    (where '|' indicates the cursor) rather than

	This is a test of | adjustments

    This may seem trivial, but once you begin using it you'll realize how
    many times a cut must be followed by a combination of arrow key
    navigation and delete keys.  When pasting, whitespace is added if one and
    only one side of the current position has whitespace.

    This is a somewhat 'conservative' feature, in that we tend to error on
    the side of leaving whitespace as is in ambiguous situations.  For
    example, if the text to be cut/pasted has any whitespace at its own
    borders then we make no adjustment.  It does, however, make an attempt to
    look at the surrounding text so that pasting next to a double quote
    (e.g.) will add whitespace as necessary, so the pasting here:
    
	This is another "|test of this feature"

    will result in
    
	This is another "interesting test of this feature"
    
    The whitespace is always adjusted after the [cut|paste] operation takes
    places, so it will be the first [undo] item available.

    This function is ignored for rectangular editing.

		Mode Preference Over-rides

    The three preferences in the Preferences: Text dialog (those specific
    to "Cut Copy Paste" utilities) are 'global' in the sense that they
    apply to every mode for which this package is activated.  It is
    possible, however, to turn them on/off for any mode.  For example, the
    'Cut Paste Whitespace' pref might be very useful for TeX mode, but less
    so for C++ or other computer language 'syntax' modes.

    You can define a mode specific preference for any of these items by
    including a couple line of AlphaTcl code in "prefs.tcl" file.  For
    example, to turn off "Cut Paste Whitespace" feature in Tex mode, add

	newPref flag cutPasteWhitespace 0 Text

    This preference can then be adjusted with the dialog that appears with
    the "Config > Text Mode Prefs > Preferences" menu item.

    Use these lines of code to define such mode preferences for each mode
    desired, where '<mode>' is the name of the mode for which you want
    specific behavior:

	newPref flag cutAndCopyUsingPin 0 <mode>
	
	newPref flag cutPasteWhitespace 0 <mode>
	
	newPref var  selectAfterPaste   0 <mode> ""  [list "Never" "Only if pasting over selection" "Always"] index

    You must do this for each mode -- if the mode of the given window does
    not have such a preference, then the 'normal' global preferences are
    used.
    
    
		Contextual Menu Module
    
    A Contextual Menu module named "Clipboard Menu" is also made available by
    this package.
    
    Preferences: ContextualMenu
    
    In addition to the standard Cut Copy Paste items, you can move the
    selected region to the "target" click-position, or place a copy of it at
    that position.  These functions are similar to "Drag And Drop".


    If you have any additional Clipboard Utilities you'd like to add to
    this package, please contact the maintainer listed above.
}}
set help(PS) {0.6.3 {
    file "Postscript Help"
}}
set help(latexMathbb) {1.3.2 {
    This is a feature for TeX and Bib modes.  Once this feature has been 
    turned on, typing 
    
	ZZ

    will automatically be substituted with 

	\mathbb{Z}

    on the fly, and the same for any other symbols in your TeX mode preference
    "Blackboard Bold Symbols".  Note that this preference is 'attached' to TeX
    mode, and can only be changed when the current window is in TeX mode,
    although the preference does apply to both TeX and Bib.
    
    If this package is turned on globally via "Config > Global Setup > Features", 
    it applies to both modes, else you must activate it separately for each 
    mode by selecting the menu item "Config > Mode Prefs > Features" .
	
	Preferences: Features
	
	Preferences: Mode-Features-TeX
	Preferences: Mode-Features-Bib
}}
set help(tclproUtils) {0.4.0 {
    This features creates two new menu items in the "Tcl Menu", named
    
	Tcl Pro Check
	Tcl Pro Check Dir
    
    You can turn on this feature "globally"
    
    Preferences: Features
    
    or just for Tcl mode
    
    Preferences: Mode-Features-Tcl
    
    All results are presented in a new Alpha "browser" window, which includes
    some handy navigation items for jumping to the referenced windows.
}}
set help(betterTemplates) {9.3.1 {
    Activate this feature using the "Config > Global Setup > Features" menu
    item.  While this is generally a global feature, individual modes can also
    turn it off if desired.
    
    Preferences: Features

    Note that this package will do very little for you already make use of the
    package: elecCompletions and have defined a keyboard shortcut that creates
    Electric Completion templates.
    
    Preferences: SpecialKeys
    
    The "Better Templates" package enhances the default electric template
    behavior, by creating electric template 'rings' the can be navigated using
    "Special Keys" keyboard shortcuts, and also adds several options for how
    templates and template 'hints' are inserted into the window.  Template
    rings make it easier to navigate to previous template stops even if the
    "Elec Stop Marker" has been deleted, and helps ensure that we don't delete
    valid occurances of this marker.

    (For more information about basic 'electric' behavior that is supplied by
    default, see the "Electrics Help" file.)

    Note: some of the features described here will only make sense in modes
    that have defined sophisticated electric completions.  Bib, HTML, Perl,
    Tcl, TeX, and most of the "Statistical Modes" do so.  See the help file
    "Electrics Help" for more information on how to add more completions for
    any given mode.  Throughout this file, '' refers to your current setting
    for the "Elec Stop Marker" preference.

    "# Template Prompts"
    "# Template Wrappers"
    "# 'Ring' Behavior"
    "# Testing"

    <<floatNamedMarks>>

    This package adds some additional "Interface > Completions" preferences
    that are described below.  See the "# Testing" section below for more
    information about temporarily activating this feature and opening this
    prefs dialog to change them.
    
    Preferences: Completions

	------------------------------------------------------------------

	  	Template Prompts

    When this package is NOT activated, electric completions will simply
    insert '' into your window, looking something like

	if {|} {
	    
	} 

    where '|' indicates the current cursor position and '' indicates a
    template stop.  By default, this package will also insert an electric
    template message in the status bar window giving you a 'hint' as to what
    should be included in the template, something that might look like

	Fill in 'test',  press user-defined keys to move from stop to stop.

    or

	Fill in 'true body', press ctrl-j (shift-ctrl-j) to move to the next (previous) stop.

    TIP: You can turn off the tail end of this message by setting the
    'Electric' preference for 'Turn Navigation Msg Off', so that the message
    will instead just include something like

	Fill in 'test'

    or

	Fill in 'true body'

    These 'hints' can also be included in the template that is inserted into
    the window.  If the "Template Prompts" pref is "Put prompts in the text"
    then the template will look like

	if {|} {
	    <true body>
	}

    Navigating to the next 'hint' (See "# 'Ring' Behavior" below) will delete
    it, but insert the message into the status bar to help jog your memory.
    If the preference is set to "Highlight prompts in the text" then ring
    navigation will NOT delete the hint, but highlight it instead -- you can
    just begin to type to remove it.

    To only insert '' without any additional hints in either in the status
    bar or in the window, set your Electric "Template Prompts" preference to
    "Just use 'Electric Stop Marker'".


	  	Template Wrappers

    If the value for "Template Prompts" is set to include the hints in the
    actual template, you can change the 'wrapper' that surrounds it to

	<Angle brackets>   (the default) or
	Curly quotes     or
	Curly brackets

    Changing this pref has no effect if hints are included in the status bar.


	  	'Ring' Behavior

    By default, Alpha supplies key bindings that you can set for

	Next Stop
	Previous Stop
	Clear All Stops
	Nth Stop

    in the "Config > Special Keys" dialog.
    
    Preferences: SpecialKeys

    If this package is turned off, the first three items refer to the
    presence of '' within the text, and allow you to navigate to the
    next/previous marker, or delete all of them.  The item "Nth Stop" is
    disabled unless this package is activated.

    With this package turned on, electric insertions create a 'ring' of
    template stops, and all of these items perform actions relative to this
    ring.  The first benefit of this feature is that "Next Stop" will never
    inadvertently jump to and delete any '' string that appears outside of
    the current ring.

    The second benefit is that if you are currently within a ring and create
    another electric insertion, this is included within the current ring so
    that you can still navigate previous stops.  This will continue to occur
    so long as (1) you remain within the current ring, and (2) the number of
    insertions does NOT exceed the "Max Template Nesting" preference -- when
    this number is exceeded, all previous template stops are first cleared.

    The third benefit provided by this package is that the "Nth Stop" item
    and key binding is now enabled, allowing you to jump to any template stop
    via a 'listpick' dialog -- stops are identified by their hints.

    If, however, you create an electric insertion that is OUTSIDE the current
    ring, all template markers/prompts are first deleted before the new ring
    is created.  This is also the action performed by "Clear All Stops",
    which again means that any '' appearing outside the ring will be
    preserved rather than deleted (a fourth major benefit !!).

    Note that the action performed by the binding for "Indent Or Next Stop"
    is identical to that for "Next Stop" SO LONG AS you are still within
    the limits of the current ring.  Otherwise, the current ring is cleared
    and the current line/selection is indented.

	------------------------------------------------------------------

	  	Testing

    To test this package, click on this <<ring::testBetterTemplates>>
    hyperlink.  This will temporarily activate this package, open some
    dialogs allowing you to set/change various 'electric' and 'special keys'
    preferences, and then open an electric completions tutorial window in
    which you can experiment with the bindings.  To turn this package off,
    click on this <<package::deactivate betterTemplates>> hyperlink.

    Source code can be found in "elecTemplates.tcl", code contributions are
    always welcome.
}}
set help(Mp) {2.2 {
    file "Metapost Help"
}}
set help(bibConvert) {2.0.2 {
    "# Introduction"
    "# Bibliography Formats Handled"
    "#   HOLLIS"
    "#   ISI"
    "#   MARC"
    "#   OCLC"
    "#   Ovid"
    "#   Refer"
    "#   Inspec"
    "# Package Preferences"


	  	Introduction

    This package contains two files which convert several different
    bibliography format to BibTeX entries.  Activating this package will
    insert a 'Convert To Bib' item in the "BibTeX > BibTeX Conversions" menu.
    This item will be applied to any currently highlighted selection, or if
    there is no selection then to the contents of the entire window.
    Conversion results can then be inserted in the current window or placed in
    a new window for saving, editing, etc.
    
    Preferences: Mode-Features-Bib
    
    This package was initially written when bibliographic searches took place
    primarily in telnet sessions, with the results saved by a file capture.
    You could then convert these files to BibTeX format.  With the advent of
    the World Wide Web, most of these searches take place on-line, and you can
    have the results (i.e. marked records) e-mailed to you.  These e-mails can
    then be saved as files, or the contents can be cut and pasted into new
    Alpha windows.
    
    This package is a default feature of the 'Bib' mode, and any files with
    the following suffixes
    
	.hollis .hol .inspec .isi .marc .oclc .ovid .refer

    will automatically open in Bib mode so the menu item will be present.  If
    you have a window that is not in Bib mode, you can easily change it using
    the 'Modes' pop-up menu to the right of the status bar window.  If you
    want this feature to be available globally, i.e. no matter what the mode
    of the current is, then you must make both the BibTeX menu AND this
    package global -- see the "Config > Preferences" dialogs.

	"bibConvert.tcl"

    This file contains the core code which converts entries obtained from
    various commercial (subscription based) or academic bibliographic
    databases and converts them to BibTeX format.  The main formats include:
    
	HOLLIS   (Harvard Online Library Information System)
	ISI      (Institute of Scientific Information)
	             aka "Web Of Science", "Web Of Knowledge"
	MARC     (MAchine Readable Cataloging record)
	OCLC     (Online Collection of Library Catalogs)
	             aka "First Search", "WorldCat"
	Ovid     (WebSPIRS)
	Refer    (EndNote compatible)

    There is also a miscellaneous 'Inspec' format, see "# Inspec" below.

    Example files are included below -- simply click on the hyperlink and a
    new window will be opened that you can convert to .bib format.

	"bibAdditions.tcl"

    This file contains various common utility functions utilised by the rest
    of the code; also allows 'bibConvert' to work under a general Tcl
    interpreter (e.g. under Unix tclsh).


	  	Bibliography Formats Handled:

    Please note that like all things web-related, the formats used in the
    results returned by various database programs is subject to change, and
    the software developers rarely inform AlphaTcl developers of the new
    formats.  (What nerve!)  If you find that any of the conversions below do
    not work, or if you have a suggestion for improving the conversion
    results, please file a bug report in Bugzilla (see the help file on "Bug
    Reports and Debugging") or send a note to any of the AlphaTcl mailling
    lists (see the help file "Readme" for more information.)

    If you have an entirely different format that needs to be converted,
    please describe it on one of the AlphaTcl mailing lists to see if it can
    be added.
    
    Please remember that none of these conversions comes with a guarantee, and
    all results should be checked before discarding the original records that
    generated the new ones.  In particular, entry 'types' are very difficult
    to determine, and collection editors will often be listed as authors
    instead.  The "Accents To LaTeX" filter (in the package: filtersMenu)
    should also be used to ensure that special characters are properly
    converted after the new record entries have been inserted.


	  	 	HOLLIS

    "Hollis-Example.hollis"
    
    This is the Harvard Online Library Information System format, available at
    <http://www.harvard.edu>

    The basic idea is that records are outlined by "%START:" and "%END:" tags,
    each field label is of the form "%FIELDNAME:" so we can easily separate
    things out.
    
    In the summer of 2002, Harvard unveiled a new version of HOLLIS which is
    available by web only (i.e. not by telnet), and records are no longer
    returned in the format supported here (preserved in the example hyperlink
    above).  Kind of sad, especially when you know that these two features
    were the original inspiration for this package!  (HOLLIS now gives you the
    option to have records sent to you by e-mail using the "# MARC" format
    described below.
    
    Original by Vince <vince@santafe.edu>
    Updated by Craig  <cupright@alumni.princeton.edu>


	  	 	ISI
		
    "ISI-Example.isi"

    'ISI' (Institute of Scientific Information; Science Citation Index) is a
    commercial citation database service, also known on the web as the 'Web Of
    Science' or the 'Web Of Knowledge'.  <http://www.webofscience.com>

    The basic idea is that records are outlined by "PT" and "ER" tags, each
    field label is of the form "<FF> " so we can easily separate things out.

    Original by Jon  <jguyer@his.com>
    Updated by Craig <cupright@alumni.princeton.edu>


	  	 	MARC

    "MARC-Example.marc"
    
    'MARC' is a MAchine Readable Cataloging record format used by the U.S.
    Library of Congress.
    
	The Library of Congress serves as the official depository of United
	States publications and is a primary source of cataloging records for
	US and international publications.  When the Library of Congress began
	to use computers in the 1960s, it devised the LC MARC format, a system
	of using brief numbers, letters, and symbols within the cataloging
	record itself to mark different types of information.  The original LC
	MARC format evolved into MARC 21 and has become the standard used by
	most library computer programs.  The MARC 21 bibliographic format, as
	well as all official MARC 21 documentation, is maintained by the
	Library of Congress.  It is published as "MARC 21 Format for
	Bibliographic Data."
	
                                        <http://lcweb.loc.gov/marc/umb>

    Most libraries retain their records in MARC format, and manipulate these
    fields to present catalog record information in their own peculiar format
    (which other modules in this package are attempting to convert!)
    
    Some offer the option to return marked records in 'MARC' format, which we
    are then able to very easily convert here.  Of course, while the MARC
    record headings and subheadings are standard, the format in which they are
    given is not, especially with regard to column length and spacing.  The
    'MARC' conversion is (hopefully) flexible enough to deal with several
    different variations.  The key field here to confirm that we're dealing
    with a MARC entry is '008', which is meaningless to us but supposedly
    every record has to have one.
    
    Contributed by Craig <cupright@alumni.princeton.edu>


	  	 	OCLC

    "OCLC-Example.oclc"
    
    OCLC (also known as FirstSearch) is a commercial, subscription based
    bibliographic database, <http://www.oclc.org>.  Be sure to have marked
    records e-mailed using the 'detailed' format, otherwise the conversion
    will fail.  (OCLC certainly uses the 'MARC' format to maintain its
    records, it's too bad that they don't give you that format option for
    saving/e-mailing the results.)
    
    Original by Vince <vince@santafe.edu>
    Updated by Craig  <cupright@alumni.princeton.edu>


	  	 	Ovid

    "Ovid-Example.ovid"

    'Ovid' is a commercial subscription based database service that is also
    known by the name 'WebSPIRS' <http://www.ovid.com>.  Often you're using an
    Ovid database product (such as 'SocioFile') without even realizing it.
    Many of their products are accessed via a 'SilverPlatter' website.
    
    Both long and short labels can be used for conversions.

    IMPORTANT:  When converting individual entries, make sure that the

	Record 1 of 45
	
    is included in the highlighted selection -- this is the only way that we
    know that we're using the newer interface output for ovid, and that the
    following text is a valid entry.  Also, be sure to include either short or
    long labels when obtaining the records (this code handles both styles),
    but if 'both' or 'none' are used the conversion will fail.


    Original by flip <flip@skidmore.edu>
    Updated by Craig <cupright@alumni.princeton.edu> to use the format currently
    returned ('WebSPIRS5', released summer 2002)


	  	 	Refer

    "Refer-Example.refer"

    EndNote compatible.  EndNote is a product of ISI ResearchSoft, a division
    of the same Thomson/ISI conglomerate that brings us all of the great sites
    for the "Web of Science/Knowledge/Whatever".
  
    One significant difference between EndNote and Refer is that the former
    always includes a '%0' tag indicating what type of item we're dealing
    with.  If this field is not present, the type is 'misc'.  All records must
    be separated by at least one empty line.

    Contributed by Craig <cupright@alumni.princeton.edu>.
    
    
	  	 	Inspec
		
    The original basic 'inspec' format was a file capture of horrible telnet
    interface results of 'FirstSearch' output.
    
    It's a bit harder here, and we have to remove a lot of garbage, however,
    we basically only accept lines beginning with '|', and parse the record
    names appropriately.  This has since been recategorized as "OCLC", and is
    handled above.  This older version has not been tested with the newer
    version of this package, i.e. this earlier format might now be obsolete.
    
    In this package, 'Inspec' now refers to a 'miscellaneous' category of
    bibliographic formats.  If the chosen format is 'inspec', 'Convert To Bib'
    attempts to determine which of the following should be used.  Most of
    these, however, have not been tested with the newer version of this
    package.
    
    'Inspec' formats generally follow this pattern:
    
	FIELDNAME1 FIELDCODE1: FIELDENTRY1
	.
	.
	.
	FIELDNAME5 FIELDCODE5: FIELDENTRY5
    
    There are other variations of inspec formats available (each of which
    needs some more documentation on where it comes from ...)  The trick in
    each case is to figure out where a record starts and stops.
    
    (Technical note: In theory, it would be possible to convert all library
    results back into MARC first, and then decipher it, although that would be
    something of a chore ...  After you take a look at several different
    library record (i.e. 'inspec') formats, you start to see how they're using
    the MARC record fields.)
    
    All originals by Vince <vince@santafe.edu>

	Inspec2

    This is much easier: each record starts with 'Document N' and ends with a
    long line of dashes.

	Inspec

    This is much easier: each record starts with 'Citation N'.  Now copes with
    two variants of this record type (Aug'96)

	Inspec4

    This is much easier: each record starts with ' Doc Type:'.

	Inspec5

    I've forgotten what this one looks like (Record No.  or so)

	Inspec6

    Something from Berkeley: 'N. (Inspec Result)'

	Inspec7

    These are for inspec files started with <N>, and each article with an
    accession number


	  	Package Preferences

    Many of the 'Bib' mode preferences ("Entry Braces", "Align Equals", etc.)
    are respected when converting entries.  There are some additional
    preferences in the second and subsequent pages of the conversion dialog
    that can also be set to fine-tune the style of the formatted entries, such
    as where 'abstract' or 'table of contents' fields should be mapped in
    BibTeX entries, and which fields should be completely ignored.  These
    prefs are saved between editing sessions.
}}
set help(searchPaths) {1.2.6 {
    This package over-rides the default "Option Title-Bar Click" routines,
    allowing them to search more widely, and provides general procedures to
    find files from mode-specific lists of paths.  It also handles a new
    'include paths' section of the 'Config > Mode Prefs' menu.
    
    Preferences: Features

    By default the shortcut Control-Command-H is bound to "Open Selection" and
    Command-F2 is bound to "Source Header Toggle".  To change these shortcuts,
    select "Config > Preferences > Packages Preferences > Search Path Prefs".
    
    Preferences: searchPaths
	
    This code also allows AlphaTcl package developers to handle the creation
    and manipulation of a "Search Paths" menu.  You have to attach the menu to
    a given mode's menu -- See the "Java Example.java" example for an
    illustration.  The "modeSearchPaths.tcl" source file has more information.
}}
set help(Alpha) {8.5a1 {file "Alpha Manual"}}
set help(Brws) {14.1.4 {
    During a batch search, a list of all matching lines are displayed in a
    Brws window.  By using the arrow keys and the return key, you can easily
    jump to the correct file and line of the match you desire.  See the
    "Browser-Example" for a demonstration -- click on any fileset which
    appears in the dialog to see a Browser window.

    The browser windows are displayed this special 'Brws' mode, which has
    keyboard shortcuts for three primary operations:
    
    (1) Move up one line in the window and select the line
    
	Up-Arrow
	Control-P
	Delete

    (2) Move down one line in the window and select the line
    
	Down-Arrow
	Control-N
	Space
    
    (3) Go to match
    
	Return
	Enter
	Control-C Control-C

    There is also a very useful "Search > Next Match" menu command available.
    Regardless which window is frontmost, it brings the browser window to the
    front, navigates down one line, and goes to the match of that line.  Thus,
    this gives you a quick way to jump to all matches without having to
    manually bring the browser window to the front.
    
    There are some other preferences: Mode-Brws that can be set.
    
    This mode is not intended for text editing.  However Brws mode batch
    find windows can be saved to disk and then re-opened at a later time
    and all the above functionality will still work.
}}
set help(smarterSource) {1.0 {
    file "Smarter Source Help"

}}
set help(M2) {4.2.1 {
    file "Modula-2 Help"
}}
set help(colorPrefs) {0.1.1 {
    Alpha supports automatic coloring of the text.  The "Color Prefs" package
    sets the default colors used, and provides a User Interface to change
    them via the "Config > Redefine Colors" menu.
    
    Coloring can be turned off completely by unchecking 'Coloring' in the
    dialog "Config > Preferences > Interface > Appearance".
    
    Preferences: Appearance

	  	Table Of Contents

    "# Window Colors"
    "# Syntax Coloring Support"
    "# Default Color Pref Values"
    "# Advanced Coloring Customization"

    <<floatNamedMarks>>

    
	  	Window Colors

    The "Config > Redefine Colors" menu allows you to change the colors
    used for the "Foreground" and "Background".  For example, you could
    create a "chalkboard" effect by making the background black and the the
    foreground some shade of white or green.
    
    <<colors::menuProc redefineColors foreground>>
    <<colors::menuProc redefineColors background>>
    
    Note that some color changes might not take full effect until after a
    restart.  This is a known problem (Bug# 257) that will be addressed in
    a later version of Alpha.
    

	  	Syntax Coloring Support
    
    The way Alpha colors the text depends on the current mode.  Alpha can
    automatically color three different categories of text:

	Keywords
    
    A set of words with a special meaning, e.g. keywords in programming
    languages.  Each mode might define keywords in several different
    categories, each with a different color.

	Strings

    Text delimited by double quotes.  Alpha can color single-line strings
    only, and as of this writing does not support strings in single quotes.

	Comments
    
    Comments in programming code.
    

    For details about the coloring in a specific mode, see the help file for
    the mode.  The coloring support in the different modes differ and some
    modes have a more complex coloring support than just the basic things
    mentioned above.

    Colors for keywords, strings, and comments (for applicable modes) can all
    be changed via the "Config > Mode Prefs > Preferences" menu item.  Some
    modes may offer more extensive customization.
    
    Preferences: Mode

    Note that some mode color changes might not take full effect until
    after a restart.  This is a known problem (Bug# 489) that will be
    addressed in a later version of Alpha.
    
    
	  	Default Color Pref Values
    
    By default there are seven different colors to choose between, blue, cyan,
    green, magenta, red, white, and yellow.  If you wish you can redefine
    these via the menu "Config > Redefine Colors".  For instance, you can
    redefine 'red', and any text that is currently red will then be the new
    color you specify.  In addition, there are eight other colors 'Color_9'
    through 'Color_15' which you can use to define your own colors.  Note that
    by default these colors do not show up in the mode preferences dialog
    because until you have given them a value they are undefined.
    

	  	Advanced Coloring Customization 

    If you don't find the color options in the mode preferences dialog
    sufficient, you can customize the coloring by adding some Tcl code to the
    mode preferences file.  This file is opened (or created, if necessary) via
    the "Config > Mode Prefs > Edit Prefs File" menu item.  Syntax coloring is
    defined using the command: regModeKeywords.  See the "Alpha Commands" help
    file for a complete description on how to use this command.

    As an example the line:

	regModeKeywords -a -k blue Fort {blah bladdity}
	
    will add the keywords 'blah' and 'bladdity' colored blue in Fortran mode.
}}
set help(latexColors) {0.5 {
    This package provides additional color support for TeX mode.  You can turn
    it on by selecting "Config > Mode Prefs > Features" and clicking on the
    checkbox for "LaTeX Colors".
    
    Preferences: Mode-Features-TeX

	  	Table Of Contents

    "# Description"
    "# Color Window"
    "# Remove Colors"
    "# Keyboard Shortcuts"
    "# Testing"
    "# Limitations"
    "#   Incomplete Colors"
    "#   Use of the 'bold' style"

    <<floatNamedMarks>>

    
	  	Description

    Once this package has been turned on, two new items can now be found in
    the "TeX Menu > LaTeX Utilities" submenu, named
    
	Color Window
	Remove Colors

    which are described below.  These items will add/remove colors and styles
    to the {contents} of select commands.
    
	  	Color Window

    The first item ("TeX Menu > LaTeX Utilities > Color Window") opens a
    <<TeX::colors::optionsDialog>> dialog in which you can specify up to four
    different LaTeX items to which you would like different colors to be
    added.  All text in braces following the "field" name will then be
    colored, as in
  
	\footnote{
	   This is text that would be colored
	}
	
	and {\footnote This will also work}
       
    The list of items available for colorizing can be found in the TeX mode
    preference for "Colorizable Items" once this package has been turned on.
    Items in this preference can be regular expressions if desired.
    
    Preferences: Mode-TeX
    
    All settings are saved between editing sessions.
    
    If the "Remember Window State" variable of the window is turne on, then
    the colors/styles are saved in the file's resource fork and will be
    present the next time that the file is opened.  Use the "File Info"
    pop-up menu in the status bar to change this setting.
    
    Otherwise, pressing the TeX mode keyboard shortcut which has been defined
    for "Refresh LaTeX Colors" as described below will first remove and then
    add all of the colors and styles using the saved settings.

	  	Remove Colors
    
    The second item ("TeX Menu > LaTeX Utilities > Remove Colors") will remove
    all of the colors which have been added by the first item.  They will be
    re-applied the next time you you use keyboard shortcut for "Refresh" or
    "Center Refresh" until you have either turned this package off or reset
    all values in the "Color Window" dialog to their empty default values.
    
	  	Keyboard Shortcuts

    If you edit the text within the colored environments, you might find that
    the text colors or styles are not consistently rendered.  This package
    defines two different configurable keyboard shortcuts to help clean up the
    active window.
    
	Refresh LaTeX Colors
	Refresh LaTeX Colors Center
    
    The default values for these shortcuts are the same as "Refresh" and
    "Center Refresh" that are used in all other Alpha windows.  Pressing
    Control-Option-L will update update the colors for you in the active
    window using the saved settings, while Control-L will also center the
    window using the cursor location.
    
    Preferences: Mode-TeX
    
	  	Testing
    
    Want to test this package?  Click here <<TeX::colors::testPackage>> to
    open the "LaTeX Example.tex" example window.  This will temporarily
    activate this package for this editing session, and offer the dialog for
    "TeX Menu > LaTeX Utilities > Color Window".  To turn this package on
    permanently, you can adjust your preferences: Mode-Features-TeX .
    
	  	Limitations

    This feature is exploiting some of the window coloring options that are
    made available by various Alpha core commands.  In some cases we run into
    some interference encountered with "normal" keyword colorizing routines,
    as explained below.
    
    Neither of these limitations is present in Alphatk.
    
    If you want these colors to be automatically applied when you first open
    a .tex window, you need to turn this package on "globally."
    
    Preferences: Features
    
    (Technical note 1: Automatic colorizing with this package can result in a
    considerable delay when .tex windows are first opened.  Perhaps we need a
    preference to decide if colors should be automatically applied.)
    
    (Technical note 2: if the feature is only turned on for TeX mode, the
    colors are only applied if the mode of the active window is "TeX"
    _before_ the new window is opened.  The [openHook] procedure is
    deregistered when switching out of TeX mode, and by the time it is
    re-registered because TeX mode features are re-activated the window has
    already been opened and the hook won't be called...  We hope to address
    this better in a future release, perhaps by always registering the
    [openHook] and checking to see this package is still active, or making
    use of a package's "off" script.)

	  	 	Incomplete Colors

    In both Alpha8 and AlphaX, due to limitations in how these applications
    create, render and store color information for active windows, it is
    possible that the entire contents of the colorized items will not be
    properly rendered.  For example, a footnote that looks like
    
	\footnote{
	
	this is a \textit{test} of colorizing with this package
	% this is a commented line
	and this
	\begin{quote}
	    is another test
	\end{quote}
	    
	}

    might only color the text up to the first backslash.  These are known
    problems with the application, not with this package, although fixing them
    will require extensive changes in the cores of the executables and is of
    low priority at the moment.
    
    Fortunately, this Alpha8/X limitation only applies to colors, not styles,
    so it would still be possible to make the above string all italicized, or
    underlined.    (This limitation is not present in Alphatk.)
    
	  	 	Use of the 'bold' style

    Differentiating text such as footnotes using the "bold" style makes this
    feature extremely useful.  However, in Alpha8/X this requires that the
    font of the active window renders "normal" and "bold" letters using the
    exact same pixel length.  (This limitation is not present in Alphatk.)

    "Monaco" is an example of a font that does _not_ meet this requirement,
    and attempting to edit text that has been styled with "bold" with this
    font will lead to all sorts of rendering problems and make the editing of
    text in such regions nearly impossible, possibly introducing a lot of
    garbage text.  "Courier" is an example of an acceptable font.
    
    When you select the "TeX Menu > LaTeX Utilities > Color Window" command,
    the font of the current window is checked to see if it will allow for
    applying the "bold" style.  If not, it will not be offered.  If it has
    been previously set for a window that accepts bold, but then you attempt
    to colorize a window with a different font that does not accept bold, you
    will be warned about this conflict and the style will not be applied.
    
    The fonts that meet this requirement are not necessarily monospaced, just
    as monospaced fonts do not guarantee that they meet this requirement.
    Click here <<TeX::colors::listBoldFonts>> to see the list of all fonts for
    which "bold" has been deemed a safe style for colorizing.  If you find
    others which meet the "same pixel length for bold and normal" requirement,
    please contact this package's maintainer and it will be included in the
    next release.
}}
set help(iconifyOnSwitch) {0.2 {
    Iconify/minimize all windows when you switch to another application (and
    remap them when returning to Alpha).
    
    Preferences: Window
}}
set help(SQL) {1.1.3 {
    SQL Mode is for SQL and Oracle's PL/SQL programming language.  If the SQL
    mode preference "Upcase Commands" is turned on, SQL and PL/SQL keywords
    are converted to uppercase on the fly.
    
    Preferences: Mode-SQL
    
    Automatic file marking with the Marks Menu is supported.
    
    Click on this "SQL Example.sql" link for an example syntax file.
    
    Oracle maintains a faq <http://www.orafaq.org/> with more information
    about SQL.
}}
set help(PHP) {0.1.2 {
    file "PHP Mode Help"
}}
set help(documentProjects) {2.0.2 {
    file "Documentprojects Help"
}}
set help(SPSS) {2.3 {
    file "Statistical Modes Help"
}}
set help(autoWrapComments) {0.1 {
    The 'Auto Wrap Comments' preference changes how lines are automatically
    wrapped as you type.
    
    Preferences: Electrics
    
    When it is turned on, text that is typed within a comment will be
    automatically wrapped, ignoring the current value of the Line Wrap
    preference of the active window.
}}
set help(htmlUtilities) {0.1 {
    General purpose html utilities for use by any of AlphaTcl, but
    required by AlphaTcl's core.
}}
set help(wwwServices) {1.0 {
    This library supports the package: xserv by declaring a variety of
    different "WWW/Internet" services for viewing urls, fetching remote
    files, etc.  All of these helper applications can be set using the menu
    command "Config > Global Setup > Helper Applications":
    
    <<prefs::dialogs::helperApplications "Internet">>
    
    These services are automatically declared when ALPHA is launched.
    
    See the file "www.tcl" for the package: xserv declarations.
}}
set help(licenseTemplates) {0.3 {
    This package creates license templates for insertion into document
    windows.  These templates can be modified to suit your particular tastes.
    You can also add new license templates.  Other AlphaTcl packages use the
    list of defined templates to insert them into windows; see help for the
    package: documentProjects and the package: electricMenu for more
    information.
    
	  	Table Of Contents

    "# Default Licenses"
    "# Modifying Templates"
    "# Adding New Templates"
    "# Restoring Templates"
    "# Template Substitutions"
    "# Advanced Substitutions"
    
    "# System Administrator Notes"
    "# Developer Notes"

    <<floatNamedMarks>>
    
    
	  	Default Licenses
    
    Several licenses are defined by default; click here
    
    <<license::showLicenses>>
    
    to list them and display the current template(s) in a new window.  You
    can modify these templates as much as you want.
    
    
	  	Modifying Templates
    
    If you're not satisfied with the content of a default template, you can
    easily modify it.  Click here
    
    <<license::modifyTemplate>>
    
    to do so.
    
    When you are satisfied with your template, simply save the file.  The
    next time that some AlphaTcl code needs to get the template it will read
    the contents of this file, ignoring any comments and leading blank lines.
    
    All of your modified license templates are stored as files in ALPHA's
    "Support" folder.
    
    <<license::showTemplateFolder>>
    
    See the "# Template Substitutions" section below for advanced tips.
    
    
	  	Adding New Templates
    
    If you want to add a new license template without changing any of the
    current defaults, click here
    
    <<license::addTemplate>>
    
    You will be prompted for a new license name, and a new file will be
    created in your Support folder.  You might want to use an existing
    template as an example: <<license::showLicenses>>.
    
    All of your personal license templates are stored as files in ALPHA's
    "Support" folder.
    
    <<license::showTemplateFolder>>
    
    See the "# Template Substitutions" section below for advanced tips.
    
    
	  	Restoring Templates
    
    If you want to restore a default license template, simply remove the
    modified Support file.
    
    <<license::removeTemplate>>
    
    If this was a default license defined by this package, the default
    version will then be restored.  If it was a new license template added by
    you, it will be lost forever.
    
    
	  	Template Substitutions
    
    The template that is returned to any calling procedure is in an
    "electric" format that can specify template prompts and fancy
    substitutions.  For example, anything that is surrounded by bullets is
    considered to be a prompt, as in
    
	author
    
    The [license::getTemplate] procedure goes even further, and attempts to
    replace some of these "hints" with information that is relevant to the
    current user.  This routine makes use of the package: identities ; you
    can use the "Config > Preferences > Current Identity" menu to set your
    name, e-mail address, etc.  and this information will be used (when it is
    available) to create a better license template.  When none is available,
    the "hint" is retained as a template prompt.
    
    Some common substitutions that you can add to your template include
    
	author
	organisation
	address
	email
	www
	author_initials
	year
    
    Or, since you are modifying the template for your personal use, you could
    simply "hard-wire" those values as desired.
    
    Some additional template substitutions which are always available include
    
	tail
	path
    
    which refer to the name and path of the active window.
    
    
	  	Advanced Substitutions
    
    You might find that you have additional common "user information" fields
    that you would like to include in your template, such as an original year
    in which a suite of files was created.  Using the package: identities ,
    you can easily add any arbitrary field and value.  Open a "prefs.tcl"
    file, and add the following
    
	userInfo::addInfo <field> <value>
    
    as in
    
	userInfo::addInfo "orig_year" "1997"
    
    Now your template can include "orig_year" and the string "1997" will be
    automatically substituted.
    
    If you are in need of additional template substitutions that are more
    contextual, such as the path and tail examples above, feel free to
    contact this package's maintainer for some tips on how to create them.
    
    
	====================================================================
    
    
	  	System Administrator Notes
    
    A sysadmin can over-ride the default license templates or add new ones to
    be made available by adding files to the "Templates/Licenses" folder in
    the $SUPPORT(local) directory.  The user will still be able to over-ride
    these system additions, but your modifications/additions will always be
    used by default.
    
    <<file::showInFinder [file join $SUPPORT(local) Templates Licenses]>>
    

	  	Developer Notes
    
    To make use of this package, you should first confirm that it exists:
    
	alpha::package exists licenseTemplates
     
    Use the proc: license::listTypes for a list of the current templates.
    
    Use the proc: license::getTemplate <type> to get the electric template.
}}
set help(JScr) {1.1.4 {
    file "HTML Help"
}}
set help(mailEudora) {2.0 {
    This package enables the sending of messages with the package: mailMenu
    using the MacOS e-mail client Eudora.  Its functions include:

     creation and queuing of mail messages
     opening of Eudora mail "mailboxes".
     moving messages between mailboxes, including to Trash
     intelligent replies, including quoting of original message
     telling Eudora to send queued messages and check for new messages
    
    To change the current mail handler to Eudora, simply select this item in
    the "Mail Help > Mail Handler" menu.  Eudora can be downloaded from

    <http://www.eudora.com/>
    
    IMPORTANT: In MacOSX, all AlphaX <-> Eudora AppleEvent interaction is
    much slower than in MacClassic.  The cause of this is unknown, and will
    hopefully be addressed in a later release.
    
    
	  	Table Of Contents

    "# Additional Mail Menu commands"
    "# Eudora Options"
    "# Eudora Nicknames"
    
    <<floatNamedMarks>>
    

	  	Additional Mail Menu commands

    Once you have changed the current mail handler to Eudora, in addition to
    the standard "Mail Menu" commands the following are also available:

	Reply / Reply To All

    Create a reply to the message currently being read.  The original message
    is quoted.  Use tabs to move between fields.

	Open Mailbox                

    This submenu includes all of the Eudora mailboxes currently known to
    Alpha.  Use the "Open Mailbox > Update Mailbox Lists" to launch Eudora
    (if necessary) to obtain the current list.  This will be remembered
    between editing sessions.
    
    Once the list has been created, selecting one of the items will create a
    new browser window in Alpha allowing you to navigate to an e-mail heading
    using the arrow keys.  Press Return to view the selected e-mail in Alpha.

	Move Mail To

    This submenu includes all of the Eudora mailboxes currently known to
    Alpha.  If you are viewing a Mail message obtained from Eudora, you can
    transfer it to a different mailbox, including the Trash.

	Tell Eudora

    This submenu includes some commands that Alpha can instruct Eudora to
    complete, launching Eudora if necessary.  They include

    > Flush Outbox:

    Tell Eudora to flush 'out' mailbox immediately.

    > Check For Mail:

    Tell Eudora to check for mail immediately.
    

	  	Eudora Options

    This submenu includes some toggleable menu items that are Eudora specific
    Mail Mode options.

    > Flush On Check          

    When asking Eudora to check for mail, tell it to flush any queued
    messages at the same time.

    > Alert on Incoming       

    Put up a mail browser when Eudora notifies Alpha of incoming messages.
    
    > Immediate Send
    
    After selecting the "Mail Menu > Send" command, Alpha can instruct Eudora
    to either queue the message for delivery later, or send it immediately.
    
    
    In addition to toggling the value the above preferences, you can select
    these commands:
    
    > Trash Folder Name
    
    Tell Alpha the name of Eudora's "Trash" folder.
    
    > Edit Nicknames
    
    Open your "Edit Nicknames" file, used by "Mail Menu > Finish Nickname".
    
    > Update Nicknames
    
    Scan your "Edit Nicknames" file for use by "Mail Menu > Finish Nickname".
    
	  	Eudora Nicknames

    (To be added.)
}}
set help(projectBuilderMenu) {0.1 {
    This menu allows Alpha to act as an external editor for
    Apple's Project Builder IDE.
}}
set help(Scm) {2.2 {
    The Scheme dialect of Lisp was created in 1975 by Guy Steele and Gerry
    Sussman to explore ideas in programming-language semantics.  They
    showed that a powerful language can be made "not by piling feature on
    top of feature, but by removing the weaknesses and restrictions that
    make additional features appear necessary".  Scheme pioneered lexical
    scope in Lisp, first-class continuations, and tail recursion, and more
    recently added an advanced macro system.  It's the best-known Lisp
    dialect after Common Lisp (which it influenced).  It is IEEE
    standardized and widely used in universities and in electronic CAD
    systems.
    
                                               -- <http://www.lisp.org>
    
    Alpha's Scheme mode includes a user-expandable dictionary of keywords, a
    full set of Electric Completions, and a sophisticated indentation
    procedure.  Scm mode also uses its own 'Scheme' menu, which is based on
    the Lisp menu.  See the "Lisp Help" file for more information.
    
    Click on this "Scheme Example.scm" link for an example syntax file.
}}
set help(coq) {0.1 {
    For information about Coq, see <http://coq.inria.fr>
}}
set help(Fort) {2.0 {
    file "Fortran Mode Help"
}}
set help(vcCvs) {0.4.1 {
    This package provides support for CVS version control.  It is only useful
    if the package: versionControl has been activated -- consult the help file
    opened by this hyperlink for more general information about using 'version
    control' in Alpha.
    
    'CVS' stands for "Concurrent Versions System", for more information see
    this url:
    
        <http://www.cvshome.org/>
    
    To use this method of version control, you must first edit a fileset
    <<editAFileset>> via the "Filesets > Utilities" submenu and change the
    "Version Control System" variable to "CVS", which should be an option in
    the pop-up menu in this dialog.
    
    If you are using the MacOS and MacCVS Pro, you can specify a .cvs session
    file that should be associated with this fileset.  In the <<editAFileset>>
    dialog, click on the "Attach/Detach Info" button, and then set the
    checkbox for "MacCvs Pro Session File", and the "OK".  As an alert dialog
    should inform you, you can now close this dialog, and then use
    <<editAFileset>> again and edit the same fileset -- there should now be a
    variable for "MacCvs Pro Session File" that you can set.
    
    IMPORTANT: 
    
    For cvs usage to a system which doesn't require a password (e.g. public
    access to alphatcl or any sourceforge project), AlphaTcl's cvs setup
    should work fine.  However, if you need to access a cvs repository which
    needs a password, you will need to set things up with 'ssh' so that you
    don't need to type your password each time.  The best instructions for
    this that I have found are available here:

    unix: <http://www.joot.com/dave/writings/articles/cvs-ssh.html>
    win:  <http://sourceforge.net/docman/display_doc.php?docid=766&group_id=1>

    When running under Alphatk, the command-line cvs is used.  We cannot (yet)
    interact properly with the command-line cvs, and hence if cvs asks us for
    a password, the command will fail.
    
    You should therefore configure things (if possible) so that login occurs
    automatically.  In the future hopefully this constraint will be removed.
}}
set help(alphaServer) {3.0 {
    This always-on AlphaTcl package sets up a server socket to listen to 
    requests for the execution of Tcl commands.  The main client is the
    alphac script which allows Alpha to serve as EDITOR or TEXEDIT to
    open a file at a given line.  Setting TEXEDIT to
      
      $HOME/Tools/alphac +%d %s
      
    will make the teTeX versions of tex (and pdftex) use Alpha when "e" is
    typed at an error prompt. "$HOME" is the folder containing the Alpha(tk)
    binary, as in <<alertnote $HOME>>.  Click here <<putScrap $HOME>> to place
    this value in the OS Clipboard.
    
    alphac may also be used as the system editor by setting EDITOR to
    
      $HOME/Tools/alphac -wait
    
    The '-wait' option will make alphac wait until you close the window of 
    the edited file, letting the system know that you have finished.

    Technical information:
    
    For security reasons, the commands sent to the Alpha server are executed
    by a safe Tcl interpreter.  This interpreter is restricted and can only
    execute the following three commands:
	
	file::editAnyNumberOfFiles   ::newWindow   file::openWithSelection
    
    corresponding to the type of commands that can come from the alphac
    script.
      
    You can tweak the Alpha server to accept other commands if needed to
    set up more complex inter-application communications.  All you have to
    do is to redefine the list variable alphaServer::authorizedCommands,
    lappending the needed commands.  You can place such a redefinition in
    your prefs.tcl file after a [alphaServer.tcl] statement (which forces
    the original definition to come first; your redefinition overrides).
    However, you should be aware of the security risk implied by allowing
    arbitrary commands: someone on another computer may use the server to
    have Alpha execute malicious Tcl commands.  The server is meant only to
    accept connections only from the local host, but the check is a bit
    heuristic and a hacker might be able to fool this check.  Therefore, it
    is recommend to use an IP firewall to block remote connections to
    unauthorized ports.  For Mac OS X users, this amounts to:
    
      (1) Do not enable remote Apple Events
      (2) Activate the firewall in the Sharing panel of System preferences

    
    To request the execution of a Tcl command by Alpha, simply connect to
    the socket on which the server listens and write the command followed
    by a control character (for instance ^D).  Control characters are not
    allowed in the command and are interpreted by the server as the
    end-of-command marker.  In order to wait for the editing to finish
    (wait for the window to be closed) preceed the command by the token
    "-wait".  Then alphaServer won't close the connection after receiving
    the command but will use it to send back the name of the edited file
    when it is closed.  If several windows are open, alphaServer will wait
    until the last one is closed and send the filename of this last window
    through the connection.
  
    The number of the port on which the server socket listens is put in the
    environment variable:
  
      ALPHASERVERPORT
  
    so it is accessible to any sub-process of Alpha.
  
    Other processes may read the port number of the server from a file named:
    
      - on Unix systems
    
	  /tmp/$USER-AlphaServerPort
    
	where $USER is the login name of the user who has launched Alpha.
      
      - on Windows
      
	  $USERNAME-AlphaServerPort 
      
	in the first directory found among:
      
	  (1) $TEMP
	  (2) $TMP
	  (3) $USERPROFILE\Temp
      
}}
set help(WWW) {{for wwwMenu menu} {
    file "WWW Menu Help"
}}
set help(bibDelimited) {1.0 {
    This package converts .bib files to/from delimited windows.  To activate
    this package, just check the box in the dialog that appears using the
    "Config > Global Setup > Features" menu item.  This could also be a Bib
    mode feature preference.
    
    Preferences: Mode-Features-Bib
    
    Once the package is active, it will insert two new items into the submenu
    "BibTeX Menu > BibTeX Conversions", named
    
	Bib To Delimited
	Delimited To Bib

    which are described below.  Note that any '@string' strings will NOT be
    converted, use the "String Conversions > Unstringify Window" menu item
    first if this is an issue.  Any '@string' entries will also be ignored.

    
	  	 	Bib To Delimited


    This is useful if you want to convert a .bib file with entries like this:
    
	@article{DiMaggio1997,
	   author   = {Paul DiMaggio},
	   title    = {Culture and Cognition},
	   journal  = {Annual Review of Sociology},
	   volume   = 21,
	   pages    = {263-287},
	   year     = 1997,
	}

    into something like this:

	Paul DiMaggio
	Culture and Cognition
	Annual Review of Sociology
	21
	263-287
	1997

    or perhaps into a tab delimited entry that could be read into a
    spreadsheet window (such as Excel):
    
	DiMaggio1997	Paul DiMaggio	Culture and Cognition	Annual Review of Sociology	21	263-287	1997

    This menu item will convert any highlighted entries (or all entries in the
    current window if there is no selection), grabbing each field value to use
    in a delimited entry.  When the menu item is chosen, a dialog with several
    different delimiting options is presented, which will look like this
    <<Bib::Delimited::toDelimitedDialog>>.  Options will be remembered for the
    next round, and will be saved between editing sessions.
    
    Experiment converting entries with the "BibTeX Example.bib" file.
    

	  	 	Delimited To Bib


    As expected, this menu item reverses the process.  A slightly different
    dialog will be presented <<Bib::Delimited::toBibDialog>>, and once again
    settings will be saved.  This is useful if you have a set of bibliographic
    data that you want to turn into BibTeX entries.  Note that unless both the
    BibTeX menu and this package are globally activated, you'll have to first
    change the mode of the delimited window to be converted to Bib.
    
    All of the entries, which will include the entire window if there is no
    selection, will be converted using a single 'entry' type, and it is up to
    you to ensure that the fields in the delimited format are in the proper
    order that a normal 'entry' template would provide.  If this is not the
    case, you can either add/delete fields from the delimited window (the
    package: manipCols is useful for this sort of activity) or change the
    "Default Entry Fields > <Entry>" preference for the entry.
    
    Experiment using a window that was first converted using the first menu
    item described above.
}}
set help(filtersMenu) {2.1 {file "Filters Help"}}
set help(Inst) {0.2 {
    The mode is for used by install scripts for adding additional packages or
    upgrading Alpha.  Install mode places an "Install" menu in the menu bar,
    although installation scripts generally use an installation dialog which
    provides an even better user interface.
    
    Users are always given the option to back-up any currently existing files
    in the AlphaTcl library -- these will be placed in an "AlphaTcl" folder
    in the same level as the "Alpha" folder.

    Click on this link "Install Example" for an example of such a dialog.  To
    see the actual script, hold down any modifier key when clicking on the
    link (or while the file is opening.)

    For more information about installation, see "install.tcl".
    For more information about writing packages, see "Extending Alpha".

    This mode is not intended for text editing beyond installation scripts. 
    AlphaTcl developers who are using this mode should take advantage of
    command double-clicking on optional arguments, and the use of the
    'electric dash' feature.  The "install::packageInstallationDialog" string
    is also available as an electric completion.
}}
set help(specialIndentForCaseLabel) {0.1 {
    Enabling this feature tells Alpha to indent 'case foo:' and 'foo:' by
    only half an ordinary indentation unit.  This is primarily useful for C,
    C++, Java, Jscr modes.

    Preferences: Electrics
}}
set help(latexAccents) {1.3.0 {
    This feature allows you to convert between international symbols
    (available from the keyboard in use) and LaTeX codes.  This can be done in
    two different ways.  First, activating the feature adds two new items to
    the "TeX Menu > LaTeX Utilities" submenu to convert all of the accented
    characters in the current window to/from LaTeX codes.  Second, key presses
    that would normally insert accented characters can instead automatically
    insert the LaTeX code.
    
    This feature is available for both TeX and Bib modes, although you must
    activate it for each mode in order to use the bindings.
    
    Preferences: Mode-Features-TeX
    Preferences: Mode-Features-Bib

    Note that all of the preferences described below are 'attached' to TeX
    mode, and can only be changed when the current window is in TeX mode,
    although the preferences do apply to both TeX and Bib.  All of these prefs
    can be changed using the "Config > Mode Prefs > Preferences" dialog.
    
    Preferences: Mode-TeX
    Preferences: Mode-Bib

	Accent Syntax
    
    A choice between different possible syntax for accents and ligatures (i.e.
     replaced by \'{e} or \'e, and  by \oe{}, {\oe} or \oe ) is available
    via the 'Accent Syntax' preference.
    
	Bind LaTeX Accents

    Key-presses for accented characters can be bound to their LaTeX form
    depending on the above preference: typing  yields \'e (or \'{e}) (set by
    the 'Bind LaTeX Accents' preference, default is OFF).
    
	Accents In Comments

    The accented characters can be kept when they appear in comments according
    to the 'Accents In Comments' preference -- turning the preference on
    allows the characters to remain undisturbed.  NOTE that this option does
    not work with the conversion procedures called from the 'LaTeX Utilities'
    menu.
    
    When the 'Accent Smart Escape' preference is ON, the LaTeX accents are
    deleted at once using the backspace key.  A single character deletion is
    bound to SHIFT+backspace.  Presently works with any character for the
    
	\', \^, \`, \", \~, \c and \v
    
    accents, but not for the
    
	\=, \., \u, \H, \r, \t, \d, \b, and \k
    
    ones.
    
    WARNING! this feature deletes several characters at once and uses a
    general syntax to find accent or ligature patterns; it is not restricted
    to the syntax chosen in 'accentSyntax' or the character set used in the
    conversion procedures.  For instance,
    
	\^ { v }
    
    will be recognized as a legal accented v and will be deleted at once.  If
    you are impatient and press the backspace key several time, you will
    delete extra characters (possibly critical ones such as curly braces), BE
    CAREFUL if you use this feature!.
}}
set help(xsl) {0.4.2 {
    This package provides support for xml mode, see "xml Help".
}}
set help(Pasc) {1.0.7 {
    Pascal Mode provides keyword coloring and automatic line indention.
    Click on this "Pascal Example.p" link for an example syntax file.
}}
set help(favoritesMenu) {1.0.1 {
    This package allows you to open Favorite Files, Folders and Applications
    from within Alpha using custom Keyboard Shortcuts.  After it has been
    turned on in the "Config > Global Setup > Features" dialog
    
    Preferences: Features
    
    a new "File > Favorites" submenu is created, allowing you to add new
    Favorite Items.  Favorites can be Files, Folders, or Applications.
    
	  	Table Of Contents

    "# Adding New Favorites"
    "# Keyboard Shortcuts"
    "# Opening Favorites"
    "# Power User Tip"
    "# Favorites Utility Items"
    "# Contextual Menu Module"

    <<floatNamedMarks>>


	  	Adding New Favorites
    
    Select "File > Favorites > New Favorite", which will open a series of
    dialogs that look like <<favorites::itemDialog>>.  You must first choose
    what "type" of Favorite this will be, i.e. a File, Folder or Application.
    Any open windows that exist as local files can also be selected, as well
    as your collection of files collected by the package: recentFilesMenu ,
    and your collection of folders collected by the package: recentDirsMenu .
    Once you have selected an Item Type, the next dialog allows you to name
    the Favorite, and locate it in your local disk.
    
    You must enter a name for the Favorite Item.  This could be the name of
    the File, Folder, or Application, but we don't use that by default
    because there might be some ambiguity if you have several items on your
    disk with the same name.  (See also the "# Power User Tip" below for
    additional naming strategies.)
    
    You must also select a location for the Favorite Item.  If you fail to
    do so, the dialog will keep re-appearing until you either choose a
    location or press the "Cancel" button.

    The list of Favorites has nothing to do with any MacOS Favorites, by
    the way, and changing Alpha's menu does nothing to your System Prefs.


	  	Keyboard Shortcuts
    
    Each Favorite can also be assigned a unique Keyboard Shortcut that will
    appear in the menu and which will be available in any mode, even if
    there are no open windows.  Two options are available here, either or
    both can be defined when you first create a New Favorite Item, or added
    later when by selecting "File > Favorites > Edit Favorite".
    
    "Menu Shortcuts" will appear in the "File > Favorites" menu.  
    
    "Other Keybindings" will not, and can be created with a "prefix" so
    that a binding such as
    
	Control-C Control-F

    can be used to open a Favorite Item.  You should always confirm that a
    proposed binding is not already in use before assigning it.

    
	  	Opening Favorites

    Favorites are opened by selecting them from the "Files > Favorites" menu,
    or by pressing their associated Keyboard Shortcuts.
    
    "Files" are always opened in Alpha.
    
    "Folders" open an 'Open File' dialog using the specified folder as the
    default location.  The chosen file will then be opened in Alpha.
    
    "Applications" will be launched if necessary, and then brought to the
    front.
    
    If any of your Favorites have been renamed or moved on your local disk,
    Alpha will not be able to locate it.  You must either Edit the item and
    find the new location, or Delete it.
    

	  	Power User Tip

    If the name of a Favorite Item ends in "*", as in "Readme *", then the
    default opening behavior is changed.
    
    "Files" will be sent to the Finder to be opened using whatever default
    application is deemed appropriate by the OS.
    
    "Folders" will be displayed in the OS Finder.
    
    "Applications" will be launched in the background.
    
    
	  	Favorites Utility Items
    
    After you have created a list of Favorites, you can select any of the
    various utilities to Edit/Rename/Delete any saved Favorite Item.  When
    you "Delete" them you are only affecting this submenu, and you're not
    actually deleting them from your local disk.
    
    Once you have created a Favorite Item that is a File, Folder, or
    Application, however, you cannot change that item's "type".
    
    
	  	Contextual Menu Module
    
    This package also creates a new "Favorites" Contextual Menu module that
    can be activated after if this package has been turned on.
    
    Preferences: ContextualMenu

    This CM menu will offer the same options as "File > Favorites".
}}
set help(addressBook) {1.1 {
    This package inserts an 'Address Book' submenu in the Utils menu, allowing
    for the management of a user modified address book which can be used to
    create customized mailing lists.  Activate this package by using the
    "Config > Global Setup > Features" menu item.
    
    Preferences: Features
    
    
	  	Creating an Address Book Database
    
    Use the "Utils > Address Book > Add Entry" menu item to create new
    entries.  If any e-mail address is selected in the current window, you
    have the option to use this for the 'Email' field.

    The 'Collect All Emails' menu item will scan the current window for all
    e-mail addresses, and allow you to create a new entry for each one.  You
    can easily experiment with this by opening the "Installed Packages" help
    file and using this menu item.
    
    The entries in the database can be modified at any time using the menu
    items "Utils > Address Book > Edit/Rename/Remove Entry".
    
    The default entry fields used to create the database can be modified by
    using the "Utils > Address Book > Add/Remove Entry Field" menu item, or
    rearranged to suit your tastes.  Note that a 'Comments' field will always
    be appended to the end of the default entry fields list.  (It's probably
    easiest to compose the 'comments' field in a regular window and then paste
    it into the dialog if it is multi-line ...)
  
	  	Custom Mailing Lists, Searching

    Once a database of entries has been created, you can use it to create a
    customized mailing list (including only those fields that you specify), or
    to search the entries or specific fields for specific text or a regular
    expression.  New mailing lists and search results are always displayed in
    a new window, while the "Insert Mailing Label" menu item will place the
    selected entry in the current window.
    
    Database entries selected using the menu item "Insert Mailing Label" and
    "Create Mailing List" will be listed like this:
    
	Craig Barton Upright
	Department of Sociology
	Princeton University
	Wallace Hall, # 127
	Princeton NJ  08544
	<cupright@alumni.princeton.edu>

    while search result entries will be displayed like:
    
	Entry: cbu

	Name:               Craig Barton Upright
	Organization:       Department of Sociology
	Address Line 1:     Princeton University
	Address Line 2:     Wallace Hall, # 127
	Address Line 3:     Princeton NJ  08544
	Email:              <cupright@alumni.princeton.edu>
    
    although you also given the option to return the search results using the
    first style ("Mailing List Format") if desired.
    
    The item "Utils > Address Book > Display All Entries" will list all fields
    for all entries (using the second style) in a new window.
    
	  	Interaction with the Mail Menu

    This package provides limited support for the Mail Menu.
    
    --- All entry names can be automatically added as Mail mode electrics, so
    long as the entry name does not contain any spaces.  Set the Mail mode
    flag preference for 'Auto Update Mail Electrics' (available when the
    current window is in Mail mode ...)  to create these electrics on
    start-up, or whenever a new entry is added.
    
    --- These electrics can be updated at any time using the menu item
    "Address Book > Update Mail Electrics".
    
    --- Alpha's "Config > Preferences > Input-Output > WWW" preference for
    "Email Using" determines if the menu item "Address Book > Email ..."  and
    the mailing list hyperlinks will attempt to compose the e-mail using the
    Mail Menu or the default OS composing application.
    
    Preferences: WWW
}}
set help(CSS) {2.2b1 {
	file "HTML Help"
}}
set help(autoContinueComment) {0.1 {
    The 'Auto Continue Comment' preference changes the behavior of pressing
    Return when the current line is in a commented block of text.
    
    Preferences: Electrics
    
    When it is turned on, pressing Return will automatically indent the newly
    created line and insert the proper comment character(s) before the
    cursor.  Pressing Control-Return will simply create a new line without
    doing any automatic indentation or insertion of comment characters.
}}
set help(AlphaTcl) {8.1a5 {file "Extending Alpha"}}
set help(Ruby) {0.1 {
    Ruby is the interpreted scripting language for quick and easy
    object-oriented programming.  It has many features to process text files
    and to do system management tasks (as in Perl).  It is simple,
    straight-forward, extensible, and portable.
    
    <http://www.ruby-lang.org/>
    <http://www.rubycentral.com/>
}}
set help(mapl) {1.1.5 {
    Maple is a functional programming language for doing symbolic computations
    in mathematics.  It is also a commercial programme for interpreting code
    written in this language --- see <http://www.maplesoft.com> .

    mapl mode is meant to facilitate editing (or viewing) Maple source files in
    Alpha.  Click on this "Maple Example.maple" link for an example syntax file.
    Currently mapl mode supports:

      keyword colouring
      file marking
      indentation
      command navigation
      command double-click to locate the definition of a proc.  (Hold down any
        modifier key to show the proc's arguments in the status bar window.)
    
    The Maple menu also supports switching to the Maple application, as well as
    to Mint.  (Mint is the Maple syntax checker and diagnostic tool.)  It seems
    that no version of Maple understands apple events :-( (??)  so there is no
    further interaction available ...
    
    And here are two hints:

    1: It is awkward to to use filename extensions for files to be read by the
    Maple interpreter, since .  is a concat operator in Maple.  Instead, to make
    Alpha recognise that the file belongs to mapl mode, let the first line be

	# -*-mapl-*- (nowrap)

    --- then Alpha will automatically enter mapl mode when opening the file.
    The file suffix '.maple' is attached to this mode merely to help some
    internal Help documents open within Alpha in the proper mode.

    2: It is practical always to save Maple source files in IBM format (i.e.,
    with both carriage returns and linefeeds).  In this way the file can be read
    by Maple on unix systems as well as on the mac.  If you use either mac or
    unix line-endings, when sourcing the file on the other platform, any comment
    char will comment out the rest of the file, due to missing newlines!
}}
set help(Java) {1.23 {
    Java Mode provides keyword coloring and class/method marking with the 
    Marks Menu; it gives you automatic indentation and keyword completion.
	
    Java Mode supplies a menu for easy switching between your favorite Java
    compiler and Alpha (Shift-Command-S), will send a file to be compiled
    (Shift-Command-K).  The Java Menu can be used to open a HTML file
    corresponding to a java file in the Applet Viewer.  If there is a file
    "some_applet.html" in the same folder as "some_applet.java" it is sent.
    Otherwise the user is asked to select a HTML file.  This file is
    remembered throughout this session with Alpha.

    Click on this "Java Example.java" link for an example syntax file.
}}
set help(fileCompression) {0.4.1 {
    This package creates a new "Utils > Compress" submenu with allows you to
    compress windows and files from within Alpha.  To turn it on, select the
    "Config > Global Setup > Features" menu item and click the checkbox that
    is named "File Compression".
    
    Preferences: Features

	  	Compressing Windows, Files, Folders
    
    The "Utils > Compress" menu contains a variety of options for creating
    the list of files that should be archived, including
    
	the active window
	the folder of the active window
	any other open window
	all open windows
	
    In all cases, only those windows that actually exist on your local drive
    can be archived.
    
    Additional options will open a dialog to specify

	any file on your local drive
	any folder on your local drive

    You can determine which archiving application options should be included
    in the menu by changing the "File Compression" package preferences --
    just select "Utils > Compress > Compression Prefs", and turn on/off the
    items named "Include Stuff Options", "Include Zip Options" etc.
    
    <<compress::packagePrefs>>
    
    Adding them to the menu does not ensure that the archiving option is
    actually available -- you should also check the value of the application
    signature for each item to determine if it exists on your local drive.
    
    If your copy of the compression program has not been registered with the
    software developer, you will need to switch to them to dismiss the
    initial dialog that is always presented when it is first launched.  (Or,
    even better, register all of your shareware!)
    
	  	Destination Folders

    The "Utils > Compress > Destination Folder" menu item will attempt to
    open your Archiver's Destination Folder in the OS. In general, this
    folder is a preference that you set as a default for the Archiver.  If
    Alpha is not able to determine the value of this preference from your
    Archiver program, you will be prompted to locate it yourself.  This
    location will be saved as a "File Compression" package preference between
    Alpha editing sessions.
    
    <<compress::openDestinationFolder>>
    
    The "Open Destination" preferences for each Archiver determines if this
    folder will be automatically opened following a compression operation.
    
    In future versions, the Destination Folder preferences might be used to
    determine the target of the Archiver.  As of this writing, you must set
    this from in the Archiver Application Preferences and simply let Alpha
    know where these folders are located.

	  	Contextual Menu Module
    
    This package also creates a new "Compress" contextual menu module that
    can be activated even if this package has not been turned on.
    
    Preferences: ContextualMenu

    This menu will offer options for archiving currently open windows.
}}
set help(wwwDictionary) {1.0.1 {
    This package creates a new "Utils > Www Dictionary" submenu, which allows
    words to be looked up in on-line web sites.
    
    Preferences: Features
    
    After this package has been turned on, simply select the desired menu
    item, enter the word to be queried in the prompt dialog, and then press
    'OK' to open a web browser for the specified service.
    
    The url containing the dictionary contents for the given word will be
    displayed using Alpha's WWW service as specified by the "View Urls Using"
    preference.  This could be your locally installed web browser or Alpha's
    internal text renderer enabled by the package: wwwMenu .
    
    Preferences: Helpers-viewURL
    
    The url for each on-line service can be changed by selecting the menu
    item "Utils > Www Dictionary > Language Settings > Edit Languages", and
    should include everything required for the url except the word.  For
    example, if the <http://www.m-w.com/> site is used, the 'Dictionary' url
    setting should be
    
	http://www.m-w.com/cgi-bin/dictionary?

    in order to open the page <http://www.m-w.com/cgi-bin/dictionary?test>.

    Many of the default 'English' settings are for the on-line resources
    available at <http://www.cogsci.princeton.edu/~wn/>.  This is the home
    page for 'WordNet', a lexical database for the English Language provided
    by the Cognitive Science Laboratory at Princeton University.  This site
    maintains Antonym, Hypernym, Meronym, and Synonym databases.
    
    This package allows you to set different 'Languages', each of which has
    its own urls for looking up the given word, including translation from
    one Language to another.  Additional Languages can be added using the
    menu item "Utils > Www Dictionary > Language Settings > New Language".
    All Language settings can always be edited later, and entire Language
    packages can be deleted or renamed.
    
    The "Utils > Www Dictionary > Current Language" submenu displays the
    default Current Lanuage used in all utility dialogs.  Selecting any item
    in this submenu will change the Current Lanaguage to that value.
    
    As with any package that relies primarily on the correct location of
    remote web pages over which we have no control, the urls for any of these
    Languages might be (re)moved or the proper syntax for queries might
    change.  As of this writing the package's current maintainer rarely makes
    use of any Language other than English, and his grasp of that is often
    poor, so other updates will have to come from other users.  ;)
    
    If you have any suggestions for better settings for any of the default
    Languages, or a new Language package to contribute, please send the urls
    to this package's maintainer and they will be included in the next
    update.  If you have a Language site that accepts searches but are having
    trouble resolving the proper url setting to use, please ask on one of the
    mailing lists described in the "Readme" file.
    
    Tip: you can also define a 'Language' for any on-line database that
    accepts queries, such as a 'Cell And Molecular Biology' Language that
    uses urls like <http://www.mblab.gla.ac.uk/~julian/dict2.cgi?neuron>.
    
    A Contextual Menu module with this menu is also available, which will
    automatically send the word surrounding the Contextual Menu Click Point
    (i.e. the mouse position) to the on-line service unless the text
    surrounding the mouse position is ambiguous.
    
    Preferences: ContextualMenu

    This module is available without having to first activate this package
    (inserting the menu into the Utils menu) -- simply adjust the Contextual
    Menu prefs, checking the box next to 'Www Dictionary Menu'.
}}
set help(Perl) {3.7b1 {
    file "Perl Help"
}}
set help(sh) {2.0 {
    file "sh Scripts Help"
}}
set help(tcl/TkExtendedC) {0.2 {
    This feature provides support for editing Tcl/Tk extended C files.  After
    activating this feature, all Tcl/Tk commands in the Tcl/Tk 'Libraries'
    that are listed here: <http://dev.scriptics.com/man/tcl8.4/> will be
    available as 'electric' completions in C and C++ modes.
    
    Preferences: Mode-Features-C
    Preferences: Mode-Features-C++
    
    Command double-clicking on any of these commands will also open a help
    file specific to the command from this Tcl web site.  (Or, if the C++
    mode pref for "Tcl/Tk Help Local Folder" points to the locally installed
    help folder, this will be used preferentially.)
    
    N.B. The electric templates provided by this feature will be much more
    useful if the package: betterTemplates is activated.
}}
set help(teXServices) {1.0 {
    This library supports the package: xserv by declaring a variety of
    different "TeX/LaTeX" services for typesetting a .tex file, converting
    .dvi to .pdf files, etc.  All of these can be set using the menu command
    "Config > Global Setup > Helper Applications":
    
    <<prefs::dialogs::helperApplications "TeX">>
    
    These services are automatically declared when ALPHA is launched.
    
    See the file "texServices.tcl" for the package: xserv declarations.
}}
set help(Bib) {4.4.1 {
    file "BibTeX Help"
}}
set help(TIP) {0.4.4 {
    Tcl Improvement Proposals are the best of way of getting a particular
    change to Tcl into the official Tcl releases.  Alpha's TIP mode
    includes a TIP menu which makes it easier to write such proposals --
    see the "TIP Example.tip" file for an example.
    
    Once a TIP has been formally proposed to the Tcl Core Team (TCT) it
    is placed on an open repository.  This mode also allows remote
    editing of the TIP on that repository.

    See the TIP web page at <http://purl.org/tcl/tip/>
    for further information.
}}
set help(dictionary) {2.3.5 {
    file "Dictionaries Help"
}}
set help(macMenu) {2.3 {
    file "Mac Menu Help" 
}}
set help(frontierMenu) {2.2.1 {
	file "Frontier Help"
}}
set help(spellcheck) {0.3 {
    This core package supports the "Utils > Spellcheck Window/Selection" menu
    items.
    
	  	Alpha 8/X/tk

    On MacOS, ALPHA has the capability to interact with the spell-checker
    'Excalibur', written by Robert Gottshall and Rick Zaccone.  Excalibur can
    be obtained from

    <http://www.eg.bucknell.edu/~excalibr/excalibur.html>
    
    Selecting the "Utils > Spellcheck Window" menu item will start up
    Excalibur and open the current window in Excalibur.
    
    Selecting "Utils > Spellcheck Selection" will copy the current selection
    and place it in a temporary file, which is then sent to Excalibur to
    spellcheck.
    
    Following the completion of the spellcheck, you must save the file in
    Excalibur ("File > Save") to record the changes.  When switching back
    from Excalibur to ALPHA, ALPHA automatically updates the current
    window/selection with any corrections made in Excalibur.

	  	Alpha X/tk

    On OSX, Unix and Windows, AlphaX and Alphatk can interact with the
    command-line spell checkers 'aspell' and 'ispell'.  Aspell can be
    obtained from

    <http://aspell.sourceforge.net/>
    
    Selecting the menu items "Utils > Spellcheck Window/Selection" will set
    the spell checker running and communicate with it behind the scenes.
    Suggestion and replacement of corrected words happens through the status
    bar.
    
    See the file "spellcheck.tcl" for the package: xserv declarations.
}}
set help(Ada) {1.0.4 {
    The programming language Ada is named after Lady Ada Lovelace, daughter of
    famed poet Lord Byron and assistant to mathematician Charles Babbage, who
    invented the Analytical Machine.  Lady Ada is often considered to be the
    world's first programmer.

    A descendent of Pascal, Ada is object-oriented, and offers interfaces to
    the languages C, FORTRAN and COBOL. For more information about Ada, see
    <http://www.adahome.com>.

    Ada Mode provides keyword coloring and procedure marking with the Marks
    Menu.  Alpha includes an "Ada Example.ada" syntax file that demonstrates
    the mode.  In Alpha's Ada mode, The keyboard shortcut F9 will switch
    between the Ada spec & body, assuming they're in the same directory and
    use either GNAT or VAX Ada naming conventions.  Other conventions can be
    supported fairly easily.
}}
set help(printerChoicesMenu) {0.2.1 {
    This package replaces the basic "File > Print' menu item into a submenu
    from which you can select a variety of printing methods.  
    
    Preferences: Features
    
    All of the available printing methods are listed in this menu, with the
    current default printing method indicated by a preceding "" -- selecting
    a different choice will make that item the new default.
    
    The list of options for printing methods is currently hard-wired in the
    file "printerChoices.tcl".  If you have an alternative printing method
    that is not listed please send a note to one of the listservs described in
    the "Readme" file.
}}
set help(f90) {2.0 {
    file "Fortran Mode Help"
}}
set help(terminalPuts) {1.5.1 {
    The terminal-puts feature supports redirecting 'puts' commands
    for stdout or stderr to the window managed by the terminal
    package. See "Terminal Help" for more information.
}}
set help(bibtexLogHelper) {1.8.8 {
    When you command double-click on warnings, errors and filenames in
    any BibTeX log window (either within Alpha or in a log window
    generated by Vince Darley's Mac Classic port for BibTeX), that
    generates a message which allows Alpha to interpret the error,
    warning or information you have clicked on and jump directly to
    the relevant text, automatically placing you in a situation to 
    add a new bibliography entry, fix an error, add a .bib file, etc.
    
    It's a huge time-saver, I guarantee!
    
    If you are using this with MacBibTeX on MacOS Classic, you After
    turning this package on, there is one last step: open your control
    panel named Internet Config -- <<icOpen>> -- , select the dialog
    pane named 'Advanced', click on 'Helper Apps', click on the 'Add'
    button to create a new helper named 'bibresult', and select 'Alpha'
    as the helper application.  (Okay, that was really five steps ...)
}}
set help(Chng) {0.2 {
    Chng mode is used for Alpha's 'Changes' files, recording recent
    changes made to the application or its Tcl libraries.  The help file
    "Changes - AlphaTcl" is an example of such a file.  This mode has
    its own marking scheme, and will colorize all lines with "=" red.

    This mode is not particularly intended for text editing.
}}
set help(specialCharacters) {1.0.1 {
    This package creates an "Edit > Special Characters" menu for inserting
    international letters (diacritics) and other non-ascii symbols into the
    active window.
    
    This menu is useful for those who don't use these characters in their
    documents on a daily basis, and can't remember the default OS keyboard
    acrobatics necessary to insert them.  All of the characters in the
    submenus can be assigned a keyboard shortcut by selecting the command
    "Edit > Special Characters > Assign Shortcuts".
    
    <<specialChars::assignShortcuts>>

    A "Special Characters" Contextual Menu module is also available.
    
    Preferences: ContextualMenu
    
    Selecting an item in the CM menu will replace any selected text beneath
    the current cursor "click" position.
}}
set help(notes) {1.1 {
    This package inserts a new "File > Notes" submenu which allows you to
    manage a set a Note Files retained in your preferences folder.  To turn
    this package on select "Config > Global Setup > Features" and click on
    the checkbox next to "Notes".
    
    Preferences: Features
    
    Once it has been turned on, you can select "File > Notes > Notes Prefs" to
    adjust the few preferences associated with this package.
    
    Preferences: notes
    
    The preference named "Open Notes On Startup" allows you to automatically
    open these Note Files whenever Alpha is first launched.
    
    The default "Notes" folder is located in your ALPHA Support folder.  If
    you have previously set your folder to a different location, you can
    transfer all of your note files to this Support folder if desired.
    
    <<notes::useSupportFolder>>
    
    Click here to show your Notes folder in the Finder:
    
    <<notes::menuProc "" "Show Notes Folder">>
    
    A Contextual Menu "Notes" module is also available which provides a
    submenu with all Note Files and utility items.  It is not necessary to
    turn this package on in order to have access to the contextual menu
    version of the Notes menu and all Note Files.
}}
set help(alphaDeveloperMenu) {1.3 {
    This package creates an "AlphaDev" menu that can be placed in the main
    menubar.  This menu includes utilities for creating and modifying the Tcl
    code used by Alpha and Alphatk.
    
    Preferences: Menus
    
    It can also be activated for specific modes, such as "Tcl" or "Chng".
    
    Preferences: Mode-Menus
    
	  	Description

    Its various menu items include utilities for:
    
     Interacting with the on-line Alpha-Bugzilla database
     Opening Help files and www links useful to Alpha8/X/tk/Tcl developers
     Viewing changes to the AlphaTcl CVS repository
     Creating/editing files in the Smarter Source Folder
     Marking  and Hyperizing Help files
     "Prettifying" text, as in "alphaDeveloperMenu" > "Alpha Developer Menu"
     Inserting AlphaTcl menu/binding codes
     Surrounding the current word/selection with bullets
     Warning you when obsolete procedures/commands are being called
      (Select "AlphaDev > Warning For Obsolete Procs")
     Listing all currently defined procedures recognized by the interpreter
     Listing all currently defined variables recognized by the interpreter
     Listing procedures, preferences, and variables defined by all modes
     Rebuilding AlphaTcl indices and filesets
     Rebuilding menus declared with the proc: menu::buildProc
     Comparing a file with one from distribution folder
     Stuffing/uploading/updating distributions
     Testing the initial loading of all installed modes and menus
     Adding new entries to 'Changes' files, such as "Changes - AlphaTcl"
      "Changes - Alpha" and "Changes - Alphatk"
      
    Use the "AlphaDev > AlphaDev Menu Bindings" menu item to add/change the
    keyboard shortcuts associated with any of these menu items.
    
    Additional submenu information is available with these hyperlinks:
    
    "AlphaDev > Alpha Bugzilla"     package: reportABug
    "AlphaDev > Alpha Distribution" <<alphadev::dist::helpWindow>>
    "AlphaDev > Alpha Testing"      <<alphadev::testing::helpWindow>>
    "AlphaDev > AlphaDev Web Sites" <<alphadev::www::helpWindow>>
    "AlphaDev > AlphaTcl CVS"       <<alphadev::cvs::helpWindow>>
    "AlphaDev > Smarter Source"     "Smarter Source Help"
    "AlphaDev > Support Folders"    "Support Folders Help"
    
    An "Alpha Dev Utils" contextual menu module is also available for 'Tcl'
    mode, as well as an "Alpha Dev Help" module.
    
    In addition to the utilities provided by the menu items, it also includes
    support for Tcl mode, including
    
     Creation of Alpha core command electric completions
     Keyword colorizing for Alpha core commands
     Document template for packages (requires the package: documentProjects)
}}
set help(TeX) {6.0a2 {
    file "LaTeX Help"
}}
set help(xml) {0.5.0 {
    xml Mode provides keyword coloring and completion, where keywords
    are automatically parsed from your xml files.

    Click on this "xml Example.xml" link for an example syntax file.
}}
set help(indentUsingSpacesOnly) {0.1 {
    If set, do not use tabs to indent, but spaces only.  This is mostly
    useful for modes in which the 'tab' character has a special meaning, such
    as python or TeX (the latter usually only for TeX as a programming
    language, not as a document preparation system).

    Preferences: Electrics
}}
set help(filesetEncodingPreference) {0.3 {
    This "Fileset Information" preference will ensure a given fileset is
    opened with a particular default encoding, different to that set as a
    global default.
    
    To use it, you can <<editAFileset>>, click on the "Attach Info" button,
    and click on the checkbox next to "Encoding".  After clicking on the OK
    button, the "Edit A Fileset" dialog for this particular fileset will now
    have a text-edit field in which you can enter the desired encoding.

    This only works with Alphatk at present.  Alpha 8 has yet to be updated
    for use with different encodings.
}}
set help(wwwMenu) {2.5.1 {
    file "WWW Menu Help"
}}
set help(isoTime) {1.8 {
    This extension adds new choices for the second parameter (format) of the
    command: mtime .

	mtime [now] iso
	
    returns the current time in ISO format, i.e.

	1999-08-17T14:55:22Z

    for

	August 17 1999 at 2:55:22 pm.

    The final "Z" means UTC or Universal Time.  If your local time zone is
    offset from UTC, the "Z" is replaced by its offset.  For instance:
    "1999-08-17T14:55:22+02:00" represents a date/time in a time zone where
    the local time is 2 hours later than UTC.

    Using "relaxed" instead of "iso" yields a more readable date with a
    space in place of the 'T' and without the final 'Z' or zone offset.

    The other choices are 'zone', 'year', 'month', 'day', 'hour', 'minutes',
    and 'seconds' to get the respective piece of time information.

    The first argument of mtime may be a number of second elapsed since the
    reference date of the OS, or the string "now" which represents the
    current local date and time, or the string "utc" which represents the
    current universal date and time.

    The reference date -- or "epoch" -- can be specified as a third argument
    to mtime. "mac" is the traditional Mac OS epoch (January 1st 1904),
    and "unix" is the Unix epoch (January 1st 1970). The epoch is ignored
    when the first argument to mtime is either "now" or "utc".
    
    The default epoch should be used to process dates returned by platform-
    specific procedures, like 'getFileInfo'. The "unix" epoch should be used
    to process dates returned by core Tcl commands like "clock" or "file".
    
    Note: This extension may yield incorrect results if you change the time
    format or the time zone in the 'Date and Time' control panel while Alpha
    is running.

    The effective format of the localized time representation is determined
    by the proc: ISOTime::parseLocalizedTime which is called only once for
    the sake of efficiency.

    If this behaviour may cause problem and you don't use the ISOTime procs
    too often, you may remove the check for ISOTime::regdate and
    ISOTime::matchdate at the beginning of the proc: ISOTime::brokenDate so
    that it rebuilds the regexps at each call.  The same is true for the
    proc: ISOTime::TimeZone and the proc: ISOTime::ZoneOffset .
}}
set help(Tcl) {3.1.1 {
    file "Tcl-Tk Help"
}}
set help(commentsArentSpecialWhenIndenting) {0.1 {
    When indenting, we always look back at previous lines to determine
    the correct current indentation level.  Normally the first such
    previous non-commented line that is found is used for this
    calculation (since comments are simply adornments and you might be in
    the habit of indenting your comments differently to your code/text).
    
    If this feature is active, then Alpha will look back for commented or
    non-commented lines, and simply make use of the first one in its
    calculation.  Often this makes little difference, but, for example if
    your files contain vast comments (especially .dtx files in TeX mode,
    for instance), it can lead to better editing performance if you
    activate this feature.

    Preferences: Electrics
}}
set help(vcLocal) {0.2 {
    This package provides support for a simple local version control.  It is
    only useful if the package: versionControl has been activated -- consult
    the help file opened by this hyperlink for more general information about
    using 'version control' in Alpha.
    
    Local version control is the simple situation in which you maintain one
    file-tree as the 'repository' which you do not edit, and another duplicate
    file-tree which you do edit.  Files in the duplicate tree may be checked
    in/out of the original when they are ready.  Also useful if you are trying
    to gradually merge your source tree with someone else's.
    
    It is an experimental way of dealing with development versus robust code.
    
    To use this method of version control, you must first edit a fileset
    <<editAFileset>> via the "Filesets > Utilities" submenu and change the
    "Version Control System" variable to "Local", which should be an option in
    the pop-up menu in this dialog.  Close this dialog, and then use
    <<editAFileset>> again and edit the same fileset -- there should now be a
    variable for a 'Local Repository' folder that you can set.  Remember --
    the fileset contains the files that you're editing, and the local
    repository is the one to which you are comparing (and the one to which you
    are possibly checking changes into).
    
    N.B. Vince once wrote:
    
	Not all of the logic here is 100% correct, so use with caution.
    
    which certainly isn't very confidence inspiring, and he also gave no
    indication as to which portions of the 'logic' might be subject to failure
    or what sort of harm this package might cause.  If curious, you can
    inspect the "vcLocal.tcl" file for more information.
}}
set help(functionComments) {0.1.5 {
    This package provides capability to insert nice comments for any given
    function definition.  Once this package has been turned on
    
    Preferences: Features
    
    a new "Function Comments" submenu is created.  If your list of global
    menus includes the package: electricMenu , that's where you will find it,
    otherwise it is in "Utils > Win Utils".  This new Function Comments menu
    includes the following items:
    
	Usual
	Simple
	With Author
    
    Selecting these items (or their associated shortcuts) will insert a new
    comment that looks something like this:
    
	## 
	 # ----------------------------------------------------------------------
	 #	 
	 #	"file::functionComment" --
	 #	
	 #  This procedure generates a nice little comment box like this one here.
	 #	
	 #   Results:
	 #  Well it doesn't return anything, but it allows you to enter each item
	 #  simply, moving from one to the next with Tab
	 #	
	 #   Side effects:
	 #  Not much
	 #	
	 # ----------------------------------------------------------------------
	 ##

    The last item in the submenu,
    
	Update
	
    handles updating of a version line like the one below:
    
	# --Version--Author------------------Changes-------------------------------  
	#    1.0     vince@santafe.edu   original
	#    1.1     vince@santafe.edu   quickly updated with shift-F1

    Sources can be found in "functionComments.tcl".
}}
set help(windowUtilities) {1.3.2 {
    This package adds more "Utils > Win Utils" menu items as described below.
    In general, the actions described below will be performed for the active
    window -- in some cases, the file must exist on a local disk in order for
    the operation to take place.  To turn this package on, open the menu item
    "Config > Global Setup > Features" and click on the checkbox that is next
    to "Window Utilities".
    
    Preferences: Features.
    
    You can click on this hyperlink <<win::testWindowUtils>> to test most of
    these items in this window.  Note that this will still be a 'shell'
    window, and 'undo' will be turned off.
    
    Preferences: Features
    
	        Table Of Contents

    "# Insert Mode Line ..."
    "# Window Lines"
    "#   Number Lines"
    "#   Count Duplicate Lines"
    "#   Find Unique Lines"
    "#   Find Duplicate Lines"
    "#   Find First Duplicate Lines"
    "#   Remove Duplicate Lines"
    "# Tabs 4 to 8"
    "# Tabs 8 to 4"
    "# Sort Words"

    <<floatNamedMarks>>

	----------------------------------------------------------------
    
	        Insert Mode Line ...

    <<win::insertModeLine>>

    This item inserts a line looking like
    
	# -*-Tcl-*-

    at the top of the window.  This will indicate that the file should be
    opened in "Tcl" mode (e.g.) by Alpha, no matter what its file suffix is.
    If the current mode is 'Text' you will be given the option to first
    change the mode of this window to something else.

	----------------------------------------------------------------

	        Window Lines

    This is a submenu that will analyze either the entire window or any
    currently highlighted selection, looking for unique or duplicated lines.
    In each case, if there any results they will be displayed in a new
    window, complete with line number and duplicate count information.
    
    For example, you might have this text in your window:
    
	{
	    # Activation script.
	    menu::insert winUtils items end
	      "insertModeLine"
	      "(-)"
	      {Menu -n windowLines -p {menu::fileProc} {
	        "countDuplicateLines"
	        "findUniqueLines"
	        "findDuplicateLines"
	        "findFirstDuplicateLines"
	        "removeDuplicateLines"
	      }}
	      "<E<Stabs8To4"
	      "<Stabs4To8"
	} {
	    # Deactivation script.
	    menu::uninsert winUtils items end
	      "insertModeLine"
	      "(-)"
	      {Menu -n windowLines -p {menu::fileProc} {
	        "countDuplicateLines"
	        "findUniqueLines"
	        "findDuplicateLines"
	        "findFirstDuplicateLines"
	        "removeDuplicateLines"
	      }}
	      "<E<Stabs8To4"
	      "<Stabs4To8"
	} uninstall {
	    this-file
	} maintainer {
	    "Vince Darley" vince@santafe.edu http://www.santafe.edu/~vince/
	} help {
	    This package adds more Utils --> Win Utils menu items ...
	}
	

    and then you want to locate which lines are duplicates, unique, etc.  The
    hyperlinks for each item will allow you to perform these actions on this
    window, even if this package is not yet turned on!
    
	                Number Lines

    <<win::uniq n>>

    This is a simply utility to add row numbers to the left of each line.
    
	                Count Duplicate Lines

    <<win::uniq c>>

    This item will scan the region, and report the number of times that each
    line appears.  The 'count' column is incremental, indicating how many
    times this line has appeared so far.
    
	                Find Unique Lines

    <<win::uniq u>>
    
    This item will only report occurences of unique lines, i.e. those that
    only appear once in the region.
    
	                Find Duplicate Lines

    <<win::uniq a>>
    
    This item reports only those lines that appear more than once in the
    region, with line numbers for each occurence and the number of times each
    item appears.
    
	                Find First Duplicate Lines

    <<win::uniq d>>
    
    Similar to "Find Duplicate Lines", but only the first occurence of each
    duplicate line is reported, along with the total number of times that it
    appears in the region.
    
	                Remove Duplicate Lines

    <<win::uniq r>>
    
    This item will include all unique lines and the first appearance of a
    duplicate line, but remove any subsequent appearance of duplicates found
    in the region.
    

	----------------------------------------------------------------

	        Tabs 4 to 8

    Turns all tabs in the active window from 4 to 8 columns.

	        Tabs 8 to 4

    Turns all tabs in the active window from 8 to 4 columns.

	        Sort Words

    This item requires a selection.  Each 'word' in the region, separated by
    a space or carriage return, is turned into a list which is sorted in
    alphabetical order, and the region is then replaced and the region is
    selected once again.  By default this sort is an 'ascii' sort, i.e.
    
	ABCD...abcd

    If you want a 'dictionary' style, i.e.
    
	AaBbCcDd...

    then simply use this "Utils > Win Utils > Sort Words" item once again --
    it will recognize the boundaries of the previous sort and decide that you
    want to try something different.  A third "Sort Words" action will revert
    the sort back to 'ascii'.
    
    Note that after performing the sort and replace, the lines containing the
    region are also 'wrapped' by necessity, so this will require two 'undo'
    actions to revert back to the original text.  Also, 'words' that are
    surrounded by curly braces {} or "double quotes" are considered to be a
    single item in the list.
    
    You can click here <<win::testWindowUtils>> to unlock this window, and
    then experiment with these strings of text:
    
	This is a test of sorting with both Dictionary and Ascii styles
	This is another Test of "Win Utils" sorting.
	And This is another Test {but with curly braces.}

    Here's the originals again so that you can compare the results:

	This is a test of sorting with both Dictionary and Ascii styles
	This is another Test of "Win Utils" sorting.
	And This is another Test {but with curly braces.}

    You'll notice that "Win Utils" gets converted to {Win Utils} during the
    sorting.  This is a known bug, with no immediate fix available.
    
    A dynamic "Win Utils > Reverse Sort Words" item is also available, press
    the Option key to display it in the menu.  The same rules regarding
    "dictionary" sorts also applies here.

	----------------------------------------------------------------

    If you have additional window/file utilities that you would like to see
    added to this package, contact its maintainer and describe what you would
    like to see.  Source code is always welcome!  See the "fileUtils.tcl"
    file for the current implementation.
}}
set help(bibToRefer) {1.3 {
    This package is primarily a feature for Bib mode.
    
    Preferences: Mode-Features-Bib
    
    It implements the conversion of BibTeX to Refer (Endnote compatible), by
    adding a "BibTeX Menu > BibTeX Conversions > Bib To Refer" menu item.  If
    the active window is in Bib mode, then all of the entries in the current
    selection (or, if there is no selection, all entries in the window) will
    be converted and inserted into a new window.  You can then save this
    window on your local disk, and use EndNote's "File > Import" command to
    add them to a .enf file.
    
    For example, this:
    
	@article{Lamont1987,
	   author  = {Mich\`{e}le Lamont},
	   title   = {How to Become a Dominant French Philosopher: The Case of
		      Jacques Derrida},
	   journal = {American Journal of Sociology},
	   volume  = 93,
	   number  = 3,
	   pages   = {584-622},
	   year    = 1987,
	   key     = {culture, derrida, france},
	}

    will be converted to
    
	%0 JOURNAL ARTICLE
	%F Lamont1987
	%A Michle Lamont
	%T How to Become a Dominant French Philosopher: The Case of Jacques Derrida
	%J American Journal of Sociology
	%V 93
	%N 3
	%P 584-622
	%D 1987
	%K culture; derrida; france
    
    Because BibTeX and EndNote database entries do not have a one-to-one
    correspondance, the conversion results here will need to be carefully
    inspected and adjusted after importing them into a different helper.  As
    is the case with any BibTeX to Refer conversion, this procedure is only
    an approximation, and comes with no guarantees.
    
    Some notes about the conversion:

     All "@string" strings will be converted in the conversion, assuming
    that the strings are defined in the file/window that uses them.
    
     If there are several authors, each author has its own tag %A.
    
     "Protected" authors, such as
    
	author = {{U.S. Department Of Agriculture}},
    
    will have a comma appended after their name, as in
    
	%A U.S. Department Of Agriculture,

     All "LaTeX Accents" will be converted to diacritical characters,
    assuming the the package: latexAccents is installed.  This takes place
    automatically, there's nothing more that you need to do.
    
     Selecting "BibTeX Menu > Formatting > Format All Entries" before
    performing the conversion will often make the results more accurate.
    
     The following BibTeX fields are not standard, and ignored when you
    BibTeX a file, but if they are present they will be added to the
    indicated Refer fields:
    
	abstract        -> %X (abstract)
	annote          -> %G (note)
	isbn            -> %@ (isbn)
	issn            -> %@ (issn)
	key             -> %K (descriptor)
	keywords        -> %K (keywords)

     Each entry's "citekey" will be added as "%F (label)".  All other fields
    will be given some "%1 %2 ...  Custom Field" designation.
    
    Another "BibTeX To Refer" conversion option involves the "refer.bst"
    LaTeX package.  For more information, perform a search for this file at
    <http://www.ctan.org> and read its documentation.
}}
set help(userMenu) {0.7 {
    This is a menu/feature for Alpha.  It allows you to store personal
    procedures in a special menu and to link them easily to a menu item.
    These procedures must have been defined somewhere and loaded (in the
    prefs.tcl file for instance).
    
    How to use it: 
    Once it is installed and activated (in 'Config --> Global Setup -->
    Features...'), you have a new menu displaying a user icon with four
    items: <Add item...>, <Modify Item...>, <Remove Item...> and <Refresh
    Bindings>.

    If you choose <Add Item...>, a dialog window asks you to specify the
    name of the item you want to add to the menu and the name of the
    corresponding procedure, ie the proc which will be triggered by this
    item.  For instance, suppose you have defined a proc called
    Conv::HexNum to convert hexadecimal numbers and you want to have a menu
    item called "Convert Hex Numbers" in the User Menu: all you have to do
    is to enter ConvertHexNumbers in the first field and Conv::HexNum in
    the second field of the "Add Item" window.

    Note that there is no space in ConvertHexNumbers: this is because Alpha
    automatically inserts a space before any uppercase letter in the name
    of a menu item.
}}
set help(internetConfigMenu) {1.1 {
    file "Internet Config"
}}
set help(fileServices) {1.0 {
    This library supports the package: xserv by declaring a variety of
    services that handle different types of files, such as .pdf, .ps, or
    compressed archives.  All of these helper applications can be set using
    the menu command "Config > Global Setup > Helper Applications":
    
    <<prefs::dialogs::helperApplications>>
    
    These services are automatically declared when ALPHA is launched.
    
    See the file "appPaths.tcl" for the package: xserv declarations.
}}
set help(latexBbToViewport) {0.1.1 {
    This package converts \\includegraphics bb= to viewport= so your file will
    work ok with both latex and pdflatex (provided you have both .eps and .pdf
    versions of all your figures).  It is a feature for TeX mode, and creates
    a new "LaTeX Utilities > Convert Bb To Viewport" menu item.
    
    Preferences: Mode-Features-TeX
    
    The cursor must be on the line of the 'includegraphics' for this to work.
}}
set help(Caml) {1.0.2 {
    This mode is for editing Caml Light code.  Caml Light is a small,
    portable implementation of the ML language that runs on most Unix
    machines, the Macintosh, the PC, and other microcomputers (freely
    distributed on <ftp://ftp.inria.fr/lang/caml-light>).

    Caml Mode provides a menu for easy switching between Alpha and Caml
    Light; and provides keyword coloring and function marking with the
    Marks Menu.
    
    Click on this "Caml Example.ml" link for an example syntax file.
}}
set help(version) {2.0.4 {
    This auto-loading extension provides utilities to obtain and format the
    'vers' resource code of the specified file.  If the file has no 'vers'
    resource, the error -1728 from the Finder will be thrown for you to catch
    as you see fit.  If the file's 'vers' resource is wrong, e.g. Alpha 6.52
    seems to think that it's version 6.5.0b1, there's really nothing I can do
    about that 8^).
    
    See the "version.tcl" file for more information about the procs that are
    available and what they do.
}}
set help(manipCols) {1.2.2 {file "ManipCols Help"}}
set help(codewarriorMenu) {3.1 {
    file "CodeWarrior Menu Help"
}}
set help(globalM2Bindings) {1.1.1 {
    This package makes the three Modula-2 (M2 mode) bindings Ctrl-0, Ctrl-1,
    and Ctrl-2 globally available.  These are basic M2 bindings and need to be
    active at all times for opening work files containing compiler errors and
    launching of Modula-2 shells --- but if you don't use Modula-2 you have no
    need for this package either...
}}
set help(make) {0.2 {
    For 'make' files.  This mode currently supports File Marking, syntax
    coloring, and uses the package: makeMenu .  See "makeMode.tcl" to make
    additional improvements.
}}
set help(comments) {1.0.1 {
    This package provides a set of generalized routines for commenting text in
    the current window.  "Text > Comment Line" is the most basic routine,
    which will comment out the current line/selected region.  Blocks of text
    can also be commented using special "Paragraph" or "Box" formats, called
    by "Text > Comment <something>" menu items.
    
    Once a comment has been created, you can also 'uncomment' the line or
    block of text.  (Note that the "Text" menu, like many in Alpha, might be
    dynamic, and some items are 'hidden' until you press some of the modifier
    keys such as Command/Alt, Option/Meta, or Control.)
    
    For example, in Tcl mode this is a basic comment, created using either the
    "Text > Comment Line" menu item or its equivalent keyboard shortcut:
    
	# These are two commented lines.  They are normally not indented when
	# created by the menu item or the keyboard shortcut.
    
    while this is a paragraph:
    
	## 
	 # You can create this by selecting a block of text and using the
	 # Text > Comment Paragraph menu item.  If no text is initially
	 # selected, the current paragraph surrounding the cursor will be
	 # chosen, and you will be asked if this is the region that you want.
	 # 
	 # Paragraph style comments such as these will usually be properly
	 # indented with respect to surrounding text.
	 ##
    
    and this is a box:

	####################################################
	#                                                  #
	#   This is some text that was put into a 'box'.   #
	#   Box comments are usually never indented,       #
	#   this one is just for demonstration purposes.   #
	#                                                  #
	####################################################
    
    Once a comment block has been created, you can use the menu items for
    "Edit > Shift Left/Right (Space)" to adjust their indentation.

    Each mode defines comment characters specific to its usage.  In most
    cases, a mode preference for "Prefix String" will allow you to adjust the
    whitespace following the comment character -- in general, this is ONLY
    used for the "Text > (Un)Comment Line" procedure.  Modes usually also
    define 'comment colors' to help highlight them in the window.
    
    Note that some of the default routines supplied by this auto-loading
    package might be over-ridden by mode specific shortcuts and/or procedures,
    or by other packages, such as the package: prettyComments.
    
	  	AlphaTcl Developer Notes
    
    Some of these procedures will only work if the mode has defined some
    <mode>::commentCharacters array elements for "General", "Paragraph" and
    "Box".  At a minimum, modes should define preferences for "prefixString"
    and possibly "suffixString" in order for the most basic comment routines
    to work.  This package also supplies some comment template procedures that
    can be called by any mode, such as the proc: comment::insertDivider or the
    proc: comment::newComment .
    
    Note that any mode can over-ride the default routine that is called by
    "Text > (Un)Comment Line" by defining a mode specific procedure, such as
    the proc: C::CommentLine.  This is useful if the comment characters are
    not as straightforward as those in (e.g.) Tcl mode.  This is particularly
    true when the mode has both single and bracketed comment characters, as in
    the family of C modes, and several statistical modes.
    
    This package also includes some comment utilities, to query for the
    current mode's comment characters, or to obtain the current block of text
    which is or should be turned into a comment block.  See this package's
    source file "comments.tcl" for more information, and in particular the
    notes preceding the proc: comment::Characters .
}}
set help(C#) {0.1.1 {
    C# Mode provides keyword coloring, automatic indentation and keyword 
    completion.  Also the marks and funcs menus.

    Click on this "C# Example.cs" link for an example syntax file.
}}
set help(eeMenu) {0.3.1 {
   The EE menu provides commands for sending small pieces of code
   from a source file window to various interpreters. It can handle
   multiple languages and multiple source file formats.

   The commands are built by combining four simple pieces called
   methods. The choice of methods and parameters for methods to
   use in a command is completely configurable through a dialog.
   It is also possible to write extensions that define additional
   methods and provide these through the same easy interface.

   See the file eemenu.dtx for the full documentation.
}}
set help(Plc) {1.0.4 {
    file "Plc Mode Help"
}}
set help(dot) {0.2 {
    For editing files in the dot language (for automatic graph design), and
    communicating with Graphviz (a package of graph utilities, including the
    dot program, as well as a graphical front-end).
    
    Open this "Dot Example.dot" window to see its syntax coloring and
    indentation scheme, as well as the special "Dot" menu.
    
    (See <http://www.pixelglow.com/graphviz/> for more information.)
}}
set help(GPLT) {2.1.3 {
    Gnuplot is a command-line driven interactive function plotting utility for
    UNIX, MSDOS, and VMS platforms.  The software is copyrighted but freely
    distributed (i.e., you don't have to pay for it).  It was originally
    intended as a graphical program which would allow scientists and students
    to visualize mathematical functions and data.

                                                -- <http://www.gnuplot.info/>

    Gnuplot Mode serves as a front end for GNUPLOT for Macintosh version 3.6.
    Alpha acts as Gnuplot's console window.  You can activate the console with
    Command-L or using the Console menu item in the mode's Gnuplot menu.  When
    in console mode you have access to Gnuplot's built-in help.

    A simple floating menu lists all text files in the scripts directory of
    gnuplot home dir.  To run a script, just select it from the scripts menu.
    To edit a script in Alpha, select a script menu item while pressing any
    modifier key (Shift, Option, Command, or Control).

    You can modify some of the GPLT mode behaviour by selecting the menu item
    "Config > GPLT Mode Prefs > Preferences".
    
    Preferences: Mode-GPLT

    Comments, suggestions, and bug reports are always welcome, feel free to
    contact this package's current maintainer.
}}
