|
|
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)_
|