Current master (4.8.8-49-g6b64835) segfaults while entering into any extfs archive (zip, rar, etc).
Bad commit is 2640b21bb9.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
mc may not detect the gpm mouse under X11 on many x terminals when running together with tmux or screen.
On some cases it can even hang.
It's a small patch to the gpm maintainer to improve its checking.
Seems there is a need also to a small change on mc.
Now everything is working perfectly.
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
Revert "(size_trunc_len): support automatic maximum unit for specified size."
This reverts commit ef94b84eaf.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
* 2990_cleanup: (32 commits)
Remove LC_ALL from info_size. INFO file generate without LC_ALL e.g. in current locale. Size must be computed with same locale, otherwise INFO file will be chopped of
mceditor: last_bracket: make member of WEdit.
Use "'" instead of "`" for messages and comments quoting.
Search callbacks should return mc_search_cbret_t not int.
Fix filename for msppt in ext.d/doc.sh: use $MC_EXT_FILENAME not %f.
Fix info for ogg files in sound.sh
Minor otimization of syntax highlightimg engine:
(compare_word_to_right): use correct upper boundary of scanned text.
option_whole_chars_search: unsed variable. Remove it and related code.
(edit_update_screen): fix of editor frame drawing.
src/editor/editcmd.c: remove unneeded include layout.h.
Fix documentation: use actual menu item names.
(edit_about): update year.
(vfs_get_encoding): optimization and enhancement:
(button_set_text): update value of WButton::hotpos.
Use tty_draw_box instead of draw_box() to draw frames.
(smbfs_fake_share_stat): don't access to free'd memory.
Remove vfs_path_to_str() function for avoid often memory allocations.
Use G_N_ELEMENTS macro to calculate of array size.
WEdit::labels is unused. Remove.
...
ogginfo should be shown for MC_EXT_FILENAME like other cases.
Using MC_EXT_SELECTED handles filenames with spaces incorrectly.
Signed-off-by: Alessio Ababilov <ilovegnulinux@gmail.com>
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
* get rid of extra memory duplication;
* support of recursive search of correct encoding;
* add tests.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
Remove tests whose results are not used:
* AC_CHECK_HEADERS of unistd.h, fcntl.h, sys/time.h, sys/types.h
* AC_HEADER_MAJOR
* AC_HEADER_TIME
* AC_HEADER_DIRENT
* AC_CHECK_FUNCS of isascii, statfs, sysconf, tcgetattr, tcsetattr, ftruncate
* AC_FUNC_STRCOLL
AC_C_CONST is obsolete, today it is safe to assume all C compilers
support at least C89.
The INTERACTIVE UNIX that needed AC_ISC_POSIX is long dead.
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>
* 2988_ignore_unknown_esc_sequences:
When we see an unknown sequence, it is not enough to drop already received part - there can be more of it coming over e.g. a serial line.
This change prevents misinterpreting an unknown ESC sequence's tail as a garbage input. To reproduce, run "sleep 3" and hold down Down_Arrow key until sleep runs. With debugging log enabled, the following can be seen:
Ticket #2988: When an unknown key is pressed, it is interpreted as garbage.
to drop already received part - there can be more of it
coming over e.g. a serial line.
To prevent interpreting it as a random garbage,
eat and discard all chars that follow.
Small, but non-zero timeout is needed to reconnect
escape sequence split up by a serial line.
Before this change, Ctrl-Alt-Shift-Right_Arrow generates "1;8C"
bogus "input" in MC on my machine; after the change,
nothing is generated.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
tail as a garbage input. To reproduce, run "sleep 3" and
hold down Down_Arrow key until sleep runs.
With debugging log enabled, the following can be seen:
entered get_key_code(no_delay:0)
c=tty_lowlevel_getch()=27
push_char(27) !0
c=xgetch_second()=91
push_char(91) !0
2 c=tty_lowlevel_getch()=66
push_char(66)
seq_buffer[0]:27 <---- the saved Down Arrow sequence "ESC [ B"
seq_buffer[1]:91
seq_buffer[2]:66
seq_buffer[3]:0
pending_keys!=NULL. m=-1
d=*pending_keys++=27
d=ALT(*pending_keys++)=ALT(91)=8283
^^^^^^^^^^^^^^^^^^^^^^^ we misinterpret "ESC [ B" as "ESC ["
return correct_key_code(8283)
entered get_key_code(no_delay:0)
pending_keys!=NULL. m=-1
d=*pending_keys++=66
^^^^^^^^^^^^ we think user pressed "B"
return correct_key_code(66)
With this patch, no bogus "input" is generated.
Longer unknown sequences need an additional fix, coming next.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
keyboard input: simplify code, no logic changes
This change slightly simplifies and rearranges the code
in get_key_code(), reduces indentation levels there,
adds a few comments. The logic remains the same.
This is a preparatory patch for subsequent changes.
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Signed-off-by: Slava Zanko <slavazanko@gmail.com>