Blame sofort/core/modern.m4

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