From db4c703131c4fe68e699d873525f1055845545f7 Mon Sep 17 00:00:00 2001 From: Kevin McBride Date: Tue, 18 Mar 2008 15:58:40 +0000 Subject: [PATCH] pts-process-input-file-and-exit-20080318 LICENSE IPL10 The pts program has a command 'source' to read commands from a file. In the interactive "shell" mode, this command works, reading and executing commands until the end of the file and then returning to the command shell. This command is valid for use as a command line option, but does not work. It requires a valid filename as an argument, but does not process the file, instead just dropping the user into the interactive mode. When given as a command line option, pts source SHOULD read the file, execute the commands and then exit, according to the documentation. It does not currently do this and should be fixed. --- src/ptserver/pts.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/ptserver/pts.c b/src/ptserver/pts.c index 60809d9817..bd8673102f 100644 --- a/src/ptserver/pts.c +++ b/src/ptserver/pts.c @@ -59,6 +59,7 @@ struct authstate { int pts_Interactive(struct cmd_syndesc *as, void *arock) { + source = stdin; finished = 0; return 0; } @@ -1177,12 +1178,12 @@ main(int argc, char **argv) cmd_SetBeforeProc(GetGlobals, &state); finished = 1; - source = stdin; + source = NULL; if (code = cmd_Dispatch(argc, argv)) { CleanUp(NULL, NULL); exit(1); } - while (!finished) { + while (source && !finished) { if (isatty(fileno(source))) fprintf(stderr, "pts> "); if (!fgets(line, sizeof line, source)) {