Thu Dec 24 18:30:53 1998 Norbert Warmuth <nwarmuth@privat.circular.de>

* configure.in: Deleted du checks

* INSTALL: Deleted --with-dusum documentation.

* doc/mc.sgml, mc.1.in: Completed documentation about the Options/
Configuration dialog. Added Advanced chown subsection. Deleted
variables from the Special settings section which are now covered
by the configuration dialog.

* gnome/layout: Adapted for the new option Compute Totals in the
Configuration dialog.

* screen.c (recalculate_panel_summary): new function which recalculates
the summary information for the mini-status.

* screen.c (panel_reload): use recalculate_panel_summary

* screen.c (do_file_mark): Honour that dirsizes computed is now a
per entry flag.

* option.c: Added Compute Totals to the configuration dialog.

* file.c (compute_dir_size): made non static

(panel_operate_flags): Don't compute directory sizes if verbose
operation are off.

* cmd.c (dirsizes_cmd): Rewritten to use compute_dir_size as suggested
by Miguel, i.e. get rid of du. Now the dirsizes_cmd honours a
selection and computes sizes only for marked directories. Possible
improvement: add a dialog (or C-C?) to abort computation.

* dir.h (file_entry), panel.h (WPanel): Made the dirsizes computed
flag a per file flag.

* dir.c, find.c, panelize.c, screen.c: Adapted to new file_entry and
WPanel structure.

* features.inc: Deleted DUSUM information

* mc.hlp: remade because of changes in doc/mc.1.in
This commit is contained in:
Norbert Warmuth 1998-12-24 21:37:24 +00:00
parent 2924e5bc78
commit 23cc8d469c
22 changed files with 402 additions and 374 deletions

View File

@ -1,3 +1,14 @@
Thu Dec 24 18:30:53 1998 Norbert Warmuth <nwarmuth@privat.circular.de>
* configure.in: Deleted du checks
* INSTALL: Deleted --with-dusum documentation.
* doc/mc.sgml, mc.1.in: Completed documentation about the Options/
Configuration dialog. Added Advanced chown subsection. Deleted
variables from the Special settings section which are now covered
by the configuration dialog.
Mon Dec 21 22:26:34 1998 Norbert Warmuth <nwarmuth@privat.circular.de> Mon Dec 21 22:26:34 1998 Norbert Warmuth <nwarmuth@privat.circular.de>
* doc/mc.sgml, mc.1.in: Deleted obsolete information about * doc/mc.sgml, mc.1.in: Deleted obsolete information about

View File

@ -162,11 +162,6 @@ installed the gpm package.
Default is somewhere in your XView binaries directory, Default is somewhere in your XView binaries directory,
$OPENWINHOME/bin. $OPENWINHOME/bin.
`--without-dusum'
This option disables a feature of the Midnight Commander, which is
forking the du command with the -s option when you want to calculate
directory sizes.
`--without-vfs' `--without-vfs'
This option disables the Virtual File System switch code in the This option disables the Virtual File System switch code in the
Midnight Commander and uses the standard file system calls for Midnight Commander and uses the standard file system calls for

View File

@ -129,17 +129,6 @@
*/ */
#undef NEED_EXTRA_DIRENT_BUFFER #undef NEED_EXTRA_DIRENT_BUFFER
/* Define if you want the du -s summary */
#undef HAVE_DUSUM
/* Define if your du does handle -b correctly */
#undef DUSUM_USEB
/* Define to size of chunks du is displaying its information.
* If DUSUM_USEB is defined, this should be 1
*/
#define DUSUM_FACTOR 512
/* Define this one if you want termnet support */ /* Define this one if you want termnet support */
#undef USE_TERMNET #undef USE_TERMNET

View File

@ -634,39 +634,6 @@ if test x$ac_cv_grep_stdin = xyes; then
fi fi
AC_MSG_RESULT($ac_cv_grep_stdin) AC_MSG_RESULT($ac_cv_grep_stdin)
dnl
dnl HAVE_DUSUM is on by default, only if you have a strange du, you can
dnl turn it off by --without-dusum
dnl
have_dusum=yes
AC_MSG_CHECKING(for du arguments)
AC_ARG_WITH(dusum,
[--with-dusum Support the du -s summaries],[
if test x$withval = xno; then
have_dusum=no
fi
])
if test x$have_dusum = xyes; then
AC_DEFINE(HAVE_DUSUM)
AC_CACHE_VAL(ac_cv_dusum, [
du -s -b $srcdir/configure >/dev/null 2>&1
if test $? = 0; then
ac_cv_dusum='dusum_useb=yes; dusum_factor=1'
else
ac_cv_dusum='dusum_useb=; dusum_factor=512'
fi
])
eval "$ac_cv_dusum"
if test x$dusum_useb = xyes; then
AC_DEFINE(DUSUM_USEB)
AC_MSG_RESULT(-b)
else
AC_MSG_RESULT(block size $dusum_factor)
fi
AC_DEFINE_UNQUOTED(DUSUM_FACTOR, $dusum_factor)
fi
dnl dnl
dnl The termnet support dnl The termnet support
dnl dnl

View File

@ -1451,6 +1451,10 @@ Comments are started with '#'. The additional comment lines must start
with '#', space or tab. with '#', space or tab.
.PP .PP
.SH " Options Menu" .SH " Options Menu"
The Midnight Commander has some options that may be toggled on and
off in several dialogs which are accessible from this menue. Options
are enabled if they have an asterisk or "x" in front of them.
.PP
The The
.\"LINK2" .\"LINK2"
Configuration Configuration
@ -1500,19 +1504,8 @@ command saves the current settings of the Left, Right and Options
menus. A small number of other settings is saved, too. menus. A small number of other settings is saved, too.
.PP .PP
.SH " Configuration" .SH " Configuration"
The program has some options that may be toggled on and off from the The options in this dialog are divided into three groups:
Configuration dialog. Options are enabled if they have an asterisk or Panel Options, Pause after run and Other Options.
"x" in front of them. These options are divided into three groups:
Screen Colors, Panel Options and Other Options.
.PP
.B Screen Colors
.PP
You can select whether your display supports color or not. Normally
this information is in the terminfo database. If you want to know
how to change individual colors see the section on
.\"LINK2"
Colors.
.\"Colors"
.PP .PP
.B Panel Options .B Panel Options
.PP .PP
@ -1528,9 +1521,13 @@ a dot (like ls -a).
By default when you mark a file (with either C-t or the Insert key) By default when you mark a file (with either C-t or the Insert key)
the selection bar will move down. the selection bar will move down.
.PP .PP
.I Show Mini-Status. .I Drop down menues.
If enabled, show one line of status information at the bottom of When this option is enabled, when you press the
the panels about the currently selected item. .B F9
key, the pull down menus will be activated, else, you will
only be presented with the menu title, and you will have
to select the entry with the arrow keys or the first
letter and from there select your option in the menu.
.PP .PP
.I Mix all files. .I Mix all files.
When this option is enabled, all files and directories are shown mixed When this option is enabled, all files and directories are shown mixed
@ -1547,16 +1544,8 @@ i-node for a file in the directory (file size changes, mode or owner
changes, etc) the display is not updated. In these cases, if you have changes, etc) the display is not updated. In these cases, if you have
the option on, you have to rescan the directory manually (with C-r). the option on, you have to rescan the directory manually (with C-r).
.PP .PP
.B Other Options .B Pause after run
.PP .PP
.I Verbose operation.
This toggles whether the file Copy, Rename and Delete operations are
verbose (i.e., display a dialog box for each operation). If you have a
slow terminal, you may wish to disable the verbose operation. It is
automatically turned off if the speed of your terminal is less than
9600 bps.
.PP
.I Pause after run.
After executing your commands, the Midnight Commander can pause, so After executing your commands, the Midnight Commander can pause, so
that you can examine the output of the command. There are three that you can examine the output of the command. There are three
possible settings for this variable: possible settings for this variable:
@ -1574,6 +1563,24 @@ not an xterm or the Linux console).
.I Always .I Always
The program will pause after executing all of your commands. The program will pause after executing all of your commands.
.PP .PP
.B Other Options
.PP
.I Verbose operation.
This toggles whether the file Copy, Rename and Delete operations are
verbose (i.e., display a dialog box for each operation). If you have a
slow terminal, you may wish to disable the verbose operation. It is
automatically turned off if the speed of your terminal is less than
9600 bps.
.PP
.I Compute totals.
If this option is enabled, the Midnight
Commander computes total byte sizes and total number of files
prior to any Copy, Rename and Delete operations. This will
provide you with a more accurate progress bar at the expense
of some speed. This option has no effect, if
.I Verbose operation
is disabled.
.PP
.I Shell Patterns. .I Shell Patterns.
By default the Select, Unselect and Filter commands will use shell-like By default the Select, Unselect and Filter commands will use shell-like
regular expressions. The following conversions are performed to achieve regular expressions. The following conversions are performed to achieve
@ -1615,9 +1622,47 @@ command is used. See the section on the
internal file viewer. internal file viewer.
.\"Internal File Viewer" .\"Internal File Viewer"
.PP .PP
.I Confirm Delete. .I Complete: show all.
This option is toggled on by default, and will cause the Midnight By default the Midnight Commander
Commander to ask for confirmation when deleting a single file. pops up all possible
.\"LINK2"
completions
.\"Completion"
if the completion is
ambiguous if you press
.B M-Tab
for the second time, for the
first time it just completes as much as possible and in
the case of ambiguity beeps. If you want to see all the
possible completions already after the first
.B M-Tab
pressing, enable this option.
.PP
.I Rotating dash.
If this option is enabled, the
Midnight Commander shows a rotating dash in the upper right corner
as a work in progress indicator.
.PP
.I Lynx-like motion.
If this option is enabled,
you may use the arrows keys to automatically chdir if the
current selection is a subdirectory and the shell command
line is empty. By default, this setting is off.
.PP
.I Advanced chown.
If this option is enabled, the
.\"LINK2"
Advanced Chown
.\"Advanced Chown"
command will be invoked if you run the
.\"LINK2"
Chmod
.\"Chmod"
or
.\"LINK2"
Chown
.\"Chown"
command.
.PP .PP
.I Cd follows links. .I Cd follows links.
This option, if set, causes the Midnight Commander to follow the This option, if set, causes the Midnight Commander to follow the
@ -1628,6 +1673,16 @@ real directory structure, so cd .. if you've entered that directory
through a link will move you to the current directory's real parent through a link will move you to the current directory's real parent
and not to the directory where the link was present. and not to the directory where the link was present.
.PP .PP
.I Safe delete.
If this option is enabled, deleting files
unintentionally will get more difficult. The default
selection in the confirmation dialog changes from the "Yes"
to the "No" button and deletion of non empty direcories has to be
confirmed by entering the word
.I yes
\&.
By default this option is disabled.
.PP
.SH " Display bits" .SH " Display bits"
This is used to configure the range of visible characters on the This is used to configure the range of visible characters on the
screen. This setting may be 7-bits if your terminal/curses supports screen. This setting may be 7-bits if your terminal/curses supports
@ -1745,6 +1800,12 @@ can specify whether the area is split to the panels in vertical or
horizontal direction. The split can be equal or you can specify an horizontal direction. The split can be equal or you can specify an
unequal split. unequal split.
.PP .PP
If the
.I Show Mini-Status
option is enabled, one line of status
information about the currently selected item is showed at the bottom
of the panels.
.PP
.SH " Save Setup" .SH " Save Setup"
At startup the Midnight Commander will try to load initialization At startup the Midnight Commander will try to load initialization
information from the ~/.mc/ini file. If this file doesn't exist, information from the ~/.mc/ini file. If this file doesn't exist,
@ -2053,6 +2114,18 @@ cancel the Chmod command
The Chown command is used to change the owner/group of a file. The hot The Chown command is used to change the owner/group of a file. The hot
key for this command is C-x o. key for this command is C-x o.
.PP .PP
.SH "Advanced Chown"
The Advanced Chown command is the
.\"LINK2"
Chmod
.\"Chmod"
and
.\"LINK2"
Chown
.\"Chown"
command combined into one window. You can change the permissions and
owner/group of files at once.
.PP
.SH "File Operations" .SH "File Operations"
When you copy, move or delete files the Midnight Commander shows the When you copy, move or delete files the Midnight Commander shows the
file operations dialog. It shows the files currently being operated on file operations dialog. It shows the files currently being operated on
@ -2431,10 +2504,12 @@ Filename, username, variable and hostname completion works on all input
lines, command completion is command line specific. lines, command completion is command line specific.
If the completion is ambiguous (there are more different possibilities), If the completion is ambiguous (there are more different possibilities),
MC beeps and the following action depends on the setting of the MC beeps and the following action depends on the setting of the
.I Complete: show all
option in the
.\"LINK2" .\"LINK2"
show_all_if_ambiguous Configuration
.\"Special Settings" .\"Configuration">
variable in the Initialization file. If it is nonzero, a list of all dialog. If it is enabled, a list of all
possibilities pops up next to the current position and you can select with possibilities pops up next to the current position and you can select with
the arrow keys and the arrow keys and
.B Enter .B Enter
@ -2450,9 +2525,9 @@ canceling keys
.B F10 .B F10
and left and right arrow keys. If and left and right arrow keys. If
.\"LINK2" .\"LINK2"
show_all_if_ambiguous Complete: show all
.\"Special Settings" .\"Configuration"
is set to zero, the dialog pops up only if you press is disabled, the dialog pops up only if you press
.B M-Tab .B M-Tab
for the second time, for the first time MC just beeps. for the second time, for the first time MC just beeps.
.PP .PP
@ -2811,13 +2886,6 @@ If you press F3 on a directory, normally MC enters that directory. If
this flag is set to 1, then MC will ask for confirmation before this flag is set to 1, then MC will ask for confirmation before
changing the directory if you have files tagged. changing the directory if you have files tagged.
.PP .PP
.I drop_menus.
.IP
If this variable is set, when you press the F9 key, the pull down
menus will be activated, else, you will only be presented with the
menu title, and you will have to select the entry with the arrow keys
or the first letter and from there select your option in the menu.
.PP
.I ftpfs_retry_seconds. .I ftpfs_retry_seconds.
.IP .IP
This value is the number of seconds the Midnight Commander will wait This value is the number of seconds the Midnight Commander will wait
@ -2854,17 +2922,6 @@ line on the panels.
Controls if scrolling with the mouse is done by pages or line by line Controls if scrolling with the mouse is done by pages or line by line
on the internal file viewer. on the internal file viewer.
.PP .PP
.I navigate_with_arrows.
.IP
If this setting is turned on, then you may use the arrows keys to
automatically chdir if the current selection is a subdirectory and
the shell command line is empty. By default, this setting is off.
.PP
.I nice_rotating_dash
.IP
When on, this flag causes the commander to show a rotating dash as a
work in progress indicator.
.PP
.I old_esc_mode .I old_esc_mode
.IP .IP
By default the Midnight Commander treats the ESC key as a key prefix By default the Midnight Commander treats the ESC key as a key prefix
@ -2899,20 +2956,6 @@ When you use the C-o keystroke to go back to the user screen, if this
one is set, you will get a fresh shell. Otherwise, pressing any key one is set, you will get a fresh shell. Otherwise, pressing any key
will bring you back to the Midnight Commander. will bring you back to the Midnight Commander.
.PP .PP
.I show_all_if_ambiguous.
.IP
By default the Midnight Commander pops up all possible
.\"LINK2"
completions
.\"Completion"
if the completion is ambiguous if you press
.B M-Tab
for the second time, for the first time it just completes as much as
possible and in the case of ambiguity beeps. If you want to see all the
possible completions already after the first
.B M-Tab
pressing, set this option to 1.
.PP
.I torben_fj_mode .I torben_fj_mode
.IP .IP
If this flag is set, then the home and end keys will work slightly If this flag is set, then the home and end keys will work slightly

View File

@ -1182,6 +1182,10 @@ Comments are started with <tt/&num;/. The additional comment
lines must start with <tt/&num;/, space or tab. lines must start with <tt/&num;/, space or tab.
<sect1>Options Menu<label id="Options Menu"> <sect1>Options Menu<label id="Options Menu">
<p>
The Midnight Commander has some options that may be toggled on and
off in several dialogs which are accessible from this menue. Options
are enabled if they have an asterisk or "x" in front of them.
<p> <p>
The <lnk name="Configuration" id="Configuration"> command pops up a dialog from which you The <lnk name="Configuration" id="Configuration"> command pops up a dialog from which you
@ -1211,16 +1215,8 @@ settings is saved, too.
<sect2>Configuration<label id="Configuration"> <sect2>Configuration<label id="Configuration">
<p> <p>
The program has some options that may be toggled on and The options in this dialog are divided into three groups: Panel Options
off from the Configuration dialog. Options are enabled if Pause after run and Other Options.
they have an asterisk or "x" in front of them. These
options are divided into three groups: Screen Colors,
Panel Options and Other Options.
<bf/Screen Colors/ You can select whether your display supports color or not.
Normally this information is in the terminfo database. If
you want to know how to change individual colors see the
section on <lnk name="Colors" id="Colors">.
<bf/Panel Options/ <bf/Panel Options/
@ -1233,9 +1229,11 @@ show all files that start with a dot (like <tt/ls -a/).
<tag/Mark moves down/ By default when you mark a file (with <tag/Mark moves down/ By default when you mark a file (with
either <tt/C-t/ or the Insert key) the selection bar will move either <tt/C-t/ or the Insert key) the selection bar will move
down. down.
<tag/Show Mini-Status/ If enabled, show one line of status <tag/Drop down menues/ When this option is enabled, when you press the <tt/F9/
information at the bottom of the panels about the key, the pull down menus will be activated, else, you will
currently selected item. only be presented with the menu title, and you will have
to select the entry with the arrow keys or the first
letter and from there select your option in the menu.
<tag/Mix all files/ When this option is enabled, all files and <tag/Mix all files/ When this option is enabled, all files and
directories are shown mixed together. If the option is directories are shown mixed together. If the option is
off, directories (and links to directories) are shown at off, directories (and links to directories) are shown at
@ -1253,16 +1251,9 @@ option on, you have to rescan the directory manually (with
<tt/C-r/). <tt/C-r/).
</descrip> </descrip>
<bf/Other Options/ <bf/Pause after run/
<descrip> <descrip>
<tag/Verbose operation/ This toggles whether the file Copy, After executing your commands, the
Rename and Delete operations are verbose (i.e. display a
dialog box for each operation). If you have a slow
terminal, you may wish to disable the verbose operation.
It is automatically turned off if the speed of your
terminal is less than 9600 bps.
<tag/Pause after run/ After executing your commands, the
Midnight Commander can pause, so that you can examine the Midnight Commander can pause, so that you can examine the
output of the command. There are three possible settings output of the command. There are three possible settings
for this variable: <em/Never/ Means that you do not want to see for this variable: <em/Never/ Means that you do not want to see
@ -1274,6 +1265,24 @@ showing the output of the last command executed (any
terminal that is not an <bf/xterm/ or the Linux console). terminal that is not an <bf/xterm/ or the Linux console).
<em/Always/ The program will pause after executing all of your <em/Always/ The program will pause after executing all of your
commands. commands.
</descrip>
<bf/Other Options/
<descrip>
<tag/Verbose operation/ This toggles whether the file Copy,
Rename and Delete operations are verbose (i.e. display a
dialog box for each operation). If you have a slow
terminal, you may wish to disable the verbose operation.
It is automatically turned off if the speed of your
terminal is less than 9600 bps.
<tag/Compute totals/ If this option is enabled, the Midnight
Commander computes total byte sizes and total number of files
prior to any Copy, Rename and Delete operations. This will
provide you with a more accurate progress bar at the expense
of some speed. This option has no effect, if <em/Verbose operation/
is disabled.
<tag/Shell Patterns/ By default the Select, Unselect and Filter <tag/Shell Patterns/ By default the Select, Unselect and Filter
commands will use shell-like regular expressions. The commands will use shell-like regular expressions. The
following conversions are performed to achieve this: the following conversions are performed to achieve this: the
@ -1299,9 +1308,24 @@ is disabled, the pager specified in the <tt/PAGER/ environment
variable is used. If no pager is specified, the <bf/view/ variable is used. If no pager is specified, the <bf/view/
command is used. See the section on the <lnk name="internal file command is used. See the section on the <lnk name="internal file
viewer" id="Internal File Viewer">. viewer" id="Internal File Viewer">.
<tag/Confirm Delete/ This option is toggled on by default, and <tag/Complete: show all/ By default the Midnight Commander
will cause the Midnight Commander to ask for confirmation pops up all possible <lnk name="completions" id="Completion"> if the completion is
when deleting a single file. ambiguous if you press <tt/M-Tab/ for the second time, for the
first time it just completes as much as possible and in
the case of ambiguity beeps. If you want to see all the
possible completions already after the first <tt/M-Tab/
pressing, enable this option.
<tag/Rotating dash/ If this option is enabled, the
Midnight Commander shows a rotating dash in the upper right corner
as a work in progress indicator.
<tag/Lynx-like motion/ If this option is enabled,
you may use the arrows keys to automatically chdir if the
current selection is a subdirectory and the shell command
line is empty. By default, this setting is off.
<tag/Advanced chown/ If this option is enabled, the
<lnk name="Advanced Chown" id="Advanced Chown">
command will be invoked if you run the
<lnk name="Chmod" id="Chmod"> or <lnk name="Chown" id="Chown"> command.
<tag/Cd follows links/ This option, if set, causes the Midnight <tag/Cd follows links/ This option, if set, causes the Midnight
Commander to follow the logical chain of directories when Commander to follow the logical chain of directories when
changing current directory either in the panels, or using changing current directory either in the panels, or using
@ -1311,6 +1335,12 @@ directory structure, so <tt/cd ../ if you've entered that
directory through a link will move you to the current directory through a link will move you to the current
directory's real parent and not to the directory where the directory's real parent and not to the directory where the
link was present. link was present.
<tag/Safe delete/ If this option is enabled, deleting files
unintentionally will get more difficult. The default
selection in the confirmation dialog changes from the "Yes"
to the "No" button and deletion of non empty direcories has to be
confirmed by entering the word <em/yes/. By default this
option is disabled.
</descrip> </descrip>
<sect2>Display bits<label id="Display bits"> <sect2>Display bits<label id="Display bits">
@ -1437,6 +1467,10 @@ panels. You can specify whether the area is split to the
panels in vertical or horizontal direction. The split can panels in vertical or horizontal direction. The split can
be equal or you can specify an unequal split. be equal or you can specify an unequal split.
If the <em/Show Mini-Status/ option is enabled, one line of status
information about the currently selected item is showed at the bottom
of the panels.
<sect2>Save Setup<label id="Save Setup"> <sect2>Save Setup<label id="Save Setup">
<p> <p>
@ -1691,6 +1725,15 @@ selected files
The Chown command is used to change the owner/group of a The Chown command is used to change the owner/group of a
file. The hot key for this command is <tt/C-x o/. file. The hot key for this command is <tt/C-x o/.
<sect>Advanced Chown<label id="Advanced Chown">
<p>
The Advanced Chown command is the <lnk name="Chmod" id="Chmod">
and <lnk name="Chown" id="Chown"> command combined into one
window. You can change the permissions and owner/group of
files at once.
<sect>File Operations<label id="File Operations"> <sect>File Operations<label id="File Operations">
<p> <p>
@ -2052,9 +2095,9 @@ Filename, username, variable and hostname completion works
on all input lines, command completion is command line on all input lines, command completion is command line
specific. If the completion is ambiguous (there are more specific. If the completion is ambiguous (there are more
different possibilities), MC beeps and the following different possibilities), MC beeps and the following
action depends on the setting of the <em/show_all_if_ambiguous/ action depends on the setting of the <em/Complete: show all/
<lnk name="variable" id="Special Settings"> option in the <lnk name="Configuration" id="Configuration">
in the Initialization file. If it is nonzero, a dialog. If it is enabled, a
list of all possibilities pops up next to the current list of all possibilities pops up next to the current
position and you can select with the arrow keys and <tt/Enter/ position and you can select with the arrow keys and <tt/Enter/
the correct entry. You can also type the first letters in the correct entry. You can also type the first letters in
@ -2065,8 +2108,9 @@ listbox, otherwise the first item which matches all the
previous characters will be highlighted. As soon as there previous characters will be highlighted. As soon as there
is no ambiguity, dialog disappears, but you can hide it by is no ambiguity, dialog disappears, but you can hide it by
canceling keys <tt/Esc,/ <tt/F10/ and left and right arrow keys. If canceling keys <tt/Esc,/ <tt/F10/ and left and right arrow keys. If
<em/show_all_if_ambiguous/ <em/Complete: show all/
<lnk name="variable" id="Special Settings"> is set to zero, the dialog pops up <lnk name="Configuration" id="Configuration"> is disabled,
the dialog pops up
only if you press <tt/M-Tab/ for the second time, for the first only if you press <tt/M-Tab/ for the second time, for the first
time MC just beeps. time MC just beeps.
@ -2390,12 +2434,6 @@ of the field clear_before_exec to 0.
MC enters that directory. If this flag is set to 1, then MC enters that directory. If this flag is set to 1, then
MC will ask for confirmation before changing the directory MC will ask for confirmation before changing the directory
if you have files tagged. if you have files tagged.
<tag/drop_menus/ If this variable is set, when you press the <tt/F9/
key, the pull down menus will be activated, else, you will
only be presented with the menu title, and you will have
to select the entry with the arrow keys or the first
letter and from there select your option in the menu.
<tag/ftpfs_retry_seconds/ <tag/ftpfs_retry_seconds/
This value is the number of seconds the Midnight Commander will wait This value is the number of seconds the Midnight Commander will wait
before attempting a reconnection to an ftp server that has denied the before attempting a reconnection to an ftp server that has denied the
@ -2421,12 +2459,6 @@ mouse is done by pages or line by line on the panels.
<tag/mouse_move_pages_viewer/ Controls if scrolling with the <tag/mouse_move_pages_viewer/ Controls if scrolling with the
mouse is done by pages or line by line on the internal mouse is done by pages or line by line on the internal
file viewer. file viewer.
<tag/navigate_with_arrows/ If this setting is turned on, then
you may use the arrows keys to automatically chdir if the
current selection is a subdirectory and the shell command
line is empty. By default, this setting is off.
<tag/nice_rotating_dash/ When on, this flag causes the commander
to show a rotating dash as a work in progress indicator.
<tag/old_esc_mode/ By default the Midnight Commander treats the <tag/old_esc_mode/ By default the Midnight Commander treats the
<tt/ESC/ key as a key prefix (old_esc_mode=0), if you set this <tt/ESC/ key as a key prefix (old_esc_mode=0), if you set this
option (old_esc_mode=1), then the <tt/ESC/ key will act as a option (old_esc_mode=1), then the <tt/ESC/ key will act as a
@ -2451,13 +2483,6 @@ This variable only works if you are not using the subshell support.
When you use the C-o keystroke to go back to the user screen, if this When you use the C-o keystroke to go back to the user screen, if this
one is set, you will get a fresh shell. Otherwise, pressing any key one is set, you will get a fresh shell. Otherwise, pressing any key
will bring you back to the Midnight Commander. will bring you back to the Midnight Commander.
<tag/show_all_if_ambiguous/ By default the Midnight Commander
pops up all possible <lnk name="completions" id="Completion"> if the completion is
ambiguous if you press <tt/M-Tab/ for the second time, for the
first time it just completes as much as possible and in
the case of ambiguity beeps. If you want to see all the
possible completions already after the first <tt/M-Tab/
pressing, set this option to 1.
<tag/torben_fj_mode/ If this flag is set, then the home and end <tag/torben_fj_mode/ If this flag is set, then the home and end
keys will work slightly different on the panels, instead keys will work slightly different on the panels, instead
of moving the selection to the first and last files in the of moving the selection to the first and last files in the

View File

@ -1,3 +1,8 @@
Thu Dec 24 18:38:45 1998 Norbert Warmuth <nwarmuth@privat.circular.de>
* layout: Adapted for the new option Compute Totals in the
Configuration dialog.
1998-12-22 Jonathan Blandford <jrb@redhat.com> 1998-12-22 Jonathan Blandford <jrb@redhat.com>
* gdialogs.c (file_progress_query_replace_policy): new function. * gdialogs.c (file_progress_query_replace_policy): new function.

View File

@ -136,19 +136,19 @@ flags=snew
text=Directory path text=Directory path
[option-Widget-button-ok] [option-Widget-button-ok]
geometry=2,15,1,1 geometry=2,16,1,1
flags= flags=
[option-Widget-safe-del] [option-Widget-safe-del]
geometry=5,13,1,1 geometry=5,14,1,1
flags=w flags=w
[option-Widget-shell-patt] [option-Widget-shell-patt]
geometry=5,3,1,1 geometry=5,4,1,1
flags=w flags=w
[option-Widget-auto-save] [option-Widget-auto-save]
geometry=5,4,1,1 geometry=5,5,1,1
flags=w flags=w
[option-Widget-drop-menus] [option-Widget-drop-menus]
@ -156,15 +156,15 @@ geometry=2,5,2,1
flags=w flags=w
[option-Widget-edit-int] [option-Widget-edit-int]
geometry=5,6,1,1 geometry=5,7,1,1
flags=w flags=w
[option-Widget-button-save] [option-Widget-button-save]
geometry=3,15,2,1 geometry=3,16,2,1
flags=ew flags=ew
[option-Widget-lynx] [option-Widget-lynx]
geometry=5,10,1,1 geometry=5,11,1,1
flags=w flags=w
[option-Widget-fast-reload] [option-Widget-fast-reload]
@ -172,15 +172,15 @@ geometry=2,7,1,1
flags=w flags=w
[option-Widget-view-int] [option-Widget-view-int]
geometry=5,7,1,1
flags=w
[option-Widget-completion]
geometry=5,8,1,1 geometry=5,8,1,1
flags=w flags=w
[option-Widget-completion]
geometry=5,9,1,1
flags=w
[option-Widget-achown] [option-Widget-achown]
geometry=5,11,1,1 geometry=5,12,1,1
flags=w flags=w
[option-Widget-show-hidden] [option-Widget-show-hidden]
@ -195,24 +195,28 @@ flags=w
geometry=5,2,1,1 geometry=5,2,1,1
flags=w flags=w
[option-Widget-compute-totals]
geometry=5,3,1,1
flags=w
[option-Widget-mix-files] [option-Widget-mix-files]
geometry=2,6,2,1 geometry=2,6,2,1
flags=w flags=w
[option-Widget-auto-menus] [option-Widget-auto-menus]
geometry=5,5,1,1 geometry=5,6,1,1
flags=w flags=w
[option-Widget-button-cancel] [option-Widget-button-cancel]
geometry=5,15,1,1 geometry=5,16,1,1
flags= flags=
[option-Widget-dummy] [option-Widget-dummy]
geometry=5,9,1,1 geometry=5,10,1,1
flags= flags=w
[option-Widget-cd-follow] [option-Widget-cd-follow]
geometry=5,12,1,1 geometry=5,13,1,1
flags=w flags=w
[option-Widget-show-backup] [option-Widget-show-backup]
@ -220,11 +224,11 @@ geometry=2,2,2,1
flags=w flags=w
[option-Widget-pause-radio] [option-Widget-pause-radio]
geometry=2,10,2,5 geometry=2,11,2,5
flags=nw flags=nw
[option-Frame-Frame-1] [option-Frame-Frame-1]
geometry=4,0,4,15 geometry=4,0,4,16
flags=snew flags=snew
text=Other options text=Other options

View File

@ -1,3 +1,39 @@
Thu Dec 24 19:00:05 1998 Norbert Warmuth <nwarmuth@privat.circular.de>
* screen.c (recalculate_panel_summary): new function which recalculates
the summary information for the mini-status.
* screen.c (panel_reload): use recalculate_panel_summary
* screen.c (do_file_mark): Honour that dirsizes computed is now a
per entry flag.
Thu Dec 24 18:53:16 1998 Norbert Warmuth <nwarmuth@privat.circular.de>
* option.c: Added Compute Totals to the configuration dialog.
* file.c (compute_dir_size): made non static
(panel_operate_flags): Don't compute directory sizes if verbose
operation are off.
Thu Dec 24 18:42:52 1998 Norbert Warmuth <nwarmuth@privat.circular.de>
* cmd.c (dirsizes_cmd): Rewritten to use compute_dir_size as suggested
by Miguel, i.e. get rid of du. Now the dirsizes_cmd honours a
selection and computes sizes only for marked directories. Possible
improvement: add a dialog (or C-C?) to abort computation.
* dir.h (file_entry), panel.h (WPanel): Made the dirsizes computed
flag a per file flag.
* dir.c, find.c, panelize.c, screen.c: Adapted to new file_entry and
WPanel structure.
* features.inc: Deleted DUSUM information
* mc.hlp: remade because of changes in doc/mc.1.in
1998-12-22 Jonathan Blandford <jrb@redhat.com> 1998-12-22 Jonathan Blandford <jrb@redhat.com>
* file.c: add a HAVE_GNOME only function * file.c: add a HAVE_GNOME only function

110
src/cmd.c
View File

@ -1346,102 +1346,28 @@ void quick_cd_cmd (void)
free (p); free (p);
} }
#ifdef SCO_FLAVOR void
#undef DUSUM_USEB dirsizes_cmd (void)
#undef DUSUM_FACTOR
#endif /* SCO_FLAVOR */
#ifdef HAVE_DUSUM
void dirsizes_cmd (void)
{ {
WPanel *panel = cpanel; WPanel *panel = cpanel;
int i, j = 0; int i;
char *cmd, *p, *q, *r; long marked;
FILE *f; double total;
#ifdef DUSUM_USEB
# define dirsizes_command "du -s -b "
#else
# define dirsizes_command "du -s "
#endif
#ifndef DUSUM_FACTOR
# define DUSUM_FACTOR 512
#endif
if (!vfs_current_is_local ()) { for (i = 0; i < panel->count; i++)
message (1, MSG_ERROR, _("You can not scan disk usage on non-local filesystem. Sorry.") ); if (S_ISDIR (panel->dir.list [i].buf.st_mode) &&
return; ((panel->dirs_marked && panel->dir.list [i].f.marked) ||
} !panel->dirs_marked) &&
for (i = 0; i < panel->count; i++) strcmp (panel->dir.list [i].fname, "..") != 0) {
if (S_ISDIR (panel->dir.list [i].buf.st_mode)) total = 0.0l;
j += strlen (panel->dir.list [i].fname) + 1; compute_dir_size (panel->dir.list [i].fname, &marked, &total);
if (!j) panel->dir.list [i].buf.st_size = (long)total;
return; panel->dir.list [i].f.dir_size_computed = 1;
/* worst case: name_quote doubles every filename, i.e. use }
2 * j to be save */
cmd = xmalloc (strlen (dirsizes_command) + 2 * j + 1, "dirsizes_cmd"); recalculate_panel_summary (panel);
strcpy (cmd, dirsizes_command); paint_panel (panel);
p = strchr (cmd, 0);
for (i = 0; i < panel->count; i++)
if (S_ISDIR (panel->dir.list [i].buf.st_mode) &&
strcmp (panel->dir.list [i].fname, "..")) {
/* The quotes will be removed from the shell when invoking
du, i.e. no need to remove quotes when reading the
directory sizes from du. */
strcpy (p, r = name_quote (panel->dir.list [i].fname, 0));
free (r);
p = strchr (p, 0);
*(p++) = ' ';
}
*(--p) = 0;
open_error_pipe ();
f = popen (cmd, "r");
free (cmd);
if (f != NULL) {
/* Assume that du will display the directories in the order
* I've passed to it :(
*/
i = 0;
p = xmalloc (1024, "dirsizes_cmd");
while (fgets (p, 1024, f)) {
j = atoi (p) * DUSUM_FACTOR;
for (q = p; *q && *q != ' ' && *q != '\t'; q++);
while (*q == ' ' || *q == '\t')
q++;
r = strchr (q, '\n');
if (r == NULL)
r = strchr (q, 0);
for (; i < panel->count; i++)
if (S_ISDIR (panel->dir.list [i].buf.st_mode))
if (!strncmp (q, panel->dir.list [i].fname,
r - q)) {
if (panel->dir.list [i].f.marked)
panel->total += j -
((panel->has_dir_sizes) ? panel->dir.list [i].buf.st_size : 0);
panel->dir.list [i].buf.st_size = j;
break;
}
if (i == panel->count)
break;
}
free (p);
if (pclose (f) < 0)
#ifndef SCO_FLAVOR
message (0, _("Show directory sizes"), _("Pipe close failed"));
else
#else /* SCO_FLAVOR */
/*
** SCO reports about error while all seems to be ok. Just ignore it...
** (alex@bcs.zaporizhzhe.ua)
*/
;
#endif /* SCO_FLAVOR */
panel->has_dir_sizes = 1;
close_error_pipe (0, 0);
paint_panel (panel);
} else
close_error_pipe (1, _("Cannot invoke du command."));
} }
#endif
void void
save_setup_cmd (void) save_setup_cmd (void)

View File

@ -318,6 +318,7 @@ add_dotdot_to_list (dir_list *list, int index)
(list->list) [index].fname = strdup (".."); (list->list) [index].fname = strdup ("..");
(list->list) [index].f.link_to_dir = 0; (list->list) [index].f.link_to_dir = 0;
(list->list) [index].f.stalled_link = 0; (list->list) [index].f.stalled_link = 0;
(list->list) [index].f.dir_size_computed = 0;
/* FIXME: We need to get the panel definition! to use file_mark */ /* FIXME: We need to get the panel definition! to use file_mark */
(list->list) [index].f.marked = 0; (list->list) [index].f.marked = 0;
@ -472,6 +473,7 @@ int do_load_dir(dir_list *list, sortfn *sort, int reverse, int case_sensitive, c
list->list [next_free].f.marked = 0; list->list [next_free].f.marked = 0;
list->list [next_free].f.link_to_dir = link_to_dir; list->list [next_free].f.link_to_dir = link_to_dir;
list->list [next_free].f.stalled_link = stalled_link; list->list [next_free].f.stalled_link = stalled_link;
list->list [next_free].f.dir_size_computed = 0;
list->list [next_free].buf = buf; list->list [next_free].buf = buf;
if (strcmp (dp->d_name, ".." ) == 0) if (strcmp (dp->d_name, ".." ) == 0)
dotdot_found = 1; dotdot_found = 1;
@ -561,6 +563,7 @@ int do_reload_dir (dir_list *list, sortfn *sort, int count, int rev,
dir_copy.list [i].fnamelen = list->list [i].fnamelen; dir_copy.list [i].fnamelen = list->list [i].fnamelen;
dir_copy.list [i].fname = list->list [i].fname; dir_copy.list [i].fname = list->list [i].fname;
dir_copy.list [i].f.marked = list->list [i].f.marked; dir_copy.list [i].f.marked = list->list [i].f.marked;
dir_copy.list [i].f.dir_size_computed = list->list [i].f.dir_size_computed;
dir_copy.list [i].f.link_to_dir = list->list [i].f.link_to_dir; dir_copy.list [i].f.link_to_dir = list->list [i].f.link_to_dir;
dir_copy.list [i].f.stalled_link = list->list [i].f.stalled_link; dir_copy.list [i].f.stalled_link = list->list [i].f.stalled_link;
} }
@ -590,7 +593,7 @@ int do_reload_dir (dir_list *list, sortfn *sort, int count, int rev,
if (tmp_len == dir_copy.list [i].fnamelen if (tmp_len == dir_copy.list [i].fnamelen
&& !strcmp (dp->d_name, dir_copy.list [i].fname)){ && !strcmp (dp->d_name, dir_copy.list [i].fname)){
list->list [next_free].f.marked = dir_copy.list [i].f.marked; list->list [next_free].f.marked = dir_copy.list [i].f.marked;
found = 1; found = 1;
break; break;
} }
@ -601,6 +604,7 @@ int do_reload_dir (dir_list *list, sortfn *sort, int count, int rev,
list->list [next_free].fname = strdup (dp->d_name); list->list [next_free].fname = strdup (dp->d_name);
list->list [next_free].f.link_to_dir = link_to_dir; list->list [next_free].f.link_to_dir = link_to_dir;
list->list [next_free].f.stalled_link = stalled_link; list->list [next_free].f.stalled_link = stalled_link;
list->list [next_free].f.dir_size_computed = 0;
list->list [next_free].buf = buf; list->list [next_free].buf = buf;
if (strcmp (dp->d_name, ".." ) == 0) if (strcmp (dp->d_name, ".." ) == 0)
dotdot_found = 1; dotdot_found = 1;

View File

@ -17,6 +17,7 @@ typedef struct {
unsigned int marked:1; /* File marked in pane window */ unsigned int marked:1; /* File marked in pane window */
unsigned int link_to_dir:1; /* If this is a link, does it point to directory? */ unsigned int link_to_dir:1; /* If this is a link, does it point to directory? */
unsigned int stalled_link:1; /* If this is a symlink and points to Charon's land */ unsigned int stalled_link:1; /* If this is a symlink and points to Charon's land */
unsigned int dir_size_computed:1; /* Size of directory was computed with dirsizes_cmd */
} f; } f;
} file_entry; } file_entry;

View File

@ -74,10 +74,6 @@ char *features =
"\n" "\n"
#endif #endif
#ifdef HAVE_DUSUM
"With DUSUM command\n"
#endif
#ifdef WITH_BACKGROUND #ifdef WITH_BACKGROUND
"With support for background operations\n" "With support for background operations\n"
#endif #endif

View File

@ -1576,7 +1576,7 @@ file_mask_defaults (void)
* *
* Computes the number of bytes used by the files in a directory * Computes the number of bytes used by the files in a directory
*/ */
static void void
compute_dir_size (char *dirname, long *ret_marked, double *ret_total) compute_dir_size (char *dirname, long *ret_marked, double *ret_total)
{ {
DIR *dir; DIR *dir;
@ -1879,7 +1879,7 @@ panel_operate_flags (void *source_panel, FileOperation operation, char *thedefau
} }
/* Initialize variables for progress bars */ /* Initialize variables for progress bars */
if (file_op_compute_totals) if (verbose && file_op_compute_totals)
panel_compute_totals ( panel_compute_totals (
panel, &file_progress_count, &file_progress_bytes); panel, &file_progress_count, &file_progress_bytes);
else { else {

View File

@ -92,6 +92,7 @@ int background_attention (int fd, void *info);
extern int background_wait; extern int background_wait;
int is_wildcarded (char *p); int is_wildcarded (char *p);
void compute_dir_size (char *dirname, long *ret_marked, double *ret_total);
#endif #endif

View File

@ -861,6 +861,7 @@ find_file (char *start_dir, char *pattern, char *content, char **dirname, char
file_mark (cpanel, next_free, 0); file_mark (cpanel, next_free, 0);
list->list [next_free].f.link_to_dir = link_to_dir; list->list [next_free].f.link_to_dir = link_to_dir;
list->list [next_free].f.stalled_link = stalled_link; list->list [next_free].f.stalled_link = stalled_link;
list->list [next_free].f.dir_size_computed = 0;
list->list [next_free].buf = buf; list->list [next_free].buf = buf;
next_free++; next_free++;
if (!(next_free & 15)) if (!(next_free & 15))
@ -870,7 +871,6 @@ find_file (char *start_dir, char *pattern, char *content, char **dirname, char
cpanel->count = next_free; cpanel->count = next_free;
cpanel->is_panelized = 1; cpanel->is_panelized = 1;
cpanel->dirs_marked = 0; cpanel->dirs_marked = 0;
cpanel->has_dir_sizes = 0;
cpanel->marked = 0; cpanel->marked = 0;
cpanel->total = 0; cpanel->total = 0;
cpanel->top_file = 0; cpanel->top_file = 0;

View File

@ -1283,9 +1283,7 @@ static menu_entry CmdMenu [] = {
{ ' ', N_("switch &Panels on/off C-o"), 'P', view_other_cmd }, { ' ', N_("switch &Panels on/off C-o"), 'P', view_other_cmd },
{ ' ', N_("&Compare directories C-x d"), 'C', compare_dirs_cmd }, { ' ', N_("&Compare directories C-x d"), 'C', compare_dirs_cmd },
{ ' ', N_("e&Xternal panelize C-x !"), 'X', external_panelize }, { ' ', N_("e&Xternal panelize C-x !"), 'X', external_panelize },
#ifdef HAVE_DUSUM
{ ' ', N_("show directory s&Izes"), 'I', dirsizes_cmd }, { ' ', N_("show directory s&Izes"), 'I', dirsizes_cmd },
#endif
{ ' ', "", ' ', 0 }, { ' ', "", ' ', 0 },
{ ' ', N_("command &History"), 'H', history_cmd }, { ' ', N_("command &History"), 'H', history_cmd },
{ ' ', N_("di&Rectory hotlist C-\\"), 'R', quick_chdir_cmd }, { ' ', N_("di&Rectory hotlist C-\\"), 'R', quick_chdir_cmd },

View File

@ -45,6 +45,7 @@ Topics:
 Controlling Midnight Commander Controlling Midnight Commander  Controlling Midnight Commander Controlling Midnight Commander
 Chmod Chmod  Chmod Chmod
 Chown Chown  Chown Chown
 Advanced Chown Advanced Chown
 File Operations File Operations  File Operations File Operations
 Mask Copy/Rename Mask Copy/Rename  Mask Copy/Rename Mask Copy/Rename
 Internal File Viewer Internal File Viewer  Internal File Viewer Internal File Viewer
@ -1296,6 +1297,11 @@ lines must start with '#', space or tab.
[Options Menu] [Options Menu]
Options Menu Options Menu
The Midnight Commander has some options that may be
toggled on and off in several dialogs which are accessible
from this menue. Options are enabled if they have an
asterisk or "x" in front of them.
The ConfigurationConfiguration command pops up a dialog from which you The ConfigurationConfiguration command pops up a dialog from which you
can change most of settings of the Midnight Commander. can change most of settings of the Midnight Commander.
@ -1323,18 +1329,8 @@ settings is saved, too.
[Configuration] [Configuration]
Configuration Configuration
The program has some options that may be toggled on and The options in this dialog are divided into three groups:
off from the Configuration dialog. Options are enabled if Panel Options, Pause after run and Other Options.
they have an asterisk or "x" in front of them. These
options are divided into three groups: Screen Colors,
Panel Options and Other Options.
Screen Colors
You can select whether your display supports color or not.
Normally this information is in the terminfo database. If
you want to know how to change individual colors see the
section on Colors.Colors
Panel Options Panel Options
@ -1349,9 +1345,12 @@ show all files that start with a dot (like ls -a).
either C-t or the Insert key) the selection bar will move either C-t or the Insert key) the selection bar will move
down. down.
Show Mini-Status. If enabled, show one line of status Drop down menues. When this option is enabled, when you
information at the bottom of the panels about the press the F9 key, the pull down menus will be activated,
currently selected item. else, you will only be presented with the menu title, and
you will have to select the entry with the arrow keys or
the first letter and from there select your option in the
menu.
Mix all files. When this option is enabled, all files and Mix all files. When this option is enabled, all files and
directories are shown mixed together. If the option is directories are shown mixed together. If the option is
@ -1370,6 +1369,20 @@ display is not updated. In these cases, if you have the
option on, you have to rescan the directory manually (with option on, you have to rescan the directory manually (with
C-r). C-r).
Pause after run
After executing your commands, the Midnight Commander can
pause, so that you can examine the output of the command.
There are three possible settings for this variable: Never
Means that you do not want to see the output of your
command. If you are using the Linux or SCO console or an
xterm, you will be able to see the output of the command
by typing C-o. "On dumb terminals" You will get the pause
message on terminals that are not capable of showing the
output of the last command executed (any terminal that is
not an xterm or the Linux console). Always The program
will pause after executing all of your commands.
Other Options Other Options
Verbose operation. This toggles whether the file Copy, Verbose operation. This toggles whether the file Copy,
@ -1379,18 +1392,12 @@ terminal, you may wish to disable the verbose operation.
It is automatically turned off if the speed of your It is automatically turned off if the speed of your
terminal is less than 9600 bps. terminal is less than 9600 bps.
Pause after run. After executing your commands, the Compute totals. If this option is enabled, the Midnight
Midnight Commander can pause, so that you can examine the Commander computes total byte sizes and total number of
output of the command. There are three possible settings files prior to any Copy, Rename and Delete operations.
for this variable: Never Means that you do not want to see This will provide you with a more accurate progress bar at
the output of your command. If you are using the Linux or the expense of some speed. This option has no effect, if
SCO console or an xterm, you will be able to see the Verbose operation is disabled.
output of the command by typing C-o. "On dumb terminals"
You will get the pause message on terminals that are not
capable of showing the output of the last command executed
(any terminal that is not an xterm or the Linux console).
Always The program will pause after executing all of your
commands.
Shell Patterns. By default the Select, Unselect and Filter Shell Patterns. By default the Select, Unselect and Filter
commands will use shell-like regular expressions. The commands will use shell-like regular expressions. The
@ -1421,9 +1428,26 @@ variable is used. If no pager is specified, the view
command is used. See the section on the internal file command is used. See the section on the internal file
viewer.Internal File Viewer viewer.Internal File Viewer
Confirm Delete. This option is toggled on by default, and Complete: show all. By default the Midnight Commander pops
will cause the Midnight Commander to ask for confirmation up all possible completionsCompletion if the completion is ambiguous
when deleting a single file. if you press M-Tab for the second time, for the first time
it just completes as much as possible and in the case of
ambiguity beeps. If you want to see all the possible
completions already after the first M-Tab pressing, enable
this option.
Rotating dash. If this option is enabled, the Midnight
Commander shows a rotating dash in the upper right corner
as a work in progress indicator.
Lynx-like motion. If this option is enabled, you may use
the arrows keys to automatically chdir if the current
selection is a subdirectory and the shell command line is
empty. By default, this setting is off.
Advanced chown. If this option is enabled, the Advanced
ChownAdvanced Chown command will be invoked if you run the ChmodChmod or
ChownChown command.
Cd follows links. This option, if set, causes the Midnight Cd follows links. This option, if set, causes the Midnight
Commander to follow the logical chain of directories when Commander to follow the logical chain of directories when
@ -1435,6 +1459,13 @@ through a link will move you to the current directory's
real parent and not to the directory where the link was real parent and not to the directory where the link was
present. present.
Safe delete. If this option is enabled, deleting files
unintentionally will get more difficult. The default
selection in the confirmation dialog changes from the
"Yes" to the "No" button and deletion of non empty
direcories has to be confirmed by entering the word yes By
default this option is disabled.
[Display bits] [Display bits]
Display bits Display bits
@ -1559,6 +1590,10 @@ panels. You can specify whether the area is split to the
panels in vertical or horizontal direction. The split can panels in vertical or horizontal direction. The split can
be equal or you can specify an unequal split. be equal or you can specify an unequal split.
If the Show Mini-Status option is enabled, one line of
status information about the currently selected item is
showed at the bottom of the panels.
[Save Setup] [Save Setup]
Save Setup Save Setup
@ -1809,6 +1844,13 @@ Chown
The Chown command is used to change the owner/group of a The Chown command is used to change the owner/group of a
file. The hot key for this command is C-x o. file. The hot key for this command is C-x o.
[Advanced Chown]
Advanced Chown
The Advanced Chown command is the ChmodChmod and ChownChown command
combined into one window. You can change the permissions
and owner/group of files at once.
[File Operations] [File Operations]
File Operations File Operations
@ -2160,8 +2202,8 @@ Filename, username, variable and hostname completion works
on all input lines, command completion is command line on all input lines, command completion is command line
specific. If the completion is ambiguous (there are more specific. If the completion is ambiguous (there are more
different possibilities), MC beeps and the following different possibilities), MC beeps and the following
action depends on the setting of the show_all_if_ambiguousSpecial action depends on the setting of the Complete: show all
Settingsvariable in the Initialization file. If it is nonzero, a option in the ConfigurationConfiguration"> dialog. If it is enabled, a
list of all possibilities pops up next to the current list of all possibilities pops up next to the current
position and you can select with the arrow keys and Enter position and you can select with the arrow keys and Enter
the correct entry. You can also type the first letters in the correct entry. You can also type the first letters in
@ -2172,9 +2214,9 @@ listbox, otherwise the first item which matches all the
previous characters will be highlighted. As soon as there previous characters will be highlighted. As soon as there
is no ambiguity, dialog disappears, but you can hide it by is no ambiguity, dialog disappears, but you can hide it by
canceling keys Esc, F10 and left and right arrow keys. If canceling keys Esc, F10 and left and right arrow keys. If
show_all_if_ambiguousSpecial Settings is set to zero, the dialog pops up Complete: show allConfiguration is disabled, the dialog pops up only if
only if you press M-Tab for the second time, for the first you press M-Tab for the second time, for the first time MC
time MC just beeps. just beeps.
[Virtual File System] [Virtual File System]
Virtual File System Virtual File System
@ -2484,12 +2526,6 @@ MC enters that directory. If this flag is set to 1, then
MC will ask for confirmation before changing the directory MC will ask for confirmation before changing the directory
if you have files tagged. if you have files tagged.
drop_menus. If this variable is set, when you press the F9
key, the pull down menus will be activated, else, you will
only be presented with the menu title, and you will have
to select the entry with the arrow keys or the first
letter and from there select your option in the menu.
ftpfs_retry_seconds. This value is the number of seconds ftpfs_retry_seconds. This value is the number of seconds
the Midnight Commander will wait before attempting a the Midnight Commander will wait before attempting a
reconnection to an ftp server that has denied the login. reconnection to an ftp server that has denied the login.
@ -2519,14 +2555,6 @@ mouse is done by pages or line by line on the panels.
mouse is done by pages or line by line on the internal mouse is done by pages or line by line on the internal
file viewer. file viewer.
navigate_with_arrows. If this setting is turned on, then
you may use the arrows keys to automatically chdir if the
current selection is a subdirectory and the shell command
line is empty. By default, this setting is off.
nice_rotating_dash When on, this flag causes the commander
to show a rotating dash as a work in progress indicator.
old_esc_mode By default the Midnight Commander treats the old_esc_mode By default the Midnight Commander treats the
ESC key as a key prefix (old_esc_mode=0), if you set this ESC key as a key prefix (old_esc_mode=0), if you set this
option (old_esc_mode=1), then the ESC key will act as a option (old_esc_mode=1), then the ESC key will act as a
@ -2556,14 +2584,6 @@ keystroke to go back to the user screen, if this one is
set, you will get a fresh shell. Otherwise, pressing any set, you will get a fresh shell. Otherwise, pressing any
key will bring you back to the Midnight Commander. key will bring you back to the Midnight Commander.
show_all_if_ambiguous. By default the Midnight Commander
pops up all possible completionsCompletion if the completion is
ambiguous if you press M-Tab for the second time, for the
first time it just completes as much as possible and in
the case of ambiguity beeps. If you want to see all the
possible completions already after the first M-Tab
pressing, set this option to 1.
torben_fj_mode If this flag is set, then the home and end torben_fj_mode If this flag is set, then the home and end
keys will work slightly different on the panels, instead keys will work slightly different on the panels, instead
of moving the selection to the first and last files in the of moving the selection to the first and last files in the

View File

@ -47,9 +47,9 @@
#define PY 2 #define PY 2
#define RX 4 #define RX 4
#define RY 11 #define RY 12
#define BY 16 #define BY 17
#define OY 2 #define OY 2
static Dlg_head *conf_dlg; static Dlg_head *conf_dlg;
@ -79,7 +79,7 @@ static struct {
#ifdef HAVE_GNOME #ifdef HAVE_GNOME
{N_("Animation"), &dummy, TOGGLE_VARIABLE, 0, "dummy" }, {N_("Animation"), &dummy, TOGGLE_VARIABLE, 0, "dummy" },
#else #else
{N_("ro&Tating dash"), &nice_rotating_dash,TOGGLE_VARIABLE, 0, "rotating" }, {N_("rotatin&G dash"), &nice_rotating_dash,TOGGLE_VARIABLE, 0, "rotating" },
#endif #endif
{N_("co&Mplete: show all"),&show_all_if_ambiguous,TOGGLE_VARIABLE, 0, "completion" }, {N_("co&Mplete: show all"),&show_all_if_ambiguous,TOGGLE_VARIABLE, 0, "completion" },
{N_("&Use internal view"), &use_internal_view, TOGGLE_VARIABLE, 0, "view-int" }, {N_("&Use internal view"), &use_internal_view, TOGGLE_VARIABLE, 0, "view-int" },
@ -87,6 +87,7 @@ static struct {
{N_("auto m&Enus"), &auto_menu, TOGGLE_VARIABLE, 0, "auto-menus" }, {N_("auto m&Enus"), &auto_menu, TOGGLE_VARIABLE, 0, "auto-menus" },
{N_("&Auto save setup"), &auto_save_setup, TOGGLE_VARIABLE, 0, "auto-save" }, {N_("&Auto save setup"), &auto_save_setup, TOGGLE_VARIABLE, 0, "auto-save" },
{N_("shell &Patterns"), &easy_patterns, TOGGLE_VARIABLE, 0, "shell-patt" }, {N_("shell &Patterns"), &easy_patterns, TOGGLE_VARIABLE, 0, "shell-patt" },
{N_("Compute &Totals"), &file_op_compute_totals, TOGGLE_VARIABLE, 0, "compute-totals" },
{N_("&Verbose operation"), &verbose, TOGGLE_VARIABLE, 0, "verbose" }, {N_("&Verbose operation"), &verbose, TOGGLE_VARIABLE, 0, "verbose" },
{N_("&Fast dir reload"), &fast_reload, toggle_fast_reload, 0, "fast-reload" }, {N_("&Fast dir reload"), &fast_reload, toggle_fast_reload, 0, "fast-reload" },
{N_("mi&X all files"), &mix_all_files, toggle_mix_all_files, 0, "mix-files" }, {N_("mi&X all files"), &mix_all_files, toggle_mix_all_files, 0, "mix-files" },
@ -114,7 +115,7 @@ static int configure_callback (struct Dlg_head *h, int Id, int Msg)
draw_box (h, 1, 2, h->lines - 2, h->cols - 4); draw_box (h, 1, 2, h->lines - 2, h->cols - 4);
draw_box (h, PY, PX, 8, first_width); draw_box (h, PY, PX, 8, first_width);
draw_box (h, RY, RX, 5, first_width); draw_box (h, RY, RX, 5, first_width);
draw_box (h, OY, OX, 14, second_width); draw_box (h, OY, OX, 15, second_width);
attrset (COLOR_HOT_NORMAL); attrset (COLOR_HOT_NORMAL);
dlg_move (h, 1, (h->cols - strlen(configure_title))/2); dlg_move (h, 1, (h->cols - strlen(configure_title))/2);
@ -156,7 +157,7 @@ static void init_configure (void)
title3 = _(" Other options "); title3 = _(" Other options ");
first_width = strlen (title1) + 1; first_width = strlen (title1) + 1;
for (i = 12; i < 18; i++) for (i = 13; i < 18; i++)
{ {
check_options[i].text = _(check_options[i].text); check_options[i].text = _(check_options[i].text);
l1 = strlen (check_options[i].text) + 7; l1 = strlen (check_options[i].text) + 7;
@ -180,7 +181,7 @@ static void init_configure (void)
OX = first_width + 5; OX = first_width + 5;
second_width = strlen (title3) + 1; second_width = strlen (title3) + 1;
for (i = 0; i < 12; i++) for (i = 0; i < 13; i++)
{ {
check_options[i].text = _(check_options[i].text); check_options[i].text = _(check_options[i].text);
l1 = strlen (check_options[i].text) + 7; l1 = strlen (check_options[i].text) + 7;
@ -200,7 +201,7 @@ static void init_configure (void)
i18n_config_flag = 1; i18n_config_flag = 1;
} }
conf_dlg = create_dlg (0, 0, 19, first_width + second_width + 9, conf_dlg = create_dlg (0, 0, 20, first_width + second_width + 9,
dialog_colors, configure_callback, "[Options Menu]", dialog_colors, configure_callback, "[Options Menu]",
"option", DLG_CENTER | DLG_GRID); "option", DLG_CENTER | DLG_GRID);
@ -221,8 +222,8 @@ static void init_configure (void)
#define XTRACT(i) *check_options[i].variable, check_options[i].text, check_options [i].tk #define XTRACT(i) *check_options[i].variable, check_options[i].text, check_options [i].tk
/* Add all the checkboxes */ /* Add all the checkboxes */
for (i = 0; i < 12; i++){ for (i = 0; i < 13; i++){
check_options [i].widget = check_new (OY + (12-i), OX+2, XTRACT(i)); check_options [i].widget = check_new (OY + (13-i), OX+2, XTRACT(i));
add_widgetl (conf_dlg, check_options [i].widget, add_widgetl (conf_dlg, check_options [i].widget,
XV_WLAY_BELOWCLOSE); XV_WLAY_BELOWCLOSE);
} }
@ -233,9 +234,9 @@ static void init_configure (void)
add_widgetl (conf_dlg, pause_radio, XV_WLAY_BELOWCLOSE); add_widgetl (conf_dlg, pause_radio, XV_WLAY_BELOWCLOSE);
#endif #endif
for (i = 0; i < 6; i++){ for (i = 0; i < 6; i++){
check_options [i+12].widget = check_new (PY + (6-i), PX+2, check_options [i+13].widget = check_new (PY + (6-i), PX+2,
XTRACT(i+12)); XTRACT(i+13));
add_widgetl (conf_dlg, check_options [i+12].widget, add_widgetl (conf_dlg, check_options [i+13].widget,
XV_WLAY_BELOWCLOSE); XV_WLAY_BELOWCLOSE);
} }
} }

View File

@ -111,8 +111,6 @@ typedef struct {
int searching; int searching;
char search_buffer [256]; char search_buffer [256];
int has_dir_sizes; /* Set if directories have sizes = to du -s */
void *port_ui; /* UI stuff specific to each GUI port */ void *port_ui; /* UI stuff specific to each GUI port */
#ifdef HAVE_GNOME #ifdef HAVE_GNOME
@ -262,6 +260,7 @@ char *string_inode (file_entry *fe, int len);
char *string_file_ngid (file_entry *fe, int len); char *string_file_ngid (file_entry *fe, int len);
char *string_file_nuid (file_entry *fe, int len); char *string_file_nuid (file_entry *fe, int len);
void recalculate_panel_summary (WPanel *panel);
void file_mark (WPanel *panel, int index, int val); void file_mark (WPanel *panel, int index, int val);
void do_file_mark (WPanel *panel, int index, int val); void do_file_mark (WPanel *panel, int index, int val);
int file_compute_color (int attr, file_entry *fe); int file_compute_color (int attr, file_entry *fe);

View File

@ -411,7 +411,6 @@ void do_external_panelize (char *command)
/* Clear the counters */ /* Clear the counters */
cpanel->total = cpanel->dirs_marked = cpanel->marked = 0; cpanel->total = cpanel->dirs_marked = cpanel->marked = 0;
cpanel->has_dir_sizes = 0;
cpanel->top_file = 0; cpanel->top_file = 0;
cpanel->selected = 0; cpanel->selected = 0;
@ -442,6 +441,7 @@ void do_external_panelize (char *command)
file_mark (cpanel, next_free, 0); file_mark (cpanel, next_free, 0);
list->list [next_free].f.link_to_dir = link_to_dir; list->list [next_free].f.link_to_dir = link_to_dir;
list->list [next_free].f.stalled_link = stalled_link; list->list [next_free].f.stalled_link = stalled_link;
list->list [next_free].f.dir_size_computed = 0;
list->list [next_free].buf = buf; list->list [next_free].buf = buf;
next_free++; next_free++;
if (!(next_free & 32)) if (!(next_free & 32))

View File

@ -993,7 +993,6 @@ panel_new (char *panel_name)
panel->searching = 0; panel->searching = 0;
panel->dirs_marked = 0; panel->dirs_marked = 0;
panel->is_panelized = 0; panel->is_panelized = 0;
panel->has_dir_sizes = 0;
panel->format = 0; panel->format = 0;
panel->status_format = 0; panel->status_format = 0;
panel->format_modified = 1; panel->format_modified = 1;
@ -1037,7 +1036,6 @@ panel_new (char *panel_name)
void void
panel_reload (WPanel *panel) panel_reload (WPanel *panel)
{ {
int i;
struct stat current_stat; struct stat current_stat;
if (fast_reload if (fast_reload
@ -1069,19 +1067,7 @@ panel_reload (WPanel *panel)
if (panel->selected >= panel->count) if (panel->selected >= panel->count)
do_select (panel, panel->count-1); do_select (panel, panel->count-1);
panel->marked = 0; recalculate_panel_summary (panel);
panel->dirs_marked = 0;
panel->total = 0;
panel->has_dir_sizes = 0;
for (i = 0; i < panel->count; i++)
if (panel->dir.list [i].f.marked){
/* do_file_mark will return immediately if newmark == oldmark.
So we have to first unmark it to get panel's summary information
updated. (Norbert) */
panel->dir.list [i].f.marked = 0;
do_file_mark (panel, i, 1);
}
} }
#ifndef PORT_HAS_PAINT_FRAME #ifndef PORT_HAS_PAINT_FRAME
@ -1893,6 +1879,27 @@ move_end (WPanel *panel)
select_item (panel); select_item (panel);
} }
/* Recalculate the panels summary information, used e.g. when marked
files might have been removed by an external command */
void
recalculate_panel_summary (WPanel *panel)
{
int i;
panel->marked = 0;
panel->dirs_marked = 0;
panel->total = 0;
for (i = 0; i < panel->count; i++)
if (panel->dir.list [i].f.marked){
/* do_file_mark will return immediately if newmark == oldmark.
So we have to first unmark it to get panel's summary information
updated. (Norbert) */
panel->dir.list [i].f.marked = 0;
do_file_mark (panel, i, 1);
}
}
/* This routine marks a file or a directory */ /* This routine marks a file or a directory */
void void
do_file_mark (WPanel *panel, int idx, int mark) do_file_mark (WPanel *panel, int idx, int mark)
@ -1907,7 +1914,7 @@ do_file_mark (WPanel *panel, int idx, int mark)
if (panel->dir.list [idx].f.marked){ if (panel->dir.list [idx].f.marked){
panel->marked++; panel->marked++;
if (S_ISDIR (panel->dir.list [idx].buf.st_mode)) { if (S_ISDIR (panel->dir.list [idx].buf.st_mode)) {
if (panel->has_dir_sizes) if (panel->dir.list [idx].f.dir_size_computed)
panel->total += panel->dir.list [idx].buf.st_size; panel->total += panel->dir.list [idx].buf.st_size;
panel->dirs_marked++; panel->dirs_marked++;
} else } else
@ -1915,7 +1922,7 @@ do_file_mark (WPanel *panel, int idx, int mark)
set_colors (panel); set_colors (panel);
} else { } else {
if (S_ISDIR(panel->dir.list [idx].buf.st_mode)) { if (S_ISDIR(panel->dir.list [idx].buf.st_mode)) {
if (panel->has_dir_sizes) if (panel->dir.list [idx].f.dir_size_computed)
panel->total -= panel->dir.list [idx].buf.st_size; panel->total -= panel->dir.list [idx].buf.st_size;
panel->dirs_marked--; panel->dirs_marked--;
} else } else