Blame sofort/core/modern.m4

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