Quoth Amadeusz Sławiński,
Seems like pipe menus were broken with recent rewrites to menu handling.
popen() was called with type "rb" but "b" makes no sense for a pipe. It was probably copy/pasted from file opening code somewhere else by mistake.
From f48aba0eafa605938c9a04c94f2fd61bf63606d2 Mon Sep 17 00:00:00 2001 From: Iain Patterson <[email protected]> Date: Sat, 25 Aug 2012 10:28:04 +0100 Subject: [PATCH] Fixed invalid argument to popen in readMenuPipe(). We were passing "rb" to popen(), which was failing with EINVAL with the result that generated menus were not displayed. --- src/rootmenu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rootmenu.c b/src/rootmenu.c index addb23e..2fcd0ae 100644 --- a/src/rootmenu.c +++ b/src/rootmenu.c @@ -998,7 +998,7 @@ static WMenu *readMenuPipe(WScreen * scr, char **file_name) } filename = flat_file + (flat_file[1] == '|' ? 2 : 1); - file = popen(filename, "rb"); + file = popen(filename, "r"); if (!file) { werror(_("%s:could not open menu file"), filename); return NULL; -- 1.7.11.4
