aboutsummaryrefslogtreecommitdiff
path: root/manual
diff options
context:
space:
mode:
Diffstat (limited to 'manual')
-rw-r--r--manual/Makefile12
-rw-r--r--manual/users.texi2
-rw-r--r--manual/xtract-typefun.awk43
3 files changed, 35 insertions, 22 deletions
diff --git a/manual/Makefile b/manual/Makefile
index e4efe73..d4c33e6 100644
--- a/manual/Makefile
+++ b/manual/Makefile
@@ -21,8 +21,6 @@
subdir := manual
export subdir := $(subdir)
-# We need GNU awk for the xtract-typefun script.
-GAWK = gawk
# Allow override
INSTALL_INFO = install-info
@@ -62,7 +60,7 @@ chapters-incl := $(chapters-incl1) $(chapters-incl2)
define find-includes
(echo '$(@F) :=' \\ ;\
- awk '$$1 == "@include" { print $$2 " \\" }' $^) > $@.new
+ $(AWK) '$$1 == "@include" { print $$2 " \\" }' $^) > $@.new
mv -f $@.new $@
endef
@@ -78,7 +76,7 @@ libc.dvi: texinfo.tex
# Generate the summary from the Texinfo source files for each chapter.
summary.texi: stamp-summary ;
stamp-summary: summary.awk $(chapters) $(chapters-incl)
- awk -f $^ \
+ $(AWK) -f $^ \
| sort -df +1 -2 | tr '\014' '\012' > summary-tmp
./move-if-change summary-tmp summary.texi
# touch is broken on our machines. Sigh.
@@ -88,10 +86,10 @@ stamp-summary: summary.awk $(chapters) $(chapters-incl)
# access to the documentation of the function, variables, and other
# definitions.
dir-add.texinfo: xtract-typefun.awk $(chapters) $(chapters-incl)
- (echo "@dircategory GNU C library functions"; \
+ $(SHELL) -c '(echo "@dircategory GNU C library functions"; \
echo "@direntry"; \
- $(GAWK) -f $^ | sort; \
- echo "@end direntry";) > $@.new
+ $(AWK) -f $^; \
+ echo "@end direntry";)' > $@.new
mv -f $@.new $@
# Generate Texinfo files from the C source for the example programs.
diff --git a/manual/users.texi b/manual/users.texi
index 5ee2e64..d2b3b8d 100644
--- a/manual/users.texi
+++ b/manual/users.texi
@@ -289,7 +289,7 @@ include the header files @file{sys/types.h} and @file{unistd.h}.
@comment unistd.h
@comment POSIX.1
-@deftypefun int seteuid(uid_t @var{neweuid})
+@deftypefun int seteuid (uid_t @var{neweuid})
This function sets the effective user ID of a process to @var{newuid},
provided that the process is allowed to change its effective user ID. A
privileged process (effective user ID zero) can change its effective
diff --git a/manual/xtract-typefun.awk b/manual/xtract-typefun.awk
index 2f0bbc7..3fccd80 100644
--- a/manual/xtract-typefun.awk
+++ b/manual/xtract-typefun.awk
@@ -4,23 +4,38 @@ BEGIN {
}
/^@node/ {
- last_node = gensub (/@node +([^@,]+).*/, "\\1", 1);
+ name = $0;
+ sub(/^@node +/, "", name);
+ sub(/[@,].*$/, "", name);
+ last_node = name;
}
-/^@deftypefun/ {
- printf ("* %s: (libc)%s.\n",
- gensub (/@deftypefunx? +([^{ ]+|\{[^}]+\}) +([[:alpha:]_][[:alnum:]_]*).*/, "\\2", 1),
- last_node);
-}
+/^@deftype(fn|vr)/ {
+# The string we want is $4, except that if there were brace blocks
+# before that point then it gets shifted to the right, since awk
+# doesn't know from brace blocks.
+ id = 4; check = 2; squig = 0;
+ while(check < id)
+ {
+ if($check ~ /{/) squig++;
+ if($check ~ /}/) squig--;
+ if(squig) id++;
+ check++;
+ }
-/^@deftypevr/ {
- printf ("* %s: (libc)%s.\n",
- gensub (/@deftypevrx? +([^{ ]+|\{[^}]+\}) +([^{ ]+|\{[^}]+\}) +([[:alpha:]_][[:alnum:]_]*).*/, "\\3", 1),
- last_node);
+ printf ("* %s: (libc)%s.\n", $id, last_node);
}
-/^@deftypefn/ {
- printf ("* %s: (libc)%s.\n",
- gensub (/@deftypefnx? +([^{ ]+|\{[^}]+\}) +[^{ ]*(\{[^}]+\})? +([[:alpha:]_][[:alnum:]_]*).*/, "\\3", 1),
- last_node);
+/^@deftypefun/ {
+# Likewise, except it's $3 theoretically.
+ id = 3; check = 2; squig = 0;
+ while(check < id)
+ {
+ if($check ~ /{/) squig++;
+ if($check ~ /}/) squig--;
+ if(squig) id++;
+ check++;
+ }
+
+ printf ("* %s: (libc)%s.\n", $id, last_node);
}