* 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>
* 2968_viewer_next_prev_mode:
Fix mode switch after CK_FileNext/CK_FilePrev.
(regex_command_for): new function to use regex_command in already created viewer/editor
(exec_extension): rename variable.
(exec_extension_view): refactoring: remove temporary file in exec_extension().
Ticket #2968: mcviewer: broken Raw/Parse and Format/UnformatRaw/Parse and Format/Unformat
For upload English hint-file to transifex, type:
cd doc/hints/po && make to-transifex
For download translation from Transifex type:
cd doc/hints/po && make from-transifex && \
git add ../l10n/mc.hints.* && \
git commit -s -m 'Update hints files from Transifex'
WARNING! For the functionality you should have installed 'tx' and 'po4a'
utilities. These utilities isn't required for compile and install mc
(you may install these utilities only if you want to interact with Transifex).
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
* 2957_mcedit_broken_autocompletion:
(editcmd_dialog_completion_show): adjust dialog position.
(edit_complete_word_cmd): don't get bytes directly from editor buffer.
Add test_autocomplete_single() test
Add tests for coverage the bug.
(edit_complete_word_cmd): make correct charset conversion
Ticket #2957: broken autocompletion in mcedit
...if system and file charsets are different.
Initial step: refactoring: do actual completion word substitution
outside of editcmd_dialog_completion_show().
Signed-off-by: Andrew Borodin <aborodin@vmail.ru>