[ Obsolete | Reference Manual | Alphabetic Index ]

get_prompt(+InStream, -Prompt, -OutStream)

Succeeds if the prompt for the stream InStream is Prompt and is written to the stream OutStream.
InStream
Integer (stream number) or Atom (reserved or user-defined symbolic stream name).
Prompt
String, atom or variable.
OutStream
Variable,Integer or Atom.

This built-in predicate is obsolete!

Description

Used to get the prompt Prompt of the input stream InStream which is output to the stream OutStream.

When new data is to be read from an input stream, the system prints on the specified output stream a prompt, to notify the user.

InStream (and OutStream, when instantiated) can be a symbolic stream name (atom) or a physical stream number (integer). InStream must be an existing stream open in read or update mode. OutStream must be open in write or update mode.

Note that the prompt for toplevel-input printed by the system at the end of each query is made using the predicate toplevel-prompt/1 and not by using the string set by set_prompt/3.

Modes and Determinism

Exceptions

(4) instantiation fault
InStream is not instantiated.
(5) type error
Either InStream or OutStream (or both) is instantiated, but is neither an atom nor an integer.
(5) type error
Prompt is instantiated, but to neither an atom nor a string.
(192) illegal stream mode
InStream is not an input stream.
(192) illegal stream mode
OutStream is not an output stream.
(193) illegal stream specification
Either InStream or OutStream is an illegal stream specification (e.g. does not exist).

Examples

Success:
    [eclipse]: get_prompt(debug_input,_,input),% find where the
                                             % prompt is output;
    > set_prompt(debug_input,"> ",input).    % change it
    yes.                                     % destructively.

    [eclipse]: read(X).
    > a.
    X = a
    yes.
    [eclipse]: get_prompt(input, Old, Out),
    > set_prompt(input, "Enter a term: ", Out), read(X).
    Enter a term: a.
    Old = "> "
    Out = 1
    X = a
    yes.

    [eclipse]: get_stream(debug_input,S), % debug input prompt
    > set_prompt(S, " DEBUG: ", 1).
    S = 3
    yes.
    [eclipse]: trace.
    yes.
    [eclipse]: atom_string(atom, String).
    B (1) 0  CALL   atom_string(atom, _g52) DEBUG: creep
    B (1) 0  EXIT   atom_string(atom, "atom") DEBUG: creep
    String = "atom"
    yes.

Fail:
    get_prompt(0,"",S).

Error:
    get_prompt(I, "p", Stream).  (Error 4).
    get_prompt(0, Prompt, "5").  (Error 5).
    get_prompt(1, Prompt, 2).    (Error 192). % 1 in write mode
    get_prompt(0, Prompt, 30).   (Error 193). % no such stream



See Also

set_prompt / 3, get_stream_info / 3