Notes about the Win32 version of noweb.
=======================================

The supplied executable are necessary to use noweb under Win95 or NT.
To install noweb on Win32 you can use the following steps:

1- Download the source distribution from CTAN/web/noweb/src
2- Download the DOS version of noweb from CTAN/web/noweb/binaries/dos-(version number)
3- Download the Win32 executables from CTAN/web/noweb/binaries/win32-(version number)
4- Install the source distribution
5- Install the DOS distribution
6- Unzip the Win32 binaries overwriting the DOS ones. The only files affected are
      nt.exe         notangle
      markup.exe     noweb markup processor
      mnt.exe        multiple notangle
      finduses.exe   index processor
   Note that the archive doesn't include a directory so the files will be
   expanded in the current dir.

The Win32 executables support long filenames and don't have the 640k
memory limit.  If you have any problem with them try to find the
solution by yourself. If you're really desperate send me a message at
pciccone@borland.com.

Although I used the Win32 executables on a real project for months no
warranty is implied. The executables are provided "AS IS". The entire
risk as to the equality and performance of these executables is with
you. Should the programs prove defective, you assume the cost of all
the necessary serving, repair or correction.


                                            Paolo Ciccone

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

In April 2004, Kevin Quick had this to add:

I started with the nwdosbin.zip, nwdossup.zip, and nw_win32.zip
files I downloaded from your web site, but found myself having
to make a few tweaks to get things fully operational and
integrated into the windows environment:

* The nwmac.tex and noweb.sty packaged in nwdosbin.zip are a bit
  old (specifically they didn't support \setcodemargin) so they
  needed to be replaced with more recent versions from the linux
  distribution.  As such, you may want to make these more clearly
  available from the top level of the downloads section of the
  web site.

* It's also helpful to note that installing nwmac.tex and noweb.sty
  into "\localtexmf\tex\generic" (assuming a standard Windows MiKTeX
  installation) helps in getting them read automatically.

* There were a couple of issues in passing the -L options for notangle
  operations.  I've detailed these below and included a modified
  NOTANGLE.BAT file (in this directory) that addresses these issues.

  * The NOTANGLE.BAT immediately re-invokes the perl interpreter on
    its own embedded perl script, but fails to quote the arguments
    when passing them to the perl script.  If -L contains spaces,
    this causes it to turn into multiple arguments.  Adding quotes
    around the argument specifications on the perl invocation fixes
    this, along with using the correct quoting syntax (assuming C
    code chunks):

       c:\> notangle -L\"#line %L \"%F\"%N\" ....

  * Note that both sets of quotes need to be escaped; this doesn't work
    under Unix, so the command format is necessarily slightly different
    between the two environments.

  * The second problem is that if the noweb input file to notangle includes
    a path specification, that specification will be replaced verbatim
    for %F substitution, but the Windows directory separator ("\") is
    not the same as the ISO C #file separator ("/").  Ultimately this
    should probably be fixed in the NT.EXE utility, but it was easy enough
    to address this in the NOTANGLE.BAT perl code (although the result is
    not 100% foolproof, it should handle standard/normal notangle 
    operations).  If NT.EXE is updated accordingly, this can be removed 
    from the perl code (although it might be a per-language issue... I 
    don't know enough about how other languages address this issue).

  * Finally, it turns out that while you CAN get MS Visual Studio to
    invoke notangle as part of its build operations, there unfortunately
    appears to be some additional command-line parsing performed in
    Visual Studio, so the above doesn't work (more specifically, %L 
    seems to cause thorough confusion).  So I took the liberty of
    adding a new option "-cppline" that generates C/C++ #line 
    directives without requiring complex command-line syntax settings.

* Using NoWeb with MS Visual Studio.  After creating a project, Add a
  Text file to the project, selecting the .nw file.  Then in the Files
  tree view on in the left panel, right-click the .nw file and select
  Settings from the popup menu.  In the General pane, select the
  Always Use Custom Build box, and a Custom Build pane will be added.
  In that pane, the Commands window should contain the notangle
  commands needed (e.g. 
       notangle -Rnwtest.cpp -cppline $(InputPath) > nwtest.cpp
  and in the Outputs window list each of the files generated by
  the notangle operations (e.g. "nwtest.cpp").  MSVS appears to
  correlate the output files to the C files and perform the 
  notangles before the compiles.

* For the MS Visual Studio integration, there are still some gotchas,
  but overall it works well.  Specifically, if the C files contain the
  right #line directives (via -cppline) then all the cross referencing
  works right (double clicking on compile errors, setting breakpoints
  in and stepping through the .nw file, etc.)

* Any filter must be an .EXE file apparently.  You cannot invoke a .BAT
  file as a filter, and invoking files via extension association seems 
  to have problems in some configurations with stdin handling.

