]> git.neil.brown.name Git - edlib.git/commitdiff
viewer: switch to embedded-data pattern.
authorNeilBrown <neil@brown.name>
Fri, 8 Sep 2023 07:42:36 +0000 (17:42 +1000)
committerNeilBrown <neil@brown.name>
Fri, 8 Sep 2023 07:42:36 +0000 (17:42 +1000)
Signed-off-by: NeilBrown <neil@brown.name>
lib-viewer.c

index 0256caa0eaed763d2663975baa4b67edaacfd366..e313bd36fc141fd06eadb8e22888fb73c737a6a7 100644 (file)
 #include <stdlib.h>
 #include <string.h>
 #include <stdio.h>
-
+#define PANE_DATA_TYPE struct viewer_data
 #include "core.h"
 
-static struct map *viewer_map safe;
-DEF_LOOKUP_CMD(viewer_handle, viewer_map);
-
 struct viewer_data {
        bool active;
 };
+#include "core-pane.h"
+
+static struct map *viewer_map safe;
+DEF_LOOKUP_CMD(viewer_handle, viewer_map);
 
 static struct pane *safe do_viewer_attach(struct pane *par safe)
 {
-       struct viewer_data *vd;
+       struct pane *p;
 
-       alloc(vd, pane);
-       vd->active = True;
-       return pane_register(par, 0, &viewer_handle.c, vd);
+       p = pane_register(par, 0, &viewer_handle.c);
+       if (p)
+               p->data->active = True;
+       return p;
 }
 
 DEF_CMD(viewer_attach)
@@ -178,7 +180,6 @@ void edlib_init(struct pane *ed safe)
        key_add(viewer_map, "doc:char-q", &viewer_bury);
        key_add(viewer_map, "doc:char-E", &viewer_deactivate);
        key_add(viewer_map, "Clone", &viewer_clone);
-       key_add(viewer_map, "Free", &edlib_do_free);
        key_add(viewer_map, "attach-viewer", &viewer_activate);
 
        call_comm("global-set-command", ed, &viewer_attach, 0, NULL,