diff options
Diffstat (limited to '')
-rw-r--r-- | doc/README | 183 | ||||
-rw-r--r-- | doc/README.QNX | 313 |
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 +------------- |