Steps to reproduce:
* cd ftp://ftp.gnome.org/
* Run "cd" in the panel where the remote site is open
* cd ftp://ftp.kernel.org/
Actual result: The directory content from ftp.gnome.org FTP-server.
Expected results: The directory content from kernel.org FTP-server.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Currently, dialog itself doesn't handle mouse events. It just
resends mouse event to each its widget. If we can several overlapped
widgets (especially, menu bar), there is some problem to decide which
widget must get event at first.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
1) login to any ftp or fish resource
2) select ftp/fish entry and change current path
3) go back to old path
4) press Ctrl+X A (open "Active VFS directories" dialog)
Expected result: should be correct path to current VFS path
Actual result: path is incorrect.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
How to reproduce:
* mkdir -p a/b/c
* touch a/b/c/d
* ln -s d a/b/c/e
* tar -cf bad.tar a
* rm -rf a
* cd bad.tar/utar://a/b/c
Expected result: 'e' should be valid symlink to 'd'
Actual result: 'e' looks like broken link
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
When mc is compiled with SEARCH_TYPE_PCRE (and without SEARCH_TYPE_GLIB,
e.g. on systems with old glib < 2.14) case (in)sensitive search works in opposite.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
On Mac OS X, in the iTerm2, when the LANG variable is set to en_US.utf-8
mcedit specifically does not correctly accept input (every character press
is interpreted as a '.'). However when LANG is set to en_US.UTF-8 mcedit
works correctly (see also http://code.google.com/p/iterm2/issues/detail?id=204).
On Linux, nl_langinfo(CODESET) returns upper case UTF-8 whether the LANG is set
to utf-8 or UTF-8.
On Mac OS X, it returns the same case as the LANG input.
So let tranform result of nl_langinfo(CODESET) to upper case unconditionally.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
If [Preallocate space] option is enabled, MC can't copy zero-length files:
"Cannot preallocate space for target file ... Invalid argument (22)"
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
fixed trouble with internal editor macro engine introduced by commit #68a8745f6dd7ded9437317a694225d599745e983
now record input char and commands.
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
Unlike S-Lang, NCurses always wraps long lines and unable trancate that
to pring only visible part of text. Therefore we have to implement our
own addch() wrappers.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
New method of widget ID assignment:
now widget ID is a value of unsigned long type. Dlg_head structure now has
new filed widget_id that contains a ID of the next added widget. When new
widget is added into dialog, widget_id is set as ID of it and then
incremented.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
* path elements now are separated and shown one-by-one
(eg. ftp://some.in.net instead of ~/some/path/ftp://some.in.net)
* encoding info is shown separated at top of header line
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
added bindings 'ScrollLeft', 'ScrollRight' for scroll long filenames in panel
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
some code & typo fixes.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Hexadecimal values like "2d f0" can be used as well as "0x2d 0xf0"
in all search dialogs where hexadecimal search is supported.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Until 4.7 '/' was forward and '?' backward search.
In current releases both keys are bound to ViewSearch
so one must manually choose Backwards option in the dialog.
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
Initial state: forced suspend the previous screen when new screen has
been created. Forced resume the current screen when the previous screen
has been closed. Don't redraw suspended screens, just set sinch_pending
flag. Screen will be redrawn immediately after resume.
This commit allow ret rid of setup_panels() call if screen is resized
and filemanager is not active screen at that time.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
The ancient way of reporting mouse coordinates only supports coordinates
up to 231, so if your terminal is wider (or taller, but that's unlikely),
you cannot use your mouse in the rightmost columns.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
After #2361, smb vfs module doesn't work at all.
The error message "Cannot chdir to ..." raises after hostname enter.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Since content of keymap file is ASCII-only and case insensitive,
don't use some utf8-manipulation: g_ascii_strcasecmp() is used
instead of str_casecmp().
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>
When platform does not define HAVE_POSIX_FALLOCATE we get this error:
CC vfs.lo
../../../../mc/lib/vfs/vfs.c: In function 'vfs_preallocate':
../../../../mc/lib/vfs/vfs.c:613:12: error: 'dest_desc' undeclared (first use in this function)
../../../../mc/lib/vfs/vfs.c:613:12: note: each undeclared identifier is reported only once for each function it appears in
../../../../mc/lib/vfs/vfs.c:610:22: warning: unused parameter 'dest_vfs_fd' [-Wunused-parameter]
Signed-off-by: Sergei Trofimovich <slyfox@gentoo.org>
For FTP servers, that do not send ".." in directory listing, mc adds one space to the name of every file and directory. Attached patch should fix this problem.
Steps to reproduce:
cd /#ftp:ftp.symantec.com
Expected result:
Correct list of files/directories
Actual result:
File/directory names with leading spaces
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Sometimes when text contain multibyte UTF-8 chars, editor shows two dots instead of some letter.
When moving text cursor after that letter it will be displayed properly.
When moving cursor back (before letter) it will be displayed again as two dots.
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
added UTF8_CHAR_LEN
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
(vfs_s_close): vfs-specific data of file handler
vfs_file_handler_t::data is freed in vfs_s_subclass::fh_close method and
then can be used in vfs_s_subclass::file_store_one. Bug is related to
ftp and fish VFSes.
Added new vfs_s_subclass::fh_free_data method to free vfs-specific data
of file handler vfs_file_handler_t::data. Use it in ftp and vfs VFSes.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
(vfs_class_data_find_by_handle, vfs_class_find_by_handle): move same
code to the separate function vfs_get_openfile().
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
If first element is relative, the result path should be also relative
not absolute.
If first element is empty, the result path is relative.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
input_complete.c:874:26: warning: use of logical && with constant
operand; switch to bitwise & or remove constant
[-Wconstant-logical-operand]
if (q && q[1] == '(' && INPUT_COMPLETE_COMMANDS)
^ ~~~~~~~~~~~~~~~~~~~~~~~
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Required for some terminals (screen/tmux) to force needed mouse type
(BUTTON_EVENT by default).
Normal tracking mode sends an escape sequence on both button press and release.
Mouse highlight tracking notifies a program of a button press, receives a range of
lines from the program, highlights the region covered by the mouse within that
range until button release, and then sends the program the release coordinates.
It is enabled by specifying parameter 1001 to DECSET.
Button-event tracking is essentially the same as normal tracking, but xterm also
reports button-motion events. Motion events are reported only if the mouse pointer
has moved to a different character cell. It is enabled by specifying parameter 1002 to DECSET.
On button press or release, xterm sends the same codes used by normal tracking mode.
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
changed mc.1.in, added description of command line options -g, --oldmouse.
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
Unification of tty_shutdown() function as for S-Lang as for NCurses.
Added do_exit_ca_mode() call to the NCurses-based tty_shutdown().
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
The xterm_flag variable was initialized in setup_mc() but used
first time in init_key() and in tty_init() (in do_enter_ca_mode())
before setup_mc() call.
Now xterm initialized in early step of mc start up process and
xterm support and mouse are initialized in tty_init().
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
(mc_search__hex_translate_to_regex): don't use length of original string
after leading whitespace trim.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
files starting with space can't be acessed by mc through ftp - it
shows the file as not having the leading space and attempts to
access it produce 'permission denied' errors.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
brace '}' (which probably isn't 100% correct), this should be checked in tests
for replace_handle_esc_seq function, not process_escape_sequence - it is the
replace_handle_esq_seq who decides whether it is an escape sequence or not.
Also, \x{4344} is usually a code for wide character (UTF-8), and not for "CD".
So we can either ignore the higher bits, or generate wide character codes...
The second would be convenient, but would also introduce a hard-coded UTF-8 charset.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Enables use of escape sequences inside regex replace strings,
Enables UTF-8 caseless search in PCRE.
Supported escape sequences: \DEC, \xHEX, \0OCT, \n, \t, \v,
\b, \r, \f, \a. Any of them could be enclosed into \{}.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
... to avoid artefacts after printing of non-printable symbols.
(tty_touch_lines): new function to mark modified lines of screen.
(do_refresh): mark lines as modified before redraw of non-fullscreen dialog
and clear entire screen before redraw of fullscreen dialog.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Now history is not saved if it was not modified and content of input
line is equal to history top entry. Thanks Francesco Cosoleto
<cosoleto at gmail dot com> for the original patch.
Also fixed a regression introduced in cff5925598:
after CK_HistoryNext and CK_HistoryPrev actions in input line,
the input line content is not put to the top of history.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
(hist_next): get rid of direct access to the next histroy item.
(history_show): remove redundant check.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>