1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
m4_changecom()
m4_changequote([,])
m4_dnl Output ‘$2’ if the country code matches ‘$1’
m4_define(__ifcode, [m4_ifelse(__code, [$1], [$2])])
m4_dnl Output ‘$1’ if the country with code ‘__code’ has extra coins
m4_define(__ifextra, [
m4_syscmd(grep -iq '^__code' data/extras)
m4_ifelse(m4_sysval, 0, [$1])
])
m4_dnl Execute the script ‘$1’ in the ‘scripts/’ directory
m4_define(__esyscmd, [m4_esyscmd([scripts/$1])])
m4_dnl Include the file ‘$1’ in the ‘src/’ directory, while also keeping track
m4_dnl of who called ‘__include’. This is required sometimes when expanding
m4_dnl macros in included files.
m4_define(__include, [
m4_define([__caller], m4___file__)
m4_include([src/$1])
])
m4_dnl A setup file for ‘src/euro/index.dcoins.gsp’. It converts ‘__denom’ from
m4_dnl something unhelpful like ‘10c’ to something helpful like ‘0.10’.
m4_define(__dcoins_denom, [m4_define([__denom], m4_ifelse(
[0], m4_regexp(__denom, [^\([0-9]\)c]),
m4_regexp(__denom, [^\([0-9]\)c], [0.0\1]),
[0], m4_regexp(__denom, [^\([0-9]+\)c]),
m4_regexp(__denom, [^\([0-9]+\)c], [0.\1]),
[0], m4_regexp(__denom, [^\([0-9]\)e]),
m4_regexp(__denom, [^\([0-9]\)e], [\1.00]),
[Something went wrong… check ‘lib.m4’]
))])
m4_dnl Create a link to ‘$1’ with the text ‘$2’. This does some checks with the
m4_dnl caller to mark some nav-bar buttons as ‘selected’. Dynamically generated
m4_dnl pages can work with this API by hijacking ‘m4___file__’ via ‘__hijack’.
m4_define(__link, [
m4_ifelse(
[$1], m4_regexp(__caller, [src\(/\)index\.gsp], [\1]),
[div .selected {-$2}],
[$1], m4_regexp(__caller, [src\(/.+\)/index\.gsp], [\1]),
[div .selected {-$2}],
[a href="$1" {-$2}]
)
])
m4_dnl Hijack ‘m4___file__’ by setting it to ‘src/$1/index.gsp’
m4_define(__hijack, [m4_define([m4___file__], src/$1/index.gsp)])
m4_dnl Add an entry in the site changelog for the date ‘$1’ with the body ‘$2’
m4_define(__entry, [
section #$1 .cl-section .slant-down {
div {
h2 {=m4_esyscmd(echo $1 | scripts/changelog-dates.sed)}
$2
}
}
])
|