maybe chmod 0644 './make.conf.catalyst'
maybe chmod 0644 './man.conf'
maybe chmod 0755 './mc'
+maybe chmod 0644 './mc/._cfg0000_filehighlight.ini'
+maybe chmod 0644 './mc/._cfg0000_mc.ext'
+maybe chmod 0644 './mc/._cfg0000_mc.keymap'
+maybe chmod 0644 './mc/._cfg0000_mc.keymap.default'
+maybe chmod 0644 './mc/._cfg0000_mc.keymap.emacs'
+maybe chmod 0644 './mc/._cfg0000_mc.menu'
maybe chmod 0644 './mc/cedit.menu'
maybe chmod 0644 './mc/edit.indent.rc'
maybe chmod 0644 './mc/edit.spell.rc'
maybe chmod 0644 './mc/mc.keymap.emacs'
maybe chmod 0644 './mc/mc.menu'
maybe chmod 0644 './mc/mc.menu.sr'
+maybe chmod 0644 './mc/mcedit.menu'
maybe chmod 0644 './mc/sfs.ini'
maybe chmod 0644 './mdadm.conf'
maybe chmod 0644 './mime.types'
--- /dev/null
+[executable]
+ type=FILE_EXE
+
+[directory]
+ type=DIR
+
+[device]
+ type=DEVICE
+
+[special]
+ type=SPECIAL
+
+[stalelink]
+ type=STALE_LINK
+
+[symlink]
+ type=SYMLINK
+
+[hardlink]
+ type=HARDLINK
+
+[core]
+ regexp=^core\\.*\\d*$
+
+[temp]
+ extensions=tmp;$$$;~;bak
+ extensions_case=false
+ regexp=(^#.*|.*~$)
+
+[archive]
+ extensions=gz;bz2;tar;tgz;rpm;Z;rar;zip;arj;cab;lzh;lha;zoo;arc;ark;xz;tbz;tbz2;7z;ace
+
+[doc]
+ extensions=txt;doc;rtf;diz;ctl;me;ps;pdf;xml;xsd;xslt;dtd;html;shtml;htm;mail;msg;lsm;po;nroff;man;tex;sgml;css;text;letter;chm;docx;docm;xlsx;xlsm;pptx;pptm
+
+[source]
+ extensions=c;h;cc;hh;cpp;cxx;hpp;asm;py;pl;pm;inc;cgi;php;phps;js;java;jav;jasm;sh;bash;diff;patch;pas;tcl;tk;awk;m4;st;mak;sl;ada;caml;ml;mli;mly;mll;mlp;sas;prg;hs;hi;erl
+
+[media]
+ extensions=mp2;mp3;mpg;ogg;mpeg;wav;avi;asf;mov;mol;mpl;xm;mod;it;med;mid;midi;s3m;umx;vob;mkv;flv;mp4;m3u;flac;ape;wma;wmv;3gp
+
+[graph]
+ extensions=jpg;jpeg;gif;png;tif;pcx;bmp;xpm;xbm;eps;pic;rle;ico;wmf;omf;ai;cdr
+
+[database]
+ extensions=dbf;mdn;db;mdb;dat;fox;dbx;mdx;sql;mssql;msql;ssql;pgsql;xls;cdx;dbi
+
--- /dev/null
+# Midnight Commander 3.0 extension file
+# Warning: Structure of this file has changed completely with version 3.0
+#
+# All lines starting with # or empty lines are thrown away.
+# Lines starting in the first column should have following format:
+#
+# keyword/descNL, i.e. everything after keyword/ until new line is desc
+#
+# keyword can be:
+#
+# shell (desc is, when starting with a dot, any extension (no wildcars),
+# i.e. matches all the files *desc . Example: .tar matches *.tar;
+# if it doesn't start with a dot, it matches only a file of that name)
+#
+# regex (desc is an extended regular expression)
+# Please note that we are using the GNU regex library and thus
+# \| matches the literal | and | has special meaning (or) and
+# () have special meaning and \( \) stand for literal ( ).
+#
+# type (file matches this if `file %f` matches regular expression desc
+# (the filename: part from `file %f` is removed))
+#
+# directory (matches any directory matching regular expression desc)
+#
+# include (matches an include directive)
+#
+# default (matches any file no matter what desc is)
+#
+# Other lines should start with a space or tab and should be in the format:
+#
+# keyword=commandNL (with no spaces around =), where keyword should be:
+#
+# Open (if the user presses Enter or doubleclicks it),
+#
+# View (F3), Edit (F4)
+#
+# Include is the keyword used to add any further entries from an include/
+# section
+#
+# command is any one-line shell command, with the following substitutions:
+#
+# %% -> % character
+# %p -> name of the current file (without path, but pwd is its path)
+# %f -> name of the current file. Unlike %p, if file is located on a
+# non-local virtual filesystem, i.e. either tarfs or ftpfs,
+# then the file will be temporarily copied into a local directory
+# and %f will be the full path to this local temporal file.
+# If you don't want to get a local copy and want to get the
+# virtual fs path (like /#ftp:ftp.cvut.cz/pub/hungry/xword), then
+# use %d/%p instead of %f.
+# %d -> name of the current directory (pwd, without trailing slash)
+# %s -> "selected files", i.e. space separated list of tagged files if any
+# or name of the current file
+# %t -> list of tagged files
+# %u -> list of tagged files (they'll be untaged after the command)
+#
+# (If these 6 letters are in uppercase, they refer to the other panel.
+# But you shouldn't have to use it in this file.)
+#
+#
+# %cd -> the rest is a path mc should change into (cd won't work, since it's
+# a child process). %cd handles even vfs names.
+#
+# %view -> the command you type will be piped into mc's internal file viewer
+# if you type only the %view and no command, viewer will load %f file
+# instead (i.e. no piping, so it is different to %view cat %f)
+# %view may be directly followed by {} with a list of any of
+# ascii (Ascii mode), hex (Hex mode), nroff (color highlighting for
+# text using backspace for bold and underscore) and unform
+# (no highlighting for nroff sequences) separated by commas.
+#
+# %var -> You use it like this: %var{VAR:default}. This macro will expand
+# to the value of the VAR variable in the environment if it's set
+# otherwise the value in default will be used. This is similar to
+# the Bourne shell ${VAR-default} construct.
+#
+# Rules are applied from top to bottom, thus the order is important.
+# If some actions are missing, search continues as if this target didn't
+# match (i.e. if a file matches the first and second entry and View action
+# is missing in the first one, then on pressing F3 the View action from
+# the second entry will be used. default should catch all the actions.
+#
+# Any new entries you develop for you are always welcome if they are
+# useful on more than one system. You can post your modifications
+# as tickets at www.midnight-commander.org
+
+
+### Changes ###
+#
+# Reorganization: 2000-05-01 Michal Svec <rebel@penguin.cz>
+
+
+### TODO ###
+#
+# Postscript Open: ps2svga [gs -DEVICE=jpeg|zgv or something]
+# Images asciiview
+#
+# All X Apps [Nothing/Warning] if no DISPLAY
+# Not found [Default/Warning]
+# Empty Output [Default/Warning]
+# Edit: CopyOut+EDIT+CopyIn
+# Security Check gzip/bzip EDIT (mktemp)
+#
+# Maybe: Open/XOpen/GOpen/KOpen/... for Console/X/GNOME/KDE/etc.
+
+
+### GIT Repo ###
+# gitfs changeset
+regex/^\[git\]
+ Open=%cd %p/changesetfs://
+ View=%cd %p/patchsetfs://
+
+### Archives ###
+
+# .tgz, .tpz, .tar.gz, .tar.z, .tar.Z, .ipk
+regex/\.t([gp]?z|ar\.g?[zZ])$|\.ipk$
+ Open=%cd %p/utar://
+ View=%view{ascii} gzip -dc %f 2>/dev/null | tar tvvf -
+
+regex/\.tar\.bz$
+ # Open=%cd %p/utar://
+ View=%view{ascii} bzip -dc %f 2>/dev/null | tar tvvf -
+
+regex/\.t(ar\.bz2|bz2?|b2)$
+ Open=%cd %p/utar://
+ View=%view{ascii} bzip2 -dc %f 2>/dev/null | tar tvvf -
+
+# .tar.lzma, .tlz
+regex/\.t(ar\.lzma|lz)$
+ Open=%cd %p/utar://
+ View=%view{ascii} lzma -dc %f 2>/dev/null | tar tvvf -
+
+# .tar.xz, .txz
+regex/\.t(ar\.xz|xz)$
+ Open=%cd %p/utar://
+ View=%view{ascii} xz -dc %f 2>/dev/null | tar tvvf -
+
+# .tar.F - used in QNX
+regex/\.tar\.F$
+ # Open=%cd %p/utar://
+ View=%view{ascii} freeze -dc %f 2>/dev/null | tar tvvf -
+
+# .qpr/.qpk - QNX Neutrino package installer files
+regex/\.(qp[rk])$
+ Open=%cd %p/utar://
+ View=%view{ascii} gzip -dc %f 2>/dev/null | tar tvvf -
+
+# tar
+regex/\.(tar|TAR)$
+ Open=%cd %p/utar://
+ View=%view{ascii} tar tvvf - < %f
+
+# lha
+type/^LHa\ .*archive
+ Open=%cd %p/ulha://
+ View=%view{ascii} lha l %f
+
+# arj
+regex/\.a(rj|[0-9][0-9])$
+ Open=%cd %p/uarj://
+ View=%view{ascii} unarj l %f
+
+# cab
+regex/\.([cC][aA][bB])$
+ Open=%cd %p/ucab://
+ View=%view{ascii} cabextract -l %f
+
+# ha
+regex/\.([Hh][Aa])$
+ Open=%cd %p/uha://
+ View=%view{ascii} ha lf %f
+
+# rar
+regex/\.[rR]([aA][rR]|[0-9][0-9])$
+ Open=%cd %p/urar://
+ View=%view{ascii} rar v -c- %f
+
+# ALZip
+regex/\.(alz|ALZ)$
+ Open=%cd %p/ualz://
+ View=%view{ascii} unalz -l %f
+
+# cpio
+shell/.cpio.Z
+ Open=%cd %p/ucpio://
+ View=%view{ascii} gzip -dc %f | cpio -itv 2>/dev/null
+
+shell/.cpio.gz
+ Open=%cd %p/ucpio://
+ View=%view{ascii} gzip -dc %f | cpio -itv 2>/dev/null
+
+shell/.cpio
+ Open=%cd %p/ucpio://
+ View=%view{ascii} cpio -itv < %f 2>/dev/null
+
+# ls-lR
+regex/(^|\.)ls-?lR(\.gz|Z|bz2)$
+ Open=%cd %p/lslR://
+
+# patch
+regex/\.(diff|patch)(\.bz2)$
+ Open=%cd %p/patchfs://
+ View=%view{ascii} bzip2 -dc %f 2>/dev/null
+
+regex/\.(diff|patch)(\.(gz|Z))$
+ Open=%cd %p/patchfs://
+ View=%view{ascii} gzip -dc %f 2>/dev/null
+
+regex/\.(diff|patch)$
+ Open=%cd %p/patchfs://
+ View=%view{ascii} /bin/cat %f 2>/dev/null
+
+# ar library
+regex/\.s?a$
+ Open=%cd %p/uar://
+ #Open=%view{ascii} ar tv %f
+ View=%view{ascii} file %f && nm -C %f
+
+# trpm
+regex/\.trpm$
+ Open=%cd %p/trpm://
+ View=%view{ascii} rpm -qivl --scripts `basename %p .trpm`
+
+# RPM packages (SuSE uses *.spm for source packages)
+regex/\.(src\.rpm|spm)$
+ Open=%cd %p/rpm://
+ View=%view{ascii} if rpm --nosignature --version >/dev/null 2>&1; then RPM="rpm --nosignature" ; else RPM="rpm" ; fi ; $RPM -qivlp --scripts %f
+
+regex/\.rpm$
+ Open=%cd %p/rpm://
+ View=%view{ascii} if rpm --nosignature --version >/dev/null 2>&1; then RPM="rpm --nosignature" ; else RPM="rpm" ; fi ; $RPM -qivlp --scripts %f
+
+# deb
+regex/\.u?deb$
+ Open=%cd %p/deb://
+ View=%view{ascii} dpkg-deb -I %f && echo && dpkg-deb -c %f
+
+# dpkg
+shell/.debd
+ Open=%cd %p/debd://
+ View=%view{ascii} dpkg -s `echo %p | sed 's/\([0-9a-z.-]*\).*/\1/'`
+# apt
+shell/.deba
+ Open=%cd %p/deba://
+ View=%view{ascii} apt-cache show `echo %p | sed 's/\([0-9a-z.-]*\).*/\1/'`
+
+# ISO9660
+regex/\.([iI][sS][oO])$
+ Open=%cd %p/iso9660://
+ View=%view{ascii} isoinfo -l -i %f
+
+# 7zip archives (they are not man pages)
+regex/\.(7z|7Z)$
+ Open=%cd %p/u7z://
+ View=%view{ascii} 7za l %f 2>/dev/null
+
+# Mailboxes
+type/^ASCII\ mail\ text
+ Open=%cd %p/mailfs://
+
+
+### Sources ###
+
+# C
+shell/.c
+ Include=editor
+
+# Fortran
+shell/.f
+ Include=editor
+
+# Header
+regex/\.(h|hpp)$
+ Include=editor
+
+# Asm
+shell/.s
+ Include=editor
+
+# C++
+regex/\.(C|cc|cpp)$
+ Include=editor
+
+include/editor
+ Open=%var{EDITOR:vi} %f
+
+# .so libraries
+regex/\.(so|so\.[0-9\.]*)$
+ View=%view{ascii} file %f && nm -C -D %f
+
+# Object
+type/^ELF
+ #Open=%var{PAGER:more} %f
+ View=%view{ascii} file %f && nm -C %f
+
+### Documentation ###
+
+# Texinfo
+regex/\.(te?xi|texinfo)$
+
+# GNU Info page
+type/^Info\ text
+ Open=info -f %f
+
+shell/.info
+ Open=info -f %f
+
+# Exception: .3gp are video files not manual pages
+regex/\.(3[gG][pP])$
+ Include=video
+
+# Manual page
+regex/(([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])|\.man)$
+ Open=case %d/%f in */log/*|*/logs/*) cat %f ;; *) { zsoelim %f 2>/dev/null || cat %f; } | nroff -c -Tlatin1 -mandoc ;; esac | %var{PAGER:more}
+ View=%view{ascii,nroff} case %d/%f in */log/*|*/logs/*) cat %f ;; *) { zsoelim %f 2>/dev/null || cat %f; } | nroff -c -Tlatin1 -mandoc ;; esac
+
+# Perl pod page
+shell/.pod
+ Open=pod2man %f | nroff -c -Tlatin1 -mandoc | %var{PAGER:more}
+ View=%view{ascii,nroff} pod2man %f | nroff -c -Tlatin1 -mandoc
+
+# Troff with me macros.
+# Exception - "read.me" is not a nroff file.
+shell/read.me
+ Open=
+ View=
+
+shell/.me
+ Open=nroff -c -Tlatin1 -me %f | %var{PAGER:more}
+ View=%view{ascii,nroff} nroff -c -Tlatin1 -me %f
+
+# Troff with ms macros.
+shell/.ms
+ Open=nroff -c -Tlatin1 -ms %f | %var{PAGER:more}
+ View=%view{ascii,nroff} nroff -c -Tlatin1 -ms %f
+
+# Manual page - compressed
+regex/([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])\.g?[Zz]$
+ Open=case %d/%f in */log/*|*/logs/*) gzip -dc %f ;; *) gzip -dc %f | nroff -c -Tlatin1 -mandoc ;; esac | %var{PAGER:more}
+ View=%view{ascii,nroff} case %d/%f in */log/*|*/logs/*) gzip -dc %f ;; *) gzip -dc %f | nroff -c -Tlatin1 -mandoc ;; esac
+
+regex/([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])\.bz$
+ Open=case %d/%f in */log/*|*/logs/*) bzip -dc %f ;; *) bzip -dc %f | nroff -c -Tlatin1 -mandoc ;; esac | %var{PAGER:more}
+ View=%view{ascii,nroff} case %d/%f in */log/*|*/logs/*) bzip -dc %f ;; *) bzip -dc %f | nroff -c -Tlatin1 -mandoc ;; esac
+
+regex/([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])\.bz2$
+ Open=case %d/%f in */log/*|*/logs/*) bzip2 -dc %f ;; *) bzip2 -dc %f | nroff -c -Tlatin1 -mandoc ;; esac | %var{PAGER:more}
+ View=%view{ascii,nroff} case %d/%f in */log/*|*/logs/*) bzip2 -dc %f ;; *) bzip2 -dc %f | nroff -c -Tlatin1 -mandoc ;; esac
+
+regex/([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])\.lzma$
+ Open=case %d/%f in */log/*|*/logs/*) lzma -dc %f ;; *) lzma -dc %f | nroff -c -Tlatin1 -mandoc ;; esac | %var{PAGER:more}
+ View=%view{ascii,nroff} case %d/%f in */log/*|*/logs/*) lzma -dc %f ;; *) lzma -dc %f | nroff -c -Tlatin1 -mandoc ;; esac
+
+regex/([^0-9]|^[^\.]*)\.([1-9][A-Za-z]*|[ln])\.xz$
+ Open=case %d/%f in */log/*|*/logs/*) xz -dc %f ;; *) xz -dc %f | nroff -c -Tlatin1 -mandoc ;; esac | %var{PAGER:more}
+ View=%view{ascii,nroff} case %d/%f in */log/*|*/logs/*) xz -dc %f ;; *) xz -dc %f | nroff -c -Tlatin1 -mandoc ;; esac
+
+# CHM
+regex/\.(chm|CHM)$
+ Open=which kchmviewer > /dev/null 2>&1 && (kchmviewer %f &) || (xchm %f &)
+
+### Images ###
+
+type/^GIF
+ Include=image
+
+type/^JPEG
+ View=%view{ascii} identify %f; test -x /usr/bin/exif && echo && exif %f 2>/dev/null
+ Include=image
+
+type/^PC\ bitmap
+ Include=image
+
+type/^PNG
+ Include=image
+
+type/^TIFF
+ Include=image
+
+type/^PBM
+ Include=image
+
+type/^PGM
+ Include=image
+
+type/^PPM
+ Include=image
+
+type/^Netpbm
+ Include=image
+
+shell/.xcf
+ Open=(gimp %f &)
+
+shell/.xbm
+ Open=bitmap %f
+
+shell/.xpm
+ Include=image
+ View=sxpm %f
+
+shell/.ico
+ Include=image
+
+include/image
+ Open=if [ "$DISPLAY" = "" ]; then zgv %f; else (gqview %f &); fi
+ View=%view{ascii} identify %f
+ #View=%view{ascii} asciiview %f
+
+
+### Sound files ###
+
+regex/\.([wW][aA][vV]|[sS][nN][dD]|[vV][oO][cC]|[aA][uU]|[sS][mM][pP]|[aA][iI][fF][fF]|[sS][nN][dD])$
+ Open=if [ "$DISPLAY" = "" ]; then play %f; else (xmms %f >/dev/null 2>&1 &); fi
+
+regex/\.([mM][oO][dD]|[sS]3[mM]|[xX][mM]|[iI][tT]|[mM][tT][mM]|669|[sS][tT][mM]|[uU][lL][tT]|[fF][aA][rR])$
+ Open=mikmod %f
+ #Open=tracker %f
+
+regex/\.([wW][aA][wW]22)$
+ Open=vplay -s 22 %f
+
+regex/\.([mM][pP]3)$
+ Open=if [ "$DISPLAY" = "" ]; then mpg123 %f; else (xmms %f >/dev/null 2>&1 &); fi
+ View=%view{ascii} mpg123 -vtn1 %f 2>&1 | sed -n '/^Title/,/^Comment/p;/^MPEG/,/^Audio/p'
+
+regex/\.([oO][gG][gG|aA|vV|xX])$
+ Open=if [ "$DISPLAY" = "" ]; then ogg123 %f; else (xmms %f >/dev/null 2>&1 &); fi
+ View=%view{ascii} ogginfo %s
+
+regex/\.([sS][pP][xX]|[fF][lL][aA][cC])$
+ Open=if [ "$DISPLAY" = "" ]; then play %f; else (xmms %f >/dev/null 2>&1 &); fi
+
+regex/\.([mM][iI][dD][iI]?|[rR][mM][iI][dD]?)$
+ Open=timidity %f
+
+regex/\.([wW][mM][aA])$
+ Open=mplayer -vo null %f
+ View=%view{ascii} mplayer -quiet -slave -frames 0 -vo null -ao null -identify %f 2>/dev/null | tail +13 || file %f
+
+
+### Play lists ###
+
+regex/\.([mM]3[uU]|[pP][lL][sS])$
+ Open=if [ -z "$DISPLAY" ]; then mplayer -vo null -playlist %f; else (xmms -p %f >/dev/null 2>&1 &); fi
+
+
+### Video ###
+
+regex/\.([aA][vV][iI])$
+ Include=video
+
+regex/\.([aA][sS][fFxX])$
+ Include=video
+
+regex/\.([dD][iI][vV][xX])$
+ Include=video
+
+regex/\.([mM][kK][vV])$
+ Include=video
+
+regex/\.([mM][oO][vV]|[qQ][tT])$
+ Include=video
+
+regex/\.([mM][pP]4|[mM][pP][eE]?[gG])$
+ Include=video
+
+# MPEG-2 TS container + H.264 codec
+regex/\.([mM][tT][sS])$
+ Include=video
+
+regex/\.([vV][oO][bB])$
+ Include=video
+
+regex/\.([wW][mM][vV])$
+ Include=video
+
+regex/\.([fF][lL][iIcCvV])$
+ Include=video
+
+regex/\.([oO][gG][mM])$
+ Include=video
+
+regex/\.([rR][aA]?[mM])$
+ Open=(realplay %f >/dev/null 2>&1 &)
+
+include/video
+ Open=(mplayer %f >/dev/null 2>&1 &)
+ #Open=(gtv %f >/dev/null 2>&1 &)
+ #Open=(xanim %f >/dev/null 2>&1 &)
+
+
+### Documents ###
+
+# Postscript
+type/^PostScript
+ Open=(gv %f &)
+ View=%view{ascii} ps2ascii %f
+
+# PDF
+type/^PDF
+ Open=(xpdf %f &)
+ #Open=(acroread %f &)
+ #Open=(ghostview %f &)
+ View=%view{ascii} pdftotext %f -
+
+# The following code very ugly and should not be taken as example.
+# It should be cleaned up when the new format of mc.ext is developed.
+
+# html
+regex/\.([hH][tT][mM][lL]?)$
+ Open=(if test -n "" && test -n "$DISPLAY"; then ( file://%d/%p &) 1>&2; else links %f || lynx -force_html %f || ${PAGER:-more} %f; fi) 2>/dev/null
+ View=%view{ascii} links -dump %f 2>/dev/null || w3m -dump %f 2>/dev/null || lynx -dump -force_html %f
+
+# StarOffice 5.2
+shell/.sdw
+ Open=(ooffice %f &)
+
+# StarOffice 6 and OpenOffice.org formats
+regex/\.(odt|ott|sxw|stw|ods|ots|sxc|stc|odp|otp|sxi|sti|odg|otg|sxd|std|odb|odf|sxm|odm|sxg)$
+ Open=(ooffice %f &)
+ View=%view{ascii} odt2txt %f
+
+# AbiWord
+shell/.abw
+ Open=(abiword %f &)
+
+# Microsoft Word Document
+regex/\.([Dd][oO][cCtT]|[Ww][rR][iI])$
+ Open=(abiword %f >/dev/null 2>&1 &)
+ View=%view{ascii} antiword -t %f || catdoc -w %f || word2x -f text %f - || strings %f
+type/^Microsoft\ Word
+ Open=(abiword %f >/dev/null 2>&1 &)
+ View=%view{ascii} antiword -t %f || catdoc -w %f || word2x -f text %f - || strings %f
+
+# RTF document
+regex/\.([rR][tT][fF])$
+ Open=(abiword %f >/dev/null 2>&1 &)
+
+# Microsoft Excel Worksheet
+regex/\.([xX][lL][sSwW])$
+ Open=(gnumeric %f >/dev/null 2>&1 &)
+ View=%view{ascii} xls2csv %f || strings %f
+type/^Microsoft\ Excel
+ Open=(gnumeric %f >/dev/null 2>&1 &)
+ View=%view{ascii} xls2csv %f || strings %f
+
+# Use OpenOffice.org to open any MS Office documents
+type/^Microsoft\ Office\ Document
+ Open=(ooffice %f &)
+
+# Framemaker
+type/^FrameMaker
+ Open=fmclient -f %f
+
+# DVI
+regex/\.([dD][vV][iI])$
+ Open=if [ x$DISPLAY = x ]; then dvisvga %f; else (xdvi %f &); fi
+ View=%view{ascii} dvi2tty %f
+
+# TeX
+regex/\.([Tt][Ee][Xx])$
+ Include=editor
+
+# DjVu
+regex/\.(djvu|DJVU)$
+ Open=djview %f &
+
+### Miscellaneous ###
+
+# Makefile
+regex/[Mm]akefile$
+ Open=make -f %f %{Enter parameters}
+
+# Imakefile
+shell/Imakefile
+ Open=xmkmf -a
+
+# Makefile.PL (MakeMaker)
+regex/^Makefile.(PL|pl)$
+ Open=%var{PERL:perl} %f
+
+# dbf
+regex/\.([dD][bB][fF])$
+ Open=%view{ascii} dbview %f
+ View=%view{ascii} dbview -b %f
+
+# REXX script
+regex/\.(rexx?|cmd)$
+ Open=rexx %f %{Enter parameters};echo "Press ENTER";read y
+
+# Disk images for Commodore computers (VIC20, C64, C128)
+regex/\.(d64|D64)$
+ Open=%cd %p/uc1541://
+ View=%view{ascii} c1541 %f -list
+ Extract=c1541 %f -extract
+
+# Glade, a user interface designer for GTK+ and GNOME
+regex/\.([Gg][Ll][Aa][Dd][Ee])$
+ Open=if glade-3 --version >/dev/null 2>&1; then (glade-3 %f >/dev/null 2>&1 &); else (glade-2 %f >/dev/null 2>&1 &); fi
+
+# Gettext Catalogs
+shell/.mo
+ View=%view{ascii} msgunfmt %f || cat %f
+
+# lyx
+regex/\.(lyx|LYX)$
+ Open=lyx %f
+ View=%view{ascii} lyxcat %f
+
+# torrent
+regex/\.([tT][oO][rR][rR][eE][nN][tT])$
+ View=%view{ascii} ctorrent -x %f 2>/dev/null
+
+### Plain compressed files ###
+
+# ace
+regex/\.(ace|ACE)$
+ Open=%cd %p/uace://
+ View=%view{ascii} unace l %f
+ Extract=unace x %f
+
+# arc
+regex/\.(arc|ARC)$
+ Open=%cd %p/uarc://
+ View=%view{ascii} arc l %f
+ Extract=arc x %f '*'
+ Extract (with flags)=I=%{Enter any Arc flags:}; if test -n "$I"; then arc x $I %f; fi
+
+# zip
+type/^([Zz][Ii][Pp])\ archive
+ Open=%cd %p/uzip://
+ View=%view{ascii} unzip -v %f
+
+# zoo
+regex/\.([Zz][Oo][Oo])$
+ Open=%cd %p/uzoo://
+ View=%view{ascii} zoo l %f
+
+# gzip
+type/^gzip
+ Open=gzip -dc %f | %var{PAGER:more}
+ View=%view{ascii} gzip -dc %f 2>/dev/null
+
+regex/\.(gz|Z)$
+ View=%view{ascii} gzip -dc %f 2>/dev/null
+
+# bzip2
+type/^bzip2
+ Open=bzip2 -dc %f | %var{PAGER:more}
+ View=%view{ascii} bzip2 -dc %f 2>/dev/null
+
+regex/\.bz2?$
+ View=%view{ascii} bzip2 -dc %f 2>/dev/null
+
+# bzip
+type/^bzip
+ Open=bzip -dc %f | %var{PAGER:more}
+ View=%view{ascii} bzip -dc %f 2>/dev/null
+
+# compress
+type/^compress
+ Open=gzip -dc %f | %var{PAGER:more}
+ View=%view{ascii} gzip -dc %f 2>/dev/null
+
+# lzma
+regex/\.lzma$
+ Open=lzma -dc %f | %var{PAGER:more}
+ View=%view{ascii} lzma -dc %f 2>/dev/null
+
+# xz
+regex/\.xz$
+ Open=xz -dc %f | %var{PAGER:more}
+ View=%view{ascii} xz -dc %f 2>/dev/null
+
+### Default ###
+
+# Default target for anything not described above
+default/*
+ Open=
+ View=
+
+
+### EOF ###
--- /dev/null
+[main]
+Help = f1
+UserMenu = f2
+View = f3
+ViewFile =
+Edit = f4
+EditForceInternal =
+Copy = f5
+Move = f6
+MakeDir = f7
+Delete = f8
+Menu = f9
+Quit = f10
+MenuLastSelected = f19
+QuitQuiet = f20
+Find = alt-question
+CdQuick = alt-c
+HotList = ctrl-backslash
+Reread = ctrl-r
+DirSize = ctrl-space
+Suspend = ctrl-z
+Swap = ctrl-u
+History = alt-h
+PanelListing =
+PanelListingSwitch = alt-t
+PanelListingChange =
+ShowHidden = alt-dot
+SplitVertHoriz = alt-comma
+Shell = ctrl-o
+PutCurrentPath = alt-a
+PutOtherPath = alt-shift-a
+ViewFiltered = alt-exclamation
+Select = kpplus
+Unselect = kpminus
+SelectInvert = kpasterisk
+ScreenList = alt-prime
+OptionsLayout =
+OptionsPanel =
+OptionsConfirm =
+OptionsDisplayBits =
+OptionsVfs =
+LearnKeys =
+SaveSetup =
+EditExtensionsFile =
+EditFileHighlightFile =
+Filter =
+ConnectFish =
+ConnectFtp =
+ConnectSmb =
+Undelete =
+ExtendedKeyMap = ctrl-x
+
+[main:xmap]
+ChangeMode = c
+ChangeOwn = o
+CompareDirs = d
+CompareFiles = ctrl-d
+HotListAdd = h
+LinkSymbolicEdit = ctrl-s
+Link = l
+LinkSymbolic = s
+LinkSymbolicRelative = v
+PanelInfo = i
+PanelQuickView = q
+ExternalPanelize = exclamation
+VfsList = a
+Jobs = j
+PutCurrentPath = p
+PutOtherPath = ctrl-p
+PutCurrentTagged = t
+PutOtherTagged = ctrl-t
+PutCurrentLink = r
+PutOtherLink = ctrl-r
+
+[panel]
+Search = ctrl-s; alt-s
+Mark = insert; ctrl-t
+MarkUp = shift-up
+MarkDown = shift-down
+MarkLeft =
+MarkRight =
+Down = down; ctrl-n
+Up = up; ctrl-p
+Left = left
+Right = right
+PageUp = pgup; alt-v
+PageDown = pgdn; ctrl-v
+Enter = enter
+PanelOtherCd = alt-o
+PanelOtherCdLink = alt-l
+ViewRaw = f13
+EditNew = f14
+CopySingle = f15
+MoveSingle = f16
+DeleteSingle = f18
+Select = alt-plus
+Unselect = alt-minus
+SelectInvert = alt-asterisk
+CdChild = ctrl-pgdn
+CdParent = ctrl-pgup
+CdParentSmart =
+Panelize =
+History = alt-shift-h
+HistoryNext = alt-u
+HistoryPrev = alt-y
+BottomOnScreen = alt-j
+MiddleOnScreen = alt-r
+TopOnScreen = alt-g
+PanelOtherSync = alt-i
+SelectCodepage = alt-e
+Top = alt-lt; home; a1
+Bottom = alt-gt; end; c1
+Sort =
+SortPrev =
+SortNext =
+SortReverse =
+SortByName =
+SortByExt =
+SortBySize =
+SortByMTime =
+
+[dialog]
+Ok = enter
+Cancel = f10; esc; ctrl-g
+Up = left; up
+#Left = left; up
+Down = right; down
+#Right = right; down
+Help = f1
+Suspend = ctrl-z
+Refresh = ctrl-l
+ScreenList = alt-prime
+ScreenNext = alt-rbrace
+ScreenPrev = alt-lbrace
+
+[input]
+Home = ctrl-a; alt-lt; home; a1
+End = ctrl-e; alt-gt; end; c1
+Left = left; alt-left; ctrl-b
+Right = right; alt-right; ctrl-f
+WordLeft = ctrl-left; alt-b
+WordRight = ctrl-right; alt-f
+Backspace = backspace; ctrl-h
+Delete = delete; ctrl-d
+DeleteToWordBegin = alt-backspace
+DeleteToWordEnd = alt-d
+Mark =
+Remove = ctrl-w
+Cut =
+Store = alt-w
+Paste =
+Yank = ctrl-y
+DeleteToEnd = ctrl-k
+HistoryPrev = alt-p; ctrl-down
+HistoryNext = alt-n; ctrl-up
+History = alt-h
+Complete = alt-tab
+Clear =
+MarkLeft = shift-left
+MarkRight = shift-right
+MarkToWordBegin = ctrl-shift-left
+MarkToWordEnd = ctrl-shift-right
+MarkToHome = shift-home
+MarkToEnd = shift-end
+
+[listbox]
+Up = up; ctrl-p
+Down = down; ctrl-n
+Top = home; alt-lt; a1
+Bottom = end; alt-gt; c1
+PageUp = pgup; alt-v
+PageDown = pgdn; ctrl-v
+Delete = delete; d
+Clear = shift-delete; shift-d
+
+[tree]
+Help = f1
+Reread = f2; ctrl-r
+Forget = f3
+ToggleNavigation = f4
+Copy = f5
+Move = f6
+Up = up; ctrl-p
+Down = down; ctrl-n
+Left = left
+Right = right
+Top = home; alt-lt; a1
+Bottom = end; alt-gt; c1
+PageUp = pgup; alt-v
+PageDown = pgdn; ctrl-v
+Enter = enter
+Search = ctrl-s; alt-s
+Delete = f8; delete
+
+[help]
+Help = f1
+Index = f2; c
+Back = f3; left; l
+Quit = f10; esc
+Up = up; ctrl-p
+Down = down; ctrl-n
+PageDown = f; space; pgdn; ctrl-v
+PageUp = b; pgup; alt-v; backspace
+HalfPageDown = d
+HalfPageUp = u
+Top = home; ctrl-home; ctrl-pgup; a1; alt-lt; g
+Bottom = end; ctrl-end; ctrl-pgdn; c1; alt-gt; shift-g
+Enter = right; enter
+LinkNext = tab
+LinkPrev = alt-tab
+NodeNext = n
+NodePrev = p
+
+[editor]
+Store = ctrl-insert
+Paste = shift-insert
+Cut = shift-delete
+Up = up
+Down = down
+Left = left
+Right = right
+WordLeft = ctrl-left; ctrl-z
+WordRight = ctrl-right; ctrl-x
+Enter = enter
+Return = shift-enter
+BackSpace = backspace; ctrl-h
+Delete = delete; ctrl-d
+PageUp = pgup
+PageDown = pgdn
+Home = home
+End = end
+Tab = tab
+Undo = ctrl-u
+Redo = alt-r
+Top = ctrl-home; alt-lt
+Bottom = ctrl-end; alt-gt
+ScrollUp = ctrl-up
+ScrollDown = ctrl-down
+TopOnScreen = ctrl-pgup
+BottomOnScreen = ctrl-pgdn
+DeleteToWordBegin = alt-backspace
+DeleteToWordEnd = alt-d
+DeleteLine = ctrl-y
+DeleteToEnd = ctrl-k
+DeleteToHome =
+ParagraphUp =
+ParagraphDown =
+Save = f2
+EditFile =
+EditNew = ctrl-n
+SaveAs = f12; ctrl-f2
+Mark = f3
+Copy = f5
+Move = f6
+Remove = f8
+MarkLine =
+MarkWord =
+MarkAll =
+Unmark =
+Search = f7
+SearchContinue = f17
+BlockShiftLeft =
+BlockShiftRight =
+MarkPageUp = shift-pgup
+MarkPageDown = shift-pgdn
+MarkLeft = shift-left
+MarkRight = shift-right
+MarkToWordBegin = ctrl-shift-left
+MarkToWordEnd = ctrl-shift-right
+MarkUp = shift-up
+MarkDown = shift-down
+MarkToHome = shift-home
+MarkToEnd = shift-end
+MarkToFileBegin = ctrl-shift-home
+MarkToFileEnd = ctrl-shift-end
+MarkToPageBegin = ctrl-shift-pgup
+MarkToPageEnd = ctrl-shift-pgdn
+MarkScrollUp = ctrl-shift-up
+MarkScrollDown = ctrl-shift-down
+MarkParagraphUp =
+MarkParagraphDown =
+MarkColumnPageUp = alt-pgup
+MarkColumnPageDown = alt-pgdn
+MarkColumnLeft = alt-left
+MarkColumnRight = alt-right
+MarkColumnUp = alt-up
+MarkColumnDown = alt-down
+MarkColumnScrollUp =
+MarkColumnScrollDown =
+MarkColumnParagraphUp =
+MarkColumnParagraphDown =
+BlockSave = ctrl-f
+MarkColumn = f13
+Replace = f4
+ReplaceContinue = f14
+Complete = alt-tab
+InsertFile = f15
+Quit = f10
+InsertOverwrite = insert
+Help = f1
+Date =
+Refresh = ctrl-l
+Goto = alt-l
+Sort = alt-t
+Mail = alt-m
+ParagraphFormat = alt-p
+MatchBracket = alt-b
+ExternalCommand = alt-u
+UserMenu = f11
+Menu = f9
+Bookmark = alt-k
+BookmarkFlush = alt-o
+BookmarkNext = alt-j
+BookmarkPrev = alt-i
+History =
+Shell = ctrl-o
+InsertLiteral = ctrl-q
+MacroStartRecord =
+MacroStopRecord =
+MacroStartStopRecord = ctrl-r
+MacroDelete =
+ShowNumbers = alt-n
+ShowTabTws = alt-underline
+SyntaxOnOff = ctrl-s
+SyntaxChoose =
+ShowMargin =
+Find = alt-enter
+FilePrev = alt-minus
+FileNext = alt-plus
+RepeatStartStopRecord =
+SelectCodepage = alt-e
+Options =
+OptionsSaveMode =
+LearnKeys =
+ExtendedKeyMap =
+
+[viewer]
+Help = f1
+WrapMode = f2
+Quit = f3; f10; q; esc
+HexMode = f4
+Goto = f5
+Search = f7; question; slash
+SearchContinue = ctrl-r; ctrl-s; f17; n
+MagicMode = f8
+NroffMode = f9
+Home = ctrl-a
+End = ctrl-e
+Left = h; left
+Right = l; right
+LeftQuick = ctrl-left
+RightQuick = ctrl-right
+Up = k; y; insert; up; ctrl-p
+Down = j; e; delete; down; enter; ctrl-n
+PageDown = f; space; pgdn; ctrl-v
+PageUp = b; pgup; alt-v; backspace
+HalfPageDown = d
+HalfPageUp = u
+Top = home; ctrl-home; ctrl-pgup; a1; alt-lt; g
+Bottom = end; ctrl-end; ctrl-pgdn; c1; alt-gt; shift-g
+BookmarkGoto = m
+Bookmark = r
+FileNext = ctrl-f
+FilePrev = ctrl-b
+SelectCodepage = alt-e
+Shell = ctrl-o
+Ruler = alt-r
+
+[viewer:hex]
+Help = f1
+HexEditMode = f2
+Quit = f3; f10; q; esc
+HexMode = f4
+Goto = f5
+Save = f6
+Search = f7; question; slash
+SearchContinue = ctrl-r; ctrl-s; f17; n
+MagicMode = f8
+NroffMode = f9
+ToggleNavigation = tab
+Home = ctrl-a; home
+End = ctrl-e; end
+Left = b; left
+Right = f; right
+Up = k; y; up
+Down = j; delete; down
+PageDown = pgdn; ctrl-v
+PageUp = pgup; alt-v
+Top = ctrl-home; ctrl-pgup; a1; alt-lt; g
+Bottom = ctrl-end; ctrl-pgdn; c1; alt-gt; shift-g
+
+[diffviewer]
+ShowSymbols = alt-s; s
+ShowNumbers = alt-n; l
+SplitFull = f
+SplitEqual = equal
+SplitMore = gt
+SplitLess = lt
+Tab2 = 2
+Tab3 = 3
+Tab4 = 4
+Tab8 = 8
+Swap = ctrl-u
+Redo = ctrl-r
+HunkNext = n; enter; space
+HunkPrev = p; backspace
+Goto = g; shift-g
+Save = f2
+Edit = f4
+EditOther = f14
+Merge = f5
+Search = f7
+SearchContinue = f17
+Options = f9
+Top = ctrl-home
+Bottom = ctrl-end
+Down = down
+Up = up
+LeftQuick = ctrl-left
+RightQuick = ctrl-right
+Left = left
+Right = right
+PageDown = pgdn
+PageUp = pgup
+Home = home
+End = end
+Help = f1
+Quit = f10; q; shift-q; esc
+Shell = ctrl-o
+SelectCodepage = alt-e
--- /dev/null
+[main]
+Help = f1
+UserMenu = f2
+View = f3
+ViewFile =
+Edit = f4
+EditForceInternal =
+Copy = f5
+Move = f6
+MakeDir = f7
+Delete = f8
+Menu = f9
+Quit = f10
+MenuLastSelected = f19
+QuitQuiet = f20
+Find = alt-question
+CdQuick = alt-c
+HotList = ctrl-backslash
+Reread = ctrl-r
+DirSize = ctrl-space
+Suspend = ctrl-z
+Swap = ctrl-u
+History = alt-h
+PanelListing =
+PanelListingSwitch = alt-t
+PanelListingChange =
+ShowHidden = alt-dot
+SplitVertHoriz = alt-comma
+Shell = ctrl-o
+PutCurrentPath = alt-a
+PutOtherPath = alt-shift-a
+ViewFiltered = alt-exclamation
+Select = kpplus
+Unselect = kpminus
+SelectInvert = kpasterisk
+ScreenList = alt-prime
+OptionsLayout =
+OptionsPanel =
+OptionsConfirm =
+OptionsDisplayBits =
+OptionsVfs =
+LearnKeys =
+SaveSetup =
+EditExtensionsFile =
+EditFileHighlightFile =
+Filter =
+ConnectFish =
+ConnectFtp =
+ConnectSmb =
+Undelete =
+ExtendedKeyMap = ctrl-x
+
+[main:xmap]
+ChangeMode = c
+ChangeOwn = o
+CompareDirs = d
+CompareFiles = ctrl-d
+HotListAdd = h
+LinkSymbolicEdit = ctrl-s
+Link = l
+LinkSymbolic = s
+LinkSymbolicRelative = v
+PanelInfo = i
+PanelQuickView = q
+ExternalPanelize = exclamation
+VfsList = a
+Jobs = j
+PutCurrentPath = p
+PutOtherPath = ctrl-p
+PutCurrentTagged = t
+PutOtherTagged = ctrl-t
+PutCurrentLink = r
+PutOtherLink = ctrl-r
+
+[panel]
+Search = ctrl-s; alt-s
+Mark = insert; ctrl-t
+MarkUp = shift-up
+MarkDown = shift-down
+MarkLeft =
+MarkRight =
+Down = down; ctrl-n
+Up = up; ctrl-p
+Left = left
+Right = right
+PageUp = pgup; alt-v
+PageDown = pgdn; ctrl-v
+Enter = enter
+PanelOtherCd = alt-o
+PanelOtherCdLink = alt-l
+ViewRaw = f13
+EditNew = f14
+CopySingle = f15
+MoveSingle = f16
+DeleteSingle = f18
+Select = alt-plus
+Unselect = alt-minus
+SelectInvert = alt-asterisk
+CdChild = ctrl-pgdn
+CdParent = ctrl-pgup
+CdParentSmart =
+Panelize =
+History = alt-shift-h
+HistoryNext = alt-u
+HistoryPrev = alt-y
+BottomOnScreen = alt-j
+MiddleOnScreen = alt-r
+TopOnScreen = alt-g
+PanelOtherSync = alt-i
+SelectCodepage = alt-e
+Top = alt-lt; home; a1
+Bottom = alt-gt; end; c1
+Sort =
+SortPrev =
+SortNext =
+SortReverse =
+SortByName =
+SortByExt =
+SortBySize =
+SortByMTime =
+
+[dialog]
+Ok = enter
+Cancel = f10; esc; ctrl-g
+Up = left; up
+#Left = left; up
+Down = right; down
+#Right = right; down
+Help = f1
+Suspend = ctrl-z
+Refresh = ctrl-l
+ScreenList = alt-prime
+ScreenNext = alt-rbrace
+ScreenPrev = alt-lbrace
+
+[input]
+Home = ctrl-a; alt-lt; home; a1
+End = ctrl-e; alt-gt; end; c1
+Left = left; alt-left; ctrl-b
+Right = right; alt-right; ctrl-f
+WordLeft = ctrl-left; alt-b
+WordRight = ctrl-right; alt-f
+Backspace = backspace; ctrl-h
+Delete = delete; ctrl-d
+DeleteToWordBegin = alt-backspace
+DeleteToWordEnd = alt-d
+Mark =
+Remove = ctrl-w
+Cut =
+Store = alt-w
+Paste =
+Yank = ctrl-y
+DeleteToEnd = ctrl-k
+HistoryPrev = alt-p; ctrl-down
+HistoryNext = alt-n; ctrl-up
+History = alt-h
+Complete = alt-tab
+Clear =
+MarkLeft = shift-left
+MarkRight = shift-right
+MarkToWordBegin = ctrl-shift-left
+MarkToWordEnd = ctrl-shift-right
+MarkToHome = shift-home
+MarkToEnd = shift-end
+
+[listbox]
+Up = up; ctrl-p
+Down = down; ctrl-n
+Top = home; alt-lt; a1
+Bottom = end; alt-gt; c1
+PageUp = pgup; alt-v
+PageDown = pgdn; ctrl-v
+Delete = delete; d
+Clear = shift-delete; shift-d
+
+[tree]
+Help = f1
+Reread = f2; ctrl-r
+Forget = f3
+ToggleNavigation = f4
+Copy = f5
+Move = f6
+Up = up; ctrl-p
+Down = down; ctrl-n
+Left = left
+Right = right
+Top = home; alt-lt; a1
+Bottom = end; alt-gt; c1
+PageUp = pgup; alt-v
+PageDown = pgdn; ctrl-v
+Enter = enter
+Search = ctrl-s; alt-s
+Delete = f8; delete
+
+[help]
+Help = f1
+Index = f2; c
+Back = f3; left; l
+Quit = f10; esc
+Up = up; ctrl-p
+Down = down; ctrl-n
+PageDown = f; space; pgdn; ctrl-v
+PageUp = b; pgup; alt-v; backspace
+HalfPageDown = d
+HalfPageUp = u
+Top = home; ctrl-home; ctrl-pgup; a1; alt-lt; g
+Bottom = end; ctrl-end; ctrl-pgdn; c1; alt-gt; shift-g
+Enter = right; enter
+LinkNext = tab
+LinkPrev = alt-tab
+NodeNext = n
+NodePrev = p
+
+[editor]
+Store = ctrl-insert
+Paste = shift-insert
+Cut = shift-delete
+Up = up
+Down = down
+Left = left
+Right = right
+WordLeft = ctrl-left; ctrl-z
+WordRight = ctrl-right; ctrl-x
+Enter = enter
+Return = shift-enter
+BackSpace = backspace; ctrl-h
+Delete = delete; ctrl-d
+PageUp = pgup
+PageDown = pgdn
+Home = home
+End = end
+Tab = tab
+Undo = ctrl-u
+Redo = alt-r
+Top = ctrl-home; alt-lt
+Bottom = ctrl-end; alt-gt
+ScrollUp = ctrl-up
+ScrollDown = ctrl-down
+TopOnScreen = ctrl-pgup
+BottomOnScreen = ctrl-pgdn
+DeleteToWordBegin = alt-backspace
+DeleteToWordEnd = alt-d
+DeleteLine = ctrl-y
+DeleteToEnd = ctrl-k
+DeleteToHome =
+ParagraphUp =
+ParagraphDown =
+Save = f2
+EditFile =
+EditNew = ctrl-n
+SaveAs = f12; ctrl-f2
+Mark = f3
+Copy = f5
+Move = f6
+Remove = f8
+MarkLine =
+MarkWord =
+MarkAll =
+Unmark =
+Search = f7
+SearchContinue = f17
+BlockShiftLeft =
+BlockShiftRight =
+MarkPageUp = shift-pgup
+MarkPageDown = shift-pgdn
+MarkLeft = shift-left
+MarkRight = shift-right
+MarkToWordBegin = ctrl-shift-left
+MarkToWordEnd = ctrl-shift-right
+MarkUp = shift-up
+MarkDown = shift-down
+MarkToHome = shift-home
+MarkToEnd = shift-end
+MarkToFileBegin = ctrl-shift-home
+MarkToFileEnd = ctrl-shift-end
+MarkToPageBegin = ctrl-shift-pgup
+MarkToPageEnd = ctrl-shift-pgdn
+MarkScrollUp = ctrl-shift-up
+MarkScrollDown = ctrl-shift-down
+MarkParagraphUp =
+MarkParagraphDown =
+MarkColumnPageUp = alt-pgup
+MarkColumnPageDown = alt-pgdn
+MarkColumnLeft = alt-left
+MarkColumnRight = alt-right
+MarkColumnUp = alt-up
+MarkColumnDown = alt-down
+MarkColumnScrollUp =
+MarkColumnScrollDown =
+MarkColumnParagraphUp =
+MarkColumnParagraphDown =
+BlockSave = ctrl-f
+MarkColumn = f13
+Replace = f4
+ReplaceContinue = f14
+Complete = alt-tab
+InsertFile = f15
+Quit = f10
+InsertOverwrite = insert
+Help = f1
+Date =
+Refresh = ctrl-l
+Goto = alt-l
+Sort = alt-t
+Mail = alt-m
+ParagraphFormat = alt-p
+MatchBracket = alt-b
+ExternalCommand = alt-u
+UserMenu = f11
+Menu = f9
+Bookmark = alt-k
+BookmarkFlush = alt-o
+BookmarkNext = alt-j
+BookmarkPrev = alt-i
+History =
+Shell = ctrl-o
+InsertLiteral = ctrl-q
+MacroStartRecord =
+MacroStopRecord =
+MacroStartStopRecord = ctrl-r
+MacroDelete =
+ShowNumbers = alt-n
+ShowTabTws = alt-underline
+SyntaxOnOff = ctrl-s
+SyntaxChoose =
+ShowMargin =
+Find = alt-enter
+FilePrev = alt-minus
+FileNext = alt-plus
+RepeatStartStopRecord =
+SelectCodepage = alt-e
+Options =
+OptionsSaveMode =
+LearnKeys =
+ExtendedKeyMap =
+
+[viewer]
+Help = f1
+WrapMode = f2
+Quit = f3; f10; q; esc
+HexMode = f4
+Goto = f5
+Search = f7; question; slash
+SearchContinue = ctrl-r; ctrl-s; f17; n
+MagicMode = f8
+NroffMode = f9
+Home = ctrl-a
+End = ctrl-e
+Left = h; left
+Right = l; right
+LeftQuick = ctrl-left
+RightQuick = ctrl-right
+Up = k; y; insert; up; ctrl-p
+Down = j; e; delete; down; enter; ctrl-n
+PageDown = f; space; pgdn; ctrl-v
+PageUp = b; pgup; alt-v; backspace
+HalfPageDown = d
+HalfPageUp = u
+Top = home; ctrl-home; ctrl-pgup; a1; alt-lt; g
+Bottom = end; ctrl-end; ctrl-pgdn; c1; alt-gt; shift-g
+BookmarkGoto = m
+Bookmark = r
+FileNext = ctrl-f
+FilePrev = ctrl-b
+SelectCodepage = alt-e
+Shell = ctrl-o
+Ruler = alt-r
+
+[viewer:hex]
+Help = f1
+HexEditMode = f2
+Quit = f3; f10; q; esc
+HexMode = f4
+Goto = f5
+Save = f6
+Search = f7; question; slash
+SearchContinue = ctrl-r; ctrl-s; f17; n
+MagicMode = f8
+NroffMode = f9
+ToggleNavigation = tab
+Home = ctrl-a; home
+End = ctrl-e; end
+Left = b; left
+Right = f; right
+Up = k; y; up
+Down = j; delete; down
+PageDown = pgdn; ctrl-v
+PageUp = pgup; alt-v
+Top = ctrl-home; ctrl-pgup; a1; alt-lt; g
+Bottom = ctrl-end; ctrl-pgdn; c1; alt-gt; shift-g
+
+[diffviewer]
+ShowSymbols = alt-s; s
+ShowNumbers = alt-n; l
+SplitFull = f
+SplitEqual = equal
+SplitMore = gt
+SplitLess = lt
+Tab2 = 2
+Tab3 = 3
+Tab4 = 4
+Tab8 = 8
+Swap = ctrl-u
+Redo = ctrl-r
+HunkNext = n; enter; space
+HunkPrev = p; backspace
+Goto = g; shift-g
+Save = f2
+Edit = f4
+EditOther = f14
+Merge = f5
+Search = f7
+SearchContinue = f17
+Options = f9
+Top = ctrl-home
+Bottom = ctrl-end
+Down = down
+Up = up
+LeftQuick = ctrl-left
+RightQuick = ctrl-right
+Left = left
+Right = right
+PageDown = pgdn
+PageUp = pgup
+Home = home
+End = end
+Help = f1
+Quit = f10; q; shift-q; esc
+Shell = ctrl-o
+SelectCodepage = alt-e
--- /dev/null
+[main]
+Help = f1
+UserMenu = f2
+View = f3
+ViewFile =
+Edit = f4
+EditForceInternal =
+Copy = f5
+Move = f6
+MakeDir = f7
+Delete = f8
+Menu = f9
+Quit = f10
+MenuLastSelected = f19
+QuitQuiet = f20
+Find = alt-question
+CdQuick = alt-c
+HotList = ctrl-backslash
+Reread = ctrl-r
+DirSize = ctrl-space
+Suspend = ctrl-z
+Swap = ctrl-u
+History = alt-h
+PanelListing =
+PanelListingSwitch = alt-t
+PanelListingChange =
+ShowHidden = alt-dot
+SplitVertHoriz = alt-comma
+Shell = ctrl-o
+PutCurrentPath = alt-a
+PutOtherPath = alt-shift-a
+ViewFiltered = alt-exclamation
+Select = kpplus
+Unselect = kpminus
+SelectInvert = kpasterisk
+ScreenList = alt-prime
+Options =
+OptionsLayout =
+OptionsPanel =
+OptionsConfirm =
+OptionsDisplayBits =
+OptionsVfs =
+LearnKeys =
+SaveSetup =
+EditExtensionsFile =
+EditFileHighlightFile =
+Filter =
+ConnectFish =
+ConnectFtp =
+ConnectSmb =
+Undelete =
+ExtendedKeyMap = ctrl-x
+
+[main:xmap]
+ChangeMode = c
+ChangeOwn = o
+CompareDirs = d
+CompareFiles = ctrl-d
+HotListAdd = h
+LinkSymbolicEdit = ctrl-s
+Link = l
+LinkSymbolic = s
+LinkSymbolicRelative
+PanelInfo = i
+PanelQuickView = q
+ExternalPanelize = exclamation
+VfsList = a
+Jobs = j
+PutCurrentPath = p
+PutOtherPath = ctrl-p
+PutCurrentTagged = t
+PutOtherTagged = ctrl-t
+PutCurrentLink = r
+PutOtherLink = ctrl-r
+
+[panel]
+Search = ctrl-s; alt-s
+Mark = insert; ctrl-t
+MarkUp = shift-up
+MarkDown = shift-down
+MarkLeft =
+MarkRight =
+Down = down; ctrl-n
+Up = up; ctrl-p
+Left = left
+Right = right
+PageUp = pgup; alt-v
+PageDown = pgdn; ctrl-v
+Enter = enter
+PanelOtherCd = alt-o
+PanelOtherCdLink = alt-l
+ViewRaw = f13
+EditNew = f14
+CopySingle = f15
+MoveSingle = f16
+DeleteSingle = f18
+Select = alt-plus
+Unselect = alt-minus
+SelectInvert = alt-asterisk
+CdChild = ctrl-pgdn
+CdParent = ctrl-pgup
+Panelize =
+CdParentSmart =
+History = alt-shift-h
+HistoryNext = alt-u
+HistoryPrev = alt-y
+BottomOnScreen = alt-j
+MiddleOnScreen = alt-r
+TopOnScreen = alt-g
+PanelOtherSync = alt-i
+SelectCodepage = alt-e
+Top = alt-lt; home; a1
+Bottom = alt-gt; end; c1
+Sort =
+SortPrev =
+SortNext =
+SortReverse =
+SortByName =
+SortByExt =
+SortBySize =
+SortByMTime =
+
+[dialog]
+Ok = enter
+Cancel = f10; esc
+Up = left; up
+#Left = left; up
+Down = right; down
+#Right = right; down
+Help = f1
+Suspend = ctrl-z
+Refresh = ctrl-l
+ScreenList = alt-prime
+ScreenNext = alt-rbrace
+ScreenPrev = alt-lbrace
+
+[input]
+Home = ctrl-a; alt-lt; home; a1
+End = ctrl-e; alt-gt; end; c1
+Left = left; alt-left; ctrl-b
+Right = right; alt-right; ctrl-f
+WordLeft = ctrl-left; alt-b
+WordRight = ctrl-right; alt-f
+Backspace = backspace
+Delete = delete
+DeleteToWordBegin = alt-backspace
+DeleteToWordEnd = alt-d
+Mark =
+Remove = ctrl-w
+Cut =
+Store = alt-w
+Paste =
+Yank = ctrl-y
+DeleteToEnd = ctrl-k
+HistoryPrev = alt-p; ctrl-down
+HistoryNext = alt-n; ctrl-up
+History = alt-h
+Complete = alt-tab
+Clear =
+MarkLeft =
+MarkRight =
+MarkToWordBegin =
+MarkToWordEnd =
+MarkToHome =
+MarkToEnd =
+
+[listbox]
+Up = up; ctrl-p
+Down = down; ctrl-n
+Top = home; alt-lt; a1
+Bottom = end; alt-gt; c1
+PageUp = pgup; alt-v
+PageDown = pgdn; ctrl-v
+Delete = delete; d
+Clear = shift-delete; shift-d
+
+[tree]
+Help = f1
+Reread = f2; ctrl-r
+Forget = f3
+ToggleNavigation = f4
+Copy = f5
+Move = f6
+Up = up; ctrl-p
+Down = down; ctrl-n
+Left = left
+Right = right
+Top = home; alt-lt; a1
+Bottom = end; alt-gt; c1
+PageUp = pgup; alt-v
+PageDown = pgdn; ctrl-v
+Enter = enter
+Search = ctrl-s; alt-s
+Delete = f8; delete
+
+[help]
+Help = f1
+Index = f2; c
+Back = f3; left; l
+Quit = f10; esc; ctrl-g
+Up = up; ctrl-p
+Down = down; ctrl-n
+PageDown = f; space; pgdn; ctrl-v
+PageUp = b; pgup; alt-v; backspace
+HalfPageDown = d
+HalfPageUp = u
+Top = home; ctrl-home; ctrl-pgup; a1; alt-lt; g
+Bottom = end; ctrl-end; ctrl-pgdn; c1; alt-gt; shift-g
+Enter = right; enter
+LinkNext = tab
+LinkPrev = alt-tab
+NodeNext = n
+NodePrev = p
+
+[editor]
+Store = alt-w
+Paste = ctrl-y
+Cut = ctrl-w
+Up = up; ctrl-p
+Down = down; ctrl-n
+Left = left; ctrl-b
+Right = right; ctrl-f
+WordLeft = ctrl-left; alt-b
+WordRight = ctrl-right; alt-f
+Enter = enter
+Return = shift-enter
+BackSpace = backspace
+Delete = delete
+PageUp = pgup; alt-v
+PageDown = pgdn; ctrl-v
+Home = home; ctrl-a
+End = end; ctrl-e
+Tab = tab
+Undo = ctrl-u
+Redo =
+Top = ctrl-home; alt-lt
+Bottom = ctrl-end; alt-gt
+ScrollUp = ctrl-up
+ScrollDown = ctrl-down
+TopOnScreen = ctrl-pgup
+BottomOnScreen = ctrl-pgdn
+DeleteToWordBegin = alt-backspace
+DeleteToWordEnd = alt-d
+DeleteLine = ctrl-y
+DeleteToEnd = ctrl-k
+DeleteToHome =
+ParagraphUp =
+ParagraphDown =
+Save = f2
+EditFile =
+SaveAs = f12; ctrl-f2
+Mark = f3; ctrl-at
+Copy = f5
+Move = f6
+Remove = f8
+MarkLine =
+MarkWord =
+MarkAll =
+Unmark =
+Search = f7; ctrl-s
+SearchContinue = f17
+BlockShiftLeft =
+BlockShiftRight =
+MarkPageUp = shift-pgup
+MarkPageDown = shift-pgdn
+MarkLeft = shift-left
+MarkRight = shift-right
+MarkToWordBegin = ctrl-shift-left
+MarkToWordEnd = ctrl-shift-right
+MarkUp = shift-up
+MarkDown = shift-down
+MarkToHome = shift-home
+MarkToEnd = shift-end
+MarkToFileBegin = ctrl-shift-home
+MarkToFileEnd = ctrl-shift-end
+MarkToPageBegin = ctrl-shift-pgup
+MarkToPageEnd = ctrl-shift-pgdn
+MarkScrollUp = ctrl-shift-up
+MarkScrollDown = ctrl-shift-down
+MarkParagraphUp =
+MarkParagraphDown =
+MarkColumnPageUp = alt-pgup
+MarkColumnPageDown = alt-pgdn
+MarkColumnLeft = alt-left
+MarkColumnRight = alt-right
+MarkColumnUp = alt-up
+MarkColumnDown = alt-down
+MarkColumnScrollUp =
+MarkColumnScrollDown =
+MarkColumnParagraphUp =
+MarkColumnParagraphDown =
+BlockSave =
+MarkColumn = f13
+Replace = f4
+ReplaceContinue = f14
+Complete = alt-tab
+InsertFile = f15
+Quit = f10
+InsertOverwrite = insert
+Help = f1
+Date =
+Refresh = ctrl-l
+Goto = alt-l
+Sort = alt-t
+Mail =
+ParagraphFormat = alt-p
+MatchBracket =
+ExternalCommand = alt-u
+UserMenu = f11
+Menu = f9
+Bookmark =
+BookmarkFlush =
+BookmarkNext =
+BookmarkPrev =
+History =
+Shell = ctrl-o
+InsertLiteral = ctrl-q
+MacroStartRecord =
+MacroStopRecord =
+MacroStartStopRecord = ctrl-r
+MacroDelete =
+ShowNumbers = alt-n
+ShowTabTws = alt-underline
+SyntaxOnOff = ctrl-s
+SyntaxChoose =
+ShowMargin =
+Find = alt-enter
+FilePrev = alt-minus
+FileNext = alt-plus
+RepeatStartStopRecord =
+SelectCodepage = alt-e
+Options =
+OptionsSaveMode =
+LearnKeys =
+ExtendedKeyMap = ctrl-x
+
+[editor:xmap]
+EditNew = k
+
+[viewer]
+Help = f1
+WrapMode = f2
+Quit = f3; f10; q; esc
+HexMode = f4
+Goto = f5
+Search = f7; question; slash
+MagicMode = f8
+NroffMode = f9
+SearchContinue = ctrl-r; ctrl-s; f17; n
+Home = ctrl-a
+End = ctrl-e
+Left = h; left
+Right = l; right
+LeftQuick= ctrl-left
+RightQuick = ctrl-right
+Up = k; y; insert; up; ctrl-p
+Down = j; e; delete; down; enter; ctrl-n
+PageDown = f; space; pgdn; ctrl-v
+PageUp = b; pgup; alt-v; backspace
+HalfPageDown = d
+HalfPageUp = u
+Top = home; ctrl-home; ctrl-pgup; a1; alt-lt; g
+Bottom = end; ctrl-end; ctrl-pgdn; c1; alt-gt; shift-g
+BookmarkGoto = m
+Bookmark = r
+FileNext = ctrl-f
+FilePrev = ctrl-b
+SelectCodepage = alt-e
+Shell = ctrl-o
+Ruler = alt-r
+
+[viewer:hex]
+Help = f1
+HexEditMode = f2
+Quit = f3; f10; q; esc
+HexMode = f4
+Goto = f5
+Save = f6
+Search = f7; question; slash
+SearchContinue = ctrl-r; ctrl-s; f17; n
+MagicMode = f8
+NroffMode = f9
+ToggleNavigation = tab
+Home = ctrl-a; home
+End = ctrl-e; end
+Left = b; left
+Right = f; right
+Up = k; y; up
+Down = j; delete; down
+PageDown = pgdn; ctrl-v
+PageUp = pgup; alt-v
+Top = ctrl-home; ctrl-pgup; a1; alt-lt; g
+Bottom = ctrl-end; ctrl-pgdn; c1; alt-gt; shift-g
+
+[diffviewer]
+ShowSymbols = alt-s; s
+ShowNumbers = alt-n; l
+SplitFull = f
+SplitEqual = equal
+SplitMore = gt
+SplitLess = lt
+Tab2 = 2
+Tab3 = 3
+Tab4 = 4
+Tab8 = 8
+Swap = ctrl-u
+Redo = ctrl-r
+HunkNext = n; enter; space
+HunkPrev = p; backspace
+Goto = g; shift-g
+Save = f2
+Edit = f4
+EditOther = f14
+Merge = f5
+Search = f7
+SearchContinue = f17
+Options = f9
+Top = ctrl-home
+Bottom = ctrl-end
+Down = down
+Up = up
+LeftQuick = ctrl-left
+RightQuick = ctrl-right
+Left = left
+Right = right
+PageDown = pgdn
+PageUp = pgup
+Home = home
+End = end
+Help = f1
+Quit = f10; q; shift-q; esc
+Shell = ctrl-o
+SelectCodepage = alt-e
--- /dev/null
+shell_patterns=0
++ ! t t
+@ Do something on the current file
+ CMD=%{Enter command}
+ $CMD %f
+
++ t t
+@ Do something on the tagged files
+ set %t; CMD=%{Enter command}
+ while [ -n "$1" ]; do
+ $CMD "$1"
+ shift
+ done
+
+
+0 Edit a bug report and send it to root
+ I=`mktemp "${MC_TMPDIR:-/tmp}/mail.XXXXXX"` || exit 1
+ ${EDITOR-vi} "$I"
+ test -r $I && mail root < $I
+ rm -f "$I"
+
+=+ f \.1$ | f \.3$ | f \.4$ | f \.5$ | f \.6$ | f \.7$ | f \.8$ | f \.man$ & t r
+1 Display the file with roff -man
+ nroff -man %f | less
+
+2 Call the info hypertext browser
+ info
+
+= t d
+3 Compress the current subdirectory (tar.gz)
+ Pwd=`basename %d /`
+ echo -n "Name of the compressed file (without extension) [$Pwd]: "
+ read tar
+ if [ "$tar"x = x ]; then tar="$Pwd"; fi
+ cd .. && \
+ tar cf - "$Pwd" | gzip -f9 > "$tar.tar.gz" && \
+ echo "../$tar.tar.gz created."
+
+4 Compress the current subdirectory (tar.bz2)
+ Pwd=`basename %d /`
+ echo -n "Name of the compressed file (without extension) [$Pwd]: "
+ read tar
+ if [ "$tar"x = x ]; then tar="$Pwd"; fi
+ cd .. && \
+ tar cf - "$Pwd" | bzip2 -f > "$tar.tar.bz2" && \
+ echo "../$tar.tar.bz2 created."
+
+5 Compress the current subdirectory (tar.p7)
+ Pwd=`basename %d /`
+ echo -n "Name of the compressed file (without extension) [$Pwd]: "
+ read tar
+ if [ "$tar"x = x ]; then tar="$Pwd"; fi
+ cd .. && \
+ tar cf - "$Pwd" | 7za a -si "$tar.tar.7z" && \
+ echo "../$tar.tar.7z created."
+
+6 Compress the current subdirectory (tar.lzma)
+ Pwd=`basename %d /`
+ echo -n "Name of the compressed file (without extension) [$Pwd]: "
+ read tar
+ if [ "$tar"x = x ]; then tar="$Pwd"; fi
+ cd .. && \
+ tar cf - "$Pwd" | lzma -f > "$tar.tar.lzma" && \
+ echo "../$tar.tar.lzma created."
+
+7 Compress the current subdirectory (tar.lz)
+ Pwd=`basename %d /`
+ echo -n "Name of the compressed file (without extension) [$Pwd]: "
+ read tar
+ if [ "$tar"x = x ]; then tar="$Pwd"; fi
+ cd .. && \
+ tar cf - "$Pwd" | lzip -f > "$tar.tar.lz" && \
+ echo "../$tar.tar.lz created."
+
+8 Compress the current subdirectory (tar.xz)
+ Pwd=`basename %d /`
+ echo -n "Name of the compressed file (without extension) [$Pwd]: "
+ read tar
+ if [ "$tar"x = x ]; then tar="$Pwd"; fi
+ cd .. && \
+ tar cf - "$Pwd" | xz -f > "$tar.tar.xz" && \
+ echo "../$tar.tar.xz created."
+
+= f \.c$ & t r
++ f \.c$ & t r & ! t t
+с Compile and link current .c file
+ make `basename %f .c` 2>/dev/null || cc -O -o `basename %f .c` %f
+
++ t r & ! t t
+a Append file to opposite
+ cat %f >> %D/%f
+
++ t t
+A Append files to opposite files
+ set %t
+ while [ -n "$1" ]; do
+ cat "$1" >> "%D/$1"
+ shift
+ done
+
++ t r & ! t t
+d Delete file if a copy exists in the other directory.
+ if [ "%d" = "%D" ]; then
+ echo "The two directories must be different."
+ exit 1
+ fi
+ if [ -f %D/%f ]; then # if two of them, then
+ if cmp -s %D/%f %f; then
+ rm %f && echo "%f: DELETED."
+ else
+ echo "%f and %D/%f differ: NOT deleted."
+ echo -n "Press RETURN "
+ read key
+ fi
+ else
+ echo "%f: No copy in %D/%f: NOT deleted."
+ fi
+
++ t t
+D Delete tagged files if a copy exists in the other directory.
+ if [ "%d" = "%D" ]; then
+ echo "The two directores must be different."
+ exit 1
+ fi
+ for i in %t
+ do
+ if [ -f "%D/$i" ]; then
+ SUM1="`sum $i`"
+ SUM2="`sum %D/$i`"
+ if [ "$SUM1" = "$SUM2" ]; then
+ rm "$i" && echo "${i}: DELETED."
+ else
+ echo "$i and %D/$i differ: NOT deleted."
+ fi
+ else
+ echo "%f has no copy in %D/%f: NOT deleted."
+ fi
+ done
+
+m View manual page
+ MAN=%{Enter manual name}
+ %view man -P cat $MAN
+
+= f \.gz$ & t r
++ ! t t
+n Inspect gzip'ed newsbatch file
+ dd if=%f bs=1 skip=12|zcat|${PAGER-more}
+ # assuming the cunbatch header is 12 bytes long.
+
+= t r &
++ ! t t
+h Strip headers from current newsarticle
+ CHECK=`awk '{print $1 ; exit}' %f` 2>/dev/null
+ case "$CHECK" in
+ Newsgroups:|Path:)
+ I=`mktemp "${MC_TMPDIR:-/tmp}/news.XXXXXX"` || exit 1
+ cp %f "$I" && sed '/^'"$CHECK"' /,/^$/d' "$I" > %f
+ [ "$?" = "0" ] && rm "$I"
+ echo "%f: header removed."
+ ;;
+ *)
+ echo "%f is not a news article."
+ ;;
+ esac
+
++ t t
+H Strip headers from the marked newsarticles
+ set %t
+ while [ -n "$1" ]; do
+ CHECK=`awk '{print $1 ; exit}' $1` 2>/dev/null
+ WFILE=`mktemp "${MC_TMPDIR:-/tmp}/news.XXXXXX"` || exit 1
+ case "$CHECK" in
+ Newsgroups:|Path:)
+ cp "$1" "$WFILE" && sed '/^'"$CHECK"' /,/^$/d' "$WFILE" > "$1"
+ if [ "$?" = "0" ]; then
+ rm "$WFILE"; echo "$1 header removed. OK."
+ else
+ echo "Oops! Please check $1 against $WFILE."
+ fi
+ ;;
+ *)
+ echo "$1 skipped: Not a news article."
+ ;;
+ esac
+ shift
+ done
+
+= t r
++ ! t t
+r Copy file to remote host
+ echo -n "To which host?: "
+ read Host
+ echo -n "To which directory on $Host?: "
+ read Dir
+ rcp -p %f "${Host}:$Dir"
+
++ t t
+R Copy files to remote host (no error checking)
+ echo -n "Copy files to which host?: "
+ read Host
+ echo -n "To which directory on $Host? :"
+ read Dir
+ rcp -pr %u "${Host}:$Dir"
+
+= f \.tex$ & t r
++ f \.tex$ & t r & ! t t
+t Run latex on file and show it with xdvi
+ latex %f && xdvi `basename %f .tex`.dvi
+
+=+ f ^part | f ^Part | f uue & t r
++ t t
+U Uudecode marked news articles (needs work)
+ set %t
+ (
+ while [ -n "$1" ]; do # strip headers
+ FIRST=`awk '{print $1 ; exit}' "$1"`
+ cat "$1" | sed '/^'"$FIRST"' /,/^$/d'; shift
+ done
+ ) |sed '/^$/d' |sed -n '/^begin 6/,/^end$/p' | uudecode
+ if [ "$?" != "0" ]; then
+ echo "Cannot decode %t."
+ fi
+ echo "Please test the output file before deleting anything."
+
+=+ f \.tar\.gz$ | f \.tar\.z$ | f \.tgz$ | f \.tpz$ | f \.tar\.lz$ | f \.tar\.lzma$ | f \.tar\.7z$ | f \.tar\.xz$ | f \.tar\.Z$ | f \.tar\.bz2$ & t r
+x Extract the contents of a compressed tar file
+ unset PRG
+ case %f in
+ *.tar.bz2)
+ PRG="bunzip2 -c"
+ ;;
+ *.tar.gz|*.tar.z|*.tgz|*.tpz|*.tar.Z)
+ PRG="gzip -dc"
+ ;;
+ *.tar.lzma)
+ PRG="lzma -dc"
+ ;;
+ *.tar.lz)
+ PRG="lzip -dc"
+ ;;
+ *.tar.xz)
+ PRG="xz -dc"
+ ;;
+ *.tar.7z)
+ PRG="7za e -so"
+ ;;
+ *)
+ exit 1
+ ;;
+ esac
+ $PRG %f | tar xvf -
+
+= t r
++ ! t t
+y Gzip or gunzip current file
+ unset DECOMP
+ case %f in
+ *.gz) DECOMP=-d;;
+ *.[zZ]) DECOMP=-d;;
+ esac
+ gzip $DECOMP -v %f
+
++ t t
+Y Gzip or gunzip tagged files
+ for i in %t
+ do
+ unset DECOMP
+ case "$i" in
+ *.gz) DECOMP=-d;;
+ *.[zZ]) DECOMP=-d;;
+ esac
+ gzip $DECOMP -v "$i"
+ done
+
++ ! t t
+b Bzip2 or bunzip2 current file
+ unset DECOMP
+ case %f in
+ *.bz2) DECOMP=-d;;
+ esac
+ bzip2 $DECOMP -v %f
+
++ t t
+B Bzip2 or bunzip2 tagged files
+ for i in %t
+ do
+ unset DECOMP
+ case "$i" in
+ *.bz2) DECOMP=-d;;
+ esac
+ bzip2 $DECOMP -v "$i"
+ done
+
++ f \.tar.gz$ | f \.tgz$ | f \.tpz$ | f \.tar.Z$ | f \.tar.z$ | f \.tar.bz2$ | f \.tar.F$ & t r & ! t t
+z Extract compressed tar file to subdirectory
+ unset D
+ set gzip -cd
+ case %f in
+ *.tar.gz) D="`basename %f .tar.gz`";;
+ *.tgz) D="`basename %f .tgz`";;
+ *.tpz) D="`basename %f .tpz`";;
+ *.tar.Z) D="`basename %f .tar.Z`";;
+ *.tar.z) D="`basename %f .tar.z`";;
+ *.tar.bz2) D="`basename %f .tar.bz2`"; set bunzip2 -c ;;
+ *.tar.F) D="`basename %f .tar.F`"; set freeze -dc;
+ esac
+ mkdir "$D"; cd "$D" && ("$1" "$2" ../%f | tar xvf -)
+
++ t t
+Z Extract compressed tar files to subdirectories
+ for i in %t
+ do
+ set gzip -dc
+ unset D
+ case "$i" in
+ *.tar.gz) D="`basename $i .tar.gz`";;
+ *.tgz) D="`basename $i .tgz`";;
+ *.tpz) D="`basename $i .tpz`";;
+ *.tar.Z) D="`basename $i .tar.Z`";;
+ *.tar.z) D="`basename $i .tar.z`";;
+ *.tar.F) D="`basename $i .tar.F`"; set freeze -dc;;
+ *.tar.bz2) D="`basename $i .tar.bz2`"; set bunzip2 -c;;
+ esac
+ mkdir "$D"; (cd "$D" && "$1" "$2" "../$i" | tar xvf -)
+ done
+
++ f \.gz$ | f \.tgz$ | f \.tpz$ | f \.Z$ | f \.z$ | f \.bz2$ & t r & ! t t
+c Convert gz<->bz2, tar.gz<->tar.bz2 & tgz->tar.bz2
+ unset D
+ unset EXT
+ case %f in
+ *.tgz) EXT=tgz;;
+ *.tpz) EXT=tpz;;
+ *.Z) EXT=Z;;
+ *.z) EXT=z;;
+ *.gz) EXT=gz;;
+ *.bz2) EXT=bz2;;
+ esac
+ case $EXT in
+ tgz|tpz) D="`basename %f .$EXT`.tar";;
+ gz|Z|z) D="`basename %f .$EXT`";;
+ bz2) D="`basename %f .bz2`";;
+ esac
+ if [ "$EXT" = "bz2" ]; then
+ bunzip2 -v %f ; gzip -f9 -v "$D"
+ else
+ gunzip -v %f ; bzip2 -v "$D"
+ fi
+
++ t t
+C Convert gz<->bz2, tar.gz<->tar.bz2 & tgz->tar.bz2
+ set %t
+ while [ -n "$1" ]
+ do
+ unset D
+ unset EXT
+ case "$1" in
+ *.tgz) EXT=tgz;;
+ *.tpz) EXT=tpz;;
+ *.Z) EXT=Z;;
+ *.z) EXT=z;;
+ *.gz) EXT=gz;;
+ *.bz2) EXT=bz2;;
+ esac
+ case $EXT in
+ tgz) D="`basename $1 .tgz`.tar";;
+ tpz) D="`basename $1 .tpz`.tar";;
+ gz|Z|z) D="`basename $1 .$EXT`";;
+ bz2) D="`basename $1 .bz2`";;
+ esac
+ if [ "$EXT" = "bz2" ]; then
+ bunzip2 -v "$1"
+ gzip -f9 -v "$D"
+ else
+ gunzip -v "$1"
+ bzip2 -v "$D"
+ fi
+ shift
+ done
+
++ x /usr/bin/open | x /usr/local/bin/open & x /bin/sh
+o Open next a free console
+ open -s -- sh
--- /dev/null
+shell_patterns=0 # expression type
+
+# The macros are:
+#
+# %c The cursor column position number. For edit menu only.
+# %i The indent of blank space, equal the cursor column
+# position. For edit menu only.
+# %y The syntax type of current file. For edit menu only.
+# %b The block file name.
+# %f The current file name.
+# %n Only the current file name without extension.
+# %x The extension of current file name.
+# %d The current directory name.
+# %F The current file in the unselected panel.
+# %D The directory name of the unselected panel.
+# %t The currently tagged files.
+# %T The tagged files in the unselected panel.
+# %u and %U Similar to the %t and %T macros, but in
+# addition the files are untagged. You can use this macro
+# only once per menu file entry or extension file entry,
+# because next time there will be no tagged files.
+# %s and %S The selected files: The tagged files if
+# there are any. Otherwise the current file.
+#
+# %% The % character
+#
+# %{some text} Prompt for the substitution. An input box
+# is shown and the text inside the braces is used as a
+# prompt. The macro is substituted by the text typed by the
+# user. The user can press ESC or F10 to cancel. This macro
+# doesn't work on the command line yet.
+
+#----------------------- Begin [perl] language template -----------------------
++ y Perl\ Program | f \.pl$
+1 Author description header
+ unset LANG
+ unset LANGUAGE
+ LC_ALL=
+ MY_UID="`id | sed 's/^.*uid=\([^(]*\).*$/\1/'`"
+ AUTHOR="`awk -F: '$3 == '$MY_UID' {print $5}' /etc/passwd`"
+ cat >>%b <<EOF
+ #----------------------------------------------------------------------
+ # Description:
+ # Author: $AUTHOR <$REPLYTO>
+ # Created at: `date`
+ # Computer: `uname -n`
+ # System: `uname -sr` on `uname -m`
+ #
+ # Copyright (c) `date +%%Y` $AUTHOR All rights reserved.
+ #
+ #----------------------------------------------------------------------
+ # Configure section:
+
+ #----------------------------------------------------------------------
+ #
+ # main()
+
+ EOF
+
++ y Perl\ Program | f \.pl$
+2 while ()
+ cat <<EOF > %b
+ %iwhile() {
+ %i}
+ EOF
+
++ y Perl\ Program | f \.pl$
+3 for ()
+ cat <<EOF > %b
+ %ifor ($i = ; $i < ; $i++) {
+ %i}
+ EOF
+
++ y Perl\ Program | f \.pl$
+4 foreach ()
+ cat <<EOF > %b
+ %iforeach ($ ) {
+ %i}
+ EOF
+
++ y Perl\ Program | f \.pl$
+5 if ()
+ cat <<EOF > %b
+ %iif () {
+ %i}
+ EOF
+
++ y Perl\ Program | f \.pl$
+6 if () else
+ cat <<EOF > %b
+ %iif () {
+ %i} else {
+ %i}
+ EOF
+
++ y Perl\ Program | f \.pl$
+7 if () elsif ()
+ cat <<EOF > %b
+ %iif () {
+ %i} elsif () {
+ %i}
+ EOF
+
++ y Perl\ Program | f \.pl$
+8 substr ()
+ echo "%i$ = substr(\$str, \$off, \$cnt);" >%b
+
++ y Perl\ Program | f \.pl$
+9 opendir ()
+ cat <<EOF > %b
+ %iopendir(DIR, \$dir) || die("\$0: can't open \$dir\n");
+ EOF
+
++ y Perl\ Program | f \.pl$
+a sub ()
+ NAME=%{ Enter name of subroutine: }
+ cat <<EOF > %b
+ sub
+ $NAME ()
+ {
+ } # end of $NAME()
+ EOF
+#----------------------- End [perl] language template -------------------------
+
+#---------------------- Begin [shell] language template -----------------------
++ y Shell\ Script | f \.sh$
+1 Author description header
+ unset LANG
+ unset LANGUAGE
+ LC_ALL=
+ MY_UID="`id | sed 's/^.*uid=\([^(]*\).*$/\1/'`"
+ AUTHOR="`awk -F: '$3 == '$MY_UID' {print $5}' /etc/passwd`"
+ cat >>%b <<EOF
+ #----------------------------------------------------------------------
+ # Description:
+ # Author: $AUTHOR <$REPLYTO>
+ # Created at: `date`
+ # Computer: `uname -n`
+ # System: `uname -sr` on `uname -m`
+ #
+ # Copyright (c) `date +%%Y` $AUTHOR All rights reserved.
+ #
+ #----------------------------------------------------------------------
+ # Configure section:
+
+ #----------------------------------------------------------------------
+ #
+ # main()
+
+ EOF
+
++ y Shell\ Script | f \.sh$
+3 for
+ cat <<EOF > %b
+ %ifor i in \$
+ %ido
+ %idone
+ EOF
+
++ y Shell\ Script | f \.sh$
+4 while
+ cat <<EOF > %b
+ %iwhile
+ %ido
+ %idone
+ EOF
+
++ y Shell\ Script | f \.sh$
+5 if [] then else
+ cat <<EOF >> %b
+ %iif [ ];then
+ %ielse
+ %ifi
+ EOF
+
++ y Shell\ Script | f \.sh$
+6 case
+ NUMBER=%{ Enter number elements of case:}
+ cat <<EOF > %b
+ %icase "\$" in
+ EOF
+ while [ "$NUMBER" -gt 0 ]
+ do
+ cat <<EOF >> %b
+ %i)
+ %i ;;
+ EOF
+ let NUMBER=$NUMBER-1
+ done
+ cat <<EOF >> %b
+ %i*)
+ %iesac
+ EOF
+
++ y Shell\ Script | f \.sh$
+7 function
+ NAME=%{ Enter name of function:}
+ cat <<EOF >> %b
+ $NAME() {
+ } # end of $NAME()
+ EOF
+
++ y Shell\ Script | f \.sh$
+8 select of bash
+ cat <<EOF >> %b
+ %iselect i in \$l
+ %ido
+ %i if [ -n "\$i" ];then
+ %i break
+ %i else
+ %i continue
+ %i fi
+ %idone
+ EOF
+
+#----------------------- End [shell] language template ------------------------
+
+#------------------------- Begin [c] language template ------------------------
++ f \.h$ | f \.c$ | f \.cc$
+1 Author description header
+ unset LANG
+ unset LANGUAGE
+ LC_ALL=
+ MY_UID="`id | sed 's/^.*uid=\([^(]*\).*$/\1/'`"
+ AUTHOR="`awk -F: '$3 == '$MY_UID' {print $5}' /etc/passwd`"
+ cat >> %b <<EOF
+ /********************************************************************
+ * Description:
+ * Author: $AUTHOR <$REPLYTO>
+ * Created at: `date`
+ * Computer: `uname -n`
+ * System: `uname -sr` on `uname -m`
+ *
+ * Copyright (c) `date +%%Y` $AUTHOR All rights reserved.
+ *
+ ********************************************************************/
+ EOF
+
++ f \.h$ | f \.c$ | f \.cc$
+2 GPL description header
+ cat >>%b <<EOF
+ /*
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+ EOF
+
++ f \.c$ | f \.cc$
+3 if ()
+ cat <<EOF > %b
+ %iif () {
+ %i}
+ EOF
+
++ f \.c$ | f \.cc$
+4 if () else
+ cat <<EOF > %b
+ %iif () {
+ %i} else {
+ %i}
+ EOF
+
++ f \.c$ | f \.cc$
+5 if () else if ()
+ cat <<EOF > %b
+ %iif ( ) {
+ %i} else if ( ) {
+ %i}
+ EOF
+
++ f \.c$ | f \.cc$
+6 switch ()
+ NUMBER=%{ Enter number elements of switch:}
+ echo "%iswitch () {" >%b
+ while [ "$NUMBER" -gt 0 ]
+ do
+ echo "%icase '':" >>%b
+ echo "%i break;" >>%b
+ let NUMBER=$NUMBER-1
+ done
+ echo "%i default:" >>%b
+ echo "%i}" >>%b
+
++ f \.c$ | f \.cc$
+7 for ()
+ cat <<EOF > %b
+ %ifor (i = ; i < ; i++) {
+ %i}
+ EOF
+
++ f \.c$ | f \.cc$
+8 while ()
+ cat <<EOF > %b
+ %iwhile () {
+ %i}
+ EOF
+
++ f \.c$ | f \.cc$
+9 do {} while ()
+ cat <<EOF > %b
+ %ido {
+ %i} while ()
+ EOF
+
++ f \.c$ | f \.cc$
+a array
+ cat <<EOF > %b
+ %ichar const x[] = {
+ %i, ,
+ %i};
+ EOF
+
++ f \.c$ | f \.cc$
+b enum
+ cat <<EOF > %b
+ %ienum x {
+ %i, ,
+ %i};
+ EOF
+
++ f \.c$ | f \.cc$
+c struct
+ cat <<EOF > %b
+ %istruct ? {
+ %i;
+ %i};
+ EOF
+
++ f \.c$ | f \.cc$
+d union
+ cat <<EOF > %b
+ %iunion ? {
+ %i;
+ %i};
+ EOF
+
++ f \.c$ | f \.cc$
+e typedef struct
+ cat <<EOF > %b
+ %itypedef struct {
+ %i;
+ %i} ?;
+ EOF
+
++ f \.c$ | f \.cc$
+f function
+ NAME=%{ Enter name of function:}
+ cat <<EOF >> %b
+ $NAME()
+ {
+ } /* end of $NAME() */
+ EOF
+
++ f \.c$ | f \.h$ | f \.cc$
+g #include
+ INC=%{ Enter include name: }
+ if [ -r "$INC" ];then
+ echo \#include \"$INC\" >%b
+ else
+ echo \#include \<$INC\> >%b
+ fi
+
++ f \.c$ | f \.h$ | f \.cc$
+d #define
+ echo "#define " >%b
+
++ f \.c$ | f \.h$ | f \.cc$
+d #ifdef
+ cat <<EOF > %b
+ #ifdef
+ #else
+ #endif
+ EOF
+
++ f \.c$ | f \.h$ | f \.cc$
+...............................................................................
+
++ f \.c$ | f \.h$ | f \.cc$
+h View all *.h into current directory
+ cat *.h |less
+
++ f \.c$ | f \.cc$
+d Run gdb for current file
+ [ -x "./%n" ] && gdb ./%n
+
+= f \.c$ | f \.cc$
++ f \.c$ | f \.cc$
+c Compile, link and run the current .c file
+ export CFLAGS="-g -Wall -O2"
+ make || make %n || cc $CFLAGS -o %n %f
+ [ -r "%n" ] && (echo "*** press any key for run... ***"; read)
+ [ -x "%n" ] && ./%n
+ (echo -ne "\n--- Press any key for return to edit. ---"; read)
+
++ f \.c$ | f \.h$
+t Indent `C' formatter
+ indent -kr -pcs %b 1>/dev/null 2> %e
+
+#--------------------- End [c/c++] language template --------------------------
+
+#------------------------- Begin unknown template -----------------------------
++ y unknown & t r
+s #! /bin/sh
+ echo "#! /bin/sh" >%b
+
++ y unknown & t r
+p #! /usr/bin/perl
+ echo "#! /usr/bin/perl" >%b
+
++ y unknown & t r
+a Author description header
+ unset LANG
+ unset LANGUAGE
+ LC_ALL=
+ MY_UID="`id | sed 's/^.*uid=\([^(]*\).*$/\1/'`"
+ AUTHOR="`awk -F: '$3 == '$MY_UID' {print $5}' /etc/passwd`"
+ cat >>%b <<EOF
+ ----------------------------------------------------------------------
+ Description:
+ Author: $AUTHOR <$REPLYTO>
+ Created at: `date`
+ Computer: `uname -n`
+ System: `uname -sr` on `uname -m`
+
+ Copyright (c) `date +%%Y` $AUTHOR All rights reserved.
+ ----------------------------------------------------------------------
+
+ EOF
+#--------------------------- End unknown template -----------------------------
+
+-------------------------------------------------------------------------------
+
+#----------------------- Begin common section ---------------------------------
+S Sort selection
+ TMPFILE=`mktemp ${MC_TMPDIR:-/tmp}/up.XXXXXX` || exit 1
+ cat %b > $TMPFILE
+ cat $TMPFILE| sort >%b
+ rm -f $TMPFILE
+
+I Insert `Changelog' string
+ DATE="`date +%%Y-%%m-%%d`"
+ MY_UID="`id | sed 's/^.*uid=\([^(]*\).*$/\1/'`"
+ AUTHOR="`awk -F: '$3 == '$MY_UID' {print $5}' /etc/passwd`"
+ EMAIL="<$REPLYTO>"
+ echo "$DATE $AUTHOR $EMAIL" >%b
+
+s Invoke `shell'
+ sh
+
+m view `man'
+ MAN=%{Enter name of man:}
+ TMPFILE=`mktemp ${MC_TMPDIR:-/tmp}/mcview.$MAN.XXXXXX` || exit 1
+ man -Pcat $MAN >$TMPFILE
+ mcview $TMPFILE
+ rm -f $TMPFILE
+
+i Insert a out of command to cursor.
+ CMD=%{ Enter command: }
+ eval $CMD > %b
+
+o Open bash to next free console
+ open -s -- /bin/bash
+
+u Upper case selection
+ TMPFILE=`mktemp ${MC_TMPDIR:-/tmp}/up.XXXXXX` || exit 1
+ cat %b > $TMPFILE
+ cat $TMPFILE| sed 's/\(.*\)/\U\1/' >%b
+ rm -f $TMPFILE
+
+l Lower case selection
+ TMPFILE=`mktemp ${MC_TMPDIR:-/tmp}/up.XXXXXX` || exit 1
+ cat %b > $TMPFILE
+ cat $TMPFILE| sed 's/\(.*\)/\U\1/' >%b
+ rm -f $TMPFILE
+
+#-------------------------- End of common section -----------------------------