commit - ec9aa1067b075de798424833bb39cf6a090c0608
commit + e9beee55fac609bf1acc351cda8deeedceabc52a
blob - 381ab9a8a8c225467b2b9f104565207158c02607
blob + dda99c778de636e6699decfab50640386bda21a7
--- cmd.c
+++ cmd.c
vl = buffer->current_line;
switch (vl->parent->type) {
case LINE_LINK:
- load_url_in_tab(current_tab(), vl->parent->alt);
+ load_url_in_tab(current_tab(), vl->parent->meta.alt);
break;
case LINE_PRE_START:
l = TAILQ_NEXT(vl->parent, lines);
if (vl->parent->type != LINE_LINK)
return;
- new_tab(vl->parent->alt);
+ new_tab(vl->parent->meta.alt);
}
void
blob - 8b8a92a48cac80d5083135f3efd334bb7d6bfe80
blob + 4ca5f64caf3fd6fcf122bebaa542def8504bfa0d
--- gemtext.c
+++ gemtext.c
l->type = type;
l->line = line;
- l->alt = alt;
+ l->meta.alt = alt;
switch (l->type) {
case LINE_PRE_START:
blob - 8debbe52919cb97db7f39fdfc2c43aac905d1ade
blob + f97dddd629617a69605a31bd5a4b8064fc20be9a
--- telescope.h
+++ telescope.h
struct line {
enum line_type type;
char *line;
- char *alt;
+ union {
+ char *alt;
+ void *data;
+ } meta;
int flags;
TAILQ_ENTRY(line) lines;
};
blob - 3a02679bff017dd46a087543b13dde9b8b38d0a4
blob + 349d0667ece6ee7e363915b11c0dd12740745f4f
--- ui.c
+++ ui.c
tab = current_tab();
if (tab->buffer.current_line != NULL &&
tab->buffer.current_line->parent->type == LINE_LINK)
- waddstr(echoarea, tab->buffer.current_line->parent->alt);
+ waddstr(echoarea,
+ tab->buffer.current_line->parent->meta.alt);
}
}
abort();
l->type = LINE_TEXT;
- l->alt = NULL;
+ l->meta.alt = NULL;
asprintf(&l->line, "%s %s", prfx, cmd->cmd);
blob - 33405b9289543ae349b444af2c524cc0a12e068d
blob + 650ba05127cb54a9873dbb6639847a2a719cf4f5
--- wrap.c
+++ wrap.c
TAILQ_FOREACH_SAFE(l, &buffer->page.head, lines, lt) {
TAILQ_REMOVE(&buffer->page.head, l, lines);
free(l->line);
- free(l->alt);
+
+ if (l->type != LINE_COMPL &&
+ l->type != LINE_COMPL_CURRENT)
+ free(l->meta.alt);
+
free(l);
}
}