1FreeDOS Command Line Interface Development History 2~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3 411/11/94 version 0.01 5~~~~~~~~~~~~~~~~~~~~~ 6o initial release. 7 801/01/95 version 0.10 9~~~~~~~~~~~~~~~~~~~~~ 10o removed some scaffolding. 11o modified CD. 12o added tab file completion. 13o added command line history. 14 1501/15/95 version 0.20 16~~~~~~~~~~~~~~~~~~~~~ 17o formatted all existing source modules. 18o added prompt support. 19o added drive selection. 20o added dir command. 21o started this development log. 22 2308/06/95 prerelease of version 0.30 24~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 25o reorganized code into separate source modules. 26o added batch processing support (thanks to Evan Jeffrey). 27o added exec code (thanks to Steffan Kaiser). 28o removed environment handling (thanks again to Steffan Kaiser) 29 30 [ 08/08/95 -- Matt Rains ] 31o formatted this development log. 32o formatted all existing source modules so that they comply with recommended 33 programming practice. 34o added MD command. 35o added RD command. 36o added VER command. 37o replaced CD command. 38o modified DIR command. 39o DIR now called regardless of other DIR.??? files. this is done because of 40 exec() problems. 41 4212/10/95 version 0.30 43~~~~~~~~~~~~~~~~~~~~~ 44o used Borland's spawnve to fix exec problem 45o fixed CD again so you don't need a space after it 46o couple of spelling fixes 47 4812/14/95 version 0.31 49~~~~~~~~~~~~~~~~~~~~~ 50o modified cmdinput.c to work with non-standard screen sizes (see 28.com) 51o fixed a bug in history.c that made it not work when you hit the up arrow 52 on the first line 53o fixed DIR to work a little more like MS-DOS's DIR (see internal.c) 54o fixed some code in where.c to make things a bit more efficient and nicer 55 5601/06/96 version 0.40 (never released) 57~~~~~~~~~~~~~~~~~~~~~ 58o added redirection and piping support!!! (see redir.c and command.c) 59o fixed a stupid pointer problem in where.c that was causing LOTS of 60 problems in the strangest places... 61o added day of the week support to prompt.c (oops, that was already supposed 62 to be there! :) 63o fixed and reorganized the EXEC code!!! Thanks to Svante Frey! 64o reorganized command.c and internal.c to handle parsing internal commands 65 more efficiently and consistently. 66o changed the behavior of MD, CD, RD to work without spaces (e.g. CD\DOS) 67o small changes here and there to make it work with redirection/piping 68 (e.g. DIR only pauses if you're not doing redirection) 69 7001/17/96 version 0.50 71~~~~~~~~~~~~~~~~~~~~~ 72Version 0.40 was never released because I was home on Christmas vacation, 73and I couldn't upload it. By the time I got back to school, I had the 74LOADHIGH patch from Svante Frey, so I decided to jump up to 0.50 without any 75release of 0.40... - Tim Norman 76 77o LOADHIGH/LOADFIX/LH support added!!!! Many thanks go to Svante Frey! 78o bug fixed in command parsing that didn't handle / switches correctly... 79o removed debugging output from history.c 80 8107/26/96 version 0.60 82~~~~~~~~~~~~~~~~~~~~~ 83Lots of internal changes here... Not much added to the interface. 84 85o Changed internals to use first,rest parameters instead of arrays of params 86o Fixed some bugs 87o Some other things I don't remember :) 88 8907/26/96 version 0.61 90~~~~~~~~~~~~~~~~~~~~~ 91Bugfixes 92 93o Added hook to the PATH command 94o Fixed CD.. bug 95 9608/27/96 version 0.70 97~~~~~~~~~~~~~~~~~~~~~ 98Finally added Oliver Mueller's ALIAS command! Also numerous bug fixes. 99 100o Added ALIAS command 101o Removed support for - as a switch in LOADHIGH.C 102o Bugfixes in BATCH.C. %0 was returning garbage 103o Removed lots of unused variables, reducing # of warnings when compiling 104o Other miscellaneous code clean-ups 105o Changed WHERE.C to use a little less memory 106 10706/14/97 version 0.71 108~~~~~~~~~~~~~~~~~~~~~ 109Lots of bug fixes, plus some additional features. 110 111o New DIR command. Now more like MS-DOS's DIR. /p supported, /s coming soon 112o bug fix in internal.c - parse_firstarg 113o Rewrote parser in batch.c (Steffan Kaiser) 114o Ctrl-Break checking in various places (Steffan Kaiser) 115o Error level setting/checking (%? in batch files) (Steffan Kaiser) 116o bug fix in cmdinput.c ("%i" on command-line caused weird behavior) 117o bug fix in where.c (first item in path wasn't searched) 118 11907/12/97 version 0.72 120~~~~~~~~~~~~~~~~~~~~~ 121More bug fixes and code cleanup 122 123o Rewrote cmdinput.c to be more efficient (Marc Desrochers) 124o Added insert/overstrike modes (Marc Desrochers) 125o Replaced findxy() with pointers into BIOS (maxx, maxy) (Marc Desrochers) 126o Fixed bug that disallowed listing of root directories 127o Fixed bug that didn't search the first path (again!) 128 12907/13/97 version 0.72b 130~~~~~~~~~~~~~~~~~~~~~~ 131Disabled a feature that caused a crash on some machines. 132 133o Replaced setcursor calls in cmdinput.c with _setcursortype 134o Added dir.c to the distribution (was left out in 0.72) 135 13607/01/98 version 0.73 (Rob Lake) 137~~~~~~~~~~~~~~~~~~~~~~ 138o New DIR commands supported: /S, /B, /L, /A and /W. 139 (/R changed to /S). Also /? added. 140o Supports DIRCMD in environment. 141o Supports turning off commands with hyphen (ex. /-S 142 turns off recursive listing) 143o Changed error messages for DIR and DEL to more MS-DOS'ish 144o Moved error messages from DIR.C and DEL.C to COMMAND.H 145 (more may go there soon) 146o Fixed bug that caused dir *.ext/X not to work (no spaces 147 between filespec and slash) 148o Added wildcard support for DEL command 149o Added prompt and help switch for DEL command, /P and /? 150 respectively. 151o Added support for /C when invoking the shell 152o Added /P support when Kernel loads shell. This means 153 the shell now is permanent and runs the autoexec.bat 154 (/E is not implemented) 155o Added my name (Rob Lake) to the developer listing 156o Changed version routine to print out copyright notice 157 with no args, and with appropriate switches, warranty 158 and redistribution notices and developer listing 159 16007/08/1998 version 0.74 (John P. Price (linux-guru@gcfl.net)) 161~~~~~~~~~~~~~~~~~~~~~~~~ 162COMMAND.C/COMMAND.H: 163o Now sets COMSPEC environment variable 164o misc clean up and optimization 165o added date, time and type commands 166o changed to using spawnl instead of exec. exec does not copy the 167 environment to the child process! 168DIR.C 169o removed extra returns; closer to MSDOS 170o fixed wide display so that an extra return is not displayed when 171 there is five filenames in the last line. 172ENVIRON.C 173o commented out show_environment function. Not used anymore. 174INTERAL.C 175o removed call to show_environment in set command. 176o moved test for syntax before allocating memory in set command. 177o misc clean up and optimization. 178 179o created DATE.C 180o created TIME.C 181o created TYPE.C 182 18307/08/1998 version 0.74b (John P. Price (linux-guru@gcfl.net)) 184~~~~~~~~~~~~~~~~~~~~~~~~ 185COMMAND.C 186o fixed call to spawnl so that it would pass command line arguments 187 correctly. 188 18907/12/98 version 0.74c (Rob Lake rlake@cs.mun.ca) 190~~~~~~~~~~~~~~~~~~~~~~ 191Various Files: 192o removed redundant use of error message defines and moved 193 error printing calls to ERROR.C to reduced program size. 194 195o created MISC.C 196o created ERR_HAND.C/H 197o created ERROR.C 198 19907/13/98 version 0.74d (Rob Lake rlake@cs.mun.ca) 200~~~~~~~~~~~~~~~~~~~~~~ 201INTERNAL.C 202o removed most of the commands and placed them in there own file 203 -- del, ren, set and ver 204o created DEL.C, REN.C SET.C and VER.C 205o fixed bug that caused del not to delete files with no attributes 206o the critical error handler count number of times called, autofails 207 at 5 calls 208 209 21016 Jul 1998 (Hans B Pufal <hansp@digiweb.com>) 211~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 212batch.c 213 A new version, implements CALL, ECHO, GOT, IF, PAUSE, SHIFT and 214 BEEP. There is a stub for FOR but that's all. 215 216cmdtable.c 217 New file to keep the internal command table. I plan on getting rid 218 of the table real soon now and replacing it with a dynamic 219 mechanism. 220 221command.c 222 A new (improved ;) version. Conforms closely to MS-DOS specs. 223 Cleaned up (and fixed) the redirection handler. 224 225command.h 226 Version D with changes. Look for the HBP tag. 227 228redir.c 229 Modified file, now supports append redirects. 230 231 23216 Jul 1998 (Rob Lake rlake@cs.mun.ca) 233~~~~~~~~~~~~~~~~~~~~~~ 234Added TRUENAME command. 235 236 23719 Jul 1998 (Hans B Pufal) <hansp@digiweb.com>) 238~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 239o Preserve state of echo flag across batch calls. 240o Implementation of FOR command 241 242 24320 Jul 1998 (John P Price <linux-guru@gcfl.net>) 244~~~~~~~~~~~~~~~~~~~~~~ 245o Fixed bug in DATE.C. 246o Fixed bug in LH.ASM. 247o Separated commands into individual files. 248 249 25028 Jul 1998 (John P Price <linux-guru@gcfl.net>) 251~~~~~~~~~~~~~~~~~~~~~~ 252o Added CLS command. 253o Put ifdef's around all commands and added include file config.h 254 Now you can define exact what commands you want to include in 255 command.com. 256o Also added ifdefs for optional features: aliases, command history 257 and filename completion. 258o Added display of available internal commands and options at startup. 259 260 26129 Jul 1998 (Rob Lake rlake@cs.mun.ca) 262~~~~~~~~~~~~~~~~~~~~~~ 263o changed date.c and time.c, and wrote datefunc.c and timefunc.c to 264 implement _dos_getdate, _dos_setdate, _dos_gettime and _dos_settime. 265 This is the first of many steps to make the shell compatible under 266 Pacific C. 267 26830-Jul-1998 (John P Price <linux-guru@gcfl.net>) 269~~~~~~~~~~~~~~~~~~~~~~ 270o Changed filename completion so that a second TAB displays a list of 271 matching filenames! 272o made filename be lower case if last character typed is lower case. 273o Moved filename completion code to filecomp.c. 274o Change ver command to display email address to report bugs, and the 275 web page address for updates. 276o fixed so that it find_which returns NULL if filename is not 277 executable (does not have .bat, .com, or .exe extension). Before 278 command would to execute any file with any extension. (opps!) 279 28030-Jul-1998 (John P Price <linux-guru@gcfl.net>) 281~~~~~~~~~~~~~~~~~~~~~~ 282o Fixed bug where if you typed something, then hit HOME, then tried to 283 type something else in insert mode, it locked up. 284o Changed default insert mode to on. There should be a way to change 285 this. Maybe options to doskey command. 286o Added VERIFY command 287 28802-Aug-1998 (Hans B Pufal) <hansp@digiweb.com>) 289~~~~~~~~~~~~~~~~~~~~~~ 290o batch.c: Fixed bug in ECHO flag restoration at exit from batch file 291o command.c: Fixed return value when called with /C option 292o Terminate label on first space character, use only first 8 chars of 293 label string 294 29504-Aug-1998 (Hans B Pufal) <hansp@digiweb.com>) 296~~~~~~~~~~~~~~~~~~~~~~ 297o call.c: added lines to initialize for pointers. This fixed the 298 lock-up that happened sometimes when calling a batch file from 299 another batch file. 300 30107-Aug-1998 (John P Price <linux-guru@gcfl.net>) 302~~~~~~~~~~~~~~~~~~~~~~ 303o Fixed carriage return output to better match MSDOS with echo on or off. 304 305 30607-Dec-1998 ReactOS CMD version 0.0.1 (Eric Kohl) 307~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 308o First test release. 309o Added internal ATTRIB command. 310 31111-Dec-1998 ReactOS CMD version 0.0.2 (Eric Kohl) 312~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 313o Fixed bug in ALIAS. CMD crashed when you tried to remove an alias. 314o Fixed bug in split(). Added freep(). This fixed the DEL command. 315o Improved ATTRIB command. 316o Added most help texts. 317o Fixed recursive DIR ("dir /s"). 318o Fixed DATE and TIME command. Now they accept values when used 319 without parameter. 320o Implemented LABEL command. 321 32205-Jan-1999 ReactOS CMD version 0.0.3 (Eric Kohl) 323~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 324o Added COLOR command and "/t" option. 325o Cursor shows insert/overwrite mode. 326o COMSPEC environment variable is set upon startup. 327o Started COPY command. 328o Started MOVE command. 329o Added directory stack (PUSHD and POPD commands). 330o Added support for file names or paths that contain spaces 331 (quoted paths / file names). 332o Added recursion to ATTRIB command. 333o Added locale support for DIR, DATE, TIME and PROMPT. 334o Fixed VERIFY. 335 33610-Feb-1999 ReactOS CMD version 0.0.4 (Eric Kohl) 337~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 338o "?" lists all available commands. 339o Most commands are unicode and redirection aware now. 340o Input-, Output- and Error-Redirections works with most commands. 341o ATTRIB and DEL can handle multiple filenames now. 342o Fixed handling of environment variables. 343o Added CHCP command. 344o Fixed keyboard input bug. 345o Rewrote DEL and MOVE commands. 346 34728-Dec-1999 ReactOS CMD version 0.1 (Eric Kohl) 348~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 349o Cleaned up DIR command. 350o Searching for executables in the right order. 351o Fixed some little but nasty bugs. 352o Added TITLE command. Thanks to Emanuele Aliberti! 353o Added "/Q", "/W" and "/Z" options to DEL command. 354o Added CHOICE, TIMER, FREE and MEMORY commands. 355o Added MSGBOX command (not available under ReactOS). 356o Added and fixed missing help texts. 357o Fixed bugs in MD and RD that crashed cmd when no directory was specified. 358o Improved history support. 359o Improved COLOR command. 360 36109-Apr-2000 ReactOS CMD version 0.1 (Eric Kohl) 362~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 363o Fixed bug in COPY command. CMD crashed if source file didn't exist. 364 36513-Jul-2000 ReactOS CMD version 0.1.1 (Eric Kohl) 366~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 367o Implemented 'ECHO.' and 'ECHOERR.' commands. 368