mirror of
git://sourceware.org/git/glibc.git
synced 2025-02-17 13:00:43 +08:00
Add test case for declarations in manual.
This commit is contained in:
parent
eb66fd21bf
commit
973356198d
32
ChangeLog
32
ChangeLog
@ -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
1
include/sys/auxv.h
Normal file
@ -0,0 +1 @@
|
|||||||
|
#include <misc/sys/auxv.h>
|
@ -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.
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
@ -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
139
manual/summary-check.awk
Normal 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 "}";
|
||||||
|
}
|
@ -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;
|
||||||
|
@ -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
|
||||||
|
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user