Correct values for INTFAST_MIN, INTFAST_MAX, and UINTFAST_MAX.
[kopensolaris-gnu/glibc.git] / manual / setjmp.texi
index 2f6596e..b8e7a45 100644 (file)
@@ -48,18 +48,18 @@ You identify return points for non-local exits calling the function
 environment in which the call to @code{setjmp} appears in an object of
 type @code{jmp_buf}.  Execution of the program continues normally after
 the call to @code{setjmp}, but if a exit is later made to this return
-point by calling @code{longjmp} with the corresponding @code{jmp_buf}
+point by calling @code{longjmp} with the corresponding @w{@code{jmp_buf}}
 object, control is transferred back to the point where @code{setjmp} was
 called.  The return value from @code{setjmp} is used to distinguish
 between an ordinary return and a return made by a call to
 @code{longjmp}, so calls to @code{setjmp} usually appear in an @samp{if}
 statement.
 
-Here is how the example program described above might be set up:  
+Here is how the example program described above might be set up:
 
-@example
+@smallexample
 @include setjmp.c.texi
-@end example
+@end smallexample
 
 The function @code{abort_to_main_loop} causes an immediate transfer of
 control back to the main loop of the program, no matter where it is
@@ -74,16 +74,17 @@ mysterious at first, but it is actually a common idiom with
 to @code{setjmp} in @code{main} were returning a second time with a value
 of @code{-1}.
 
+@need 250
 So, the general pattern for using @code{setjmp} looks something like:
 
-@example
+@smallexample
 if (setjmp (@var{buffer}))
   /* @r{Code to clean up after premature return.} */
   @dots{}
 else
   /* @r{Code to be executed normally after setting up the return point.} */
   @dots{}
-@end example
+@end smallexample
 
 @node Non-Local Details, Non-Local Exits and Signals, Non-Local Intro, Non-Local Exits
 @section Details of Non-Local Exits
@@ -94,7 +95,7 @@ performing non-local exits.  These facilities are declared in
 @pindex setjmp.h
 
 @comment setjmp.h
-@comment ANSI
+@comment ISO
 @deftp {Data Type} jmp_buf
 Objects of type @code{jmp_buf} hold the state information to
 be restored by a non-local exit.  The contents of a @code{jmp_buf}
@@ -102,17 +103,17 @@ identify a specific place to return to.
 @end deftp
 
 @comment setjmp.h
-@comment ANSI
-@deftypefun int setjmp (jmp_buf @var{state})
+@comment ISO
+@deftypefn Macro int setjmp (jmp_buf @var{state})
 When called normally, @code{setjmp} stores information about the
 execution state of the program in @var{state} and returns zero.  If
 @code{longjmp} is later used to perform a non-local exit to this
 @var{state}, @code{setjmp} returns a nonzero value.
-@end deftypefun
+@end deftypefn
 
 @comment setjmp.h
-@comment ANSI
-@deftypefun void longjmp (jmp_buf @var{state}, int @var{value}) 
+@comment ISO
+@deftypefun void longjmp (jmp_buf @var{state}, int @var{value})
 This function restores current execution to the state saved in
 @var{state}, and continues execution from the call to @code{setjmp} that
 established that return point.  Returning from @code{setjmp} by means of
@@ -127,15 +128,15 @@ present because non-local exits require a fair amount of magic on the
 part of the C compiler and can interact with other parts of the language
 in strange ways.
 
-The @code{setjmp} function may be implemented as a macro without an
-actual function definition, so you shouldn't try to @samp{#undef} it or
-take its address.  In addition, calls to @code{setjmp} are safe in only
-the following contexts:
+The @code{setjmp} function is actually a macro without an actual
+function definition, so you shouldn't try to @samp{#undef} it or take
+its address.  In addition, calls to @code{setjmp} are safe in only the
+following contexts:
 
 @itemize @bullet
 @item
 As the test expression of a selection or iteration
-statement (such as @samp{if} or @samp{while}).
+statement (such as @samp{if}, @samp{switch}, or @samp{while}).
 
 @item
 As one operand of a equality or comparison operator that appears as the
@@ -205,6 +206,7 @@ of blocked signals is saved in @var{state} and will be restored if a
 @comment POSIX.1
 @deftypefun void siglongjmp (sigjmp_buf @var{state}, int @var{value})
 This is similar to @code{longjmp} except for the type of its @var{state}
-argument.
+argument.  If the @code{sigsetjmp} call that set this @var{state} used a
+nonzero @var{savesigs} flag, @code{siglongjmp} also restores the set of
+blocked signals.
 @end deftypefun
-