FreeDOS Command Line Interface Development History
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

11/11/94 version 0.01
~~~~~~~~~~~~~~~~~~~~~
o  initial release.

01/01/95 version 0.10
~~~~~~~~~~~~~~~~~~~~~
o  removed some scaffolding.
o  modified CD.
o  added tab file completion.
o  added command line history.

01/15/95 version 0.20
~~~~~~~~~~~~~~~~~~~~~
o  formatted all existing source modules.
o  added prompt support.
o  added drive selection.
o  added dir command.
o  started this development log.

08/06/95 prerelease of version 0.30
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
o  reorganized code into separate source modules.
o  added batch processing support (thanks to Evan Jeffrey).
o  added exec code (thanks to Steffan Kaiser).
o  removed environment handling (thanks again to Steffan Kaiser)

        [ 08/08/95 -- Matt Rains ]
o  formatted this development log.
o  formatted all existing source modules so that they comply with recommended
        programming practice.
o  added MD command.
o  added RD command.
o  added VER command.
o  replaced CD command.
o  modified DIR command.
o  DIR now called regardless of other DIR.??? files. this is done because of
        exec() problems.

12/10/95 version 0.30
~~~~~~~~~~~~~~~~~~~~~
o  used Borland's spawnve to fix exec problem
o  fixed CD again so you don't need a space after it
o  couple of spelling fixes

12/14/95 version 0.31
~~~~~~~~~~~~~~~~~~~~~
o  modified cmdinput.c to work with non-standard screen sizes (see 28.com)
o  fixed a bug in history.c that made it not work when you hit the up arrow
   on the first line
o  fixed DIR to work a little more like MS-DOS's DIR (see internal.c)
o  fixed some code in where.c to make things a bit more efficient and nicer

01/06/96 version 0.40  (never released)
~~~~~~~~~~~~~~~~~~~~~
o  added redirection and piping support!!!  (see redir.c and command.c)
o  fixed a stupid pointer problem in where.c that was causing LOTS of
   problems in the strangest places...
o  added day of the week support to prompt.c (oops, that was already supposed
   to be there! :)
o  fixed and reorganized the EXEC code!!!  Thanks to Svante Frey!
o  reorganized command.c and internal.c to handle parsing internal commands
   more efficiently and consistently.
o  changed the behavior of MD, CD, RD to work without spaces (e.g. CD\DOS)
o  small changes here and there to make it work with redirection/piping
   (e.g. DIR only pauses if you're not doing redirection)

01/17/96 version 0.50
~~~~~~~~~~~~~~~~~~~~~
Version 0.40 was never released because I was home on Christmas vacation,
and I couldn't upload it.  By the time I got back to school, I had the
LOADHIGH patch from Svante Frey, so I decided to jump up to 0.50 without any
release of 0.40...       - Tim Norman

o  LOADHIGH/LOADFIX/LH support added!!!!  Many thanks go to Svante Frey!
o  bug fixed in command parsing that didn't handle / switches correctly...
o  removed debugging output from history.c

07/26/96 version 0.60
~~~~~~~~~~~~~~~~~~~~~
Lots of internal changes here...  Not much added to the interface.

o  Changed internals to use first,rest parameters instead of arrays of params
o  Fixed some bugs
o  Some other things I don't remember :)

07/26/96 version 0.61
~~~~~~~~~~~~~~~~~~~~~
Bugfixes

o  Added hook to the PATH command
o  Fixed CD.. bug

08/27/96 version 0.70
~~~~~~~~~~~~~~~~~~~~~
Finally added Oliver Mueller's ALIAS command!  Also numerous bug fixes.

o  Added ALIAS command
o  Removed support for - as a switch in LOADHIGH.C
o  Bugfixes in BATCH.C.  %0 was returning garbage
o  Removed lots of unused variables, reducing # of warnings when compiling
o  Other miscellaneous code clean-ups
o  Changed WHERE.C to use a little less memory

06/14/97 version 0.71
~~~~~~~~~~~~~~~~~~~~~
Lots of bug fixes, plus some additional features.

o  New DIR command.  Now more like MS-DOS's DIR.  /p supported, /s coming soon
o  bug fix in internal.c - parse_firstarg
o  Rewrote parser in batch.c (Steffan Kaiser)
o  Ctrl-Break checking in various places (Steffan Kaiser)
o  Error level setting/checking (%? in batch files) (Steffan Kaiser)
o  bug fix in cmdinput.c ("%i" on command-line caused weird behavior)
o  bug fix in where.c (first item in path wasn't searched)

07/12/97 version 0.72
~~~~~~~~~~~~~~~~~~~~~
More bug fixes and code cleanup

o  Rewrote cmdinput.c to be more efficient (Marc Desrochers)
o  Added insert/overstrike modes (Marc Desrochers)
o  Replaced findxy() with pointers into BIOS (maxx, maxy) (Marc Desrochers)
o  Fixed bug that disallowed listing of root directories
o  Fixed bug that didn't search the first path (again!)

07/13/97 version 0.72b
~~~~~~~~~~~~~~~~~~~~~~
Disabled a feature that caused a crash on some machines.

o  Replaced setcursor calls in cmdinput.c with _setcursortype
o  Added dir.c to the distribution (was left out in 0.72)

07/01/98 version 0.73 (Rob Lake)
~~~~~~~~~~~~~~~~~~~~~~
o New DIR commands supported: /S, /B, /L, /A and /W.
  (/R changed to /S).  Also /? added.
o Supports DIRCMD in environment.
o Supports turning off commands with hyphen (ex. /-S
  turns off recursive listing)
o Changed error messages for DIR and DEL to more MS-DOS'ish
o Moved error messages from DIR.C and DEL.C to COMMAND.H
  (more may go there soon)
o Fixed bug that caused dir *.ext/X not to work (no spaces
  between filespec and slash)
o Added wildcard support for DEL command
o Added prompt and help switch for DEL command, /P and /?
  respectively.
o Added support for /C when envoking the shell
o Added /P support when Kernel loads shell.  This means
  the shell now is permanent and runs the autoexec.bat
  (/E is not implemented)
o Added my name (Rob Lake) to the developer listing
o Changed version routine to print out copyright notice
  with no args, and with appropriate switches, warranty
  and redistribution notices and developer listing

07/08/1998 version 0.74 (John P. Price (linux-guru@gcfl.net))
~~~~~~~~~~~~~~~~~~~~~~~~
COMMAND.C/COMMAND.H:
o Now sets COMSPEC environment variable
o misc clean up and optimization
o added date, time and type commands
o changed to using spawnl instead of exec.  exec does not copy the
  environment to the child process!
DIR.C
o removed extra returns; closer to MSDOS
o fixed wide display so that an extra return is not displayed when
  there is five filenames in the last line.
ENVIRON.C
o commented out show_environment function.  Not used anymore.
INTERAL.C
o removed call to show_environment in set command.
o moved test for syntax before allocating memory in set command.
o misc clean up and optimization.

o created DATE.C
o created TIME.C
o created TYPE.C

07/08/1998 version 0.74b (John P. Price (linux-guru@gcfl.net))
~~~~~~~~~~~~~~~~~~~~~~~~
COMMAND.C
o fixed call to spawnl so that it would pass command line arguments
  correctly.

07/12/98 version 0.74c (Rob Lake rlake@cs.mun.ca)
~~~~~~~~~~~~~~~~~~~~~~
Various Files:
o removed redundant use of error message defines and moved
  error printing calls to ERROR.C to reduced program size.

o created MISC.C
o created ERR_HAND.C/H
o created ERROR.C

07/13/98 version 0.74d (Rob Lake rlake@cs.mun.ca)
~~~~~~~~~~~~~~~~~~~~~~
INTERNAL.C
o removed most of the commands and placed them in there own file
  -- del, ren, set and ver
o created DEL.C, REN.C SET.C and VER.C
o fixed bug that caused del not to delete files with no attributes
o the critical error handler count number of times called, autofails
  at 5 calls


16 Jul 1998 (Hans B Pufal <hansp@digiweb.com>)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
batch.c
  A new version, implements CALL, ECHO, GOT, IF, PAUSE, SHIFT and
  BEEP. There is a stub for FOR but that's all.

cmdtable.c
  New file to keep the internal command table. I plan on getting rid
  of the table real soon now and replacing it with a dynamic
  mechanism.

command.c
  A new (improved ;) version. Conforms closely to MS-DOS specs.
  Cleaned up (and fixed) the redirection handler.

command.h
  Version D with changes. Look for the HBP tag.

redir.c
  Modified file, now supports append redirects.


16 Jul 1998 (Rob Lake rlake@cs.mun.ca)
~~~~~~~~~~~~~~~~~~~~~~
Added TRUENAME command.


19 Jul 1998 (Hans B Pufal) <hansp@digiweb.com>)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
o Preserve state of echo flag across batch calls.
o Implementation of FOR command


20 Jul 1998 (John P Price <linux-guru@gcfl.net>)
~~~~~~~~~~~~~~~~~~~~~~
o Fixed bug in DATE.C.
o Fixed bug in LH.ASM.
o Separated commands into individual files.


28 Jul 1998 (John P Price <linux-guru@gcfl.net>)
~~~~~~~~~~~~~~~~~~~~~~
o Added CLS command.
o Put ifdef's around all commands and added include file config.h
  Now you can define exact what commands you want to include in
  command.com.
o Also added ifdefs for optional features: aliases, command history
  and filename completion.
o Added display of available internal commands and options at startup.


29 Jul 1998 (Rob Lake rlake@cs.mun.ca)
~~~~~~~~~~~~~~~~~~~~~~
o changed date.c and time.c, and wrote datefunc.c and timefunc.c to
  impliment _dos_getdate, _dos_setdate, _dos_gettime and _dos_settime.
  This is the first of many steps to make the shell compatible under
  Pacific C.

30-Jul-1998 (John P Price <linux-guru@gcfl.net>)
~~~~~~~~~~~~~~~~~~~~~~
o Changed filename completion so that a second TAB displays a list of
  matching filenames!
o made filename be lower case if last character typed is lower case.
o Moved filename completion code to filecomp.c.
o Change ver command to display email address to report bugs, and the
  web page address for updates.
o fixed so that it find_which returns NULL if filename is not
  executable (does not have .bat, .com, or .exe extension).  Before
  command would to execute any file with any extension. (opps!)

30-Jul-1998 (John P Price <linux-guru@gcfl.net>)
~~~~~~~~~~~~~~~~~~~~~~
o Fixed bug where if you typed something, then hit HOME, then tried to
  type something else in insert mode, it locked up.
o Changed default insert mode to on.  There should be a way to change
  this.  Maybe options to doskey command.
o Added VERIFY command

02-Aug-1998 (Hans B Pufal) <hansp@digiweb.com>)
~~~~~~~~~~~~~~~~~~~~~~
o batch.c: Fixed bug in ECHO flag restoration at exit from batch file
o command.c: Fixed return value when called with /C option
o Terminate label on first space character, use only first 8 chars of
  label string

04-Aug-1998 (Hans B Pufal) <hansp@digiweb.com>)
~~~~~~~~~~~~~~~~~~~~~~
o call.c: added lines to initialize for pointers.  This fixed the
  lock-up that happened sometimes when calling a batch file from
  another batch file.

07-Aug-1998 (John P Price <linux-guru@gcfl.net>)
~~~~~~~~~~~~~~~~~~~~~~
o Fixed carrage return output to better match MSDOS with echo on or off.


07-Dec-1998 ReactOS CMD version 0.0.1 (Eric Kohl)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
o First test release.
o Added internal ATTRIB command.

11-Dec-1998 ReactOS CMD version 0.0.2 (Eric Kohl)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
o Fixed bug in ALIAS. CMD crashed when you tried to remove an alias.
o Fixed bug in split(). Added freep(). This fixed the DEL command.
o Improved ATTRIB command.
o Added most help texts.
o Fixed recursive DIR ("dir /s").
o Fixed DATE and TIME command. Now they accept values when used
  without parameter.
o Implemented LABEL command.

05-Jan-1999 ReactOS CMD version 0.0.3 (Eric Kohl)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
o Added COLOR command and "/t" option.
o Cursor shows insert/overwrite mode.
o COMSPEC environment variable is set upon startup.
o Started COPY command.
o Started MOVE command.
o Added directory stack (PUSHD and POPD commands).
o Added support for file names or paths that contain spaces
  (quoted paths / file names).
o Added recursion to ATTRIB command.
o Added locale support for DIR, DATE, TIME and PROMPT.
o Fixed VERIFY.

10-Feb-1999 ReactOS CMD version 0.0.4 (Eric Kohl)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
o "?" lists all available commands.
o Most commands are unicode and redirection aware now.
o Input-, Output- and Error-Redirections works with most commands.
o ATTRIB and DEL can handle multiple filenames now.
o Fixed handling of environment variables.
o Added CHCP command.
o Fixed keyboard input bug.
o Rewrote DEL and MOVE commands.

28-Dec-1999 ReactOS CMD version 0.1 (Eric Kohl)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
o Cleaned up DIR command.
o Searching for executables in the right order.
o Fixed some little but nasty bugs.
o Added TITLE command. Thanks to Emanuele Aliberti!
o Added "/Q", "/W" and "/Z" options to DEL command.
o Added CHOICE, TIMER, FREE and MEMORY commands.
o Added MSGBOX command (not available under ReactOS).
o Added and fixed missing help texts.
o Fixed bugs in MD and RD that crashed cmd when no directory was specified.
o Improved history support.
o Improved COLOR command.

09-Apr-2000 ReactOS CMD version 0.1 (Eric Kohl)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
o Fixed bug in COPY command. CMD crashed if source file didn't exist.

13-Jul-2000 ReactOS CMD version 0.1.1 (Eric Kohl)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
o Implemented 'ECHO.' and 'ECHOERR.' commands.
