home *** CD-ROM | disk | FTP | other *** search
/ World of A1200 / World_Of_A1200.iso / programs / system / shellmenus / history.txt next >
Text File  |  1995-02-27  |  32KB  |  762 lines

  1. Version 1.0     Completed: 00-Sep-92
  2. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  3. - Preliminary construction.
  4.  
  5. - Completely re-written from original attempt.
  6.  
  7. - Beta testing and code improvements.
  8.  
  9. - Update from SAS/C 5.10b to SAS/C 6.00
  10.  
  11. - Menu preferences:
  12.     5 Menus with 10 items each:
  13.         Title: 10 characters
  14.         Text: 15 characters
  15.         Command: 255 characters
  16.  
  17.  
  18.  
  19. Version 1.1     Completed: 00-XXX-00
  20. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  21. - Even more code improvements.
  22.  
  23. - Added new Project menu items:
  24.     Project
  25.       Edit Menus... E
  26.       Load Prefs
  27.       Save Prefs
  28.       ~~~~~~~~~~~~~~~
  29.       NewShell
  30.       Launcher...   L
  31.       ~~~~~~~~~~~~~~~
  32.       Video Mode    »    -------------------------> NTSC
  33.       Format Disk   »    --------> DF0:             PAL
  34.       ~~~~~~~~~~~~~~~              DF1:             ~~~~~~~~~
  35.       Quit          Q              DF2:             Boot NTSC
  36.                                    DF3:             Boot PAL
  37.                                    ~~~~~~~~~
  38.                                      FFS
  39.                                      NOICONS
  40.                                      QUICK
  41.                                    ~~~~~~~~~
  42.                                      Install
  43.  
  44.         Load and Save Prefs use the default path and name.  You must use the
  45.         interface to specify a different one.
  46.  
  47.         NewShell will open a new Shell window.  You may edit line 2 of the prefs
  48.         file to either `NewShell' or a custom string like:
  49.         `NewShell "CON:0/100/100/100/Blah/CLOSE"'.
  50.  
  51.         Launcher is another little time saver.  It will open a file requester
  52.         allowing you to choose a program and have SM launch it for you.  This is
  53.         handy to load a program that is on a different volume or imbedded in
  54.         multiple directories.
  55.  
  56.             Good For: "DF3:Downloads/NewDemo.exe" or
  57.                       "DH0:Programming/.C_Files/My_Prog/My_Prog1.0"
  58.  
  59.         Format Disk is just what it says.  You can select certain options if you
  60.         so desire.  By default, FFS and NOICONS are checked.  To format a disk,
  61.         select the device from the menu.  Multiple formats can be going
  62.         simultaneously.
  63.  
  64.             NOTES: Selecting only install will still format the disk with the OFS
  65.                    and put a Trashcan icon on the disk.  You must type "Install
  66.                    DFX:" in the shell.  I will fix this in a later version, I
  67.                    don't know how just yet and not double-up the drive sub-menus.
  68.  
  69.                    The disk name is line 7 of the preferences file.  Quotes ARE
  70.                    necessary if you have a space in the name.
  71.  
  72.         Video Mode allows you to switch between NTSC and PAL via external
  73.         programs.  Boot NTSC and Boot PAL set the ROM Tags and after a reset the
  74.         appropriate mode will be used.  This is very useful for European
  75.         megademos that have custom boot blocks.
  76.  
  77.             Paths: The programs are found in the default preferences path and
  78.                    may be substituted for any of your choice.  To do so, you
  79.                    must edit your preferences file with a text editor.  Lines 3
  80.                    through 6 are the program paths and command line arguments.
  81.  
  82. - Fixed bug in load and save code.
  83.  
  84.  
  85.  
  86. Version 1.2     Completed: 25-Oct-92
  87. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  88. - Added additional menu items.
  89.     SM now has more menu items for users that use many programs under the same
  90.     catergory.  There are now 5 menus with 20 items each:
  91.                                   Title: 10 chars
  92.                                   Text: 20 chars
  93.                                   Command: 255 chars
  94.     This allows five additional menu-item text characters and ten additional
  95.     menu-items.  This should satisfy all users.  It will also allow for more
  96.     sections of similar programs, such as a diskcopy section of all combinations
  97.     of drives in the bottom portion of a ¼ filled menu that was sitting empty.
  98.  
  99. - Created a new Graphical User Interface (GUI).
  100.     There are now two LISTVIEW_KIND gadgets, one for menu text and one the
  101.     commands.  The first item in the text gadget is the menu name, it is blank
  102.     in the command gadget.  All twenty items are in the gadgets with the menu
  103.     title and ten items visible; all others may be scrolled into view.
  104.  
  105.     Clicking on an item or command will activate the string gadgets and place
  106.     the item and command in them.  Menu title's are selected the same way.  Once
  107.     an item and command are selected, the text gadget is selected for input.
  108.     Pressing RETURN will jump to the command gadget.  Pressing RETURN here will
  109.     enter the menu item into the menu and gadget and de-activate the string
  110.     gadgets.
  111.  
  112.     Below the string gadgets are two new gadgets: Swap Items and Clear Items.
  113.     These are only active if a menu item is active in the string gadgets.
  114.  
  115.         `Swap Items' is a check-box gadget that, when checked, will allow you
  116.         to swap the positions of two items in the same menu.  After checking,
  117.         click on the first item, then click on the item to switch with.  The
  118.         gadget will stay checked for multiple swaps.  You must un-check the
  119.         gadget to stop swapping and/or to change menus.
  120.  
  121.         `Clear Item' will erase only the currect item text and command strings,
  122.         not the entire menu.
  123.  
  124. - Fixed font and centering bug.
  125.     SM will now handle larger title bar fonts with more than 8 pixels.  The
  126.     window will be adjusted and sized correctly to fit on the Workbench screen
  127.     like the Workbench window does: Title bar is placed below screen title,
  128.     height is adjusted for larger fonts, if font is too large the window will be
  129.     moved up to accommodate.
  130.  
  131. - Fixed a major menu text bug that plagued SM from day one.  SM could not have
  132.   been released until that problem was fixed.
  133.  
  134.  
  135.  
  136. Version 1.3     Completed: 26-Oct-92
  137. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  138. - If no Shell window is open or one not with the title `AmigaShell', a requester
  139.   will now open asking if you would like one opened.  The NewShell uses your
  140.   system default dimensions.
  141.  
  142. - Fixed a problem with the Menu cycle gadget.  If you clicked it while holding
  143.   either shift key the gadget would cycle backward corretly, but the menus
  144.   would still cycle forward.  This now works correctly.
  145.  
  146. - Menu titles may now be twelve characters long.  Ten was always a few short for
  147.   my needs, so I added two more.
  148.  
  149. - A requester now asks if you are sure about clearing one or all menus.
  150.  
  151. - SM now checks if you made any changes to your preferences before loading or
  152.   quiting via a requester.
  153.  
  154.  
  155.  
  156. Version 1.4     Completed: 02-Nov-92
  157. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  158. - Selecting Load or Save from the menu now opens a file requester like selecting
  159.   one of the gadgets does.  The menu always saved to the default prefs file.
  160.   This caused some problems if you wanted to save to a different file and chose
  161.   the menu Save instead.  No longer.
  162.  
  163. - Fixed a few small bugs and sped up part of the code.
  164.  
  165. - Added an intuition interface for path preferences.  Selecting the new `Paths'
  166.   gadget from the main window will open a window with all user definable options
  167.   for easy editing.  Using a text editor is no longer necessary to change any
  168.   preferences.  Quotes are still necessary if there is a space in a command path
  169.   or `Disk Name'; arguments are an exception.
  170.  
  171. - Added the use of the Asl file requester via an intuition interface.  Selecting
  172.   the new `Requester' gadget from the main window will open a window with all
  173.   possible requester options.
  174.  
  175.         `Title' is for the requester title bar.
  176.  
  177.         `Path' is the default path to use.
  178.  
  179.         `Name' is the default name to use.  If a filename is specified, then the
  180.         `Directories Only' option is disabled.
  181.  
  182.         `Pattern' is for including/excluding files.  If a pattern is specified
  183.         then the `Directories Only' option is disabled.
  184.             Some Patterns:
  185.                 - #?                        Everything
  186.                 - #?.info                   Only files ending in ".info" (icons)
  187.                 - (#?.info|#?.doc)          Only icons and doc files
  188.                 - ~(#?.info)                Everything EXCEPT icons
  189.                 - ~(#?.info|#?.c|#?.iff)    Only icons, c files, and IFF files
  190.                 - Sea#?                     Files starting with "Sea"
  191.                 - #?Game#?                  Anything with "Game" in it
  192.                 - [d-l]#?                   Only files between D and L
  193.                 - ~[j-m]#?                  Everything EXCEPT file bewteen J and M
  194.  
  195.         `Save/Create File' will create a file or directory if it doesn't exist.
  196.  
  197.         `Directories Only' will only display directories.  This options disables
  198.         `Name' and `Pattern'.
  199.  
  200.         `OK Text' is the user definable text for the OK gadget.
  201.  
  202.   You can leave all options blank to open a requester to quickly select a file
  203.   to pass it to the program.
  204.  
  205. - Fixed some small bugs with some of the string gadgets.
  206.  
  207. - Fixed/Added the ability to have arguments after the requester structure.
  208.   There is still the problem with not having the ability to select multiple
  209.   files, for example, to create a complete LhA archive in one step.  What needs
  210.   to be done is:
  211.     1) Use the requester to select the destination and archive name,
  212.     2) Append the source path to the command line.
  213.  
  214.         ex: LhA -2 a {req[PTH=VDK:][SAVE][TXT=Save]} DH0:Uploads/#?
  215.  
  216.   Same for DMS disk archiver.  The source disk will always be what you have
  217.   specified in the command line, unless you change it.
  218.  
  219.  
  220.  
  221. Version 1.5     Completed: 06-Nov-92
  222. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  223. - Can now swap menu items from different menus.  This should have been done
  224.   originally, so now here it is.
  225.  
  226. - Fixed these bugs in the Asl requester:
  227.     - Now correctly adjust the the height for all flags.
  228.     - Now uses the correct path for different requester.
  229.  
  230.   Added this new feature:
  231.     - If SaveFlag is set it now checks if the file already exists and asks if
  232.       you wish to overwrite it or not.
  233.  
  234. - After alot of testing with the requester, multi-select can be used in some
  235.   situations.  To view an entire directory of pictures, for example, open the
  236.   requester to the desired directory and use a space, " ", for the filename.
  237.   This will only work if the program supports reading an entire directory.
  238.  
  239. - Added command line arguments:
  240.     `-O' Will open the main window after loading.
  241.  
  242.     `-P name' Will load the specified prefs file.  Complete path is required.
  243.  
  244.     `-E # #' Will execute the command for the specified menu and item.
  245.  
  246.  
  247.  
  248. Version 1.6     Completed: 09-Nov-92
  249. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  250. - Added a new gadget to the Paths window: `Prefs Path'.  This gadget allows the
  251.   user to put the prefs file where-ever he may want.  The default is:
  252.   :Prefs/Env-Archive/ShellMenus
  253.   In previous versions the path was ENVARC:ShellMenus which put the file in RAM:
  254.   instead to disk.  I had changed my assign to put it on disk in the default
  255.   path.
  256.  
  257. - Due to an error on my part and lack of testing a function, I missed a major
  258.   bug dealing with the Shell window.  SM detached from the Shell window so it
  259.   can be closed, but SM wouldn't quit.  Since I can not find a workable way to
  260.   check if the Shell window was closed, I added a port checker.
  261.  
  262.   When a duplicate copy of SM is executed, a requester opens with two new
  263.   gadget options:
  264.  
  265.     `Quit' will terminate both copies of SM.  It will still check for changes
  266.     and allow you to save them before quiting.
  267.  
  268.     `Pop Up' will bring up the active window, or if none are open, will open the
  269.     main window.  This will allow you to save and then quit if you closed the
  270.     Shell window.
  271.  
  272.     `Cancel' will do nothing.
  273.  
  274. - The default paths are as follows:
  275.     Prefs Path: :Prefs/Env-Archive/ShellMenus
  276.     Window Dims: CON:0/11/640/150/Shell Menus Output Window/AUTO/CLOSE
  277.     Disk Name: Empty
  278.  
  279. - When `Swap Items' is first selected all string gadgets are turned off so you
  280.   know you have to pick the two items to swap with, not to confuse with the item
  281.   in the string gadgets.
  282.   Fixed a small "active" bug when swapping.
  283.  
  284. - The file requester now remembers the previous path for preferences and
  285.   Launcher instead of always using the original starting path.
  286.  
  287. - A file header is now put in all preferences files to eliminate loading of
  288.   wrong files by accident.  The header is `Shell Menus Preferences File' and
  289.   needs to be put in all old prefs files via a text editor before it can be
  290.   loaded.
  291.  
  292. - Added `FR' gadgets in Path and Requester windows to open a file requester to
  293.   get a path instead of typing it in.  Time saver.
  294.  
  295.  
  296.  
  297. Version 1.7     Completed: 22-Nov-92
  298. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  299. - Fixed small bug in file requester.
  300.  
  301. - Added a new requester type: {arg}
  302.     This type opens a small argument window to allow you to enter commamnd line
  303.     arguments or edit your defaults.  Also allows multi-select of files with a
  304.     certain pattern.
  305.  
  306.     `Message' is for a string to describe what input is expected and for what
  307.     file.
  308.  
  309.     `Arguments' is your default command line arguments that can be edited when
  310.     the item is selected.  You must leave a space after the last argument so the
  311.     file-part is copied over correctly.
  312.  
  313. - Multiple requester types are now available in command lines.  Updated
  314.   Requester window to accommodate by spliting it into two sections.  To edit a
  315.   requester place the cursor at the beginning of the structure and hit the
  316.   `Requesters' gadget to edit it.  I hope to add an all intuition interface to
  317.   edit the structures.
  318.  
  319.   If you specify multiple {requester} structures you must seperate them by a
  320.   space to ensure good results: {req...} {arg} {req...} {req} {arg...}
  321.  
  322.  
  323.  
  324. Version 1.8     Completed: 27-Dec-92
  325. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  326. - Added `Undo' gadgets to the Path and Requesters windows.  This gadget will
  327.   undo all changes made to the current gadget contents to their original state.
  328.  
  329. - Added user definable command key shortcuts to all menu items.  To get total
  330.   user defintion I also made the Project menu keys user definable.  This was
  331.   done for times when you want to use the hard-coded keys for other programs,
  332.   such as `N' for NewZap, instead of NewShell.
  333.   Not all Project menu items need to be defined nor are all items definable.
  334.  
  335.   Duplicate keys are checked for at loading and upon entry in the new gadgets.
  336.   When loading, duplicate keys are set to NULL with no notification to the user.
  337.   If you notice, I purposely left space for these new gadgets.
  338.  
  339. - Added an `FR' gadget to the main window next to the Command string gadget to
  340.   ease the entrance of complete paths.
  341.  
  342. - Added `About...' menu item to Project menu for legality reasons.
  343.  
  344.  
  345.  
  346. Version 1.9     Completed: 17-Jan-93
  347. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  348. - Fixed a bug in the preferences loading routine that would not create the menu
  349.   strip if the preferences file was not found.
  350.  
  351. - The menu strip width dimensions will now conform to the longest item of each
  352.   menu and the title width also adjusts to the length of the title.  The same
  353.   maximum lengths are still enforced to ensure ease of menu strip creation
  354.   without worrying about dimension problems.
  355.  
  356. - The Requesters structure editor is now all intuition controlled via six new
  357.   gadgets:
  358.  
  359.   `Next' will move to the next structure if exists, otherwise it is disabled.
  360.  
  361.   `Last' will move to the previous structure is exists, otherwise it is
  362.   disabled.
  363.  
  364.   `Append' will add a blank {req} structure to the end of the command line.  You
  365.   will stay at the current structure if one or more exists.  If the command line
  366.   previously had no strucuture(s) then it will become the active one.
  367.  
  368.   `Insert' will insert a blank {req} in front of the current structure and the
  369.   new blank one will become the active one.
  370.  
  371.   `Clear' will clear all gadgets for the particular type of structure.
  372.  
  373.   `Delete' will remove the current structure and activate the next one if it
  374.   exists.
  375.  
  376. - Improved the handling of structures when executed.  Spaces are no longer
  377.   necessary between structures and you don't have to leave a space after the
  378.   last argument in the {arg} structure.  You can still leave spaces for ease of
  379.   reading the command line.
  380.  
  381. - Created a new preferences editor.  It is divided into three sections:
  382.   Operation, Keys and Paths.  The same user definable preferences are now
  383.   grouped under it's appropriate catergory for ease of finding and knowing what
  384.   affect it will have.
  385.  
  386.  
  387.  
  388. Version 2.0     Completed: 08-Feb-93
  389. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  390. - Entire menus can now be swapped by selecting the menu titles.  Also made some
  391.   updates to the code for better handling of swaps.
  392.  
  393. - Created a new type of structure: {prf}.  This new structure allows for each
  394.   program to have it's own defined preferences: output window dimensions,
  395.   multitasking or single-tasking, and auto-close or input closed output window.
  396.  
  397. - Created a better way to block the Shell window by disabling the entire
  398.   menustrip instead of blocking all input.
  399.  
  400. - Fixed a bug in the -E command line argument that wouldn't attach the menustrip
  401.   to the Shell window if -O argument wasn't used also.
  402.  
  403. - Fixed a huge bug in the execute command section.  The addition of the {prf}
  404.   created a problem with command line arguments and helped find an old bug.
  405.   Also spruced up the creation of the command line.
  406.  
  407. - Added better error handling when loading and saving the prefs file.
  408.   Also put the Keys before the Paths in the prefs file to match the order of the
  409.   Preferences Editor.
  410.  
  411.  
  412.  
  413. Version 2.1     Completed: 14-Mar-93
  414. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  415. - Fixed a bug in the menustrip creation process that would lose 5K of RAM.  If
  416.   use the command line argument -O everything was fine.  If didn't use it then
  417.   opened the window later, the menustrip was duplicated but not free'ed when you
  418.   quit, thus losing 5K of RAM.
  419.  
  420. - The prefs file now uses the IFFParse library.  Error checking is quite
  421.   extensive and checks the file if it is a Shell Menus prefs file and of the
  422.   correct version before clearing any preferences data.
  423.  
  424. - Fixed a bug that would try to close the main window when it was already closed
  425.   when loading a prefs file.
  426.  
  427. - Fixed some bugs in the Requesters window that would activate/de-activate the
  428.   wrong gadgets at the wrong time.
  429.  
  430. - Implemented Multi-File selection.  At this time it does one file at a time for
  431.   all programs.  The multifile struct MUST be the last structure in the command
  432.   line.  Multitasking is disabled for this options.
  433.  
  434. - Updated the structure extractor to allow the use the of brackets and braces
  435.   ([, ], {, }) in the command line.  The old version wouldn't allow these,
  436.   preventing patterns like: [f-m] which would only display names of files that
  437.   start with letters between F and M.
  438.  
  439. - Updated routine to ModifyIDCMP() of the Shell window so it won't interfere
  440.   with other programs, or at least ones that don't use IDCMP_MENUPICK and
  441.   IDCMP_CLOSEWINDOW.  IDCMP_CLOSEWINDOW may be deleted at any time.  Until I
  442.   find a better way to check if the Shell was closed, it will stay so you can't
  443.   click close the window.
  444.  
  445. - Fixed two bugs in the Requesters window dealing with the Append and Insert
  446.   gadgets.  The addition of the prefs structures threw off the extraction and
  447.   re-construction of the command line.
  448.  
  449. - Doubled the string buffer size of the Menu Command from 256 to 512 bytes.  It
  450.   was too easily over filled with only three or four 4 fully defined structures
  451.   and caused a visit from the guru.  If need be, it can easily be increased in
  452.   future version.
  453.  
  454. - Added `Other...' sub-item under Format Disk to open an argument window to
  455.   enter other device names (DH0:, RAD:, etc.) to format.
  456.  
  457.  
  458.  
  459. Version 2.2     Completed: 19-Apr-93
  460. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  461. - Updated the handling of multiple copies being run simultaneously because of
  462.   the Shell window being closed, or not.  It now double checks if the Shell
  463.   window is the one it found when SM was first run so it doesn't try to close
  464.   the old window and cause a guru.  It now also handles POPUP better for the
  465.   Main, Argument, Requesters, and Prefs windows better and re-attaches the menu-
  466.   strip correctly.
  467.  
  468. - Wrote a new documentation file in AmigaGuide format.  It wasn't worth writing
  469.   until now because I made so many additions it would have required making
  470.   extensive changes to the guide every few versions.
  471.  
  472. - The command line is now encased in quotes before execution so spaces can be
  473.   used in paths and filenames.
  474.  
  475. - Added `Save Then Quit' to the requester before quiting.
  476.  
  477. - Added StopQuotesHere structure, {""}, for better handling of command line
  478.   arguments with the quotes encaser.
  479.  
  480. - Updated loading and saving routines by compressing lines.
  481.  
  482. - Fixed bug in -P argument that when loading a non-existant file wouldn't
  483.   attach the menustrip.
  484.  
  485. - Updated Append and Insert in Requesters Editor.  It used to always add a {req}
  486.   structure, but know it adds one of the same type as the Type: xxx gadget is
  487.   set to.
  488.  
  489. - Added MoveScreen() to bring the Workbench and all the custom screens back to
  490.   the top and left edges in case they were moved.
  491.  
  492. - Added SetWait() and ClrWait() to use with BlockWindow() and ReleaseWindow()
  493.   but can't use them until I get 3.0 include files.
  494.  
  495. - Updated the Requesters Editor.  The Type: xxx gadget now include Prf for the
  496.   preferences.  The Prf gadgets are off until moved to and the Control gadgets
  497.   are disabled accordingly.
  498.  
  499.   If no Prf structure was found in the first scan, then
  500.   {prf[MULTITASK][AUTOCLOSE]} is appended.
  501.  
  502. - After executing a command SM now returns to the correct place:
  503.     - CheckIDCMP if picked from the ShellWindow
  504.     - MainBringUp if picked from the MainWindow
  505.  
  506. - Broke the 100,000 byte mark.
  507.  
  508. - Fixed a problem in the ExecuteCommand section.  If the user manually put a
  509.   structure, other than Prf, after a Multi-File structure it would not ignore
  510.   those structures, Prf included, and put the files right after the Prf
  511.   structure.  It now totally ignores them like it should but still extracts
  512.   from the Prf structure.
  513.  
  514. - More updates to ExecuteCommand section.
  515.  
  516. - Changed Code=NEAR to Code=AUTO in scopts.  This fixed a few bugs that had been
  517.   plaguing the program.
  518.  
  519.  
  520.  
  521. Version 2.3     Completed: 09-May-93
  522. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  523. - Updated strings and error handling in LoadPrefsCheck:
  524.  
  525.   "complete path"
  526.   is not a Shell Menus prefs file.
  527.  
  528.   "complete path"
  529.   prefs file is an old version.
  530.   Use Convert Prefs to update to the latest version.
  531.  
  532. - Fixed some bugs in the port checker when use POPUP.
  533.  
  534. - Fixed another bug in ExecuteCommand.
  535.  
  536. - Made so input is allowed, again, in the output window to wait for user input
  537.   to start a function, like DMS waits for disk insertion.
  538.  
  539. - Fixed bug in FormatDisk: caused by the quotes encasing.
  540.  
  541. - Updated the Block/Release Shell window code:
  542.     Depth=BlockShell(ShellWindow,Depth);
  543.     Depth=ReleaseShell(ShellWindow,Depth);
  544.  
  545. - Fixed bug that caused MANY gurus to occur when executing commands.
  546.  
  547.     Original:
  548.             ifh=NIL:
  549.             if (SystemTags(txtbuf,
  550.                 SYS_Input,ifh,
  551.                 SYS_Output,ofh,
  552.                 SYS_Asynch,TRUE,
  553.                 SYS_UserShell,TRUE,
  554.                 TAG_DONE)==-1) MyEasyRequest(NULL,"Can't open output window\nor problem with the program.","Continue");
  555.  
  556.      Changed:
  557.             if (SystemTags(txtbuf,
  558.                 SYS_Output,ofh,
  559.                 SYS_Asynch,TRUE,
  560.                 SYS_UserShell,TRUE,
  561.                 TAG_DONE)==-1) MyEasyRequest(NULL,"Can't open output window\nor problem with the program.","Continue");
  562.  
  563.      Updated:
  564.             ifh=NULL;
  565.             if (SystemTags(txtbuf,
  566.                 SYS_Input,ifh,
  567.                 SYS_Output,ofh,
  568.                 SYS_Asynch,TRUE,
  569.                 SYS_UserShell,TRUE,
  570.                 TAG_DONE)==-1) MyEasyRequest(NULL,"Can't open output window\nor problem with the program.","Continue");
  571.  
  572.   It needed a handle to close or it would cause these gurus:
  573.     FileHandle Closed More Than Once
  574.     Memory Freed More Than Once
  575.     Memory Header Not Located
  576.     Address Error
  577.  
  578. - Commented out "Save Then Quit" so I could release it.
  579.  
  580. - Changed the default path to ENVARC:ShellMenus/
  581.  
  582. - Released to the public, finally!
  583.  
  584.  
  585.  
  586. Version 2.4     Completed: 18-May-93
  587. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  588. - Updated the routines to get the path and filename out of CompletePath by
  589.   making ExtractPath() and ExtractFile() subroutines.  Much easier and less
  590.   code.
  591.  
  592. - Now uses a standard 640x200 or 640x400 screen.  Had a problem with the file
  593.   requester being too tall so it had to move itself up from the 11th line.
  594.  
  595. - Changes in Requesters Editor and {req} structures:
  596.     - Changed "Name" to "File" and [NME= to [FLE=
  597.     - Vertically centered the FR gadget between Path and File
  598.     - The FR gadget now gets the Path and File in one step and extracts them
  599.       to the appropriate gadgets
  600.  
  601. - Created FindStruct() to ease the search in command lines for structures.
  602.  
  603. - All command line structures will be remembered for CommandFR and the 4
  604.   video mode files so they won't have to be recreated if the file is changed
  605.   using the FR gadget.  This was very unhandy for the video display mode files.
  606.  
  607. - Fixed a bug in the Requesters Editor that when appended a new structure after
  608.   making a new one without moving to a different one to create the commandline
  609.   struct, it would erase the first one's data.
  610.  
  611. - Created SetItem() to CHECK_ITEM, UNCHECK_ITEM, ENABLE_ITEM, and DISABLE_ITEM
  612.   menu items quick and easy.
  613.  
  614. - Updated Format options:
  615.     Deleted: All options from Format subitems
  616.  
  617.     Changed: FFS -> Fast File System                   Default
  618.              INTERNATIONAL -> International Mode
  619.              DIRCACHE -> Directory Cache
  620.              NOICONS -> Put Trashcan
  621.              QUICK -> Quick Format
  622.              Install -> Install Disk
  623.  
  624.     Added to Operation in Prefs:
  625.         Default Format options...
  626.             Fast File System        Put Trashcan
  627.             International Mode      Quick Format
  628.             Directory Cache         Install Disk
  629.  
  630.     Added: Options Window... to Format subitems
  631.            This window allows you to change the settings before every format,
  632.            if set, and/or to become new settings.
  633.  
  634.     These prefs are now set in the menu and saved in the prefs file.
  635.  
  636. - Added the ability to not display the pattern gadget in the file requester
  637.   via Pattern On gadget in the Requesters Editor.  [NOPAT]
  638.  
  639. - Got "Save Then Quit" to work finally.  It wouldn't work the old way I
  640.   extracted to the path.
  641.  
  642.  
  643.  
  644. Version 2.5     Completed: 29-Jul-93
  645. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  646. - Now uses gadget images for File and Folder instead of the generic FR gadget
  647.   text.
  648.  
  649. - Fixed a bug in the Type: xxx cycle gadget that wouldn't cycle correctly when
  650.   pressing Shift to go backwards.
  651.  
  652. - Added:
  653.     "Press [RETURN], [C]ontinuous, [A]bort or close window..."
  654.   to abort a multi-file execution, and
  655.     "Press [RETURN] or close window..."
  656.   for non-multi-file non-auto-close.
  657.  
  658. - Incorporated my GT_SetMenuAttrs().
  659.  
  660. - Now checks for what devices exist for the Format submenus and disables the
  661.   non-existant devices.
  662.  
  663. - Fixed a small bug when swapping items it would turn Requesters on when it
  664.   shouldn't, it wouldn't turn off Clear Item at the correct time, made the
  665.   code smaller.
  666.  
  667. - The Main and Prefs screens now open to OSCAN_TEXT width and height and centers
  668.   the display.
  669.  
  670.  
  671.  
  672. Version 2.6     Completed: 29-Aug-93
  673. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  674. - Made better loading and saving routines that uses less code and is faster.
  675.  
  676. - The Preferences Editor Undo is now global, not just for the currect section.
  677.  
  678. - Added CheckForVisitors() for successful closing of the Public Screens.
  679.  
  680. - Fixed GetVisualInfo() bug that caused the `Swap Items' gadget to loose it's
  681.   imagery because it was updated too often.
  682.  
  683. - Now uses Workbench font for the menus.
  684.  
  685. - Fixed a small bug in Requesters Editor dealing with `Auto-Close'.
  686.  
  687. - Added `Same Window' and `Clear Window' to Requesters Editor to allow the
  688.   user to use the same output window for all Multi-File operations, and to
  689.   clear the output window between files.
  690.   [SAMEWINDOW] and [CLEARWINDOW]
  691.  
  692. - Now spread across multiple files for easy updating.
  693.  
  694. - Took out PopUp option when run more than one copy because the modules can't
  695.   goto ... like they used to.
  696.  
  697. - Created new CheckChanges() for a more specific message on what was changed.
  698.  
  699. - Created UpdateMenus() and got rid of the stpcpy()'s in CopyToMenus:.  This
  700.   resulted in less code, the ability to use NM_BARLABEL and only have the
  701.   shortcut key image displayed for only those items that have a shortcut key.
  702.   `---' is used to define NM_BARLABEL.
  703.  
  704. - Updated string gadgets to handle `---' appropriately:  Key and Command off
  705.   when Text is `---', on when not.
  706.  
  707. - Changed the maximums to:
  708.     10 menus
  709.     40 items each
  710.  
  711. - Now uses dynamic menus.  The menustrip is as long or short as the user has
  712.   defined.  The preset empty items are no longer there for a much cleaner and
  713.   better looking menustrip.
  714.  
  715. - Memory usage is cut down to a minimum since the dynamic menus only allocates
  716.   the memory it needs.
  717.  
  718. - The dynamic menus also changed the prefs file AGAIN to accommodate the change.
  719.   If was left the original way, the prefs file would be 220K+.
  720.  
  721.  
  722.  
  723. Version 2.7     Completed: 05-Oct-93
  724. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  725. - Finally got it internally localized but no other catalogs.  Always had the
  726.   strings but not the code to use them.
  727.  
  728. - Now uses CreateNewProc() to detach from the Shell instead of using cback.o.
  729.  
  730. - Fixed a problem with the new dynamic menus causing the listviews' imagery to
  731.   to mess up with empty menus.
  732.  
  733. - Created ArgumentParser() to use ReadArgs() function for better and more
  734.   "correct" command line arguments.
  735.  
  736.     -O -> OPENEDITOR/S
  737.     -P -> PREFSFILE/K
  738.     -E -> EXECUTE/K/N,/N
  739.           OPENSHELL/S   (new)
  740.  
  741.   OPENSHELL/S,PREFSFILE/K,EXECUTE/K/N,/N,OPENEDITOR/S
  742.  
  743. - Added some checks before executing commands that could cause a problem when
  744.   use the EXECUTE argument.  Mostly it is for cosmetic reasons.
  745.  
  746. - Now has AmigaGuide support at the press of the Help key.
  747.  
  748. - When using Multi-File it will now fill the command line to the maximum length
  749.   with filenames.  This speeds the process since it won't have to load the
  750.   program for every file.  This saves a lot of time since it will only have to
  751.   load the program when the command is full.
  752.  
  753. - By using the new command line argument CUSTOMSHELL <Name>, other names besides
  754.   `AmigaShell' may be used for Shell windows.  This allows the use of Csh and
  755.   such programs that changes the name of the Shell.  Shell Menus must be run
  756.   AFTER these programs.
  757.  
  758.   OPENSHELL/S,CUSTOMSHELL/K,PREFSFILE/K,EXECUTE/K/N,/N,OPENEDITOR/S
  759.  
  760. - You can now switch menus to a certain one by pressing the numeric keys on the
  761.   main keyboard or the numeric pad.  0 is menu 10.
  762.