/* codeprint1.p

First part of "codeprint1".
This part is just the interface
Get filename to parse/print, fire it through "testrun".

Similar to PREPROCESS output, with these differences:
- comments have been stripped
- shows where include files begin and end

*/

DEFINE VARIABLE filename AS CHARACTER NO-UNDO.
DEFINE VARIABLE filelist AS CHARACTER NO-UNDO.
DEFINE VARIABLE outfile  AS CHARACTER NO-UNDO.
DEFINE VARIABLE go       AS LOGICAL   NO-UNDO.


IF OPSYS = 'UNIX':U THEN DO:  
  RUN proparse/utilities/textprompt.w
      (INPUT "Enter the path and filename of the program to print.~n",
       INPUT-OUTPUT filename
      ).
  IF RETURN-VALUE = "cancel" THEN
     RETURN.

  FILE-INFO:FILE-NAME = filename.
  IF FILE-INFO:FILE-TYPE = ?
  OR INDEX(FILE-INFO:FILE-TYPE, "F":U) = 0 THEN DO:
    MESSAGE "Invalid file name" VIEW-AS ALERT-BOX.
    RETURN.
  END.
END. /* opsys = unix */

ELSE DO: 
  ASSIGN go = NO.
  SYSTEM-DIALOG GET-FILE filename MUST-EXIST TITLE "Codeprint1" UPDATE go.
  IF NOT go THEN RETURN.
END. /* opsys <> unix */


ASSIGN filelist = SESSION:TEMP-DIRECTORY + "/joanju_codepr_lst.txt".
OUTPUT TO VALUE(filelist).
PUT UNFORMATTED filename SKIP.
OUTPUT CLOSE.

RUN proparse/api/testrun.p (filelist, "proparse/examples/codeprint1a.p").

ASSIGN outfile = SESSION:TEMP-DIRECTORY + "/joanju_codepr1_out.txt".
RUN proparse/utilities/resultswindow.p (outfile).

OS-DELETE VALUE(filelist).
OS-DELETE VALUE(outfile).
