mirror of
https://github.com/lcn2/calc.git
synced 2025-08-16 01:03:29 +03:00
Converted all ASCII tabs to ASCII spaces using a 8 character tab stop, for all files, except for all Makefiles (plus rpm.mk). The `git diff -w` reports no changes.
94 lines
2.7 KiB
Plaintext
94 lines
2.7 KiB
Plaintext
NAME
|
|
prompt - display a prompt and wait for input from terminal
|
|
|
|
SYNOPSIS
|
|
prompt(str)
|
|
|
|
TYPES
|
|
str string
|
|
|
|
return string
|
|
|
|
DESCRIPTION
|
|
When prompt(str) is called and input is from a terminal, the string
|
|
str is displayed and execution is halted until a newline ends a line
|
|
read from the input; the string formed by the characters in the line
|
|
(other than the newline) is returned as the value of prompt().
|
|
|
|
Be careful when using prompt(str) while calc is being used as a
|
|
shell script. Unless calc is run with the -p command line option,
|
|
the prompt builtin will fail and return null. This is because when
|
|
calc is running as a shell script, calc will close stdin run in in
|
|
a non-interactive mode.
|
|
|
|
The following shell script will always print "got null" because
|
|
stdin will be closed by calc during startup:
|
|
|
|
#!/usr/bin/calc -q -f
|
|
|
|
# The prompt will ALWAYS FAIL and return a null value
|
|
n = prompt("Test> ");
|
|
if (isnull(n)) {
|
|
print("got null");
|
|
} else {
|
|
print("got " + n);
|
|
}
|
|
|
|
However the following shell script (note the -p before the -f in
|
|
the 1st line) will be interactive, prompt with "Test> " and print
|
|
the "got" result as expected:
|
|
|
|
#!/usr/bin/calc -q -p -f
|
|
|
|
n = prompt("Test> ");
|
|
if (isnull(n)) {
|
|
print("got null");
|
|
} else {
|
|
print("got " + n);
|
|
}
|
|
|
|
|
|
EXAMPLE
|
|
; x = prompt("? ");
|
|
? 273
|
|
; x
|
|
"273"
|
|
|
|
; for (;;) {s = prompt("? "); if (s=="end") break; print "\t":eval(s)^2;}
|
|
? 3
|
|
9
|
|
? 2 + 3
|
|
25
|
|
? end
|
|
|
|
LIMITS
|
|
none
|
|
|
|
LINK LIBRARY
|
|
none
|
|
|
|
SEE ALSO
|
|
command, fgetfield, fgetline, fgetstr, unexpected
|
|
|
|
## Copyright (C) 1999,2006,2023 Landon Curt Noll
|
|
##
|
|
## Calc is open software; you can redistribute it and/or modify it under
|
|
## the terms of the version 2.1 of the GNU Lesser General Public License
|
|
## as published by the Free Software Foundation.
|
|
##
|
|
## Calc 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.
|
|
##
|
|
## A copy of version 2.1 of the GNU Lesser General Public License is
|
|
## distributed with calc under the filename COPYING-LGPL. You should have
|
|
## received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
##
|
|
## Under source code control: 1995/12/18 12:34:58
|
|
## File existed as early as: 1995
|
|
##
|
|
## chongo <was here> /\oo/\ http://www.isthe.com/chongo/
|
|
## Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/
|