Blame sofort/core/modern.m4

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