(FILECREATED " 1-May-87 18:32:18" {QV}<NOTECARDS>1.3K>NEXT>RGPATCH037.;1 4087 changes to: (VARS RGPATCH037COMS) (FNS NC.AskUserResetWindow NC.AskUser)) (* Copyright (c) 1987 by Xerox Corporation. All rights reserved.) (PRETTYCOMPRINT RGPATCH037COMS) (RPAQQ RGPATCH037COMS ((* * rg 5/1/87 fixes bug that caused Exec window process to be set to NIL) (* * changes to NCUTILITIES) (FNS NC.AskUser NC.AskUserResetWindow))) (* * rg 5/1/87 fixes bug that caused Exec window process to be set to NIL) (* * changes to NCUTILITIES) (DEFINEQ (NC.AskUser [LAMBDA (Msg Prompt FirstTry ClearFirstFlg MainWindow DontCloseAtEndFlg DontClearAtEndFlg PROMPTFORWORDFlg) (* Randy.Gobbel " 1-May-87 18:29") (* Get a response from the user - using the promptwindow attached to MainWindow) (* * rht 9/16/84: Added DontClearAtEndFlg which if non-nil prevents the call to NC.ClearMsg.) (* * rht 5/22/85: Now uses TTYIN instead of PROMPTFORWORD so that people can edit their answer.) (* * rht 5/30/85: Added PROMPTFORWORDFlg so callers doing yes/no questions can get old style PROMPTFORWORD functionality.) (* * rht 8/6/85: Wrapped TTYIN with NLSETQ so wouldn't break if CR inadvertantly inserted in string.) (* * fgh 5/22/86 Added handling of COPYBYBKSYSBUF so that user can shift select into prompt windows being called from TEdit main windows.) (* * fgh 6/27/86 Added ERROR! is problems under TTYIN NLSETQ. Allows other process to kill the askuser process.) (* * rg 5/1/87 fixed problem that sometimes caused Exec window's process to get smashed) (LET (AskWindow TextObj) (RESETLST (* * If MainWindow is a TEdit window, make sur we can shift select into the prompt window.) (RESETSAVE (SETQ AskWindow (NC.PrintMsg MainWindow ClearFirstFlg Msg)) (BQUOTE (NC.AskUserResetWindow , AskWindow , MainWindow , DontClearAtEndFlg , DontCloseAtEndFlg))) (RESETSAVE (TTY.PROCESS (THIS.PROCESS))) [if (SETQ TextObj (WINDOWPROP MainWindow (QUOTE TEXTOBJ))) then (RESETSAVE (TEXTPROP TextObj (QUOTE COPYBYBKSYSBUF) T) (BQUOTE (TEXTPROP , TextObj COPYBYBKSYSBUF , (TEXTPROP TextObj (QUOTE COPYBYBKSYSBUF] (* * Go ahead and ask) (PROG1 (if PROMPTFORWORDFlg then (TTY.PROCESS (THIS.PROCESS)) (PROMPTFORWORD Prompt FirstTry "To type a ?, type CTRL-V followed by a ?." AskWindow NIL NIL (CHARCODE (EOL))) else (RESETFORM (TTYDISPLAYSTREAM AskWindow) (CAR (OR [NLSETQ (TTYIN (MKLIST (OR Prompt "") ) NIL NIL (QUOTE (STRING NORAISE)) NIL NIL (AND FirstTry (LIST FirstTry] (ERROR!]) (NC.AskUserResetWindow [LAMBDA (AskWindow MainWindow DontClearAtEndFlg DontCloseAtEndFlg) (* Randy.Gobbel " 1-May-87 18:26") (* * called from RESETRESTORE to blow away prompt window, unless flags tell us not to) (* * rg 3/6/87 created) (* * rg 5/1/87 now check AskWindow non-nil so we don't accidentally smash the Exec window) (* * Setting the PromptWindow PROCESS to NIL is to break a circularity caused by TEXTOBJ -> PROMPTWINDOW -> PROCESS -> TEXTSTREAM -> TEXTOBJ) (AND AskWindow (WINDOWPROP AskWindow (QUOTE PROCESS) NIL)) (OR DontClearAtEndFlg (NC.ClearMsg MainWindow (NULL DontCloseAtEndFlg]) ) (PUTPROPS RGPATCH037 COPYRIGHT ("Xerox Corporation" 1987)) (DECLARE: DONTCOPY (FILEMAP (NIL (572 4006 (NC.AskUser 582 . 3218) (NC.AskUserResetWindow 3220 . 4004))))) STOP