mc/mc-multi-press-f-keys.patch
Adam Majer 3be791fd2c - Update to 4.8.32:
- Core
    - Tell the current directory to the terminal using OSC 7 sequence (so it can open new tabs there) (#3088)
    - Preserve ext2fs attributes on copy/move operations (#4532)
    - Change name of temporary directory: make it unique for each run (#4535)
    - Hide password in file operation progress dialog (#4541)
    - Support reget in file move operation (#4563)
    - Implement nanosecond precision timestamps on non-Linux (macOS, BSD, AIX, Solaris) (#4563)
    - Remove remaining mmap code to simplify maintenance (#3960) 
  - VFS
    - extfs: support unrar-7 (#4518) 
  - Editor
    - Improve syntax highlighting:
    -     C and C++ (MidnightCommander?/mc#195, #4556) 
  - Viewer
  - Diff viewer
    - Add man page mcdiff.1 (#4224) 
  - Misc
    - Code cleanup (#4524)
    - New skins
      - xoria256-thin, xoria256root-thin (#4530)
      - modarcon16-defbg-thin, modarcon16-thin, modarcon16root-defbg-thin, modarcon16root-thin (#4530)
      - modarin256-defbg-thin, modarin256-thin, modarin256root-defbg-thin, modarin256root-thin (#4530)
      - julia256root (#4536) 
    - mc.ext.ini: clarify escaping of spaces and parenthesis (#4502) 
  - Fixes
    - External editor does not work with arguments in $EDITOR (#4533)
    - fish shell: strings " cd (printf '%b' ... " in history (#4521)
    - Redundant back slashes for autocomplete (#4292)
    - subshell: call execl with argv[0] that is not an actual path to Bash (#4549)
    - mcedit: php.syntax: comment highlight from start of light only (#4519)
    - mcedit: wrong replacement using regular expressions with begin or end of line (#4525, #4526)
    - mcedit: losing column position when navigating up/down (MidnightCommander?/mc#194)
    - mcedit: macro deletes text (#4540)
    - mcedit: macros are applied to the pasted text (#4562)
    - extfs: iso9660: xorriso is slow to open an ISO image (#3570, #4567)
    - extfs: u7z: wrong add of nested directories to archive (#4559)
    - extfs: segfault on enter to deleted archive (#4560)
    - tar: segfault on copy files from archive (#4561)
    - man: typo (#4550) 
- Remove mc-extfs-iso9660-xorriso.patch patch which doesn't apply anymore.
- Other patches reapplied.

OBS-URL: https://build.opensuse.org/package/show/Base:System/mc?expand=0&rev=160
2024-09-17 15:26:47 +00:00

60 lines
1.8 KiB
Diff

http://www.midnight-commander.org/ticket/287
---
lib/tty/key.c | 17 +++++++++++++++--
lib/tty/tty-slang.h | 1 +
2 files changed, 16 insertions(+), 2 deletions(-)
--- a/lib/tty/key.c
+++ b/lib/tty/key.c
@@ -1060,10 +1060,13 @@ correct_key_code (int code)
mod = KEY_M_SHIFT;
}
- /* F0 is the same as F10 for out purposes */
+ /* F0 is the same as F10 for our purposes */
if (c == KEY_F (0))
c = KEY_F (10);
+ if (c == KEY_F_IMMUTABLE (0))
+ c = KEY_F_IMMUTABLE (10);
+
/*
* We are not interested if Ctrl was pressed when entering control
* characters, so assume that it was. When checking for such keys,
@@ -1136,6 +1139,16 @@ correct_key_code (int code)
if (c >= KEY_F (1) && c <= KEY_F (20))
mod &= ~KEY_M_SHIFT;
+ /*
+ * Numerals may require modifilers with some keymaps or on obscure
+ * keyboards (e. g. F4 = Esc Shift+4). We have to ignore all
+ * modifiers while interpreting Esc + Numeral.
+ */
+ if (c >= KEY_F_IMMUTABLE (1) && c <= KEY_F_IMMUTABLE (10)) {
+ c += KEY_F (0) - KEY_F_IMMUTABLE (0);
+ mod &= ~KEY_M_MASK;
+ }
+
if (!mc_global.tty.alternate_plus_minus)
switch (c)
{
@@ -1889,7 +1902,7 @@ get_key_code (int no_delay)
{
/* Convert escape-digits to F-keys */
if (g_ascii_isdigit (c))
- c = KEY_F (c - '0');
+ c = KEY_F_IMMUTABLE (c - '0');
else if (c == ' ')
c = ESC_CHAR;
else
--- a/lib/tty/tty-slang.h
+++ b/lib/tty/tty-slang.h
@@ -7,6 +7,7 @@
/*** typedefs(not structures) and defined constants **********************************************/
#define KEY_F(x) (1000 + x)
+#define KEY_F_IMMUTABLE(x) (970+x)
#define ACS_VLINE SLSMG_VLINE_CHAR
#define ACS_HLINE SLSMG_HLINE_CHAR