mirror of
https://github.com/lcn2/calc.git
synced 2025-08-19 01:13:27 +03:00
improve calc error code system
Changed calc_errno a global int variable so that is may be directly accessed by libcalc users. Further improve help files for help/errno, help/error, help/newerror, help/stoponerror and help/strerror by adding to documentation of the calc error code system as well as libcalc interface where applicable.
This commit is contained in:
50
help/errno
50
help/errno
@@ -5,19 +5,35 @@ SYNOPSIS
|
||||
errno([errnum])
|
||||
|
||||
TYPES
|
||||
errnum integer, 0 <= errnum <= 32767
|
||||
errnum integer
|
||||
|
||||
return integer
|
||||
|
||||
DESCRIPTION
|
||||
|
||||
Whenever an operation or evaluation of function returns an error-value,
|
||||
the numerical code for that value is stored as calc_errno.
|
||||
the numerical code for that value is stored as "global calc_errno value".
|
||||
|
||||
errno() returns the current value of calc_errno.
|
||||
The term "global calc_errno value" is an internal calc state.
|
||||
This is NOT a calc variable called calc_errno.
|
||||
|
||||
errno(errnum) sets calc_errno to the value errnum and returns its
|
||||
previous value.
|
||||
NOTE:
|
||||
|
||||
The errno() builtin should not be confused with the errno
|
||||
used by libc in C. The range of errnum extend beyond the
|
||||
C's libc errno. See help error for information on the mean
|
||||
of various errnum ranges.
|
||||
|
||||
Unlike error() calling errno() does NOT increment the global
|
||||
calc error count (see help errcount).
|
||||
|
||||
errno() returns the current value of "global calc_errno value".
|
||||
Unlike error() calling errno() does NOT increment the global
|
||||
calc error count (see help errcount).
|
||||
|
||||
errno(errnum) sets "global calc_errno value" to the value errnum
|
||||
and returns its previous value. Unlike error(errnum) calling
|
||||
errno(errnum) does NOT increment the global calc error count
|
||||
(see help errcount).
|
||||
|
||||
To detect whether an error occurs during some sequence of operations,
|
||||
one may immediately before that sequence set the stored error-number
|
||||
@@ -34,29 +50,29 @@ DESCRIPTION
|
||||
EXAMPLE
|
||||
; ## Assuming there is no file with name "not_a_file"
|
||||
|
||||
; errno(0)
|
||||
0
|
||||
; errmax(errcount()+4)
|
||||
20
|
||||
; errcount(0),; errmax(20),;
|
||||
; print errcount(), errmax()
|
||||
0 20
|
||||
|
||||
; badfile = fopen("not_a_file", "r")
|
||||
; print errno(), error(), strerror()
|
||||
2 System error 2 No such file or directory
|
||||
; print errcount(), errno(), strerror()
|
||||
1 2 No such file or directory
|
||||
|
||||
; a = 1/0
|
||||
; print errno(), error(), strerror()
|
||||
10001 Error 10001 Division by zero
|
||||
; print errcount(), errno(), strerror()
|
||||
2 10001 Division by zero
|
||||
|
||||
LIMITS
|
||||
none
|
||||
0 <= errnum <= 32767
|
||||
|
||||
LINK LIBRARY
|
||||
none
|
||||
int calc_errno; /* global calc_errno value */
|
||||
|
||||
SEE ALSO
|
||||
errmax, errcount, error, strerror, iserror, newerror, errorcodes,
|
||||
stoponerror
|
||||
|
||||
## Copyright (C) 1999-2006,2021 Landon Curt Noll
|
||||
## Copyright (C) 1999-2006,2021,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
|
||||
|
Reference in New Issue
Block a user