mirror of https://github.com/MidnightCommander/mc
Merge branch '3960_remove_mmap'
Signed-off-by: Yury V. Zaytsev <yury@shurup.com>
This commit is contained in:
commit
b921ad32fc
13
configure.ac
13
configure.ac
|
@ -320,19 +320,6 @@ dnl replacing lstat with statlstat on sco makes it more portable between
|
|||
dnl sco clones
|
||||
AC_CHECK_FUNCS(statlstat)
|
||||
|
||||
dnl Overriding mmap support. This has to be before AC_FUNC_MMAP is used.
|
||||
dnl We use only part of the functionality of mmap, so on AIX,
|
||||
dnl it's possible to use mmap, even if it doesn't pass the autoconf test.
|
||||
AC_ARG_WITH([mmap],
|
||||
AS_HELP_STRING([--with-mmap], [Use the mmap call @<:@yes if found@:>@]))
|
||||
if test x$with_mmap != xno; then
|
||||
if test x$with_mmap = x; then
|
||||
AC_FUNC_MMAP
|
||||
else
|
||||
AC_DEFINE(HAVE_MMAP, 1)
|
||||
fi
|
||||
fi
|
||||
|
||||
mc_GET_FS_INFO
|
||||
|
||||
|
||||
|
|
234
doc/INSTALL
234
doc/INSTALL
|
@ -1,13 +1,5 @@
|
|||
This file contains:
|
||||
|
||||
- Build requirements for GNU Midnight Commander
|
||||
- Installation instructions for GNU Midnight Commander
|
||||
- Where to get more information on GNU Midnight Commander
|
||||
- Notes about GNU Midnight Commander installation
|
||||
- Obtaining related software
|
||||
|
||||
Build requirements for GNU Midnight Commander
|
||||
----------------------------------------------------
|
||||
---------------------------------------------
|
||||
|
||||
- glibc
|
||||
- gcc
|
||||
|
@ -26,6 +18,17 @@ Build requirements for GNU Midnight Commander
|
|||
Installation instructions for GNU Midnight Commander
|
||||
----------------------------------------------------
|
||||
|
||||
Midnight Commander is written in a portable manner and uses GNU Autoconf
|
||||
for configuration, so it is expected to compile without changes on many
|
||||
other operating systems.
|
||||
|
||||
If you are installing from an official tarball, it already contains
|
||||
pre-bootstrapped autotools build system (specifically the `configure'
|
||||
script). In the case that you are installing from a version control
|
||||
checkout, you need to bootstrap the build system yourself first using
|
||||
the `autogen.sh' script. Note that to do this you would need to install
|
||||
the autotools suite first and not only direct mc build dependencies.
|
||||
|
||||
The `configure' shell script attempts to guess correct values for
|
||||
various system-dependent variables used during compilation, and creates
|
||||
the makefiles. It also creates a file `config.status' that you can run
|
||||
|
@ -36,14 +39,7 @@ To compile this package:
|
|||
1. Configure the package for your system.
|
||||
|
||||
Normally, you just `cd' to the directory containing the package's source
|
||||
code and type `./configure'. If you're using `csh' on an old version of
|
||||
SystemV, you might need to type `sh configure' instead to prevent `csh'
|
||||
from trying to execute `configure' itself. Under AIX, you may need to
|
||||
use ksh instead of sh.
|
||||
|
||||
Running `configure' takes a while. While it is running, it prints some
|
||||
messages that tell what it is doing. If you don't want to see any
|
||||
messages, run `configure' with the `--quiet' option.
|
||||
code and type `./configure'.
|
||||
|
||||
To compile the package in a different directory than the one containing
|
||||
the source code, you must use a version of `make' supporting the `VPATH'
|
||||
|
@ -58,13 +54,6 @@ By default, `make install' will install the package's files in
|
|||
installation prefix other than `/usr/local' by giving `configure' the
|
||||
option `--prefix=PATH'.
|
||||
|
||||
You can specify separate installation prefixes for architecture specific
|
||||
files and architecture-independent files. If you give `configure' the
|
||||
option `--exec-prefix=PATH', the package will use PATH as the prefix for
|
||||
installing binary programs and libraries. Data files and documentation
|
||||
will still use the regular prefix. Normally, all files are installed
|
||||
using the same prefix.
|
||||
|
||||
If compiled on GNU/Linux, Midnight Commander detects if you have the gpm
|
||||
library installed. If you installed the gpm mouse library in a
|
||||
non-standard place, you will need to use the --with-gpm-mouse flag with
|
||||
|
@ -103,12 +92,6 @@ incomplete, use `configure --help' to get the full list):
|
|||
building binaries for distribution purposes and may not work on
|
||||
some operating systems.
|
||||
|
||||
`--with-mmap', `--without-mmap'
|
||||
Force using or not using the mmap function. It is currently used
|
||||
in the internal viewer. `--with-mmap' may be useful on some
|
||||
versions of AIX where the `configure' script decides that mmap is
|
||||
broken, but it's actually suitable for the internal viewer.
|
||||
|
||||
`--with-subshell[=optional]', `--without-subshell'
|
||||
The subshell support is by default turned on, you can disable
|
||||
this by using the --without-subshell option. If you pass the
|
||||
|
@ -220,9 +203,6 @@ ncurses):
|
|||
Set path to ncurses library [default=/usr/lib]; make sense
|
||||
only if --with-screen=ncurses is used.
|
||||
|
||||
Compiler options:
|
||||
- - - - - - - - -
|
||||
|
||||
On systems that require unusual options for compilation or linking that
|
||||
the package's `configure' script does not know about, you can give
|
||||
`configure' initial values for variables by placing them in the command
|
||||
|
@ -230,131 +210,16 @@ line:
|
|||
|
||||
./configure CC='gcc -traditional' LIBS=-lposix
|
||||
|
||||
Here are the variables that you might want to override when running
|
||||
`configure'.
|
||||
|
||||
- Variable: CC
|
||||
C compiler program. The default is `gcc' if found, otherwise `cc'.
|
||||
|
||||
- Variable: CFLAGS
|
||||
The default flags used to build the program.
|
||||
|
||||
- Variable: INSTALL
|
||||
Program to use to install files. The default is `install' if you
|
||||
have it, `cp' otherwise.
|
||||
|
||||
For these variables, any value given in the command line is added to the
|
||||
value that `configure' decides to use:
|
||||
|
||||
- Variable: LIBS
|
||||
Libraries to link with, in the form `-lfoo -lbar...'.
|
||||
|
||||
- Variable: LDFLAGS
|
||||
Linker flags, e.g. -L<lib dir> if you have libraries in a
|
||||
nonstandard directory <lib dir>
|
||||
|
||||
- Variable: CPPFLAGS
|
||||
C/C++ preprocessor flags, e.g. -I<include dir> if you have
|
||||
headers in a nonstandard directory <include dir>
|
||||
|
||||
If you need to do unusual things to compile the package, we encourage
|
||||
you to figure out how `configure' could check whether to do them, and
|
||||
mail diffs or instructions to the address given in the README so we can
|
||||
include them in the next release.
|
||||
|
||||
2. Type `make' to compile the package.
|
||||
|
||||
3. Type `make install' to install programs, data files, and the
|
||||
documentation. On GNU/Linux the console screen saver is installed as
|
||||
well.
|
||||
documentation.
|
||||
|
||||
4. You can remove the program binaries and object files from the source
|
||||
directory by typing `make clean'. If you want to clean the source tree
|
||||
completely, so that it contains only those files that should be packaged
|
||||
in the archive, issue `make distclean'. If you've run configure in a
|
||||
different directory than the source tree, distclean won't remove your
|
||||
*.o and linked programs in that directory.
|
||||
|
||||
5. GNU Midnight Commander allows you to stay in the last current
|
||||
directory after exiting MC. This is done with a shell function, the man
|
||||
page has more information about this.
|
||||
|
||||
The file `configure.in' is used to create `configure' by a program
|
||||
called `autoconf'. You only need it if you want to regenerate
|
||||
`configure' using a newer version of `autoconf'.
|
||||
|
||||
|
||||
Where to get more information on GNU Midnight Commander
|
||||
-------------------------------------------------------
|
||||
|
||||
There are two mailing lists for the program:
|
||||
|
||||
mc@lists.midnight-commander.org: Discussion on GNU Midnight Commander file manager.
|
||||
mc-devel@lists.midnight-commander.org: Discussion between the developers of the program.
|
||||
|
||||
To subscribe to the mailing lists, visit their respective pages:
|
||||
|
||||
https://lists.midnight-commander.org/mailman/listinfo/mc/
|
||||
https://lists.midnight-commander.org/mailman/listinfo/mc-devel/
|
||||
|
||||
|
||||
Notes about GNU Midnight Commander installation
|
||||
-----------------------------------------------
|
||||
|
||||
GNU Midnight Commander has been run in the following configurations:
|
||||
|
||||
i386-*-linux
|
||||
sparc-*-linux
|
||||
alpha-*-linux
|
||||
powerpc-*-linux
|
||||
mips-dec-{open,net}bsd1.0
|
||||
mips-sgi-irix5.2
|
||||
mips-sgi-irix5.3
|
||||
powerpc-ibm-aix5.3.0.0 (IBM XL C, IBM XL C/C++)
|
||||
sparc-sun-sunos4.1
|
||||
sparc-sun-netbsd1.0
|
||||
sparc-sun-solaris2.3
|
||||
hppa-hp-hpux9
|
||||
hppa-hp-hpux7
|
||||
m68k-apple-aux
|
||||
mc88110-aviion-dgux5.4
|
||||
i386-*-bsdi2
|
||||
i386-*-freebsd4.3
|
||||
i386-*-openbsd2.9
|
||||
|
||||
Midnight Commander is written in a portable manner and uses GNU Autoconf
|
||||
for configuration, so it is expected to compile without changes on many
|
||||
other operating systems.
|
||||
|
||||
You will need an ANSI C Compiler (such as GCC) and glib library to
|
||||
compile the source. GNU Midnight Commander now comes with the S-Lang
|
||||
screen manager, a fast screen manager, but you may want to use the
|
||||
already installed S-Lang or ncurses library.
|
||||
|
||||
If you insist on using ncurses, it's recommended to use ncurses 4.1 and
|
||||
above, since the older versions don't support resizing in the xterm
|
||||
window.
|
||||
|
||||
GNU Midnight Commander comes with the mouse support on xterms and in the
|
||||
Linux console. In order to take advantage of the mouse support on the
|
||||
Linux console you will need the gpm mouse server (see the section
|
||||
"Obtaining related software" in this file).
|
||||
|
||||
Once you get gpm, compile it and install it, then you will have to
|
||||
specify the `--with-gpm-mouse' flag to the configure program if you
|
||||
installed it in a non-standard directory. If you installed the gpm
|
||||
package under /usr or /usr/local, you don't need to specify this flag;
|
||||
configure will find gpm for you. The support for mice on xterms is
|
||||
always compiled in.
|
||||
|
||||
We are working on further enhancements to the program, but we're not
|
||||
sure which ones must go first. If you would like to point us in the
|
||||
Right Direction we will be glad to hear from you.
|
||||
|
||||
If you happen to find a feature that doesn't do what you expect, please
|
||||
write to mc@lists.midnight-commander.org telling as much as you can
|
||||
about the problem you're experiencing. Please don't send personal
|
||||
messages to the maintainers.
|
||||
If you're on a GNU/Linux system, this will install the `cons.saver'
|
||||
utility, which allows the Midnight Commander to save and restore the
|
||||
console contents. This utility can be installed setuid root, but it's
|
||||
only needed on systems where users cannot access /dev/vcsaN, where N is
|
||||
the virtual console number, on which the uses is logged on.
|
||||
|
||||
|
||||
Obtaining related software
|
||||
|
@ -366,7 +231,7 @@ glib
|
|||
The only "hard" dependency of GNU Midnight Commander is glib. You can
|
||||
get glib from
|
||||
|
||||
ftp://ftp.gnome.org/pub/gnome/sources/glib/
|
||||
* https://download.gnome.org/sources/glib/
|
||||
|
||||
Minimal version of glib: 2.32.0
|
||||
Recommended version: 2.32.x and higher.
|
||||
|
@ -376,11 +241,9 @@ Newer versions may work, but haven't been tested.
|
|||
PCRE
|
||||
----
|
||||
|
||||
Both PCRE and PCRE2 libraries are supported.
|
||||
Both PCRE and PCRE2 libraries are supported. You can get PCRE from
|
||||
|
||||
You can get PCRE from
|
||||
|
||||
http://www.pcre.org/
|
||||
* https://www.pcre.org
|
||||
|
||||
Terminal database
|
||||
-----------------
|
||||
|
@ -402,53 +265,32 @@ Screen libraries
|
|||
GNU Midnight Commander can use the included version of S-Lang, but you
|
||||
can get the latest version here:
|
||||
|
||||
http://www.s-lang.org/
|
||||
* https://www.jedsoft.org/slang/
|
||||
|
||||
Alternatively, you can use ncurses:
|
||||
|
||||
http://www.gnu.org/software/ncurses/ncurses.html
|
||||
* https://invisible-island.net/ncurses/announce.html
|
||||
|
||||
Mouse support
|
||||
-------------
|
||||
|
||||
The general purpose mouse (gpm) daemon is available from
|
||||
|
||||
http://unix.schottelius.org/gpm/
|
||||
* https://www.nico.schottelius.org/software/gpm/
|
||||
|
||||
Compiler
|
||||
--------
|
||||
Porting
|
||||
-------
|
||||
|
||||
If your C compiler is not powerful enough to compile GNU Midnight
|
||||
Commander, you should report is as a bug to the GNU Midnight Commander
|
||||
team. Sometimes there is no solution than upgrading to a modern and
|
||||
free compiler - GCC (Compiler Collection):
|
||||
Some less widespread UNIX systems like AIX or Solaris often come with their own
|
||||
implementations of make and relevant parts of the toolchain necessary to build
|
||||
mc. While autotools abstract a lot of platform specific issues, you might
|
||||
encounter unresolved problems while using the native toolchain.
|
||||
|
||||
http://gcc.gnu.org/
|
||||
Often, GNU tools are shipped as a part of an additional software collection
|
||||
(/opt/freeware on AIX, or OpenCSW on Solaris). These tools are usually prefixed
|
||||
with the letter `g', e.g. `gmake' instead of `make'. If you are not really
|
||||
interested in building with the native toolchain, try to override tools causing
|
||||
problems like this:
|
||||
|
||||
AIX
|
||||
---
|
||||
Currently you can not use gcc 4.2.4 (and probably other versions) on
|
||||
AIX to compile the S-Lang version. Please use IBM XL C or IBM XL C/C++
|
||||
instead.
|
||||
|
||||
If you compile a ncurses version you need to set TERM=dtterm to get
|
||||
working color support. Furthermore it is important to specify the
|
||||
--with-ncurses-includes/--with-ncurses-lib parameters because otherwise
|
||||
mc will pick up term.h from AIX which does not work with the ncurses
|
||||
library.
|
||||
|
||||
The AIX S-Lang build was tested with S-Lang 2.0.7. Later versions may
|
||||
also work but are not tested yet.
|
||||
|
||||
Here is an example for S-Lang, it is assumed that the S-Lang library
|
||||
is installed under /user/local and that you also want want to install
|
||||
to /usr/local:
|
||||
|
||||
export CC=cc_r
|
||||
export CXX=xlC_r
|
||||
export CONFIG_SHELL=/usr/bin/bash (if installed)
|
||||
export SHELL=/usr/bin/bash (if installed)
|
||||
|
||||
./configure \
|
||||
--prefix=/usr/local \
|
||||
--with-screen=slang
|
||||
./configure MAKE=gmake AR=gar
|
||||
gmake
|
||||
|
|
|
@ -1,51 +0,0 @@
|
|||
Read the INSTALL file for the complete instructions.
|
||||
|
||||
GNU Midnight Commander requires glib2.
|
||||
|
||||
GNU Midnight Commander uses the S-Lang screen library by default. It
|
||||
tries the S-Lang library installed on the system. If it's not found,
|
||||
the included S-Lang sources are used. It is also possible to use
|
||||
ncurses as the screen library.
|
||||
|
||||
1. Configure the package for your system.
|
||||
|
||||
Normally, you just `cd' to the package main directory and type
|
||||
`./configure'.
|
||||
|
||||
The most often needed options to configure are following:
|
||||
|
||||
`--prefix=PATH'
|
||||
By default, `make install' will install the package's files
|
||||
in `/usr/local/bin', `/usr/local/man', etc. or to `/usr/bin',
|
||||
`/usr/man', etc. depending on the location of an old mc binary.
|
||||
If you have none in your system, default will be `/usr/local'.
|
||||
You can specify an installation prefix other than default by
|
||||
giving `configure' the option `--prefix=PATH'.
|
||||
|
||||
`--with-screen={slang|ncurses}'
|
||||
Choose the library used to manage interaction with the terminal.
|
||||
`slang' means S-Lang library already installed on the system,
|
||||
`ncurses' means ncurses library already installed on the system.
|
||||
The installed S-Lang library is used by default if found.
|
||||
|
||||
You may also want to specify CFLAGS for the compiler, even if it finds
|
||||
itself some defaults by typing e.g.
|
||||
|
||||
./configure CFLAGS=-O3
|
||||
|
||||
2. Type `make' to compile the package.
|
||||
|
||||
3. Type `make install' to install programs, data files, and
|
||||
documentation. You may need to run this command as root.
|
||||
|
||||
If you're on a GNU/Linux system, this will install the `cons.saver'
|
||||
utility, which allows the Midnight Commander to save and restore the
|
||||
screen contents. This utility can be installed setuid root, but it's
|
||||
only needed on systems where users cannot access /dev/vcsaN, where N is
|
||||
the virtual console number, on which the uses is logged on.
|
||||
|
||||
If you're making a mc binary distribution for other people and want to
|
||||
package the whole installed tree, use `make install DESTDIR=PATH', which
|
||||
will make PATH the root for installation.
|
||||
|
||||
4. Type `mc' and enjoy!
|
|
@ -1 +0,0 @@
|
|||
Email: mc-devel@lists.midnight-commander.org
|
|
@ -1,10 +0,0 @@
|
|||
This is a list of sites known to mirror the Midnight Commander release.
|
||||
|
||||
----------
|
||||
|
||||
The Midnight Commander distribution is placed at:
|
||||
|
||||
* http://ftp.osuosl.org/pub/midnightcommander/
|
||||
* ftp://ftp.osuosl.org/pub/midnightcommander/
|
||||
|
||||
-----------
|
|
@ -1,7 +1,7 @@
|
|||
DIST_SUBDIRS = hints man hlp
|
||||
SUBDIRS = hints man hlp
|
||||
|
||||
DOCS = FAQ HACKING INSTALL INSTALL.FAST MAINTAINERS README.QNX MIRRORS.txt
|
||||
DOCS = FAQ HACKING INSTALL
|
||||
EXTRA_DIST = $(DX_CONFIG) doxygen-include.am $(DOCS)
|
||||
|
||||
include doxygen-include.am
|
||||
|
|
22
doc/README
22
doc/README
|
@ -1,12 +1,12 @@
|
|||
Contents
|
||||
--------
|
||||
|
||||
Introduction
|
||||
Dependencies
|
||||
Features
|
||||
Mini-documentation
|
||||
Where to get more information
|
||||
Reporting problems
|
||||
* Introduction
|
||||
* Dependencies
|
||||
* Features
|
||||
* Mini-documentation
|
||||
* Where to get more information
|
||||
* Reporting problems
|
||||
|
||||
|
||||
Introduction
|
||||
|
@ -141,15 +141,19 @@ Where to get more information
|
|||
|
||||
There is a webpage for GNU Midnight Commander at
|
||||
|
||||
https://www.midnight-commander.org/
|
||||
* https://www.midnight-commander.org
|
||||
|
||||
This page also has current information about mailing lists and some
|
||||
useful advices how to report bugs.
|
||||
|
||||
You can download the latest version of GNU Midnight Commander from
|
||||
|
||||
https://www.midnight-commander.org/downloads/
|
||||
* https://www.midnight-commander.org/downloads/
|
||||
|
||||
The Midnight Commander distribution is placed at:
|
||||
|
||||
* http://ftp.osuosl.org/pub/midnightcommander/
|
||||
* ftp://ftp.osuosl.org/pub/midnightcommander/
|
||||
|
||||
Reporting problems
|
||||
------------------
|
||||
|
@ -168,8 +172,6 @@ There are two mailing lists:
|
|||
Use mc-devel@ if you are prepared for a more technical discussion
|
||||
with the developers of the package, otherwise use mc@.
|
||||
|
||||
Please don't sent HTML e-mail to either of those mailing lists.
|
||||
|
||||
Include the output of "mc --version", the operating system and the
|
||||
distribution (if applicable) you are using, the compiler and the
|
||||
configure flags used to compile the program (if you know them).
|
||||
|
|
313
doc/README.QNX
313
doc/README.QNX
|
@ -1,313 +0,0 @@
|
|||
Midnight Commander for QNX (not QNX Neutrino)
|
||||
---------------------------------------------
|
||||
|
||||
1. Compiling
|
||||
2. Running 'mc' under QNX
|
||||
3. List of modifications on mc-4.1.33
|
||||
4. TODO
|
||||
5. Contact information
|
||||
|
||||
1. Compiling
|
||||
------------
|
||||
|
||||
1.1 Make utility
|
||||
----------------
|
||||
|
||||
Use 'gmake'. (This is the default 'make' under QNX 4.23+). [The old 'qmake'
|
||||
cannot handle the makefiles in the mc-source.]
|
||||
|
||||
1.2 Configuring
|
||||
---------------
|
||||
|
||||
If you don't have an installed TCP/IP development kit, you have to 'hide'
|
||||
the library file 'socket3r.lib' (can be installed by e.g. Watcom C 10.6)
|
||||
in /usr/lib or /usr/watcom/10.6/usr/lib, because the existence of this file
|
||||
will confuse 'configure': it will erroneously assume you have the complete
|
||||
TCP/IP development kit (with headers) and will enable compiling of the
|
||||
network-related VFS code (not only tarfs).
|
||||
[A patch would be required in the configure-script to check the existence
|
||||
of the TCP/IP-related headers also...]
|
||||
|
||||
Use '--disable-nls' option, if you don't have the binary utilities of
|
||||
GNU 'gettext' package (e.g. 'msgfmt'). ['--with-included-gettext' doesn't
|
||||
really work in 4.1.33, there are configuration/compiling problems...]
|
||||
|
||||
1.3 Compiler
|
||||
------------
|
||||
|
||||
It is advised to use Watcom C 10.6+ to compile the source, because older
|
||||
compilers (e.g. 9.52) do not support some convenient/required features.
|
||||
[e.g. 'ar'-compatible 'wlib',...]
|
||||
|
||||
1.4 "No prototype found for '<function>'" warnings
|
||||
--------------------------------------------------
|
||||
|
||||
It is advised to use high warning level (e.g. 'CFLAGS="-w4" ./configure'),
|
||||
when compiling the source, because Watcom C uses a special parameter passing
|
||||
convention for functions with fixed number of arguments only. So if the
|
||||
compiler doesn't see the correct prototype of a function with variable
|
||||
number of arguments (like printf()), it will produce a warning about the
|
||||
missing prototype, but generates function call code according to the special
|
||||
parameter passing convention, not the required CDECL convention (it is used
|
||||
by default for functions with variable number of arguments). So the calling
|
||||
convention of the function call code and the function code itself will not
|
||||
match! So you MUST provide the correct prototype for function with variable
|
||||
number of arguments! (Or you can force using the stack-based calling
|
||||
convention as a default, if you have the stack-call-conv version of all of the
|
||||
required libraries ('<name>3s.lib')...[Watcom C 10.6 required!])
|
||||
|
||||
[The latest release version (4.1.33/qnx) is checked against these types of
|
||||
missing prototypes...]
|
||||
|
||||
1.5 Tested configuration
|
||||
------------------------
|
||||
|
||||
QNX 4.24
|
||||
Watcom C 10.6 (release version, no newer beta patches)
|
||||
Photon 1.12
|
||||
no TCP/IP development kit (-> VFS: tarfs only!)
|
||||
mc-4.1.33, mc-4.1.34
|
||||
|
||||
2. Running 'mc' under QNX
|
||||
-------------------------
|
||||
|
||||
Using 'qnx*' terminals:
|
||||
|
||||
You cannot use your keyboard correctly, if you disable the "Full 8 bits
|
||||
input" feature in the 'Options|Display bits...' dialog.
|
||||
|
||||
On 'qnx*' terminals 'mc' will run in black and white mode by default,
|
||||
because these types of terminals use non-ANSI-compatible color sequences.
|
||||
|
||||
Accessing remote nodes via the native QNX-network:
|
||||
|
||||
[The problem exists under the older versions of 'mc' only...]
|
||||
If directory panels cannot handle '//<node-id>' prefix in directory names,
|
||||
use directory links in order to access remote nodes on the native QNX
|
||||
network:
|
||||
|
||||
mkdir /net
|
||||
ln -sf //1/ /net/1
|
||||
...
|
||||
|
||||
Extension and menu files:
|
||||
|
||||
Default 'tar' uses 'stderr' (and not 'stdout' as its 'normal' output with
|
||||
'-t' option.
|
||||
|
||||
Default 'tar' is not a GNU 'tar', so does not understand '-z' option.
|
||||
|
||||
Special key-mappings:
|
||||
|
||||
Restrictions of the META-? as Alt-? functionality:
|
||||
[META-? as ESC-? will always work!!!]
|
||||
|
||||
Alt-TAB -> Ctrl-TAB (Alt-TAB reserved in Photon [1.12+])
|
||||
Alt-ENTER -> Ctrl-ENTER ('qnx*' terminals only)
|
||||
|
||||
Alt-<uppercase letter>: doesn't work
|
||||
|
||||
'qansi*' terminals:
|
||||
|
||||
Problem [QNX 4.23+ only]: screen corruption (strange line-drawing character
|
||||
set handling) on 'qansi*' terminals, if linked with mc/Slang/terminfo
|
||||
terminal management. (Older versions of QNX and Slang/termcap not affected.)
|
||||
|
||||
This problem is solved, see the comments in slang/sldisply.c about
|
||||
SLTT_TRANSP_ACS_PATCH and QNX_QANSI_SLANG_COMPAT_ACS!
|
||||
|
||||
other terminals:
|
||||
|
||||
I have tested 'mc' under QNX on 'qnx*' and 'qansi*' terminals only.
|
||||
|
||||
toggle panels on/off (CTRL-o):
|
||||
|
||||
Currently not supported, but could be implemented later...
|
||||
|
||||
3. List of modifications on mc-4.1.33/mc-4.1.34
|
||||
-----------------------------------------------
|
||||
|
||||
edit/
|
||||
|
||||
syntax.c: (4.1.33 only, fixed in 4.1.34)
|
||||
|
||||
line 100,191: WCC 10.6 doesn't like "<label>: }" construct ("no statement
|
||||
after the label"), modified to "<label>: /*nop*/; }".
|
||||
|
||||
lib/
|
||||
|
||||
mc.menu:
|
||||
|
||||
'Z' on 'tar.Z' and 'tar.z' files: '%f' -> '$1'.
|
||||
|
||||
mc.ext.in.qnx.diff:
|
||||
|
||||
QNX: modified 'mc.ext.in'. [tar -t: output to stderr,...]
|
||||
|
||||
(No automatic install implemented: patch must be applied before
|
||||
running 'configure' [->mc.ext.in.qnx.diff!]; this patch can be not
|
||||
only QNX-specific...)
|
||||
|
||||
Makefile.in:
|
||||
|
||||
'mc.ext.in.qnx.diff' added to DISTLIB.
|
||||
|
||||
slang/
|
||||
|
||||
sldisply.c:
|
||||
|
||||
SLTT_TRANSP_ACS_PATCH dependent code:
|
||||
|
||||
The problem: some terminals (e.g. QNX/qansi*) map the whole upper half of
|
||||
the ASCII table to the lower half, when alt-char-set is activated with
|
||||
the smacs/as string-sequence. This means, that if 0 <= ch < 128 written
|
||||
to the terminal, it will be translated to (ch+128) automatically by the
|
||||
terminal: so not only the line-drawing characters can be written, when
|
||||
the alt-char-set is activated. It implicitly means, that space, NL, CR,
|
||||
etc. characters (exactly: anything besides the "standard" line drawing
|
||||
characters) cannot be written directly to the terminal, when the
|
||||
alt-char-set is activated, because writing these characters doesn't cause
|
||||
an implicit/temporary switching-back to the standard char-set!
|
||||
|
||||
The original code in SLang assumes that space, NL, CR, etc. can be
|
||||
printed when alt-char-set is activated. If SLTT_TRANSP_ACS_PATCH is
|
||||
defined, the modified code will not use this assumption.
|
||||
[Remark: the patch-code is not the most exact solution, but works...]
|
||||
|
||||
QNX_QANSI_SLANG_COMPAT_ACS_PATCH dependent code:
|
||||
|
||||
A more OS/terminal-specific solution for the problem mentioned above
|
||||
(->SLTT_TRANSP_ACS_PATCH).
|
||||
|
||||
If QNX_QANSI_SLANG_COMPAT_ACS is defined, the default smacs/sa, rmacs/ae,
|
||||
acsc/ac [and sgr/sa, if it would be used!] command sequences will be
|
||||
replaced internally with the "old style" (pre-QNX 4.23) sequences in case
|
||||
of QNX/qansi terminals. Using these optional command sequences the terminal
|
||||
remains compatible with the original SLang code (without using the
|
||||
workaround-code enabled by defining SLTT_TRANSP_ACS_PATCH).
|
||||
|
||||
Remark:
|
||||
|
||||
Currently SLTT_TRANSP_ACS_PATCH is not auto-configured by 'configure'.
|
||||
(Must be manually defined...)
|
||||
|
||||
There is some (QNX-specific) auto-configuration hand-coded in the source:
|
||||
|
||||
#ifdef SLTT_TRANSP_ACS_PATCH
|
||||
# if defined(__QNX__) && defined(QNX_QANSI_SLANG_COMPAT_ACS)
|
||||
# undef SLTT_TRANSP_ACS_PATCH
|
||||
# endif
|
||||
#else
|
||||
# if defined(__QNX__) && !defined(QNX_QANSI_SLANG_COMPAT_ACS)
|
||||
# define QNX_QANSI_SLANG_COMPAT_ACS 1
|
||||
# endif
|
||||
#endif
|
||||
|
||||
slutty.c:
|
||||
|
||||
"newtty.c_iflag &= ~(ECHO | INLCR | ICRNL);"
|
||||
|
||||
ECHO(0x08) is a c_lflag bit, it means PARMRK(0x08) in c_iflag. (!?!)
|
||||
|
||||
src/
|
||||
|
||||
file.c:
|
||||
|
||||
'do_reget' can be extern if (ENABLE_VFS && USE_NETCODE), not if (ENABLE_VFS).
|
||||
|
||||
find.c:
|
||||
|
||||
search_content():
|
||||
|
||||
variable 'i' "must be" 'int', not 'char'. ["i == -1": (buggy?) WCC 10.6
|
||||
doesn't convert automatically (int)(-1) to (char)(-1) (GCC does), so
|
||||
"comparison result always 0" warning produced. It is cleaner to define
|
||||
'i' as 'int', than cast '-1' to 'char', because 'read()' returns 'int'.]
|
||||
|
||||
key.c:
|
||||
|
||||
init_key():
|
||||
|
||||
Call load_xtra_key_defines() and clear 'use_8th_bit_as_meta' by default
|
||||
under QNX, if a 'qnx*' terminal detected. (A saved config file (mc.ini)
|
||||
can override it later...)
|
||||
|
||||
key.h:
|
||||
|
||||
Declare load_xtra_key_defines().
|
||||
|
||||
keyxdef.c:
|
||||
|
||||
Provides a method to define some platform-specific additional key
|
||||
mappings. (e.g. QNX terminals can handle most of META-? combinations as
|
||||
ALT-?...)
|
||||
|
||||
(Currently not listed in doc/FILES...)
|
||||
|
||||
layout.c:
|
||||
|
||||
TIOCGWINSZ must be available (<sys/ioctl.h> included), because window-
|
||||
resizing code doesn't work, if not defined.
|
||||
|
||||
main.c:
|
||||
|
||||
print_usage(): reserved name in the QNX run-time library!
|
||||
print_usage() -> print_mc_usage()
|
||||
|
||||
mouse.c:
|
||||
|
||||
QNX: ncurses 1.9.8a ported to QNX doesn't provide the 'SP' pointer as a
|
||||
global symbol in the library, so the keyok() emulation currently cannot
|
||||
be used under QNX (4.24 & Watcom C 10.6 release version).
|
||||
|
||||
slint.c:
|
||||
|
||||
QNX: 'qansi*' terminals added to the color_terminals[] list.
|
||||
|
||||
subshell.c:
|
||||
utilunix.c:
|
||||
|
||||
QNX: include <unix.h> to get prototype for exec*()!!!
|
||||
[See README.QNX/Section 1.4!]
|
||||
|
||||
Makefile.in:
|
||||
|
||||
'keyxdef' module added to SRCS and OBJS.
|
||||
|
||||
vfs/
|
||||
|
||||
<mc-src-root>/
|
||||
|
||||
README.QNX:
|
||||
|
||||
QNX-specific notes...
|
||||
|
||||
configure (line 3369):
|
||||
configure.in (line 88):
|
||||
|
||||
(mc-4.1.34 only)
|
||||
'test x$CCOPTS = x;' => 'test "x$CCOPTS" = x;'
|
||||
|
||||
Makefile.in:
|
||||
|
||||
README.QNX added to DISTMAIN.
|
||||
|
||||
4. TODO
|
||||
-------
|
||||
|
||||
Because of limited time and resources now I can define a 'wish list' only:
|
||||
(maybe somebody in the QNX community can help...)
|
||||
|
||||
subshell support with panel switch on/off ?
|
||||
mouse under Photon (with qnxm, qansi-m terminals) ?
|
||||
...
|
||||
|
||||
5. Contact information
|
||||
----------------------
|
||||
|
||||
Please report QNX-specific bugs and comments via e-mail to: gt_cosy@usa.net
|
||||
|
||||
|
||||
-------------
|
||||
Tamasi Gyorgy
|
||||
-------------
|
|
@ -1283,8 +1283,7 @@ El comando Compara directorios (Ctrl\-x d) compara los paneles de directorio
|
|||
uno con el otro. Podemos usar el comando Copiar (F5) para hacer ambos
|
||||
paneles idénticos. Hay tres métodos de comparación. El método rápido
|
||||
compara solo el tamaño de archivo y la fecha. El método completo realiza
|
||||
una comparación completa octeto a octeto. El método completo no está disponible si
|
||||
la máquina no soporta la llamada de sistema mmap(2). El método de comparación
|
||||
una comparación completa octeto a octeto. El método de comparación
|
||||
de solo tamaño solo compara los tamaños de archivo y no chequea los
|
||||
contenidos o las fechas, solo chequea los tamaños de los archivos.
|
||||
.PP
|
||||
|
@ -2780,13 +2779,6 @@ pueden entremezclar como en:
|
|||
.PP
|
||||
Nótese que 012 es un número octal y \-1 se convierte en 0xFF.
|
||||
.PP
|
||||
Algunos detalles internos del visualizador: En sistemas con acceso a la llamada
|
||||
del sistema mmap(2), el programa mapea el archivo en vez de cargarlo;
|
||||
si el sistema no provee de la llamada al sistema mmap(2) o el archivo
|
||||
realiza una acción que necesita de un filtro, entonces el visor usará
|
||||
sus cachés de crecimiento, cargando solo las partes del archivo
|
||||
a las que actualmente estamos accediendo (esto incluye a los archivos comprimidos).
|
||||
.PP
|
||||
He aquí una lista de las acciones asociadas a cada tecla que
|
||||
Midnight Commander gestiona en el visor interno de archivos.
|
||||
.PP
|
||||
|
|
|
@ -1067,8 +1067,7 @@ A Könyvtár összehasonlítás (C\-x d) parancs összehasonlítja a könyvtár
|
|||
paneleket egymással. Ilyenkor használható a Másol (F5) parancs a panelek
|
||||
azonossá tételére. Ennek három formája van. A gyors változat csak a fájlok
|
||||
méretét, és dátumát vizsgálja meg. Az alapos változat teljesen, byte\-ról
|
||||
byte\-ra végzi el a vizsgálatot. Az alapos változat nem használható,
|
||||
ha a gép nem támogatja az mmap(2) rendszerhívást. A 'Csak fájlhossz'
|
||||
byte\-ra végzi el a vizsgálatot. A 'Csak fájlhossz'
|
||||
szerinti változat csak a fájlméretet hasonlítja össze és nem ellenőrzi
|
||||
le a dátumukat.
|
||||
.PP
|
||||
|
@ -2297,14 +2296,6 @@ Használhatsz kevert hivatkozást is ezen értékeknek megfelelően: "Szöveg"
|
|||
0xFE 0xBB "további szöveg". A szöveg értékek közötti részt és a
|
||||
hivatkozás szövegét nem veszi figyelembe.
|
||||
.PP
|
||||
Néhány belső részlet a fájlnézőről: Azokon a rendszereken, ahol létezik
|
||||
az mmap(2) rendszerhívás, a fájl programtérképe olvasódik be ehelyett;
|
||||
ha a rendszer nem tartalmazza az mmap(2) rendszerhívást, vagy a fájl
|
||||
tartalmaz olyan műveletet, mint ami megfelel a szűrőnek, a fájlnéző egy
|
||||
növekvő buffert fog használni, amely csak azokat a részeit tartalmazza a
|
||||
fájlnak, amelyekhez jelenleg hozzáférsz (ez tömörített fájlokra is
|
||||
vonatkozik).
|
||||
.PP
|
||||
Ez a lista tartalmazza azokat a gombokat, amelyekhez művelet kapcsolódik
|
||||
a Midnight Commander belső fájlnézőjében.
|
||||
.PP
|
||||
|
|
|
@ -1090,8 +1090,7 @@ pannelli directory uno con l'altro. E' poi possibile usare il comando
|
|||
Copia (F5) per rendere i pannelli identici. Ci sono tre metodi di
|
||||
confronto. Il metodo veloce confronta solo l'ampiezza e la data del
|
||||
file. Il metodo completo fa un confronto byte\-per\-byte. Il metodo
|
||||
completo non è disponibile se la macchina non supporta la chiamata di
|
||||
sistema mmap(2). Il metodo solo dimensione confronta solo l'ampiezza dei
|
||||
solo dimensione confronta solo l'ampiezza dei
|
||||
file e non controlla il contenuto né la data del file.
|
||||
.PP
|
||||
Il comando cronologia comandi mostra un'elenco dei comandi battuti. Il
|
||||
|
@ -2336,14 +2335,6 @@ mescolare testo protetto con costanti come nell'esempio:
|
|||
.PP
|
||||
Notare che 012 è un numero ottale. \-1 viene convertito in 0xFF.
|
||||
.PP
|
||||
Alcuni dettagli interni circa il visualizzatore: su sistemi che
|
||||
forniscono la chiamata di sistema mmap(2), il programma mappa il
|
||||
file invece di caricarlo; se il sistema non fornisce la chiamata di
|
||||
sistema mmap(2) o il file corrisponde ad un'azione che richiede
|
||||
un filtro, allora il visualizzatore userà i buffer di accrescimanto
|
||||
(growing), caricando perciò solo le parti del file su cui vi si accede
|
||||
(inclusi i file compressi).
|
||||
.PP
|
||||
Ecco un'elenco di azioni associate ad ogni tasto che il Midnight Commander
|
||||
gestisce nel visualizzatore di file interno.
|
||||
.PP
|
||||
|
|
|
@ -1241,8 +1241,7 @@ The "Compare directories" command compares the directory
|
|||
panels with each other. You can then use the Copy (F5) command to make
|
||||
the panels identical. There are three compare methods. The quick method
|
||||
compares only file size and file date. The thorough method makes a
|
||||
full byte\-by\-byte compare. The thorough method is not available if the
|
||||
machine does not support the mmap(2) system call. The size\-only
|
||||
full byte\-by\-byte compare. The size\-only
|
||||
compare method just compares the file sizes and does not check the
|
||||
contents or the date times, it just checks the file size.
|
||||
.PP
|
||||
|
|
|
@ -895,8 +895,7 @@ Komenda porównywania katalogów (Compare directories) (C\-x d) porównuje
|
|||
zawartości panelu katalogowego z drugim. Możesz potem użyc Kopiuj (F5)
|
||||
żeby stworzyć dwa dokładnie identyczne panele. Metoda "quick" porównuje
|
||||
tylko i wyłącznie rozmiary plików i ich daty. Metoda "thorough" porównuje
|
||||
pliki bajt po bajcie. Ta metoda działa tylko wtedy kiedy komputer obsługuje
|
||||
wywołanie mmap(2). Metoda "size\-only" zwraca uwagę tylko na rozmiar plików.
|
||||
pliki bajt po bajcie. Metoda "size\-only" zwraca uwagę tylko na rozmiar plików.
|
||||
Nie ma dla niej żadnego znaczenia czy plik ma inną datę lub zawartość, liczy
|
||||
się tylko rozmiar.
|
||||
.PP
|
||||
|
@ -1957,13 +1956,6 @@ Możesz mieszać ciągi znaków ze stałymi tak jak: "Ciąg" 0xFE 0xBB
|
|||
"więcej tekstu". Ciąg pomiędzy stałymi i cudzysłowami jest po prostu
|
||||
ignorowany.
|
||||
.PP
|
||||
Kilka wewnętrznych szczegółów na temat podglądu: Na systemach, które używają
|
||||
wywołania systemowego mmap(2), program mapuje pliki zamiast je ładować;
|
||||
jeśli system nie obsługuje mmap(2) lub plik pasuje do któregoś z wybranych
|
||||
filtrów, podgląd użyje jego rozszerzalnych buforów, dzięki temu ładując tylko
|
||||
te części, do których musisz mieć aktualnie dostęp (dotyczy również
|
||||
plików skompresowanych).
|
||||
.PP
|
||||
Tu jest lista akcji powiązanych z każdym klawiszem, który Midnight Commander
|
||||
obsługuje w wewnętrznym poglądzie.
|
||||
.PP
|
||||
|
|
|
@ -1345,8 +1345,7 @@ Midnight Commander за счет добавления в личное меню
|
|||
для того, чтобы сделать содержимое каталогов одинаковым. Существует
|
||||
три метода сравнения. При быстром методе сравниваются только размер и
|
||||
дата создания файлов с одинаковыми именами. При побайтном методе
|
||||
сравнивается содержимое файлов (побайтно). Этот метод недоступен, если
|
||||
машина не поддерживает системный вызов mmap(2). При сравнении по размеру
|
||||
сравнивается содержимое файлов (побайтно). При сравнении по размеру
|
||||
сравниваются только размеры соответствующих файлов, а дата создания не
|
||||
проверяется.
|
||||
.PP
|
||||
|
@ -3277,14 +3276,6 @@ ASCII и шестнадцатеричный (hex). Для переключени
|
|||
можно просто ввести "BB". Число "012" интерпретируется не как
|
||||
восьмеричное, а как 0x12.
|
||||
.PP
|
||||
Некоторые детали внутренней реализации программы просмотра: на системах,
|
||||
которые предоставляют системный вызов mmap(2) программа отображает файл
|
||||
в память вместо его загрузки; иначе, а также если при вызове mmap
|
||||
возникает сбой или c файлом связано некоторое действие, которое требует
|
||||
фильтр, программа использует динамически распределяемые буфера памяти,
|
||||
загружая только те части файла, к которым вы обращаетесь (это относится
|
||||
к архивированным файлам).
|
||||
.PP
|
||||
Ниже приводится перечень всех клавиш и их комбинаций, с которыми
|
||||
ассоциированы некие действия встроенной программы просмотра.
|
||||
.TP
|
||||
|
|
|
@ -1050,8 +1050,7 @@ file may be preallocated relative to preallocate_space configure option.
|
|||
једно са другим. Тада можете користити наредбу Копирај (F5) да бисте
|
||||
изједначили окна. Постоје три начина упоређивања. Брзи начин упоређује
|
||||
само величину и датум датотека. Темељни начин упоређује сваки бајт са
|
||||
сваким бајтом датотека. Темељни начин није доступан ако машина не
|
||||
подржава системски позив mmap(2). Начин упоређивања Само величина
|
||||
сваким бајтом датотека. Начин упоређивања Само величина
|
||||
упоређује само величине датотека, а не проверава садржаје или датуме
|
||||
датотека.
|
||||
.PP
|
||||
|
@ -2305,13 +2304,6 @@ linux би вас одвело у /usr/src/linux).
|
|||
.PP
|
||||
Приметите да је 012 октални број. \-1 се претвара у 0xFF.
|
||||
.PP
|
||||
Ево још неких детаља о прегледачу: на системима који имају системски
|
||||
позив mmap(2), програм мапира датотеку уместо да је учита; уколико
|
||||
систем нема системски позив mmap(2) или датотека одговара радњи која
|
||||
захтева филтар, онда ће прегледач користити растуће прихватнике, тиме
|
||||
учитавајући само оне делове датотеке којима стварно приступате (овим
|
||||
су обухваћене и компримоване датотеке).
|
||||
.PP
|
||||
Ево списка радњи које су придружене тастерима које Поноћни наредник
|
||||
прихвата у уграђеном прегледачу.
|
||||
.PP
|
||||
|
|
|
@ -92,7 +92,6 @@ mkdir -p build-all-disabled && pushd $_
|
|||
--disable-nls \
|
||||
--disable-vfs \
|
||||
--disable-background \
|
||||
--without-mmap \
|
||||
--without-x \
|
||||
--without-gpm-mouse \
|
||||
--without-internal-edit \
|
||||
|
|
|
@ -91,6 +91,7 @@
|
|||
#include "boxes.h" /* cd_box() */
|
||||
#include "dir.h"
|
||||
#include "cd.h"
|
||||
#include "ioblksize.h" /* IO_BUFSIZE */
|
||||
|
||||
#include "cmd.h" /* Our definitions */
|
||||
|
||||
|
@ -189,27 +190,7 @@ compare_files (const vfs_path_t *vpath1, const vfs_path_t *vpath2, off_t size)
|
|||
file2 = open (vfs_path_as_str (vpath2), O_RDONLY);
|
||||
if (file2 >= 0)
|
||||
{
|
||||
#ifdef HAVE_MMAP
|
||||
char *data1;
|
||||
|
||||
/* Ugly if jungle */
|
||||
data1 = mmap (0, size, PROT_READ, MAP_FILE | MAP_PRIVATE, file1, 0);
|
||||
if (data1 != (char *) -1)
|
||||
{
|
||||
char *data2;
|
||||
|
||||
data2 = mmap (0, size, PROT_READ, MAP_FILE | MAP_PRIVATE, file2, 0);
|
||||
if (data2 != (char *) -1)
|
||||
{
|
||||
rotate_dash (TRUE);
|
||||
result = memcmp (data1, data2, size);
|
||||
munmap (data2, size);
|
||||
}
|
||||
munmap (data1, size);
|
||||
}
|
||||
#else
|
||||
/* Don't have mmap() :( Even more ugly :) */
|
||||
char buf1[BUFSIZ], buf2[BUFSIZ];
|
||||
char buf1[IO_BUFSIZE], buf2[IO_BUFSIZE];
|
||||
ssize_t n1, n2;
|
||||
|
||||
rotate_dash (TRUE);
|
||||
|
@ -222,12 +203,12 @@ compare_files (const vfs_path_t *vpath1, const vfs_path_t *vpath2, off_t size)
|
|||
}
|
||||
while (n1 == n2 && n1 == sizeof (buf1) && memcmp (buf1, buf2, sizeof (buf1)) == 0);
|
||||
result = (n1 != n2) || memcmp (buf1, buf2, n1);
|
||||
#endif /* !HAVE_MMAP */
|
||||
rotate_dash (FALSE);
|
||||
|
||||
close (file2);
|
||||
}
|
||||
close (file1);
|
||||
}
|
||||
rotate_dash (FALSE);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue