aboutsummaryrefslogtreecommitdiffstats
path: root/action.c
diff options
context:
space:
mode:
Diffstat (limited to 'action.c')
-rw-r--r--action.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/action.c b/action.c
index ea66889..fac5a44 100644
--- a/action.c
+++ b/action.c
@@ -439,23 +439,30 @@ a_print(char * opt[]) {
int
a_menuprint(char * opt[]) {
+ char *text;
(void)opt;
+
if(dzen.slave_win.ismenu && dzen.slave_win.sel_line != -1
&& (dzen.slave_win.sel_line + dzen.slave_win.first_line_vis) < dzen.slave_win.tcnt) {
- puts(dzen.slave_win.tbuf[dzen.slave_win.sel_line + dzen.slave_win.first_line_vis].text);
+ text = parse_line(NULL, dzen.slave_win.sel_line, 0, 0, 1);
+ puts(text); fflush(stdout);
dzen.slave_win.sel_line = -1;
- fflush(stdout);
+ free(text);
}
return 0;
}
int
a_menuexec(char * opt[]) {
+ char *text;
(void)opt;
+
if(dzen.slave_win.ismenu && dzen.slave_win.sel_line != -1
&& (dzen.slave_win.sel_line + dzen.slave_win.first_line_vis) < dzen.slave_win.tcnt) {
- spawn(dzen.slave_win.tbuf[dzen.slave_win.sel_line + dzen.slave_win.first_line_vis].text);
+ text = parse_line(NULL, dzen.slave_win.sel_line, 0, 0, 1);
+ spawn(text);
dzen.slave_win.sel_line = -1;
+ free(text);
}
return 0;
}