return 1;
}
-DEF_EXTERN_CMD(edlib_do_free)
-{
- if (ci->home->data_size)
- unalloc_buf_safe(ci->home->_data, ci->home->data_size, pane);
- return 1;
-}
-
/* FIXME I should be able to remove things from a keymap, not
* replace with this.
*/
if (data)
alloc_size = sizeof(data);
+ alloc_size += offsetof(struct pane, data);
- p = alloc_zbuf(offsetof(struct pane, data) + alloc_size, pane);
+ p = alloc_zbuf(alloc_size, pane);
pane_init(p, parent);
+ p->alloc_size = alloc_size;
p->z = z;
if (parent)
p->abs_z = parent->abs_z + 1;
p->handle = command_get(handle);
- if (data) {
+ if (data)
p->data = data;
- p->data_size = data_size;
- }
+
p->name = handle->name;
if (z >= 0) {
if (parent && parent->focus == NULL)
void pane_free(struct pane *p safe)
{
if (p->refs == 0)
- unalloc_safe(p, pane);
+ unalloc_buf_safe(p, p->alloc_size, pane);
}
bool pane_resize(struct pane *p safe, int x, int y, int w, int h)
.m = &_map, \
}
-DECL_EXTERN_CMD(edlib_do_free);
DECL_EXTERN_CMD(edlib_noop);
int key_lookup_cmd_func(const struct cmd_info *ci safe);