1st step: minor refacoring.
Removed call of intermediate function and changed the retun value type.
Type accuracy.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Some debug-related code will compile just in mainteiner mode.
Also, added new parameter for configure script: --enable-werror
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Restored behavior with stale mountpoint (now handled as stale link).
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
add shared clipboard support
Signed-off-by: Ilia Maslakov <il.smind@google.com>
Fixed memory leaks. Type accuracy. Optimization.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
* fixed ctrl-g handler
* change action names from InputKillSave to InputXStore and InputPaste to InputXPaste
* update mc.keymap.default mc.keymap.emacs
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
added bindings for shift block 'EditShiftBlockLeft', 'EditShiftBlockRight'
EditShiftBlockLeft, EditShiftBlockRight - force move block without option_persistent_selections checking
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
1. Open empty file (<Shift-F4>)
2. Fill with data:
1234
5678
9abc
3. Mark contents (or any multiline text in, for example, firefox) with mouse (<Shift+MouseDown???>)
4. Insert somewhere below third line (<Shift+Insert>)
5. Newlines are eaten (xterm)
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
* fixed binding in mc.keymap.default and mc.keymap.emacs
for CmdCopyCurrentTagged, CmdCopyOtherTagged,
CmdCopyCurrentPathname, CmdCopyOtherPathname
* fixed typo
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
Now buttonbar have own colorpairs:
[buttonbar]
hotkey=red;black
button=yellow;cyan
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
In the case where insufficient rights to the contents of the directory ~/.mc/* to
save preferences I get "settings saved in ~ /.mc/ini", but really nothing is saved.
It would be correct to issue a message like "Not enough permissions to save the ~/.mc/ini"
Also, when autosave should be issued a message about the lack of rights.
This branch will check rights of config-files.
testCase:
*) chmod 0400 ~/.mc
*) run mc
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
To view the next (C-f) of previous (C-f) file in viewer,
the quit from viewer is required now.
This commit restores the previous behavior.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Attempting to open a .tlz lzma archive fails - error 'xxx.tlz doesn't look like a tar archive'.
If the file is renamed to .tar.lzma, it is opened without problems.
Fix issue: add recognize of '.tlz' extention.
Refactoring: avoid calls of strlen() function
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
* When try to replace existing file in background operation
assertion raised (created operations for initialization ctx->ui for background):
** (mc:25716): CRITICAL **: file_progress_real_query_replace: assertion `ctx->ui != NULL' failed
* Process has been already done, but still draw in list (C-x j)
* Process is stopped or worked, remove operation don't hide process from list, but kill it
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Test case:
* create file with name "test" in "tmp" directory (for example)
* create directory with same name ("test") in other "tmp2" directory (for example)
* try to copy or move file "test" into "tmp2" in background mode
* wait for some time
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
mc 4.7.0-pre1 introduced dynamic "Save attributes" checkbox value in Copy/Move dialog.
But code is Linux-specific, and not even isolated by macros.
I suggest to add code specific for BSD and SVR4 systems.
In BSD systems (MacOS X, NetBSD, FreeBSD) there is statfs.f_fstypename which contains name of filesystem.
Valid FS names are: msdos, msdosfs (FreeBSD), ntfs, smbfs, procfs, fusefs (BSD), fusefs_subfstype (Mac)
In SVR4 systems (Solaris and other SVR4 Unixes) there are statvfs.f_basetype and statvfs
syscall instead of statfs and also autotools define STAT_STATVFS.
Valid FS names are: pcfs, proc, ntfs, fuse, smbfs
(Note that NetBSD 3.0+ also use statvfs but with BSD syntax.)
For all other OSes we simply return 1.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Currently, there is no way to change the defaults. The file mask
dialog options are not persistent.
Added new config option 'copymove_persistent_attr'. If this option is equal to '0'
then 'Preserve attributes' in copy/move dialog will always switched off.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
This patch was grabbed from Russian fork (ru-fork). Original commit message:
[COMMAND LINE]: Fix SUSE gabage, letter B in command prompt under root! Yessssssss! :)
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
This is incomplete copy of same glib-function.
For older glib (less than 2.13) functional is enought.
For full version of glib welcome to glib update.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Key emulation in editor was removed. Default key emulation
is stored in misc/mc.keymap.default file. Emacs key emulation
is stored in misc/mc.keymap.emacs.
Editor options dialog was redesigned.
Shortcut parser was fixed.
Fixes after rebase to recent master.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Many shortcuts are not defined in keymap file and therefore
not displayed in menu.
Editor menu is not reimplemented yet.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Renamed name_key_map_t to name_keymap_t.
Renamed global_key_map_t to global_keymap_t.
Use more '#ifdef USE_INTERNAL_EDIT' preprocessor directives
Removed unused variables and structure members.
Aplly const modificator to keybind argument of keybind_cmd_bind().
Aplly const modificator to keyname argument of lookup_action().
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
New parser allows get the string representation of menu shortcuts.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
Problem:
BOOK_MARK_COLOR and BOOK_MARK_FOUND_COLOR are hardcoded
in edit/edit-widget.h and so cannot be changed via skin.
Solution:
Now these colors will configure via skin-file. Like:
Signed-off-by: Ilia Maslakov <il.smind@gmail.com>
The problem: if I copy or move file with invalid UTF-8 symbols
in name to another directory (e.g. simply F5 Enter F6 Enter
to copy/move to the other panel), the filename gets mangled,
invalid UTF-8 characters are replaced by literal question marks.
Now the copy/move operation leaves the filename unchanged,
even if it is invalid in the locale mc's using for display.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Create temporary buffer in stack instead of heap.
Fixed pointer type mismatch in conditional expression
in panel_operate().
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Use gettext context to handle file operation names in
Copy/Move/Delete dialogs.
Thanks to David Martin for the original patch.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Test case:
- run mc
- press CTRL+o (hide panels)
- press 'space' key
- press 'backspace' key
- press CTRL+o (show panels)
- type 'ls' and press 'enter' key
Fix issue: Now 'busy shell' status toggle on if user will press 'Enter' key.
Old behavior: User was press any key into subshell and 'busy shell' status toggle on.
Also, patch will enter new behavior:
* run mc
* press ctrl+o (hide panels)
* type 'cat ' and don't press 'Enter' key
* press ctrl+o (show panels)
* type 'ls' and press enter
You'll see:
cat: ls: File not found.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
If "show Mini status" option is off, the quick search box
is shown incorrect. In this case the quick seach box
must be invisible, because this is common MC behavior.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Problem: need to escape ';' char (as '\;'), but mc_config_set_string function
escape this to '\\;'
Solution: Added mc_config_direct_set_string() function. Also, into src/learn.c
characters '\' and ';' is escaped manually.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
* Panel widget: History list button changed from v to [^]
* Change drawing of history control elements for panel. Now if panel is active, show in reverse color just panel path.
* Add reaction on mouse click on [] chars at top of panel
* Added call of repaint_screen() function for correctly show panels content after click by mouse on 'hidden files' indicator.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
As David Martin proposed, this skin support all newest features
May be used as modern skin, but with some restrictions (must be UTF-8 system codepage)
Also, changed src/screen.c for demonstrate skin features :)
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
The "Choose codepage" dialog (for file panel) is centered
over the according panel.
Renamed create_listbox_window_delta() function to
create_listbox_window_centered(). Now this function takes in
coordinates of dialog center.
Changed argumets order to unified dialogs API.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Strip leading and trailing spaces in color names read from skin ini
file.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
On non-local filesystems, mc won't allow execution of commandline arguments.
This makes sense, except for the `exit' command, which might be allowed even on
non-local filesystems.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
* Added common functions for work with backups of main config files.
* Fixed permissions of ~/.mc/ini;
* Fixed permissions of ~/.mc/filepos
* Fixed permissions of ~/.mc/hotlist
* Fixed permissions of ~/.mc/Tree
* Fixed ownership for ~/.mc/hotlist file
* Changed definitions of config files. Now used constants from src/fileloc.h
Also, added ability for change mc user home dir. Just type:
{{{
make CFLAGS='-DMC_USERCONF_DIR=\".mc2\"'
}}}
And you will have different config files (very usefull for testing or development).
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Test case:
$ sudo bash
files in the directory ~/.mc overwritten and hence change of ownership at the root.
Later, when starting from a user, MC can not save history (the file ~/.mc/history),
because this file is not overwritten.
Fix issue: Now files will overwrite if exists (rather than remove and create new file).
* Added backup of saved files. If someone wrong in 'write config' stage, backup file still present.
* Identation of code.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Viewer: fixed command handling.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
add: binding for "esc", "escape"
Signed-off-by: Ilia Maslakov <il.smind@google.com>
Partially revert of 5fd7d65dca.
If 'Content:' field is empty, keep it and don't populate it
from history.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Attached patch that adds the following 2 enhancements:
1) Using the mouse to click on a panel column heading re-sorts
the panel on that column. If already sorted on that column,
the sort order is reversed.
2) added a button "." next to "v" that toggles the display
of hidden files.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
mc.keymap: remap select charset to M-e, and C-t to mark file
editmenu.c, main.c: change menu items to be consistent
Signed-off-by: Stan. S. Krupoderov <pashelper@gmail.com>
The panelize of find file results doesn't work
if 'Start at:' input field is empty in 'Find file' dialog.
The empty 'Start at:' input is forced populated by "." value.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Skip widgets that matches coords but does not have an action (usually
groupboxes), continuing search of widget with defined action.
Thanks to sfionov.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
fixed completion in command line
add: EditToggleTabTWS,EditFindDefinition, EditLoadPrevFile, EditLoadNextFile actions into bindings list
add string bindings for f21..f24
Signed-off-by: Ilia Maslakov <il.smind@google.com>
Fixed: when main menu is invisible, pressing mouse button
on the first line makes the menu display, even on panel
widgets as "<" ".v>".
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
add more keys into mc.keymap
fix: CK_SingleDirsizeCmd event
add default keys (alt-'.', alt-'+') mc.keymap
Signed-off-by: Ilia Maslakov <il.smind@google.com>
Added alt-shift-h hotkey
Add some documentation about keymap file.
Replace some symbols into names '.' to 'dot', '?' to question, etc.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Original message:
If invalid skin name is set via command line (or config file, or environment variable),
then mc starts silently like -b -a mode. Two proposals, if required skin cannot be found:
*. Show error message "Cannot find skin"
*. Load the default.ini skin instead of set -a -c mode.
Fix issue:
Mc now more verbose if skin not found:
{{{
_("Unable to load '%s' skin.\nDefault skin has been loaded")
}}}
or if skin not parse:
{{{
_("Unable to parse '%s' skin.\nDefault skin has been loaded")
}}}
Translators: please, update your translates.
Also, mc will try to load 'default' skin before switch to 'b&w' scheme.
This commit adds ability to usage GError - glib error handling.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
hotlist.c: add path completion in hotlist add entry dialog
cmd.c: expand environment variables and ~ and ~user exprs in hotlist
widget.c: focus on listbox item N by '0'..'9' keys
add capability to focus on N-th item by 0..9 key to
WListbox widget
Signed-off-by: Stan. S. Krupoderov <pashelper@gmail.com>
In changeset 78f01a3a9a there was added detection of
filesystem and defaulting to turning off "preserve attributes" on certain FS
(ntfs, vfat and some others).
Reason of bug: was removed call of mc_utime() function.
Fix issue:
Restored call of mc_utime() function.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Modified API of search engine: return the number of search types.
This avoids the calculation of the search type count when need.
Sync editor search, editor replace and viewer searc dialogs with
new search API.
Fixed memory leak in editcmd_dialog_search_show().
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
In 'Long file list' the panel width is equal to the screen
width. In this case, choose charset menu is placed in the
center of the screen.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Ignore GPM_DRAG mouse event above or below dropped down menu.
Also fixed handling of click events.
Minor optimization.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
* Compile with option --with-screen=ncurses
* Added default init of colors (if color description is null)
* Renamed some color pairs. All static color pairs now cached.
* Fix cursor show in panel over selected files in b&w color scheme.
* Fix editor highlight
* Handle old-style colors definitions.
* Fix showing box lines in onebyte codepages.
* Fix segfault with:
* mc -C 'menu=blue,white:'
* Fix reading of color backgrounds from old-style color definition strings.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
* Fixed typos.
* Added ACS_PLUS char and related stuff.
* Changed order of colors.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
* Fixed pseudo-graphics drawing for S-Lang library and 8-bit locale.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
* Increase number of reading butes by one for better analyzation of compression type.
* Add recognize lzma archive by extention.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Since ~beginning of August mc does not enter .tar.xz archives,
it just prints the error message:
"Hmm,... aaa.tar.xz doesn't look like a tar archive."
The version of Jul 28 works with .tar.xz archives.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
fix: segfault mcviev in case when the source_codepage is not equal to the display_codepage.
refactoring: some code optimization.
Signed-off-by: Ilia Maslakov <il.smind@google.com>
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
First step: refactoring of WButton widget API.
(button_len): renamed to button_get_len and made global.
(button_get_text): const argument.
Removed trailing spaces.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Fixed event boundaries: menu frame is in event aria now.
Middle click is used to execute selected menu item independently
of mouse cursor position.
Minor optimization.
Indentation.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
If listing panels is operated with the mouse wheel, when window is
at top or bottom of the list, then selection "jumps" to first/last item.
Now it smoother: keep window and decrease/increase selection in
single steps.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Renamed function. Move rd_widgets from file scope to function one.
Fixed i18n stuff.
Updated RU translation.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Signed-off-by: Ilia Maslakov <il.smind@google.com>
Some fixies after patch of Ilia Maslakov.
* Fixed pathes to rules-highlight files.
* Added on-fly refresh of rules after editing.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Added support of filenames highlighting in panels.
Now rules of highlighting described into external file filehighlight.ini
Number of highlight rules is unlimited (in opposite to X-Stranger patch).
Highlight will made by:
* file type (directory, regular, symlink, special device etc.)
* extensions of filenames (ends of filenames)
* regular expressions
Big thanks to X-Stranger <x@linux.by> for idea
and to Alexey Kaminsky <alexeykaminsky@gmail.com> for testing.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Comment by dmartina:
Please, take care not to move those comments labelled "TRANSLATORS" in order to let them show up in *.po files.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>