summaryrefslogtreecommitdiffstats
path: root/doc/README
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--doc/README183
-rw-r--r--doc/README.QNX313
2 files changed, 496 insertions, 0 deletions
diff --git a/doc/README b/doc/README
new file mode 100644
index 0000000..71d69d8
--- /dev/null
+++ b/doc/README
@@ -0,0 +1,183 @@
+Contents
+--------
+
+Introduction
+Dependencies
+Features
+Mini-documentation
+Where to get more information
+Reporting problems
+
+
+Introduction
+------------
+
+GNU Midnight Commander (also referred to as MC) is a user shell with
+text-mode full-screen interface. It can be run on the OS console,
+in xterm and other terminal emulators.
+
+GNU Midnight Commander allows you to manage files while making the most of
+your screen and giving you a clear representation of the filesystem, yet
+it's simple enough to be run over a telnet or ssh session.
+
+GNU Midnight Commander is released under the GNU General Public
+License version 3 or any later version. A copy of the file is
+included with this distribution package.
+
+
+Dependencies
+------------
+
+Please read the file INSTALL for installation instructions
+and full list of dependencies.
+
+
+Features
+--------
+
+GNU Midnight Commander was conceived as a free clone of John Socha's
+Norton Commander (TM). It also takes the best from more recent software
+with similar interfaces. GNU Midnight Commander comes with mouse support
+on xterm and optionally on the Linux console.
+
+Some features are specific to the POSIX environment MC runs on, some are
+familiar to the users of similar software for other operating systems.
+The features include:
+
+ * Built in Virtual File System: manipulate remote file systems
+ through the FTP and SFTP protocols or over secure shell, browse
+ contents of tar, ar, rpm, zip, cpio, lha and rar archives just
+ like local files.
+
+ * Almost all operations work with the virtual file system,
+ enabling you to do complex tasks, like viewing files in
+ archives on an FTP server.
+
+ * Mouse support on most terminal emulators for X Window System
+ as well as on the Linux console.
+
+ * Learn Keys: GNU Midnight Commander may be configured at run
+ time to support any kind of input keys for a given terminal,
+ making its operation possible even on most weird terminals.
+
+ * Text and hex editors are available for you to use (hex editor
+ is a part of the viewer).
+
+ * Hotlist allows you to keep a list of common visited locations,
+ including remote sites and directories inside archives.
+
+ * Command completion: By pressing Alt-Tab in any place where a
+ filename or an executable are expected, GNU Midnight Commander
+ will complete the name for you. If you press Alt-Tab for the
+ second time, you get a list box with all possible completions.
+
+ * Subshell support: Run your commands by a real shell
+ interpreter. GNU Midnight Commander interacts with bash,
+ tcsh and zsh to provide you with all of the facilities
+ available in your preferred shell.
+
+ * Find file command can search for the file contents.
+
+ * Background operations allow you to copy or move files from
+ any virtual file system while you do other tasks (i.e., you
+ can do background FTP copies).
+
+ * FTP proxy is supported.
+
+ * Linux file recovery: If you are using Linux, you can recover
+ deleted files from an ext2 or ext3 partition with the undelete
+ file system. This is a low level file recovery function that
+ can recover files deleted by any program on Linux.
+
+ * External panelization: You can run any arbitrary external
+ command and GNU Midnight Commander will display the output
+ generated as a file listing that can be manipulated as a
+ regular directory.
+
+ * Emacs-like key bindings are used in all widgets.
+
+ * Context dependent actions (open, view, edit) are available.
+
+ * The built-in file viewer, together with the context dependent
+ actions is used to format man pages on the fly, coloring mail
+ messages and more.
+
+ * The built-in editor supports syntax highlighting and external
+ actions, such as spell checking and formatting.
+
+
+Mini-documentation
+------------------
+
+These are hints for the text mode edition:
+
+* Use the F-Keys for invoking the commands in the function key bar.
+ If your terminal doesn't support F-keys, you can use the <ESC digit>
+ sequence to invoke the corresponding F-digit key.
+
+* Tab changes the current panel.
+
+* All input lines have emacs-like key-bindings (command history is
+ accessed through the M-p and M-n keys).
+
+* The panels accept C-n, C-p for browsing the panel (like in Emacs).
+
+* M-Enter copies the currently selected file name to the input line.
+
+* M-Tab completes the current word (or tries to).
+
+* The Virtual File System is a cute addition to the project, you may
+ browse in tar and compressed tar files as well as browsing remote
+ machines with the fish file system.
+
+* Please read the manual page.
+
+You can access the whole documentation online with the F1 key,
+although it's not as nice as the groff printed manual page :-)
+
+
+Where to get more information
+-----------------------------
+
+There is a webpage for GNU Midnight Commander at
+
+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/
+
+
+Reporting problems
+------------------
+
+You can report bug on our site, please read
+
+https://www.midnight-commander.org/wiki/doc/reportDefects
+
+Also you can use mc mailing lists to discuss problems.
+
+There are two mailing lists:
+
+ - mc@lists.midnight-commander.org
+ - mc-devel@lists.midnight-commander.org
+
+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).
+
+If the program crashed and produced a core dump, please provide a
+stack trace of the program.
+
+You can do this by running gdb like this:
+
+gdb mc core
+(gdb) where
diff --git a/doc/README.QNX b/doc/README.QNX
new file mode 100644
index 0000000..c4675d0
--- /dev/null
+++ b/doc/README.QNX
@@ -0,0 +1,313 @@
+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
+-------------