* (file_op_context_new): change default value of file_op_context_t::do_reget.
* (overwrite_query_dialog): show the "Reget" button in query dialog for
move operation.
* (copy_file_file): keep non-default value of file_op_context_t::do_reget
that was set before.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
(edit_callback): use bracketed_pasting_in_progress variable to detect
if text is being pasted. If yes, paste text as is without macro
expanaison.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
* (tar_read_header): canonicalize path name after decoding of all
headers occupied with long file/directory name.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
* (extfs_open_and_read_archive): fix NULL dereference if
extfs_open_archive() doesn't create an error.
* (extfs_open_archive): create an error message when mc_open() returns -1.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
We currently call Bash with argv[0] being just the fixed string
"bash", but this confuses Bash when it initializes the shell variable
BASH, which are expected to be the absolute file path to the current
Bash image. This patch fixes argv[0] to be the actual path that mc
uses to start Bash.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
../../../src/filemanager/filegui.c:1413:35: warning: implicit conversion from 'int' to 'mode_t' (aka 'unsigned short') changes value from 262143 to 65535 [-Wconstant-conversion]
ctx->umask_kill = 0777777;
~ ^~~~~~~
../../../src/filemanager/fileopctx.c:81:23: warning: implicit conversion from 'int' to 'mode_t' (aka 'unsigned short') changes value from 262143 to 65535 [-Wconstant-conversion]
ctx->umask_kill = 0777777;
~ ^~~~~~~
Signed-off-by: Yury V. Zaytsev <yury@shurup.com>
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
../../../../src/vfs/sftpfs/connection.c:787:22: warning: passing 'unsigned char *const' to parameter of type 'const char *' converts between pointers to integer types where one is of the unique plain 'char' type and the other is not [-Wpointer-sign]
if (strncmp (prompts[i].text, "Password: ", prompts[i].length) == 0)
^~~~~~~~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/string.h:84:26: note: passing argument to parameter '__s1' here
int strncmp(const char *__s1, const char *__s2, size_t __n);
^
Signed-off-by: Yury V. Zaytsev <yury@shurup.com>
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
../../../src/filemanager/file.c:2402:61: warning: variable 'attrs' may be uninitialized when used here [-Wconditional-uninitialized]
while (attrs_ok && mc_fsetflags (dst_vpath, attrs) != 0 && !ctx->skip_all)
^~~~~
../../../src/filemanager/file.c:2266:24: note: initialize the variable 'attrs' to silence this warning
unsigned long attrs;
^
= 0
../../../src/filemanager/file.c:3227:38: warning: variable 'attrs' may be uninitialized when used here [-Wconditional-uninitialized]
mc_fsetflags (dst_vpath, attrs);
^~~~~
../../../src/filemanager/file.c:2942:24: note: initialize the variable 'attrs' to silence this warning
unsigned long attrs;
^
= 0
../../../lib/strutil/tokenize.c:163:44: warning: variable 'delimopen' may be uninitialized when used here [-Wconditional-uninitialized]
if (nestdelim != 0 && string[i] == delimopen)
^~~~~~~~~
../../../lib/strutil/tokenize.c:72:19: note: initialize the variable 'delimopen' to silence this warning
char delimopen;
^
= '\0'
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Path to libssh2 headers was missing from CPPFLAGS resulting into FTBFS.
Signed-off-by: Yury V. Zaytsev <yury@shurup.com>
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
* (add_to_list_take): new function: listbox_add_item_take() wrapper.
* (insert_file): use add_to_list_take().
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Properly parse %h hostname token, which is widely used in HostName directive within
~/.ssh/config:
Host testing*
HostName %h.eu.example.com
Host staging*
HostName %h.us.example.net
# this host will be expanded to `testing-1.eu.example.com`
% mc sftp://username@testing-1
ClosesMidnightCommander/mc#197.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
* (vfs_dirent_assign): set d_len up.
* (mc_readdir): sync with new vfs_dirent: use d_len member.
* (filename_completion_function): likewise.
* (handle_dirent): likewise.
* (find_ignore_dir_search): add 2nd argument to use length of
directory name if it's known.
* (do_search): sync with modified vfs_dirent and find_ignore_dir_search().
* (NLENGTH): remove.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
(panel_load_setup): if user's format of file list and status line
are undefined in the ini file, set them to NULL instead of
DEFAULT_USER_FORMAT.
Move definition of DEFAULT_USER_FORMAT macro from panel.h to panel.c.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
(edit_user_menu): fix misinterpretation of return value of
edit_block_delete_cmd(). The bug was introduced in
e2e34d82ab.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
When xorriso is installed, iso9660 listing was done with `xorriso .. -lsl ..`
per dir recursively. It was unbearably slow on iso images with lots of subdirs.
For example, it took my machine 2 minutes to open debian-12.5.0-amd64-DVD-1.iso
which contains 2627 dirs. This commit makes use of `xorriso .. -find / -exec
lsdl ..` instead to list the whole directory tree in a single pass.
Also, parsing of xorriso output has been reworked and as a result such
previously missing items became visible in the listing:
- symlinks
- the boot catalog file
ClosesMidnightCommander/mc#196.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
* (mc_tmpdir): use g_mkdtemp() to create temporary directory.
Make it name unique to avoid conflicts with other software such as
Distrobox container.
* (main): temporary directory has unique name from now. Remove it at exit.
If EOF has been read, don't attempt to seek past it.
Sync with GNU tar 21318f385627a30da5d92811dd80f70abbe80ee7.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
src/filemanager/ioblksize.h: Add updated test results and increase value
from 128KiB to 256KiB.
This was previously 128KiB and increasing to 256KiB was seen to increase
throughput by 10-20% when reading cached files on modern systems.
Sync with GNU coreutils fcfba90d0d27a1bacf2020bac4dbec74ed181028.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
* (mcedit_arg_t): rename to edit_arg_t and move to src/editor/edit.h.
* (mcedit_arg_free): rename to edit_arg_free() and move to src/editor/edit.c.
* (mcedit_arg_vpath_new): rename to edit_arg_vpath_new(), move to src/editor/edit.c
and make public.
* (mcedit_arg_new): rename to edit_arg_new(), move to src/editor/edit.c
and make public.
* src/editor/editwidget.c: sync with new editor APIs.
* src/main.c: likewise.
* src/args.c: likewise.
* (mc_args_parse): show error in case of run MC as "mc -e" if MC is built
without builtin editor.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
mcedit: fix losing column position when navigating up/down.
Regression from 49bc0ddebf.
ClosesMidnightCommander/mc#194.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
...from \a to \e\\. Various standards (at least ECMA-48 and DEC STD 070)
agree that an OSC is to be terminated by an ST, i.e. \e\\. Using BEL \a
is a nonstandard solution introduced and popularized by xterm.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Some of the "service" commands generated by the mc "leak" into the fish
subshell history available to the user. An example to reproduce:
* set user shell to fish and start mc (SHELL=/usr/bin/fish mc)
* navigate to any directory
* press Ctrl+o
* press \u2191 button (UP, go back in history)
* observe " cd (printf '%b' ... " command
This commit avoids the " cd (printf '%b' ... " commands in the fish
history.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
* (edit_search): do not call edit_search_fix_search_start_if_selection()
since it called in edit_search_init().
* (edit_replace_cmd): likewise; join two ifs.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
The bug was introduced in 21feb38a8d.
* (edit_search_init): call edit_get_search_line_type().
* (edit_search): do mot call edit_get_search_line_type() since it is
called in edit_search_init().
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
If mark column (Shitf+F3) and select the column from left to right, from
up to down, it can be properly deleted later with F8.
But if select it from right to left, from up to down, erasing with F8
keeps the first line of the selected block.
Solution: don't call eval_marks() several times while deleting vertical
block.
* (edit_block_delete_cmd): calculate mark positions here and pass them...
* (edit_block_delete): ...through here...
* (edit_delete_column_of_text): ...to here.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>