(panel_view_mode_t): move from panel.h to layout.h.
(panel_update_cols): move from layout.[ch] to panel.[ch]
Fixed related includes.
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>
Fixed troubles in mcviewer with drawing utf8 chars.
It happens in the middle of an utf8 char (on every 4096 bytes),
leading to a valid char treated as unprintable.
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
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>
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>
Some FTP servers like ftp.symantec.com and download.nvidia.com
do not support parameters in LIST command. They don't fail on
LIST -la ... just ignore them. So mc shows only root directory.
Always.
Steps to reproduce:
cd /#ftp:ftp.symantec.com/public
Expected result:
Content of /public/ directory shown.
Actual result:
Content of root / directory shown instead.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Currently the completion considers the word the cursor is on as a possible
completion, but this is quite annoying if the cursor is inside the word.
Such completion effectively inserts the rest of the word one more time, so
CamelCase becomes CamelCaseCase. If this is the only match, it completes
automatically, which is even worse. The current word shouldn't be used
for completion.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
If we copy the files to the partition mounted with sshfs,
the default checkbox "preserve Attributes" is unchecked.
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>
The edit_insert_column_of_text() function is used only in
src/editor/editcmd.c file. Now it is static.
Removed unneeded forward declarations.
Moved static functions to static area in src/editor/editcmd.c
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Following fuctions are used in in src/editor/edit.c file only:
edit_print_string
edit_move_block_to_right
edit_move_block_to_left
They was moved from src/editor/editcmd.c into src/editor/edit.c
and made static.
insert_spaces_tab() is used in src/editor/edit.c. Not it is static. Also
some optimization was performed.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Following fuctions are used in in src/editor/edit.c file only:
edit_get_byte_ptr
edit_get_buf_ptr
edit_get_prev_utf
Now they are static.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Steps to reproduce:
* configure & compile mc with '--enable-charset' option;
* run mc
* go to dir with any of *.zip, *.rpm, *.deb, *.patch/diff files
* Change path encoding to any other by pressing ALT+e (selected encoding should be dfferent to system encoding)
* try to enter to archive
You'll se error message from extfs module.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
If you are in hex viewer mode and viewer remembers file positions, the
viewer restores the start position, but does not restore the position
of cursor.
So the restored position is basically useless in hex mode, because when
you move cursor, you go back to the beginning of file.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Steps to reproduce:
* run ssh daemon on your host;
* run mc;
* type cd sh://127.0.0.1;
* type your password;
* just one panel was shown, after pressing ctrl+r second panel will shown as well.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
fixed fish-script 'get'.
Steps to reproduce:
create lot of small files
try to copy these files throught FISH VFS
mc hangs
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
editcmd.c:1104:42: warning: use of logical && with constant operand;
switch to bitwise & or remove constant [-Wconstant-logical-operand]
if (*num == MAX_WORD_COMPLETIONS && MAX_WORD_COMPLETIONS)
^ ~~~~~~~~~~~~~~~~~~~~
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>
The problem: extracting deep files from an archive containing long directory/file
names, filenames are cut off at 100 characters (length of the whole path
inside the archive).
In general, the TarVFS is scheduled for total reimplementation. But this
fix is useful for stable releases.
Thanks AVFS (avf.sf.net) for the code of this fix.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Extended shortcuts like 'ctrl-x ctrl-x' or 'ctrl-x alt-x' are available
in editor, but 'ctrl-x x' are not.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
After Find file -> Panelize files are shown with order of being found
and sorting mode of current panel is not applied.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
1. do follow:
diff -BurpN file1.c file.c > my.patch;
diff -BurpN file2.c file.c >> my.patch;
2. we see two file.c.diff entries within patchfs.
after apply commit, we have one combined patch-file.
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
added new extfs plugin - gitfs
used prefix [git] for identification as a #changesetfs
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
When Backspace key is mapped to CdParentSmart action,
it changes directory to the parent one in QuickSearch mode instead of
delete the previous symbol in qsearch buffer.
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>
Broken left arrow (of lynx-like motion) from panelization of directories
having files only (without any subdirs).
Steps to reproduce:
1. mkdir -p a/{b/c,d}
2. touch a/d/e
3. cd a/b
4. mc
5. alt-shift-/ enter l left - selection points to 'b' directory (as it should)
6. down, enter, alt-shift-/ enter l left - selection points to '..' instead of 'd'
Now, if user enters the relative path in "Start at": input line in "Find File"
dialog window, the relative paths are used in panelization.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Several extfs scripts (notably iso9660) don't work on linux
distributions using dash as the default shell. This patch
fixes all current problems in extfs reported by checkbashisms
utility.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Accented characters in bold (yellow) text are displayed incorrectly:
the letter, followed by a dot, then the letter once again, all in white.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
When you press F7 in mcview to repeat the previous search, it starts again from the
file offset that is 3 bytes after the beginning of the current match. This introduces
weird and clearly buggy symptoms. Couple of examples:
If the file contains
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
and you search for a single x character, and you keep on pressing F7,
every third character gets highlighted.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
added actions for mark files in the panel by shift-left/shift-right
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
* Removed vfs_path_element_t->raw_url_str;
* Changed some VFS prefixes (colon now used when need to split VFS prefix and VFS parameters);
* Removed vfs_translate_url() functions and related code;
* added converter of VFS parameters to string representation.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
* completed vfs_path_from_str();
* completed vfs_path_to_str() and vfs_path_to_str_elements_count();
* removed deprecated vfs_split();
* changes in all related code;
* new unit tests.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Created vfs_url_t structure
...and use it to parse and store network VFS options.
vfs_s_super structure now has a special member for network VFS options.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Formerly, each widget loaded its history self in its constructor.
Thus, history file was read as many times as many widgets with history
are in dialog.
Now all widget histories are read from ${XDG_CACHE_HOME}/mc/history
file at one time after dialog initialization.
The ev_history_load_save_t event is apllied to load histories.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Formerly, each widget saved its history self in WIDGET_DESTROY stage.
Thus, history file was read and written as many times as many widgets
with history are in dialog.
Now all widget histories are written to ${XDG_CACHE_HOME}/mc/history
file at one time before dialog destruction.
An ev_history_load_save_t event type is created to use new event engine
to save histories.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
...to some in-memory created config without write it to file.
(history_put): now uses history_save().
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
The problem: when mc quits with auto-save setup, the main confguration
file is written 4 times.
The solution: don't write ini when some part of setup is saved. Write
ini only after save whole confguration.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
What steps will reproduce the problem?
* View some text (log) file (F3), or edit (F4).
* Open search dialog (F7).
* Enter string starting with space and ending with space (I used " ERROR " without quotes), press Enter
* Press F7 to open search dialog again.
What is the expected output?
* Original string in search dialog (" ERROR " without quotes)
What do you see instead?
* "ERROR " (without leading space!)
What solution?
* In function mc_config_set_string_raw() use g_key_file_set_string() instead of g_key_file_set_value()
* change src/learn.c for handle new behavior
* write some tests for new behavior
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
What steps will reproduce the problem?
1) activate left panel
2) start mark files by mouse right button
3) drag cursor into right panel
What is the expected output?
files are not marked in the right panel
What do you see instead?
files are marked in the right panel. it is not correct
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
Use GList for list of vfs_s_super objects in vfs_s_subclass.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Added -F option (AKA --datadir-info) for show extended information about used data dirs
display info about default used paths by 'mc -V'
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Added support of skip all failures on file/dir operations.
Original patch was created by me <me 0xn0 de> and modified by Thomas
Zajic <zlatko gmx at>.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
cd to "~" or "~" with subdirs may fail when issued from the in the command
line if more than one space is separating the "cd" and "~". So, "cd<one space>~" works,
but "cd<multiple spaces>~" fails.
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
some fixes
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
...instead of direct access to panels in VGS GC.
Inlcudes clean up.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
* moved from lib/vfs/mc-vfs to lib/vfs;
* split by directories for VFS-plugins and moved to src/vfs;
* lib/vfs/vfs-impl.h was merged into lib/vfs/vfs.h.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Now default key bindings are hardcoded as strings like values in keymap
file. Such presentation of key bindings allows simplify keymaps merge
when new bindings are added, replaced or removed old ones during MC
initialization.
Previously, to rebind some keys, used must redefine the entire section
where that bindings are in. New merge algorithm doesn't require the
redefinition of entire section in user's keymap file.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
default_main_map and default_main_x_map renamed to
default_main_keymap and default_main_x_keymap respectively to unified
variable names.
Editor: setup keymaps only once for all editors.
Viewer: share single keymap array for all viewers.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Most of keybind names are changed to unify that names.
Details see in doc/keybind-migration.txt file.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Added doc/keybind-migration.txt file to describe new keybinding names
used in mc.keymap.* files in 4.8.x series.
Cosmetics: reordering of keymap section declarations to provide identical
order totally in the source tree.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Fixed user menu behaviour. MC hangs if menu entry contains the 'read' command or something like that.
bug introduced in the Ticket #323 (changeset: 0cfbe19d96).
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
if the external script contain #interactive then do show prompt.
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Now "EditPipeBlock (X)" action tries execute the
~/.local/share/mc/mcedit/macros.d/macro.X.sh script.
To bind action EditPipeBlock (X) to the any hotkey you need add this binding
into ~/.local/share/mc/mc.macros file like following:
[editor]
ctrl-Q=EditWordLeft:-1;EditWordRightHighlight:-1;EditPipeBlock:3;
ctrl-W=EditPipeBlock:1;
This means that "ctrl-W" hotkey initiates the EditPipeBlock (1) action,
editor handler translates this into execution of
~/.local/share/mc/mcedit/macros.d/macro.1.sh shell script.
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
some fixes
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
and one more fix
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
For example: "ctrl-w=action:code;action:code;action:code;"
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
The problem:
viewing binary files contain char 0x9A leads to massive screen corruption and Search
dialog pops up with 1;2c search string (multiple times depending on actual screen contents).
So it looks like the file 'presses' F7 or / and shift-right_arrow for every specified
character combination occurrence. In case of bigger files it's impossible to exit from
such viewer, as search dialog keeps popping up after closing.
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
added action CK_Mark_Word to the mark current word
changed double-click the mouse handler of the editor
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
now the cursor jump more intuitive after actions "word left"/"word right".
It will be stop before BOL, BOF
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
fixed incorrect restore selection after UNDO
test case:
1. mcedit new_empty_file
2. type in 0123456789
3. F3 5*left F3 - digit '4' is not marked at this point
4. backspace, ctrl-u - digit '4' is marked now
5. left, 2*del, 2*ctrl-u - digits '4' and '5' are not marked
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
fixed segfault after getting the previous char in utf8, if previous char's
are: 0xB1, 0xB3, 0xB6, 0xBF, 0xBC.
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
"Show mini info" checkbox was moved from the "Layout" dialog window
to the "Panel options" one. Documentation was updated.
The show_mini_info global variable was transformed to the member
of panels_options_t structure.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Drop backward compatibility for global panels options. These options
are read form [Panels] section, if this section exists. If this section
is abscent, default values are used.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Instead of hardcoded (via MC_USERCONF_DIR) path mc mc now used
dynamic directories specified by environment variables:
* XDG_CONFIG_HOME - dir for config files . By default is ~/.config/mc
* XDG_DATA_HOME - dir for some data, such as user defuned Syntax file, menu etc By default is ~/.local/share/mc
* XDG_CACHE_HOME - dir for temp files, such as cooledit.clip etc. By default is ~/.cache/mc
This is mainstream standard already adopted by many projects.
Old settings will be migrated at first time from ~/.mc to these dirs.
See http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html for more info.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
(paint_panel): removed. Sending of WIDGET_DRAW message is used instead.
(update_dirty_panels): moved from panel.c to midnight.c.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
(restore_into_right_dir_panel): made static.
(panel_update_cols): moved from panel.[ch] to layout.[ch].
(set_display_type): minor cleanup and type accuracy.
(panel_display_t): type accuracy
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
New "Simple panels swap" checkbox in "Panel options" configuration
dialog window. Unchecked by default.
Documentation update.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Initial step: refactoring: create new panel_sort_info_t structure
to store sort options of panel.
Type accuracy.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
I suggest changing default text in filtered view (alt-!) command input line
instead current filename in panel to contents of cmdline.
It's easier to edit command line with commands like alt-tab,
alt-enter, etc., and then view the result in mcview.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
little optimization, renamed:
* variables stack* to undo_stack*
* pop_action to edit_pop_undo_action
* edit_push_action to edit_push_undo_action
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
Forget the old limit of 8 background and 16 foreground colors.
From now on Midnight Commander can use all the 256 colors,
as your favorite terminal emulator supports them - or not,
in which case it's not going to stay your favorite terminal for long.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
(check_is_cd): fix of cd command check.
Type accuracy: check_is_cd() now returns gboolean instead of int.
Initialize start and end variables.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
steps to reproduce:
mcview_remember_file_position=1
test file: file1.ext
123
456
123
qwe
123
123
qwe
123
qwe
456
1) open file1.ext in mcedit search text 'qwe'
2) close file1.ext
3) open file1.ext in mcview
4) close file1.ext
5) reopen file1.ext in mcedit and search again text 'qwe'
search position is reset but should not be reset.
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
In mcedit, when the selected text is copied to the clipboard, the selection disappears.
This behavior contradicts to the traditional behavior of all modern text editors and is highly annoying.
Now selection don't reset after the text is copied into the clipboard.
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
Viewer Goto dialog doesn't allow go to the specified offset. The value
of input line is rounded to the next line start. Such bevaviour
is useless in hex mode of viewer. In hex mode we must heve a
capability to go to the specified address as is without any round.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
New keybinding "PanelSmartJumpUp" for the jump to the parent directory if command line is empty. Not defined by default.
This binding maybe used for bind 'Backspace' as hotkey for 'cd ..' (only if command line is empty).
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
The %j modifier used to show file size produces segmentation fault
on some platforms. PRIuMAX macro cannot be used within i18b'd strings.
Solution: use %llu modifier with typecasting to unsigned long long.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Use PRIuMAX and PRIXMAX instead of ju and jX modifiers respectively
for formatted output of uintmax_t variables.
If PRIXMAX is not defined (i.e. in Solaris9), use PRIxMAX instead.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Don't mix GLib and GModule compiler and linker options.
Use gmodule-no-export if present to avoid use -Wl,--export-dynamic
option with some linkers. If gmodule-no-export is not available,
use generic gmodule.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Panel state is saved in ~/.mc/panels.ini:
1) when "Save setup" command is invoked;
or
2) when MC is quited and "Auto save panels setup" option is set.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Check values of verbose and dialog type outside of
file_progress_show_count() and file_progress_show_total()
to avoid double checks of those options and extra function calls.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
...to provide symmetrical usage of init/deinit functions.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
All file panels related stuff was moved to midnight.[ch].
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
menubar_set_visible(): new function to get rid of menubar_visible global variable
in widgtes library.
menu_set_name(): new function to avoid total recreation of main menu
after change panel layout.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
(dview_status): use str_term_trim() instaed of trim() to trim file name.
(dview_get_title): reimplemented using GString because str_term_trim()
returnes a pointer to internal static buffer.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Refactoring: reimplement find_ignore_dirs as sorted array of strings.
Handling value of ignore_dirs like "/foo::/bar/:".
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
no more put removed text into clipboard. when doing CK_InputKillWord, CK_InputBackwardKillWord
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
* WInput routines: get rid of one-line functions.
* added CK_InputClearLine handler. Now CK_InputClearLine - clear command line,
CK_InputKillLine - clear command line from cursor to the EOL.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
Previous solutions have broken one of the viewer features (http://www.midnight-commander.org/ticket/1778)
What suggest is fixing PgDn in a way, that it switches to one-line mode after EOF and add a check to ensure,
that at least one last line stays visible (4.7.1 behaviour of end/pgdn was irritating indeed).
With this patch, PageDown at the last page scrolls file line by line instead of entire page.
This is feature, not a bug. :)
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Typing 'u' in "User defined mode" input line, the "User defined"
radio-button is checked instead of putting the 'u' letter
into the input line.
Bug was introduced in 80d34ca625.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Miscellaneous changes:
* Create search handlers before search session and destroy afterwards.
* Get rid of goto operator in do_search() functon.
* Fixed handling of DLG_VALIDATE message.
* Type accuracy.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Made "Find recursively" and "Search for content" appear the
first, as they are completely logically independent and influence the
way the strings entered in the corresponding fields are used.
"Using shell patterns" and "Regular expression" come next, as
they set a similar property of the fields. Same goes for the "Case
sensitive" and "All charsets" group.
"Skip hidden" and the rest close the show up.
Signed-off-by: Yury V. Zaytsev <yury@shurup.com>
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
If "Search for content" checkbox is enabled, then content_pattern is
initialized as usual. Otherwise, it's forcibly set to NULL.
Signed-off-by: Yury V. Zaytsev <yury@shurup.com>
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
This checkbox allows to define whether the "Content" field should be
taken into account or not when performing file search. The checkbox
remembers its state across sessions.
Signed-off-by: Yury V. Zaytsev <yury@shurup.com>
In case sensitive sort, the order of files and directories is following:
hidden dirs
dirs
hidden files
files
In case insensitive mode, directories are mixed and files are mixed too:
dirs (hidden and not are mixed)
files (hidden and not are mixed).
This commit defines the sort order independently of case sensitivity:
hidden dirs
dirs
hidden files
files
Files in UTF-8 locale require special handling: leading dot must not be
processed in g_utf8_casefold() funcion.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Added capability to load codepage list from /usr/share/mc/mc.charsets
and /etc/mc/mc.charsets and merge them then.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
(tree_store_rescan): use g_list_foreach() to free content of list.
(process_special_dirs): get rid of extra memory allocation.
(should_skip_directory): type accuracy and variable intializations.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
RPMLint shows the following warnings:
mc.i586: W: conffile-without-noreplace-flag /etc/mc/Syntax
mc.i586: W: conffile-without-noreplace-flag /etc/mc/mc.lib
mc.i586: W: conffile-without-noreplace-flag /etc/mc/mc.charsets
First step: install Syntax into /usr/share/mc instead of /etc/mc.
This also fixes the impossibility of editing of system-wide Syntax file
in mcedit under root (menu Options->Syntax file->System Wide).
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Start mc, and make sure that at least one of the two displayed
directiories contains so many files that they cannot all be displayed
at once.
Click in this panel and hold the mouse button pressed, and then move
your mouse downwards. As you pass beyond the bottom of this list, it
should start scrolling.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Midnight Commander's color/skin engine often reuses the same color definition for multiple elements on the UI.
This unnecessarily limits the possibilities when playing with colors.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Double pressing of C-s runs the quick search using previous search pattern.
Usage example:
1. Press C-s
2. Make quick search with some pattern.
3. Stop quick search with any way.
4. Press C-s. The empty search line will be shown.
5. Press C-s again. The previous pattern will be shown and will be used
in current quick search.
English and Russian man pages are updated.
Thanks Alexey Losich (E.L.K) for the initial patch.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
(this_try_alloc_color_pair): if foreground and background editor colors
are undefined in syntax, the NORMAL_COLOR is used. This is wrong.
EDITOR_NORMAL_COLOR mut be used instead.
(edit_status): cleanup: remove useless color change.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
* commit 'origin/2287_persistent_bookmarks':
Fix in lib/logging.c for proper work on 64-bit platforms.
Change of bookmark drawing.
Fixed memory leak: destroy serialization bookmarks if file position is not saved.
Use GArray for bookmarks instead of raw array.
Minor optimization, type accuracy, includes fix.
Ticket #2287 (mcedit: persistent bookmarks)
Now --disable-vfs doesn't mean the total disabling of VFS.
With --disable-vfs option, the localfs module is built
to use the change of file panel encoding.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Multi-screen engine doesn't handle correctly some cases.
Example:
1. Run mc.
2. Open some file in internal editor.
3. Switch back to the file panels.
4. Open another file in internal editor. As a result, two editors are opened.
5. Close current editor. Now you are in file panels.
6. Run screen list dialog (Meta-`).
6a. The 1st editor is highlighted as current screen. This is wrong.
Current screen is file panels.
6b. Cannot switch to the opened editor in this dialog.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Save bookmarks of internal edit in filepos
Signed-off-by: Filip Sefrna <fsefrna@gmail.com>
Type accuracy.
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
On some FreeBSD servers with tcsh shell the following bug occurs
sometimes: trying to exit from mc it hangs. More detail:
1. run mc, press F10, press Enter - hangs
2. run mc, press F10, choose Command->File->Exit - NOT hangs.
This hang up is a result of subshell_chdir() call after subshell
close (after exit_subshell() call). When the F10 key is handled in
dlg_try_hotkey() function, the do_select_widget() is called. As a
result, the WIDGET_FOCUS message is sent to the active panel and panel
calls subshell_chdir(). But subshell is already closed at this
moment and midnight_dlg is in DLG_CLOSED state.
The solution: don't send DLG_DRAW, DLG_FOCUS and DLG_UNFOCUS messages to
the inactive dialog (that is not in DLG_ACTIVE state). Since dialog is
about destroying (in DLG_CLOSED state) or not visible in screen (in
DLG_SUSPENDED state) it is not needed in any visual changes.
Thanks Tempread for investigation of the problem root.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Two common line jump protocols supported by mc are:
* mcedit +lineno file
* mcedit file:lineno
Unfortunately, in the implementation of the first protocol, if line
number equals to zero, which is often used to position the cursor at the
beginning of the file, it is completely ignored and file "+0" is opened
instead.
This patch fixes aforementioned issue.
Signed-off-by: Yury V. Zaytsev <yury@shurup.com>
The following functions:
directory_history_add
directory_history_next
directory_history_prev
directory_history_list
get_parent_dir_name
_do_panel_cd
do_panel_cd
were moved from main.[ch] to screen.c and panel.h.
Type accuracy.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
These functions were used before implementation of panel key bindings.
Now these wrappers are unneded.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
mcdiff: some warnings fixed.
search.c: In function ‘mcdiffview_do_search_backward’:
search.c:183: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
ydiff.c: In function ‘cvt_fget’:
ydiff.c:1653: warning: comparison of unsigned expression < 0 is always false [-Wtype-limits]
ydiff.c: In function ‘dview_execute_cmd’:
ydiff.c:3085: warning: overflow in implicit constant conversion [-Woverflow]
fixed mcdiff search.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
Added new viewer keybindings instaed of hardcoded keys:
- for move to top and bottom of file;
- for horizontal scroll by 10 columns.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Initial step: added description for A1 and C1 keys.
A1 and C1 keybindings are applied to WTree, WInput and WPanel widgets.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Removed mcserver and mcfs support.
Reasons:
(1) no longer builds
(2) no one is willing to support it
(3) possibly contains unfixed security holes
(4) makes no sense in view of the availability of FISH
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Now 'Virtual File System Setting' dialog shows enabled/disabled input line
for ftp proxy in depend of 'Always use ftp proxy' checkbox state.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Now 'Configuration' dialog shows enabled/disabled input line
for Esc key timeout in depend of 'Single press' checkbox state.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Now 'Layout' dialog shows enabled/disabled buttons of panel size change
in depends of 'Equal split' chekbox state.
Now the "Console output" widgets are visible everytime, but they are
disabled if console_flag is not set.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Added capability to modify options of QuickWidget.
Added capability to use custom callback in QuickDialog.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Fixed a typo (clipbord -> clipboard) in the code and man pages. Luckily,
mc.ini key name is unaffected.
Signed-off-by: Yury V. Zaytsev <yury@shurup.com>
How ro reproduce:
1. Open 'Advanced chown' dialog window for any file.
2. Press "x" key (trying to make file executable).
3. Segfault.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Now the focused button in editor quit dialog is "Cancel quit" as was
before 4.7.3 release. Button order stay as in 4.7.3 release.
Likewise for hex editor.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
fixed incorrect calculate position start/end marked block,
after edit text in the area ahead marked text.
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>