003 File Manager
Current Path:
/usr/src/contrib/dialog
usr
/
src
/
contrib
/
dialog
/
📁
..
📄
CHANGES
(108.53 KB)
📄
COPYING
(25.81 KB)
📄
README
(2.78 KB)
📄
VERSION
(20 B)
📄
aclocal.m4
(195.3 KB)
📄
argv.c
(3.54 KB)
📄
arrows.c
(6.8 KB)
📄
buildlist.c
(31.36 KB)
📄
buttons.c
(16.19 KB)
📄
calendar.c
(24.45 KB)
📄
checklist.c
(17.98 KB)
📄
columns.c
(4.17 KB)
📄
config.guess
(43.14 KB)
📄
config.hin
(75 B)
📄
config.sub
(34.92 KB)
📄
configure
(666.11 KB)
📄
configure.in
(7.57 KB)
📄
demo.pl
(11.44 KB)
📄
dialog-config.in
(4.31 KB)
📄
dialog.1
(60.51 KB)
📄
dialog.3
(124.54 KB)
📄
dialog.c
(52.45 KB)
📄
dialog.h
(37.7 KB)
📄
dialog.lsm
(1.1 KB)
📄
dialog.pl
(15.08 KB)
📄
dlg_colors.h
(6.87 KB)
📄
dlg_keys.c
(20.68 KB)
📄
dlg_keys.h
(5.23 KB)
📄
editbox.c
(16.81 KB)
📄
formbox.c
(23.3 KB)
📄
fselect.c
(22.06 KB)
📄
guage.c
(10.26 KB)
📄
headers-sh.in
(5.35 KB)
📄
headers.sh
(3.6 KB)
📄
help.c
(1.4 KB)
📄
inputbox.c
(7.04 KB)
📄
inputstr.c
(17.73 KB)
📄
install-sh
(6.96 KB)
📄
makefile.in
(10.07 KB)
📄
menubox.c
(20.26 KB)
📄
mixedform.c
(3.39 KB)
📄
mixedgauge.c
(9.6 KB)
📄
mouse.c
(3.5 KB)
📄
mousewget.c
(2.19 KB)
📄
msgbox.c
(4.99 KB)
📁
package
📄
pause.c
(6.53 KB)
📁
po
📄
prgbox.c
(2.73 KB)
📄
progressbox.c
(9.88 KB)
📄
rangebox.c
(10.54 KB)
📄
rc.c
(15 KB)
📄
rename.sh
(3.04 KB)
📁
samples
📄
tailbox.c
(9.53 KB)
📄
textbox.c
(24.86 KB)
📄
timebox.c
(10.27 KB)
📄
trace.c
(5.72 KB)
📄
treeview.c
(16.55 KB)
📄
ttysize.c
(2.28 KB)
📄
ui_getc.c
(14.03 KB)
📄
util.c
(64.44 KB)
📄
version.c
(1.01 KB)
📄
yesno.c
(4.28 KB)
Editing: prgbox.c
/* * $Id: prgbox.c,v 1.13 2016/01/27 01:37:26 tom Exp $ * * prgbox.c -- implements the prg box * * Copyright 2011-2014,2016 Thomas E. Dickey * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License, version 2.1 * as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this program; if not, write to * Free Software Foundation, Inc. * 51 Franklin St., Fifth Floor * Boston, MA 02110, USA. */ #include <dialog.h> static void reapchild(int sig) { (void) sig; } /* * Open a pipe which ties stderr and stdout together. */ FILE * dlg_popen(const char *command, const char *type) { FILE *result = 0; int fd[2]; char *blob; char **argv; if ((*type == 'r' || *type != 'w') && pipe(fd) == 0) { switch (fork()) { case -1: /* Error. */ (void) close(fd[0]); (void) close(fd[1]); break; case 0: /* child. */ if (*type == 'r') { if (fd[1] != STDOUT_FILENO) { (void) dup2(fd[1], STDOUT_FILENO); (void) close(fd[1]); } (void) dup2(STDOUT_FILENO, STDERR_FILENO); (void) close(fd[0]); } else { if (fd[0] != STDIN_FILENO) { (void) dup2(fd[0], STDIN_FILENO); (void) close(fd[0]); } (void) close(fd[1]); (void) close(STDERR_FILENO); } /* * Bourne shell needs "-c" option to force it to use only the * given command. Also, it needs the command to be parsed into * tokens. */ if ((blob = malloc(10 + strlen(command))) != 0) { sprintf(blob, "sh -c \"%s\"", command); argv = dlg_string_to_argv(blob); execvp("sh", argv); } _exit(127); /* NOTREACHED */ default: /* parent */ if (*type == 'r') { result = fdopen(fd[0], type); (void) close(fd[1]); } else { result = fdopen(fd[1], type); (void) close(fd[0]); } break; } } return result; } /* * Display text from a pipe in a scrolling window. */ int dialog_prgbox(const char *title, const char *cprompt, const char *command, int height, int width, int pauseopt) { int code; FILE *fp; void (*oldreaper) (int) = signal(SIGCHLD, reapchild); fp = dlg_popen(command, "r"); if (fp == NULL) dlg_exiterr("pipe open failed: %s", command); code = dlg_progressbox(title, cprompt, height, width, pauseopt, fp); pclose(fp); signal(SIGCHLD, oldreaper); return code; }
Upload File
Create Folder