If you navigate in your shell to a directory containing symlinks and
then start mc, mc will show the canonical path instead. It would be nice
to make it show the directory with the symlinks.
Example: in your shell execute these:
user:~$ mkdir -p /tmp/a/b /tmp/x ; ln -s /tmp/a/b /tmp/x/y
user:~$ cd /tmp/x/y
user:/tmp/x/y$ mc
In mc you'll find yourself in /tmp/a/b, though it'd be nicer to see
/tmp/x/y at the top, and correspondingly navigating to the parent would
take you to /tmp/x.
If you start bash or zsh from /tmp/x/y, the new instance will start
displaying the working directory as such. They do this via the PWD env
variable. On one hand, they set and maintain PWD to point to the current
directory, using the path as specified by the user (possibly containing
symbolic links). On the other hand, they check its value at startup. If
$PWD points to the same physical directory as the actual working
directory then they use this value. If $PWD points somewhere else then
it's simply ignored (so it's a hint only as to which symlinks to use to
get to the working directory, but never alters the actual cwd).
Now mc also does the same at startup (with respect of "Cd follows
links" option). Relative directories specified in the command line are
applied after possibly replacing the canonical cwd with $PWD. This way
for example
user:/tmp/x/y$ mc . ..
opens two panels in /tmp/x/y and /tmp/x instead of /tmp/a/b and /tmp/a
(whereas /tmp/x is actually a different directory than /tmp/a).
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Following cases from command line are possible:
* 'mc' (no arguments):
active panel uses current directory
passive panel uses "other_dir" from ini
* 'mc dir1 dir2' (two arguments):
left panel uses dir1
right panel uses dir2
* 'mc dir1' (single argument):
active panel uses current directory
passive panel uses dir1
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Steps to Reproduce:
1. Run mc in native console (not in X terminal emulator).
2. Press Ctrl+O to switch to subshell.
3. Try select anything with mouse.
Result: mouse does't select anything.
This bug was introduced in 68468a25ac
commit.
Solution: make mouse initialization after initializaton of subshell.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
...and move update_xterm_title_path() and title_path_prepare()
from src/main.c to src/filemanager/layout.c
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
...to allow to show info about mc options regardless of the fact that
configuration directories cannot be created.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Environment variable should not be substituted if escaping of dollar
sign is used: \$VAR.
Initial steps:
(do_cd): changed return type from int to gboolean.
(examine_cd): likewise and some cleanup.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
The bug only occurs with subshell enabled.
When resizing the window while in the viewer, the subshell resizes
itself and hence prints its prompt again. This is captured and processed
by mc.
src/filemanager/layout.c:setup_panels() is executed and recalculates
properties of the panel, but for some reason this time mc_prompt does
contain all the invisible characters, they are not stripped off, hence
size calculation goes wrong.
Thanks Egmont Koblinger for the detailed description of the problem and
the idea of fix.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
added ".." at the top of file list (after external panelization)
added ".." at the top of file list (after 'find' panelization)
disable ctrl-r (refresh) for panelized content
added menu entry Left\Panelize, to restore panelized panel
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
Minor changes in goto_parent_dir()
many code optimization
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
little fixup
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>