Blame sofort/core/modern.m4

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