home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
- # Extract all examples from the manual source.
- # Copyright (C) 1992 Free Software Foundation, Inc.
-
- # This script is for use with GNU awk.
-
- FILE=${1-/dev/null}
-
- $AWK '
-
- BEGIN {
- node = "";
- seq = -1;
- count = 0;
- file = "NONE";
- }
-
- /^@node / {
- if (seq > 0)
- printf(" -- %d file%s", seq, seq == 1 ? "" : "s");
- if (seq >= 0)
- printf("\n");
-
- split($0, tmp, ",");
- node = substr(tmp[1], 7);
- if (length(node) > 11)
- printf("Node: %s - truncated", node);
- else
- printf("Node: %s ", node);
- gsub(" ", "_", node);
- node = tolower(substr(node, 1, 11));
- seq = 0;
- }
-
- /^@comment ignore$/ {
- getline;
- next;
- }
-
- /^@example$/, /^@end example$/ {
- if (seq < 0)
- next;
- if ($0 ~ /^@example$/) {
- if (count > 0)
- close (file);
- seq++;
- count++;
- file = sprintf("%02d.%s", count, node);
- printf("dnl %s:%d: Origin of test\n", FILENAME, NR) > file;
- next;
- }
- if ($0 ~ /^@end example$/) {
- next;
- }
- if ($0 ~ /^\^D$/)
- next;
- if ($0 ~ /^@result{}/ || $0 ~ /^@error{}/)
- prefix = "dnl ";
- else
- prefix = "";
- gsub("@@", "@", $0);
- printf("%s%s\n", prefix, $0) >> file;
- }
-
- END {
- printf("\n");
- }
- ' $FILE
-