Notes from contributors....

Notes from Hans B Pufal <hansp@digiweb.com>:

Here is my package of changes to COMMAND, my coding was based on version
74B, but I downloaded version 74D and modified my files accordingly.

I use BC 4.5 and had some problems with the makefile, it was generating
a .COM file of 102Kb!. I have included my modified makefile for your
reference.

For the files I have modified, I have reformatted them to my style (sorry).
Take a look and see if you can live with it. I find that procedure headers
are easier to find and that putting the history in reverse order helps
quickly find the latest changes.



   File   Description

   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  Your version D with changes. Look for the HBP tag.

   makefile My version of the makefile, for BC 4.5. Sorry don't use
    the IDE so could not make a .prj file.

   notes.txt  This file...

   redir.c  Modified file, now supports append redirects.

   where.c  Modified, made it a little safer and quicker...


The test subdirectory has some batch file tests. I run T.BAT which uses
runs the test and sends output to a file. The tests are run twice once
for a COMMAND.COM on the patch (presumably ours) and once with
C:\COMMAND.COM, presumed to be the MSDOS version. Compare the outputs in
MSDOS.OUT and FDOS.OUT to look for any problems.

That's about it, ask if you have any questions.

Regards,

Hans <mailto:hansp@digiweb.com>

-----------------------------------------------------------------------------

10-Aug-1998 0.75b Steffen Kaiser <skaise2a@smail.inf.fh-rhein-sieg.de>

+ Corrected ^Break handling in batch.c
  Try something like this:
  ===== File batch1.bat
  @echo off
  echo Hi Batch1.bat
  echo Hi Batch1.bat
  ===== File batch2.bat
  @echo off
  :loop
  call batch1.bat
  goto loop
  =====
  The press ^Break or ^C. Most of the time you are asked to
  terminate BATCH1.BAT (Y/N/A), if you press 'Y', you only terminate
  BATCH1, but BATCH2 continue. But if you press 'A' (or ^C),
  even BATCH2 is terminated.

+ added modifyable batch scripts (following the standard)

+ bug: nested comments in old split()

+ bug: DEL memory allocation

+ added ^Break checks to cmd_type(), cmd_dir()

+ added: chkCBreak(0) [aka "cbreak"] is a generic form that autodetects
  if currently a batchfile is active and displays the batchfile
  prompt, if so.
  The batchfile prompt now displays the name of the batchfile.


+ echo off on command line --> frozen computer

+ The initialization code init() is still broken (included in my last
  patch).

+ In init() the errorlevel of the processed command is returned.
  This is a nice feature, however, MS COMMAND returns '0' to
  indicate a successful run of COMMAND itself. It's non-standard,
  offer an option.

+ fixed DEL char **arg allocation --> allocating a dynamic memory area
  for each arg[] element, however, split() simply overwrites them and
  they are no dynamic pointers for their own.

+ The DEL access()/stat() stuff is still broken (included in my last
  buglist report)

+ The find_which() is still broken as it searches through PATH prior
  testing all extensions within one directory.

+ Someone removed the ^Break catcher. It makes not much sense to incorporate
  ^Break checks, but running without a ^C catcher. Therefore I have
  re-added the catcher, this time using signals (the DOS emulation of
  them, however).

-----------------------------------------------------------------------------

