From 09b4e527a008687a2fd90202b5e7b2f175d8ebed Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Mon, 12 Aug 2019 11:26:08 -0300 Subject: [PATCH] Detail in the manual (method 'file:setvbuf') ANSI C is vague about 'setvbuf'; most details are implementation defined. So, the manual cannot give any guaranties, either. --- manual/manual.of | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/manual/manual.of b/manual/manual.of index c1ee8eb7..ff27a7d4 100644 --- a/manual/manual.of +++ b/manual/manual.of @@ -8142,24 +8142,12 @@ end of the file, and returns its size. @LibEntry{file:setvbuf (mode [, size])| -Sets the buffering mode for an output file. +Sets the buffering mode for a file. There are three available modes: @description{ - -@item{@St{no}| -no buffering; the result of any output operation appears immediately. -} - -@item{@St{full}| -full buffering; output operation is performed only -when the buffer is full or when -you explicitly @T{flush} the file @seeF{io.flush}. -} - -@item{@St{line}| -line buffering; output is buffered until a newline is output -or there is any input from some special files -(such as a terminal device). +@item{@St{no}| no buffering.} +@item{@St{full}| full buffering.} +@item{@St{line}| line buffering.} } } @@ -8167,6 +8155,10 @@ For the last two cases, @id{size} is a hint for the size of the buffer, in bytes. The default is an appropriate size. +The specific behavior of each mode is non portable; +check the underlying @ANSI{setvbuf} in your platform for +more details. + } @LibEntry{file:write (@Cdots)|