mirror of
git://sourceware.org/git/glibc.git
synced 2024-11-27 03:41:23 +08:00
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>
|
||||
|
||||
* 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.
|
||||
* Formatted Input:: @code{scanf} and related functions.
|
||||
* 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
|
||||
and binary files.
|
||||
* 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.
|
||||
@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 ISO
|
||||
@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
|
||||
@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
|
||||
@section Text and Binary Streams
|
||||
|
||||
|
@ -2950,8 +2950,7 @@ regex_compile (pattern, size, syntax, bufp)
|
||||
if (!(syntax & RE_INTERVALS)
|
||||
/* If we're at `\{' and it's not the open-interval
|
||||
operator. */
|
||||
|| ((syntax & RE_INTERVALS) && (syntax & RE_NO_BK_BRACES))
|
||||
|| (p - 2 == pattern && p == pend))
|
||||
|| (syntax & RE_NO_BK_BRACES))
|
||||
goto normal_backslash;
|
||||
|
||||
handle_interval:
|
||||
|
Loading…
Reference in New Issue
Block a user