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
|
dnl sco clones
|
||||||
AC_CHECK_FUNCS(statlstat)
|
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
|
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
|
Build requirements for GNU Midnight Commander
|
||||||
----------------------------------------------------
|
---------------------------------------------
|
||||||
|
|
||||||
- glibc
|
- glibc
|
||||||
- gcc
|
- gcc
|
||||||
|
@ -26,6 +18,17 @@ Build requirements for GNU Midnight Commander
|
||||||
Installation instructions 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
|
The `configure' shell script attempts to guess correct values for
|
||||||
various system-dependent variables used during compilation, and creates
|
various system-dependent variables used during compilation, and creates
|
||||||
the makefiles. It also creates a file `config.status' that you can run
|
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.
|
1. Configure the package for your system.
|
||||||
|
|
||||||
Normally, you just `cd' to the directory containing the package's source
|
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
|
code and type `./configure'.
|
||||||
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.
|
|
||||||
|
|
||||||
To compile the package in a different directory than the one containing
|
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'
|
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
|
installation prefix other than `/usr/local' by giving `configure' the
|
||||||
option `--prefix=PATH'.
|
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
|
If compiled on GNU/Linux, Midnight Commander detects if you have the gpm
|
||||||
library installed. If you installed the gpm mouse library in a
|
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
|
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
|
building binaries for distribution purposes and may not work on
|
||||||
some operating systems.
|
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'
|
`--with-subshell[=optional]', `--without-subshell'
|
||||||
The subshell support is by default turned on, you can disable
|
The subshell support is by default turned on, you can disable
|
||||||
this by using the --without-subshell option. If you pass the
|
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
|
Set path to ncurses library [default=/usr/lib]; make sense
|
||||||
only if --with-screen=ncurses is used.
|
only if --with-screen=ncurses is used.
|
||||||
|
|
||||||
Compiler options:
|
|
||||||
- - - - - - - - -
|
|
||||||
|
|
||||||
On systems that require unusual options for compilation or linking that
|
On systems that require unusual options for compilation or linking that
|
||||||
the package's `configure' script does not know about, you can give
|
the package's `configure' script does not know about, you can give
|
||||||
`configure' initial values for variables by placing them in the command
|
`configure' initial values for variables by placing them in the command
|
||||||
|
@ -230,131 +210,16 @@ line:
|
||||||
|
|
||||||
./configure CC='gcc -traditional' LIBS=-lposix
|
./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.
|
2. Type `make' to compile the package.
|
||||||
|
|
||||||
3. Type `make install' to install programs, data files, and the
|
3. Type `make install' to install programs, data files, and the
|
||||||
documentation. On GNU/Linux the console screen saver is installed as
|
documentation.
|
||||||
well.
|
|
||||||
|
|
||||||
4. You can remove the program binaries and object files from the source
|
If you're on a GNU/Linux system, this will install the `cons.saver'
|
||||||
directory by typing `make clean'. If you want to clean the source tree
|
utility, which allows the Midnight Commander to save and restore the
|
||||||
completely, so that it contains only those files that should be packaged
|
console contents. This utility can be installed setuid root, but it's
|
||||||
in the archive, issue `make distclean'. If you've run configure in a
|
only needed on systems where users cannot access /dev/vcsaN, where N is
|
||||||
different directory than the source tree, distclean won't remove your
|
the virtual console number, on which the uses is logged on.
|
||||||
*.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.
|
|
||||||
|
|
||||||
|
|
||||||
Obtaining related software
|
Obtaining related software
|
||||||
|
@ -366,7 +231,7 @@ glib
|
||||||
The only "hard" dependency of GNU Midnight Commander is glib. You can
|
The only "hard" dependency of GNU Midnight Commander is glib. You can
|
||||||
get glib from
|
get glib from
|
||||||
|
|
||||||
ftp://ftp.gnome.org/pub/gnome/sources/glib/
|
* https://download.gnome.org/sources/glib/
|
||||||
|
|
||||||
Minimal version of glib: 2.32.0
|
Minimal version of glib: 2.32.0
|
||||||
Recommended version: 2.32.x and higher.
|
Recommended version: 2.32.x and higher.
|
||||||
|
@ -376,11 +241,9 @@ Newer versions may work, but haven't been tested.
|
||||||
PCRE
|
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
|
* https://www.pcre.org
|
||||||
|
|
||||||
http://www.pcre.org/
|
|
||||||
|
|
||||||
Terminal database
|
Terminal database
|
||||||
-----------------
|
-----------------
|
||||||
|
@ -402,53 +265,32 @@ Screen libraries
|
||||||
GNU Midnight Commander can use the included version of S-Lang, but you
|
GNU Midnight Commander can use the included version of S-Lang, but you
|
||||||
can get the latest version here:
|
can get the latest version here:
|
||||||
|
|
||||||
http://www.s-lang.org/
|
* https://www.jedsoft.org/slang/
|
||||||
|
|
||||||
Alternatively, you can use ncurses:
|
Alternatively, you can use ncurses:
|
||||||
|
|
||||||
http://www.gnu.org/software/ncurses/ncurses.html
|
* https://invisible-island.net/ncurses/announce.html
|
||||||
|
|
||||||
Mouse support
|
Mouse support
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
The general purpose mouse (gpm) daemon is available from
|
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
|
Some less widespread UNIX systems like AIX or Solaris often come with their own
|
||||||
Commander, you should report is as a bug to the GNU Midnight Commander
|
implementations of make and relevant parts of the toolchain necessary to build
|
||||||
team. Sometimes there is no solution than upgrading to a modern and
|
mc. While autotools abstract a lot of platform specific issues, you might
|
||||||
free compiler - GCC (Compiler Collection):
|
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
|
./configure MAKE=gmake AR=gar
|
||||||
---
|
gmake
|
||||||
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
|
|
||||||
|
|
|
@ -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
|
DIST_SUBDIRS = hints man hlp
|
||||||
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)
|
EXTRA_DIST = $(DX_CONFIG) doxygen-include.am $(DOCS)
|
||||||
|
|
||||||
include doxygen-include.am
|
include doxygen-include.am
|
||||||
|
|
22
doc/README
22
doc/README
|
@ -1,12 +1,12 @@
|
||||||
Contents
|
Contents
|
||||||
--------
|
--------
|
||||||
|
|
||||||
Introduction
|
* Introduction
|
||||||
Dependencies
|
* Dependencies
|
||||||
Features
|
* Features
|
||||||
Mini-documentation
|
* Mini-documentation
|
||||||
Where to get more information
|
* Where to get more information
|
||||||
Reporting problems
|
* Reporting problems
|
||||||
|
|
||||||
|
|
||||||
Introduction
|
Introduction
|
||||||
|
@ -141,15 +141,19 @@ Where to get more information
|
||||||
|
|
||||||
There is a webpage for GNU Midnight Commander at
|
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
|
This page also has current information about mailing lists and some
|
||||||
useful advices how to report bugs.
|
useful advices how to report bugs.
|
||||||
|
|
||||||
You can download the latest version of GNU Midnight Commander from
|
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
|
Reporting problems
|
||||||
------------------
|
------------------
|
||||||
|
@ -168,8 +172,6 @@ There are two mailing lists:
|
||||||
Use mc-devel@ if you are prepared for a more technical discussion
|
Use mc-devel@ if you are prepared for a more technical discussion
|
||||||
with the developers of the package, otherwise use mc@.
|
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
|
Include the output of "mc --version", the operating system and the
|
||||||
distribution (if applicable) you are using, the compiler and the
|
distribution (if applicable) you are using, the compiler and the
|
||||||
configure flags used to compile the program (if you know them).
|
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
|
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
|
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
|
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
|
una comparación completa octeto a octeto. El método de comparación
|
||||||
la máquina no soporta la llamada de sistema mmap(2). El método de comparación
|
|
||||||
de solo tamaño solo compara los tamaños de archivo y no chequea los
|
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.
|
contenidos o las fechas, solo chequea los tamaños de los archivos.
|
||||||
.PP
|
.PP
|
||||||
|
@ -2780,13 +2779,6 @@ pueden entremezclar como en:
|
||||||
.PP
|
.PP
|
||||||
Nótese que 012 es un número octal y \-1 se convierte en 0xFF.
|
Nótese que 012 es un número octal y \-1 se convierte en 0xFF.
|
||||||
.PP
|
.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
|
He aquí una lista de las acciones asociadas a cada tecla que
|
||||||
Midnight Commander gestiona en el visor interno de archivos.
|
Midnight Commander gestiona en el visor interno de archivos.
|
||||||
.PP
|
.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
|
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
|
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
|
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ó,
|
byte\-ra végzi el a vizsgálatot. A 'Csak fájlhossz'
|
||||||
ha a gép nem támogatja az mmap(2) rendszerhívást. A 'Csak fájlhossz'
|
|
||||||
szerinti változat csak a fájlméretet hasonlítja össze és nem ellenőrzi
|
szerinti változat csak a fájlméretet hasonlítja össze és nem ellenőrzi
|
||||||
le a dátumukat.
|
le a dátumukat.
|
||||||
.PP
|
.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
|
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.
|
hivatkozás szövegét nem veszi figyelembe.
|
||||||
.PP
|
.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
|
Ez a lista tartalmazza azokat a gombokat, amelyekhez művelet kapcsolódik
|
||||||
a Midnight Commander belső fájlnézőjében.
|
a Midnight Commander belső fájlnézőjében.
|
||||||
.PP
|
.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
|
Copia (F5) per rendere i pannelli identici. Ci sono tre metodi di
|
||||||
confronto. Il metodo veloce confronta solo l'ampiezza e la data del
|
confronto. Il metodo veloce confronta solo l'ampiezza e la data del
|
||||||
file. Il metodo completo fa un confronto byte\-per\-byte. Il metodo
|
file. Il metodo completo fa un confronto byte\-per\-byte. Il metodo
|
||||||
completo non è disponibile se la macchina non supporta la chiamata di
|
solo dimensione confronta solo l'ampiezza dei
|
||||||
sistema mmap(2). Il metodo solo dimensione confronta solo l'ampiezza dei
|
|
||||||
file e non controlla il contenuto né la data del file.
|
file e non controlla il contenuto né la data del file.
|
||||||
.PP
|
.PP
|
||||||
Il comando cronologia comandi mostra un'elenco dei comandi battuti. Il
|
Il comando cronologia comandi mostra un'elenco dei comandi battuti. Il
|
||||||
|
@ -2336,14 +2335,6 @@ mescolare testo protetto con costanti come nell'esempio:
|
||||||
.PP
|
.PP
|
||||||
Notare che 012 è un numero ottale. \-1 viene convertito in 0xFF.
|
Notare che 012 è un numero ottale. \-1 viene convertito in 0xFF.
|
||||||
.PP
|
.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
|
Ecco un'elenco di azioni associate ad ogni tasto che il Midnight Commander
|
||||||
gestisce nel visualizzatore di file interno.
|
gestisce nel visualizzatore di file interno.
|
||||||
.PP
|
.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
|
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
|
the panels identical. There are three compare methods. The quick method
|
||||||
compares only file size and file date. The thorough method makes a
|
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
|
full byte\-by\-byte compare. The size\-only
|
||||||
machine does not support the mmap(2) system call. The size\-only
|
|
||||||
compare method just compares the file sizes and does not check the
|
compare method just compares the file sizes and does not check the
|
||||||
contents or the date times, it just checks the file size.
|
contents or the date times, it just checks the file size.
|
||||||
.PP
|
.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)
|
zawartości panelu katalogowego z drugim. Możesz potem użyc Kopiuj (F5)
|
||||||
żeby stworzyć dwa dokładnie identyczne panele. Metoda "quick" porównuje
|
ż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
|
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
|
pliki bajt po bajcie. Metoda "size\-only" zwraca uwagę tylko na rozmiar plików.
|
||||||
wywołanie mmap(2). Metoda "size\-only" zwraca uwagę tylko na rozmiar plików.
|
|
||||||
Nie ma dla niej żadnego znaczenia czy plik ma inną datę lub zawartość, liczy
|
Nie ma dla niej żadnego znaczenia czy plik ma inną datę lub zawartość, liczy
|
||||||
się tylko rozmiar.
|
się tylko rozmiar.
|
||||||
.PP
|
.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
|
"więcej tekstu". Ciąg pomiędzy stałymi i cudzysłowami jest po prostu
|
||||||
ignorowany.
|
ignorowany.
|
||||||
.PP
|
.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
|
Tu jest lista akcji powiązanych z każdym klawiszem, który Midnight Commander
|
||||||
obsługuje w wewnętrznym poglądzie.
|
obsługuje w wewnętrznym poglądzie.
|
||||||
.PP
|
.PP
|
||||||
|
|
|
@ -1345,8 +1345,7 @@ Midnight Commander за счет добавления в личное меню
|
||||||
для того, чтобы сделать содержимое каталогов одинаковым. Существует
|
для того, чтобы сделать содержимое каталогов одинаковым. Существует
|
||||||
три метода сравнения. При быстром методе сравниваются только размер и
|
три метода сравнения. При быстром методе сравниваются только размер и
|
||||||
дата создания файлов с одинаковыми именами. При побайтном методе
|
дата создания файлов с одинаковыми именами. При побайтном методе
|
||||||
сравнивается содержимое файлов (побайтно). Этот метод недоступен, если
|
сравнивается содержимое файлов (побайтно). При сравнении по размеру
|
||||||
машина не поддерживает системный вызов mmap(2). При сравнении по размеру
|
|
||||||
сравниваются только размеры соответствующих файлов, а дата создания не
|
сравниваются только размеры соответствующих файлов, а дата создания не
|
||||||
проверяется.
|
проверяется.
|
||||||
.PP
|
.PP
|
||||||
|
@ -3277,14 +3276,6 @@ ASCII и шестнадцатеричный (hex). Для переключени
|
||||||
можно просто ввести "BB". Число "012" интерпретируется не как
|
можно просто ввести "BB". Число "012" интерпретируется не как
|
||||||
восьмеричное, а как 0x12.
|
восьмеричное, а как 0x12.
|
||||||
.PP
|
.PP
|
||||||
Некоторые детали внутренней реализации программы просмотра: на системах,
|
|
||||||
которые предоставляют системный вызов mmap(2) программа отображает файл
|
|
||||||
в память вместо его загрузки; иначе, а также если при вызове mmap
|
|
||||||
возникает сбой или c файлом связано некоторое действие, которое требует
|
|
||||||
фильтр, программа использует динамически распределяемые буфера памяти,
|
|
||||||
загружая только те части файла, к которым вы обращаетесь (это относится
|
|
||||||
к архивированным файлам).
|
|
||||||
.PP
|
|
||||||
Ниже приводится перечень всех клавиш и их комбинаций, с которыми
|
Ниже приводится перечень всех клавиш и их комбинаций, с которыми
|
||||||
ассоциированы некие действия встроенной программы просмотра.
|
ассоциированы некие действия встроенной программы просмотра.
|
||||||
.TP
|
.TP
|
||||||
|
|
|
@ -1050,8 +1050,7 @@ file may be preallocated relative to preallocate_space configure option.
|
||||||
једно са другим. Тада можете користити наредбу Копирај (F5) да бисте
|
једно са другим. Тада можете користити наредбу Копирај (F5) да бисте
|
||||||
изједначили окна. Постоје три начина упоређивања. Брзи начин упоређује
|
изједначили окна. Постоје три начина упоређивања. Брзи начин упоређује
|
||||||
само величину и датум датотека. Темељни начин упоређује сваки бајт са
|
само величину и датум датотека. Темељни начин упоређује сваки бајт са
|
||||||
сваким бајтом датотека. Темељни начин није доступан ако машина не
|
сваким бајтом датотека. Начин упоређивања Само величина
|
||||||
подржава системски позив mmap(2). Начин упоређивања Само величина
|
|
||||||
упоређује само величине датотека, а не проверава садржаје или датуме
|
упоређује само величине датотека, а не проверава садржаје или датуме
|
||||||
датотека.
|
датотека.
|
||||||
.PP
|
.PP
|
||||||
|
@ -2305,13 +2304,6 @@ linux би вас одвело у /usr/src/linux).
|
||||||
.PP
|
.PP
|
||||||
Приметите да је 012 октални број. \-1 се претвара у 0xFF.
|
Приметите да је 012 октални број. \-1 се претвара у 0xFF.
|
||||||
.PP
|
.PP
|
||||||
Ево још неких детаља о прегледачу: на системима који имају системски
|
|
||||||
позив mmap(2), програм мапира датотеку уместо да је учита; уколико
|
|
||||||
систем нема системски позив mmap(2) или датотека одговара радњи која
|
|
||||||
захтева филтар, онда ће прегледач користити растуће прихватнике, тиме
|
|
||||||
учитавајући само оне делове датотеке којима стварно приступате (овим
|
|
||||||
су обухваћене и компримоване датотеке).
|
|
||||||
.PP
|
|
||||||
Ево списка радњи које су придружене тастерима које Поноћни наредник
|
Ево списка радњи које су придружене тастерима које Поноћни наредник
|
||||||
прихвата у уграђеном прегледачу.
|
прихвата у уграђеном прегледачу.
|
||||||
.PP
|
.PP
|
||||||
|
|
|
@ -92,7 +92,6 @@ mkdir -p build-all-disabled && pushd $_
|
||||||
--disable-nls \
|
--disable-nls \
|
||||||
--disable-vfs \
|
--disable-vfs \
|
||||||
--disable-background \
|
--disable-background \
|
||||||
--without-mmap \
|
|
||||||
--without-x \
|
--without-x \
|
||||||
--without-gpm-mouse \
|
--without-gpm-mouse \
|
||||||
--without-internal-edit \
|
--without-internal-edit \
|
||||||
|
|
|
@ -91,6 +91,7 @@
|
||||||
#include "boxes.h" /* cd_box() */
|
#include "boxes.h" /* cd_box() */
|
||||||
#include "dir.h"
|
#include "dir.h"
|
||||||
#include "cd.h"
|
#include "cd.h"
|
||||||
|
#include "ioblksize.h" /* IO_BUFSIZE */
|
||||||
|
|
||||||
#include "cmd.h" /* Our definitions */
|
#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);
|
file2 = open (vfs_path_as_str (vpath2), O_RDONLY);
|
||||||
if (file2 >= 0)
|
if (file2 >= 0)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_MMAP
|
char buf1[IO_BUFSIZE], buf2[IO_BUFSIZE];
|
||||||
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];
|
|
||||||
ssize_t n1, n2;
|
ssize_t n1, n2;
|
||||||
|
|
||||||
rotate_dash (TRUE);
|
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);
|
while (n1 == n2 && n1 == sizeof (buf1) && memcmp (buf1, buf2, sizeof (buf1)) == 0);
|
||||||
result = (n1 != n2) || memcmp (buf1, buf2, n1);
|
result = (n1 != n2) || memcmp (buf1, buf2, n1);
|
||||||
#endif /* !HAVE_MMAP */
|
rotate_dash (FALSE);
|
||||||
|
|
||||||
close (file2);
|
close (file2);
|
||||||
}
|
}
|
||||||
close (file1);
|
close (file1);
|
||||||
}
|
}
|
||||||
rotate_dash (FALSE);
|
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue