------------------------------------------------------------------------
Support for Windows is broken since GNU Midnight Commander started using
glib.  If you want to revive the project, it may be your last chance. 
If nobody volunteers, all the code for the native Windows port will be
removed from the project.
------------------------------------------------------------------------



GNU Midnight Commander for Win32
--------------------------------

0. Introduction
1. Compiling
2. Changes made
3. Authors and maintainers


0. Introduction
---------------
Yes, Midnight Commander can be compiled for Win32 (all versions of
Microsoft Windows starting with Windows 95 for all platforms, except
Windows CE).  It may be tricky to compile, it may be buggy, but it should
be usable.  Maybe you can help as a beta tester or as a programmer.
In either case you would like subscribe to the mc-devel list (see README
and FAQ) and contact us.

Please note that Midnight Commander remains primarily a file manager for
UNIX-like systems.  You should not expect that it will work on your
system better than a file manager written specifically for your OS.


1. Compiling
------------


1.1. Compiler
-------------
If you really want to enjoy free software under your non-free OS,
you should try free compilers.  Two of them are supported: RSXNT and
MinGW.  Please visit their respective sites for more information.

RSXNT:  http://www.mathematik.uni-bielefeld.de/~rainer/
MinGW:  http://www.mingw.org/

MinGW is also included with Cygwin (http://www.cygwin.com/).

Cygwin environment is so close to UNIX, that it's possible to compile
GNU Midnight Commander in the same way as it's done in UNIX (see file
INSTALL for details).  However, you should realize that you would get a
UNIX program that has no idea about drives, Windows-style permissions
and some other Windows-specific features.  This is not the Win32 port
discussed in this document.

Speaking of non-free compilers, Microsoft Visual C++ (4.0 and above) and
Borland C++ are supported.  "Supported" means merely that there are
specific makefiles for those compilers, but it does not even assume that
they will compile GNU Midnight Commander out-of-box.


1.2. General issues
-------------------
See pc/README, pc/BUGS, pc/TODO for the information concerning current
state of the port.  You will need to hack the code a lot just to
compile it.


1.3 Windowing Library
---------------------
Currently only support for the S-Lang windowing library is provided.
There are curses clones ported to Win32, but I believe that since we
are not using autoconf for the Win32 port, we should avoid unnecessary
difficulties.

Currently the Win32 port only can use S-Lang included in this
distribution (see slang/ subdirectory).  This is a subset of S-Lang
distribution with some bugfixes and MC-specific code changes.


1.4 Features and Limitations
----------------------------
Internal editor is supported (including syntax highlighting).
Internal viewer is supported (including hex editor).
VFS (virtual file system) is not supported.
Concurrent subshell is not supported.


2. Changes made
---------------


2.1. Changes to main code
-------------------------
Changes in the main code are enclosed in #ifdef NATIVE_WIN32 blocks.

In some cases we suppressed code. This is temporal (so that mc can compile).
In the future we will provide fake or true interfaces for these features.
   - Links: creation and information on links are not supported.  We
            should provide a fake interface for the local filesystem and
            a true one for networked.
   - GID/UID queries (get_user, owner, preserve UID/GID on copy, ...).
   - Terminals: all the code directly done with terminals must be suppressed.
   - Signals: deleted.  Should support the native ones.
   - pipes: had some trouble in ext.c and with error_pipes but soon will be
            fixed.
   - Chown command: Not supported yet.


2.2. Files rewritten
--------------------
There are several files with so many changes that they have been moved
to pc/ subdirectory.  Our intention should be, however, to make most code
system-independent.  This would increase code reuse and maintainability.
See pc/ subdirectory for further details.


3. Authors and maintainers
--------------------------
The code is not actively maintained, but the patches are applied.
Please send your changes to the mc-devel list.
