Blame sofort/core/modern.m4

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