home *** CD-ROM | disk | FTP | other *** search
- Midnight Commander for Windows NT
- ---------------------------------
-
- 0. Hello
- 1. Compiling
- 2. Changes made
- 3. Windows '95
- 4. About this binary file.
-
- 0. Hello
- --------
- Hello, this is the Midnight Commander port to Windows NT. It is still an ALPHA
- version, with a lot of work to be done. Maybe you can help as an "alpha" tester
- or as a programmer. In either case you would like subscribe to mc-devel list
- (see readme files in main doc on how to do this) and contact us.
-
- 1. Compiling
- ------------
-
- 1.1. Compiler
- ----------------
- Microsoft Visual C++ for Windows NT version 1.1 was used. The provided makefile
- is for the visual IDE. As this is just for developing, it's not yet important
- to write an "external" makefile.
-
- During some early stage I also tried Watcom C/C++ 10.0, but finally abandoned
- it. The trouble with Watcom was that the IDE complained about the longnames
- (e.g. chmod.nt.c) and debugging was not much comfortable. Anyway if anybody
- is iterested in supporting Watcom, it's just writing a makefile and migrating
- some code in dirent.c (as Watcom already provides opendir/readdir/closedir).
- We can benefit with its optimization features.
- Anyway, I think code is quite ANSI. Please contact me if you would like support
- for another compiler brand.
-
- 1.2. General issues
- --------------------
- Preprocessor
- Define:
- LIBDIR
- _OS_NT - OS flag
- HAVE_CONFIG_H - config.h flag
- Dependencies:
- if you use MS VC, don't let IDE generate dependencies for
- you unless you add these files in MSVCINCL.DAT (the list of includes
- to be excluded from dependencies):
- param.h kd.h
- dir.h ndir.h
- mman.h mount.h
- vfs.h filsys.h
- statfs.h dustat.h
- statvfs.h mnttab.h
- wait.h fs_types.h
- fstyp.h ioctl.h
- termios.h select.h
-
- Includes:
- So as to avoid chaos in include files, I decided to create some
- fake includes for UNIX counterparts. The empty files you need to create are:
- pwd.h grp.h
- sys/param.h
-
- 1.3 Windowing Library
- --------------------------------
- Currently only support for S-lang windowing library is given. I know no curses
- public library ported to NT, and I think it is useless to port it now. There is,
- though still some work to be done with VK-to-Key code translation.
- To build please look at the port of the S-lang library. It consists of a few files
- you should add to the slang distribution. Look at slnttty.c for the support of
- mouse events.
-
- 2. Changes made
- ---------------
-
- 2.1. Changes to main code
- -------------------------
- They are enclosed in #ifdef _OS_NT blocks.
-
- Wrote something similar to statfs in UTIL.C
- Wrote truncate.
- Changed (almost) all references to "/" path slash with PATH_CHAR and strPATH_CHAR.
- Changed name of CONTROL_FILE.
- Changed name of shell and call to shell.
-
- In some cases we supressed 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 in NT. 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 supressed.
- - 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 3 files with so many changes that they have been moved to independent
- archives (or OS dependent).
- - Chmod.nt.c: this command will query and change attributes (hidden, system,
- archive,...). Maybe we should write a real chmod (and also a
- chown). It is not finished, but works almost fine. Look that
- the stat st_mode member is filled with attributes, not modes.
- - Cons.handler.nt.c: Supports same API as linux cons.handler.c. It allocates
- a new console buffer and switches between the two when doing a
- shell. The new allocated one is the used by Midnight commander.
- (look that to make this we should also redirect standard handles)
- - Key.nt.c: a static table maps Virtual Key codes to Curses-like Key codes.
- Also mouse events are supported.
- still preliminar.
-
- 2.3. New files
- --------------
- - drive.nt.c: A Change Drive command has been implemented. Two lines
- in main.c were included (in the left/right panel menus).
- The funcs drive_cmd_a/b are implemented in this new file.
- It will build a dialog with available drives as buttons.
- bug: too many drives are not supported (think just 7). have
- to rewrite to support more than one line.
-
- 2.4 Files not used
- ------------------
- Naturally, key.c chmod.c cons.handler.c cons.saver.c are not used in NT builds.
- Also: learn.c utilunix.c chown.c achown.c xcurses.c
-
- 3. Windows '95
- --------------
- It will run also on windows'95, but maybe need a pair of changes. keep waiting.
-
- 4. About this binary file. (Alexander Dong: ado@software-ag.de)
- -------------------------------------------
-
- I have produced this binary file (MC.EXE) with the version 3.5.25 and
- add the F11/F12 keys to enable the change of drives.
-
- It's only tested under Windows 95.
-
- Use at your own risk!
-
- Juan Grigera