]> git.neil.brown.name Git - edlib.git/commitdiff
Introduce "Cancel" commands - K:ESC in emacs
authorNeilBrown <neil@brown.name>
Mon, 21 Aug 2023 11:41:18 +0000 (21:41 +1000)
committerNeilBrown <neil@brown.name>
Mon, 21 Aug 2023 12:28:34 +0000 (22:28 +1000)
"Cancel" is like "Abort", but softer.
Currently it cancels any active selection.

Signed-off-by: NeilBrown <neil@brown.name>
DOC/TODO.md
DOC/render-control
emacs-search.c
lib-menu.c
mode-emacs.c
tests.d/00-basic

index 7b050d871f5c6a4ddc7676574233a60dc352a118..b172e273296f1f27b751e193e555d8a31d4ed861 100644 (file)
@@ -52,6 +52,7 @@ the file.
 - [ ] history doesn't restore initial default (or empty) string when
       returning after excursion into history or favourites.
 - [ ] how can we save history-favourites back to a config file?
+- [X] K:ESC should cancel any current selection.
 
 ### Small
 
index 90ffac5ed0fb49f5d8fb64d45720609f0fe4535d..23cdf20140aaaefd508cf660f077c2ab6e25908d 100644 (file)
@@ -200,7 +200,7 @@ Several pane attributes can affect the pane as a whole:
  - "scale" - width/height values to aim for - in "points" which are 1/10 for an M
           e.g. if 800x240, then text is scaled so that at least 80 M's fit across,
           and 24 M's fit down.
- - "render-wrap" - if define by not "yes", don't wrap long lines, else shift left to
+ - "render-wrap" - if define but not "yes", don't wrap long lines, else shift left to
           fit cursor on pane.
  - "prefix" - text to place at start of each line.  This can be used as a prompt in a
           dialogue box.
index ab06c59739206113797a6efc519dcbd75b809b6f..f702b389d6fcd79acb7d1bb55ac94b426296e4ac 100644 (file)
@@ -669,7 +669,7 @@ static void emacs_search_init_map(void)
        key_add(es_map, "K:A-r", &search_replace);
        key_add(es_map, "K:S:Tab", &search_replace);
        key_add(es_map, "K:A-%", &search_replace);
-       key_add(es_map, "K:ESC", &search_escape);
+       key_add(es_map, "Cancel", &search_escape);
 
        key_add(es_map, "search:replace", &do_replace);
        key_add(es_map, "Notify:Close", &search_notify_close);
@@ -683,7 +683,7 @@ static void emacs_search_init_map(void)
        key_add(er_map, "K:C-S", &replace_forward);
        key_add(er_map, "K:C-R", &replace_forward);
        key_add(er_map, "K:C-L", &replace_forward);
-       key_add(er_map, "K:ESC", &replace_escape);
+       key_add(er_map, "Cancel", &replace_escape);
        key_add(er_map, "K:Up", &replace_prev);
        key_add(er_map, "K:Down", &replace_next);
        key_add(er_map, "doc:reundo", &replace_undo);
index 2c9625f13f0f510c3d1e7fc441ea6d89750ff367..f21ec3703c5c04f6e09d9b66d4bdb53bad5f77ef 100644 (file)
@@ -125,7 +125,7 @@ static void menu_init_map(void)
        key_add(menu_map, "render:reposition", &menu_reposition);
 
        key_add(menu_map, "menu-add", &menu_add);
-       key_add(menu_map, "K:ESC", &menu_abort);
+       key_add(menu_map, "Cancel", &menu_abort);
        key_add(menu_map, "K:Enter", &menu_done);
        key_add(menu_map, "menu-select", &menu_done);
 }
index 793c3fb3b401a504ce3264c3b01272430ebae293..389c18bf0bb81afa44ea7e231016b5837c637fc4 100644 (file)
@@ -543,6 +543,7 @@ static struct simple_command {
        {CMD(emacs_simple), "lib-server:done", "K:CX-#"},
        {CMD(emacs_simple), "mode-swap-mark", "K:CX:C-X"},
        {CMD(emacs_simple), "Abort", "K:C-G"},
+       {CMD(emacs_simple), "Cancel", "K:ESC"},
        {CMD(emacs_simple), "NOP", "K:A-G"},
        {CMD(emacs_simple), "NOP", "K:CX:C-G"},
        {CMD(emacs_simple), "NOP", "K:CX4:C-G"},
@@ -3259,7 +3260,6 @@ DEF_CMD(emacs_quote)
        return 1;
 }
 
-DEF_PFX_CMD(alt_cmd, ":A");
 DEF_PFX_CMD(cx_cmd, ":CX");
 DEF_PFX_CMD(cx4_cmd, ":CX4");
 DEF_PFX_CMD(cx5_cmd, ":CX5");
@@ -3275,7 +3275,6 @@ static void emacs_init(void)
        if (emacs_map)
                return;
        m = key_alloc();
-       key_add(m, "K:ESC", &alt_cmd.c);
        key_add(m, "K:C-X", &cx_cmd.c);
        key_add(m, "K:CX-4", &cx4_cmd.c);
        /* C-\ is generated by C-4.  Weird... */
@@ -3385,6 +3384,7 @@ static void emacs_init(void)
        key_add(m, "mode-set-mark", &emacs_mark);
        key_add(m, "mode-swap-mark", &emacs_swap_mark);
        key_add(m, "Abort", &emacs_abort);
+       key_add(m, "Cancel", &emacs_abort);
        key_add(m, "K:C-W", &emacs_wipe);
        key_add(m, "K:A-w", &emacs_copy);
        key_add(m, "K:C-Y", &emacs_yank);
index 7c8cfff423898699c14507b29f2aa5176614b6e1..27eeea4196e7e537186cf484a36feb6aac6ce719 100644 (file)
@@ -444,136 +444,125 @@ Display 80,30 24C4E65F2513F6FFC77B0F11C5BF714B 61,2
 Key ":ESC"
 Display 80,30 CD11F3189ACF483C830F2B16FF4CAB57 29,20
 Key ":ESC"
-Display 80,30 B43C3BD308C084CDC7E3AF4847642B0A 29,20
 Key ":C-S"
-Display 80,30 CD11F3189ACF483C830F2B16FF4CAB57 29,20
-Key "-h"
-Display 80,30 BA04BB1B4F5999462112F3D1A54946C9 30,20
-Key "-a"
-Display 80,30 AC45C4ECAA0F743173158C23E5BCAF52 31,20
-Key "-n"
-Display 80,30 AD9E028031179F77F4D6D614F5B54E4E 32,20
-Key "-d"
-Display 80,30 C1EA05C5522D14D27DC426FFAFB73A42 33,20
-Key ":C-S"
-Display 80,30 0487C9F5A9131431D147ABCC5CFC97FC 50,0
+Display 80,30 78EC5FD7DD6F5BFD5ADB3101BCDAC91C 50,0
 Key "-h"
-Display 80,30 44EFDBD0C887AD83BE48B6DF7F60E8D6 51,0
-Display 80,30 F9F18834AFDE5A9663994809A46544E9 51,0
+Display 80,30 AA52D6A21B46D8259E6E6B740CAD43BA 51,0
+Display 80,30 B7863D828348B7603B65834A537243F1 51,0
 Key "-a"
-Display 80,30 BF5B23F2FA7B0C43C7333A56E88CAE80 52,0
-Display 80,30 2C2E160F54BC9C6821DC847F4578EEAC 52,0
+Display 80,30 B0BCCE906B040CF4136B49B1368D6F23 52,0
+Display 80,30 6641D7EBB65B164CA88D232C30771ACF 52,0
 Key "-n"
-Display 80,30 4D4840EA8AC507534A1D8ECA6B081607 53,0
-Display 80,30 CA51C0C01A7E40DF109F165E14AD2E84 53,0
+Display 80,30 5E4E874BE950F3DAC3DDE05C34152D42 53,0
+Display 80,30 07BC6924FD976D51A797FAFF8C29284D 53,0
 Key "-d"
-Display 80,30 AFA467DFBE26652F38869289222C43E3 54,0
-Display 80,30 76F1F86FD2E3D50251B77E2014C58912 54,0
+Display 80,30 ABE68EE9126A08197984D8540CF4CDDD 54,0
+Display 80,30 AD393DE18DB585EA2BF710324E0AA51C 54,0
 Key "-l"
-Display 80,30 12538496A651D35E62BCD2CF5BFB0CB5 55,0
-Display 80,30 217FFAC910F7D466E821D5678FDD3224 55,0
+Display 80,30 1436B829F71B5A78D6642F73642F9DDC 55,0
+Display 80,30 6FCFD8EE6ACBF8367D8645C623ED8940 55,0
 Key "-e"
-Display 80,30 1D32244F5F19DCEB8FA917947DF61E74 56,0
-Display 80,30 C80B5FBEF3907721BAA014AFCC26E364 56,0
+Display 80,30 505C009328E817FD81F2A0159001BE1A 56,0
+Display 80,30 3A3928F44756187453DA87E8DCB6692B 56,0
 Key ":C-R"
-Display 80,30 D002A8BA7E31F2BCFC3204250B92C2CD 64,0
-Display 80,30 ADB08C1FDADAF0261CD3353D72A50192 64,0
+Display 80,30 DDBCA015C84AE04872A324A395F8B210 64,0
+Display 80,30 3DE3330CAD918F3B5B91EB698D8F9338 64,0
 Key ":C-R"
-Display 80,30 949FA93EF5F18658C143102AD09049DE 64,0
-Display 80,30 ADB08C1FDADAF0261CD3353D72A50192 64,0
+Display 80,30 142D59F35E842FA87CF489A88ACEFF16 64,0
+Display 80,30 3DE3330CAD918F3B5B91EB698D8F9338 64,0
 Key ":C-R"
-Display 80,30 0AF0138010531830A4A88552A9C34F09 64,0
-Display 80,30 ADB08C1FDADAF0261CD3353D72A50192 64,0
+Display 80,30 B18814C779A6ABB78545B6B6BBDA2B74 64,0
+Display 80,30 3DE3330CAD918F3B5B91EB698D8F9338 64,0
 Key ":C-R"
-Display 80,30 7BB7E6356378CDF944FCD11769215E06 64,0
-Display 80,30 ADB08C1FDADAF0261CD3353D72A50192 64,0
+Display 80,30 7F2554B8F43EE26D6156DF250EC63A2D 64,0
+Display 80,30 3DE3330CAD918F3B5B91EB698D8F9338 64,0
 Key ":C-R"
-Display 80,30 AF259A0200510007F8076F9D3AE5A16D 64,0
-Display 80,30 ADB08C1FDADAF0261CD3353D72A50192 64,0
+Display 80,30 4C5F019BBC7389A0CDC78745EE8D230D 64,0
+Display 80,30 3DE3330CAD918F3B5B91EB698D8F9338 64,0
 Key ":Enter"
-Display 80,30 78AFB97EA34E94F5CBA3E460423ACF4E 39,12
+Display 80,30 A5753A3D8D18E66689253DD2B60C7BAF 39,12
 Key ":C-X"
-Display 80,30 010846B81B25D0115BE2E53EC7E79465 39,12
+Display 80,30 23AFDB765F096937C9346802F8BDBC24 39,12
 Key "-3"
-Display 80,30 47E4CB690A59F7B06365597DC37A521F 1,22
+Display 80,30 AC3150C970DDA6AF2F05C88EE25CF2A6 1,22
 Key ":C-X"
-Display 80,30 9189CDE9629243154556C41B51A35934 1,22
+Display 80,30 C0C0145B721DEDE73372B2E64C9CE6DB 1,22
 Key "-2"
-Display 80,30 49DECBFB2A41E29F2A4E3D11414E63CD 1,6
+Display 80,30 76D8E7BC878C6E77E3E0019C7E0FC1C6 1,6
 Key ":C-X"
-Display 80,30 B704A177DA5EB1C12A89E4BD1A733A5A 1,6
+Display 80,30 1C6CAB265E3F426643D9AD2B6F0ADFBF 1,6
 Key "-3"
-Display 80,30 1253E9C407D87A32FC4FE191F5A99670 5,11
+Display 80,30 343285DFAD744FA033363206B833D306 5,11
 Key ":C-X"
-Display 80,30 EC3ADB646947764A80526E3335BEF4DB 5,11
+Display 80,30 00FBBC835770DE77B539A7290EA40F96 5,11
 Key "-1"
-Display 80,30 B239318A0DD9E1855A5A26A3F691A514 1,5
+Display 80,30 549C1A67AC9581A34D72DA4E81EEDD49 1,5
 Key "-1"
-Display 80,30 7CE6F50089626122AA324DC3405B81D1 1,5
+Display 80,30 2DA9F6E10FA570E5CF456966C745799B 1,5
 Key ":C-X"
-Display 80,30 3F3E99E22F900FE80219C96345C56493 1,5
+Display 80,30 79D6C37AE399DAD5D90558D77282F6E9 1,5
 Key "-0"
-Display 80,30 D12F9B9766EA8C031BF7DA882F9D21BA 39,6
+Display 80,30 BFC9564FC49ADEABE49BFFF8EE0C0F7D 39,6
 Key ":C-P"
-Display 80,30 5FEA0CC4CA6227890AED740A6AC3AE74 39,5
+Display 80,30 4944E829825415A1144FC3DDD7A260B3 39,5
 Key ":C-P"
-Display 80,30 23DF7DA6DA46C95A60DA0E91ED9A3603 39,4
+Display 80,30 420B7830D5907468A6E6CE9C595C7EF0 39,4
 Key ":C-P"
-Display 80,30 A25D3E9C22A2ECAE5EA104E4C20B1057 39,3
+Display 80,30 B7DD99FCDC37460EEEAA3606229D1006 39,3
 Key ":C-P"
-Display 80,30 471C93E1490F5E15BDE12AD485D17022 1,2
+Display 80,30 4B3E0B8D9CED942689778F414EAA32E3 1,2
 Key "- "
-Display 80,30 471C93E1490F5E15BDE12AD485D17022 2,2
+Display 80,30 4B3E0B8D9CED942689778F414EAA32E3 2,2
 Key "-i"
-Display 80,30 EA584F30589CE18F25444073E4F8EFD1 3,2
+Display 80,30 0B2A00107E64B5074DE184875072FF49 3,2
 Key "-n"
-Display 80,30 2D9CAEBE0DF22BD1DF1340AD7BA1C0D7 4,2
+Display 80,30 925C9D1CF85B2CA0CAFB21C2CE4D06C3 4,2
 Key "- "
-Display 80,30 2D9CAEBE0DF22BD1DF1340AD7BA1C0D7 5,2
+Display 80,30 925C9D1CF85B2CA0CAFB21C2CE4D06C3 5,2
 Key "-d"
-Display 80,30 C01C4455F2633B3C64BDAC090E180FE4 6,2
+Display 80,30 B5AD21E865FB262F9FD072748856BF55 6,2
 Key "-i"
-Display 80,30 0DF174F50FDB948D787EC9B1988D5093 7,2
+Display 80,30 0420B5BF31D0708506627EF35749556E 7,2
 Key "-s"
-Display 80,30 A204F0C592E1A8AE814ED69C9E216D77 8,2
+Display 80,30 4C9EB6CB6F4DF7DD2A92B112A85E7330 8,2
 Key "-p"
-Display 80,30 19D2763584C949BA5D02F4F9AE57B0F2 9,2
+Display 80,30 FFB93A7B1E51162DABECE193B8E8AA78 9,2
 Key ":A-/"
-Display 80,30 A1E582F95603809A9E8DC276497C1A05 12,2
+Display 80,30 8D5DE59D884A3B90EE5A30CFF33E3AF4 12,2
 Key ":A-/"
-Display 80,30 CEB607FDD0638B06E07DA5E4ADBA26CD 5,3
+Display 80,30 38955E6783D09D8748DF996AFD8E70AD 5,3
 Key ":Down"
-Display 80,30 B377A99E826EB134A9FC79E3F1C65B4A 5,4
+Display 80,30 A50BFDC434495230FE5F0C8B8CD444AB 5,4
 Key ":Down"
-Display 80,30 B377A99E826EB134A9FC79E3F1C65B4A 5,5
+Display 80,30 A50BFDC434495230FE5F0C8B8CD444AB 5,5
 Key ":Enter"
-Display 80,30 230C36088D1C059C02EC5D312B554667 13,2
+Display 80,30 9748AF118093B2B55F454FC94FCDBB26 13,2
 Key ":A:Backspace"
-Display 80,30 2D9CAEBE0DF22BD1DF1340AD7BA1C0D7 5,2
+Display 80,30 925C9D1CF85B2CA0CAFB21C2CE4D06C3 5,2
 Key "-d"
-Display 80,30 C01C4455F2633B3C64BDAC090E180FE4 6,2
+Display 80,30 B5AD21E865FB262F9FD072748856BF55 6,2
 Key "-i"
-Display 80,30 0DF174F50FDB948D787EC9B1988D5093 7,2
+Display 80,30 0420B5BF31D0708506627EF35749556E 7,2
 Key "-s"
-Display 80,30 A204F0C592E1A8AE814ED69C9E216D77 8,2
+Display 80,30 4C9EB6CB6F4DF7DD2A92B112A85E7330 8,2
 Key "- "
-Display 80,30 A204F0C592E1A8AE814ED69C9E216D77 9,2
+Display 80,30 4C9EB6CB6F4DF7DD2A92B112A85E7330 9,2
 Key "- "
-Display 80,30 A204F0C592E1A8AE814ED69C9E216D77 10,2
+Display 80,30 4C9EB6CB6F4DF7DD2A92B112A85E7330 10,2
 Key ":Backspace"
-Display 80,30 A204F0C592E1A8AE814ED69C9E216D77 9,2
+Display 80,30 4C9EB6CB6F4DF7DD2A92B112A85E7330 9,2
 Key ":Backspace"
-Display 80,30 A204F0C592E1A8AE814ED69C9E216D77 8,2
+Display 80,30 4C9EB6CB6F4DF7DD2A92B112A85E7330 8,2
 Key ":A-/"
-Display 80,30 339EB5E1166F780D543CAAFD17373EE7 5,3
+Display 80,30 2AC6ADA9A5C59105FD1A9B73DE689D28 5,3
 Key ":Down"
-Display 80,30 22185AF34B819136D188663E549A62CC 5,4
+Display 80,30 EAF023AAFC12B73DBC1B820C63B5F0F5 5,4
 Key ":Enter"
-Display 80,30 0BDDE97F395CADE8D323D2FA282014DA 19,2
+Display 80,30 0B6390BE830686AD365C4BFF41CD9512 15,2
 Key ":C-U"
-Display 80,30 0BAB2CA069001D0A57048D5A27B290A3 19,2
+Display 80,30 85CE2162A99E7F12D40B8E4F8BD2923E 15,2
 Key ":C-X"
-Display 80,30 BFDE34A6C5119A8ADFDDD8EBF984221E 19,2
+Display 80,30 2EFCC41A42B9DD2238BC6A18C36B6504 15,2
 Key "-k"
 Display 80,30 41AC9C3CD03D07B52B6A3DA48C7AB730 1,8
 Key ":C-X"
@@ -716,5 +705,4 @@ Key ":C-X"
 Display 80,30 CF77174CFC77ECAC2102213E88F4BF50 2,7
 Key ":C-C"
 Display 80,30 7EB025B1893D47CC56F241B3FAB0090A 21,8
-Key "-q"
-Close 1819
+Close 1809