summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakob Kaivo <jkk@ung.org>2020-11-03 16:53:58 -0500
committerJakob Kaivo <jkk@ung.org>2020-11-03 16:53:58 -0500
commitd60562bcbb87da951d47cfc08f1af9bef33ff391 (patch)
treee0aa01f4a68cc9e35a51a9abf32547e3218bab71
parentd05e63eca6f10500f3ae4ff1d61f0e6baf8d317a (diff)
reduce duplication more
-rw-r--r--html.m490
-rw-r--r--post.m453
-rw-r--r--pre.m419
-rw-r--r--text.m459
4 files changed, 82 insertions, 139 deletions
diff --git a/html.m4 b/html.m4
index be5a8ec..17d4f20 100644
--- a/html.m4
+++ b/html.m4
@@ -1,5 +1,23 @@
divert(-1)
changecom()
+
+define(`M4NHEADER', `<!DOCTYPE html>
+<head>
+<meta charset="utf-8" />
+<title>THISNAME() - BRIEF()</title>
+<link rel="stylesheet" href="m4n.css" type="text/css"> />
+</head>
+<body>
+')
+
+define(`M4NFOOTER', `</body>
+</html>')
+
+define(`HEADING', `
+<h1><a name="$1">$1</a></h1>')
+
+define(`NAME_TEXT', `THISNAME() - BRIEF()')
+
define(`CHARACTER_CLASS', <a href="/character-class.html#$1" class="character">$1</a>)
define(`CONCEPT', <a href="#$1" class="concept">$2</a>)
define(`CONCEPT_DEFINITION', <h2 id="$1" class="concept">$2</h2>)
@@ -92,75 +110,3 @@ ifdef(`IMPLEMENTATIONS', `
define(`LOCALE', <code class="locale">"$1"</code>)
-
-divert(0)dnl
-<!DOCTYPE html>
-<html>
-<head>
-<meta charset="utf-8" />
-<title>THISNAME() - BRIEF()</title>
-<link rel="stylesheet" type="text/css" href="man.css" />
-</head>
-<body>
-
-<div id="synopsis">
-<h1>Synopsis</h1>
-<pre><code>ifdef(`INCLUDES', `<span class="preprocessor">INCLUDES()</span>
-')<span class="signature">SIGNATURE()</span></code></pre>
-</div>
-
-<div id="description">
-<h1>Description</h1>
-<p>ifdef(`DESC_INTRO', `The THIS() PRETTYTYPE() ')DESCRIPTION()</p>
-ifdef(`LC_CATEGORIES',
- `<div id="locale"><h2>Locale Specific Behavior</h2>
- <p>The behavior of THIS() may differ based on the current value of
- LC_CATEGORIES().</p>
- ifdef(`C_LOCALE', `<p>In the LOCALE(`C') locale, C_LOCALE().</p>')dnl
- ifdef(`OTHER_LOCALES', `<p>In locales other than LOCALE(`C'), OTHER_LOCALES().')dnl
- </div>')dnl
-ifdef(`IMPLEMENTATION_DEFINED',
- `<h2>Implementation Defined Behavior</h2><ul>IMPLEMENTATION_DEFINED()
- </ul></div>')dnl
-ifdef(`UNSPECIFIED_BEHAVIOR',
- `<h2>Unspecified Behavior</h2><ul>UNSPECIFIED_BEHAVIOR()</ul>')dnl
-ifdef(`UNDEFINED_BEHAVIOR',
- `<h2>Undefined Behavior</h2><ul>UNDEFINED_BEHAVIOR()</ul>')dnl
-
-</div>
-
-ifdef(`VALUE',
-`<div id="value">
-<h1>Value</h1>
-ifdef(`VALUE_PRE', `VALUE_PRE()<dl>')
-VALUE()
-ifdef(`VALUE_PRE', `</dl>')
-</div>')
-
-ifdef(`RETURN_VALUE',
-`<div id="return">
-<h1>Return Value</h1>
-ifdef(`RETURNS', `<p>The THIS() PRETTYTYPE() returns one of the following values:</p><dl>')
-RETURN_VALUE()
-ifdef(`RETURN_LIST', `</dl>')
-ifdef(`ERRORS',
- `<h2>Errors</h2>
- <p>On failure, IDENTIFIER(errno) maye be set to one of the following
- values to detail the cause of failure:</p>
- <dl>ERRORS()</dl>')
-</div>')
-
-<div id="conformance">
-<h1>Conformance</h1>
-<table>
- <tr><th>ISO/IEC 9899:1990</th><th>ISO/IEC 9899:1999</th><th>ISO/IEC 9899:2011</th></tr>
- <tr><td>C90()</td><td>C99()</td><td>C11()</td></tr>
-</table>
-
-<!-- table>
- <tr><th>POSIX.1-1990</th><th>POSIX.1-1996</th><th>POSIX.1-2001</th><th>POSIX.1-2008</th></tr>
- <tr><td>P90()</td><td>P96()</td><td>P01()</td><td>P08()</td></tr>
-</table -->
-</div>
-</body>
-</html>
diff --git a/post.m4 b/post.m4
index 607826d..7393f9c 100644
--- a/post.m4
+++ b/post.m4
@@ -1,24 +1,47 @@
+define(`NAME', `HEADING(NAME_HEADER)
+NAME_TEXT')
+
define(`SYNOPSIS', `HEADING(SYNOPSIS_HEADER)
SYNOPSIS_TEXT')
+
define(`DESCRIPTION', `HEADING(DESCRIPTION_HEADER)
DESCRIPTION_TEXT')
divert(0)dnl
-HEADER()
+ifdef(`M4NHEADER', `M4NHEADER()
+')dnl
NAME()
+
SYNOPSIS()
+
DESCRIPTION()
-ifdef(`OPTIONS', `OPTIONS()')dnl
-ifdef(`OPERANDS', `OPERANDS()')dnl
-ifdef(`STDIN', `STDIN()')dnl
-ifdef(`INPUT_FILES', `INPUT_FILES()')dnl
-ifdef(`ENVIRONMENT_VARIABLES', `ENVIRONMENT_VARIABLES()')dnl
-ifdef(`ASYNCHRONOUS_EVENTS', `ASYNCHRONOUS_EVENTS()')dnl
-ifdef(`STDOUT', `STDOUT()')dnl
-ifdef(`STDERR', `STDERR()')dnl
-ifdef(`OUTPUT_FILES', `OUTPUT_FILES()')dnl
-ifdef(`EXTENDED_DESCRIPTION', `EXTENDED_DESCRIPTION()')dnl
-ifdef(`EXIT_STATUS', `EXIT_STATUS()')dnl
-ifdef(`CONSEQUENCE_OF_ERRORS', `CONSEQUENCE_OF_ERRORS()')dnl
-ifdef(`RETURN_VALUE', RETURN_VALUE()')dnl
-ifdef(`ERROS', `ERRORS()')
+
+ifdef(`OPTIONS', `OPTIONS()
+')dnl
+ifdef(`OPERANDS', `OPERANDS()
+')dnl
+ifdef(`STDIN', `STDIN()
+')dnl
+ifdef(`INPUT_FILES', `INPUT_FILES()
+')dnl
+ifdef(`ENVIRONMENT_VARIABLES', `ENVIRONMENT_VARIABLES()
+')dnl
+ifdef(`ASYNCHRONOUS_EVENTS', `ASYNCHRONOUS_EVENTS()
+')dnl
+ifdef(`STDOUT', `STDOUT()
+')dnl
+ifdef(`STDERR', `STDERR()
+')dnl
+ifdef(`OUTPUT_FILES', `OUTPUT_FILES()
+')dnl
+ifdef(`EXTENDED_DESCRIPTION', `EXTENDED_DESCRIPTION()
+')dnl
+ifdef(`EXIT_STATUS', `EXIT_STATUS()
+')dnl
+ifdef(`CONSEQUENCE_OF_ERRORS', `CONSEQUENCE_OF_ERRORS()
+')dnl
+ifdef(`RETURN_VALUE', RETURN_VALUE()
+')dnl
+ifdef(`ERROS', `ERRORS()
+')dnl
+ifdef(`M4NFOOTER', `M4NFOOTER()')
diff --git a/pre.m4 b/pre.m4
index 6fbc05f..94eb30f 100644
--- a/pre.m4
+++ b/pre.m4
@@ -1,2 +1,21 @@
divert(-1)
changecom()
+define(`m4npage', `
+ define(`THISNAME', $1)
+ define(`THISTYPE', $2)
+')
+
+define(`brief', `define(`BRIEF', `$1')')
+
+define(`required_header', `')
+
+define(`return_type', `')
+
+define(`argument', `$1 $2')dnl $3 is the description
+
+define(`describe', `define(`DESCRIPTION_TEXT', `The THISNAME THISTYPE $1')')
+
+dnl TODO: move this to en-US.m4
+define(`NAME_HEADER', `Name')
+define(`SYNOPSIS_HEADER', `Synopsis')
+define(`DESCRIPTION_HEADER', `Description')
diff --git a/text.m4 b/text.m4
index a6d7001..119ddfa 100644
--- a/text.m4
+++ b/text.m4
@@ -1,5 +1,11 @@
divert(-1)
changecom()
+define(`M4NHEADER', `')
+
+define(`HEADING', `# $1')
+
+define(`NAME_TEXT', `THISNAME() - BRIEF()')
+
define(`CHARACTER_CLASS', $1)
define(`CONCEPT', $2)
define(`CONCEPT_DEFINITION', $2)
@@ -24,7 +30,7 @@ define(`DEFINITION', $1)
define(`LITERAL', $1)
define(`OPERATOR', $1)
define(`FUNCTION', $1())
-define(`HEADER', $1)
+define(`HEADER', <$1>)
define(`LT', <)
define(`GT', >)
define(`IDENTIFIER', $1)
@@ -92,54 +98,3 @@ ifdef(`IMPLEMENTATIONS', `
define(`LOCALE', "$1")
-
-divert(0)dnl
-THISNAME() - BRIEF()
-
-Synopsis
-ifdef(`INCLUDES', `INCLUDES()
-')SIGNATURE()
-
-Description
-ifdef(`DESC_INTRO', `The THIS() PRETTYTYPE() ')DESCRIPTION()
-ifdef(`LC_CATEGORIES',
- `Locale Specific Behavior
- The behavior of THIS() may differ based on the current value of
- LC_CATEGORIES().
- ifdef(`C_LOCALE', `In the LOCALE(`C') locale, C_LOCALE().')dnl
- ifdef(`OTHER_LOCALES', `In locales other than LOCALE(`C'), OTHER_LOCALES().')dnl
- ')dnl
-ifdef(`IMPLEMENTATION_DEFINED',
- `Implementation Defined Behavior
- IMPLEMENTATION_DEFINED()
- ')dnl
-ifdef(`UNSPECIFIED_BEHAVIOR',
- `Unspecified Behavior
- UNSPECIFIED_BEHAVIOR()')dnl
-ifdef(`UNDEFINED_BEHAVIOR',
- `Undefined Behavior
- UNDEFINED_BEHAVIOR()')dnl
-
-ifdef(`VALUE',
-`Value
-ifdef(`VALUE_PRE', `VALUE_PRE()')
-VALUE()
-')
-
-ifdef(`RETURN_VALUE',
-`Return Value
-ifdef(`RETURNS', `The THIS() PRETTYTYPE() returns one of the following values:')
-RETURN_VALUE()
-ifdef(`RETURN_LIST', `')
-ifdef(`ERRORS',
- `Errors
- On failure, IDENTIFIER(errno) maye be set to one of the following
- values to detail the cause of failure:
- ERRORS()')
-')
-
-Conformance
-ISO/IEC 9899:1990 C90()
-ISO/IEC 9899:1999 C99()
-ISO/IEC 9899:2011 C11()
-