Blame sofort/core/modern.m4

140ab9
dnl modern.m4: a modern and simple framework for using the m4 macro language
140ab9
dnl
140ab9
dnl This file is covered by COPYING.SOFORT.
140ab9
dnl
140ab9
dnl 1) make all standard m4 builtins m4_ prefixed.
140ab9
dnl 2) set the left-bracket and right-bracket symbols the begin-quote and end-quote strings.
140ab9
dnl 3) make a single underscore symbol the equivalent of the standard dnl builtin.
a0b60c
dnl 4) provide the m4_toupper(), m4_tolower(), and m4_pathvar() macros.
a0b60c
dnl 5) provide the m4_srclist() and m4_srcitem() macros.
a0b60c
dnl 6) provide the m4_fillerdots(), m4_fillerdash(), and m4_fillerline() macros.
a0b60c
dnl 7) provide the m4_whitespace() and m4_spacealign() macros.
a0b60c
dnl 8) provide the m4_alignlen(), m4_leftalign(), and m4_rightalign() macros.
a0b60c
dnl 9) provide the m4_tab(), m4_tabtab(), and m4_tabtabtab() macros.
140ab9
dnl
140ab9
divert(-1)
140ab9
140ab9
define(m4_changecom,defn(`changecom'))
140ab9
define(m4_changequote,defn(`changequote'))
140ab9
define(m4_decr,defn(`decr'))
140ab9
define(m4_define,defn(`define'))
140ab9
define(m4_defn,defn(`defn'))
140ab9
define(m4_divert,defn(`divert'))
140ab9
define(m4_divnum,defn(`divnum'))
140ab9
define(m4_dnl,defn(`dnl'))
140ab9
define(m4_dumpdef,defn(`dumpdef'))
140ab9
define(m4_errprint,defn(`errprint'))
140ab9
define(m4_eval,defn(`eval'))
140ab9
define(m4_ifdef,defn(`ifdef'))
140ab9
define(m4_ifelse,defn(`ifelse'))
140ab9
define(m4_include,defn(`include'))
140ab9
define(m4_incr,defn(`incr'))
140ab9
define(m4_index,defn(`index'))
140ab9
define(m4_len,defn(`len'))
140ab9
define(m4_m4exit,defn(`m4exit'))
140ab9
define(m4_m4wrap,defn(`m4wrap'))
140ab9
define(m4_maketemp,defn(`maketemp'))
140ab9
define(m4_mkstemp,defn(`mkstemp'))
140ab9
define(m4_popdef,defn(`popdef'))
140ab9
define(m4_pushdef,defn(`pushdef'))
140ab9
define(m4_shift,defn(`shift'))
140ab9
define(m4_sinclude,defn(`sinclude'))
140ab9
define(m4_substr,defn(`substr'))
140ab9
define(m4_syscmd,defn(`syscmd'))
140ab9
define(m4_sysval,defn(`sysval'))
140ab9
define(m4_traceoff,defn(`traceoff'))
140ab9
define(m4_traceon,defn(`traceon'))
140ab9
define(m4_translit,defn(`translit'))
140ab9
define(m4_undefine,defn(`undefine'))
140ab9
define(m4_undivert,defn(`undivert'))
140ab9
140ab9
m4_changequote([,])
140ab9
140ab9
m4_undefine([changecom])
140ab9
m4_undefine([changequote])
140ab9
m4_undefine([decr])
140ab9
m4_undefine([define])
140ab9
m4_undefine([defn])
140ab9
m4_undefine([divert])
140ab9
m4_undefine([divnum])
140ab9
m4_undefine([dnl])
140ab9
m4_undefine([dumpdef])
140ab9
m4_undefine([errprint])
140ab9
m4_undefine([eval])
140ab9
m4_undefine([ifdef])
140ab9
m4_undefine([ifelse])
140ab9
m4_undefine([include])
140ab9
m4_undefine([incr])
140ab9
m4_undefine([index])
140ab9
m4_undefine([len])
140ab9
m4_undefine([m4exit])
140ab9
m4_undefine([m4wrap])
140ab9
m4_undefine([maketemp])
140ab9
m4_undefine([mkstemp])
140ab9
m4_undefine([popdef])
140ab9
m4_undefine([pushdef])
140ab9
m4_undefine([shift])
140ab9
m4_undefine([sinclude])
140ab9
m4_undefine([substr])
140ab9
m4_undefine([syscmd])
140ab9
m4_undefine([sysval])
140ab9
m4_undefine([traceoff])
140ab9
m4_undefine([traceon])
140ab9
m4_undefine([translit])
140ab9
m4_undefine([undefine])
140ab9
m4_undefine([undivert])
140ab9
c5eaaf
m4_define([_],m4_defn([m4_dnl]))
c5eaaf
a0b60c
m4_define([m4_toupper],[m4_translit([[$1]],[[abcdefghijklmnopqrstuvwxyz]],[[ABCDEFGHIJKLMNOPQRSTUVWXYZ]])])
a0b60c
m4_define([m4_tolower],[m4_translit([[$1]],[[ABCDEFGHIJKLMNOPQRSTUVWXYZ]],[[abcdefghijklmnopqrstuvwxyz]])])
262cc7
m4_define([m4_pathvar],[m4_translit(m4_toupper([[$1]]),[/-],[__])])
a0b60c
a0b60c
m4_define([m4_srclist],[[$1] = \])
a0b60c
m4_define([m4_srcitem],[m4_tab[$1] \])
a0b60c
a0b60c
m4_define([m4_fillerdots],[................................])
a0b60c
m4_define([m4_fillerdash],[--------------------------------])
a0b60c
m4_define([m4_fillerline],[m4_fillerdots[]m4_fillerdots[]m4_fillerdots[]])
a0b60c
a0b60c
m4_define([m4_whitespace],[m4_translit(m4_fillerdots,[[.]],[[ ]])])
a0b60c
m4_define([m4_spacealign],[m4_translit(m4_fillerline,[[.]],[[ ]])])
a0b60c
a0b60c
m4_define([m4_alignlen],[m4_eval([$1]-m4_len([$2]))])
a0b60c
m4_define([m4_leftalign],[m4_substr(m4_spacealign,0,m4_alignlen([$1],[$2]))[$2]])
a0b60c
m4_define([m4_rightalign],[[$2]m4_substr(m4_spacealign,0,m4_alignlen([$1],[$2]))])
a0b60c
a0b60c
a0b60c
m4_define([m4_tab],_
a0b60c
	[$1]))
a0b60c
a0b60c
m4_define([m4_tabtab],_
a0b60c
		[$1])
a0b60c
a0b60c
m4_define([m4_tabtabtab],_
a0b60c
			[$1])
c5eaaf
140ab9
m4_divert(0)_