Blame sofort/core/modern.m4

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