From 4d92b1465c4dbf22d8cfcf6c60ce8f923aff2eb4 Mon Sep 17 00:00:00 2001 From: juandon Date: Sun, 3 Mar 2002 20:06:52 +0000 Subject: [PATCH] ab9453cd92263dcca5e154ad67c13591 Changed files: blackbox-pipe.patch -> 1.1 --- blackbox-pipe.patch | 60 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 blackbox-pipe.patch diff --git a/blackbox-pipe.patch b/blackbox-pipe.patch new file mode 100644 index 0000000..f941639 --- /dev/null +++ b/blackbox-pipe.patch @@ -0,0 +1,60 @@ +--- blackbox-0.62.1/src/Screen.cc Sat Jan 12 12:13:09 2002 ++++ blackbox-0.62.1.with_pipe/src/Screen.cc Sun Mar 3 20:32:30 2002 +@@ -1710,7 +1710,13 @@ + Bool defaultMenu = True; + + if (blackbox->getMenuFilename()) { +- FILE *menu_file = fopen(blackbox->getMenuFilename(), "r"); ++ int pipe_menu = 0; ++ FILE *menu_file; ++ if (*(blackbox->getMenuFilename()) == '|') { ++ pipe_menu = 1; ++ menu_file = popen((blackbox->getMenuFilename()) + 1, "r"); ++ } ++ else menu_file = fopen(blackbox->getMenuFilename(), "r"); + + if (!menu_file) { + perror(blackbox->getMenuFilename()); +@@ -1758,7 +1764,8 @@ + } + } + } +- fclose(menu_file); ++ if (pipe_menu) pclose(menu_file); ++ else fclose(menu_file); + } + } + +@@ -1958,12 +1965,18 @@ + } + + if (newfile) { +- FILE *submenufile = fopen(newfile, "r"); ++ int pipe_submenu = 0; ++ FILE *submenufile; ++ if (*newfile == '|') { ++ pipe_submenu = 1; ++ submenufile = popen(newfile + 1, "r"); ++ } ++ else submenufile = fopen(newfile, "r"); + + if (submenufile) { + struct stat buf; +- if (fstat(fileno(submenufile), &buf) || +- (! S_ISREG(buf.st_mode))) { ++ if (!pipe_submenu && (fstat(fileno(submenufile), &buf) || ++ (! S_ISREG(buf.st_mode)))) { + fprintf(stderr, + i18n->getMessage(ScreenSet, ScreenINCLUDEErrorReg, + "BScreen::parseMenuFile: [include] error: " +@@ -1974,8 +1987,8 @@ + if (! feof(submenufile)) { + if (! parseMenuFile(submenufile, menu)) + blackbox->saveMenuFilename(newfile); +- +- fclose(submenufile); ++ if (pipe_submenu) pclose(submenufile); ++ else fclose(submenufile); + } + } else + perror(newfile); -- 2.43.0