Blame sofort/core/modern.m4

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