Add test case for declarations in manual.

This commit is contained in:
Roland McGrath 2013-02-11 14:02:54 -08:00
parent eb66fd21bf
commit 973356198d
11 changed files with 229 additions and 41 deletions

View File

@ -1,3 +1,35 @@
2013-02-11 Roland McGrath <roland@hack.frob.com>
* manual/summary.awk: Print "@c FILE LINENO FLAVOR" lines between the
sort key comment and the @item. Grok "(optional)" final token on
header @comment lines and put it on the leading @comment in output.
* manual/conf.texi (General Limits): Add (optional) for ARG_MAX,
CHILD_MAX, OPEN_MAX, STREAM_MAX, TZNAME_MAX.
(Utility Limits): Likewise for EQUIV_CLASS_MAX.
(Limits for Files): Likewise for LINK_MAX.
* manual/terminal.texi (Local Modes): Likewise for ALTWERASE and
NOKERNINFO.
(Control Modes): Likewise for CCTS_OFLOW, CRTS_IFLOW, MDMBUF, CIGNORE.
(Output Modes): Likewise for ONOEOT, OXTABS.
(Signal Characters): Likewise for VDSUSP.
(Other Special): Likewise for VSTATUS.
* manual/errno.texi (Error Codes): Likewise for EAUTH, ENEEDAUTH,
EBACKGROUND, EDIED, ED, EGREGIOUS, EIEIO, EGRATUITOUS, EBADRPC,
ERPCMISMATCH, EPROGUNAVAIL, EPROGMISMATCH, EPROCUNAVAIL, EFTYPE,
EPROCLIM.
* manual/time.texi (Processor Time): Likewise for CLK_TCK.
* manual/llio.texi (Access Modes): Likewise for O_READ, O_WRITE, O_EXEC.
(Open-time Flags): Likewise for O_SHLOCK, O_EXLOCK, O_IGNORE_CTTY,
O_NOLINK, O_NOTRANS.
* manual/signal.texi (Program Error Signals): Likewise for SIGEMT.
(Miscellaneous Signals): Likewise for SIGINFO.
(Operation Error Signals): Likewise for SIGLOST.
* manual/summary-check.awk: New file.
* manual/Makefile ($(objpfx)summary-check.c): New target.
(tests): New variable.
* include/sys/auxv.h: New file.
2013-03-19 Adhemerval Zanella <azanella@linux.vnet.ibm.com> 2013-03-19 Adhemerval Zanella <azanella@linux.vnet.ibm.com>
[BZ #13889] [BZ #13889]

1
include/sys/auxv.h Normal file
View File

@ -0,0 +1 @@
#include <misc/sys/auxv.h>

View File

@ -47,6 +47,7 @@ add-chapters = $(wildcard $(foreach d, $(add-ons), ../$d/$d.texi))
appendices = lang.texi header.texi install.texi maint.texi platform.texi \ appendices = lang.texi header.texi install.texi maint.texi platform.texi \
contrib.texi contrib.texi
licenses = freemanuals.texi lgpl-2.1.texi fdl-1.3.texi licenses = freemanuals.texi lgpl-2.1.texi fdl-1.3.texi
tests = summary-check
-include $(objpfx)texis -include $(objpfx)texis
$(objpfx)texis: texis.awk $(chapters) $(add-chapters) $(appendices) $(licenses) $(objpfx)texis: texis.awk $(chapters) $(add-chapters) $(appendices) $(licenses)
@ -93,6 +94,10 @@ $(objpfx)stamp-summary: summary.awk $(filter-out $(objpfx)summary.texi, \
$(move-if-change) $(objpfx)summary-tmp $(objpfx)summary.texi $(move-if-change) $(objpfx)summary-tmp $(objpfx)summary.texi
touch $@ touch $@
$(objpfx)summary-check.c: summary-check.awk $(objpfx)summary.texi
$(AWK) -f $^ > $@.new
mv -f $@.new $@
# Generate a file which can be added to the `dir' content to provide direct # Generate a file which can be added to the `dir' content to provide direct
# access to the documentation of the function, variables, and other # access to the documentation of the function, variables, and other
# definitions. # definitions.

View File

@ -56,7 +56,7 @@ with @samp{_POSIX}, which gives the lowest value that the limit is
allowed to have on @emph{any} POSIX system. @xref{Minimums}. allowed to have on @emph{any} POSIX system. @xref{Minimums}.
@cindex limits, program argument size @cindex limits, program argument size
@comment limits.h @comment limits.h (optional)
@comment POSIX.1 @comment POSIX.1
@deftypevr Macro int ARG_MAX @deftypevr Macro int ARG_MAX
If defined, the unvarying maximum combined length of the @var{argv} and If defined, the unvarying maximum combined length of the @var{argv} and
@ -64,7 +64,7 @@ If defined, the unvarying maximum combined length of the @var{argv} and
@end deftypevr @end deftypevr
@cindex limits, number of processes @cindex limits, number of processes
@comment limits.h @comment limits.h (optional)
@comment POSIX.1 @comment POSIX.1
@deftypevr Macro int CHILD_MAX @deftypevr Macro int CHILD_MAX
If defined, the unvarying maximum number of processes that can exist If defined, the unvarying maximum number of processes that can exist
@ -74,7 +74,7 @@ Resources}.
@end deftypevr @end deftypevr
@cindex limits, number of open files @cindex limits, number of open files
@comment limits.h @comment limits.h (optional)
@comment POSIX.1 @comment POSIX.1
@deftypevr Macro int OPEN_MAX @deftypevr Macro int OPEN_MAX
If defined, the unvarying maximum number of files that a single process If defined, the unvarying maximum number of files that a single process
@ -82,7 +82,7 @@ can have open simultaneously. In BSD and GNU, this is controlled
by the @code{RLIMIT_NOFILE} resource limit; @pxref{Limits on Resources}. by the @code{RLIMIT_NOFILE} resource limit; @pxref{Limits on Resources}.
@end deftypevr @end deftypevr
@comment limits.h @comment limits.h (optional)
@comment POSIX.1 @comment POSIX.1
@deftypevr Macro int STREAM_MAX @deftypevr Macro int STREAM_MAX
If defined, the unvarying maximum number of streams that a single If defined, the unvarying maximum number of streams that a single
@ -90,7 +90,7 @@ process can have open simultaneously. @xref{Opening Streams}.
@end deftypevr @end deftypevr
@cindex limits, time zone name length @cindex limits, time zone name length
@comment limits.h @comment limits.h (optional)
@comment POSIX.1 @comment POSIX.1
@deftypevr Macro int TZNAME_MAX @deftypevr Macro int TZNAME_MAX
If defined, the unvarying maximum length of a time zone name. If defined, the unvarying maximum length of a time zone name.
@ -1539,7 +1539,7 @@ there is no actual limit except that imposed by the available virtual
memory, but there is no way that the library can tell you this.) memory, but there is no way that the library can tell you this.)
@end deftypevr @end deftypevr
@comment limits.h @comment limits.h (optional)
@comment POSIX.2 @comment POSIX.2
@deftypevr Macro int EQUIV_CLASS_MAX @deftypevr Macro int EQUIV_CLASS_MAX
The maximum number of weights that can be assigned to an entry of the The maximum number of weights that can be assigned to an entry of the

View File

@ -714,7 +714,7 @@ Directory not empty, where an empty directory was expected. Typically,
this error occurs when you are trying to delete a directory. this error occurs when you are trying to delete a directory.
@end deftypevr @end deftypevr
@comment errno.h @comment errno.h (optional)
@comment BSD: Too many processes @comment BSD: Too many processes
@deftypevr Macro int EPROCLIM @deftypevr Macro int EPROCLIM
@comment errno 67 @c DO NOT REMOVE @comment errno 67 @c DO NOT REMOVE
@ -758,35 +758,35 @@ already specifies an NFS-mounted file.
properly on @gnuhurdsystems{}, making this error code impossible.) properly on @gnuhurdsystems{}, making this error code impossible.)
@end deftypevr @end deftypevr
@comment errno.h @comment errno.h (optional)
@comment BSD: RPC struct is bad @comment BSD: RPC struct is bad
@deftypevr Macro int EBADRPC @deftypevr Macro int EBADRPC
@comment errno 72 @c DO NOT REMOVE @comment errno 72 @c DO NOT REMOVE
??? ???
@end deftypevr @end deftypevr
@comment errno.h @comment errno.h (optional)
@comment BSD: RPC version wrong @comment BSD: RPC version wrong
@deftypevr Macro int ERPCMISMATCH @deftypevr Macro int ERPCMISMATCH
@comment errno 73 @c DO NOT REMOVE @comment errno 73 @c DO NOT REMOVE
??? ???
@end deftypevr @end deftypevr
@comment errno.h @comment errno.h (optional)
@comment BSD: RPC program not available @comment BSD: RPC program not available
@deftypevr Macro int EPROGUNAVAIL @deftypevr Macro int EPROGUNAVAIL
@comment errno 74 @c DO NOT REMOVE @comment errno 74 @c DO NOT REMOVE
??? ???
@end deftypevr @end deftypevr
@comment errno.h @comment errno.h (optional)
@comment BSD: RPC program version wrong @comment BSD: RPC program version wrong
@deftypevr Macro int EPROGMISMATCH @deftypevr Macro int EPROGMISMATCH
@comment errno 75 @c DO NOT REMOVE @comment errno 75 @c DO NOT REMOVE
??? ???
@end deftypevr @end deftypevr
@comment errno.h @comment errno.h (optional)
@comment BSD: RPC bad procedure for program @comment BSD: RPC bad procedure for program
@deftypevr Macro int EPROCUNAVAIL @deftypevr Macro int EPROCUNAVAIL
@comment errno 76 @c DO NOT REMOVE @comment errno 76 @c DO NOT REMOVE
@ -803,7 +803,7 @@ it can result from an operation to an NFS server running another
operating system. operating system.
@end deftypevr @end deftypevr
@comment errno.h @comment errno.h (optional)
@comment BSD: Inappropriate file type or format @comment BSD: Inappropriate file type or format
@deftypevr Macro int EFTYPE @deftypevr Macro int EFTYPE
@comment errno 79 @c DO NOT REMOVE @comment errno 79 @c DO NOT REMOVE
@ -814,14 +814,14 @@ On some systems @code{chmod} returns this error if you try to set the
sticky bit on a non-directory file; @pxref{Setting Permissions}. sticky bit on a non-directory file; @pxref{Setting Permissions}.
@end deftypevr @end deftypevr
@comment errno.h @comment errno.h (optional)
@comment BSD: Authentication error @comment BSD: Authentication error
@deftypevr Macro int EAUTH @deftypevr Macro int EAUTH
@comment errno 80 @c DO NOT REMOVE @comment errno 80 @c DO NOT REMOVE
??? ???
@end deftypevr @end deftypevr
@comment errno.h @comment errno.h (optional)
@comment BSD: Need authenticator @comment BSD: Need authenticator
@deftypevr Macro int ENEEDAUTH @deftypevr Macro int ENEEDAUTH
@comment errno 81 @c DO NOT REMOVE @comment errno 81 @c DO NOT REMOVE
@ -865,7 +865,7 @@ While decoding a multibyte character the function came along an invalid
or an incomplete sequence of bytes or the given wide character is invalid. or an incomplete sequence of bytes or the given wide character is invalid.
@end deftypevr @end deftypevr
@comment errno.h @comment errno.h (optional)
@comment GNU: Inappropriate operation for background process @comment GNU: Inappropriate operation for background process
@deftypevr Macro int EBACKGROUND @deftypevr Macro int EBACKGROUND
@comment errno 100 @c DO NOT REMOVE @comment errno 100 @c DO NOT REMOVE
@ -877,7 +877,7 @@ it into a @code{SIGTTIN} or @code{SIGTTOU} signal. @xref{Job Control},
for information on process groups and these signals. for information on process groups and these signals.
@end deftypevr @end deftypevr
@comment errno.h @comment errno.h (optional)
@comment GNU: Translator died @comment GNU: Translator died
@deftypevr Macro int EDIED @deftypevr Macro int EDIED
@comment errno 101 @c DO NOT REMOVE @comment errno 101 @c DO NOT REMOVE
@ -886,7 +886,7 @@ translated by a program and the translator program dies while starting
up, before it has connected to the file. up, before it has connected to the file.
@end deftypevr @end deftypevr
@comment errno.h @comment errno.h (optional)
@comment GNU: ? @comment GNU: ?
@deftypevr Macro int ED @deftypevr Macro int ED
@comment errno 102 @c DO NOT REMOVE @comment errno 102 @c DO NOT REMOVE
@ -895,21 +895,21 @@ The experienced user will know what is wrong.
@c Don't change it. @c Don't change it.
@end deftypevr @end deftypevr
@comment errno.h @comment errno.h (optional)
@comment GNU: You really blew it this time @comment GNU: You really blew it this time
@deftypevr Macro int EGREGIOUS @deftypevr Macro int EGREGIOUS
@comment errno 103 @c DO NOT REMOVE @comment errno 103 @c DO NOT REMOVE
You did @strong{what}? You did @strong{what}?
@end deftypevr @end deftypevr
@comment errno.h @comment errno.h (optional)
@comment GNU: Computer bought the farm @comment GNU: Computer bought the farm
@deftypevr Macro int EIEIO @deftypevr Macro int EIEIO
@comment errno 104 @c DO NOT REMOVE @comment errno 104 @c DO NOT REMOVE
Go home and have a glass of warm, dairy-fresh milk. Go home and have a glass of warm, dairy-fresh milk.
@end deftypevr @end deftypevr
@comment errno.h @comment errno.h (optional)
@comment GNU: Gratuitous error @comment GNU: Gratuitous error
@deftypevr Macro int EGRATUITOUS @deftypevr Macro int EGRATUITOUS
@comment errno 105 @c DO NOT REMOVE @comment errno 105 @c DO NOT REMOVE

View File

@ -446,9 +446,9 @@ probably only see @code{SIGTRAP} if it is somehow executing bad
instructions. instructions.
@end deftypevr @end deftypevr
@comment signal.h @comment signal.h (optional)
@comment BSD @comment BSD
@deftypevr Macro int SIGEMT @deftypevr Macro int SIGEMT
Emulator trap; this results from certain unimplemented instructions Emulator trap; this results from certain unimplemented instructions
which might be emulated in software, or the operating system's which might be emulated in software, or the operating system's
failure to properly emulate them. failure to properly emulate them.
@ -456,7 +456,7 @@ failure to properly emulate them.
@comment signal.h @comment signal.h
@comment Unix @comment Unix
@deftypevr Macro int SIGSYS @deftypevr Macro int SIGSYS
Bad system call; that is to say, the instruction to trap to the Bad system call; that is to say, the instruction to trap to the
operating system was executed, but the code number for the system call operating system was executed, but the code number for the system call
to perform was invalid. to perform was invalid.
@ -798,7 +798,7 @@ Another cause of @code{SIGPIPE} is when you try to output to a socket
that isn't connected. @xref{Sending Data}. that isn't connected. @xref{Sending Data}.
@end deftypevr @end deftypevr
@comment signal.h @comment signal.h (optional)
@comment GNU @comment GNU
@deftypevr Macro int SIGLOST @deftypevr Macro int SIGLOST
@cindex lost resource signal @cindex lost resource signal
@ -861,7 +861,7 @@ When the signal arrives, it should fetch the new screen size and
reformat its display accordingly. reformat its display accordingly.
@end deftypevr @end deftypevr
@comment signal.h @comment signal.h (optional)
@comment BSD @comment BSD
@deftypevr Macro int SIGINFO @deftypevr Macro int SIGINFO
Information request. On 4.4 BSD and @gnuhurdsystems{}, this signal is sent Information request. On 4.4 BSD and @gnuhurdsystems{}, this signal is sent

View File

@ -5053,26 +5053,26 @@ otherwise.
@comment stdio.h @comment stdio.h
@comment GNU @comment GNU
@deftp {Data Type} cookie_read_function @deftp {Data Type} cookie_read_function_t
This is the data type that the read function for a custom stream should have. This is the data type that the read function for a custom stream should have.
If you declare the function as shown above, this is the type it will have. If you declare the function as shown above, this is the type it will have.
@end deftp @end deftp
@comment stdio.h @comment stdio.h
@comment GNU @comment GNU
@deftp {Data Type} cookie_write_function @deftp {Data Type} cookie_write_function_t
The data type of the write function for a custom stream. The data type of the write function for a custom stream.
@end deftp @end deftp
@comment stdio.h @comment stdio.h
@comment GNU @comment GNU
@deftp {Data Type} cookie_seek_function @deftp {Data Type} cookie_seek_function_t
The data type of the seek function for a custom stream. The data type of the seek function for a custom stream.
@end deftp @end deftp
@comment stdio.h @comment stdio.h
@comment GNU @comment GNU
@deftp {Data Type} cookie_close_function @deftp {Data Type} cookie_close_function_t
The data type of the close function for a custom stream. The data type of the close function for a custom stream.
@end deftp @end deftp

139
manual/summary-check.awk Normal file
View File

@ -0,0 +1,139 @@
# awk script to create a C file from summary.texinfo
# Copyright (C) 2013 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
# The GNU C Library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
# The GNU C Library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
# <http://www.gnu.org/licenses/>.
# This script groks the summary.texi (summary.awk output) format.
# It produces a compilable C file attempts to refer to each declaration
# in summary.texi so as to verify that the types in the manual match the
# types in the code.
BEGIN {
wraps["@w{"] = 1;
wraps["@t{"] = 1;
wraps["@emph{"] = 1;
print "/* This file is generated by summary-check.awk; DO NOT EDIT! */";
print "";
}
NF == 2 && $1 == "@comment" {
ident = $2;
optional = 0;
next
}
NF == 3 && $1 == "@comment" && $3 = "(optional)" {
ident = $2;
optional = 1;
next
}
NF >= 4 && $1 == "@c" {
source = $2;
lineno = $3;
flavor = $4;
for (i = 5; i <= NF; ++i)
flavor = flavor " " $i;
next
}
$1 == "@item" {
$1 = "";
gsub(/@var{[^}]+}/, "");
gsub(/@dots{}/, "...");
gsub(/@\*/, " ");
decl = $0 ";";
for (wrap in wraps) {
len = length(wrap);
while ((first = match(decl, wrap)) > 0) {
depth = 1;
for (i = first + len; i < length(decl); ++i) {
c = substr(decl, i, 1);
if (c == "{") ++depth;
else if (c == "}" && --depth == 0) {
left = substr(decl, 1, first - 1);
middle = substr(decl, first + len, i - (first + len));
right = substr(decl, i + 1);
decl = left middle right;
break;
}
}
}
}
sub(/\.\.\.,.+);/, "...);", decl); # execle
sub(/\[,[^],]+\]/, ", ...", decl); # open
next
}
/^@file{/ {
gsub(/[^a-zA-Z0-9_]/, "", ident);
undef = 1;
if (flavor ~ /@defvrx?/) {
# These are used for feature-test macros. There is nothing we can test.
next;
}
if (flavor ~ /@itemx?/ || flavor == "@vindex") {
# These are used for macros, but we have no type information.
next;
}
if (flavor == "@defvar") {
# These are used for variables, but we have no type information.
next;
}
if (flavor == "@defmac") {
# These are used for function-like macros, but we have no type information.
next;
}
if (flavor ~ /^@deftypevrx? {Data type}$/ || flavor == "@deftp") {
# This is a type. We can just test that it's usable.
decl = "extern " ident " test_" ident ";";
}
else if (flavor ~ /^@deftypevrx?/) {
# These are used for macros.
sub(ident, "test_" ident " (void) { return " ident "; }", decl);
undef = 0
}
if (decl ~ /float-type/ || decl ~ /real-floating/) {
# Special case: these are function-like macros that
# cannot be redeclared. There isn't a simple way to test.
next
}
if (ident in seen)
next;
seen[ident] = 1
gsub(/,/, "");
for (i = 1; i <= NF && $i ~ /@file{[^}]+}/; ++i) {
header = gensub(/@file{([^}]+)}/, "\\1", 1, $i);
print "#include", "<" header ">";
}
if (optional)
print "#ifdef", ident;
else if (undef)
print "#undef", ident;
print "#", lineno, "\"" source "\"";
print decl;
if (optional)
print "#endif", "/*", ident, "*/";
}
END {
print "";
print "int main (void)";
print "{";
print " return 0;";
print "}";
}

View File

@ -88,17 +88,22 @@ $1 == "@node" { node=$2;
} }
$1 == "@comment" && $2 ~ /\.h$/ { header="@file{" $2 "}"; $1 == "@comment" && $2 ~ /\.h$/ { header="@file{" $2 "}";
optional = 0;
if ($NF == "(optional)") {
optional = 1;
--NF;
}
for (i = 3; i <= NF; ++i) for (i = 3; i <= NF; ++i)
header=header ", @file{" $i "}" header=header ", @file{" $i "}"
} }
$1 == "@comment" && $2 == "(none)" { header = -1; } $1 == "@comment" && $2 == "(none)" { header = -1; optional = 0; }
$1 == "@comment" && header != 0 { std=$2; $1 == "@comment" && header != 0 { std=$2;
for (i=3;i<=NF;++i) std=std " " $i } for (i=3;i<=NF;++i) std=std " " $i }
header != 0 && $1 ~ /@def|@item|@vindex/ \ header != 0 && $1 ~ /@def|@item|@vindex/ \
{ defn=""; name=""; curly=0; n=1; { defn=""; name=""; curly=0; n=1; flavor="";
for (i = 2; i <= NF; ++i) { for (i = 2; i <= NF; ++i) {
if ($i ~ /^{/ && $i !~ /}/) { if ($i ~ /^{/ && $i !~ /}/) {
curly=1 curly=1
@ -124,9 +129,15 @@ header != 0 && $1 ~ /@def|@item|@vindex/ \
name=word name=word
++n ++n
} }
if (flavor == "") {
flavor = $1;
if (flavor ~ /^@deftypevrx?/)
flavor = flavor " {" word "}";
}
} }
} }
printf "@comment %s%c", name, 12 # FF printf "@comment %s%s%c", name, optional ? " (optional)" : "", 12 # FF
printf "@c %s %d %s%c", FILENAME, FNR, flavor, 12
printf "@item%s%c%c", defn, 12, 12 printf "@item%s%c%c", defn, 12, 12
if (header != -1) printf "%s ", header; if (header != -1) printf "%s ", header;
printf "(%s): @ref{%s}.%c\n", std, node, 12; printf "(%s): @ref{%s}.%c\n", std, node, 12;

View File

@ -752,27 +752,27 @@ This specifies eight bits per byte.
The following four bits are BSD extensions; these exist only on BSD The following four bits are BSD extensions; these exist only on BSD
systems and @gnuhurdsystems{}. systems and @gnuhurdsystems{}.
@comment termios.h @comment termios.h (optional)
@comment BSD @comment BSD
@deftypevr Macro tcflag_t CCTS_OFLOW @deftypevr Macro tcflag_t CCTS_OFLOW
If this bit is set, enable flow control of output based on the CTS wire If this bit is set, enable flow control of output based on the CTS wire
(RS232 protocol). (RS232 protocol).
@end deftypevr @end deftypevr
@comment termios.h @comment termios.h (optional)
@comment BSD @comment BSD
@deftypevr Macro tcflag_t CRTS_IFLOW @deftypevr Macro tcflag_t CRTS_IFLOW
If this bit is set, enable flow control of input based on the RTS wire If this bit is set, enable flow control of input based on the RTS wire
(RS232 protocol). (RS232 protocol).
@end deftypevr @end deftypevr
@comment termios.h @comment termios.h (optional)
@comment BSD @comment BSD
@deftypevr Macro tcflag_t MDMBUF @deftypevr Macro tcflag_t MDMBUF
If this bit is set, enable carrier-based flow control of output. If this bit is set, enable carrier-based flow control of output.
@end deftypevr @end deftypevr
@comment termios.h @comment termios.h (optional)
@comment BSD @comment BSD
@deftypevr Macro tcflag_t CIGNORE @deftypevr Macro tcflag_t CIGNORE
If this bit is set, it says to ignore the control modes and line speed If this bit is set, it says to ignore the control modes and line speed
@ -940,7 +940,7 @@ attempt to write to the terminal. @xref{Access to the Terminal}.
The following bits are BSD extensions; they exist only on BSD systems The following bits are BSD extensions; they exist only on BSD systems
and @gnuhurdsystems{}. and @gnuhurdsystems{}.
@comment termios.h @comment termios.h (optional)
@comment BSD @comment BSD
@deftypevr Macro tcflag_t ALTWERASE @deftypevr Macro tcflag_t ALTWERASE
This bit determines how far the WERASE character should erase. The This bit determines how far the WERASE character should erase. The
@ -1394,7 +1394,7 @@ mechanism, the program should send a @code{SIGTSTP} signal to the
process group of the process, not just to the process itself. process group of the process, not just to the process itself.
@xref{Signaling Another Process}. @xref{Signaling Another Process}.
@comment termios.h @comment termios.h (optional)
@comment BSD @comment BSD
@deftypevr Macro int VDSUSP @deftypevr Macro int VDSUSP
@cindex DSUSP character @cindex DSUSP character
@ -1501,7 +1501,7 @@ output buffer. Typing any other character resets the flag.
This character is available on BSD systems and @gnulinuxhurdsystems{}. This character is available on BSD systems and @gnulinuxhurdsystems{}.
@end deftypevr @end deftypevr
@comment termios.h @comment termios.h (optional)
@comment BSD @comment BSD
@deftypevr Macro int VSTATUS @deftypevr Macro int VSTATUS
@cindex STATUS character @cindex STATUS character

View File

@ -300,7 +300,7 @@ these are the actual amounts of time; not relative to any event.
@xref{Creating a Process}. @xref{Creating a Process}.
@end deftp @end deftp
@comment time.h @comment time.h (optional)
@comment POSIX.1 @comment POSIX.1
@deftypevr Macro int CLK_TCK @deftypevr Macro int CLK_TCK
This is an obsolete name for the number of clock ticks per second. Use This is an obsolete name for the number of clock ticks per second. Use