Blame sofort/core/modern.m4

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