Development & Contributing

Sources

The most current WinZsh sources are in a Git repository at Sourceforge.net®. To checkout a copy, run:

git://zsh-nt.git.sourceforge.net/gitroot/zsh-nt/zsh-nt

WinZsh shares a lot of code with the Windows port of tcsh, however the tcsh code has been developed further and is still currently maintained by the original author. Unfortunately tcsh doesn't have a public SCM repository, and most of the changes to the tcsh Windows port were not made in an SCM anyway, so I have created a git repository from the tcsh releases. This is intended as a reference to help find any interesting bits that can be ported back to WinZsh (such as the tcsh version of fork() that works on Win64). The repository can be checked out with:

git://zsh-nt.git.sourceforge.net/gitroot/zsh-nt/tcsh-nt

Line Endings: the project and the git repository use Unix LF line endings, not Windows CRLF line endings. If you intend to work on WinZsh sources, please set "git config core.autocrlf input" to ensure that LF endings are always commited to the repository.

Compiling

  1. Prerequisites:
    • Currently the source is only known to compile with Microsoft Visual C++ 6.0 (sorry). Note: MSVC9 currently compiles, but throws an exception during running.
    • Sed and awk are needed to generate some headers, ensure that these are in your path so that make can find them. Sed and (g|m|n)awk from the GnuWin32 project work fine.
  2. Download and extract the source.
  3. Open a cmd.exe prompt and cd into the Src directory. Run "vcvars32.bat" from your Visual C++ installation.
  4. Type "nmake -f ntport\Makefile.msvc MSVC=(6|9)", using your version of MSVC.
  5. To include debugging support, type "nmake -f ntport\Makefile.msvc6 MSVC=(6|9) DBG=1"

Contributing

Want to contribute? Great! Just download and start hacking, posting any questions, patches, etc. in the forums. See the roadmap below for some ideas of things to work on.

Brief Roadmap

Just a brief listing of the rough priority of tasks I'd like to work on

Short Term

  • Enable compiling with MSVC9 (the freely available MSVC 2008 Express Edition)
  • Enable compiling with MinGW
  • Update to zsh 3.0.8
  • Backport interesting bits from tcsh
  • Fix bugs!

Long Term

  • Replace the GPL termcap code for licensing reasons.
  • Update to the current version of zsh
  • Implement ZSHSUBSTHB, similar to tcsh's TCSHSUBSTHB