From d60562bcbb87da951d47cfc08f1af9bef33ff391 Mon Sep 17 00:00:00 2001 From: Jakob Kaivo Date: Tue, 3 Nov 2020 16:53:58 -0500 Subject: reduce duplication more --- html.m4 | 90 +++++++++++++---------------------------------------------------- post.m4 | 53 +++++++++++++++++++++++++++----------- pre.m4 | 19 ++++++++++++++ text.m4 | 59 +++++------------------------------------- 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', ` + + +THISNAME() - BRIEF() + /> + + +') + +define(`M4NFOOTER', ` +') + +define(`HEADING', ` +

$1

') + +define(`NAME_TEXT', `THISNAME() - BRIEF()') + define(`CHARACTER_CLASS', $1) define(`CONCEPT', $2) define(`CONCEPT_DEFINITION',

$2

) @@ -92,75 +110,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

')dnl -ifdef(`UNSPECIFIED_BEHAVIOR', - `

Unspecified Behavior

')dnl -ifdef(`UNDEFINED_BEHAVIOR', - `

Undefined Behavior

')dnl - - - -ifdef(`VALUE', -`
-

Value

-ifdef(`VALUE_PRE', `VALUE_PRE()
') -VALUE() -ifdef(`VALUE_PRE', `
') -
') - -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:1990ISO/IEC 9899:1999ISO/IEC 9899:2011
C90()C99()C11()
- - -
- - 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() - -- cgit v1.2.1