Tera Desktop. Copyright 1991, 1992, 1993, 1994, 1995  W. Klaren.
                                          2002, 2003  H. Robbers.
                              2002, 2003, 2004, 2005  Dj. Vukovic.


Version 3.50
------------

- New basic sets of monochrome and colour icons. Hopefully these contain
  more useful icons than earlier did. Btw. some of the icon names from the 
  old sets do not exist in the new ones.

- Removed the constraint (introduced in V3.0) of having to use a monochrome
  icon file whenever in monochrome video mode, even when colour icon file
  would do. Why not have animated monochrome icons when possible? 

- Some tidying-up of the configuration file structure. Certain bitflag items
  moved from "copy options" data to other, more logical, places. As a result
  of this, certain options set in configuration files prior to V3.50 will be 
  ignored:

  . State of "Save colours"    (OFF will be assumed)
  . State of "Dialog options"  ("centered" will be assumed)
  . State of "Wait for key after TOS programs" (OFF will be assumed)
  . State of "Use handle 2 for stderr" (OFF will be assumed)

  These options should be set as desired and the configuration file(s) 
  saved anew. It is assumed that these differences are not significant 
  enough to justify additional compatibility-handling code.

- Font colour can now be set in TeraDesk's font selector.

- If no selection is made, 'Search' is active in the top directory window.

- Added settable option to skip subfolders when searching for files.

- If a desktop disk icon is set without a drive letter, then icons for
  any missing disk volumes are set on the desktop, which eliminates
  the tedious one-by-one setting of disk icons. 

- Added setting of basic Falcon video modes in Video options. For the time
  being it works only with some AES 4 versions, but not :(  with Falcon 
  TOS 4.04. It works  Atari AES 4.1 (with or without Mint), Geneva and 
  probably Magic (not tested yet), but not with current versions of XaAES 
  or MyAES.  (Generally, it should work in all AESes which can handle 
  shel_write(5,...) )

- Added "background" option in the application-type dialog. If selected, 
  a TOS (non-GEM) application will be started as "background" in Mint- it 
  will be basically just Pexec()-ed (same as starting it while [Alt] is 
  pressed). Works in single-TOS too, where found to be convenient for some 
  simple utilities which do not write anything on the screen and there is 
  no need to close the windows, clear the screen and display the program 
  title bar (e.g. a sound-playing utility such as WAVEST).

- Improved handling of the "BORDERED" object flag for self-drawn in-dialog 
  objects; actual border size is determined, as used by any particular 
  AES, resulting in better looking dialogs in any AES which does not (yet?) 
  support borders and/or particular object types in the standard way 
  (i.e. MyAES). Visible mostly in the appearance of the dragbox "ear" on 
  a dialog.

- Improved sizing of buttons with underlined keyboard-shortcut characters 
  so that underlines are now seen in MyAES/monochrome.

- Keyboard shortcuts (underlined) in dialogs, when TeraDesk draws them
  (i.e. always except in Magic, XaAES or N.AES), are shown in different 
  colour (red) when possible.

- Dialog titles, when TeraDesk draws them (i.e. always except in Magic,
  XaAES or N.AES) are drawn in colour (dark blue) when possible. Sizing 
  of the title object slightly modified for better alignment.

- Some small optimizations in event-handling routines.

- Newest version of AHCM memory-allocation routines used.

- Somewhat relaxed validation for window icon name mask in single-TOS, so 
  that icon can be assigned to ".." (parent folder).

- Links pointing to items with paths containing slashes ("/") are now
  interpreted as if they contain backslashes ("\"). This hopefully fixes
  the problem of not finding link targets on minix or ext2 partitions.

- Some more work started on better handling of access rights; nothing
  visible to the user, yet.

- Corrected action taken upon WM_ONTOP message (i.e. there should be no
  window action taken, just the change of top window noted).

- Corrected dialog and window redraws when showing copy-info and 
  name-conflict dialogs.

- Fixed a bug which restricted the use of FONT protocol only to signed-on
  AV-protocol clients.

- Fixed a possible instance of attempting to free a non-allocated memory 
  block while doing VA_DRAGACCWIND.

- Fixed several instances of using data from memory blocks after they 
  had been deallocated.

- Fixed a bug in implementation of AV-protocol which could lead to corrupted
  replies being sent to AV-clients (data for two replies overlapped).

- Fixed a bug which disabled 'Skip' action in a response to Skip/Abort
  alert during file operations such as copying or deleting.

- Fixed a bug in string conversion to uppercase which could have affected
  wildcard-matching with patterns containing digits.

- Fixed a bug which disabled recognition of other-than-ST video hardware.

- Fixed a bug, unfortunately introduced in V3.42, in rubberbox redraw when
  directory window was scrolled.

- Fixed a bug in the video-setting code; on a Falcon some ST-specific
  code was executed.

- Fixed a bug which disabled loading of colour palette. Also improved
  tolerance to loading palette sizes other than the current palette- 
  palette file will not be rejected anymore but only colours in valid 
  range will load.

- Fixed a bug in dialog-handling routines which could cause object index 
  in a dialog to exceed tree extents. This was visible in 'Set mask'
  dialog when cursor keys were used.

- Fixed a bug in fulling a text window for large files (i.e. with more
  than about 2000 lines)

- Fixed some noncritical errors in the resource file.

- Some corrections made in the hyopertext manual.


Version 3.43 (never published, except for testing)
--------------------------------------------------

- Some small changes which soon evolved enough to be considered  as V3.50;


Version 3.42
------------

- Simplified calculation of default window sizes and positions.

- Improved speed (and code size) of wildcard-matching.

- Some other code size optimizations where speed is not critical. 
  Program size reduced even more.

- Enabled opening of the fileselector upon a double click on a
  scrolled editable text field, as intended a long time ago.
  (previous use of [INSERT] key for this purpose is kept as well).

- Plugged a memory leak which could sometimes happen when starting 
  installed applications. 

- Improved checking of dates entered in file-info dialog.

- Improved redraw in the 'Help' dialog


Version 3.41
------------

- Simplification of routines for loading and saving configuration files.
  Also, eliminated saving of empty data structures, which will sometimes
  result in somewhat smaller configuration files. Slightly better tolerance 
  to faulty configuration files.

- Simplification of routines for floppy formatting. An insignificant bug
  corrected.

- Some more code optimization and cleanup. Program size reduced by almost
  a kilobyte, now actually smaller than V3.32!

- Some corrections and additions in the hypertext manual.
  
- An alternative help application can be manually specified in the
  configuration file (defaults to ST-Guide). Any application used
  must know of VA_START and understand its syntax as used by ST-Guide
  (this was actaully added in V3.40 but was not properly documented). 

- Fixed incorrect handling (cramping) of of the names of selected files
  when using 'Compare...'  more than once.
  
- Improved a somewhat ilogical behaviour of the 'Search...' function
  when size range or search text are specified. In such cases only 
  files will be name-matched now, not folders.

- 'Select all' in directory windows does not needlessly select 
  the parent directories anymore.

- Better handling of missing icons, including the required ones. Missing
  icons  turned out to be a realistic situation  if icon resource file(s) 
  were changed. Previous version of TeraDesk created ugly empty rectangles 
  in windows then. Now TeraDesk attempts to use one of the default icons, 
  according to item type, and if that does not succeed either, uses the 
  first icon in the icons resource file. Also, an alert is displayed. 


Version 3.40
------------

- Some size and speed optimizations.

- Option to automatically save desktop on exit (in Desk preferences).

- Reduction of sizes of confirmation dialogs for file deletion and printing
 (some empty space removed).

- Improvement of the Show/Edit/Cancel dialog:
  . It is a dialog now (again), not an alert;
  . Added "Run" option  (treat the file as executable);
  . Added "With" option (select an application to open the file with);

- Improvement of the 'Print...' function; printing can be redirected
  to a file. Also, three printing modes now exist, selectable from the 
  confirm-print dialog:
  . Text mode (lines wrapped; cr/lf inserted when appropriate);
  . Hex dump (hex-codes + ascii, 16 bytes shown per printer line);
  . Raw data (file sent to printer as it is);

- Improvement of 'Compare': there is a dialog now to enter parameters; 
  width of resync window can be specified.
  
- 'Reverse sort' option for directory windows added.

- Removed 'Show as text' menu item as redundant, in order to reduce size
  (if added back to desktop.rsc, TeraDesk can still be compiled to use it); 
  'Show as icons' can be checked/unchecked. If a keyboard shortcut was
  defined for 'Show as text', an alert regarding 'shtx' record will
  be generated. Should be ignored and desktop saved anew (didn't want
  to bother with keeping compatibility for a single item).

- Switchable auto-arrangement of objects in directory windows 
  (i.e. fit current window width as well as possible).

- Multicolumn display in directory windows in text mode if auto-arrange
  is set, whenever a window is wide enough.

- Improved action of 'Fuller' in directory windows: 
  . Vertical size adjustment as well as horizontal. Works for text windows 
    too. Any action which changes the dimensions of window contents now 
    resets the 'fulled' state (without changing window size).
  . Two 'fulled' modes: 1) window is expanded only as much as needed to
    display contents; 2) if any [Shift] key is pressed while clicking on
    the fuller gadget, the window is expanded to all of desktop. 
 
- Improved calculation of slider positions in icon display mode.
 
- Names of hiden files displayed in light (gray) type.

- Update of text window content with [Escape] (re-read file).

- Dragging a single file to a text window reads the file into the window.
  (turned out to be quite convenient and faster than opening new windows).

- Search can be aborted by pressing [Escape].

- 'Search finished' information issued.

- Improved detection of '3D' AESes.

- Introduced environment variable TERAENV (not obligatory)  for setting
  some configuration details which were not convenient to be set through
  the configuration file (e.g. had to be set -before- reading that file).
  Currently only "TERAENV=D" is understood: force TeraDesk to always draw
  all extended-type objects by itself, even if an AES supports them.

- Some improvements in handling of the Info... dialog.

- Small improvement in handling of video mode(s). 

- A redesign of desktop/window pattern and colour selector.

- Warning issued before change of video resolution (reset).

- An alert is displayed if an application fails to start (multitasking).
  Does not work in all AESes.

- Additional objects added to video-options dialog, as an anticipation
  for some changes planned for a future release. Currently set to invisible.

- Optimization of redraws in some dialogs (and after closing them).

- An alert is displayed when appropriate, asking whether to
  start another instance of a running application.

- 'Window bottomed' message is now understood and acted upon.

- Checks are made whether registered AV-protocol clients are still alive.
  This is done before each program start.

- Multiple registration of some AV-protocol clients avoided now.

- Links to folders are correctly sorted among folders now.

- Fixed a bug of using a noninitialized variable in setting program types
  (i.e. an uncontrolled value could appear).

- Fixed a bug in casting a windows-related structure.

- Fixed some minor bugs in applying background patterns.

- Fixed a bug related to AV-protocol and text windows.

- Fixed a bug which could cause the AV-protocol to crash TeraDesk in
  the unlikely case of Mint being run with memory protection over a
  TOS version lower than 2.06.

- Fixed some wrongly set object flags in DESKTOP.RSC

- Fixed a bug which could freeze TeraDesk in a windowed dialog when 
  texts were translated to other languages (e.g. Russian).

- Fixed a bug in cancelling the loading of configuration files 
  (i.e. it could not be cancelled).

- Fixed a bug which caused the entire configuration file to be rejected
  upon loading if a path to a saved window did not exist anymore.

- Fixed a bug in searching when file size range was specified.

- Fixed a bug which could cause a crash when dialogs were closed by UNDO
  button or 'Closer' gadget.

- Fixed an old bug (from V3.0) which could cause memory corruption upon 
  an empty line in a configuration file.

- Updated the hypertext documentation, correcting a number of errors in it.


Version 3.32
------------

- Fixed a bug in memory allocation when composing the ARGV string;
  it could cause errors or even a crash at launching a program or exiting 
  from a program.

- Fixed a bug which could lead to confusing environmental variables
  with identical trailing ends (e.g. PATH and ATH).

- Fixed a bug in checking string length when creating links.

- Fixed a bug which disabled entry of certain characters in the form
  for application path.

- Fixed a variable-initialization bug related to scrolled editable 
  text fields in some dialogs.


Version 3.31
------------

- Corrected position of an object in desktop.rsc (Info... dialog).

- Fixed a bug in handling symbolic links without a path to the target.
  (path of the link is assumed now).

- Fixed a bug in passing parameters after the program name in VA_PROGSTART 
  and in Open... dialog.

- Fixed a bug of not being able to display items with names starting
  with a character code > 127.

- Fixed a bug in redrawing dialog and windows after font changes.

- Fixed a bug in passing parameters in drag & drop.

- Fixed a bug which crashed the desktop if an attempt was made to
  open more than one item through Open...

- More relaxed application of VA_START and AV_EXIT to those AV-protocol 
  clients which do not correctly sign-on / off with the AV-server.

- Improved the initial implementation of VA_PATH_UPDATE which interfered 
  with the handshake for some other AV-protocol messages; a client could 
  freeze during some operations.

- Improved cycling of AV-protocol-client windows.

- Improved display of item names during copying/moving/deleting.

- Positions and sizes of iconified windows are correctly saved in the 
  configuration file.

- Redesigned routines for enabling/disabline menu items depending on
  the context; this resulted in reduction of code size, welcome to counter
  the increase caused by other changes.

- More logical calculation of total items size in info lines of directory
  windows- only items matching the current mask (i.e. visible ones) 
  are summed up.

- Better handling of a TOS 2.06 bug which manifested itself as a need
  for an additional mouseclick after (and sometimes before) a program
  was started, and there were no windows open. Version 3.30 did not 
  work well in this respect with unpatched TOS 2.06 (possibly relevant 
  in TOS 3.06 as well ?)

- Clicking on desktop area now properly tops TeraDesk (may not work with 
  all AESes).

- Some left-over strings moved from the code to the resource file.

- More relaxed treatment of character codes in order to enable dialog 
  and menu hotkeys with characters particular to other languages
  (the upper half of the 256-character set). 


Version 3.30
------------

- Added special use flag for external viewer.

- Fixed a bug which sometimes caused copying from one disk to another
  when icons were moved on the desktop.

- Path of the symbolic link is appended if the link contains only the name
  of the referenced object, without a path to it.

- Fixed some bugs related to AV-protocol.

- Fixed a bug in finding next or previous windows.

- Some code optimisation.


Version 3.22 (never published, except for testing)
------------------------------

- Improved memory allocation system used (new version of AHCM), for
  better handling of large blocks.

- Fixed some bugs mostly related to local environment, AV-protocol
  and handling of symbolic links.

- Better handling of iconified windows.


Version 3.21 (never published, except for testing)
--------------------------------------------------

- Drag & drop protocol repaired (TeraDesk acts as a sender only).

- Restore-mode copying enabled by [RShift] (overwrite newer files only).

- Updated and rearranged dialogs with help on keyboard commands.


Version 3.20 (or 3.2; never published, except for testing)
----------------------------------------------------------

- Even more (almost all) AV-protocol messages supported.

- Update-mode copying enabled by [LShift] (overwrite older files only).

- Somewhat better handling of symbolic links.


Version 3.10 (or 3.1; never published, except for testing)
----------------------------------------------------------

- More general flagging of installed application for speciual use(s); new 
  (sub)dialog created; can mark several roles for special apps; a mechanism 
  created to mark them for some other functions as well, if need appears.

- As a result of the above, editor-specific functions are not needed 
  anymore; edit.c and edit.h files removed from the project.

- Added window duplicate function.

- Moved window-related menu items under a new menu title "Window".

- Much larger subset of AV-protocol messages handled; TeraDesk is now
  a passable AV-server.

- Repaired the system-wide font selector callable via FONT protocol (e.g. 
  from ST-Guide, Multistrip, etc.) (this was inherited from previous 
  version but in fact did not work well).

- Repaired handling of ARGV protocol in Mint and Magic. 

- Repaired Info... of the topped directory window; info on a file in the 
  topped text window can be shown as well. 
  
- Local per-installed-application environment.

- Symbolic links can be created, edited, deleted, copied...

- More logical interpretation of links when "opening" items: real item 
  names are checked for, and real file names passed as parameters.

- When dialogs are in window mode, added a closer widget which acts the 
  same as Cancel button.

- Removed "normal" dialog mode.

- Removed startup batch file capability from the project; batch.c and 
  batch.h files removed from the project.

- Some small improvements in shutdown procedure. Also, if mint is detected, 
  "Shutdown(2)" is activated at the very end, causing system restart.

- Some small improvements in video options dialog.

- New command line variable: beside %f and %n, added %p (path).


Version 3.02 (never published)
------------------------------

- Source code cleanup; removed remains of support for the binary 
  configuration file; removed disabled old code for directory handling.

- Fixed a bug in left/right scrolling of text windows

- Fixed some errors in desktop.rsc

- More consistent application of string sizes for long names and commands
  (still not quite systematically applied).


Version 3.01
------------

- Restored full functionality of the name-conflict dialog.

- Repaired a bug in cookie finding routine (inherited from V2.*) which 
  could sometimes make TeraDesk practically unusable if the cookie jar did 
  not exist.

- Better fix for a TOS 2.06 bug related to ignoring the first mouse click 
  after execution of a GEM program if no windows were open.

- Fixed a bug which disabled seting of configuration file name in the 
  startup .BAT file (btw. should startup file feature be considered 
  obsolete- does not seem to be of much use anymore?)

- Fixed bad window redraw in icon mode with XaAES.

- Fixed bad redraw in font-selector listbox with XaAES. (these two were 
  probably faults of XaAES (V0.963), not TeraDesk)

- Correctly rebuilt the binary (previous version was linked wih a wrong 
  binary module; could cause a crash under memory protection).

- Set exit with "OK" from "Video options..." to always redraw complete 
  desktop, as a help to recover after screen corruption.

- Some code size optimizations.

- Some improvements and additions in TERADESK.HYP


Version 3.0
-----------

H. Robbers:

- Configuration data now in text mode. Easy to keep compatability. Name of 
  textmode confguration file is TERADESK.INF.

- Program cfg2inf.prg for converting the binary cfg to the textmode inf.

- Colour palette is saved in a separate file TERADESK.PAL.

- Replaced use of Malloc (Gemdos) to standard malloc. (replace all x_alloc 
  by malloc and x_free by free, except 2 that were used for interrogation) 
  This reduces memory fragmentation on the Gemdos level considerably, 
  especially important in multitasking environments.

- Replaced Wout's mememory allocator by mine (AHCM). AHCM allows memory 
  leak detection and reduces fragmentation even more by always allocating 
  Gemdos blocks in whole multiples of chunk size.

- As a result of the above it wasn't possible anymore to shrink the start 
  amount of 2000 directory entry structures (68 Kb). So I implemented a 
  pointer array instead. It starts with 256 entries (1 Kb) and is mildly 
  exponentially expanded when needed. The amount of memory used by the 
  pointer array is so low that shrinking isn't vital anymore. The amount 
  of entry structures never exceeds the actual amount present in the 
  directory. (A slight but nice advantage is that sorting now takes place 
  on the pointer array which only needs swapping around of 4 instead of 34 
  bytes. :-)

- Removed more of older cfg version 

- cfg2inf.prg: The editor string in the old config is converted to a flag 
  for the (installed) editor in the new config. So it is preserved if the 
  editor was installed.

Dj. Vukovic:

- Fixed a bug of not immediately refreshing a changed background 
  pattern/colour in text windows;

- Fixed a bug of not correctly setting and so corrupting type of desktop 
  icon in desktop icons dialog.

- Fixed some bugs which disabled printing of more than one file at a time;

- Fixed some bugs in scrolling text fields (cursor placement, padding...)

- Fixed a bug which swallowed the first char of command lines for .TTPs

- Corrected enabling/disabling of some menu items depending on context;

- Fixed two cases of not releasing allocated memory after use;

- Fixed bad redraw of animated colour icons; 

- Fixed a bug of cv_fntoform() overrunning available dialog buffer;

- Removed some overlooked fixed keyboard shortcuts from previous version;

- Adjusted length of "filetype" dialog fields vs. allocated string length 
  (dialog field was longer than permitted string length);

- Some fixes which (hopefully) will correct improper window and dialog 
  redrawing with XaAES only (V0.963).

- A lot of source code cleaned up; also removed some commented-out code 
  from previous versions;

- Some optimization of desktop.rsc and use of it; removed unnecessary 
  alerts, reused some strings, etc.

- Significant reduction of code size by reorganizing routines and data 
  structures related to text and directory windows, so that same code is 
  used for both window types;

- Integrated dialogs, routines and data structures regarding 
  filetype-selectors, so that there is only one filetype-selector dialog 
  in desktop.rsc; significant reduction in executable code size because a 
  lot of routines are made to work on all file/filetype lists.  New files: 
  lists.c and lists.h

- Reorganization of "Install Application" function, so that a dialog is 
  shown displaying a list of installed applications. Reduction in code 
  size because of modifications in several routines.

- Same concept is used for entering/editing all lists: filetype masks, 
  program types, window icon filetypes and applications. It is possible to 
  select an item from the list and manually edit it (i.e. two dialog 
  levels), or to select an item in a window and then immediately open a 
  second-level dialog to edit the entry.

- ALL dialogs now fit ST-low resolution. Some are reduced in size even 
  more for faster redraws on low-end machines

- Several small fixes and improvements in floppy formatting routines;

- Target floppy drive is locked during formatting/copying in Mint & MagiC;

- Somewhat improved handling of overscan hack (tested with Lacescan);

- Improved operation of the "fuller" gadget- fulled window is moved left 
  until it is completely on the screen;

- Improved operation of the "fuller" gadget for text window in "hex" mode- 
  window is made only as wide as needed;

- Created "pressed" 3d effects when arrows pressed in Window Optons and 
  Desk Preferences;

- Added window iconify/deiconify capability in AESes which  support it 
  (AES4.1, Geneva, Magic, XaAES...)

- Cosmetic change: added left margin to text windows;

- Added checking for duplicate entries in filemasks, program types, 
  window icons and applications lists;

- Added possibility to properly cancel changes in filemasks list;

- Added posibility to start an application or program type in 
  "no-multitasking" mode in Magic (not working very well yet);

- Added possibility to limit memory available to a program type or 
application.

- Added capability to mark an installed application as "autostart";

- Added capability of "Search" to find text in files as well;

- Added "touch" ((re)set date and/or attributes) functionality; user 
  interface implemented through additional button in the "Object info" 
  dialog. Considerable reorganisation of that dialog(s). TeraDesk is now 
  able to display DOS/Windows folder attributes though not able to change 
  them.

- While copying files it is possible to change date/time and attributes.

- Added "Compare files" functionality;  a nice knack is that it 
  resynchronizes search positions after a found difference.

- Improved "Open..." function; it now tries to figure out what type of 
  item should be opened: a program, a folder/drive, a file assigned as a 
  document to application, or an unassigned file. In case of a 
  program/application, it is possible to enter a comand tail after 
  path+name;

- Command line dialog for TTP programs remembers last command if program 
  name has not changed.

- Filename/filetype entry forms in dialogs appear in 8+3 length if there 
  is no long-filename-capable OS present (i.e. without Mint or Magic);

- Much improved appearance of dialog elements, especially in 3D AESes; 3D 
  effects are properly drawn when needed. Significant reorganization and 
  simplification of routines for progdefined objects in xddraw.c;

- [Shift[[Help] calls ST-Guide (if available) to display TERADESK.HYP;

- Cramped_name() used for nicer display of long window titles;

- Improved recognition of TOS and AES versions and their capabilities
  and limitations.

- Added capability to call a file selector in scrolled text fields;
  upon pressing the [Insert] key

- As "Print" option now exists in the menu, that option has been removed 
  from the Show/Edit/Cancel dialog and an alertbox is used instead of the 
  dialog

- Updated the .HYP documentation. 
  







