Blame sofort/core/modern.m4

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