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 ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 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) ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ o Preserve state of echo flag across batch calls. o Implementation of FOR command 20 Jul 1998 (John P Price ) ~~~~~~~~~~~~~~~~~~~~~~ o Fixed bug in DATE.C. o Fixed bug in LH.ASM. o Separated commands into individual files. 28 Jul 1998 (John P Price ) ~~~~~~~~~~~~~~~~~~~~~~ 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 ) ~~~~~~~~~~~~~~~~~~~~~~ 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 ) ~~~~~~~~~~~~~~~~~~~~~~ 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) ) ~~~~~~~~~~~~~~~~~~~~~~ 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) ) ~~~~~~~~~~~~~~~~~~~~~~ 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 ) ~~~~~~~~~~~~~~~~~~~~~~ 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. 30-Mar-1999 ReactOS CMD version 0.1 pre 2 (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.