                             History of XSET
                             ===============

Version 5.52
============

  - Internal release


Version 5.51
============

  - Use 3 double quotes to actually store a double quote


Version 5.50
============

  - Added support for /LFN & /-LFN in Windows 2000, XP, etc.


Version 5.49
============

  - extended KEY command to accept non-printable characters as string specifier


Version 5.48
============

  - internal changes


Version 5.47
============

  - real concurrency under Windows 2000 and XP
  - under NT, real concurrency allowed with manual intervention
    (see XSET_TMP in XSET.TXT)


Version 5.46
============

  - bug fix: character ALT-255 was not allowed in passwords
  - bug fix: handles now very long filenames under NT, Windows 2000 and XP
  - bug fix: year 2000 was not considered as a leap year
  - bug fix: XSET_MSG was not always cleared under NT, Windows 2000 and XP


Version 5.44
============

  - bug fix when Windows 2000 installed on another drive than C:


Version 5.43
============

  - error messages exit automatically after 30 seconds


Version 5.42
============

  - extended compatibility with Windows 2000
  - shortened time-out in XSET32 concurrency check


Version 5.38
============

  - /VIEW didn't work


Version 5.37
============

  - Corrected handling of special characters under NT (&|> etc.)


Version 5.36
============

  - Corrected /APPEND problem on NT


Version 5.35
============

  - Corrected time-out problem on NT


Version 5.34
============

  - Corrected problem when no hard drive was installed


Version 5.33
============

  - Full support of long file names in Windows 95, 98 & NT.
  - /*LOWER and /*UPPER allow to convert to upper/lowercase
    with no translation for the characters with an accent.
  - extended support for scandinavian characters
  - NT & OS/2: the current version will try to serialise calls to XSET
               10 times and wait 10 seconds between each try.
               After 10 times, it will continue.


Version 5.29
============

 *** New E-mail address:
     Internet:   xset@bigfoot.com  or  xset@writeme.com
     Compuserve: >INTERNET:xset@bigfoot.com
              or >INTERNET:xset@writeme.com

  NT & OS/2: handles case where TEMP variable is not defined.
  Bug correction in registration code handling.


Version 5.28
============

  Support for pathnames longer than 255 characters (like in NT).


Version 5.27
============

  When not enough lines are found in an input file, set the variable
  XSET_MSG to END-OF-FILE.


Version 5.23
============

  Support for dates after 2038


Version 5.22
============

  Bug correction in date handling


Version 5.21
============

  Added Windows 95 long filenames handling (/LFN & /-LFN)
  Added default date output format (/DATEFORMAT)

  Bug correction: characters with accents loosed them.

            
Version 5.10
============

  Remove line length restrictions for native NT & OS/2 command prompts

            
Version 5.01
============

  Added compatibility with native NT & OS/2 command prompts

            
Version 5.0
===========
            
  Changes:
  -------
   - huge speed increase
   - flags are now processed the order they appear on the command-line
     (you may now use several times the same flag with different arguments)
   - /FILE allows to specify XSET actions from a file
   - /SIZE has been replaced by ENVSIZE & ENVFREE
   - /REGEXP has been replaced by /*CHANGE, /*SEARCH, /*INDEX
   - DATE accepts an optional format string (like mm-dd-yyyy)
   - compatible with Windows 95, NT (3.51 & 4.0) and OS/2 (Warp & Merlin)

  Bug correction in DRIVETEST with CD-ROMs


Version 4.21
============
            
  Bug correction in /REVERSE



Version 4.20
============
                     
  Changes:
  -------
   - CPU now returns 0 for 8088/8086/8186, 
                     2 for 8286, 
                     3 for 8386, 
                     4 for 486,
                     5 for Pentium


  New functionalities:
  -------------------

    - DRIVETEST also returns:
      'HARDDISK', 'TAPE', 'OPTICAL', 'FLOPPY' & 'CDROM'


  Bug corrections:
  ---------------

   - pathnames containing a single dot before the \ were badly translated.



Version 4.10
============
                     
  New functionalities:
  -------------------

    - /REVERSE   reverts a string (first character becomes last one)
    - /LEFT, /RIGHT & /MID handle arguments counted from end of string
    - ability to use ERRORLEVEL function even if your shell is not supported
      (see XSET.TXT)
    
  Bug corrections:
  ---------------

   - ERRORLEVEL sometimes returned a wrong value



Version 4.02
============
                     
  Changes:
  -------
   - DIFFDATE   also allows 4 digits years (94, 1994, ...)


  New functionalities:
  -------------------

    - XSET handles the special case of  the  variable  'windir'  created  in
      Windows DOS boxes that you normally cannot use.
      
    
  Bug corrections:
  ---------------

   - ERRORLEVEL return was wrong for MS-DOS 6.0
   - some problems dedicated to demo version in some very particular
     configurations 



Version 4.00
============
                     
  Changes:
  -------
   - ERRORLEVEL is PC-DOS 6.1 and MS-DOS 6.2 compatible

   -  /TIMEOUT  n 
      Line input: If n < 0, time-out will be active during the  whole  input
                  process; if you wait more than abs(n) seconds between  two
                  keys, the program will return the string typed so far.
      KEY input: the program will return after  the  specified  time  if  no
                 valid key was hit.
                 ^^^^^
                     
  New functionalities:
  -------------------

    - /SEPARATOR string       
      This uses the characters from 'string' as word separator.
      This option is intended to be used with /WORD and /COUNT.

    - RANDOM n1 n2
      This generates a random integer number between n1 and n2.



Version 3.50
============
                     
  New functionalities:
  -------------------

  This version now fully supports full edition of input lines.
  
    Valid keys:   Home         Begin of line
                  End          End of line
                  Left/Right   One character left/right
                  Insert       Toggle isert on/off
                  Delete       Delete current  character
                  BackSpace    Delete previous character
                  Ctrl-home    Erase to begin-of-line
                  Ctrl-end     Erase to end-of-line
                  Escape       Erase whole input
                  Enter        Accept input
  
  
  /DEFAULT       set current value as default for the input prompt
  
  /TIMEOUT n     breaks the input if no key was hit after n seconds
  
  /COLOR  <color>       change prompt color
         valid colors = BLACK BLUE GREEN CYAN RED MAGENTA BROWN DARKGRAY
                        LIGHTGRAY LIGHTBLUE LIGHTGREEN LIGHTCYAN LIGHTRED
                        LIGHTMAGENTA YELLOW WHITE
                        HIGHLIGHT REVERSE
  
  /BACKGROUND  <color>   will change prompt background color
          valid colors = BLACK BLUE GREEN CYAN RED MAGENTA
                         BROWN DARKGRAY LIGHTGRAY
  
  /BLINK                displays a blinking prompt
  
  /XPOS  x
  Set cursor to column x (or current - abs(x) if x < 0) before displaying prompt.

  /YPOS  y
  Set cursor to line y (or current - abs(y) if y < 0) before displaying prompt.

  /WINDOW  left top right bottom
  Draw a window (using color specified with /BACKGROUND).  

  /BOX
  Draw a window around the prompt .

  /BORDER
  Add a border inside a window (specified with /WINDOW or /BOX).

  CPU     returns processor type (86, 186, 286, 386 or 486)
  
  VOLLABEL   returns the volume label of a disk
  
  DRIVETEST  tests if a disk drive is readable, writeable, invalid,
             remote, removable, ram disk, subst, ...
  
  /LINE      accepts both positive and negative arguments:
              1   will read first line 
              2   will read second line 
             -1   will read the last line,
             -2   will read the line before, ...
                
  XSET variable:   
       Before scanning the command line, the XSET program  will  look  for
       the 'XSET' variable into the current DOS environment. If it exists,
       the XSET program will use the variable contents like  option  flags
       you would have given onto the command line. After it will  use  the
       option flags given onto the command line.
             
  XSET_MSG variable:
       Assigned by the XSET program itself to specify special events.
  
  
  Changes:
  -------
   - FTIME also returns seconds (hh:mm:ss)   
   - ERRORLEVEL is MS-DOS 6.0 compatible
   - /MATH accepts hexadecimal numbers followed by H
   - /MATH accepts power expression ( x^y )
   - KEY also returns non-printable characters as their decimal ASCII 
         code preceeded by a '#'.
   - /REGEXP accepts a new special character '?' matching 'zero or one time'.


  Bug corrections:
  ---------------

   - This version now fully supports non standard mode like 30 or 60 lines.
   - bug fix in function FEXT when no extension in filename.
   - XSET did not recognize empty strings on command-line ("").
  

                  

Version 3.00
============

  Completely new interface to allow several operations in one shot.
  
  ex: XSET/LOWER /PROMPT "Enter a filename: " FPATH

  Type XSET /? to get the full description of all functionalities.



Version 2.60
============

        New commands added:

XSET /VIEW var   will show content of variable 'var'

This command is useful to use variables longer than 128 characters.

You can exit the help screen at any time by hitting Escape or Ctrl-C.



Version 2.50
============

        New commands added:

XSET /VIEW   display all environment variables



Version 2.40
============

        New commands added:

XSET /SIZE   display environment size and free size (in bytes).

        Bug correction:  bug fix in function DIFFDATE.



Version 2.30
============

        New commands added:

Commands    Arguments    Action and value assigned to <dosvar>
--------    ---------    -------------------------------------
DIFFDATE    date1 date2  number of days between date1 and date2 (date2 - date1)
                         date format may be 'dd-mm-yy' or 'yymmdd'
                         (may also be mixed)

        Bug correction:  WORD 1 sometimes returned wrong result.



Version 2.20
============

        New commands added:

Commands    Arguments    Action and value assigned to <dosvar>
--------    ---------    -------------------------------------
YYMMDD                   system date in 'yymmdd' format
VARCOPY     variable     contents of DOS environment variable 'variable'

XSET /CLEAR   will clear delete all variables from environment\r\n\n"

XSET /LOAD    will load variables from standard input.
              variables must have been saved with command 'SET'
              ex:   save variables with 'SET > SAVEFILE.VAR'
                  reload variables with 'XSET /LOAD < SAVEFILE.VAR'



        Enhancements:

Function 'PASSWD' accepts up to 127 characters

Function 'MATH'   accepts logical operators '= < > <= >='



Version 2.12
============

        Bug correction:  file functions returned TRUENAME.




Version 2.11
============

        Bug correction: the BYTEFREE command was sometimes return -1.




Version 2.10
============

        New commands added:

Commands    Arguments    Action and value assigned to <dosvar>
--------    ---------    -------------------------------------

ERRORLEVEL  none         errorlevel code of last command

BYTEFREE    [drive]      number of bytes free on specified (or current) drive

DAYOFWEEK                day in the week ( 0 = sunday,... )

CHANGE      s1 s2 {s3}   change <s1> by <s2> in <s3>

SEARCH      str1 {str2}  portion of <str1> matching <str2>


Version 2.03
============

        Bug correction: little problem appearing sometimes
                        with KEY command.

        Bug correction: garbage display when no prompt specified
                        with INPUT command.

        Bug correction: strange behaviour on certain machines
                        when invoking for the first time the
                        DENSITY command.

Version 2.02
============

        Bug correction: all INPUT commands where buggy 
                        (due to a compilation problem).

Version 2.01
============

        Bug correction: the command TRUENAME always returned an empty
                        string (due to a last minute change).

Version 2.0
===========

        New commands added:

Commands    Arguments    Action and value assigned to <dosvar>
--------    ---------    -------------------------------------

MIN       {str1...strn}    minimum or maximum of numbers or strings list
MAX       {num1...numn}    (one string may not contain <space> or <tab>)

FPATH       {file}       full pathname of a filename
FDRIVE      {file}       drive of a filename
FDIR        {file}       drive & directory of a filename
FEXT        {file}       extension of a file name (no period included)
FNAME       {file}       name of a file without extension
FXNAME      {file}       name & extension of a file
FSIZE       {file}       size of a file
TRUENAME    {file}       full truename of a file
LINE        n            read the <n>-th line from standard input



Version 1.1
===========

        First shareware version.
        

        
Version 1.0
===========

        Creation for personal use.
