Commit Graph

13572 Commits

Author SHA1 Message Date
Andrew Borodin
3f1cd8d021 (make_symlink): join if statements.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2016-07-29 09:29:36 +03:00
Andrew Borodin
4d8e37b9dc Ticket #3641: code cleanup before 4.8.18 release.
(check_hardlinks): use g_try_new0() istead g_new0() because result is
checked.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2016-07-29 09:29:36 +03:00
Andrew Borodin
3265531907 Merge branch '3665_netbsd_curses'
* 3665_netbsd_curses:
  Ticket #3665: fix compatibility with netbsd curses.
2016-07-29 09:22:48 +03:00
rofl0r
38d4c655d3 Ticket #3665: fix compatibility with netbsd curses.
The code that manipulates the ncurses backend into changing
the key combination to generate SIGINT from CTRL-c to CTRL-g does
so by accessing undocumented internal ncurses data structures.
This breaks compilation with netbsd-curses[0], and could also break
when the ncurses author decides to change internal structures in a
future release.

Fix it by using a portable approach that works everywhere using libc
primitives instead.

[0] https://github.com/sabotage-linux/netbsd-curses

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2016-07-29 09:21:02 +03:00
Andrew Borodin
837a21009e Merge branch '3663_panelize_keep_marked'
* 3663_panelize_keep_marked:
  Ticket #3663: panelize: don't reset marks on marked files.
2016-07-16 09:56:51 +03:00
Mooffie
d6aa2ff924 Ticket #3663: panelize: don't reset marks on marked files. 2016-07-16 09:50:37 +03:00
Andrew Borodin
6b6d29e03c Merge branch '3660_view_archive'
* 3660_view_archive:
  Ticket #3660: unable to view archive content using F3.
2016-07-09 19:22:49 +03:00
Andrew Borodin
0c73ca195f Ticket #3660: unable to view archive content using F3.
(mc_popen): fix termination of command array.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2016-07-09 19:21:15 +03:00
Andrew Borodin
aa79525bb8 Merge branch '3661_panel_mouse_click'
* 3661_panel_mouse_click:
  (edit_dialog_command_execute): when switch to another window, do not select it twice.
  Set WOP_TOP_SELECT options for panel widgets: WPanel, WView and WTree.
  Ticket #3661: wrong handling of mouse clicks in long listing mode.
2016-07-09 19:15:01 +03:00
Seray Rosh
0f7d5cfcd1 (edit_dialog_command_execute): when switch to another window, do not select it twice.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2016-07-09 19:13:20 +03:00
Andrew Borodin
cd90f2f98c Set WOP_TOP_SELECT options for panel widgets: WPanel, WView and WTree.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2016-07-09 19:13:20 +03:00
Andrew Borodin
7c74fd90f0 Ticket #3661: wrong handling of mouse clicks in long listing mode.
This occurs if the left panel is in long listing mode and the right
panel is in full listing mode:
When the left panel is active and you click on the right side of the
panel, the click event is directed to the (inactive) right panel instead
of the (active) left panel.

This occurs if the right panel is in long listing mode:
When the left panel is active and you click on the left panel, the click
event is always directed to the (inactive) right panel. It's impossible
to click anything on the left panel, if the right panel is in long
listing mode.

Thanks Seray Rosh <seray.rosh@web.de> for intial patch.

Initial commit: refactoring of widget selection.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2016-07-09 19:13:20 +03:00
Andrew Borodin
5848342bb2 Merge branch '3655_output_lines'
* 3655_output_lines:
  (layout_box): don't update dialog view after close.
  Ticket #3655: the "Output lines" option has no effect.
2016-07-04 09:03:35 +03:00
Andrew Borodin
87df81697a (layout_box): don't update dialog view after close.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2016-07-04 09:02:53 +03:00
Andrew Borodin
cf221f7f5f Ticket #3655: the "Output lines" option has no effect.
This bug was introduced in a8101d8403.

(layout_box): set up the output_lines value after close "Layout" dialog
box.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2016-07-04 09:02:53 +03:00
Andrew Borodin
36d00d03da doc/man/ru/mc.1.in: add midding line break. 2016-06-28 10:33:51 +03:00
Andrew Borodin
1f5e93efc9 Merge branch '3642_subshell_optional'
* 3642_subshell_optional:
  Ticket #3642: make --with-subshell=optional working again.
2016-06-28 09:40:54 +03:00
Andrew Borodin
76a4969b00 Ticket #3642: make --with-subshell=optional working again.
The bug was introduced in 83b02196c8.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2016-06-28 09:40:27 +03:00
Andrew Borodin
57d713085b Merge branch '3639_subshell_output_lost_fix'
* 3639_subshell_output_lost_fix:
  Do not botch SIGWINCH delivery to the subshell.
  Ticket #3639: fix window resizing when panels are hidden.
2016-06-28 09:34:46 +03:00
Yuri Khan
968882335a Do not botch SIGWINCH delivery to the subshell.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2016-06-28 09:34:11 +03:00
Andrew Borodin
52871230a2 Ticket #3639: fix window resizing when panels are hidden.
This reverts commit f278eaec99.
2016-06-28 09:34:11 +03:00
Andrew Borodin
cb06f8c585 (help_interactive_display): fix arguments of dlg_create() call.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2016-06-18 10:21:42 +03:00
Andrew Borodin
61c379b964 Merge branch '3632_widget_flags'
* 3632_widget_flags:
  Reorganize WDialog flags.
  (dlg_set_position): minor refactoring.
  Rename DLG_WANT_TAB to WOP_WANT_TAB and move it to widget_options_t.
  By default, WOP_WANT_HOTKEY option is off.
  If widget wants cursor, define that explicitly.
  Add WST_MODAL state.
  WOP_TOP_SELECT: new widget option
  Join widget_state_t and dlg_state_t.
  Move WOP_WANT_IDLE option to widget_state_t flags
  Move WOP_DISABLED option to widget_state_t flags
  widget_state_t: new type.
  (widget_get_options): new widget API.
  Change prefix of widget options: W_ -> WOP_.
  Ticket #3632: refactoring of widget flags.
2016-06-10 14:20:30 +03:00
Andrew Borodin
b4af91dfc0 Reorganize WDialog flags.
* DLG_FULLSCREEN: move and rename to WPOS_FULLSCREEN.
 * DLG_CENTER: move and rename to WPOS_CENTER.
 * DLG_TRYUP: move and rename to WPOS_TRYUP.
 * WDialog::fullscreen: remove, use WPOS_FULLSCREEN instead.
 * WDialog::compact: new field. Use instead of DLG_COMPACT.
 * WDialog:🎏 remove.
 * dlg_flags_t: remove.
 * dlg_create: add new agruments: pos_flags, compact. Remove
argument: flags.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2016-06-02 20:41:00 +03:00
Andrew Borodin
0933b08964 (dlg_set_position): minor refactoring.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2016-06-02 20:34:38 +03:00
Andrew Borodin
163d9cd94a Rename DLG_WANT_TAB to WOP_WANT_TAB and move it to widget_options_t.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2016-06-02 20:34:38 +03:00
Andrew Borodin
2dab74fddd By default, WOP_WANT_HOTKEY option is off.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2016-06-02 20:34:38 +03:00
Andrew Borodin
d44220c75f If widget wants cursor, define that explicitly.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2016-06-02 20:34:38 +03:00
Andrew Borodin
db0d01b9d6 Add WST_MODAL state.
* WDialog::modal: remove. Use WST_MODAL instead.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2016-06-02 20:34:38 +03:00
Andrew Borodin
fd4e56bf39 WOP_TOP_SELECT: new widget option
...to place widget on top of other widgets in dialog.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2016-06-02 20:34:38 +03:00
Andrew Borodin
4b72fb5f5e Join widget_state_t and dlg_state_t.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2016-06-02 20:34:38 +03:00
Andrew Borodin
0a2877edef Move WOP_WANT_IDLE option to widget_state_t flags
...and rename to WST_IDLE.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2016-06-02 20:34:38 +03:00
Andrew Borodin
b337287336 Move WOP_DISABLED option to widget_state_t flags
...and rename to WST_DISABLED.

  * Widget::state: new field.
  * (widget_set_state): new function.
  * (widget_set_options): symplify.
  * (input_set_options): remove.
  * MSG_ENABLE, MSG_DISABLE: new messages.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2016-06-02 20:34:38 +03:00
Andrew Borodin
a9fcd6c4c6 widget_state_t: new type.
(widget_get_state): new widget API.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2016-06-02 20:34:38 +03:00
Andrew Borodin
f5a1dfcef4 (widget_get_options): new widget API.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2016-06-02 20:34:38 +03:00
Andrew Borodin
4a0cd948df Change prefix of widget options: W_ -> WOP_.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2016-06-02 20:34:38 +03:00
Andrew Borodin
619480c68b Ticket #3632: refactoring of widget flags.
Initial commit: rename functions:
  * widget_default_set_options_callback -> widget_default_set_options
  * input_set_options_callback -> input_set_options

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2016-06-02 20:34:38 +03:00
Andrew Borodin
5251045950 Merge branch '3646_filtered_view'
* 3646_filtered_view:
  Ticket #3646: Filtered View doesn't work.
2016-05-28 08:17:22 +03:00
Andrew Borodin
44859027b4 Ticket #3646: Filtered View doesn't work.
The bug:
1. Go to the source directory for version 4.8.17.
2. Enter the command "ls -l misc/mc*". The output will show at least 7 files.
3. Start mc.
4. Press Meta-! to open the "Filtered View" dialogue box.
5. Enter the same command: "ls -l misc/mc*".
Result:
MC displays the following error:
"ls: cannot access misc/mc*: No such file or directory".

Fix:
(mc_popen): use popen(3) way: pass command to /bin/sh using the -c flag.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2016-05-28 08:16:31 +03:00
Andrew Borodin
35ad1ab0b2 Merge branch '3637_search_memleaks'
* 3637_search_memleaks:
  Do not recreate "String not found" error string every time.
  mcview: make backward search interruptible.
  (mcview_search_update_steps): fix calculation of update step.
  mcedit: make backward search interruptible.
  (editcmd_find): minor refactoring.
  Check error string before show message.
  Allow search be interruptible.
  (mc_search__run_regex): minor optimization.
  Ticket #3637: fix memory leaks in search engine.
2016-05-22 14:18:01 +03:00
Andrew Borodin
7f8ab40a44 Do not recreate "String not found" error string every time.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2016-05-22 14:16:19 +03:00
Andrew Borodin
3af54b0e93 mcview: make backward search interruptible.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2016-05-22 14:16:19 +03:00
Andrew Borodin
c13e4b3c0e (mcview_search_update_steps): fix calculation of update step.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2016-05-22 14:16:19 +03:00
Andrew Borodin
81a55537de mcedit: make backward search interruptible.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2016-05-22 14:16:19 +03:00
Andrew Borodin
90c67f9220 (editcmd_find): minor refactoring.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2016-05-22 14:16:19 +03:00
Andrew Borodin
74e671fb59 Check error string before show message.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2016-05-22 14:16:19 +03:00
Andrew Borodin
8252345666 Allow search be interruptible.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2016-05-22 14:16:19 +03:00
Andrew Borodin
1101ef2cd9 (mc_search__run_regex): minor optimization.
Since mc_search__run_regex() pften is called in various iterative
procedures, don't reallocate regex buffer every time and use already
allocated one before.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2016-05-22 14:16:19 +03:00
Andrew Borodin
1c22d44970 Ticket #3637: fix memory leaks in search engine.
(mc_search_set_error): new search API to set the code and message
of search error.

Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
2016-05-22 14:16:19 +03:00
Yury V. Zaytsev
9cd1e165c5 Merge branch '3643_cons_handler_min_macro' 2016-05-12 07:46:48 +02:00