Update.
2000-03-08 H.J. Lu <hjl@gnu.org> * posix/regex.c (regex_compile): Correctly handle "\{" when the RE_INTERVALS is set and the RE_NO_BK_BRACES bit is not set.
This commit is contained in:
parent
d879eb855c
commit
460e040a3f
|
@ -1,3 +1,8 @@
|
||||||
|
2000-03-08 H.J. Lu <hjl@gnu.org>
|
||||||
|
|
||||||
|
* posix/regex.c (regex_compile): Correctly handle "\{" when
|
||||||
|
the RE_INTERVALS is set and the RE_NO_BK_BRACES bit is not set.
|
||||||
|
|
||||||
2000-04-20 Ulrich Drepper <drepper@redhat.com>
|
2000-04-20 Ulrich Drepper <drepper@redhat.com>
|
||||||
|
|
||||||
* manual/stdio.texi: Give advise about handling error when using
|
* manual/stdio.texi: Give advise about handling error when using
|
||||||
|
|
|
@ -27,6 +27,7 @@ representing a communications channel to a file, device, or process.
|
||||||
@code{printf} and friends.
|
@code{printf} and friends.
|
||||||
* Formatted Input:: @code{scanf} and related functions.
|
* Formatted Input:: @code{scanf} and related functions.
|
||||||
* EOF and Errors:: How you can tell if an I/O error happens.
|
* EOF and Errors:: How you can tell if an I/O error happens.
|
||||||
|
* Error Recovery:: What you can do about errors.
|
||||||
* Binary Streams:: Some systems distinguish between text files
|
* Binary Streams:: Some systems distinguish between text files
|
||||||
and binary files.
|
and binary files.
|
||||||
* File Positioning:: About random-access streams.
|
* File Positioning:: About random-access streams.
|
||||||
|
@ -3053,16 +3054,6 @@ With the GNU library, @code{EOF} is @code{-1}. In other libraries, its
|
||||||
value may be some other negative number.
|
value may be some other negative number.
|
||||||
@end deftypevr
|
@end deftypevr
|
||||||
|
|
||||||
@comment stdio.h
|
|
||||||
@comment ISO
|
|
||||||
@deftypefun void clearerr (FILE *@var{stream})
|
|
||||||
This function clears the end-of-file and error indicators for the
|
|
||||||
stream @var{stream}.
|
|
||||||
|
|
||||||
The file positioning functions (@pxref{File Positioning}) also clear the
|
|
||||||
end-of-file indicator for the stream.
|
|
||||||
@end deftypefun
|
|
||||||
|
|
||||||
@comment stdio.h
|
@comment stdio.h
|
||||||
@comment ISO
|
@comment ISO
|
||||||
@deftypefun int feof (FILE *@var{stream})
|
@deftypefun int feof (FILE *@var{stream})
|
||||||
|
@ -3088,6 +3079,45 @@ conditions defined for @code{write} are meaningful for these functions.
|
||||||
For more information about the descriptor-level I/O functions, see
|
For more information about the descriptor-level I/O functions, see
|
||||||
@ref{Low-Level I/O}.
|
@ref{Low-Level I/O}.
|
||||||
|
|
||||||
|
@node Error Recovery
|
||||||
|
@section Recovering from errors
|
||||||
|
|
||||||
|
You may explicitly clear the error and EOF flags with the @code{clearerr}
|
||||||
|
function.
|
||||||
|
|
||||||
|
@comment stdio.h
|
||||||
|
@comment ISO
|
||||||
|
@deftypefun void clearerr (FILE *@var{stream})
|
||||||
|
This function clears the end-of-file and error indicators for the
|
||||||
|
stream @var{stream}.
|
||||||
|
|
||||||
|
The file positioning functions (@pxref{File Positioning}) also clear the
|
||||||
|
end-of-file indicator for the stream.
|
||||||
|
@end deftypefun
|
||||||
|
|
||||||
|
Note that it is @emph{not} correct to just clear the error flag and retry
|
||||||
|
a failed stream operation. After a failed write, any number of
|
||||||
|
characters since the last buffer flush may have been committed to the
|
||||||
|
file, while some buffered data may have been discarded. Merely retrying
|
||||||
|
can thus cause lost or repeated data.
|
||||||
|
|
||||||
|
A failed read may leave the file pointer in an inappropriate position for
|
||||||
|
a second try. In both cases, you should seek to a known position before
|
||||||
|
retrying.
|
||||||
|
|
||||||
|
Most errors that can happen are not recoverable --- a second try will
|
||||||
|
always fail again in the same way. So usually it is best to give up and
|
||||||
|
report the error to the user, rather than install complicated recovery
|
||||||
|
logic.
|
||||||
|
|
||||||
|
One important exception is @code{EINTR} (@pxref{Interrupted Primitives}).
|
||||||
|
Many stream I/O implementations will treat it as an ordinary error, which
|
||||||
|
can be quite inconvenient. You can avoid this hassle by installing all
|
||||||
|
signals with the @code{SA_RESTART} flag.
|
||||||
|
|
||||||
|
For similar reasons, setting nonblocking I/O on a stream's file
|
||||||
|
descriptor is not usually advisable.
|
||||||
|
|
||||||
@node Binary Streams
|
@node Binary Streams
|
||||||
@section Text and Binary Streams
|
@section Text and Binary Streams
|
||||||
|
|
||||||
|
|
|
@ -2950,8 +2950,7 @@ regex_compile (pattern, size, syntax, bufp)
|
||||||
if (!(syntax & RE_INTERVALS)
|
if (!(syntax & RE_INTERVALS)
|
||||||
/* If we're at `\{' and it's not the open-interval
|
/* If we're at `\{' and it's not the open-interval
|
||||||
operator. */
|
operator. */
|
||||||
|| ((syntax & RE_INTERVALS) && (syntax & RE_NO_BK_BRACES))
|
|| (syntax & RE_NO_BK_BRACES))
|
||||||
|| (p - 2 == pattern && p == pend))
|
|
||||||
goto normal_backslash;
|
goto normal_backslash;
|
||||||
|
|
||||||
handle_interval:
|
handle_interval:
|
||||||
|
|
Loading…
Reference in New Issue