From: NeilBrown Date: Thu, 14 Sep 2023 11:38:06 +0000 (+1000) Subject: Introduce PANE_DATA_VOID X-Git-Url: http://git.neil.brown.name/?a=commitdiff_plain;h=8a4638b4297c2544e20f10e48afbb4ab57e5b69c;p=edlib.git Introduce PANE_DATA_VOID This is for panes that don't have any data. Signed-off-by: NeilBrown --- diff --git a/core.h b/core.h index 9a18a7e6..8a6fbc08 100644 --- a/core.h +++ b/core.h @@ -471,10 +471,14 @@ static inline struct pane *pane_register(struct pane *parent safe, short z, return do_pane_register(parent, z, handle, (void*)data, sizeof(data)); } #else +#ifdef PANE_DATA_VOID +#define pane_register3(p,z,h) do_pane_register(p,z,h,NULL, 0) +#else #define pane_register4(p,z,h,d) do_pane_register(p,z,h,d,sizeof((d)[0])) #define pane_register3(p,z,h) do_pane_register(p,z,h,NULL, 0) #endif #endif +#endif #ifdef PANE_DATA_TYPE_2 #define pane_register_2(p,z,h) do_pane_register(p,z,h,NULL, sizeof(PANE_DATA_TYPE_2)) @@ -487,6 +491,9 @@ static inline struct pane *pane_register_2(struct pane *parent safe, short z, return do_pane_register(parent, z, handle, (void*)data, sizeof(data)); } #endif +#ifdef PANE_DATA_VOID_2 +#define pane_register_2(p,z,h) do_pane_register(p,z,h,NULL, 0) +#endif #ifdef PANE_DATA_TYPE_3 #define pane_register_3(p,z,h) do_pane_register(p,z,h,NULL, sizeof(PANE_DATA_TYPE_3)) @@ -499,6 +506,9 @@ static inline struct pane *pane_register_3(struct pane *parent safe, short z, return do_pane_register(parent, z, handle, (void*)data, sizeof(data)); } #endif +#ifdef PANE_DATA_VOID_3 +#define pane_register_3(p,z,h) do_pane_register(p,z,h,NULL, 0) +#endif void pane_update_handle(struct pane *p safe, struct command *handle safe); diff --git a/doc-dir.c b/doc-dir.c index 988a8783..e03eb04e 100644 --- a/doc-dir.c +++ b/doc-dir.c @@ -51,6 +51,8 @@ struct doc_ref { #define DOC_DATA_TYPE struct directory #define DOC_NEXT(d,m,r,b) dir_next(d,r,b) #define DOC_PREV(d,m,r,b) dir_prev(d,r,b) + +#define PANE_DATA_VOID #include "core.h" struct dir_ent { diff --git a/doc-docs.c b/doc-docs.c index 299a5b1a..68cde8d4 100644 --- a/doc-docs.c +++ b/doc-docs.c @@ -49,6 +49,7 @@ struct doc_ref { #define DOC_PREV(d,m,r,b) docs_prev(d,r,b) #define PANE_DATA_PTR_TYPE struct pane * +#define PANE_DATA_VOID_2 #include "core.h" static struct map *docs_map, *docs_aux_map, *docs_modified_map, @@ -377,7 +378,7 @@ DEF_CMD(docs_callback_modified) return Efail; attr_set_str(&p->attrs, "filter:attr", "doc-can-save"); attr_set_str(&p->attrs, "filter:match", "yes"); - p = pane_register(p, 0, &docs_modified_handle.c, NULL); + p = pane_register_2(p, 0, &docs_modified_handle.c); if (!p) return Efail; attr_set_str(&p->attrs, "doc-name", "*Modified Documents*"); diff --git a/lib-autosave.c b/lib-autosave.c index 313a0c0d..c22cc124 100644 --- a/lib-autosave.c +++ b/lib-autosave.c @@ -12,6 +12,7 @@ #include #include +#define PANE_DATA_VOID #include "core.h" /* diff --git a/lib-base64.c b/lib-base64.c index a8f149c7..ee85f48b 100644 --- a/lib-base64.c +++ b/lib-base64.c @@ -25,6 +25,7 @@ #define DOC_NEXT base64_next #define DOC_PREV base64_prev +#define PANE_DATA_VOID #include "core.h" static struct map *b64_map safe; diff --git a/lib-menu.c b/lib-menu.c index 41c3cb58..ff8ed21b 100644 --- a/lib-menu.c +++ b/lib-menu.c @@ -18,6 +18,7 @@ * */ +#define PANE_DATA_VOID #include "core.h" #include "misc.h" diff --git a/lib-qprint.c b/lib-qprint.c index 6df48c65..01482bc4 100644 --- a/lib-qprint.c +++ b/lib-qprint.c @@ -22,6 +22,7 @@ #define DOC_NEXT qp_next #define DOC_PREV qp_prev +#define PANE_DATA_VOID #include "core.h" static struct map *qp_map safe; diff --git a/lib-test-markup.c b/lib-test-markup.c index 25a870d1..ad1b74f5 100644 --- a/lib-test-markup.c +++ b/lib-test-markup.c @@ -6,6 +6,7 @@ * of the document as verbatim markup. This is for testing only. */ +#define PANE_DATA_VOID #include "core.h" #include "misc.h" diff --git a/lib-utf8.c b/lib-utf8.c index 8c47d85a..2f25b6e9 100644 --- a/lib-utf8.c +++ b/lib-utf8.c @@ -11,6 +11,7 @@ #define DOC_NEXT utf8_next #define DOC_PREV utf8_prev +#define PANE_DATA_VOID #include "core.h" static struct map *utf8_map safe; diff --git a/render-format.c b/render-format.c index 241228f8..ccc412cf 100644 --- a/render-format.c +++ b/render-format.c @@ -15,10 +15,12 @@ #include #define PANE_DATA_TYPE struct rf_data +#define PANE_DATA_VOID_2 #define DOC_NEXT(p,m,r,b) format_next_prev(p, ci->focus, m, r, 1, b) #define DOC_PREV(p,m,r,b) format_next_prev(p, ci->focus, m, r, 0, b) #define DOC_NEXT_DECL(p,m,r,b) format_next_prev(p, struct pane *focus safe, m, r, int forward, b) #define DOC_PREV_DECL(p,m,r,b) format_next_prev(p, struct pane *focus safe, m, r, int forward, b) + #include "core.h" #include "misc.h" @@ -962,7 +964,7 @@ static struct pane *do_render_format_attach(struct pane *parent safe) if (!rf_map) render_format_register_map(); - p = pane_register(parent, 0, &render_format_handle.c, NULL); + p = pane_register_2(parent, 0, &render_format_handle.c); } else { if (!rf2_map) render_format_register_map();