commit b7d58e0bff4eab3865592066a660901f10368f9a from: Omar Polo date: Fri Nov 05 21:04:09 2021 UTC extract keymap-related stuff to its own header commit - 57668c86437fcb90f5f22d11227c117189edb641 commit + b7d58e0bff4eab3865592066a660901f10368f9a blob - a64352e4f8f4970ab9d19185414dd8e85d6d7194 blob + ca129b383abc105a42724fdc1cfd3cc6950a9a1f --- Makefile.am +++ Makefile.am @@ -18,6 +18,7 @@ telescope_SOURCES = cmd.c \ help.c \ hist.c \ keymap.c \ + keymap.h \ mime.c \ minibuffer.c \ minibuffer.h \ blob - 3a75c29e16e96a2fa4512edc1d9ca56b500fcd2a blob + b52162bc2e5a1d8081c9ed272cf33facc11e821f --- keymap.c +++ keymap.c @@ -20,6 +20,7 @@ #include #include +#include "keymap.h" #include "telescope.h" #define CTRL(n) ((n)&0x1F) blob - /dev/null blob + 3b1ca4e8c8e72b9764f5845bffdefefd794966b8 (mode 644) --- /dev/null +++ keymap.h @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2021 Omar Polo + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#ifndef KEYMAP_H +#define KEYMAP_H + +#include "compat.h" + +#include + +struct buffer; + +struct kmap { + TAILQ_HEAD(map, keymap) m; + void (*unhandled_input)(void); +}; +extern struct kmap global_map, minibuffer_map; + +typedef void(interactivefn)(struct buffer *); + +struct keymap { + int meta; + int key; + struct kmap map; + interactivefn *fn; + + TAILQ_ENTRY(keymap) keymaps; +}; + +struct thiskey { + short meta; + int key; + uint32_t cp; +}; + +enum { + LK_ADVANCED_MAP, + LK_MATCHED, + LK_UNBOUND, +}; + +int kbd(const char *); +const char *unkbd(int); +int kmap_define_key(struct kmap *, const char *, interactivefn *); +int lookup_key(struct kmap **, struct thiskey *, struct buffer *); + +#endif blob - d4a96b003f8eed78fc8f300429f82afc9989d4fa blob + e1f0b69dcb0b3345983d76a019acb7c99499cf60 --- parse.y +++ parse.y @@ -20,6 +20,7 @@ %{ +#include "keymap.h" #include "telescope.h" #include blob - 131d2ab70be1e6397c32ef510771d647f2e5176f blob + aea0e51b91c2807797a0f38b129b5bd226c7a173 --- telescope.h +++ telescope.h @@ -253,29 +253,6 @@ struct get_req { char host[254]; char port[16]; char req[1027]; -}; - -struct kmap { - TAILQ_HEAD(map, keymap) m; - void (*unhandled_input)(void); -}; -extern struct kmap global_map, minibuffer_map; - -typedef void(interactivefn)(struct buffer *); - -struct keymap { - int meta; - int key; - struct kmap map; - interactivefn *fn; - - TAILQ_ENTRY(keymap) keymaps; -}; - -struct thiskey { - short meta; - int key; - uint32_t cp; }; struct cmd { @@ -316,17 +293,6 @@ void hist_clear_forward(struct histhead*, struct his void hist_push(struct histhead*, struct hist*); struct hist *hist_pop(struct histhead *); -/* keymap.c */ -enum { - LK_ADVANCED_MAP, - LK_MATCHED, - LK_UNBOUND, -}; - -int kbd(const char*); -const char *unkbd(int); -int kmap_define_key(struct kmap*, const char*, void(*)(struct buffer*)); - /* mime.c */ int setup_parser_for(struct tab*); blob - 82e8630ac9081bd7ae4242127e007b2b5ba664b5 blob + bdcb4079be72b7857407318281256c69b7c064db --- ui.h +++ ui.h @@ -17,6 +17,7 @@ #ifndef UI_H #define UI_H +#include "keymap.h" #include "telescope.h" extern int body_lines;