Blame sofort/core/modern.m4

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