summaryrefslogtreecommitdiff
path: root/localrepo/ledger-mode-20240326.2002.tar
blob: 55e5cd5ed66d972aac2bcbff041b918c6ac69d9f (plain)
ofshex dumpascii
0000 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 33 32 36 2e 32 30 30 32 2f 00 00 00 00 00 00 ledger-mode-20240326.2002/......
0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0060 00 00 00 00 30 30 30 30 37 35 35 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000755.0000000.0000000.0000
0080 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 31 36 33 00 20 35 00 00 00 0000000.00000000000.013163..5...
00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0100 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
0120 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0200 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 33 32 36 2e 32 30 30 32 2f 64 69 72 00 00 00 ledger-mode-20240326.2002/dir...
0220 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0260 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
0280 30 30 30 31 31 33 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 36 36 33 00 20 30 00 00 00 0001134.00000000000.013663..0...
02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0300 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
0320 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0400 54 68 69 73 20 69 73 20 74 68 65 20 66 69 6c 65 20 2e 2e 2e 2f 69 6e 66 6f 2f 64 69 72 2c 20 77 This.is.the.file..../info/dir,.w
0420 68 69 63 68 20 63 6f 6e 74 61 69 6e 73 20 74 68 65 0a 74 6f 70 6d 6f 73 74 20 6e 6f 64 65 20 6f hich.contains.the.topmost.node.o
0440 66 20 74 68 65 20 49 6e 66 6f 20 68 69 65 72 61 72 63 68 79 2c 20 63 61 6c 6c 65 64 20 28 64 69 f.the.Info.hierarchy,.called.(di
0460 72 29 54 6f 70 2e 0a 54 68 65 20 66 69 72 73 74 20 74 69 6d 65 20 79 6f 75 20 69 6e 76 6f 6b 65 r)Top..The.first.time.you.invoke
0480 20 49 6e 66 6f 20 79 6f 75 20 73 74 61 72 74 20 6f 66 66 20 6c 6f 6f 6b 69 6e 67 20 61 74 20 74 .Info.you.start.off.looking.at.t
04a0 68 69 73 20 6e 6f 64 65 2e 0a 1f 0a 46 69 6c 65 3a 20 64 69 72 2c 09 4e 6f 64 65 3a 20 54 6f 70 his.node....File:.dir,.Node:.Top
04c0 09 54 68 69 73 20 69 73 20 74 68 65 20 74 6f 70 20 6f 66 20 74 68 65 20 49 4e 46 4f 20 74 72 65 .This.is.the.top.of.the.INFO.tre
04e0 65 0a 0a 20 20 54 68 69 73 20 28 74 68 65 20 44 69 72 65 63 74 6f 72 79 20 6e 6f 64 65 29 20 67 e....This.(the.Directory.node).g
0500 69 76 65 73 20 61 20 6d 65 6e 75 20 6f 66 20 6d 61 6a 6f 72 20 74 6f 70 69 63 73 2e 0a 20 20 54 ives.a.menu.of.major.topics....T
0520 79 70 69 6e 67 20 22 71 22 20 65 78 69 74 73 2c 20 22 48 22 20 6c 69 73 74 73 20 61 6c 6c 20 49 yping."q".exits,."H".lists.all.I
0540 6e 66 6f 20 63 6f 6d 6d 61 6e 64 73 2c 20 22 64 22 20 72 65 74 75 72 6e 73 20 68 65 72 65 2c 0a nfo.commands,."d".returns.here,.
0560 20 20 22 68 22 20 67 69 76 65 73 20 61 20 70 72 69 6d 65 72 20 66 6f 72 20 66 69 72 73 74 2d 74 .."h".gives.a.primer.for.first-t
0580 69 6d 65 72 73 2c 0a 20 20 22 6d 45 6d 61 63 73 3c 52 65 74 75 72 6e 3e 22 20 76 69 73 69 74 73 imers,..."mEmacs<Return>".visits
05a0 20 74 68 65 20 45 6d 61 63 73 20 6d 61 6e 75 61 6c 2c 20 65 74 63 2e 0a 0a 20 20 49 6e 20 45 6d .the.Emacs.manual,.etc.....In.Em
05c0 61 63 73 2c 20 79 6f 75 20 63 61 6e 20 63 6c 69 63 6b 20 6d 6f 75 73 65 20 62 75 74 74 6f 6e 20 acs,.you.can.click.mouse.button.
05e0 32 20 6f 6e 20 61 20 6d 65 6e 75 20 69 74 65 6d 20 6f 72 20 63 72 6f 73 73 20 72 65 66 65 72 65 2.on.a.menu.item.or.cross.refere
0600 6e 63 65 0a 20 20 74 6f 20 73 65 6c 65 63 74 20 69 74 2e 0a 0a 2a 20 4d 65 6e 75 3a 0a 0a 45 6d nce...to.select.it...*.Menu:..Em
0620 61 63 73 0a 2a 20 4c 65 64 67 65 72 20 4d 6f 64 65 3a 20 28 6c 65 64 67 65 72 2d 6d 6f 64 65 29 acs.*.Ledger.Mode:.(ledger-mode)
0640 2e 20 20 20 43 6f 6d 6d 61 6e 64 2d 4c 69 6e 65 20 41 63 63 6f 75 6e 74 69 6e 67 0a 00 00 00 00 ....Command-Line.Accounting.....
0660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
06e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
07e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0800 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 33 32 36 2e 32 30 30 32 2f 6c 65 64 67 65 72 ledger-mode-20240326.2002/ledger
0820 2d 63 68 65 63 6b 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -check.el.......................
0840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0860 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
0880 30 30 31 32 33 32 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 30 32 32 00 20 30 00 00 00 0012322.00000000000.016022..0...
08a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
08c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
08e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0900 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
0920 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
0940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
09a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
09c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
09e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0a00 3b 3b 3b 20 6c 65 64 67 65 72 2d 63 68 65 63 6b 2e 65 6c 20 2d 2d 2d 20 48 65 6c 70 65 72 20 63 ;;;.ledger-check.el.---.Helper.c
0a20 6f 64 65 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 74 68 65 20 22 6c 65 64 67 65 72 22 20 63 6f ode.for.use.with.the."ledger".co
0a40 6d 6d 61 6e 64 2d 6c 69 6e 65 20 74 6f 6f 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e mmand-line.tool..-*-.lexical-bin
0a60 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 ding:.t;.-*-..;;.Copyright.(C).2
0a80 30 31 35 20 43 72 61 69 67 20 45 61 72 6c 73 20 28 65 6e 64 65 72 77 38 38 20 41 54 20 67 6d 61 015.Craig.Earls.(enderw88.AT.gma
0aa0 69 6c 20 44 4f 54 20 63 6f 6d 29 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 6e 6f 74 il.DOT.com)..;;.This.file.is.not
0ac0 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 54 68 69 73 20 69 73 20 .part.of.GNU.Emacs...;;.This.is.
0ae0 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 free.software;.you.can.redistrib
0b00 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 20 75 6e 64 65 72 0a 3b 3b ute.it.and/or.modify.it.under.;;
0b20 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 .the.terms.of.the.GNU.General.Pu
0b40 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 blic.License.as.published.by.the
0b60 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 .Free.;;.Software.Foundation;.ei
0b80 74 68 65 72 20 76 65 72 73 69 6f 6e 20 32 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 ther.version.2,.or.(at.your.opti
0ba0 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 0a 3b 3b 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 on).any.later.;;.version..;;.;;.
0bc0 54 68 69 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 This.is.distributed.in.the.hope.
0be0 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 that.it.will.be.useful,.but.WITH
0c00 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 OUT.;;.ANY.WARRANTY;.without.eve
0c20 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 n.the.implied.warranty.of.MERCHA
0c40 4e 54 41 42 49 4c 49 54 59 20 6f 72 0a 3b 3b 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 NTABILITY.or.;;.FITNESS.FOR.A.PA
0c60 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 RTICULAR.PURPOSE...See.the.GNU.G
0c80 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 66 6f 72 20 6d 6f 72 eneral.Public.License.;;.for.mor
0ca0 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 e.details..;;.;;.You.should.have
0cc0 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 .received.a.copy.of.the.GNU.Gene
0ce0 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 ral.Public.License.;;.along.with
0d00 20 47 4e 55 20 45 6d 61 63 73 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 .GNU.Emacs;.see.the.file.COPYING
0d20 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 20 ...If.not,.write.to.the.;;.Free.
0d40 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 Software.Foundation,.Inc.,.51.Fr
0d60 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 anklin.Street,.Fifth.Floor,.Bost
0d80 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 on,.;;.MA.02110-1301.USA...;;;.C
0da0 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 20 20 50 72 6f 76 69 64 65 20 73 65 63 69 61 6c 20 6d 6f ommentary:.;;..Provide.secial.mo
0dc0 64 65 20 74 6f 20 63 6f 72 72 65 63 74 20 65 72 72 6f 72 73 20 69 6e 20 6c 65 64 67 65 72 20 77 de.to.correct.errors.in.ledger.w
0de0 68 65 6e 20 72 75 6e 6e 69 6e 67 20 77 69 74 68 20 2d 2d 73 74 72 69 63 74 20 61 6e 64 20 2d 2d hen.running.with.--strict.and.--
0e00 65 78 70 6c 69 63 69 74 0a 3b 3b 0a 3b 3b 20 41 64 61 70 74 65 64 20 74 6f 20 6c 65 64 67 65 72 explicit.;;.;;.Adapted.to.ledger
0e20 20 6d 6f 64 65 20 62 79 20 43 72 61 69 67 20 45 61 72 6c 73 20 3c 65 6e 64 65 72 77 38 38 20 61 .mode.by.Craig.Earls.<enderw88.a
0e40 74 20 67 6d 61 69 6c 20 64 6f 74 20 63 6f 6d 3e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 t.gmail.dot.com>..;;;.Code:..(re
0e60 71 75 69 72 65 20 27 65 61 73 79 6d 65 6e 75 29 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 quire.'easymenu).(require.'ledge
0e80 72 2d 6e 61 76 69 67 61 74 65 29 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 72 65 70 r-navigate).(require.'ledger-rep
0ea0 6f 72 74 29 20 3b 20 66 6f 72 20 6c 65 64 67 65 72 2d 6d 61 73 74 65 72 2d 66 69 6c 65 0a 0a 0a ort).;.for.ledger-master-file...
0ec0 28 64 65 66 76 61 72 20 6c 65 64 67 65 72 2d 63 68 65 63 6b 2d 62 75 66 66 65 72 2d 6e 61 6d 65 (defvar.ledger-check-buffer-name
0ee0 20 22 2a 4c 65 64 67 65 72 20 43 68 65 63 6b 2a 22 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c ."*Ledger.Check*").(defvar-local
0f00 20 6c 65 64 67 65 72 2d 63 68 65 63 6b 2d 2d 6f 72 69 67 69 6e 61 6c 2d 77 69 6e 64 6f 77 2d 63 .ledger-check--original-window-c
0f20 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 6e 69 6c 29 0a 0a 0a 0a 0a 28 64 65 66 76 61 72 20 6c 65 onfiguration.nil).....(defvar.le
0f40 64 67 65 72 2d 63 68 65 63 6b 2d 6d 6f 64 65 2d 6d 61 70 0a 20 20 28 6c 65 74 20 28 28 6d 61 70 dger-check-mode-map...(let.((map
0f60 20 28 6d 61 6b 65 2d 73 70 61 72 73 65 2d 6b 65 79 6d 61 70 29 29 29 0a 20 20 20 20 28 64 65 66 .(make-sparse-keymap))).....(def
0f80 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 52 45 54 22 29 20 23 27 6c 65 64 67 65 72 ine-key.map.(kbd."RET").#'ledger
0fa0 2d 72 65 70 6f 72 74 2d 76 69 73 69 74 2d 73 6f 75 72 63 65 29 0a 20 20 20 20 28 64 65 66 69 6e -report-visit-source).....(defin
0fc0 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 71 22 29 20 23 27 6c 65 64 67 65 72 2d 63 68 65 e-key.map.(kbd."q").#'ledger-che
0fe0 63 6b 2d 71 75 69 74 29 0a 20 20 20 20 6d 61 70 29 0a 20 20 22 4b 65 79 6d 61 70 20 66 6f 72 20 ck-quit).....map)..."Keymap.for.
1000 60 6c 65 64 67 65 72 2d 63 68 65 63 6b 2d 6d 6f 64 65 27 2e 22 29 0a 0a 28 65 61 73 79 2d 6d 65 `ledger-check-mode'.")..(easy-me
1020 6e 75 2d 64 65 66 69 6e 65 20 6c 65 64 67 65 72 2d 63 68 65 63 6b 2d 6d 6f 64 65 2d 6d 65 6e 75 nu-define.ledger-check-mode-menu
1040 20 6c 65 64 67 65 72 2d 63 68 65 63 6b 2d 6d 6f 64 65 2d 6d 61 70 0a 20 20 22 4c 65 64 67 65 72 .ledger-check-mode-map..."Ledger
1060 20 63 68 65 63 6b 20 6d 65 6e 75 2e 22 0a 20 20 27 28 22 43 68 65 63 6b 22 0a 20 20 20 20 3b 3b .check.menu."...'("Check".....;;
1080 20 5b 22 52 65 2d 72 75 6e 20 43 68 65 63 6b 22 20 6c 65 64 67 65 72 2d 63 68 65 63 6b 2d 72 65 .["Re-run.Check".ledger-check-re
10a0 64 6f 5d 0a 20 20 20 20 22 2d 2d 2d 22 0a 20 20 20 20 5b 22 56 69 73 69 74 20 53 6f 75 72 63 65 do]....."---".....["Visit.Source
10c0 22 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 76 69 73 69 74 2d 73 6f 75 72 63 65 5d 0a 20 20 ".ledger-report-visit-source]...
10e0 20 20 22 2d 2d 2d 22 0a 20 20 20 20 5b 22 51 75 69 74 22 20 6c 65 64 67 65 72 2d 63 68 65 63 6b .."---".....["Quit".ledger-check
1100 2d 71 75 69 74 5d 0a 20 20 20 20 29 29 0a 0a 28 64 65 66 69 6e 65 2d 64 65 72 69 76 65 64 2d 6d -quit].....))..(define-derived-m
1120 6f 64 65 20 6c 65 64 67 65 72 2d 63 68 65 63 6b 2d 6d 6f 64 65 20 74 65 78 74 2d 6d 6f 64 65 20 ode.ledger-check-mode.text-mode.
1140 22 4c 65 64 67 65 72 2d 43 68 65 63 6b 22 0a 20 20 22 41 20 6d 6f 64 65 20 66 6f 72 20 76 69 65 "Ledger-Check"..."A.mode.for.vie
1160 77 69 6e 67 20 6c 65 64 67 65 72 20 65 72 72 6f 72 73 20 61 6e 64 20 77 61 72 6e 69 6e 67 73 2e wing.ledger.errors.and.warnings.
1180 22 29 0a 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 64 6f 2d 63 68 65 63 6b 20 28 29 0a 20 ")...(defun.ledger-do-check.()..
11a0 20 22 52 75 6e 20 61 20 63 68 65 63 6b 20 63 6f 6d 6d 61 6e 64 20 2e 22 0a 20 20 28 67 6f 74 6f ."Run.a.check.command.."...(goto
11c0 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 28 6c 65 74 20 28 28 64 61 74 61 -char.(point-min))...(let.((data
11e0 2d 70 6f 73 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 28 68 61 76 65 2d 77 61 72 6e -pos.(point)).........(have-warn
1200 69 6e 67 73 20 6e 69 6c 29 29 0a 20 20 20 20 28 73 68 65 6c 6c 2d 63 6f 6d 6d 61 6e 64 0a 20 20 ings.nil)).....(shell-command...
1220 20 20 20 3b 3b 20 20 6c 65 64 67 65 72 20 62 61 6c 61 6e 63 65 20 63 6f 6d 6d 61 6e 64 20 77 69 ...;;..ledger.balance.command.wi
1240 6c 6c 20 6a 75 73 74 20 72 65 74 75 72 6e 20 65 6d 70 74 79 20 69 66 20 79 6f 75 20 67 69 76 65 ll.just.return.empty.if.you.give
1260 20 69 74 0a 20 20 20 20 20 3b 3b 20 20 61 6e 20 61 63 63 6f 75 6e 74 20 6e 61 6d 65 20 74 68 61 .it......;;..an.account.name.tha
1280 74 20 64 6f 65 73 6e 27 74 20 65 78 69 73 74 2e 20 20 49 20 77 69 6c 6c 20 61 73 73 75 6d 65 20 t.doesn't.exist...I.will.assume.
12a0 74 68 61 74 20 6e 6f 0a 20 20 20 20 20 3b 3b 20 20 6f 6e 65 20 77 69 6c 6c 20 65 76 65 72 20 68 that.no......;;..one.will.ever.h
12c0 61 76 65 20 61 6e 20 61 63 63 6f 75 6e 74 20 6e 61 6d 65 64 20 22 65 33 34 32 61 73 64 32 31 33 ave.an.account.named."e342asd213
12e0 31 22 2e 20 20 49 66 0a 20 20 20 20 20 3b 3b 20 20 73 6f 6d 65 6f 6e 65 73 20 64 6f 65 73 2c 20 1"...If......;;..someones.does,.
1300 74 68 69 73 20 77 69 6c 6c 20 70 72 6f 62 61 62 6c 79 20 73 74 69 6c 6c 20 77 6f 72 6b 20 66 6f this.will.probably.still.work.fo
1320 72 20 74 68 65 6d 2e 0a 20 20 20 20 20 3b 3b 20 20 49 20 73 68 6f 75 6c 64 20 6f 6e 6c 79 20 68 r.them.......;;..I.should.only.h
1340 69 67 68 6c 69 67 68 74 20 65 72 72 6f 72 20 61 6e 64 20 77 61 72 6e 69 6e 67 20 6c 69 6e 65 73 ighlight.error.and.warning.lines
1360 2e 0a 20 20 20 20 20 22 6c 65 64 67 65 72 20 62 61 6c 20 65 33 34 32 61 73 64 32 31 33 31 20 2d ......."ledger.bal.e342asd2131.-
1380 2d 73 74 72 69 63 74 20 2d 2d 65 78 70 6c 69 63 69 74 20 22 0a 20 20 20 20 20 74 20 6e 69 6c 29 -strict.--explicit."......t.nil)
13a0 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 64 61 74 61 2d 70 6f 73 29 0a 0a 20 20 20 20 3b .....(goto-char.data-pos)......;
13c0 3b 20 66 6f 72 6d 61 74 20 63 68 65 63 6b 20 72 65 70 6f 72 74 20 74 6f 20 6d 61 6b 65 20 69 74 ;.format.check.report.to.make.it
13e0 20 6e 61 76 69 67 61 74 65 20 74 68 65 20 66 69 6c 65 0a 0a 20 20 20 20 28 77 68 69 6c 65 20 28 .navigate.the.file......(while.(
1400 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5e 2e 2a 3a 20 5c 22 5c 5c 28 2e 2a 5c re-search-forward."^.*:.\"\\(.*\
1420 5c 29 5c 22 2c 20 6c 69 6e 65 20 5c 5c 28 5b 30 2d 39 5d 2b 5c 5c 29 22 20 6e 69 6c 20 74 29 0a \)\",.line.\\([0-9]+\\)".nil.t).
1440 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 69 6c 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 ......(let.((file.(match-string.
1460 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 28 73 74 72 69 6e 67 2d 74 6f 1)).............(line.(string-to
1480 2d 6e 75 6d 62 65 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32 29 29 29 29 0a 20 20 20 20 -number.(match-string.2)))).....
14a0 20 20 20 20 28 77 68 65 6e 20 66 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 2d 74 65 ....(when.file...........(set-te
14c0 78 74 2d 70 72 6f 70 65 72 74 69 65 73 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f xt-properties.(line-beginning-po
14e0 73 69 74 69 6f 6e 29 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 0a 20 20 20 20 sition).(line-end-position).....
1500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 ...........................(list
1520 20 27 6c 65 64 67 65 72 2d 73 6f 75 72 63 65 20 28 63 6f 6e 73 20 66 69 6c 65 20 28 73 61 76 65 .'ledger-source.(cons.file.(save
1540 2d 77 69 6e 64 6f 77 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -window-excursion...............
1560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 ...................(save-excursi
15a0 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 on..............................
15c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
15e0 20 20 20 20 20 20 28 66 69 6e 64 2d 66 69 6c 65 20 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 ......(find-file.file)..........
1600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 64 65 6e ..........................(widen
1640 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 )...............................
1660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1680 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 74 6f 2d 6c 69 6e 65 20 6c 69 .....(ledger-navigate-to-line.li
16a0 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ne).............................
16c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
16e0 20 20 20 20 20 20 20 28 70 6f 69 6e 74 2d 6d 61 72 6b 65 72 29 29 29 29 29 29 0a 20 20 20 20 20 .......(point-marker))))))......
1700 20 20 20 20 20 28 61 64 64 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 69 65 73 20 28 6c 69 6e 65 2d .....(add-text-properties.(line-
1720 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f beginning-position).(line-end-po
1740 73 69 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 sition).........................
1760 20 20 20 20 20 20 20 28 6c 69 73 74 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 61 63 65 20 27 6c 65 .......(list.'font-lock-face.'le
1780 64 67 65 72 2d 66 6f 6e 74 2d 72 65 70 6f 72 74 2d 63 6c 69 63 6b 61 62 6c 65 2d 66 61 63 65 29 dger-font-report-clickable-face)
17a0 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 68 61 76 65 2d 77 61 72 6e 69 6e 67 73 20 )...........(setq.have-warnings.
17c0 27 74 72 75 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6e 64 2d 6f 66 2d 6c 69 6e 65 29 29 29 'true)...........(end-of-line)))
17e0 29 0a 20 20 20 20 28 69 66 20 28 6e 6f 74 20 68 61 76 65 2d 77 61 72 6e 69 6e 67 73 29 0a 20 20 ).....(if.(not.have-warnings)...
1800 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 4e 6f 20 65 72 72 6f 72 73 20 6f 72 20 77 61 72 6e ......(insert."No.errors.or.warn
1820 69 6e 67 73 20 72 65 70 6f 72 74 65 64 2e 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 ings.reported."))))..(defun.ledg
1840 65 72 2d 63 68 65 63 6b 2d 67 6f 74 6f 20 28 29 0a 20 20 22 47 6f 74 6f 20 74 68 65 20 6c 65 64 er-check-goto.()..."Goto.the.led
1860 67 65 72 20 63 68 65 63 6b 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 ger.check.buffer."...(interactiv
1880 65 29 0a 20 20 28 6c 65 74 20 28 28 72 62 75 66 20 28 67 65 74 2d 62 75 66 66 65 72 20 6c 65 64 e)...(let.((rbuf.(get-buffer.led
18a0 67 65 72 2d 63 68 65 63 6b 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 28 69 66 ger-check-buffer-name))).....(if
18c0 20 28 6e 6f 74 20 72 62 75 66 29 0a 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 54 68 65 72 .(not.rbuf).........(error."Ther
18e0 65 20 69 73 20 6e 6f 20 6c 65 64 67 65 72 20 63 68 65 63 6b 20 62 75 66 66 65 72 22 29 29 0a 20 e.is.no.ledger.check.buffer"))..
1900 20 20 20 28 70 6f 70 2d 74 6f 2d 62 75 66 66 65 72 20 72 62 75 66 29 0a 20 20 20 20 28 73 68 72 ...(pop-to-buffer.rbuf).....(shr
1920 69 6e 6b 2d 77 69 6e 64 6f 77 2d 69 66 2d 6c 61 72 67 65 72 2d 74 68 61 6e 2d 62 75 66 66 65 72 ink-window-if-larger-than-buffer
1940 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 63 68 65 63 6b 2d 71 75 69 74 20 28 29 )))..(defun.ledger-check-quit.()
1960 0a 20 20 22 51 75 69 74 20 74 68 65 20 6c 65 64 67 65 72 20 63 68 65 63 6b 20 62 75 66 66 65 72 ..."Quit.the.ledger.check.buffer
1980 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 64 67 65 72 2d 63 68 65 ."...(interactive)...(ledger-che
19a0 63 6b 2d 67 6f 74 6f 29 0a 20 20 28 73 65 74 2d 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 61 ck-goto)...(set-window-configura
19c0 74 69 6f 6e 20 6c 65 64 67 65 72 2d 63 68 65 63 6b 2d 2d 6f 72 69 67 69 6e 61 6c 2d 77 69 6e 64 tion.ledger-check--original-wind
19e0 6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 29 0a 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 ow-configuration)...(kill-buffer
1a00 20 28 67 65 74 2d 62 75 66 66 65 72 20 6c 65 64 67 65 72 2d 63 68 65 63 6b 2d 62 75 66 66 65 72 .(get-buffer.ledger-check-buffer
1a20 2d 6e 61 6d 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 63 68 65 63 6b 2d 62 75 -name)))..(defun.ledger-check-bu
1a40 66 66 65 72 20 28 26 6f 70 74 69 6f 6e 61 6c 20 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 22 ffer.(&optional.interactive)..."
1a60 43 68 65 63 6b 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 66 6f 72 20 65 72 72 Check.the.current.buffer.for.err
1a80 6f 72 73 2e 0a 0a 52 75 6e 73 20 6c 65 64 67 65 72 20 77 69 74 68 20 2d 2d 65 78 70 6c 69 63 69 ors...Runs.ledger.with.--explici
1aa0 74 20 61 6e 64 20 2d 2d 73 74 72 69 63 74 20 72 65 70 6f 72 74 20 65 72 72 6f 72 73 20 61 6e 64 t.and.--strict.report.errors.and
1ac0 20 61 73 73 69 73 74 0a 77 69 74 68 20 66 69 78 69 6e 67 20 74 68 65 6d 2e 0a 0a 54 68 65 20 6f .assist.with.fixing.them...The.o
1ae0 75 74 70 75 74 20 62 75 66 66 65 72 20 77 69 6c 6c 20 62 65 20 69 6e 20 60 6c 65 64 67 65 72 2d utput.buffer.will.be.in.`ledger-
1b00 63 68 65 63 6b 2d 6d 6f 64 65 27 2c 20 77 68 69 63 68 20 64 65 66 69 6e 65 73 0a 63 6f 6d 6d 61 check-mode',.which.defines.comma
1b20 6e 64 73 20 66 6f 72 20 6e 61 76 69 67 61 74 69 6e 67 20 74 68 65 20 62 75 66 66 65 72 20 74 6f nds.for.navigating.the.buffer.to
1b40 20 74 68 65 20 65 72 72 6f 72 73 20 66 6f 75 6e 64 2c 20 65 74 63 2e 0a 0a 57 68 65 6e 20 49 4e .the.errors.found,.etc...When.IN
1b60 54 45 52 41 43 54 49 56 45 20 69 73 20 6e 6f 6e 2d 6e 69 6c 20 28 69 2e 65 2e 2c 20 77 68 65 6e TERACTIVE.is.non-nil.(i.e.,.when
1b80 20 63 61 6c 6c 65 64 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 29 2c 0a 70 72 6f 6d 70 74 20 74 .called.interactively),.prompt.t
1ba0 6f 20 73 61 76 65 20 69 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 69 73 20 o.save.if.the.current.buffer.is.
1bc0 6d 6f 64 69 66 69 65 64 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 70 22 29 0a 20 modified."...(interactive."p")..
1be0 20 28 77 68 65 6e 20 28 61 6e 64 20 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 20 20 20 20 20 .(when.(and.interactive.........
1c00 20 20 20 20 20 28 62 75 66 66 65 72 2d 6d 6f 64 69 66 69 65 64 2d 70 29 0a 20 20 20 20 20 20 20 .....(buffer-modified-p)........
1c20 20 20 20 20 20 20 28 79 2d 6f 72 2d 6e 2d 70 20 22 42 75 66 66 65 72 20 6d 6f 64 69 66 69 65 64 ......(y-or-n-p."Buffer.modified
1c40 2c 20 73 61 76 65 20 69 74 3f 20 22 29 29 0a 20 20 20 20 28 73 61 76 65 2d 62 75 66 66 65 72 29 ,.save.it?.")).....(save-buffer)
1c60 29 0a 20 20 28 6c 65 74 20 28 28 5f 62 75 66 20 28 66 69 6e 64 2d 66 69 6c 65 2d 6e 6f 73 65 6c )...(let.((_buf.(find-file-nosel
1c80 65 63 74 20 28 6c 65 64 67 65 72 2d 6d 61 73 74 65 72 2d 66 69 6c 65 29 29 29 0a 20 20 20 20 20 ect.(ledger-master-file)))......
1ca0 20 20 20 28 63 62 75 66 20 28 67 65 74 2d 62 75 66 66 65 72 20 6c 65 64 67 65 72 2d 63 68 65 63 ...(cbuf.(get-buffer.ledger-chec
1cc0 6b 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 28 77 63 66 67 20 28 63 k-buffer-name)).........(wcfg.(c
1ce0 75 72 72 65 6e 74 2d 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 29 29 29 0a 20 urrent-window-configuration)))..
1d00 20 20 20 28 69 66 20 63 62 75 66 0a 20 20 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 ...(if.cbuf.........(kill-buffer
1d20 20 63 62 75 66 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 .cbuf)).....(with-current-buffer
1d40 0a 20 20 20 20 20 20 20 20 28 70 6f 70 2d 74 6f 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 .........(pop-to-buffer.(get-buf
1d60 66 65 72 2d 63 72 65 61 74 65 20 6c 65 64 67 65 72 2d 63 68 65 63 6b 2d 62 75 66 66 65 72 2d 6e fer-create.ledger-check-buffer-n
1d80 61 6d 65 29 29 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 63 68 65 63 6b 2d 6d 6f 64 65 29 0a ame)).......(ledger-check-mode).
1da0 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 63 68 65 63 6b 2d 2d 6f 72 69 67 69 6e ......(setq.ledger-check--origin
1dc0 61 6c 2d 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 77 63 66 67 29 0a 20 20 al-window-configuration.wcfg)...
1de0 20 20 20 20 28 6c 65 64 67 65 72 2d 64 6f 2d 63 68 65 63 6b 29 0a 20 20 20 20 20 20 28 73 68 72 ....(ledger-do-check).......(shr
1e00 69 6e 6b 2d 77 69 6e 64 6f 77 2d 69 66 2d 6c 61 72 67 65 72 2d 74 68 61 6e 2d 62 75 66 66 65 72 ink-window-if-larger-than-buffer
1e20 29 0a 20 20 20 20 20 20 28 73 65 74 2d 62 75 66 66 65 72 2d 6d 6f 64 69 66 69 65 64 2d 70 20 6e ).......(set-buffer-modified-p.n
1e40 69 6c 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 62 75 66 66 65 72 2d 72 65 61 64 2d 6f 6e 6c 79 il).......(setq.buffer-read-only
1e60 20 74 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 71 20 74 6f 20 71 75 69 74 3b 20 72 .t).......(message."q.to.quit;.r
1e80 20 74 6f 20 72 65 64 6f 3b 20 6b 20 74 6f 20 6b 69 6c 6c 22 29 29 29 29 0a 0a 0a 28 70 72 6f 76 .to.redo;.k.to.kill"))))...(prov
1ea0 69 64 65 20 27 6c 65 64 67 65 72 2d 63 68 65 63 6b 29 0a 0a 3b 3b 3b 20 6c 65 64 67 65 72 2d 63 ide.'ledger-check)..;;;.ledger-c
1ec0 68 65 63 6b 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 heck.el.ends.here...............
1ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2000 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 33 32 36 2e 32 30 30 32 2f 6c 65 64 67 65 72 ledger-mode-20240326.2002/ledger
2020 2d 63 6f 6d 6d 6f 64 69 74 69 65 73 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -commodities.el.................
2040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2060 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
2080 30 30 31 35 33 31 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 37 32 36 37 00 20 30 00 00 00 0015316.00000000000.017267..0...
20a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2100 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
2120 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
2140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2200 3b 3b 3b 20 6c 65 64 67 65 72 2d 63 6f 6d 6d 6f 64 69 74 69 65 73 2e 65 6c 20 2d 2d 2d 20 48 65 ;;;.ledger-commodities.el.---.He
2220 6c 70 65 72 20 63 6f 64 65 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 74 68 65 20 22 6c 65 64 67 lper.code.for.use.with.the."ledg
2240 65 72 22 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 74 6f 6f 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 er".command-line.tool..-*-.lexic
2260 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 al-binding:.t;.-*-..;;.Copyright
2280 20 28 43 29 20 32 30 30 33 2d 32 30 31 36 20 4a 6f 68 6e 20 57 69 65 67 6c 65 79 20 28 6a 6f 68 .(C).2003-2016.John.Wiegley.(joh
22a0 6e 77 20 41 54 20 67 6e 75 20 44 4f 54 20 6f 72 67 29 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 nw.AT.gnu.DOT.org)..;;.This.file
22c0 20 69 73 20 6e 6f 74 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 54 .is.not.part.of.GNU.Emacs...;;.T
22e0 68 69 73 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 his.is.free.software;.you.can.re
2300 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 20 75 distribute.it.and/or.modify.it.u
2320 6e 64 65 72 0a 3b 3b 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e nder.;;.the.terms.of.the.GNU.Gen
2340 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 eral.Public.License.as.published
2360 20 62 79 20 74 68 65 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 .by.the.Free.;;.Software.Foundat
2380 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 32 2c 20 6f 72 20 28 61 74 20 79 6f ion;.either.version.2,.or.(at.yo
23a0 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 0a 3b 3b 20 76 65 72 73 69 6f 6e 2e ur.option).any.later.;;.version.
23c0 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 .;;.;;.This.is.distributed.in.th
23e0 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 e.hope.that.it.will.be.useful,.b
2400 75 74 20 57 49 54 48 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 ut.WITHOUT.;;.ANY.WARRANTY;.with
2420 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 out.even.the.implied.warranty.of
2440 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 0a 3b 3b 20 46 49 54 4e 45 53 53 20 46 .MERCHANTABILITY.or.;;.FITNESS.F
2460 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 OR.A.PARTICULAR.PURPOSE...See.th
2480 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 e.GNU.General.Public.License.;;.
24a0 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 for.more.details..;;.;;.You.shou
24c0 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 ld.have.received.a.copy.of.the.G
24e0 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f NU.General.Public.License.;;.alo
2500 6e 67 20 77 69 74 68 20 47 4e 55 20 45 6d 61 63 73 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 ng.with.GNU.Emacs;.see.the.file.
2520 43 4f 50 59 49 4e 47 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b COPYING...If.not,.write.to.the.;
2540 3b 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e ;.Free.Software.Foundation,.Inc.
2560 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f ,.51.Franklin.Street,.Fifth.Floo
2580 72 2c 20 42 6f 73 74 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 20 55 53 41 2e r,.Boston,.;;.MA.02110-1301.USA.
25a0 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 20 48 65 6c 70 65 72 20 66 75 6e 63 ..;;;.Commentary:.;;.Helper.func
25c0 74 69 6f 6e 73 20 74 6f 20 64 65 61 6c 20 77 69 74 68 20 63 6f 6d 6d 6f 64 69 74 69 7a 65 64 20 tions.to.deal.with.commoditized.
25e0 6e 75 6d 62 65 72 73 2e 20 20 41 20 63 6f 6d 6d 6f 64 69 74 69 7a 65 64 0a 3b 3b 20 6e 75 6d 62 numbers...A.commoditized.;;.numb
2600 65 72 20 77 69 6c 6c 20 62 65 20 61 20 6c 69 73 74 20 6f 66 20 76 61 6c 75 65 20 61 6e 64 20 73 er.will.be.a.list.of.value.and.s
2620 74 72 69 6e 67 20 77 68 65 72 65 20 74 68 65 20 73 74 72 69 6e 67 20 63 6f 6e 74 61 69 6e 73 0a tring.where.the.string.contains.
2640 3b 3b 20 74 68 65 20 63 6f 6d 6d 6f 64 69 74 79 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 ;;.the.commodity..;;;.Code:..(re
2660 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 72 65 67 65 78 29 0a 0a 3b 3b 20 54 68 65 73 65 20 6b quire.'ledger-regex)..;;.These.k
2680 65 65 70 20 74 68 65 20 62 79 74 65 2d 63 6f 6d 70 69 6c 65 72 20 66 72 6f 6d 20 77 61 72 6e 69 eep.the.byte-compiler.from.warni
26a0 6e 67 20 61 62 6f 75 74 20 74 68 65 6d 2c 20 62 75 74 20 68 61 76 65 20 6e 6f 20 6f 74 68 65 72 ng.about.them,.but.have.no.other
26c0 0a 3b 3b 20 65 66 66 65 63 74 3a 0a 28 64 65 66 76 61 72 20 6c 65 64 67 65 72 2d 65 6e 76 69 72 .;;.effect:.(defvar.ledger-envir
26e0 6f 6e 6d 65 6e 74 2d 61 6c 69 73 74 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 onment-alist).(declare-function.
2700 6c 65 64 67 65 72 2d 65 78 65 63 2d 6c 65 64 67 65 72 20 22 6c 65 64 67 65 72 2d 65 78 65 63 22 ledger-exec-ledger."ledger-exec"
2720 20 28 69 6e 70 75 74 2d 62 75 66 66 65 72 20 26 6f 70 74 69 6f 6e 61 6c 20 6f 75 74 70 75 74 2d .(input-buffer.&optional.output-
2740 62 75 66 66 65 72 20 26 72 65 73 74 20 61 72 67 73 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 buffer.&rest.args))..(defcustom.
2760 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 64 65 66 61 75 6c 74 2d 63 6f 6d 6d 6f 64 69 ledger-reconcile-default-commodi
2780 74 79 20 22 24 22 0a 20 20 22 54 68 65 20 64 65 66 61 75 6c 74 20 63 6f 6d 6d 6f 64 69 74 79 20 ty."$"..."The.default.commodity.
27a0 66 6f 72 20 75 73 65 20 69 6e 20 74 61 72 67 65 74 20 63 61 6c 63 75 6c 61 74 69 6f 6e 73 20 69 for.use.in.target.calculations.i
27c0 6e 20 6c 65 64 67 65 72 20 72 65 63 6f 6e 63 69 6c 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 73 74 n.ledger.reconcile."...:type.'st
27e0 72 69 6e 67 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 29 ring...:group.'ledger-reconcile)
2800 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 61 64 2d 63 6f 6d 6d 6f 64 69 74 79 2d 77 ..(defun.ledger-read-commodity-w
2820 69 74 68 2d 70 72 6f 6d 70 74 20 28 70 72 6f 6d 70 74 29 0a 20 20 22 52 65 61 64 20 63 6f 6d 6d ith-prompt.(prompt)..."Read.comm
2840 6f 64 69 74 79 20 6e 61 6d 65 20 61 66 74 65 72 20 50 52 4f 4d 50 54 2e 0a 0a 44 65 66 61 75 6c odity.name.after.PROMPT...Defaul
2860 74 20 76 61 6c 75 65 20 69 73 20 60 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 64 65 66 t.value.is.`ledger-reconcile-def
2880 61 75 6c 74 2d 63 6f 6d 6d 6f 64 69 74 79 27 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 62 75 66 66 ault-commodity'."...(let*.((buff
28a0 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 er.(current-buffer))..........(c
28c0 6f 6d 6d 6f 64 69 74 69 65 73 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 ommodities.(with-temp-buffer....
28e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 65 78 65 .....................(ledger-exe
2900 63 2d 6c 65 64 67 65 72 20 62 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 c-ledger.buffer.(current-buffer)
2920 20 22 63 6f 6d 6d 6f 64 69 74 69 65 73 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."commodities").................
2940 20 20 20 20 20 20 20 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 28 62 75 66 66 65 72 2d 73 74 ........(split-string.(buffer-st
2960 72 69 6e 67 29 20 22 5c 6e 22 20 74 29 29 29 29 0a 20 20 20 20 28 63 6f 6d 70 6c 65 74 69 6e 67 ring)."\n".t)))).....(completing
2980 2d 72 65 61 64 20 70 72 6f 6d 70 74 20 63 6f 6d 6d 6f 64 69 74 69 65 73 20 6e 69 6c 20 74 20 6e -read.prompt.commodities.nil.t.n
29a0 69 6c 20 6e 69 6c 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 64 65 66 61 75 6c 74 2d il.nil.ledger-reconcile-default-
29c0 63 6f 6d 6d 6f 64 69 74 79 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 73 70 6c 69 commodity)))..(defun.ledger-spli
29e0 74 2d 63 6f 6d 6d 6f 64 69 74 79 2d 73 74 72 69 6e 67 20 28 73 74 72 29 0a 20 20 22 53 70 6c 69 t-commodity-string.(str)..."Spli
2a00 74 20 61 20 63 6f 6d 6d 6f 64 69 74 69 7a 65 64 20 73 74 72 69 6e 67 2c 20 53 54 52 2c 20 69 6e t.a.commoditized.string,.STR,.in
2a20 74 6f 20 74 77 6f 20 70 61 72 74 73 2e 0a 52 65 74 75 72 6e 73 20 61 20 6c 69 73 74 20 77 69 74 to.two.parts..Returns.a.list.wit
2a40 68 20 28 76 61 6c 75 65 20 63 6f 6d 6d 6f 64 69 74 79 29 2e 22 0a 20 20 28 6c 65 74 20 28 28 6e h.(value.commodity)."...(let.((n
2a60 75 6d 62 65 72 2d 72 65 67 65 78 20 28 69 66 20 28 61 73 73 6f 63 20 22 64 65 63 69 6d 61 6c 2d umber-regex.(if.(assoc."decimal-
2a80 63 6f 6d 6d 61 22 20 6c 65 64 67 65 72 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 61 6c 69 73 74 29 comma".ledger-environment-alist)
2aa0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 64 67 65 ...........................ledge
2ac0 72 2d 61 6d 6f 75 6e 74 2d 64 65 63 69 6d 61 6c 2d 63 6f 6d 6d 61 2d 72 65 67 65 78 0a 20 20 20 r-amount-decimal-comma-regex....
2ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 64 67 65 72 2d 61 6d 6f 75 .....................ledger-amou
2b00 6e 74 2d 64 65 63 69 6d 61 6c 2d 70 65 72 69 6f 64 2d 72 65 67 65 78 29 29 29 0a 20 20 20 20 28 nt-decimal-period-regex))).....(
2b20 69 66 20 28 3e 20 28 6c 65 6e 67 74 68 20 73 74 72 29 20 30 29 0a 20 20 20 20 20 20 20 20 28 77 if.(>.(length.str).0).........(w
2b40 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 ith-temp-buffer...........(inser
2b60 74 20 73 74 72 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 t.str)...........(goto-char.(poi
2b80 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 nt-min))...........(cond........
2ba0 20 20 20 20 28 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5c 22 5c 5c 28 2e 2a ....((re-search-forward."\"\\(.*
2bc0 5c 5c 29 5c 22 22 20 6e 69 6c 20 74 29 20 3b 20 6c 6f 6f 6b 20 66 6f 72 20 71 75 6f 74 65 64 20 \\)\"".nil.t).;.look.for.quoted.
2be0 63 6f 6d 6d 6f 64 69 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 commodities.............(let.((c
2c00 6f 6d 20 28 64 65 6c 65 74 65 2d 61 6e 64 2d 65 78 74 72 61 63 74 2d 72 65 67 69 6f 6e 0a 20 20 om.(delete-and-extract-region...
2c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 74 63 68 2d 62 65 67 ......................(match-beg
2c40 69 6e 6e 69 6e 67 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 inning.1).......................
2c60 20 20 28 6d 61 74 63 68 2d 65 6e 64 20 31 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..(match-end.1))))..............
2c80 20 28 69 66 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 0a 20 20 20 20 20 20 20 20 .(if.(re-search-forward.........
2ca0 20 20 20 20 20 20 20 20 20 20 20 6e 75 6d 62 65 72 2d 72 65 67 65 78 20 6e 69 6c 20 74 29 0a 20 ...........number-regex.nil.t)..
2cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 .................(list..........
2ce0 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 ..........(ledger-string-to-numb
2d00 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 61 er.....................(delete-a
2d20 6e 64 2d 65 78 74 72 61 63 74 2d 72 65 67 69 6f 6e 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 nd-extract-region.(match-beginni
2d40 6e 67 20 30 29 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 ng.0).(match-end.0)))...........
2d60 20 20 20 20 20 20 20 20 20 63 6f 6d 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 72 65 .........com))))............((re
2d80 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 6e 75 6d 62 65 72 2d 72 65 67 65 78 20 6e 69 6c -search-forward.number-regex.nil
2da0 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 66 6f 75 6e 64 20 61 20 6e 75 6d 62 65 .t).............;;.found.a.numbe
2dc0 72 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 6c 6f 63 61 6c 65 2c 20 72 65 74 75 72 6e 20 r.in.the.current.locale,.return.
2de0 69 74 20 69 6e 20 74 68 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 63 61 72 2e 20 20 41 it.in.the.............;;.car...A
2e00 6e 79 74 68 69 6e 67 20 6c 65 66 74 20 6f 76 65 72 20 69 73 20 61 6e 6e 6f 74 61 74 69 6f 6e 2c nything.left.over.is.annotation,
2e20 20 74 68 65 20 66 69 72 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 68 69 6e 67 20 .the.first.............;;.thing.
2e40 73 68 6f 75 6c 64 20 62 65 20 74 68 65 20 63 6f 6d 6d 6f 64 69 74 79 2c 20 73 65 70 61 72 61 74 should.be.the.commodity,.separat
2e60 65 64 20 62 79 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 77 68 69 74 65 73 70 61 63 65 2c ed.by.............;;.whitespace,
2e80 20 72 65 74 75 72 6e 20 69 74 20 69 6e 20 74 68 65 20 63 64 72 2e 20 20 49 20 63 61 6e 27 74 20 .return.it.in.the.cdr...I.can't.
2ea0 74 68 69 6e 6b 20 6f 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 61 6e 79 20 63 6f 75 6e think.of.............;;.any.coun
2ec0 74 65 72 65 78 61 6d 70 6c 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 0a 20 20 terexamples.............(list...
2ee0 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d ...........(ledger-string-to-num
2f00 62 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 61 6e 64 2d 65 78 ber...............(delete-and-ex
2f20 74 72 61 63 74 2d 72 65 67 69 6f 6e 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 tract-region.(match-beginning.0)
2f40 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e .(match-end.0)))..............(n
2f60 74 68 20 30 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 th.0.(split-string.(buffer-subst
2f80 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 ring-no-properties.(point-min).(
2fa0 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 28 72 65 2d point-max))))))............((re-
2fc0 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 30 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 search-forward."0".nil.t).......
2fe0 20 20 20 20 20 20 3b 3b 20 63 6f 75 6c 64 6e 27 74 20 66 69 6e 64 20 61 20 64 65 63 69 6d 61 6c ......;;.couldn't.find.a.decimal
3000 20 6e 75 6d 62 65 72 2c 20 6c 6f 6f 6b 20 66 6f 72 20 61 20 73 69 6e 67 6c 65 20 30 2c 0a 20 20 .number,.look.for.a.single.0,...
3020 20 20 20 20 20 20 20 20 20 20 3b 3b 20 69 6e 64 69 63 61 74 69 6e 67 20 61 63 63 6f 75 6e 74 20 ..........;;.indicating.account.
3040 77 69 74 68 20 7a 65 72 6f 20 62 61 6c 61 6e 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c with.zero.balance.............(l
3060 69 73 74 20 30 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 64 65 66 61 75 6c 74 2d 63 ist.0.ledger-reconcile-default-c
3080 6f 6d 6d 6f 64 69 74 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6e 6f 74 68 69 6e 67 ommodity))............;;.nothing
30a0 20 66 6f 75 6e 64 2c 20 72 65 74 75 72 6e 20 30 0a 20 20 20 20 20 20 20 20 20 20 20 28 74 20 28 .found,.return.0............(t.(
30c0 6c 69 73 74 20 30 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 64 65 66 61 75 6c 74 2d list.0.ledger-reconcile-default-
30e0 63 6f 6d 6d 6f 64 69 74 79 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d commodity)))))))..(defun.ledger-
3100 73 74 72 69 6e 67 2d 62 61 6c 61 6e 63 65 2d 74 6f 2d 63 6f 6d 6d 6f 64 69 74 69 7a 65 64 2d 61 string-balance-to-commoditized-a
3120 6d 6f 75 6e 74 20 28 73 74 72 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 63 6f 6d 6d 6f 64 69 74 mount.(str)..."Return.a.commodit
3140 69 7a 65 64 20 61 6d 6f 75 6e 74 20 28 76 61 6c 2c 20 5c 22 63 6f 6d 6d 5c 22 29 20 66 72 6f 6d ized.amount.(val,.\"comm\").from
3160 20 53 54 52 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .STR."..........................
3180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 62 72 65 61 6b 20 61 6e 79 20 62 61 6c 61 6e ...............;.break.any.balan
31a0 63 65 73 20 77 69 74 68 20 6d 75 6c 74 69 20 63 6f 6d 6d 6f 64 69 74 69 65 73 20 69 6e 74 6f 20 ces.with.multi.commodities.into.
31c0 61 20 6c 69 73 74 0a 20 20 28 6d 61 70 63 61 72 20 23 27 28 6c 61 6d 62 64 61 20 28 73 74 29 0a a.list...(mapcar.#'(lambda.(st).
31e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 73 70 6c 69 74 2d 63 6f 6d 6d ..............(ledger-split-comm
3200 6f 64 69 74 79 2d 73 74 72 69 6e 67 20 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 70 6c odity-string.st))...........(spl
3220 69 74 2d 73 74 72 69 6e 67 20 73 74 72 20 22 5b 5c 6e 5c 72 5d 22 29 29 29 0a 0a 28 64 65 66 75 it-string.str."[\n\r]")))..(defu
3240 6e 20 6c 65 64 67 65 72 2d 73 75 62 74 72 61 63 74 2d 63 6f 6d 6d 6f 64 69 74 79 20 28 63 31 20 n.ledger-subtract-commodity.(c1.
3260 63 32 29 0a 20 20 22 53 75 62 74 72 61 63 74 20 43 32 20 66 72 6f 6d 20 43 31 2c 20 65 6e 73 75 c2)..."Subtract.C2.from.C1,.ensu
3280 72 69 6e 67 20 74 68 65 69 72 20 63 6f 6d 6d 6f 64 69 74 69 65 73 20 6d 61 74 63 68 2e 0a 0a 41 ring.their.commodities.match...A
32a0 73 20 61 6e 20 65 78 63 65 70 74 69 6f 6e 2c 20 69 66 20 74 68 65 20 71 75 61 6e 74 69 74 79 20 s.an.exception,.if.the.quantity.
32c0 6f 66 20 43 32 20 69 73 20 7a 65 72 6f 2c 20 43 31 20 69 73 20 72 65 74 75 72 6e 65 64 0a 64 69 of.C2.is.zero,.C1.is.returned.di
32e0 72 65 63 74 6c 79 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 7a 65 72 6f 70 20 28 63 61 72 rectly."...(cond....((zerop.(car
3300 20 63 32 29 29 20 63 31 29 0a 20 20 20 28 28 73 74 72 69 6e 67 3d 20 28 63 61 64 72 20 63 31 29 .c2)).c1)....((string=.(cadr.c1)
3320 20 28 63 61 64 72 20 63 32 29 29 0a 20 20 20 20 28 6c 69 73 74 20 28 2d 20 28 63 61 72 20 63 31 .(cadr.c2)).....(list.(-.(car.c1
3340 29 20 28 63 61 72 20 63 32 29 29 20 28 63 61 64 72 20 63 31 29 29 29 0a 20 20 20 28 74 20 28 65 ).(car.c2)).(cadr.c1)))....(t.(e
3360 72 72 6f 72 20 22 43 61 6e 27 74 20 73 75 62 74 72 61 63 74 20 64 69 66 66 65 72 65 6e 74 20 63 rror."Can't.subtract.different.c
3380 6f 6d 6d 6f 64 69 74 69 65 73 3a 20 25 53 20 2d 20 25 53 22 20 63 31 20 63 32 29 29 29 29 0a 0a ommodities:.%S.-.%S".c1.c2))))..
33a0 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 61 64 64 2d 63 6f 6d 6d 6f 64 69 74 79 20 28 63 31 20 (defun.ledger-add-commodity.(c1.
33c0 63 32 29 0a 20 20 22 41 64 64 20 43 31 20 61 6e 64 20 43 32 2c 20 65 6e 73 75 72 69 6e 67 20 74 c2)..."Add.C1.and.C2,.ensuring.t
33e0 68 65 69 72 20 63 6f 6d 6d 6f 64 69 74 69 65 73 20 6d 61 74 63 68 2e 0a 0a 41 73 20 61 6e 20 65 heir.commodities.match...As.an.e
3400 78 63 65 70 74 69 6f 6e 2c 20 69 66 20 74 68 65 20 71 75 61 6e 74 69 74 79 20 6f 66 20 43 32 20 xception,.if.the.quantity.of.C2.
3420 69 73 20 7a 65 72 6f 2c 20 43 31 20 69 73 20 72 65 74 75 72 6e 65 64 0a 64 69 72 65 63 74 6c 79 is.zero,.C1.is.returned.directly
3440 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 7a 65 72 6f 70 20 28 63 61 72 20 63 32 29 29 20 ."...(cond....((zerop.(car.c2)).
3460 63 31 29 0a 20 20 20 28 28 73 74 72 69 6e 67 3d 20 28 63 61 64 72 20 63 31 29 20 28 63 61 64 72 c1)....((string=.(cadr.c1).(cadr
3480 20 63 32 29 29 0a 20 20 20 20 28 6c 69 73 74 20 28 2b 20 28 63 61 72 20 63 31 29 20 28 63 61 72 .c2)).....(list.(+.(car.c1).(car
34a0 20 63 32 29 29 20 28 63 61 64 72 20 63 31 29 29 29 0a 20 20 20 28 74 20 28 65 72 72 6f 72 20 22 .c2)).(cadr.c1)))....(t.(error."
34c0 43 61 6e 27 74 20 61 64 64 20 64 69 66 66 65 72 65 6e 74 20 63 6f 6d 6d 6f 64 69 74 69 65 73 3a Can't.add.different.commodities:
34e0 20 25 53 20 2b 20 25 53 22 20 63 31 20 63 32 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 .%S.+.%S".c1.c2))))..(defun.ledg
3500 65 72 2d 73 74 72 69 70 20 28 73 74 72 20 63 68 61 72 29 0a 20 20 22 52 65 74 75 72 6e 20 53 54 er-strip.(str.char)..."Return.ST
3520 52 20 77 69 74 68 20 43 48 41 52 20 72 65 6d 6f 76 65 64 2e 22 0a 20 20 28 72 65 70 6c 61 63 65 R.with.CHAR.removed."...(replace
3540 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 20 63 68 61 72 20 22 22 20 73 74 72 29 29 0a -regexp-in-string.char."".str)).
3560 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 .(defun.ledger-string-to-number.
3580 28 73 74 72 20 26 6f 70 74 69 6f 6e 61 6c 20 64 65 63 69 6d 61 6c 2d 63 6f 6d 6d 61 29 0a 20 20 (str.&optional.decimal-comma)...
35a0 22 50 61 72 73 65 20 53 54 52 20 61 73 20 61 20 6e 75 6d 62 65 72 20 61 6e 64 20 72 65 74 75 72 "Parse.STR.as.a.number.and.retur
35c0 6e 20 74 68 61 74 20 6e 75 6d 62 65 72 2e 0a 0a 49 6d 70 72 6f 76 65 73 20 62 75 69 6c 74 69 6e n.that.number...Improves.builtin
35e0 20 60 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 27 20 62 79 20 68 61 6e 64 6c 69 6e 67 0a .`string-to-number'.by.handling.
3600 69 6e 74 65 72 6e 61 74 69 6f 6e 61 6c 69 7a 61 74 69 6f 6e 2c 20 61 6e 64 20 72 65 74 75 72 6e internationalization,.and.return
3620 20 6e 69 6c 20 69 66 20 6e 75 6d 62 65 72 20 63 61 6e 27 74 20 62 65 20 70 61 72 73 65 64 2e 0a .nil.if.number.can't.be.parsed..
3640 53 65 65 20 60 6c 65 64 67 65 72 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 61 6c 69 73 74 27 20 66 See.`ledger-environment-alist'.f
3660 6f 72 20 44 45 43 49 4d 41 4c 2d 43 4f 4d 4d 41 2e 22 0a 20 20 28 6c 65 74 20 28 28 6e 73 74 72 or.DECIMAL-COMMA."...(let.((nstr
3680 20 28 69 66 20 28 6f 72 20 64 65 63 69 6d 61 6c 2d 63 6f 6d 6d 61 0a 20 20 20 20 20 20 20 20 20 .(if.(or.decimal-comma..........
36a0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 73 73 6f 63 20 22 64 65 63 69 6d 61 6c 2d 63 6f 6d .............(assoc."decimal-com
36c0 6d 61 22 20 6c 65 64 67 65 72 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 61 6c 69 73 74 29 29 0a 20 ma".ledger-environment-alist))..
36e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 73 74 72 69 70 20 73 .................(ledger-strip.s
3700 74 72 20 22 5b 2e 5d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 tr."[.]").................(ledge
3720 72 2d 73 74 72 69 70 20 73 74 72 20 22 2c 22 29 29 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 r-strip.str.",")))).....(while.(
3740 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 2c 22 20 6e 73 74 72 29 20 20 3b 69 66 20 74 68 65 72 string-match.",".nstr)..;if.ther
3760 65 20 69 73 20 61 20 63 6f 6d 6d 61 20 6e 6f 77 2c 20 69 74 20 69 73 20 61 20 64 65 63 69 6d 61 e.is.a.comma.now,.it.is.a.decima
3780 6c 20 70 6f 69 6e 74 0a 20 20 20 20 20 20 28 73 65 74 71 20 6e 73 74 72 20 28 72 65 70 6c 61 63 l.point.......(setq.nstr.(replac
37a0 65 2d 6d 61 74 63 68 20 22 2e 22 20 6e 69 6c 20 6e 69 6c 20 6e 73 74 72 29 29 29 0a 20 20 20 20 e-match.".".nil.nil.nstr))).....
37c0 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 6e 73 74 72 29 29 29 0a 0a 28 64 65 66 75 (string-to-number.nstr)))..(defu
37e0 6e 20 6c 65 64 67 65 72 2d 6e 75 6d 62 65 72 2d 74 6f 2d 73 74 72 69 6e 67 20 28 6e 20 26 6f 70 n.ledger-number-to-string.(n.&op
3800 74 69 6f 6e 61 6c 20 64 65 63 69 6d 61 6c 2d 63 6f 6d 6d 61 29 0a 20 20 22 53 65 65 20 60 6e 75 tional.decimal-comma)..."See.`nu
3820 6d 62 65 72 2d 74 6f 2d 73 74 72 69 6e 67 27 20 66 6f 72 20 4e 2e 0a 44 45 43 49 4d 41 4c 2d 43 mber-to-string'.for.N..DECIMAL-C
3840 4f 4d 4d 41 20 69 73 20 61 73 20 64 6f 63 75 6d 65 6e 74 65 64 20 69 6e 20 60 6c 65 64 67 65 72 OMMA.is.as.documented.in.`ledger
3860 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 61 6c 69 73 74 27 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 -environment-alist'."...(let.((s
3880 74 72 20 28 6e 75 6d 62 65 72 2d 74 6f 2d 73 74 72 69 6e 67 20 6e 29 29 29 0a 20 20 20 20 28 77 tr.(number-to-string.n))).....(w
38a0 68 65 6e 20 28 6f 72 20 64 65 63 69 6d 61 6c 2d 63 6f 6d 6d 61 0a 20 20 20 20 20 20 20 20 20 20 hen.(or.decimal-comma...........
38c0 20 20 20 20 28 61 73 73 6f 63 20 22 64 65 63 69 6d 61 6c 2d 63 6f 6d 6d 61 22 20 6c 65 64 67 65 ....(assoc."decimal-comma".ledge
38e0 72 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 61 6c 69 73 74 29 29 0a 20 20 20 20 20 20 28 77 68 69 r-environment-alist)).......(whi
3900 6c 65 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5c 5c 2e 22 20 73 74 72 29 0a 20 20 20 20 le.(string-match."\\.".str).....
3920 20 20 20 20 28 73 65 74 71 20 73 74 72 20 28 72 65 70 6c 61 63 65 2d 6d 61 74 63 68 20 22 2c 22 ....(setq.str.(replace-match.","
3940 20 6e 69 6c 20 6e 69 6c 20 73 74 72 29 29 29 29 0a 20 20 20 20 73 74 72 29 29 0a 0a 28 64 65 66 .nil.nil.str)))).....str))..(def
3960 75 6e 20 6c 65 64 67 65 72 2d 63 6f 6d 6d 6f 64 69 74 79 2d 74 6f 2d 73 74 72 69 6e 67 20 28 63 un.ledger-commodity-to-string.(c
3980 31 29 0a 20 20 22 52 65 74 75 72 6e 20 73 74 72 69 6e 67 20 72 65 70 72 65 73 65 6e 74 69 6e 67 1)..."Return.string.representing
39a0 20 43 31 2e 0a 53 69 6e 67 6c 65 20 63 68 61 72 61 63 74 65 72 20 63 6f 6d 6d 6f 64 69 74 69 65 .C1..Single.character.commoditie
39c0 73 20 61 72 65 20 70 6c 61 63 65 64 20 61 68 65 61 64 20 6f 66 20 74 68 65 20 76 61 6c 75 65 2c s.are.placed.ahead.of.the.value,
39e0 0a 6c 6f 6e 67 65 72 20 6f 6e 65 73 20 61 72 65 20 61 66 74 65 72 20 74 68 65 20 76 61 6c 75 65 .longer.ones.are.after.the.value
3a00 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 74 72 20 28 6c 65 64 67 65 72 2d 6e 75 6d 62 65 72 2d 74 ."...(let.((str.(ledger-number-t
3a20 6f 2d 73 74 72 69 6e 67 20 28 63 61 72 20 63 31 29 29 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6d o-string.(car.c1))).........(com
3a40 6d 6f 64 69 74 79 20 28 63 61 64 72 20 63 31 29 29 29 0a 20 20 20 20 28 69 66 20 28 3e 20 28 6c modity.(cadr.c1))).....(if.(>.(l
3a60 65 6e 67 74 68 20 63 6f 6d 6d 6f 64 69 74 79 29 20 31 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6e ength.commodity).1).........(con
3a80 63 61 74 20 73 74 72 20 22 20 22 20 63 6f 6d 6d 6f 64 69 74 79 29 0a 20 20 20 20 20 20 28 63 6f cat.str.".".commodity).......(co
3aa0 6e 63 61 74 20 63 6f 6d 6d 6f 64 69 74 79 20 22 20 22 20 73 74 72 29 29 29 29 0a 0a 28 64 65 66 ncat.commodity.".".str))))..(def
3ac0 75 6e 20 6c 65 64 67 65 72 2d 72 65 61 64 2d 63 6f 6d 6d 6f 64 69 74 79 2d 73 74 72 69 6e 67 20 un.ledger-read-commodity-string.
3ae0 28 70 72 6f 6d 70 74 29 0a 20 20 22 52 65 61 64 20 61 6e 20 61 6d 6f 75 6e 74 20 66 72 6f 6d 20 (prompt)..."Read.an.amount.from.
3b00 6d 69 6e 69 2d 62 75 66 66 65 72 20 75 73 69 6e 67 20 50 52 4f 4d 50 54 2e 22 0a 20 20 28 6c 65 mini-buffer.using.PROMPT."...(le
3b20 74 20 28 28 73 74 72 20 28 72 65 61 64 2d 66 72 6f 6d 2d 6d 69 6e 69 62 75 66 66 65 72 0a 20 20 t.((str.(read-from-minibuffer...
3b40 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 70 72 6f 6d 70 74 20 22 20 28 22 20 ............(concat.prompt.".(".
3b60 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 64 65 66 61 75 6c 74 2d 63 6f 6d 6d 6f 64 69 ledger-reconcile-default-commodi
3b80 74 79 20 22 29 3a 20 22 29 29 29 0a 20 20 20 20 20 20 20 20 63 6f 6d 6d 29 0a 20 20 20 20 28 77 ty."):."))).........comm).....(w
3ba0 68 65 6e 20 28 61 6e 64 20 28 3e 20 28 6c 65 6e 67 74 68 20 73 74 72 29 20 30 29 0a 20 20 20 20 hen.(and.(>.(length.str).0).....
3bc0 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 73 70 6c 69 74 2d 63 6f 6d 6d 6f 64 69 74 79 .........(ledger-split-commodity
3be0 2d 73 74 72 69 6e 67 20 73 74 72 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6d 6d 20 28 -string.str)).......(setq.comm.(
3c00 6c 65 64 67 65 72 2d 73 70 6c 69 74 2d 63 6f 6d 6d 6f 64 69 74 79 2d 73 74 72 69 6e 67 20 73 74 ledger-split-commodity-string.st
3c20 72 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 63 61 64 72 20 63 6f 6d 6d 29 0a 20 20 20 20 20 20 r)).......(if.(cadr.comm).......
3c40 20 20 20 20 63 6f 6d 6d 0a 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 63 61 72 20 63 6f 6d 6d ....comm.........(list.(car.comm
3c60 29 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 64 65 66 61 75 6c 74 2d 63 6f 6d 6d 6f ).ledger-reconcile-default-commo
3c80 64 69 74 79 29 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 6c 65 64 67 65 72 2d 63 6f 6d 6d dity)))))..(provide.'ledger-comm
3ca0 6f 64 69 74 69 65 73 29 0a 0a 3b 3b 3b 20 6c 65 64 67 65 72 2d 63 6f 6d 6d 6f 64 69 74 69 65 73 odities)..;;;.ledger-commodities
3cc0 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .el.ends.here...................
3ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e00 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 33 32 36 2e 32 30 30 32 2f 6c 65 64 67 65 72 ledger-mode-20240326.2002/ledger
3e20 2d 63 6f 6d 70 6c 65 74 65 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -complete.el....................
3e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3e60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
3e80 30 30 33 37 32 37 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 35 37 34 00 20 30 00 00 00 0037276.00000000000.016574..0...
3ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3f00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
3f20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
3f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4000 3b 3b 3b 20 6c 65 64 67 65 72 2d 63 6f 6d 70 6c 65 74 65 2e 65 6c 20 2d 2d 2d 20 48 65 6c 70 65 ;;;.ledger-complete.el.---.Helpe
4020 72 20 63 6f 64 65 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 74 68 65 20 22 6c 65 64 67 65 72 22 r.code.for.use.with.the."ledger"
4040 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 74 6f 6f 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d .command-line.tool..-*-.lexical-
4060 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 binding:.t;.-*-..;;.Copyright.(C
4080 29 20 32 30 30 33 2d 32 30 31 36 20 4a 6f 68 6e 20 57 69 65 67 6c 65 79 20 28 6a 6f 68 6e 77 20 ).2003-2016.John.Wiegley.(johnw.
40a0 41 54 20 67 6e 75 20 44 4f 54 20 6f 72 67 29 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 AT.gnu.DOT.org)..;;.This.file.is
40c0 20 6e 6f 74 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 54 68 69 73 .not.part.of.GNU.Emacs...;;.This
40e0 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 .is.free.software;.you.can.redis
4100 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 20 75 6e 64 65 tribute.it.and/or.modify.it.unde
4120 72 0a 3b 3b 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 r.;;.the.terms.of.the.GNU.Genera
4140 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 l.Public.License.as.published.by
4160 20 74 68 65 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e .the.Free.;;.Software.Foundation
4180 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 32 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 ;.either.version.2,.or.(at.your.
41a0 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 0a 3b 3b 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b option).any.later.;;.version..;;
41c0 0a 3b 3b 20 54 68 69 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 .;;.This.is.distributed.in.the.h
41e0 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 ope.that.it.will.be.useful,.but.
4200 57 49 54 48 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 WITHOUT.;;.ANY.WARRANTY;.without
4220 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 .even.the.implied.warranty.of.ME
4240 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 0a 3b 3b 20 46 49 54 4e 45 53 53 20 46 4f 52 20 RCHANTABILITY.or.;;.FITNESS.FOR.
4260 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 A.PARTICULAR.PURPOSE...See.the.G
4280 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 66 6f 72 NU.General.Public.License.;;.for
42a0 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 .more.details..;;.;;.You.should.
42c0 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 have.received.a.copy.of.the.GNU.
42e0 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 General.Public.License.;;.along.
4300 77 69 74 68 20 47 4e 55 20 45 6d 61 63 73 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 with.GNU.Emacs;.see.the.file.COP
4320 59 49 4e 47 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 YING...If.not,.write.to.the.;;.F
4340 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 ree.Software.Foundation,.Inc.,.5
4360 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 1.Franklin.Street,.Fifth.Floor,.
4380 42 6f 73 74 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 20 55 53 41 2e 0a 0a 3b Boston,.;;.MA.02110-1301.USA...;
43a0 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 20 46 75 6e 63 74 69 6f 6e 73 20 70 72 6f 76 ;;.Commentary:.;;.Functions.prov
43c0 69 64 69 6e 67 20 70 61 79 65 65 20 61 6e 64 20 61 63 63 6f 75 6e 74 20 61 75 74 6f 20 63 6f 6d iding.payee.and.account.auto.com
43e0 70 6c 65 74 65 2e 0a 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 0a 28 65 76 61 6c 2d plete...(require.'cl-lib).(eval-
4400 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 0a 20 20 28 72 65 71 75 69 72 65 20 27 73 75 62 72 2d 78 29 when-compile...(require.'subr-x)
4420 29 0a 0a 3b 3b 20 49 6e 2d 70 6c 61 63 65 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 73 75 70 70 6f 72 )..;;.In-place.completion.suppor
4440 74 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 63 6f t..;;;.Code:.(require.'ledger-co
4460 6e 74 65 78 74 29 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 78 61 63 74 29 0a 28 72 ntext).(require.'ledger-xact).(r
4480 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 29 0a 0a 28 64 65 66 63 75 equire.'ledger-schedule)..(defcu
44a0 73 74 6f 6d 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 66 69 6c 65 20 6e 69 6c 0a 20 20 stom.ledger-accounts-file.nil...
44c0 22 54 68 65 20 70 61 74 68 20 74 6f 20 61 6e 20 6f 70 74 69 6f 6e 61 6c 20 66 69 6c 65 20 69 6e "The.path.to.an.optional.file.in
44e0 20 77 68 69 63 68 20 61 6c 6c 20 61 63 63 6f 75 6e 74 73 20 61 72 65 20 75 73 65 64 20 6f 72 20 .which.all.accounts.are.used.or.
4500 64 65 63 6c 61 72 65 64 2e 0a 54 68 69 73 20 66 69 6c 65 20 77 69 6c 6c 20 74 68 65 6e 20 62 65 declared..This.file.will.then.be
4520 20 75 73 65 64 20 61 73 20 61 20 73 6f 75 72 63 65 20 66 6f 72 20 61 63 63 6f 75 6e 74 20 6e 61 .used.as.a.source.for.account.na
4540 6d 65 0a 63 6f 6d 70 6c 65 74 69 6f 6e 73 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 63 75 me.completions.instead.of.the.cu
4560 72 72 65 6e 74 20 66 69 6c 65 2e 0a 53 65 65 20 6c 65 64 67 65 72 27 73 0a 5c 22 61 63 63 6f 75 rrent.file..See.ledger's.\"accou
4580 6e 74 5c 22 20 64 69 72 65 63 74 69 76 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 63 68 6f 69 63 nt\".directive."...:type.'(choic
45a0 65 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 55 73 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 e.(const.:tag."Use.current.buffe
45c0 72 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 22 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 r.for.completion".nil)..........
45e0 20 20 20 20 20 20 20 20 66 69 6c 65 29 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 0a 20 ........file)...:group.'ledger..
4600 20 3a 73 61 66 65 20 23 27 73 74 72 69 6e 67 2d 6f 72 2d 6e 75 6c 6c 2d 70 29 0a 0a 28 64 65 66 .:safe.#'string-or-null-p)..(def
4620 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 70 61 79 65 65 73 2d 66 69 6c 65 20 6e 69 6c 0a 20 20 custom.ledger-payees-file.nil...
4640 22 54 68 65 20 70 61 74 68 20 74 6f 20 61 6e 20 6f 70 74 69 6f 6e 61 6c 20 66 69 6c 65 20 69 6e "The.path.to.an.optional.file.in
4660 20 77 68 69 63 68 20 61 6c 6c 20 70 61 79 65 65 73 20 61 72 65 20 75 73 65 64 20 6f 72 20 64 65 .which.all.payees.are.used.or.de
4680 63 6c 61 72 65 64 2e 0a 54 68 69 73 20 66 69 6c 65 20 77 69 6c 6c 20 74 68 65 6e 20 62 65 20 75 clared..This.file.will.then.be.u
46a0 73 65 64 20 61 73 20 61 20 73 6f 75 72 63 65 20 66 6f 72 20 70 61 79 65 65 20 6e 61 6d 65 0a 63 sed.as.a.source.for.payee.name.c
46c0 6f 6d 70 6c 65 74 69 6f 6e 73 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e ompletions.instead.of.the.curren
46e0 74 20 66 69 6c 65 2e 0a 53 65 65 20 6c 65 64 67 65 72 27 73 20 5c 22 70 61 79 65 65 5c 22 20 64 t.file..See.ledger's.\"payee\".d
4700 69 72 65 63 74 69 76 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65 20 28 63 6f 6e irective."...:type.'(choice.(con
4720 73 74 20 3a 74 61 67 20 22 55 73 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 66 6f 72 20 st.:tag."Use.current.buffer.for.
4740 63 6f 6d 70 6c 65 74 69 6f 6e 22 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 completion".nil)................
4760 20 20 66 69 6c 65 29 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 0a 20 20 3a 73 61 66 65 ..file)...:group.'ledger...:safe
4780 20 23 27 73 74 72 69 6e 67 2d 6f 72 2d 6e 75 6c 6c 2d 70 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d .#'string-or-null-p)..(defcustom
47a0 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 65 78 63 6c 75 64 65 2d 66 75 6e 63 74 69 6f .ledger-accounts-exclude-functio
47c0 6e 20 6e 69 6c 0a 20 20 22 46 75 6e 63 74 69 6f 6e 20 74 6f 20 65 78 63 6c 75 64 65 20 61 63 63 n.nil..."Function.to.exclude.acc
47e0 6f 75 6e 74 73 20 66 72 6f 6d 20 63 6f 6d 70 6c 65 74 69 6f 6e 2e 0a 53 68 6f 75 6c 64 20 62 65 ounts.from.completion..Should.be
4800 20 61 20 70 72 65 64 69 63 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 61 63 63 65 70 .a.predicate.function.that.accep
4820 74 73 20 6f 6e 65 20 61 72 67 75 6d 65 6e 74 2c 20 61 6e 0a 65 6c 65 6d 65 6e 74 20 6f 66 20 60 ts.one.argument,.an.element.of.`
4840 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 6c 69 73 74 2d 69 6e 2d 62 75 66 66 65 72 27 2e ledger-accounts-list-in-buffer'.
4860 22 0a 20 20 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 "...:type.'(choice.(const.:tag."
4880 44 6f 20 6e 6f 74 20 65 78 63 6c 75 64 65 20 61 6e 79 20 61 63 63 6f 75 6e 74 73 20 66 72 6f 6d Do.not.exclude.any.accounts.from
48a0 20 63 6f 6d 70 6c 65 74 69 6f 6e 22 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .completion".nil)...............
48c0 20 20 20 66 75 6e 63 74 69 6f 6e 29 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 0a 20 20 ...function)...:group.'ledger...
48e0 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 6c 65 64 67 65 72 2d 6d 6f 64 65 20 2e :package-version.'(ledger-mode..
4900 20 22 32 30 31 39 2d 30 38 2d 31 34 22 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 ."2019-08-14"))..(defcustom.ledg
4920 65 72 2d 63 6f 6d 70 6c 65 74 65 2d 69 6e 2d 73 74 65 70 73 20 6e 69 6c 0a 20 20 22 57 68 65 6e er-complete-in-steps.nil..."When
4940 20 6e 6f 6e 2d 6e 69 6c 2c 20 60 6c 65 64 67 65 72 2d 63 6f 6d 70 6c 65 74 65 2d 61 74 2d 70 6f .non-nil,.`ledger-complete-at-po
4960 69 6e 74 27 20 63 6f 6d 70 6c 65 74 65 73 20 61 63 63 6f 75 6e 74 20 6e 61 6d 65 73 20 69 6e 20 int'.completes.account.names.in.
4980 73 74 65 70 73 2e 0a 49 66 20 6e 69 6c 2c 20 66 75 6c 6c 20 61 63 63 6f 75 6e 74 20 6e 61 6d 65 steps..If.nil,.full.account.name
49a0 73 20 61 72 65 20 6f 66 66 65 72 65 64 20 66 6f 72 20 63 6f 6d 70 6c 65 74 69 6f 6e 2e 22 0a 20 s.are.offered.for.completion."..
49c0 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 .:type.'boolean...:group.'ledger
49e0 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 6c 65 64 67 65 72 2d 6d 6f 64 ...:package-version.'(ledger-mod
4a00 65 20 2e 20 22 34 2e 30 2e 30 22 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 70 61 72 e..."4.0.0"))..(defun.ledger-par
4a20 73 65 2d 61 72 67 75 6d 65 6e 74 73 20 28 29 0a 20 20 22 50 61 72 73 65 20 77 68 69 74 65 73 70 se-arguments.()..."Parse.whitesp
4a40 61 63 65 20 73 65 70 61 72 61 74 65 64 20 61 72 67 75 6d 65 6e 74 73 20 69 6e 20 74 68 65 20 63 ace.separated.arguments.in.the.c
4a60 75 72 72 65 6e 74 20 72 65 67 69 6f 6e 2e 22 0a 20 20 3b 3b 20 46 49 58 4d 45 3a 20 57 65 20 64 urrent.region."...;;.FIXME:.We.d
4a80 6f 6e 27 74 20 75 73 65 20 70 63 6f 6d 70 6c 65 74 65 20 61 6e 79 6d 6f 72 65 2e 0a 20 20 3b 3b on't.use.pcomplete.anymore....;;
4aa0 20 54 68 69 73 20 69 73 20 6d 6f 72 65 20 63 6f 6d 70 6c 65 78 20 74 68 61 6e 20 69 74 20 61 70 .This.is.more.complex.than.it.ap
4ac0 70 65 61 72 73 0a 20 20 3b 3b 20 74 6f 20 6e 65 65 64 2c 20 73 6f 20 74 68 61 74 20 69 74 20 63 pears...;;.to.need,.so.that.it.c
4ae0 61 6e 20 77 6f 72 6b 20 77 69 74 68 20 70 63 6f 6d 70 6c 65 74 65 2e 20 20 53 65 65 0a 20 20 3b an.work.with.pcomplete...See...;
4b00 3b 20 70 63 6f 6d 70 6c 65 74 65 2d 70 61 72 73 65 2d 61 72 67 75 6d 65 6e 74 73 2d 66 75 6e 63 ;.pcomplete-parse-arguments-func
4b20 74 69 6f 6e 20 66 6f 72 20 64 65 74 61 69 6c 73 0a 20 20 28 6c 65 74 2a 20 28 28 62 65 67 69 6e tion.for.details...(let*.((begin
4b40 20 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(save-match-data...............
4b60 20 20 20 20 28 69 66 20 28 6c 6f 6f 6b 69 6e 67 2d 62 61 63 6b 20 28 63 6f 6e 63 61 74 20 22 5e ....(if.(looking-back.(concat."^
4b80 5c 5c 28 22 20 6c 65 64 67 65 72 2d 69 73 6f 2d 64 61 74 65 2d 72 65 67 65 78 70 20 22 3d 5c 5c \\(".ledger-iso-date-regexp."=\\
4ba0 7c 5c 5c 29 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |\\)"...........................
4bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 64 67 65 72 2d 69 6e 63 6f 6d 70 6c ..................ledger-incompl
4be0 65 74 65 2d 64 61 74 65 2d 72 65 67 65 78 70 29 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 ete-date-regexp).nil)...........
4c00 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 74 63 68 2d 65 6e 64 20 31 29 0a 20 20 20 20 20 20 ............(match-end.1).......
4c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 ..............(save-excursion...
4c40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 74 68 69 6e ....................(ledger-thin
4c60 67 2d 61 74 2d 70 6f 69 6e 74 29 20 3b 3b 20 6c 65 61 76 65 20 70 6f 69 6e 74 20 61 74 20 62 65 g-at-point).;;.leave.point.at.be
4c80 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 69 6e 67 20 75 6e 64 65 72 20 70 6f 69 6e 74 0a 20 20 20 ginning.of.thing.under.point....
4ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 29 29 29 29 0a 20 ...................(point)))))..
4cc0 20 20 20 20 20 20 20 20 28 65 6e 64 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 62 ........(end.(point))..........b
4ce0 65 67 69 6e 73 20 61 72 67 73 29 0a 20 20 20 20 3b 3b 20 74 6f 20 73 75 70 70 6f 72 74 20 65 6e egins.args).....;;.to.support.en
4d00 64 20 6f 66 20 6c 69 6e 65 20 6d 65 74 61 64 61 74 61 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 d.of.line.metadata.....(save-exc
4d20 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 73 65 61 72 63 68 2d 62 61 63 6b 77 ursion.......(when.(search-backw
4d40 61 72 64 20 22 3b 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ard.";".........................
4d60 20 20 20 20 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 20 74 .....(line-beginning-position).t
4d80 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 62 65 67 69 6e 20 28 6d 61 74 63 68 2d 62 65 67 ).........(setq.begin.(match-beg
4da0 69 6e 6e 69 6e 67 20 30 29 29 29 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e inning.0)))).....(save-excursion
4dc0 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 62 65 67 69 6e 29 0a 20 20 20 20 20 20 28 .......(goto-char.begin).......(
4de0 77 68 65 6e 20 28 3c 20 28 70 6f 69 6e 74 29 20 65 6e 64 29 0a 20 20 20 20 20 20 20 20 28 73 6b when.(<.(point).end).........(sk
4e00 69 70 2d 63 68 61 72 73 2d 66 6f 72 77 61 72 64 20 22 20 5c 74 5c 6e 22 29 0a 20 20 20 20 20 20 ip-chars-forward.".\t\n").......
4e20 20 20 28 73 65 74 71 20 62 65 67 69 6e 73 20 28 63 6f 6e 73 20 28 70 6f 69 6e 74 29 20 62 65 67 ..(setq.begins.(cons.(point).beg
4e40 69 6e 73 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 61 72 67 73 20 28 63 6f 6e 73 20 28 ins)).........(setq.args.(cons.(
4e60 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 0a 20 buffer-substring-no-properties..
4e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 62 65 .........................(car.be
4ea0 67 69 6e 73 29 20 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 gins).end)......................
4ec0 20 20 20 20 61 72 67 73 29 29 29 0a 20 20 20 20 20 20 28 63 6f 6e 73 20 28 72 65 76 65 72 73 65 ....args))).......(cons.(reverse
4ee0 20 61 72 67 73 29 20 28 72 65 76 65 72 73 65 20 62 65 67 69 6e 73 29 29 29 29 29 0a 0a 0a 28 64 .args).(reverse.begins)))))...(d
4f00 65 66 75 6e 20 6c 65 64 67 65 72 2d 70 61 79 65 65 73 2d 69 6e 2d 62 75 66 66 65 72 20 28 29 0a efun.ledger-payees-in-buffer.().
4f20 20 20 22 53 63 61 6e 20 62 75 66 66 65 72 20 61 6e 64 20 72 65 74 75 72 6e 20 6c 69 73 74 20 6f .."Scan.buffer.and.return.list.o
4f40 66 20 61 6c 6c 20 70 61 79 65 65 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 6f 72 69 67 69 6e 20 28 f.all.payees."...(let.((origin.(
4f60 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 70 61 79 65 65 73 2d 6c 69 73 74 29 0a 20 20 20 point)).........payees-list)....
4f80 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 .(save-excursion.......(goto-cha
4fa0 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 2d r.(point-min)).......(while.(re-
4fc0 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 6c 65 64 67 65 72 2d 70 61 79 65 65 2d 6e 61 6d 65 search-forward.ledger-payee-name
4fe0 2d 6f 72 2d 64 69 72 65 63 74 69 76 65 2d 72 65 67 65 78 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 -or-directive-regex.nil.t)......
5000 20 20 20 28 75 6e 6c 65 73 73 20 28 61 6e 64 20 28 3e 3d 20 6f 72 69 67 69 6e 20 28 6d 61 74 63 ...(unless.(and.(>=.origin.(matc
5020 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 h-beginning.0)).................
5040 20 20 20 20 20 28 3c 20 6f 72 69 67 69 6e 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 29 0a 20 .....(<.origin.(match-end.0)))..
5060 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6f 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 .........(push.(or.(match-string
5080 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 31 29 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 2d -no-properties.1).(match-string-
50a0 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 no-properties.2))...............
50c0 20 20 70 61 79 65 65 73 2d 6c 69 73 74 29 29 29 29 0a 20 20 20 20 3b 3b 20 74 6f 20 74 68 65 20 ..payees-list)))).....;;.to.the.
50e0 6c 69 73 74 0a 20 20 20 20 28 73 6f 72 74 20 28 64 65 6c 65 74 65 2d 64 75 70 73 20 70 61 79 65 list.....(sort.(delete-dups.paye
5100 65 73 2d 6c 69 73 74 29 20 23 27 73 74 72 69 6e 67 2d 6c 65 73 73 70 29 29 29 0a 0a 28 64 65 66 es-list).#'string-lessp)))..(def
5120 75 6e 20 6c 65 64 67 65 72 2d 70 61 79 65 65 73 2d 6c 69 73 74 20 28 29 0a 20 20 22 52 65 74 75 un.ledger-payees-list.()..."Retu
5140 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20 6b 6e 6f 77 6e 20 61 63 63 6f 75 6e 74 20 6e rn.a.list.of.all.known.account.n
5160 61 6d 65 73 20 61 73 20 73 74 72 69 6e 67 73 2e 0a 4c 6f 6f 6b 73 20 69 6e 20 60 6c 65 64 67 65 ames.as.strings..Looks.in.`ledge
5180 72 2d 70 61 79 65 65 73 2d 66 69 6c 65 27 20 69 66 20 73 65 74 2c 20 6f 74 68 65 72 77 69 73 65 r-payees-file'.if.set,.otherwise
51a0 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 66 20 6c 65 64 67 .the.current.buffer."...(if.ledg
51c0 65 72 2d 70 61 79 65 65 73 2d 66 69 6c 65 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 20 6c 65 er-payees-file.......(let.((f.le
51e0 64 67 65 72 2d 70 61 79 65 65 73 2d 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 dger-payees-file)).........(with
5200 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 2d 66 -temp-buffer...........(insert-f
5220 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 20 66 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 ile-contents.f)...........(ledge
5240 72 2d 70 61 79 65 65 73 2d 69 6e 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 28 6c 65 64 67 65 r-payees-in-buffer))).....(ledge
5260 72 2d 70 61 79 65 65 73 2d 69 6e 2d 62 75 66 66 65 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 r-payees-in-buffer)))..(defun.le
5280 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 69 6e 2d 62 75 66 66 65 72 20 28 29 0a 20 20 22 52 65 dger-accounts-in-buffer.()..."Re
52a0 74 75 72 6e 20 61 6e 20 61 6c 69 73 74 20 6f 66 20 61 63 63 6f 75 6e 74 73 20 69 6e 20 74 68 65 turn.an.alist.of.accounts.in.the
52c0 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 0a 54 68 65 20 60 63 61 72 27 20 6f 66 20 65 61 .current.buffer..The.`car'.of.ea
52e0 63 68 20 65 6c 65 6d 65 6e 74 20 69 73 20 74 68 65 20 61 63 63 6f 75 6e 74 20 6e 61 6d 65 20 61 ch.element.is.the.account.name.a
5300 6e 64 20 74 68 65 20 60 63 64 72 27 20 69 73 20 61 6e 0a 61 6c 69 73 74 20 77 68 65 72 65 20 74 nd.the.`cdr'.is.an.alist.where.t
5320 68 65 20 6b 65 79 20 69 73 20 61 20 73 75 62 64 69 72 65 63 74 69 76 65 20 73 75 63 68 20 61 73 he.key.is.a.subdirective.such.as
5340 20 5c 22 61 73 73 65 72 74 5c 22 20 61 6e 64 20 74 68 65 0a 76 61 6c 75 65 20 28 69 66 20 61 6e .\"assert\".and.the.value.(if.an
5360 79 29 20 69 73 20 74 68 65 20 61 73 73 6f 63 69 61 74 65 64 20 64 61 74 61 2e 20 20 49 6e 20 6f y).is.the.associated.data...In.o
5380 74 68 65 72 20 77 6f 72 64 73 2c 20 69 66 20 79 6f 75 27 76 65 0a 64 65 63 6c 61 72 65 64 20 61 ther.words,.if.you've.declared.a
53a0 6e 20 61 63 63 6f 75 6e 74 20 6c 69 6b 65 20 73 6f 3a 0a 0a 61 63 63 6f 75 6e 74 20 41 73 73 65 n.account.like.so:..account.Asse
53c0 74 73 3a 43 68 65 63 6b 69 6e 67 0a 20 20 20 20 61 73 73 65 72 74 20 63 6f 6d 6d 6f 64 69 74 79 ts:Checking.....assert.commodity
53e0 20 3d 3d 20 5c 22 24 5c 22 0a 20 20 20 20 64 65 66 61 75 6c 74 0a 0a 54 68 65 6e 20 6f 6e 65 20 .==.\"$\".....default..Then.one.
5400 6f 66 20 74 68 65 20 65 6c 65 6d 65 6e 74 73 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 of.the.elements.this.function.re
5420 74 75 72 6e 73 20 77 69 6c 6c 20 62 65 0a 5c 28 5c 22 41 73 73 65 74 73 3a 43 68 65 63 6b 69 6e turns.will.be.\(\"Assets:Checkin
5440 67 5c 22 0a 20 20 28 5c 22 64 65 66 61 75 6c 74 5c 22 29 0a 20 20 28 5c 22 61 73 73 65 72 74 5c g\"...(\"default\")...(\"assert\
5460 22 20 2e 20 5c 22 63 6f 6d 6d 6f 64 69 74 79 20 3d 3d 20 5c 22 24 5c 22 5c 22 29 29 22 0a 20 20 "...\"commodity.==.\"$\"\"))"...
5480 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 (save-excursion.....(goto-char.(
54a0 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 28 6c 65 74 20 28 61 63 63 6f 75 6e 74 2d 6c 69 point-min)).....(let.(account-li
54c0 73 74 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 65 6e 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 st...........(seen.(make-hash-ta
54e0 62 6c 65 20 3a 74 65 73 74 20 23 27 65 71 75 61 6c 20 3a 73 69 7a 65 20 31 29 29 29 0a 20 20 20 ble.:test.#'equal.:size.1)))....
5500 20 20 20 3b 3b 20 46 69 72 73 74 2c 20 63 6f 6e 73 69 64 65 72 20 61 63 63 6f 75 6e 74 73 20 64 ...;;.First,.consider.accounts.d
5520 65 63 6c 61 72 65 64 20 77 69 74 68 20 22 61 63 63 6f 75 6e 74 22 20 64 69 72 65 63 74 69 76 65 eclared.with."account".directive
5540 73 2c 20 77 68 69 63 68 20 6d 61 79 20 6f 72 0a 20 20 20 20 20 20 3b 3b 20 6d 61 79 20 6e 6f 74 s,.which.may.or.......;;.may.not
5560 20 68 61 76 65 20 61 73 73 6f 63 69 61 74 65 64 20 64 61 74 61 2e 20 54 68 65 20 64 61 74 61 20 .have.associated.data..The.data.
5580 69 73 20 6f 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6c 69 6e 65 73 20 75 70 20 74 6f 20 is.on.the.following.lines.up.to.
55a0 61 0a 20 20 20 20 20 20 3b 3b 20 6c 69 6e 65 20 6e 6f 74 20 73 74 61 72 74 69 6e 67 20 77 69 74 a.......;;.line.not.starting.wit
55c0 68 20 77 68 69 74 65 73 70 61 63 65 2e 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 2d 73 h.whitespace........(while.(re-s
55e0 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 2d 64 69 72 earch-forward.ledger-account-dir
5600 65 63 74 69 76 65 2d 72 65 67 65 78 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 ective-regex.nil.t).........(let
5620 20 28 28 61 63 63 6f 75 6e 74 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 .((account.(match-string-no-prop
5640 65 72 74 69 65 73 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 73 20 erties.1))...............(lines.
5660 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 0a (buffer-substring-no-properties.
5680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 0a 20 20 ......................(point)...
56a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 20 28 6c 65 64 67 ....................(progn.(ledg
56c0 65 72 2d 6e 61 76 69 67 61 74 65 2d 6e 65 78 74 2d 78 61 63 74 2d 6f 72 2d 64 69 72 65 63 74 69 er-navigate-next-xact-or-directi
56e0 76 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ve).............................
5700 20 28 70 6f 69 6e 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 61 74 61 29 0a .(point))))...............data).
5720 20 20 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 64 20 28 73 70 6c 69 74 2d 73 74 72 69 ..........(dolist.(d.(split-stri
5740 6e 67 20 6c 69 6e 65 73 20 22 5c 6e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 ng.lines."\n")).............(set
5760 71 20 64 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 20 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 q.d.(string-trim.d))............
5780 20 28 75 6e 6c 65 73 73 20 28 73 74 72 69 6e 67 3d 20 64 20 22 22 29 0a 20 20 20 20 20 20 20 20 .(unless.(string=.d."").........
57a0 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 20 22 20 64 29 0a 20 ......(if.(string-match.".".d)..
57c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 28 73 75 .................(push.(cons.(su
57e0 62 73 74 72 69 6e 67 20 64 20 30 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 bstring.d.0.(match-beginning.0))
5800 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ...............................(
5820 73 75 62 73 74 72 69 6e 67 20 64 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 20 6e 69 6c 29 29 0a substring.d.(match-end.0).nil)).
5840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 61 74 61 29 0a 20 20 ........................data)...
5860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 64 20 6e 69 6c 29 ..............(push.(cons.d.nil)
5880 20 64 61 74 61 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 .data))))...........(push.(cons.
58a0 61 63 63 6f 75 6e 74 20 64 61 74 61 29 20 61 63 63 6f 75 6e 74 2d 6c 69 73 74 29 0a 20 20 20 20 account.data).account-list).....
58c0 20 20 20 20 20 20 28 70 75 74 68 61 73 68 20 61 63 63 6f 75 6e 74 20 74 20 73 65 65 6e 29 29 29 ......(puthash.account.t.seen)))
58e0 0a 20 20 20 20 20 20 3b 3b 20 4e 65 78 74 2c 20 67 61 74 68 65 72 20 61 6c 6c 20 61 63 63 6f 75 .......;;.Next,.gather.all.accou
5900 6e 74 73 20 64 65 63 6c 61 72 65 64 20 69 6e 20 70 6f 73 74 69 6e 67 73 0a 20 20 20 20 20 20 28 nts.declared.in.postings.......(
5920 75 6e 6c 65 73 73 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 46 49 58 4d 45 3a 20 50 65 6f 70 6c unless...........;;.FIXME:.Peopl
5940 65 20 77 68 6f 20 68 61 76 65 20 73 65 74 20 60 6c 65 64 67 65 72 2d 66 6c 79 6d 61 6b 65 2d 62 e.who.have.set.`ledger-flymake-b
5960 65 2d 70 65 64 61 6e 74 69 63 27 20 74 6f 20 6e 6f 6e 2d 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 e-pedantic'.to.non-nil..........
5980 20 3b 3b 20 70 72 6f 62 61 62 6c 79 20 64 6f 6e 27 74 20 77 61 6e 74 20 61 63 63 6f 75 6e 74 73 .;;.probably.don't.want.accounts
59a0 20 66 72 6f 6d 20 70 6f 73 74 69 6e 67 73 2c 20 6a 75 73 74 20 74 68 6f 73 65 20 64 65 63 6c 61 .from.postings,.just.those.decla
59c0 72 65 64 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 77 69 74 68 20 64 69 72 65 63 74 69 76 65 73 red...........;;.with.directives
59e0 2e 20 20 42 75 74 20 74 68 65 20 6e 61 6d 65 20 69 73 20 61 20 6c 69 74 74 6c 65 20 6d 69 73 6c ...But.the.name.is.a.little.misl
5a00 65 61 64 69 6e 67 2e 20 20 53 68 6f 75 6c 64 20 77 65 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 eading...Should.we...........;;.
5a20 6d 61 6b 65 20 61 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 62 65 2d 70 65 64 61 6e 74 69 63 20 61 make.a.ledger-mode-be-pedantic.a
5a40 6e 64 20 75 73 65 20 74 68 61 74 20 69 6e 73 74 65 61 64 3f 0a 20 20 20 20 20 20 20 20 20 20 28 nd.use.that.instead?...........(
5a60 62 6f 75 6e 64 2d 61 6e 64 2d 74 72 75 65 2d 70 20 6c 65 64 67 65 72 2d 66 6c 79 6d 61 6b 65 2d bound-and-true-p.ledger-flymake-
5a80 62 65 2d 70 65 64 61 6e 74 69 63 29 0a 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 78 61 63 be-pedantic).........(ledger-xac
5aa0 74 2d 69 74 65 72 61 74 65 2d 74 72 61 6e 73 61 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 t-iterate-transactions..........
5ac0 28 6c 61 6d 62 64 61 20 28 5f 70 6f 73 20 5f 64 61 74 65 20 5f 73 74 61 74 65 20 5f 70 61 79 65 (lambda.(_pos._date._state._paye
5ae0 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 65 6e 64 20 28 73 61 76 65 2d 65 e)............(let.((end.(save-e
5b00 78 63 75 72 73 69 6f 6e 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 65 6e 64 2d 6f 66 xcursion.(ledger-navigate-end-of
5b20 2d 78 61 63 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d -xact))))..............(forward-
5b40 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 2d 73 65 line)..............(while.(re-se
5b60 61 72 63 68 2d 66 6f 72 77 61 72 64 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 2d 61 6e 79 2d arch-forward.ledger-account-any-
5b80 73 74 61 74 75 73 2d 72 65 67 65 78 20 65 6e 64 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 status-regex.end.t).............
5ba0 20 20 20 28 6c 65 74 20 28 28 61 63 63 6f 75 6e 74 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 2d ...(let.((account.(match-string-
5bc0 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 no-properties.1)))..............
5be0 20 20 20 20 28 75 6e 6c 65 73 73 20 28 67 65 74 68 61 73 68 20 61 63 63 6f 75 6e 74 20 73 65 65 ....(unless.(gethash.account.see
5c00 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 74 68 61 73 68 20 61 n)....................(puthash.a
5c20 63 63 6f 75 6e 74 20 74 20 73 65 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ccount.t.seen)..................
5c40 20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 61 63 63 6f 75 6e 74 20 6e 69 6c 29 20 61 63 63 6f 75 ..(push.(cons.account.nil).accou
5c60 6e 74 2d 6c 69 73 74 29 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 28 73 6f 72 74 20 61 63 63 6f nt-list)))))))).......(sort.acco
5c80 75 6e 74 2d 6c 69 73 74 20 28 6c 61 6d 62 64 61 20 28 61 20 62 29 20 28 73 74 72 69 6e 67 2d 6c unt-list.(lambda.(a.b).(string-l
5ca0 65 73 73 70 20 28 63 61 72 20 61 29 20 28 63 61 72 20 62 29 29 29 29 29 29 29 0a 0a 28 64 65 66 essp.(car.a).(car.b)))))))..(def
5cc0 75 6e 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 6c 69 73 74 2d 69 6e 2d 62 75 66 66 65 un.ledger-accounts-list-in-buffe
5ce0 72 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20 6b 6e 6f r.()..."Return.a.list.of.all.kno
5d00 77 6e 20 61 63 63 6f 75 6e 74 20 6e 61 6d 65 73 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 wn.account.names.in.the.current.
5d20 62 75 66 66 65 72 20 61 73 20 73 74 72 69 6e 67 73 2e 0a 43 6f 6e 73 69 64 65 72 73 20 62 6f 74 buffer.as.strings..Considers.bot
5d40 68 20 61 63 63 6f 75 6e 74 73 20 6c 69 73 74 65 64 20 69 6e 20 70 6f 73 74 69 6e 67 73 20 61 6e h.accounts.listed.in.postings.an
5d60 64 20 74 68 6f 73 65 20 64 65 63 6c 61 72 65 64 0a 77 69 74 68 20 5c 22 61 63 63 6f 75 6e 74 5c d.those.declared.with.\"account\
5d80 22 20 64 69 72 65 63 74 69 76 65 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 61 63 63 6f 75 6e 74 73 ".directives."...(let.((accounts
5da0 20 28 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 69 6e 2d 62 75 66 66 65 72 29 29 29 0a 20 .(ledger-accounts-in-buffer)))..
5dc0 20 20 20 28 77 68 65 6e 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 65 78 63 6c 75 64 65 ...(when.ledger-accounts-exclude
5de0 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 28 73 65 74 71 20 61 63 63 6f 75 6e 74 73 20 28 -function.......(setq.accounts.(
5e00 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 65 78 63 cl-remove-if.ledger-accounts-exc
5e20 6c 75 64 65 2d 66 75 6e 63 74 69 6f 6e 20 61 63 63 6f 75 6e 74 73 29 29 29 0a 20 20 20 20 28 6d lude-function.accounts))).....(m
5e40 61 70 63 61 72 20 23 27 63 61 72 20 61 63 63 6f 75 6e 74 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 apcar.#'car.accounts)))..(defun.
5e60 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 6c 69 73 74 20 28 29 0a 20 20 22 52 65 74 75 72 ledger-accounts-list.()..."Retur
5e80 6e 20 61 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20 6b 6e 6f 77 6e 20 61 63 63 6f 75 6e 74 20 6e 61 n.a.list.of.all.known.account.na
5ea0 6d 65 73 20 61 73 20 73 74 72 69 6e 67 73 2e 0a 4c 6f 6f 6b 73 20 69 6e 20 60 6c 65 64 67 65 72 mes.as.strings..Looks.in.`ledger
5ec0 2d 61 63 63 6f 75 6e 74 73 2d 66 69 6c 65 27 20 69 66 20 73 65 74 2c 20 6f 74 68 65 72 77 69 73 -accounts-file'.if.set,.otherwis
5ee0 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 66 20 6c 65 64 e.the.current.buffer."...(if.led
5f00 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 66 69 6c 65 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 ger-accounts-file.......(let.((f
5f20 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 .ledger-accounts-file)).........
5f40 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 (with-temp-buffer...........(ins
5f60 65 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 20 66 29 0a 20 20 20 20 20 20 20 20 20 20 28 ert-file-contents.f)...........(
5f80 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 6c 69 73 74 2d 69 6e 2d 62 75 66 66 65 72 29 29 ledger-accounts-list-in-buffer))
5fa0 29 0a 20 20 20 20 28 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 6c 69 73 74 2d 69 6e 2d 62 ).....(ledger-accounts-list-in-b
5fc0 75 66 66 65 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 66 69 6e 64 2d 61 63 63 uffer)))..(defun.ledger-find-acc
5fe0 6f 75 6e 74 73 2d 69 6e 2d 62 75 66 66 65 72 20 28 29 0a 20 20 28 6c 65 74 20 28 28 61 63 63 6f ounts-in-buffer.()...(let.((acco
6000 75 6e 74 2d 74 72 65 65 20 28 6c 69 73 74 20 74 29 29 0a 20 20 20 20 20 20 20 20 28 61 63 63 6f unt-tree.(list.t)).........(acco
6020 75 6e 74 2d 65 6c 65 6d 65 6e 74 73 20 6e 69 6c 29 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 unt-elements.nil)).....(save-exc
6040 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d ursion.......(goto-char.(point-m
6060 69 6e 29 29 0a 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 61 63 63 6f 75 6e 74 20 28 6c 65 in))........(dolist.(account.(le
6080 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 28 6c 65 dger-accounts-list)).........(le
60a0 74 20 28 28 72 6f 6f 74 20 61 63 63 6f 75 6e 74 2d 74 72 65 65 29 29 0a 20 20 20 20 20 20 20 20 t.((root.account-tree)).........
60c0 20 20 28 73 65 74 71 20 61 63 63 6f 75 6e 74 2d 65 6c 65 6d 65 6e 74 73 0a 20 20 20 20 20 20 20 ..(setq.account-elements........
60e0 20 20 20 20 20 20 20 20 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 .........(split-string..........
6100 20 20 20 20 20 20 20 20 61 63 63 6f 75 6e 74 20 22 3a 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 ........account.":"))...........
6120 28 77 68 69 6c 65 20 61 63 63 6f 75 6e 74 2d 65 6c 65 6d 65 6e 74 73 0a 20 20 20 20 20 20 20 20 (while.account-elements.........
6140 20 20 20 20 28 6c 65 74 20 28 28 78 61 63 74 20 28 61 73 73 6f 63 20 28 63 61 72 20 61 63 63 6f ....(let.((xact.(assoc.(car.acco
6160 75 6e 74 2d 65 6c 65 6d 65 6e 74 73 29 20 72 6f 6f 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 unt-elements).root)))...........
6180 20 20 20 20 28 69 66 20 78 61 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ....(if.xact...................(
61a0 73 65 74 71 20 72 6f 6f 74 20 28 63 64 72 20 78 61 63 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 setq.root.(cdr.xact))...........
61c0 20 20 20 20 20 20 28 73 65 74 71 20 78 61 63 74 20 28 63 6f 6e 73 20 28 63 61 72 20 61 63 63 6f ......(setq.xact.(cons.(car.acco
61e0 75 6e 74 2d 65 6c 65 6d 65 6e 74 73 29 20 28 6c 69 73 74 20 74 29 29 29 0a 20 20 20 20 20 20 20 unt-elements).(list.t)))........
6200 20 20 20 20 20 20 20 20 20 28 6e 63 6f 6e 63 20 72 6f 6f 74 20 28 6c 69 73 74 20 78 61 63 74 29 .........(nconc.root.(list.xact)
6220 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 6f 6f 74 20 28 63 64 ).................(setq.root.(cd
6240 72 20 78 61 63 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 61 63 63 r.xact)))).............(setq.acc
6260 6f 75 6e 74 2d 65 6c 65 6d 65 6e 74 73 20 28 63 64 72 20 61 63 63 6f 75 6e 74 2d 65 6c 65 6d 65 ount-elements.(cdr.account-eleme
6280 6e 74 73 29 29 29 29 29 29 0a 20 20 20 20 61 63 63 6f 75 6e 74 2d 74 72 65 65 29 29 0a 0a 28 64 nts)))))).....account-tree))..(d
62a0 65 66 75 6e 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 74 72 65 65 20 28 29 0a 20 20 22 efun.ledger-accounts-tree.()..."
62c0 52 65 74 75 72 6e 20 61 20 74 72 65 65 20 6f 66 20 61 6c 6c 20 61 63 63 6f 75 6e 74 73 20 69 6e Return.a.tree.of.all.accounts.in
62e0 20 74 68 65 20 62 75 66 66 65 72 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 63 75 72 72 65 6e 74 20 .the.buffer."...(let*.((current.
6300 28 63 61 61 72 20 28 6c 65 64 67 65 72 2d 70 61 72 73 65 2d 61 72 67 75 6d 65 6e 74 73 29 29 29 (caar.(ledger-parse-arguments)))
6320 0a 20 20 20 20 20 20 20 20 20 28 65 6c 65 6d 65 6e 74 73 20 28 61 6e 64 20 63 75 72 72 65 6e 74 ..........(elements.(and.current
6340 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 63 75 72 72 65 6e 74 20 22 3a 22 29 29 29 0a 20 20 .(split-string.current.":")))...
6360 20 20 20 20 20 20 20 28 72 6f 6f 74 20 28 6c 65 64 67 65 72 2d 66 69 6e 64 2d 61 63 63 6f 75 6e .......(root.(ledger-find-accoun
6380 74 73 2d 69 6e 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 72 65 66 69 78 20 ts-in-buffer))..........(prefix.
63a0 6e 69 6c 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 63 64 72 20 65 6c 65 6d 65 6e 74 73 29 0a nil)).....(while.(cdr.elements).
63c0 20 20 20 20 20 20 28 6c 65 74 20 28 28 78 61 63 74 20 28 61 73 73 6f 63 20 28 63 61 72 20 65 6c ......(let.((xact.(assoc.(car.el
63e0 65 6d 65 6e 74 73 29 20 72 6f 6f 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 78 61 63 74 ements).root))).........(if.xact
6400 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 72 65 66 69 78 20 28 63 6f 6e 63 61 .............(setq.prefix.(conca
6420 74 20 70 72 65 66 69 78 20 28 61 6e 64 20 70 72 65 66 69 78 20 22 3a 22 29 0a 20 20 20 20 20 20 t.prefix.(and.prefix.":").......
6440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 ...........................(car.
6460 65 6c 65 6d 65 6e 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 6f 6f elements))...................roo
6480 74 20 28 63 64 72 20 78 61 63 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 6f t.(cdr.xact))...........(setq.ro
64a0 6f 74 20 6e 69 6c 20 65 6c 65 6d 65 6e 74 73 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 28 73 65 ot.nil.elements.nil))).......(se
64c0 74 71 20 65 6c 65 6d 65 6e 74 73 20 28 63 64 72 20 65 6c 65 6d 65 6e 74 73 29 29 29 0a 20 20 20 tq.elements.(cdr.elements)))....
64e0 20 28 73 65 74 71 20 72 6f 6f 74 20 28 64 65 6c 65 74 65 20 28 6c 69 73 74 20 28 63 61 72 20 65 .(setq.root.(delete.(list.(car.e
6500 6c 65 6d 65 6e 74 73 29 20 74 29 20 72 6f 6f 74 29 29 0a 20 20 20 20 28 61 6e 64 20 72 6f 6f 74 lements).t).root)).....(and.root
6520 0a 20 20 20 20 20 20 20 20 20 28 73 6f 72 74 0a 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 ..........(sort...........(mapca
6540 72 20 28 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 r.(function....................(
6560 6c 61 6d 62 64 61 20 28 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 lambda.(x)......................
6580 28 6c 65 74 20 28 28 74 65 72 6d 20 28 69 66 20 70 72 65 66 69 78 0a 20 20 20 20 20 20 20 20 20 (let.((term.(if.prefix..........
65a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e ............................(con
65c0 63 61 74 20 70 72 65 66 69 78 20 22 3a 22 20 28 63 61 72 20 78 29 29 0a 20 20 20 20 20 20 20 20 cat.prefix.":".(car.x)).........
65e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 ...........................(car.
6600 78 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 x))))........................(if
6620 20 28 3e 20 28 6c 65 6e 67 74 68 20 28 63 64 72 20 78 29 29 20 31 29 0a 20 20 20 20 20 20 20 20 .(>.(length.(cdr.x)).1).........
6640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 74 65 72 6d 20 ...................(concat.term.
6660 22 3a 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 65 ":")..........................te
6680 72 6d 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 72 6f rm))))...................(cdr.ro
66a0 6f 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 27 73 74 72 69 6e 67 2d 6c 65 73 73 70 29 29 29 29 ot))...........'string-lessp))))
66c0 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 63 6f 6d 70 6c 65 74 65 2d 64 61 74 65 20 28 6d ..(defun.ledger-complete-date.(m
66e0 6f 6e 74 68 2d 73 74 72 69 6e 67 20 64 61 79 2d 73 74 72 69 6e 67 29 0a 20 20 22 43 6f 6d 70 6c onth-string.day-string)..."Compl
6700 65 74 65 20 61 20 64 61 74 65 2e 22 0a 20 20 28 6c 65 74 2a 0a 20 20 20 20 20 20 28 28 6e 6f 77 ete.a.date."...(let*.......((now
6720 20 28 63 75 72 72 65 6e 74 2d 74 69 6d 65 29 29 0a 20 20 20 20 20 20 20 28 64 65 63 6f 64 65 64 .(current-time))........(decoded
6740 20 28 64 65 63 6f 64 65 2d 74 69 6d 65 20 6e 6f 77 29 29 0a 20 20 20 20 20 20 20 28 74 68 69 73 .(decode-time.now))........(this
6760 2d 6d 6f 6e 74 68 20 28 6e 74 68 20 34 20 64 65 63 6f 64 65 64 29 29 0a 20 20 20 20 20 20 20 28 -month.(nth.4.decoded))........(
6780 74 68 69 73 2d 79 65 61 72 20 28 6e 74 68 20 35 20 64 65 63 6f 64 65 64 29 29 0a 20 20 20 20 20 this-year.(nth.5.decoded))......
67a0 20 20 28 6c 61 73 74 2d 6d 6f 6e 74 68 20 28 69 66 20 28 3e 20 74 68 69 73 2d 6d 6f 6e 74 68 20 ..(last-month.(if.(>.this-month.
67c0 31 29 20 28 31 2d 20 74 68 69 73 2d 6d 6f 6e 74 68 29 20 31 32 29 29 0a 20 20 20 20 20 20 20 28 1).(1-.this-month).12))........(
67e0 6c 61 73 74 2d 79 65 61 72 20 28 31 2d 20 74 68 69 73 2d 79 65 61 72 29 29 0a 20 20 20 20 20 20 last-year.(1-.this-year)).......
6800 20 28 6c 61 73 74 2d 6d 6f 6e 74 68 2d 79 65 61 72 20 28 69 66 20 28 3e 20 74 68 69 73 2d 6d 6f .(last-month-year.(if.(>.this-mo
6820 6e 74 68 20 31 29 20 74 68 69 73 2d 79 65 61 72 20 6c 61 73 74 2d 79 65 61 72 29 29 0a 20 20 20 nth.1).this-year.last-year))....
6840 20 20 20 20 28 6d 6f 6e 74 68 20 28 61 6e 64 20 6d 6f 6e 74 68 2d 73 74 72 69 6e 67 0a 20 20 20 ....(month.(and.month-string....
6860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 ................(string-to-numbe
6880 72 20 6d 6f 6e 74 68 2d 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 28 64 61 79 20 28 73 r.month-string)))........(day.(s
68a0 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 64 61 79 2d 73 74 72 69 6e 67 29 29 0a 20 20 20 tring-to-number.day-string))....
68c0 20 20 20 20 28 64 61 74 65 73 20 28 6c 69 73 74 20 28 65 6e 63 6f 64 65 2d 74 69 6d 65 20 30 20 ....(dates.(list.(encode-time.0.
68e0 30 20 30 20 64 61 79 20 28 6f 72 20 6d 6f 6e 74 68 20 74 68 69 73 2d 6d 6f 6e 74 68 29 20 74 68 0.0.day.(or.month.this-month).th
6900 69 73 2d 79 65 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 is-year).....................(if
6920 20 6d 6f 6e 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 .month.........................(
6940 65 6e 63 6f 64 65 2d 74 69 6d 65 20 30 20 30 20 30 20 64 61 79 20 6d 6f 6e 74 68 20 6c 61 73 74 encode-time.0.0.0.day.month.last
6960 2d 79 65 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6e -year).......................(en
6980 63 6f 64 65 2d 74 69 6d 65 20 30 20 30 20 30 20 64 61 79 20 6c 61 73 74 2d 6d 6f 6e 74 68 20 6c code-time.0.0.0.day.last-month.l
69a0 61 73 74 2d 6d 6f 6e 74 68 2d 79 65 61 72 29 29 29 29 29 0a 20 20 20 20 28 6c 61 6d 62 64 61 20 ast-month-year))))).....(lambda.
69c0 28 5f 73 74 72 69 6e 67 20 5f 70 72 65 64 69 63 61 74 65 20 5f 61 6c 6c 29 0a 20 20 20 20 20 20 (_string._predicate._all).......
69e0 28 63 6f 6e 63 61 74 20 28 6c 65 64 67 65 72 2d 66 6f 72 6d 61 74 2d 64 61 74 65 0a 20 20 20 20 (concat.(ledger-format-date.....
6a00 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 66 69 6e 64 2d 69 66 20 28 6c 61 6d 62 64 61 20 28 ...........(cl-find-if.(lambda.(
6a20 64 61 74 65 29 20 28 6e 6f 74 20 28 74 69 6d 65 2d 6c 65 73 73 2d 70 20 6e 6f 77 20 64 61 74 65 date).(not.(time-less-p.now.date
6a40 29 29 29 20 64 61 74 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 ))).dates))...............(and.(
6a60 3d 20 28 70 6f 69 6e 74 29 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 20 22 =.(point).(line-end-position))."
6a80 20 22 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 63 6f 6d 70 6c 65 74 65 2d .")))))..(defun.ledger-complete-
6aa0 65 66 66 65 63 74 69 76 65 2d 64 61 74 65 0a 20 20 20 20 28 74 78 2d 79 65 61 72 2d 73 74 72 69 effective-date.....(tx-year-stri
6ac0 6e 67 20 74 78 2d 6d 6f 6e 74 68 2d 73 74 72 69 6e 67 20 74 78 2d 64 61 79 2d 73 74 72 69 6e 67 ng.tx-month-string.tx-day-string
6ae0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 6f 6e 74 68 2d 73 74 72 69 6e .....................month-strin
6b00 67 20 64 61 79 2d 73 74 72 69 6e 67 29 0a 20 20 22 43 6f 6d 70 6c 65 74 65 20 61 6e 20 65 66 66 g.day-string)..."Complete.an.eff
6b20 65 63 74 69 76 65 20 64 61 74 65 2e 22 0a 20 20 28 6c 65 74 2a 0a 20 20 20 20 20 20 28 28 74 78 ective.date."...(let*.......((tx
6b40 2d 79 65 61 72 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 74 78 2d 79 65 61 72 2d -year.(string-to-number.tx-year-
6b60 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 20 20 28 74 78 2d 6d 6f 6e 74 68 20 28 73 74 72 69 6e string))........(tx-month.(strin
6b80 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 74 78 2d 6d 6f 6e 74 68 2d 73 74 72 69 6e 67 29 29 0a 20 20 g-to-number.tx-month-string))...
6ba0 20 20 20 20 20 28 74 78 2d 64 61 79 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 74 .....(tx-day.(string-to-number.t
6bc0 78 2d 64 61 79 2d 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 20 20 28 74 78 2d 64 61 74 65 20 28 x-day-string))........(tx-date.(
6be0 65 6e 63 6f 64 65 2d 74 69 6d 65 20 30 20 30 20 30 20 74 78 2d 64 61 79 20 74 78 2d 6d 6f 6e 74 encode-time.0.0.0.tx-day.tx-mont
6c00 68 20 74 78 2d 79 65 61 72 29 29 0a 20 20 20 20 20 20 20 28 6e 65 78 74 2d 6d 6f 6e 74 68 20 28 h.tx-year))........(next-month.(
6c20 69 66 20 28 3c 20 74 78 2d 6d 6f 6e 74 68 20 31 32 29 20 28 31 2b 20 74 78 2d 6d 6f 6e 74 68 29 if.(<.tx-month.12).(1+.tx-month)
6c40 20 31 29 29 0a 20 20 20 20 20 20 20 28 6e 65 78 74 2d 79 65 61 72 20 28 31 2b 20 74 78 2d 79 65 .1))........(next-year.(1+.tx-ye
6c60 61 72 29 29 0a 20 20 20 20 20 20 20 28 6e 65 78 74 2d 6d 6f 6e 74 68 2d 79 65 61 72 20 28 69 66 ar))........(next-month-year.(if
6c80 20 28 3c 20 74 78 2d 6d 6f 6e 74 68 20 31 32 29 20 74 78 2d 79 65 61 72 20 6e 65 78 74 2d 79 65 .(<.tx-month.12).tx-year.next-ye
6ca0 61 72 29 29 0a 20 20 20 20 20 20 20 28 6d 6f 6e 74 68 20 28 61 6e 64 20 6d 6f 6e 74 68 2d 73 74 ar))........(month.(and.month-st
6cc0 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d ring....................(string-
6ce0 74 6f 2d 6e 75 6d 62 65 72 20 6d 6f 6e 74 68 2d 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20 20 to-number.month-string))).......
6d00 20 28 64 61 79 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 64 61 79 2d 73 74 72 69 .(day.(string-to-number.day-stri
6d20 6e 67 29 29 0a 20 20 20 20 20 20 20 28 64 61 74 65 73 20 28 6c 69 73 74 20 28 65 6e 63 6f 64 65 ng))........(dates.(list.(encode
6d40 2d 74 69 6d 65 20 30 20 30 20 30 20 64 61 79 20 28 6f 72 20 6d 6f 6e 74 68 20 74 78 2d 6d 6f 6e -time.0.0.0.day.(or.month.tx-mon
6d60 74 68 29 20 74 78 2d 79 65 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 th).tx-year)....................
6d80 20 28 69 66 20 6d 6f 6e 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(if.month......................
6da0 20 20 20 28 65 6e 63 6f 64 65 2d 74 69 6d 65 20 30 20 30 20 30 20 64 61 79 20 6d 6f 6e 74 68 20 ...(encode-time.0.0.0.day.month.
6dc0 6e 65 78 74 2d 79 65 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 next-year)......................
6de0 20 28 65 6e 63 6f 64 65 2d 74 69 6d 65 20 30 20 30 20 30 20 64 61 79 20 6e 65 78 74 2d 6d 6f 6e .(encode-time.0.0.0.day.next-mon
6e00 74 68 20 6e 65 78 74 2d 6d 6f 6e 74 68 2d 79 65 61 72 29 29 29 29 29 0a 20 20 20 20 28 6c 61 6d th.next-month-year))))).....(lam
6e20 62 64 61 20 28 5f 73 74 72 69 6e 67 20 5f 70 72 65 64 69 63 61 74 65 20 5f 61 6c 6c 29 0a 20 20 bda.(_string._predicate._all)...
6e40 20 20 20 20 28 63 6f 6e 63 61 74 20 28 6c 65 64 67 65 72 2d 66 6f 72 6d 61 74 2d 64 61 74 65 0a ....(concat.(ledger-format-date.
6e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 66 69 6e 64 2d 69 66 20 28 6c 61 6d 62 ...............(cl-find-if.(lamb
6e80 64 61 20 28 64 61 74 65 29 20 28 6e 6f 74 20 28 74 69 6d 65 2d 6c 65 73 73 2d 70 20 64 61 74 65 da.(date).(not.(time-less-p.date
6ea0 20 74 78 2d 64 61 74 65 29 29 29 20 64 61 74 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .tx-date))).dates)).............
6ec0 20 20 28 61 6e 64 20 28 3d 20 28 70 6f 69 6e 74 29 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 ..(and.(=.(point).(line-end-posi
6ee0 74 69 6f 6e 29 29 20 22 20 22 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 63 tion)).".")))))..(defun.ledger-c
6f00 6f 6d 70 6c 65 74 65 2d 61 74 2d 70 6f 69 6e 74 20 28 29 0a 20 20 22 44 6f 20 61 70 70 72 6f 70 omplete-at-point.()..."Do.approp
6f20 72 69 61 74 65 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 74 68 69 6e 67 20 61 riate.completion.for.the.thing.a
6f40 74 20 70 6f 69 6e 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 65 6e 64 20 28 70 6f 69 6e 74 29 29 0a t.point."...(let.((end.(point)).
6f60 20 20 20 20 20 20 20 20 73 74 61 72 74 20 63 6f 6c 6c 65 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 ........start.collection........
6f80 20 72 65 61 6c 69 67 6e 2d 61 66 74 65 72 0a 20 20 20 20 20 20 20 20 64 65 6c 65 74 65 2d 73 75 .realign-after.........delete-su
6fa0 66 66 69 78 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 3b 3b 20 44 61 74 65 0a 20 20 20 20 20 20 20 ffix).....(cond.(;;.Date........
6fc0 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d 62 61 63 6b 20 28 63 6f 6e 63 61 74 20 22 5e 22 20 6c 65 ....(looking-back.(concat."^".le
6fe0 64 67 65 72 2d 69 6e 63 6f 6d 70 6c 65 74 65 2d 64 61 74 65 2d 72 65 67 65 78 70 29 20 28 6c 69 dger-incomplete-date-regexp).(li
7000 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 ne-beginning-position)).........
7020 20 20 20 28 73 65 74 71 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 28 6c 65 64 67 65 72 2d 63 6f 6d 70 ...(setq.collection.(ledger-comp
7040 6c 65 74 65 2d 64 61 74 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 29 20 28 6d 61 74 63 lete-date.(match-string.1).(matc
7060 68 2d 73 74 72 69 6e 67 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 h-string.2))..................st
7080 61 72 74 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 0a 20 20 20 20 20 20 20 20 art.(match-beginning.0).........
70a0 20 20 20 20 20 20 20 20 20 64 65 6c 65 74 65 2d 73 75 66 66 69 78 20 28 73 61 76 65 2d 6d 61 74 .........delete-suffix.(save-mat
70c0 63 68 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ch-data.........................
70e0 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 28 72 78 20 28 .........(when.(looking-at.(rx.(
7100 6f 6e 65 2d 6f 72 2d 6d 6f 72 65 20 28 6f 72 20 64 69 67 69 74 20 28 61 6e 79 20 3f 2f 20 3f 2d one-or-more.(or.digit.(any.?/.?-
7120 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 )))))...........................
7140 20 20 20 20 20 20 20 20 20 28 6c 65 6e 67 74 68 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 30 .........(length.(match-string.0
7160 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 3b 3b 20 45 66 66 65 63 74 69 76 65 20 64 ))))))...........(;;.Effective.d
7180 61 74 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d 62 61 63 6b 20 28 63 ates............(looking-back.(c
71a0 6f 6e 63 61 74 20 22 5e 22 20 6c 65 64 67 65 72 2d 69 73 6f 2d 64 61 74 65 2d 72 65 67 65 78 70 oncat."^".ledger-iso-date-regexp
71c0 20 22 3d 22 20 6c 65 64 67 65 72 2d 69 6e 63 6f 6d 70 6c 65 74 65 2d 64 61 74 65 2d 72 65 67 65 ."=".ledger-incomplete-date-rege
71e0 78 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 xp)..........................(li
7200 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 ne-beginning-position)).........
7220 20 20 20 28 73 65 74 71 20 73 74 61 72 74 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 ...(setq.start.(line-beginning-p
7240 6f 73 69 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6c 6c 65 osition))............(setq.colle
7260 63 74 69 6f 6e 20 28 6c 65 64 67 65 72 2d 63 6f 6d 70 6c 65 74 65 2d 65 66 66 65 63 74 69 76 65 ction.(ledger-complete-effective
7280 2d 64 61 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -date...........................
72a0 20 20 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32 29 20 28 6d 61 74 63 68 2d 73 74 72 69 6e ...(match-string.2).(match-strin
72c0 67 20 33 29 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 34 29 0a 20 20 20 20 20 20 20 20 20 20 g.3).(match-string.4)...........
72e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 ...................(match-string
7300 20 35 29 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 36 29 29 29 29 0a 20 20 20 20 20 20 20 20 .5).(match-string.6)))).........
7320 20 20 28 3b 3b 20 50 61 79 65 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 28 73 61 76 ..(;;.Payees............(eq.(sav
7340 65 2d 65 78 63 75 72 73 69 6f 6e 20 28 6c 65 64 67 65 72 2d 74 68 69 6e 67 2d 61 74 2d 70 6f 69 e-excursion.(ledger-thing-at-poi
7360 6e 74 29 29 20 27 74 72 61 6e 73 61 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 nt)).'transaction)............(s
7380 65 74 71 20 73 74 61 72 74 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 20 28 62 61 63 6b 77 etq.start.(save-excursion.(backw
73a0 61 72 64 2d 77 6f 72 64 29 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 ard-word).(point)))............(
73c0 73 65 74 71 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 23 27 6c 65 64 67 65 72 2d 70 61 79 65 65 73 2d setq.collection.#'ledger-payees-
73e0 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 3b 3b 20 41 63 63 6f 75 6e 74 73 0a 20 20 list))...........(;;.Accounts...
7400 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 .........(save-excursion........
7420 20 20 20 20 20 20 28 62 61 63 6b 2d 74 6f 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 29 0a 20 20 20 20 ......(back-to-indentation).....
7440 20 20 20 20 20 20 20 20 20 28 73 6b 69 70 2d 63 68 61 72 73 2d 66 6f 72 77 61 72 64 20 22 28 5b .........(skip-chars-forward."([
7460 22 29 20 3b 3b 20 66 6f 72 20 76 69 72 74 75 61 6c 20 61 63 63 6f 75 6e 74 73 0a 20 20 20 20 20 ").;;.for.virtual.accounts......
7480 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 74 61 72 74 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 ........(setq.start.(point)))...
74a0 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 64 65 6c 65 74 65 2d 73 75 66 66 69 78 20 28 73 61 .........(setq.delete-suffix.(sa
74c0 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ve-excursion....................
74e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 73 65 61 72 63 68 2d 66 6f 72 77 ..............(when.(search-forw
7500 61 72 64 2d 72 65 67 65 78 70 20 28 72 78 20 28 6f 72 20 65 6f 6c 20 28 6f 72 20 3f 5c 74 20 28 ard-regexp.(rx.(or.eol.(or.?\t.(
7520 72 65 70 65 61 74 20 32 20 73 70 61 63 65 29 29 29 29 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 repeat.2.space)))).(line-end-pos
7540 69 74 69 6f 6e 29 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ition).t).......................
7560 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 .............(-.(match-beginning
7580 20 30 29 20 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 61 6c .0).end)))..................real
75a0 69 67 6e 2d 61 66 74 65 72 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c ign-after.t..................col
75c0 6c 65 63 74 69 6f 6e 20 28 69 66 20 6c 65 64 67 65 72 2d 63 6f 6d 70 6c 65 74 65 2d 69 6e 2d 73 lection.(if.ledger-complete-in-s
75e0 74 65 70 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 teps............................
7600 20 20 20 20 20 23 27 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 74 72 65 65 0a 20 20 20 20 .....#'ledger-accounts-tree.....
7620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 6c 65 64 67 ..........................#'ledg
7640 65 72 2d 61 63 63 6f 75 6e 74 73 2d 6c 69 73 74 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 63 er-accounts-list)))).....(when.c
7660 6f 6c 6c 65 63 74 69 6f 6e 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 72 65 66 69 78 20 28 62 ollection.......(let.((prefix.(b
7680 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 73 74 uffer-substring-no-properties.st
76a0 61 72 74 20 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 73 74 61 72 74 20 65 art.end))).........(list.start.e
76c0 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 66 75 6e 63 74 69 6f 6e 70 20 nd...............(if.(functionp.
76e0 63 6f 6c 6c 65 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 collection)...................(c
7700 6f 6d 70 6c 65 74 69 6f 6e 2d 74 61 62 6c 65 2d 77 69 74 68 2d 63 61 63 68 65 0a 20 20 20 20 20 ompletion-table-with-cache......
7720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 5f 29 0a 20 20 20 20 20 20 ..............(lambda.(_).......
7740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 20 28 61 70 ...............(cl-remove-if.(ap
7760 70 6c 79 2d 70 61 72 74 69 61 6c 6c 79 20 27 73 74 72 69 6e 67 3d 20 70 72 65 66 69 78 29 20 28 ply-partially.'string=.prefix).(
7780 66 75 6e 63 61 6c 6c 20 63 6f 6c 6c 65 63 74 69 6f 6e 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 funcall.collection))))..........
77a0 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .......collection)..............
77c0 20 3a 65 78 69 74 2d 66 75 6e 63 74 69 6f 6e 20 28 6c 61 6d 62 64 61 20 28 26 72 65 73 74 20 5f .:exit-function.(lambda.(&rest._
77e0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 )...............................
7800 20 28 77 68 65 6e 20 64 65 6c 65 74 65 2d 73 75 66 66 69 78 0a 20 20 20 20 20 20 20 20 20 20 20 .(when.delete-suffix............
7820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 63 68 ......................(delete-ch
7840 61 72 20 64 65 6c 65 74 65 2d 73 75 66 66 69 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ar.delete-suffix))..............
7860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 72 65 61 ..................(when.(and.rea
7880 6c 69 67 6e 2d 61 66 74 65 72 20 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 75 74 6f 2d 61 6c 69 67 lign-after.ledger-post-auto-alig
78a0 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n)..............................
78c0 20 20 20 20 28 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 6c 69 67 6e 2d 70 6f 73 74 69 6e 67 73 20 ....(ledger-post-align-postings.
78e0 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 20 28 6c 69 6e 65 2d (line-beginning-position).(line-
7900 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 end-position))))...............'
7920 69 67 6e 6f 72 65 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 74 72 69 6d 2d ignore)))))..(defun.ledger-trim-
7940 74 72 61 69 6c 69 6e 67 2d 77 68 69 74 65 73 70 61 63 65 20 28 73 74 72 29 0a 20 20 28 72 65 70 trailing-whitespace.(str)...(rep
7960 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 20 22 5b 20 5c 74 5d 2a 24 22 20 lace-regexp-in-string."[.\t]*$".
7980 22 22 20 73 74 72 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 66 75 6c 6c 79 2d 63 6f "".str))..(defun.ledger-fully-co
79a0 6d 70 6c 65 74 65 2d 78 61 63 74 20 28 29 0a 20 20 22 43 6f 6d 70 6c 65 74 65 73 20 61 20 74 72 mplete-xact.()..."Completes.a.tr
79c0 61 6e 73 61 63 74 69 6f 6e 20 69 66 20 74 68 65 72 65 20 69 73 20 61 6e 6f 74 68 65 72 20 6d 61 ansaction.if.there.is.another.ma
79e0 74 63 68 69 6e 67 20 70 61 79 65 65 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 2e 0a 0a 49 6e 74 tching.payee.in.the.buffer...Int
7a00 65 72 61 63 74 69 76 65 6c 79 2c 20 69 66 20 70 6f 69 6e 74 20 69 73 20 61 66 74 65 72 20 61 20 eractively,.if.point.is.after.a.
7a20 70 61 79 65 65 2c 20 63 6f 6d 70 6c 65 74 65 20 74 68 65 0a 74 72 61 6e 73 61 63 74 69 6f 6e 20 payee,.complete.the.transaction.
7a40 77 69 74 68 20 74 68 65 20 64 65 74 61 69 6c 73 20 66 72 6f 6d 20 74 68 65 20 6c 61 73 74 20 74 with.the.details.from.the.last.t
7a60 72 61 6e 73 61 63 74 69 6f 6e 20 74 6f 20 74 68 61 74 0a 70 61 79 65 65 2e 22 0a 20 20 28 69 6e ransaction.to.that.payee."...(in
7a80 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 2a 20 28 28 6e 61 6d 65 20 28 6c 65 64 67 65 teractive)...(let*.((name.(ledge
7aa0 72 2d 74 72 69 6d 2d 74 72 61 69 6c 69 6e 67 2d 77 68 69 74 65 73 70 61 63 65 20 28 63 61 61 72 r-trim-trailing-whitespace.(caar
7ac0 20 28 6c 65 64 67 65 72 2d 70 61 72 73 65 2d 61 72 67 75 6d 65 6e 74 73 29 29 29 29 0a 20 20 20 .(ledger-parse-arguments))))....
7ae0 20 20 20 20 20 20 28 72 65 73 74 2d 6f 66 2d 6e 61 6d 65 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 ......(rest-of-name.name).......
7b00 20 20 20 78 61 63 74 73 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 ...xacts).....(save-excursion...
7b20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 27 74 72 61 6e 73 61 63 74 69 6f 6e 20 28 6c 65 64 67 ....(when.(eq.'transaction.(ledg
7b40 65 72 2d 74 68 69 6e 67 2d 61 74 2d 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 28 64 65 6c er-thing-at-point)).........(del
7b60 65 74 65 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 29 20 28 2b 20 28 6c 65 6e 67 74 68 20 6e 61 ete-region.(point).(+.(length.na
7b80 6d 65 29 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 53 65 61 72 63 68 20 me).(point))).........;;.Search.
7ba0 62 61 63 6b 77 61 72 64 20 66 6f 72 20 61 20 6d 61 74 63 68 69 6e 67 20 70 61 79 65 65 0a 20 20 backward.for.a.matching.payee...
7bc0 20 20 20 20 20 20 28 77 68 65 6e 20 28 72 65 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 0a ......(when.(re-search-backward.
7be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 5e 5b 30 2d 39 2f 2e 3d ...............(concat."^[0-9/.=
7c00 2d 5d 2b 5c 5c 28 5c 5c 73 2d 2b 5c 5c 2a 5c 5c 29 3f 5c 5c 28 5c 5c 73 2d 2b 28 2e 2a 3f 29 5c -]+\\(\\s-+\\*\\)?\\(\\s-+(.*?)\
7c20 5c 29 3f 5c 5c 73 2d 2b 5c 5c 28 2e 2a 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 \)?\\s-+\\(.*"..................
7c40 20 20 20 20 20 20 28 72 65 67 65 78 70 2d 71 75 6f 74 65 20 6e 61 6d 65 29 20 22 2e 2a 5c 5c 29 ......(regexp-quote.name).".*\\)
7c60 22 20 29 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 73 74 2d ".).nil.t)...........(setq.rest-
7c80 6f 66 2d 6e 61 6d 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 33 29 29 0a 20 20 20 20 20 20 of-name.(match-string.3)).......
7ca0 20 20 20 20 3b 3b 20 53 74 61 72 74 20 63 6f 70 79 69 6e 67 20 74 68 65 20 70 6f 73 74 69 6e 67 ....;;.Start.copying.the.posting
7cc0 73 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 29 0a 20 20 20 20 20 s...........(forward-line)......
7ce0 20 20 20 20 20 28 73 65 74 71 20 78 61 63 74 73 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 .....(setq.xacts.(buffer-substri
7d00 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 28 70 6f 69 6e 74 29 20 28 6c 65 64 67 65 72 ng-no-properties.(point).(ledger
7d20 2d 6e 61 76 69 67 61 74 65 2d 65 6e 64 2d 6f 66 2d 78 61 63 74 29 29 29 29 29 29 0a 20 20 20 20 -navigate-end-of-xact)))))).....
7d40 3b 3b 20 49 6e 73 65 72 74 20 72 65 73 74 2d 6f 66 2d 6e 61 6d 65 20 61 6e 64 20 74 68 65 20 70 ;;.Insert.rest-of-name.and.the.p
7d60 6f 73 74 69 6e 67 73 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 ostings.....(save-excursion.....
7d80 20 20 28 69 6e 73 65 72 74 20 72 65 73 74 2d 6f 66 2d 6e 61 6d 65 20 3f 5c 6e 29 0a 20 20 20 20 ..(insert.rest-of-name.?\n).....
7da0 20 20 28 69 6e 73 65 72 74 20 78 61 63 74 73 29 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 ..(insert.xacts).......(unless.(
7dc0 6c 6f 6f 6b 69 6e 67 2d 61 74 2d 70 20 22 5c 6e 5c 6e 22 29 0a 20 20 20 20 20 20 20 20 28 69 6e looking-at-p."\n\n").........(in
7de0 73 65 72 74 20 22 5c 6e 22 29 29 29 0a 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 29 0a sert."\n"))).....(forward-line).
7e00 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f ....(goto-char.(line-end-positio
7e20 6e 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 72 65 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 n)).....(when.(re-search-backwar
7e40 64 20 22 5c 5c 28 5c 74 5c 5c 7c 20 5b 20 5c 74 5d 5c 5c 29 22 20 6e 69 6c 20 74 29 0a 20 20 20 d."\\(\t\\|.[.\t]\\)".nil.t)....
7e60 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 29 29 29 0a ...(goto-char.(match-end.0))))).
7e80 0a 28 70 72 6f 76 69 64 65 20 27 6c 65 64 67 65 72 2d 63 6f 6d 70 6c 65 74 65 29 0a 0a 3b 3b 3b .(provide.'ledger-complete)..;;;
7ea0 20 6c 65 64 67 65 72 2d 63 6f 6d 70 6c 65 74 65 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 .ledger-complete.el.ends.here...
7ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8000 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 33 32 36 2e 32 30 30 32 2f 6c 65 64 67 65 72 ledger-mode-20240326.2002/ledger
8020 2d 63 6f 6e 74 65 78 74 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -context.el.....................
8040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8060 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
8080 30 30 32 33 33 36 35 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 34 34 32 00 20 30 00 00 00 0023365.00000000000.016442..0...
80a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
80c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
80e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8100 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
8120 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
8140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
81a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
81c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
81e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8200 3b 3b 3b 20 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 2e 65 6c 20 2d 2d 2d 20 48 65 6c 70 65 72 ;;;.ledger-context.el.---.Helper
8220 20 63 6f 64 65 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 74 68 65 20 22 6c 65 64 67 65 72 22 20 .code.for.use.with.the."ledger".
8240 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 74 6f 6f 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 command-line.tool..-*-.lexical-b
8260 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 inding:.t;.-*-..;;.Copyright.(C)
8280 20 32 30 30 33 2d 32 30 31 36 20 4a 6f 68 6e 20 57 69 65 67 6c 65 79 20 28 6a 6f 68 6e 77 20 41 .2003-2016.John.Wiegley.(johnw.A
82a0 54 20 67 6e 75 20 44 4f 54 20 6f 72 67 29 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 T.gnu.DOT.org)..;;.This.file.is.
82c0 6e 6f 74 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 54 68 69 73 20 not.part.of.GNU.Emacs...;;.This.
82e0 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 is.free.software;.you.can.redist
8300 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 20 75 6e 64 65 72 ribute.it.and/or.modify.it.under
8320 0a 3b 3b 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c .;;.the.terms.of.the.GNU.General
8340 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 .Public.License.as.published.by.
8360 74 68 65 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b the.Free.;;.Software.Foundation;
8380 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 32 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f .either.version.2,.or.(at.your.o
83a0 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 0a 3b 3b 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a ption).any.later.;;.version..;;.
83c0 3b 3b 20 54 68 69 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f ;;.This.is.distributed.in.the.ho
83e0 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 pe.that.it.will.be.useful,.but.W
8400 49 54 48 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 ITHOUT.;;.ANY.WARRANTY;.without.
8420 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 even.the.implied.warranty.of.MER
8440 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 0a 3b 3b 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 CHANTABILITY.or.;;.FITNESS.FOR.A
8460 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e .PARTICULAR.PURPOSE...See.the.GN
8480 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 66 6f 72 20 U.General.Public.License.;;.for.
84a0 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 more.details..;;.;;.You.should.h
84c0 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 ave.received.a.copy.of.the.GNU.G
84e0 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 eneral.Public.License.;;.along.w
8500 69 74 68 20 47 4e 55 20 45 6d 61 63 73 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 ith.GNU.Emacs;.see.the.file.COPY
8520 49 4e 47 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 ING...If.not,.write.to.the.;;.Fr
8540 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 ee.Software.Foundation,.Inc.,.51
8560 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 .Franklin.Street,.Fifth.Floor,.B
8580 6f 73 74 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 20 55 53 41 2e 0a 0a 0a 3b oston,.;;.MA.02110-1301.USA....;
85a0 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 20 20 50 72 6f 76 69 64 65 20 66 61 63 69 6c ;;.Commentary:.;;..Provide.facil
85c0 69 74 69 65 73 20 66 6f 72 20 72 65 66 6c 65 63 74 69 6f 6e 20 69 6e 20 6c 65 64 67 65 72 20 62 ities.for.reflection.in.ledger.b
85e0 75 66 66 65 72 73 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 uffers..;;;.Code:..(require.'led
8600 67 65 72 2d 72 65 67 65 78 29 0a 0a 3b 3b 20 6c 65 64 67 65 72 2d 2a 2d 73 74 72 69 6e 67 20 63 ger-regex)..;;.ledger-*-string.c
8620 6f 6e 73 74 61 6e 74 73 20 61 72 65 20 61 73 73 65 6d 62 6c 65 64 20 69 6e 20 74 68 65 0a 3b 3b onstants.are.assembled.in.the.;;
8640 20 60 6c 65 64 67 65 72 2d 73 69 6e 67 6c 65 2d 6c 69 6e 65 2d 63 6f 6e 66 69 67 27 20 6d 61 63 .`ledger-single-line-config'.mac
8660 72 6f 20 74 6f 20 66 6f 72 6d 20 74 68 65 20 72 65 67 65 78 20 61 6e 64 20 6c 69 73 74 20 6f 66 ro.to.form.the.regex.and.list.of
8680 0a 3b 3b 20 65 6c 65 6d 65 6e 74 73 0a 28 64 65 66 63 6f 6e 73 74 20 6c 65 64 67 65 72 2d 69 6e .;;.elements.(defconst.ledger-in
86a0 64 65 6e 74 2d 73 74 72 69 6e 67 20 22 5c 5c 28 5e 5b 20 5c 74 5d 2b 5c 5c 29 22 29 0a 28 64 65 dent-string."\\(^[.\t]+\\)").(de
86c0 66 63 6f 6e 73 74 20 6c 65 64 67 65 72 2d 73 74 61 74 75 73 2d 73 74 72 69 6e 67 20 22 5c 5c 28 fconst.ledger-status-string."\\(
86e0 2a 5c 5c 7c 21 5c 5c 29 3f 22 29 0a 28 64 65 66 63 6f 6e 73 74 20 6c 65 64 67 65 72 2d 61 63 63 *\\|!\\)?").(defconst.ledger-acc
8700 6f 75 6e 74 2d 73 74 72 69 6e 67 20 22 5b 5c 5c 5b 28 5d 3f 5c 5c 28 2e 2a 3f 5c 5c 29 5b 5d 29 ount-string."[\\[(]?\\(.*?\\)[])
8720 5d 3f 22 29 0a 28 64 65 66 63 6f 6e 73 74 20 6c 65 64 67 65 72 2d 73 65 70 61 72 61 74 6f 72 2d ]?").(defconst.ledger-separator-
8740 73 74 72 69 6e 67 20 22 5c 5c 28 5c 5c 73 2d 5c 5c 73 2d 2b 5c 5c 29 22 29 0a 28 64 65 66 63 6f string."\\(\\s-\\s-+\\)").(defco
8760 6e 73 74 20 6c 65 64 67 65 72 2d 61 6d 6f 75 6e 74 2d 73 74 72 69 6e 67 20 6c 65 64 67 65 72 2d nst.ledger-amount-string.ledger-
8780 61 6d 6f 75 6e 74 2d 72 65 67 65 78 70 29 0a 28 64 65 66 63 6f 6e 73 74 20 6c 65 64 67 65 72 2d amount-regexp).(defconst.ledger-
87a0 63 6f 6d 6d 6f 64 69 74 69 7a 65 64 2d 61 6d 6f 75 6e 74 2d 73 74 72 69 6e 67 20 6c 65 64 67 65 commoditized-amount-string.ledge
87c0 72 2d 63 6f 6d 6d 6f 64 69 74 69 7a 65 64 2d 61 6d 6f 75 6e 74 2d 72 65 67 65 78 70 29 0a 28 64 r-commoditized-amount-regexp).(d
87e0 65 66 63 6f 6e 73 74 20 6c 65 64 67 65 72 2d 63 6f 73 74 2d 73 74 72 69 6e 67 20 6c 65 64 67 65 efconst.ledger-cost-string.ledge
8800 72 2d 63 6f 73 74 2d 72 65 67 65 78 70 29 0a 28 64 65 66 63 6f 6e 73 74 20 6c 65 64 67 65 72 2d r-cost-regexp).(defconst.ledger-
8820 62 61 6c 61 6e 63 65 2d 61 73 73 65 72 74 69 6f 6e 2d 73 74 72 69 6e 67 20 6c 65 64 67 65 72 2d balance-assertion-string.ledger-
8840 62 61 6c 61 6e 63 65 2d 61 73 73 65 72 74 69 6f 6e 2d 72 65 67 65 78 70 29 0a 28 64 65 66 63 6f balance-assertion-regexp).(defco
8860 6e 73 74 20 6c 65 64 67 65 72 2d 63 6f 6d 6d 65 6e 74 2d 73 74 72 69 6e 67 20 22 5c 5c 28 3f 3a nst.ledger-comment-string."\\(?:
8880 5b 20 5c 74 5d 2a 5c 6e 5c 5c 29 3f 5b 20 5c 74 5d 2a 3b 5b 20 5c 74 5d 2a 5c 5c 28 2e 2a 3f 5c [.\t]*\n\\)?[.\t]*;[.\t]*\\(.*?\
88a0 5c 29 22 29 0a 28 64 65 66 63 6f 6e 73 74 20 6c 65 64 67 65 72 2d 6e 69 6c 2d 73 74 72 69 6e 67 \)").(defconst.ledger-nil-string
88c0 20 22 5c 5c 28 5b 20 5c 74 5d 2b 5c 5c 29 22 29 0a 28 64 65 66 63 6f 6e 73 74 20 6c 65 64 67 65 ."\\([.\t]+\\)").(defconst.ledge
88e0 72 2d 64 61 74 65 2d 73 74 72 69 6e 67 20 22 5e 5c 5c 28 5b 30 2d 39 5d 5c 5c 7b 34 5c 5c 7d 5b r-date-string."^\\([0-9]\\{4\\}[
8900 2f 2d 5d 5b 30 31 5d 3f 5b 30 2d 39 5d 5b 2f 2d 5d 5b 30 31 32 33 5d 3f 5b 30 2d 39 5d 5c 5c 29 /-][01]?[0-9][/-][0123]?[0-9]\\)
8920 5c 5c 28 3f 3a 3d 5b 30 2d 39 5d 5c 5c 7b 34 5c 5c 7d 5b 2f 2d 5d 5b 30 31 5d 3f 5b 30 2d 39 5d \\(?:=[0-9]\\{4\\}[/-][01]?[0-9]
8940 5b 2f 2d 5d 5b 30 31 32 33 5d 3f 5b 30 2d 39 5d 5c 5c 29 3f 22 29 0a 28 64 65 66 63 6f 6e 73 74 [/-][0123]?[0-9]\\)?").(defconst
8960 20 6c 65 64 67 65 72 2d 63 6f 64 65 2d 73 74 72 69 6e 67 20 22 5c 5c 28 28 2e 2a 29 5c 5c 29 3f .ledger-code-string."\\((.*)\\)?
8980 22 29 0a 28 64 65 66 63 6f 6e 73 74 20 6c 65 64 67 65 72 2d 70 61 79 65 65 2d 73 74 72 69 6e 67 ").(defconst.ledger-payee-string
89a0 20 22 5c 5c 28 2e 2a 5b 5e 5b 3a 73 70 61 63 65 3a 5d 5c 6e 5d 5c 5c 29 22 29 0a 0a 0a 28 64 65 ."\\(.*[^[:space:]\n]\\)")...(de
89c0 66 75 6e 20 6c 65 64 67 65 72 2d 67 65 74 2d 72 65 67 65 78 2d 73 74 72 20 28 6e 61 6d 65 29 0a fun.ledger-get-regex-str.(name).
89e0 20 20 22 47 65 74 20 74 68 65 20 6c 65 64 67 65 72 20 72 65 67 65 78 20 6f 66 20 74 79 70 65 20 .."Get.the.ledger.regex.of.type.
8a00 4e 41 4d 45 2e 22 0a 20 20 28 73 79 6d 62 6f 6c 2d 76 61 6c 75 65 20 28 69 6e 74 65 72 6e 20 28 NAME."...(symbol-value.(intern.(
8a20 63 6f 6e 63 61 74 20 22 6c 65 64 67 65 72 2d 22 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6e 61 concat."ledger-".(symbol-name.na
8a40 6d 65 29 20 22 2d 73 74 72 69 6e 67 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 me)."-string"))))..(defun.ledger
8a60 2d 6c 69 6e 65 2d 72 65 67 65 78 20 28 65 6c 65 6d 65 6e 74 73 29 0a 20 20 22 47 65 74 20 61 20 -line-regex.(elements)..."Get.a.
8a80 72 65 67 65 78 20 74 6f 20 6d 61 74 63 68 20 45 4c 45 4d 45 4e 54 53 20 6f 6e 20 61 20 73 69 6e regex.to.match.ELEMENTS.on.a.sin
8aa0 67 6c 65 20 6c 69 6e 65 2e 22 0a 20 20 28 63 6f 6e 63 61 74 20 28 61 70 70 6c 79 20 27 63 6f 6e gle.line."...(concat.(apply.'con
8ac0 63 61 74 20 28 6d 61 70 63 61 72 20 27 6c 65 64 67 65 72 2d 67 65 74 2d 72 65 67 65 78 2d 73 74 cat.(mapcar.'ledger-get-regex-st
8ae0 72 20 65 6c 65 6d 65 6e 74 73 29 29 20 22 5b 20 5c 74 5d 2a 24 22 29 29 0a 0a 28 64 65 66 6d 61 r.elements))."[.\t]*$"))..(defma
8b00 63 72 6f 20 6c 65 64 67 65 72 2d 73 69 6e 67 6c 65 2d 6c 69 6e 65 2d 63 6f 6e 66 69 67 20 28 26 cro.ledger-single-line-config.(&
8b20 72 65 73 74 20 65 6c 65 6d 65 6e 74 73 29 0a 20 20 22 54 61 6b 65 20 45 4c 45 4d 45 4e 54 53 20 rest.elements)..."Take.ELEMENTS.
8b40 61 6e 64 20 72 65 74 75 72 6e 20 72 65 67 65 78 20 61 6e 64 20 65 6c 65 6d 65 6e 74 20 6c 69 73 and.return.regex.and.element.lis
8b60 74 20 66 6f 72 20 75 73 65 20 69 6e 20 63 6f 6e 74 65 78 74 2d 61 74 2d 70 6f 69 6e 74 2e 22 0a t.for.use.in.context-at-point.".
8b80 20 20 60 28 6c 69 73 74 20 28 6c 65 64 67 65 72 2d 6c 69 6e 65 2d 72 65 67 65 78 20 28 71 75 6f ..`(list.(ledger-line-regex.(quo
8ba0 74 65 20 2c 65 6c 65 6d 65 6e 74 73 29 29 20 28 71 75 6f 74 65 20 2c 65 6c 65 6d 65 6e 74 73 29 te.,elements)).(quote.,elements)
8bc0 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6c 65 64 67 65 72 2d 6c 69 6e 65 2d 63 6f 6e 66 69 67 ))..(defconst.ledger-line-config
8be0 0a 20 20 28 6c 69 73 74 20 28 6c 69 73 74 20 27 78 61 63 74 20 28 6c 69 73 74 20 28 6c 65 64 67 ...(list.(list.'xact.(list.(ledg
8c00 65 72 2d 73 69 6e 67 6c 65 2d 6c 69 6e 65 2d 63 6f 6e 66 69 67 20 64 61 74 65 20 6e 69 6c 20 73 er-single-line-config.date.nil.s
8c20 74 61 74 75 73 20 6e 69 6c 20 63 6f 64 65 20 6e 69 6c 20 70 61 79 65 65 20 63 6f 6d 6d 65 6e 74 tatus.nil.code.nil.payee.comment
8c40 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 )...........................(led
8c60 67 65 72 2d 73 69 6e 67 6c 65 2d 6c 69 6e 65 2d 63 6f 6e 66 69 67 20 64 61 74 65 20 6e 69 6c 20 ger-single-line-config.date.nil.
8c80 73 74 61 74 75 73 20 6e 69 6c 20 63 6f 64 65 20 6e 69 6c 20 70 61 79 65 65 29 0a 20 20 20 20 20 status.nil.code.nil.payee)......
8ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 73 69 6e .....................(ledger-sin
8cc0 67 6c 65 2d 6c 69 6e 65 2d 63 6f 6e 66 69 67 20 64 61 74 65 20 6e 69 6c 20 73 74 61 74 75 73 20 gle-line-config.date.nil.status.
8ce0 6e 69 6c 20 70 61 79 65 65 20 63 6f 6d 6d 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 nil.payee.comment)..............
8d00 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 73 69 6e 67 6c 65 2d 6c 69 6e 65 .............(ledger-single-line
8d20 2d 63 6f 6e 66 69 67 20 64 61 74 65 20 6e 69 6c 20 73 74 61 74 75 73 20 6e 69 6c 20 70 61 79 65 -config.date.nil.status.nil.paye
8d40 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 e)...........................(le
8d60 64 67 65 72 2d 73 69 6e 67 6c 65 2d 6c 69 6e 65 2d 63 6f 6e 66 69 67 20 64 61 74 65 20 6e 69 6c dger-single-line-config.date.nil
8d80 20 63 6f 64 65 20 6e 69 6c 20 70 61 79 65 65 20 63 6f 6d 6d 65 6e 74 29 0a 20 20 20 20 20 20 20 .code.nil.payee.comment)........
8da0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 73 69 6e 67 6c ...................(ledger-singl
8dc0 65 2d 6c 69 6e 65 2d 63 6f 6e 66 69 67 20 64 61 74 65 20 6e 69 6c 20 63 6f 64 65 20 6e 69 6c 20 e-line-config.date.nil.code.nil.
8de0 70 61 79 65 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 payee)..........................
8e00 20 28 6c 65 64 67 65 72 2d 73 69 6e 67 6c 65 2d 6c 69 6e 65 2d 63 6f 6e 66 69 67 20 64 61 74 65 .(ledger-single-line-config.date
8e20 20 6e 69 6c 20 70 61 79 65 65 20 63 6f 6d 6d 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .nil.payee.comment).............
8e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 73 69 6e 67 6c 65 2d 6c 69 6e ..............(ledger-single-lin
8e60 65 2d 63 6f 6e 66 69 67 20 64 61 74 65 20 6e 69 6c 20 70 61 79 65 65 29 29 29 0a 20 20 20 20 20 e-config.date.nil.payee)))......
8e80 20 20 20 28 6c 69 73 74 20 27 61 63 63 74 2d 74 72 61 6e 73 61 63 74 69 6f 6e 20 28 6c 69 73 74 ...(list.'acct-transaction.(list
8ea0 20 28 6c 65 64 67 65 72 2d 73 69 6e 67 6c 65 2d 6c 69 6e 65 2d 63 6f 6e 66 69 67 20 69 6e 64 65 .(ledger-single-line-config.inde
8ec0 6e 74 20 63 6f 6d 6d 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nt.comment).....................
8ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 73 69 6e 67 6c 65 ..................(ledger-single
8f00 2d 6c 69 6e 65 2d 63 6f 6e 66 69 67 20 69 6e 64 65 6e 74 20 73 74 61 74 75 73 20 6e 69 6c 20 61 -line-config.indent.status.nil.a
8f20 63 63 6f 75 6e 74 20 73 65 70 61 72 61 74 6f 72 20 63 6f 6d 6d 6f 64 69 74 69 7a 65 64 2d 61 6d ccount.separator.commoditized-am
8f40 6f 75 6e 74 20 6e 69 6c 20 63 6f 73 74 20 6e 69 6c 20 62 61 6c 61 6e 63 65 2d 61 73 73 65 72 74 ount.nil.cost.nil.balance-assert
8f60 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ion)............................
8f80 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 73 69 6e 67 6c 65 2d 6c 69 6e 65 2d 63 ...........(ledger-single-line-c
8fa0 6f 6e 66 69 67 20 69 6e 64 65 6e 74 20 73 74 61 74 75 73 20 6e 69 6c 20 61 63 63 6f 75 6e 74 20 onfig.indent.status.nil.account.
8fc0 73 65 70 61 72 61 74 6f 72 20 63 6f 6d 6d 6f 64 69 74 69 7a 65 64 2d 61 6d 6f 75 6e 74 20 6e 69 separator.commoditized-amount.ni
8fe0 6c 20 62 61 6c 61 6e 63 65 2d 61 73 73 65 72 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 l.balance-assertion)............
9000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 ...........................(ledg
9020 65 72 2d 73 69 6e 67 6c 65 2d 6c 69 6e 65 2d 63 6f 6e 66 69 67 20 69 6e 64 65 6e 74 20 73 74 61 er-single-line-config.indent.sta
9040 74 75 73 20 6e 69 6c 20 61 63 63 6f 75 6e 74 20 73 65 70 61 72 61 74 6f 72 20 63 6f 6d 6d 6f 64 tus.nil.account.separator.commod
9060 69 74 69 7a 65 64 2d 61 6d 6f 75 6e 74 20 6e 69 6c 20 63 6f 73 74 20 63 6f 6d 6d 65 6e 74 29 0a itized-amount.nil.cost.comment).
9080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
90a0 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 73 69 6e 67 6c 65 2d 6c 69 6e 65 2d 63 6f 6e 66 69 67 ......(ledger-single-line-config
90c0 20 69 6e 64 65 6e 74 20 73 74 61 74 75 73 20 6e 69 6c 20 61 63 63 6f 75 6e 74 20 73 65 70 61 72 .indent.status.nil.account.separ
90e0 61 74 6f 72 20 63 6f 6d 6d 6f 64 69 74 69 7a 65 64 2d 61 6d 6f 75 6e 74 20 6e 69 6c 20 63 6f 73 ator.commoditized-amount.nil.cos
9100 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t)..............................
9120 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 73 69 6e 67 6c 65 2d 6c 69 6e 65 2d 63 6f 6e .........(ledger-single-line-con
9140 66 69 67 20 69 6e 64 65 6e 74 20 73 74 61 74 75 73 20 6e 69 6c 20 61 63 63 6f 75 6e 74 20 73 65 fig.indent.status.nil.account.se
9160 70 61 72 61 74 6f 72 20 63 6f 6d 6d 6f 64 69 74 69 7a 65 64 2d 61 6d 6f 75 6e 74 20 63 6f 6d 6d parator.commoditized-amount.comm
9180 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ent)............................
91a0 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 73 69 6e 67 6c 65 2d 6c 69 6e 65 2d 63 ...........(ledger-single-line-c
91c0 6f 6e 66 69 67 20 69 6e 64 65 6e 74 20 73 74 61 74 75 73 20 6e 69 6c 20 61 63 63 6f 75 6e 74 20 onfig.indent.status.nil.account.
91e0 73 65 70 61 72 61 74 6f 72 20 63 6f 6d 6d 6f 64 69 74 69 7a 65 64 2d 61 6d 6f 75 6e 74 29 0a 20 separator.commoditized-amount)..
9200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
9220 20 20 20 20 20 28 6c 65 64 67 65 72 2d 73 69 6e 67 6c 65 2d 6c 69 6e 65 2d 63 6f 6e 66 69 67 20 .....(ledger-single-line-config.
9240 69 6e 64 65 6e 74 20 73 74 61 74 75 73 20 6e 69 6c 20 61 63 63 6f 75 6e 74 20 73 65 70 61 72 61 indent.status.nil.account.separa
9260 74 6f 72 20 61 6d 6f 75 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tor.amount).....................
9280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 73 69 6e 67 6c 65 ..................(ledger-single
92a0 2d 6c 69 6e 65 2d 63 6f 6e 66 69 67 20 69 6e 64 65 6e 74 20 73 74 61 74 75 73 20 6e 69 6c 20 61 -line-config.indent.status.nil.a
92c0 63 63 6f 75 6e 74 20 63 6f 6d 6d 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ccount.comment).................
92e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 73 69 ......................(ledger-si
9300 6e 67 6c 65 2d 6c 69 6e 65 2d 63 6f 6e 66 69 67 20 69 6e 64 65 6e 74 20 73 74 61 74 75 73 20 6e ngle-line-config.indent.status.n
9320 69 6c 20 61 63 63 6f 75 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 il.account).....................
9340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 73 69 6e 67 6c 65 ..................(ledger-single
9360 2d 6c 69 6e 65 2d 63 6f 6e 66 69 67 20 69 6e 64 65 6e 74 20 61 63 63 6f 75 6e 74 20 73 65 70 61 -line-config.indent.account.sepa
9380 72 61 74 6f 72 20 63 6f 6d 6d 6f 64 69 74 69 7a 65 64 2d 61 6d 6f 75 6e 74 20 63 6f 6d 6d 65 6e rator.commoditized-amount.commen
93a0 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t)..............................
93c0 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 73 69 6e 67 6c 65 2d 6c 69 6e 65 2d 63 6f 6e .........(ledger-single-line-con
93e0 66 69 67 20 69 6e 64 65 6e 74 20 61 63 63 6f 75 6e 74 20 73 65 70 61 72 61 74 6f 72 20 63 6f 6d fig.indent.account.separator.com
9400 6d 6f 64 69 74 69 7a 65 64 2d 61 6d 6f 75 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 moditized-amount)...............
9420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d ........................(ledger-
9440 73 69 6e 67 6c 65 2d 6c 69 6e 65 2d 63 6f 6e 66 69 67 20 69 6e 64 65 6e 74 20 61 63 63 6f 75 6e single-line-config.indent.accoun
9460 74 20 73 65 70 61 72 61 74 6f 72 20 61 6d 6f 75 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 t.separator.amount).............
9480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 ..........................(ledge
94a0 72 2d 73 69 6e 67 6c 65 2d 6c 69 6e 65 2d 63 6f 6e 66 69 67 20 69 6e 64 65 6e 74 20 61 63 63 6f r-single-line-config.indent.acco
94c0 75 6e 74 20 63 6f 6d 6d 65 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 unt.comment)....................
94e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 73 69 6e 67 6c ...................(ledger-singl
9500 65 2d 6c 69 6e 65 2d 63 6f 6e 66 69 67 20 69 6e 64 65 6e 74 20 61 63 63 6f 75 6e 74 29 29 29 29 e-line-config.indent.account))))
9520 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 65 78 74 72 61 63 74 2d 63 6f 6e 74 65 78 74 )..(defun.ledger-extract-context
9540 2d 69 6e 66 6f 20 28 6c 69 6e 65 2d 74 79 70 65 20 70 6f 73 29 0a 20 20 22 47 65 74 20 63 6f 6e -info.(line-type.pos)..."Get.con
9560 74 65 78 74 20 69 6e 66 6f 20 66 6f 72 20 63 75 72 72 65 6e 74 20 6c 69 6e 65 20 77 69 74 68 20 text.info.for.current.line.with.
9580 4c 49 4e 45 2d 54 59 50 45 2e 0a 0a 41 73 73 75 6d 65 73 20 70 6f 69 6e 74 20 69 73 20 61 74 20 LINE-TYPE...Assumes.point.is.at.
95a0 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 6c 69 6e 65 2c 20 61 6e 64 20 74 68 65 20 50 4f 53 20 61 beginning.of.line,.and.the.POS.a
95c0 72 67 75 6d 65 6e 74 20 73 70 65 63 69 66 69 65 73 0a 77 68 65 72 65 20 74 68 65 20 5c 22 75 73 rgument.specifies.where.the.\"us
95e0 65 72 73 5c 22 20 70 6f 69 6e 74 20 77 61 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 6c 69 6e 66 6f ers\".point.was."...(let.((linfo
9600 20 28 61 73 73 6f 63 20 6c 69 6e 65 2d 74 79 70 65 20 6c 65 64 67 65 72 2d 6c 69 6e 65 2d 63 6f .(assoc.line-type.ledger-line-co
9620 6e 66 69 67 29 29 0a 20 20 20 20 20 20 20 20 66 6f 75 6e 64 20 66 69 65 6c 64 20 66 69 65 6c 64 nfig)).........found.field.field
9640 73 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 72 65 2d 69 6e 66 6f 20 28 6e 74 68 20 31 20 6c s).....(dolist.(re-info.(nth.1.l
9660 69 6e 66 6f 29 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 72 65 20 28 6e 74 68 20 30 20 72 65 info)).......(let.((re.(nth.0.re
9680 2d 69 6e 66 6f 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 61 6d 65 73 20 28 6e 74 68 20 -info)).............(names.(nth.
96a0 31 20 72 65 2d 69 6e 66 6f 29 29 29 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 66 6f 75 1.re-info))).........(unless.fou
96c0 6e 64 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 72 nd...........(when.(looking-at.r
96e0 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 66 6f 75 6e 64 20 74 29 0a 20 20 e).............(setq.found.t)...
9700 20 20 20 20 20 20 20 20 20 20 28 64 6f 74 69 6d 65 73 20 28 69 20 28 6c 65 6e 67 74 68 20 6e 61 ..........(dotimes.(i.(length.na
9720 6d 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6e 74 68 20 69 mes))...............(when.(nth.i
9740 20 6e 61 6d 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 66 69 .names).................(setq.fi
9760 65 6c 64 73 20 28 61 70 70 65 6e 64 20 66 69 65 6c 64 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 elds.(append.fields.............
9780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 0a 20 .........................(list..
97a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
97c0 20 20 20 20 20 28 6c 69 73 74 20 28 6e 74 68 20 69 20 6e 61 6d 65 73 29 0a 20 20 20 20 20 20 20 .....(list.(nth.i.names)........
97e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
9800 20 20 20 20 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 .....(match-string-no-properties
9820 20 28 31 2b 20 69 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(1+.i))........................
9840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 74 63 68 2d 62 65 67 69 .....................(match-begi
9860 6e 6e 69 6e 67 20 28 31 2b 20 69 29 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 nning.(1+.i)))))))).............
9880 28 64 6f 6c 69 73 74 20 28 66 20 66 69 65 6c 64 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 (dolist.(f.fields)..............
98a0 20 28 61 6e 64 20 28 6e 74 68 20 31 20 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(and.(nth.1.f).................
98c0 20 20 20 28 3e 3d 20 70 6f 73 20 28 6e 74 68 20 32 20 66 29 29 0a 20 20 20 20 20 20 20 20 20 20 ...(>=.pos.(nth.2.f))...........
98e0 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 66 69 65 6c 64 20 28 6e 74 68 20 30 20 66 29 29 29 .........(setq.field.(nth.0.f)))
9900 29 29 29 29 29 0a 20 20 20 20 28 6c 69 73 74 20 6c 69 6e 65 2d 74 79 70 65 20 66 69 65 6c 64 20 ))))).....(list.line-type.field.
9920 66 69 65 6c 64 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 74 68 69 6e 67 2d 61 fields)))..(defun.ledger-thing-a
9940 74 2d 70 6f 69 6e 74 20 28 29 0a 20 20 22 44 65 73 63 72 69 62 65 20 74 68 69 6e 67 20 61 74 20 t-point.()..."Describe.thing.at.
9960 70 6f 69 6e 74 2e 20 20 52 65 74 75 72 6e 20 5c 3d 27 74 72 61 6e 73 61 63 74 69 6f 6e 2c 20 5c point...Return.\='transaction,.\
9980 3d 27 70 6f 73 74 69 6e 67 2c 20 5c 3d 27 64 61 79 2c 20 6f 72 20 6e 69 6c 2e 0a 0a 4c 65 61 76 ='posting,.\='day,.or.nil...Leav
99a0 65 20 70 6f 69 6e 74 20 61 74 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 e.point.at.the.beginning.of.the.
99c0 74 68 69 6e 67 20 61 74 20 70 6f 69 6e 74 2c 20 6f 74 68 65 72 77 69 73 65 20 64 6f 20 6e 6f 74 thing.at.point,.otherwise.do.not
99e0 20 6d 6f 76 65 20 70 6f 69 6e 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 68 65 72 65 20 28 70 6f 69 .move.point."...(let.((here.(poi
9a00 6e 74 29 29 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6c 69 6e 65 2d 62 65 67 69 6e nt))).....(goto-char.(line-begin
9a20 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 6c 6f 6f 6b ning-position)).....(cond.((look
9a40 69 6e 67 2d 61 74 20 22 5e 5c 5c 28 3f 3a 5b 7e 3d 5d 5b 20 5c 74 5d 5c 5c 7c 5b 30 2d 39 2f 2e ing-at."^\\(?:[~=][.\t]\\|[0-9/.
9a60 3d 2d 5d 2b 5c 5c 28 5c 5c 73 2d 2b 5c 5c 2a 5c 5c 29 3f 5c 5c 28 5c 5c 73 2d 2b 28 2e 2b 3f 29 =-]+\\(\\s-+\\*\\)?\\(\\s-+(.+?)
9a80 5c 5c 29 3f 5c 5c 73 2d 2b 5c 5c 29 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d \\)?\\s-+\\)")............(goto-
9aa0 63 68 61 72 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 27 char.(match-end.0))............'
9ac0 74 72 61 6e 73 61 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 transaction)...........((looking
9ae0 2d 61 74 20 22 5e 5c 5c 73 2d 2b 5c 5c 28 5b 2a 21 5d 5c 5c 73 2d 2b 5c 5c 29 3f 5b 5b 28 5d 3f -at."^\\s-+\\([*!]\\s-+\\)?[[(]?
9b00 5c 5c 28 5b 5e 5c 5c 73 2d 5d 5c 5c 29 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f \\([^\\s-]\\)")............(goto
9b20 2d 63 68 61 72 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 32 29 29 0a 20 20 20 20 20 -char.(match-beginning.2))......
9b40 20 20 20 20 20 20 27 70 6f 73 74 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 6c 6f 6f 6b ......'posting)...........((look
9b60 69 6e 67 2d 61 74 20 22 5e 5c 5c 28 73 75 6e 5c 5c 7c 6d 6f 6e 5c 5c 7c 74 75 65 5c 5c 7c 77 65 ing-at."^\\(sun\\|mon\\|tue\\|we
9b80 64 5c 5c 7c 74 68 75 5c 5c 7c 66 72 69 5c 5c 7c 73 61 74 5c 5c 29 5c 5c 73 2d 2b 22 29 0a 20 20 d\\|thu\\|fri\\|sat\\)\\s-+")...
9ba0 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 .........(goto-char.(match-end.0
9bc0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 27 64 61 79 29 0a 20 20 20 20 20 20 20 20 20 20 28 74 ))............'day)...........(t
9be0 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 67 6e 6f 72 65 20 28 67 6f 74 6f 2d 63 68 61 72 20 68 ............(ignore.(goto-char.h
9c00 65 72 65 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 ere))))))..(defun.ledger-context
9c20 2d 61 74 2d 70 6f 69 6e 74 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 64 65 -at-point.()..."Return.a.list.de
9c40 73 63 72 69 62 69 6e 67 20 74 68 65 20 63 6f 6e 74 65 78 74 20 61 72 6f 75 6e 64 20 70 6f 69 6e scribing.the.context.around.poin
9c60 74 2e 0a 0a 54 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 74 68 65 20 6c 69 73 74 20 61 72 65 t...The.contents.of.the.list.are
9c80 20 74 68 65 20 6c 69 6e 65 20 74 79 70 65 2c 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 .the.line.type,.the.name.of.the.
9ca0 66 69 65 6c 64 0a 63 6f 6e 74 61 69 6e 69 6e 67 20 70 6f 69 6e 74 2c 20 61 6e 64 20 66 6f 72 20 field.containing.point,.and.for.
9cc0 73 65 6c 65 63 74 65 64 20 6c 69 6e 65 20 74 79 70 65 73 2c 20 74 68 65 20 63 6f 6e 74 65 6e 74 selected.line.types,.the.content
9ce0 20 6f 66 0a 74 68 65 20 66 69 65 6c 64 73 20 69 6e 20 74 68 65 20 6c 69 6e 65 20 69 6e 20 61 20 .of.the.fields.in.the.line.in.a.
9d00 61 73 73 6f 63 69 61 74 69 6f 6e 20 6c 69 73 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 70 6f 73 20 association.list."...(let.((pos.
9d20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 (point))).....(save-excursion...
9d40 20 20 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 28 6c ....(beginning-of-line).......(l
9d60 65 74 20 28 28 66 69 72 73 74 2d 63 68 61 72 20 28 63 68 61 72 2d 61 66 74 65 72 29 29 29 0a 20 et.((first-char.(char-after)))..
9d80 20 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 65 71 75 61 6c 20 28 70 6f 69 6e 74 29 20 28 6c 69 .......(cond.((equal.(point).(li
9da0 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ne-end-position))...............
9dc0 20 27 28 65 6d 70 74 79 2d 6c 69 6e 65 20 6e 69 6c 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 .'(empty-line.nil.nil)).........
9de0 20 20 20 20 20 20 28 28 6d 65 6d 71 20 66 69 72 73 74 2d 63 68 61 72 20 27 28 3f 5c 20 3f 5c 74 ......((memq.first-char.'(?\.?\t
9e00 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 65 78 74 72 61 63 ))................(ledger-extrac
9e20 74 2d 63 6f 6e 74 65 78 74 2d 69 6e 66 6f 20 27 61 63 63 74 2d 74 72 61 6e 73 61 63 74 69 6f 6e t-context-info.'acct-transaction
9e40 20 70 6f 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6d 65 6d 71 20 66 69 72 73 .pos))...............((memq.firs
9e60 74 2d 63 68 61 72 20 27 28 3f 30 20 3f 31 20 3f 32 20 3f 33 20 3f 34 20 3f 35 20 3f 36 20 3f 37 t-char.'(?0.?1.?2.?3.?4.?5.?6.?7
9e80 20 3f 38 20 3f 39 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d .?8.?9))................(ledger-
9ea0 65 78 74 72 61 63 74 2d 63 6f 6e 74 65 78 74 2d 69 6e 66 6f 20 27 78 61 63 74 20 70 6f 73 29 29 extract-context-info.'xact.pos))
9ec0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 75 61 6c 20 66 69 72 73 74 2d 63 68 61 ...............((equal.first-cha
9ee0 72 20 3f 5c 3d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 61 75 74 6f 6d 61 74 65 r.?\=)................'(automate
9f00 64 2d 78 61 63 74 20 6e 69 6c 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 d-xact.nil.nil))...............(
9f20 28 65 71 75 61 6c 20 66 69 72 73 74 2d 63 68 61 72 20 3f 5c 7e 29 0a 20 20 20 20 20 20 20 20 20 (equal.first-char.?\~)..........
9f40 20 20 20 20 20 20 27 28 70 65 72 69 6f 64 2d 78 61 63 74 20 6e 69 6c 20 6e 69 6c 29 29 0a 20 20 ......'(period-xact.nil.nil))...
9f60 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 75 61 6c 20 66 69 72 73 74 2d 63 68 61 72 20 3f ............((equal.first-char.?
9f80 5c 21 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 63 6f 6d 6d 61 6e 64 2d 64 69 72 \!)................'(command-dir
9fa0 65 63 74 69 76 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 75 61 6c 20 66 ective))...............((equal.f
9fc0 69 72 73 74 2d 63 68 61 72 20 3f 5c 3b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 irst-char.?\;)................'(
9fe0 63 6f 6d 6d 65 6e 74 20 6e 69 6c 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 comment.nil.nil))...............
a000 28 28 65 71 75 61 6c 20 66 69 72 73 74 2d 63 68 61 72 20 3f 59 29 0a 20 20 20 20 20 20 20 20 20 ((equal.first-char.?Y)..........
a020 20 20 20 20 20 20 27 28 64 65 66 61 75 6c 74 2d 79 65 61 72 20 6e 69 6c 20 6e 69 6c 29 29 0a 20 ......'(default-year.nil.nil))..
a040 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 75 61 6c 20 66 69 72 73 74 2d 63 68 61 72 20 .............((equal.first-char.
a060 3f 50 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 63 6f 6d 6d 6f 64 69 74 79 2d 70 ?P)................'(commodity-p
a080 72 69 63 65 20 6e 69 6c 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 rice.nil.nil))...............((e
a0a0 71 75 61 6c 20 66 69 72 73 74 2d 63 68 61 72 20 3f 4e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 qual.first-char.?N).............
a0c0 20 20 20 27 28 70 72 69 63 65 2d 69 67 6e 6f 72 65 64 2d 63 6f 6d 6d 6f 64 69 74 79 20 6e 69 6c ...'(price-ignored-commodity.nil
a0e0 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 75 61 6c 20 66 69 72 .nil))...............((equal.fir
a100 73 74 2d 63 68 61 72 20 3f 44 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 64 65 66 st-char.?D)................'(def
a120 61 75 6c 74 2d 63 6f 6d 6d 6f 64 69 74 79 20 6e 69 6c 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 ault-commodity.nil.nil))........
a140 20 20 20 20 20 20 20 28 28 65 71 75 61 6c 20 66 69 72 73 74 2d 63 68 61 72 20 3f 43 29 0a 20 20 .......((equal.first-char.?C)...
a160 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 63 6f 6d 6d 6f 64 69 74 79 2d 63 6f 6e 76 65 72 73 .............'(commodity-convers
a180 69 6f 6e 20 6e 69 6c 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 ion.nil.nil))...............((eq
a1a0 75 61 6c 20 66 69 72 73 74 2d 63 68 61 72 20 3f 69 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ual.first-char.?i)..............
a1c0 20 20 27 28 74 69 6d 65 63 6c 6f 63 6b 2d 69 20 6e 69 6c 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 ..'(timeclock-i.nil.nil)).......
a1e0 20 20 20 20 20 20 20 20 28 28 65 71 75 61 6c 20 66 69 72 73 74 2d 63 68 61 72 20 3f 6f 29 0a 20 ........((equal.first-char.?o)..
a200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 74 69 6d 65 63 6c 6f 63 6b 2d 6f 20 6e 69 6c 20 ..............'(timeclock-o.nil.
a220 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 75 61 6c 20 66 69 72 73 nil))...............((equal.firs
a240 74 2d 63 68 61 72 20 3f 62 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 28 74 69 6d 65 t-char.?b)................'(time
a260 63 6c 6f 63 6b 2d 62 20 6e 69 6c 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 clock-b.nil.nil))...............
a280 28 28 65 71 75 61 6c 20 66 69 72 73 74 2d 63 68 61 72 20 3f 68 29 0a 20 20 20 20 20 20 20 20 20 ((equal.first-char.?h)..........
a2a0 20 20 20 20 20 20 27 28 74 69 6d 65 63 6c 6f 63 6b 2d 68 20 20 6e 69 6c 20 6e 69 6c 29 29 0a 20 ......'(timeclock-h..nil.nil))..
a2c0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 .............(t................'
a2e0 28 75 6e 6b 6e 6f 77 6e 20 6e 69 6c 20 6e 69 6c 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 (unknown.nil.nil)))))))..(defun.
a300 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 2d 6f 74 68 65 72 2d 6c 69 6e 65 20 28 6f 66 66 73 65 ledger-context-other-line.(offse
a320 74 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 64 65 73 63 72 69 62 69 6e 67 20 63 t)..."Return.a.list.describing.c
a340 6f 6e 74 65 78 74 20 6f 66 20 6c 69 6e 65 20 4f 46 46 53 45 54 20 66 72 6f 6d 20 65 78 69 73 74 ontext.of.line.OFFSET.from.exist
a360 69 6e 67 20 70 6f 73 69 74 69 6f 6e 2e 0a 0a 4f 66 66 73 65 74 20 63 61 6e 20 62 65 20 70 6f 73 ing.position...Offset.can.be.pos
a380 69 74 69 76 65 20 6f 72 20 6e 65 67 61 74 69 76 65 2e 20 20 49 66 20 72 75 6e 20 6f 75 74 20 6f itive.or.negative...If.run.out.o
a3a0 66 20 62 75 66 66 65 72 20 62 65 66 6f 72 65 20 72 65 61 63 68 69 6e 67 0a 73 70 65 63 69 66 69 f.buffer.before.reaching.specifi
a3c0 65 64 20 6c 69 6e 65 2c 20 72 65 74 75 72 6e 73 20 6e 69 6c 2e 22 0a 20 20 28 73 61 76 65 2d 65 ed.line,.returns.nil."...(save-e
a3e0 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 6c 65 74 20 28 28 6c 65 66 74 20 28 66 6f 72 77 61 72 xcursion.....(let.((left.(forwar
a400 64 2d 6c 69 6e 65 20 6f 66 66 73 65 74 29 29 29 0a 20 20 20 20 20 20 28 69 66 20 28 6e 6f 74 20 d-line.offset))).......(if.(not.
a420 28 65 71 75 61 6c 20 6c 65 66 74 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 6e 69 6c 0a 20 20 (equal.left.0))...........nil...
a440 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 2d 61 74 2d 70 6f 69 6e 74 29 29 ......(ledger-context-at-point))
a460 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 2d 6c 69 6e 65 2d )))..(defun.ledger-context-line-
a480 74 79 70 65 20 28 63 6f 6e 74 65 78 74 2d 69 6e 66 6f 29 0a 20 20 28 6e 74 68 20 30 20 63 6f 6e type.(context-info)...(nth.0.con
a4a0 74 65 78 74 2d 69 6e 66 6f 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 63 6f 6e 74 65 text-info))..(defun.ledger-conte
a4c0 78 74 2d 63 75 72 72 65 6e 74 2d 66 69 65 6c 64 20 28 63 6f 6e 74 65 78 74 2d 69 6e 66 6f 29 0a xt-current-field.(context-info).
a4e0 20 20 28 6e 74 68 20 31 20 63 6f 6e 74 65 78 74 2d 69 6e 66 6f 29 29 0a 0a 28 64 65 66 75 6e 20 ..(nth.1.context-info))..(defun.
a500 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 2d 66 69 65 6c 64 2d 69 6e 66 6f 20 28 63 6f 6e 74 65 ledger-context-field-info.(conte
a520 78 74 2d 69 6e 66 6f 20 66 69 65 6c 64 2d 6e 61 6d 65 29 0a 20 20 28 61 73 73 6f 63 20 66 69 65 xt-info.field-name)...(assoc.fie
a540 6c 64 2d 6e 61 6d 65 20 28 6e 74 68 20 32 20 63 6f 6e 74 65 78 74 2d 69 6e 66 6f 29 29 29 0a 0a ld-name.(nth.2.context-info)))..
a560 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 2d 66 69 65 6c 64 2d 70 72 65 73 (defun.ledger-context-field-pres
a580 65 6e 74 2d 70 20 28 63 6f 6e 74 65 78 74 2d 69 6e 66 6f 20 66 69 65 6c 64 2d 6e 61 6d 65 29 0a ent-p.(context-info.field-name).
a5a0 20 20 28 6e 6f 74 20 28 6e 75 6c 6c 20 28 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 2d 66 69 65 ..(not.(null.(ledger-context-fie
a5c0 6c 64 2d 69 6e 66 6f 20 63 6f 6e 74 65 78 74 2d 69 6e 66 6f 20 66 69 65 6c 64 2d 6e 61 6d 65 29 ld-info.context-info.field-name)
a5e0 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 2d 66 69 65 6c 64 )))..(defun.ledger-context-field
a600 2d 76 61 6c 75 65 20 28 63 6f 6e 74 65 78 74 2d 69 6e 66 6f 20 66 69 65 6c 64 2d 6e 61 6d 65 29 -value.(context-info.field-name)
a620 0a 20 20 28 6e 74 68 20 31 20 28 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 2d 66 69 65 6c 64 2d ...(nth.1.(ledger-context-field-
a640 69 6e 66 6f 20 63 6f 6e 74 65 78 74 2d 69 6e 66 6f 20 66 69 65 6c 64 2d 6e 61 6d 65 29 29 29 0a info.context-info.field-name))).
a660 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 2d 66 69 65 6c 64 2d 70 6f 73 .(defun.ledger-context-field-pos
a680 69 74 69 6f 6e 20 28 63 6f 6e 74 65 78 74 2d 69 6e 66 6f 20 66 69 65 6c 64 2d 6e 61 6d 65 29 0a ition.(context-info.field-name).
a6a0 20 20 28 6e 74 68 20 32 20 28 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 2d 66 69 65 6c 64 2d 69 ..(nth.2.(ledger-context-field-i
a6c0 6e 66 6f 20 63 6f 6e 74 65 78 74 2d 69 6e 66 6f 20 66 69 65 6c 64 2d 6e 61 6d 65 29 29 29 0a 0a nfo.context-info.field-name)))..
a6e0 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 2d 66 69 65 6c 64 2d 65 6e 64 2d (defun.ledger-context-field-end-
a700 70 6f 73 69 74 69 6f 6e 20 28 63 6f 6e 74 65 78 74 2d 69 6e 66 6f 20 66 69 65 6c 64 2d 6e 61 6d position.(context-info.field-nam
a720 65 29 0a 20 20 28 2b 20 28 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 2d 66 69 65 6c 64 2d 70 6f e)...(+.(ledger-context-field-po
a740 73 69 74 69 6f 6e 20 63 6f 6e 74 65 78 74 2d 69 6e 66 6f 20 66 69 65 6c 64 2d 6e 61 6d 65 29 0a sition.context-info.field-name).
a760 20 20 20 20 20 28 6c 65 6e 67 74 68 20 28 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 2d 66 69 65 .....(length.(ledger-context-fie
a780 6c 64 2d 76 61 6c 75 65 20 63 6f 6e 74 65 78 74 2d 69 6e 66 6f 20 66 69 65 6c 64 2d 6e 61 6d 65 ld-value.context-info.field-name
a7a0 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 2d 67 6f 74 6f ))))..(defun.ledger-context-goto
a7c0 2d 66 69 65 6c 64 2d 73 74 61 72 74 20 28 63 6f 6e 74 65 78 74 2d 69 6e 66 6f 20 66 69 65 6c 64 -field-start.(context-info.field
a7e0 2d 6e 61 6d 65 29 0a 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6c 65 64 67 65 72 2d 63 6f 6e 74 -name)...(goto-char.(ledger-cont
a800 65 78 74 2d 66 69 65 6c 64 2d 70 6f 73 69 74 69 6f 6e 20 63 6f 6e 74 65 78 74 2d 69 6e 66 6f 20 ext-field-position.context-info.
a820 66 69 65 6c 64 2d 6e 61 6d 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 63 6f 6e field-name)))..(defun.ledger-con
a840 74 65 78 74 2d 67 6f 74 6f 2d 66 69 65 6c 64 2d 65 6e 64 20 28 63 6f 6e 74 65 78 74 2d 69 6e 66 text-goto-field-end.(context-inf
a860 6f 20 66 69 65 6c 64 2d 6e 61 6d 65 29 0a 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6c 65 64 67 o.field-name)...(goto-char.(ledg
a880 65 72 2d 63 6f 6e 74 65 78 74 2d 66 69 65 6c 64 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 20 63 6f er-context-field-end-position.co
a8a0 6e 74 65 78 74 2d 69 6e 66 6f 20 66 69 65 6c 64 2d 6e 61 6d 65 29 29 29 0a 0a 28 70 72 6f 76 69 ntext-info.field-name)))..(provi
a8c0 64 65 20 27 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 29 0a 0a 3b 3b 3b 20 6c 65 64 67 65 72 2d de.'ledger-context)..;;;.ledger-
a8e0 63 6f 6e 74 65 78 74 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 context.el.ends.here............
a900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
a9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aa00 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 33 32 36 2e 32 30 30 32 2f 6c 65 64 67 65 72 ledger-mode-20240326.2002/ledger
aa20 2d 65 78 65 63 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -exec.el........................
aa40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aa60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
aa80 30 30 31 31 37 34 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 36 37 37 00 20 30 00 00 00 0011743.00000000000.015677..0...
aaa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ab00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
ab20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
ab40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ab60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ab80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
abc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
abe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ac00 3b 3b 3b 20 6c 65 64 67 65 72 2d 65 78 65 63 2e 65 6c 20 2d 2d 2d 20 48 65 6c 70 65 72 20 63 6f ;;;.ledger-exec.el.---.Helper.co
ac20 64 65 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 74 68 65 20 22 6c 65 64 67 65 72 22 20 63 6f 6d de.for.use.with.the."ledger".com
ac40 6d 61 6e 64 2d 6c 69 6e 65 20 74 6f 6f 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 mand-line.tool..-*-.lexical-bind
ac60 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 ing:.t;.-*-..;;.Copyright.(C).20
ac80 30 33 2d 32 30 31 36 20 4a 6f 68 6e 20 57 69 65 67 6c 65 79 20 28 6a 6f 68 6e 77 20 41 54 20 67 03-2016.John.Wiegley.(johnw.AT.g
aca0 6e 75 20 44 4f 54 20 6f 72 67 29 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 6e 6f 74 nu.DOT.org)..;;.This.file.is.not
acc0 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 54 68 69 73 20 69 73 20 .part.of.GNU.Emacs...;;.This.is.
ace0 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 free.software;.you.can.redistrib
ad00 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 20 75 6e 64 65 72 0a 3b 3b ute.it.and/or.modify.it.under.;;
ad20 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 .the.terms.of.the.GNU.General.Pu
ad40 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 blic.License.as.published.by.the
ad60 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 .Free.;;.Software.Foundation;.ei
ad80 74 68 65 72 20 76 65 72 73 69 6f 6e 20 32 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 ther.version.2,.or.(at.your.opti
ada0 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 0a 3b 3b 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 on).any.later.;;.version..;;.;;.
adc0 54 68 69 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 This.is.distributed.in.the.hope.
ade0 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 that.it.will.be.useful,.but.WITH
ae00 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 OUT.;;.ANY.WARRANTY;.without.eve
ae20 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 n.the.implied.warranty.of.MERCHA
ae40 4e 54 41 42 49 4c 49 54 59 20 6f 72 0a 3b 3b 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 NTABILITY.or.;;.FITNESS.FOR.A.PA
ae60 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 RTICULAR.PURPOSE...See.the.GNU.G
ae80 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 66 6f 72 20 6d 6f 72 eneral.Public.License.;;.for.mor
aea0 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 e.details..;;.;;.You.should.have
aec0 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 .received.a.copy.of.the.GNU.Gene
aee0 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 ral.Public.License.;;.along.with
af00 20 47 4e 55 20 45 6d 61 63 73 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 .GNU.Emacs;.see.the.file.COPYING
af20 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 20 ...If.not,.write.to.the.;;.Free.
af40 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 Software.Foundation,.Inc.,.51.Fr
af60 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 anklin.Street,.Fifth.Floor,.Bost
af80 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 20 55 53 41 2e 0a 0a 0a 3b 3b 3b 20 on,.;;.MA.02110-1301.USA....;;;.
afa0 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 20 43 6f 64 65 20 66 6f 72 20 65 78 65 63 75 74 69 6e Commentary:.;;.Code.for.executin
afc0 67 20 6c 65 64 67 65 72 20 73 79 6e 63 68 72 6f 6e 6f 75 73 6c 79 2e 0a 0a 3b 3b 3b 20 43 6f 64 g.ledger.synchronously...;;;.Cod
afe0 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 69 6e 69 74 29 20 20 20 20 20 20 e:..(require.'ledger-init)......
b000 20 20 20 20 20 20 20 20 20 20 20 20 3b 66 6f 72 20 60 6c 65 64 67 65 72 2d 64 65 66 61 75 6c 74 ............;for.`ledger-default
b020 2d 64 61 74 65 2d 66 6f 72 6d 61 74 27 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e -date-format'..(declare-function
b040 20 6c 65 64 67 65 72 2d 6d 61 73 74 65 72 2d 66 69 6c 65 20 22 6c 65 64 67 65 72 2d 72 65 70 6f .ledger-master-file."ledger-repo
b060 72 74 22 20 28 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6c 65 64 67 65 72 2d 76 65 72 73 69 6f rt".())..(defconst.ledger-versio
b080 6e 2d 6e 65 65 64 65 64 20 22 33 2e 30 2e 30 22 0a 20 20 22 54 68 65 20 76 65 72 73 69 6f 6e 20 n-needed."3.0.0"..."The.version.
b0a0 6f 66 20 6c 65 64 67 65 72 20 65 78 65 63 75 74 61 62 6c 65 20 6e 65 65 64 65 64 20 66 6f 72 20 of.ledger.executable.needed.for.
b0c0 69 6e 74 65 72 61 63 74 69 76 65 20 66 65 61 74 75 72 65 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 interactive.features.")..(defvar
b0e0 20 6c 65 64 67 65 72 2d 77 6f 72 6b 73 20 6e 69 6c 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 69 66 20 .ledger-works.nil..."Non-nil.if.
b100 74 68 65 20 6c 65 64 67 65 72 20 62 69 6e 61 72 79 20 63 61 6e 20 73 75 70 70 6f 72 74 20 60 6c the.ledger.binary.can.support.`l
b120 65 64 67 65 72 2d 6d 6f 64 65 27 20 69 6e 74 65 72 61 63 74 69 76 65 20 66 65 61 74 75 72 65 73 edger-mode'.interactive.features
b140 2e 22 29 0a 0a 28 64 65 66 67 72 6f 75 70 20 6c 65 64 67 65 72 2d 65 78 65 63 20 6e 69 6c 0a 20 .")..(defgroup.ledger-exec.nil..
b160 20 22 49 6e 74 65 72 66 61 63 65 20 74 6f 20 74 68 65 20 4c 65 64 67 65 72 20 63 6f 6d 6d 61 6e ."Interface.to.the.Ledger.comman
b180 64 2d 6c 69 6e 65 20 61 63 63 6f 75 6e 74 69 6e 67 20 70 72 6f 67 72 61 6d 2e 22 0a 20 20 3a 67 d-line.accounting.program."...:g
b1a0 72 6f 75 70 20 27 6c 65 64 67 65 72 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 roup.'ledger)..(defcustom.ledger
b1c0 2d 6d 6f 64 65 2d 73 68 6f 75 6c 64 2d 63 68 65 63 6b 2d 76 65 72 73 69 6f 6e 20 74 0a 20 20 22 -mode-should-check-version.t..."
b1e0 53 68 6f 75 6c 64 20 4c 65 64 67 65 72 2d 6d 6f 64 65 20 76 65 72 69 66 79 20 74 68 61 74 20 74 Should.Ledger-mode.verify.that.t
b200 68 65 20 65 78 65 63 75 74 61 62 6c 65 20 69 73 20 77 6f 72 6b 69 6e 67 3f 22 0a 20 20 3a 74 79 he.executable.is.working?"...:ty
b220 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 65 78 65 pe.'boolean...:group.'ledger-exe
b240 63 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 62 69 6e 61 72 79 2d 70 61 74 c)..(defcustom.ledger-binary-pat
b260 68 20 22 6c 65 64 67 65 72 22 0a 20 20 22 50 61 74 68 20 74 6f 20 74 68 65 20 6c 65 64 67 65 72 h."ledger"..."Path.to.the.ledger
b280 20 65 78 65 63 75 74 61 62 6c 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 66 69 6c 65 0a 20 20 3a 72 .executable."...:type.'file...:r
b2a0 69 73 6b 79 20 74 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 65 78 65 63 29 0a 0a 28 isky.t...:group.'ledger-exec)..(
b2c0 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 65 78 65 63 2d 68 61 6e 64 6c 65 2d 65 72 72 6f 72 20 28 defun.ledger-exec-handle-error.(
b2e0 6c 65 64 67 65 72 2d 65 72 72 66 69 6c 65 29 0a 20 20 22 44 65 61 6c 20 77 69 74 68 20 6c 65 64 ledger-errfile)..."Deal.with.led
b300 67 65 72 20 65 72 72 6f 72 73 20 63 6f 6e 74 61 69 6e 65 64 20 69 6e 20 4c 45 44 47 45 52 2d 45 ger.errors.contained.in.LEDGER-E
b320 52 52 46 49 4c 45 2e 22 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 RRFILE."...(with-current-buffer.
b340 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 22 2a 4c 65 64 67 65 72 20 45 72 72 6f (get-buffer-create."*Ledger.Erro
b360 72 2a 22 29 0a 20 20 20 20 28 6c 65 74 20 28 28 62 75 66 66 65 72 2d 72 65 61 64 2d 6f 6e 6c 79 r*").....(let.((buffer-read-only
b380 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 28 70 6f 69 .nil)).......(delete-region.(poi
b3a0 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 28 69 6e 73 65 nt-min).(point-max)).......(inse
b3c0 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 20 6c 65 64 67 65 72 2d 65 72 72 66 69 6c 65 29 rt-file-contents.ledger-errfile)
b3e0 29 0a 20 20 20 20 28 76 69 65 77 2d 6d 6f 64 65 29 0a 20 20 20 20 28 73 65 74 71 20 62 75 66 66 ).....(view-mode).....(setq.buff
b400 65 72 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 0a 20 20 20 20 28 63 75 72 72 65 6e 74 2d 62 75 66 er-read-only.t).....(current-buf
b420 66 65 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 65 78 65 63 2d 73 75 63 63 65 fer)))..(defun.ledger-exec-succe
b440 73 73 2d 70 20 28 65 78 69 74 2d 63 6f 64 65 20 6c 65 64 67 65 72 2d 6f 75 74 70 75 74 2d 62 75 ss-p.(exit-code.ledger-output-bu
b460 66 66 65 72 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 45 58 49 54 2d ffer)..."Return.non-nil.if.EXIT-
b480 43 4f 44 45 20 61 6e 64 20 4c 45 44 47 45 52 2d 4f 55 54 50 55 54 2d 42 55 46 46 45 52 20 69 6e CODE.and.LEDGER-OUTPUT-BUFFER.in
b4a0 64 69 63 61 74 65 20 73 75 63 63 65 73 73 2e 22 0a 20 20 28 61 6e 64 20 28 7a 65 72 6f 70 20 65 dicate.success."...(and.(zerop.e
b4c0 78 69 74 2d 63 6f 64 65 29 0a 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 xit-code)........(with-current-b
b4e0 75 66 66 65 72 20 6c 65 64 67 65 72 2d 6f 75 74 70 75 74 2d 62 75 66 66 65 72 0a 20 20 20 20 20 uffer.ledger-output-buffer......
b500 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 ....(goto-char.(point-min)).....
b520 20 20 20 20 20 28 6e 6f 74 20 28 61 6e 64 20 28 3e 20 28 62 75 66 66 65 72 2d 73 69 7a 65 29 20 .....(not.(and.(>.(buffer-size).
b540 31 29 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 28 72 65 67 65 78 70 2d 71 75 6f 74 65 20 22 57 68 1).(looking-at.(regexp-quote."Wh
b560 69 6c 65 22 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 65 78 65 63 2d ile")))))))..(defun.ledger-exec-
b580 6c 65 64 67 65 72 20 28 69 6e 70 75 74 2d 62 75 66 66 65 72 20 26 6f 70 74 69 6f 6e 61 6c 20 6f ledger.(input-buffer.&optional.o
b5a0 75 74 70 75 74 2d 62 75 66 66 65 72 20 26 72 65 73 74 20 61 72 67 73 29 0a 20 20 22 52 75 6e 20 utput-buffer.&rest.args)..."Run.
b5c0 4c 65 64 67 65 72 20 75 73 69 6e 67 20 49 4e 50 55 54 2d 42 55 46 46 45 52 2e 0a 4f 70 74 69 6f Ledger.using.INPUT-BUFFER..Optio
b5e0 6e 61 6c 6c 79 20 63 61 70 74 75 72 65 20 6f 75 74 70 75 74 20 69 6e 20 4f 55 54 50 55 54 2d 42 nally.capture.output.in.OUTPUT-B
b600 55 46 46 45 52 2c 20 61 6e 64 20 70 61 73 73 20 41 52 47 53 20 6f 6e 20 74 68 65 0a 63 6f 6d 6d UFFER,.and.pass.ARGS.on.the.comm
b620 61 6e 64 20 6c 69 6e 65 2e 20 20 52 65 74 75 72 6e 73 20 4f 55 54 50 55 54 2d 42 55 46 46 45 52 and.line...Returns.OUTPUT-BUFFER
b640 20 69 66 20 6c 65 64 67 65 72 20 73 75 63 63 65 65 64 65 64 2c 0a 6f 74 68 65 72 77 69 73 65 20 .if.ledger.succeeded,.otherwise.
b660 74 68 65 20 65 72 72 6f 72 20 6f 75 74 70 75 74 20 69 73 20 64 69 73 70 6c 61 79 65 64 20 61 6e the.error.output.is.displayed.an
b680 64 20 61 6e 20 65 72 72 6f 72 20 69 73 20 72 61 69 73 65 64 2e 22 0a 20 20 28 75 6e 6c 65 73 73 d.an.error.is.raised."...(unless
b6a0 20 28 61 6e 64 20 6c 65 64 67 65 72 2d 62 69 6e 61 72 79 2d 70 61 74 68 0a 20 20 20 20 20 20 20 .(and.ledger-binary-path........
b6c0 20 20 20 20 20 20 20 20 28 6f 72 20 28 61 6e 64 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 ........(or.(and.(file-exists-p.
b6e0 6c 65 64 67 65 72 2d 62 69 6e 61 72 79 2d 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ledger-binary-path).............
b700 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 65 78 65 63 75 74 61 62 6c 65 2d 70 20 6c ............(file-executable-p.l
b720 65 64 67 65 72 2d 62 69 6e 61 72 79 2d 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 edger-binary-path)).............
b740 20 20 20 20 20 20 20 28 65 78 65 63 75 74 61 62 6c 65 2d 66 69 6e 64 20 6c 65 64 67 65 72 2d 62 .......(executable-find.ledger-b
b760 69 6e 61 72 79 2d 70 61 74 68 29 29 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 60 6c 65 64 67 65 inary-path))).....(error."`ledge
b780 72 2d 62 69 6e 61 72 79 2d 70 61 74 68 27 20 28 76 61 6c 75 65 3a 20 25 73 29 20 69 73 20 6e 6f r-binary-path'.(value:.%s).is.no
b7a0 74 20 65 78 65 63 75 74 61 62 6c 65 22 20 6c 65 64 67 65 72 2d 62 69 6e 61 72 79 2d 70 61 74 68 t.executable".ledger-binary-path
b7c0 29 29 0a 20 20 28 6c 65 74 20 28 28 62 75 66 20 28 6f 72 20 69 6e 70 75 74 2d 62 75 66 66 65 72 ))...(let.((buf.(or.input-buffer
b7e0 20 28 66 69 6e 64 2d 66 69 6c 65 2d 6e 6f 73 65 6c 65 63 74 20 28 6c 65 64 67 65 72 2d 6d 61 73 .(find-file-noselect.(ledger-mas
b800 74 65 72 2d 66 69 6c 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 6f 75 74 62 75 66 20 28 6f 72 ter-file)))).........(outbuf.(or
b820 20 6f 75 74 70 75 74 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .output-buffer..................
b840 20 20 20 28 67 65 6e 65 72 61 74 65 2d 6e 65 77 2d 62 75 66 66 65 72 20 22 20 2a 6c 65 64 67 65 ...(generate-new-buffer.".*ledge
b860 72 2d 74 6d 70 2a 22 29 29 29 0a 20 20 20 20 20 20 20 20 28 65 72 72 66 69 6c 65 20 28 6d 61 6b r-tmp*"))).........(errfile.(mak
b880 65 2d 74 65 6d 70 2d 66 69 6c 65 20 22 6c 65 64 67 65 72 2d 65 72 72 6f 72 73 22 29 29 29 0a 20 e-temp-file."ledger-errors")))..
b8a0 20 20 20 28 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63 74 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 ...(unwind-protect.........(with
b8c0 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 0a 20 20 20 20 20 20 20 20 20 20 28 6c -current-buffer.buf...........(l
b8e0 65 74 20 28 28 65 78 69 74 2d 63 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 et.((exit-code..................
b900 28 6c 65 74 20 28 28 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 2d 66 6f 72 2d 77 72 69 74 65 20 27 (let.((coding-system-for-write.'
b920 75 74 66 2d 38 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 utf-8)........................(c
b940 6f 64 69 6e 67 2d 73 79 73 74 65 6d 2d 66 6f 72 2d 72 65 61 64 20 27 75 74 66 2d 38 29 29 0a 20 oding-system-for-read.'utf-8))..
b960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 6c 79 20 23 27 63 61 6c 6c 2d ..................(apply.#'call-
b980 70 72 6f 63 65 73 73 2d 72 65 67 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 process-region..................
b9a0 20 20 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 20 28 6c 69 73 74 20 28 70 6f 69 6e 74 2d 6d 69 .........(append.(list.(point-mi
b9c0 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n).(point-max)..................
b9e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 64 67 65 72 2d 62 69 .......................ledger-bi
ba00 6e 61 72 79 2d 70 61 74 68 20 6e 69 6c 20 28 6c 69 73 74 20 6f 75 74 62 75 66 20 65 72 72 66 69 nary-path.nil.(list.outbuf.errfi
ba20 6c 65 29 20 6e 69 6c 20 22 2d 66 22 20 22 2d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 le).nil."-f"."-")...............
ba40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 22 2d 2d 64 61 74 ....................(list."--dat
ba60 65 2d 66 6f 72 6d 61 74 22 20 6c 65 64 67 65 72 2d 64 65 66 61 75 6c 74 2d 64 61 74 65 2d 66 6f e-format".ledger-default-date-fo
ba80 72 6d 61 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rmat)...........................
baa0 20 20 20 20 20 20 20 20 61 72 67 73 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 ........args))))).............(i
bac0 66 20 28 6c 65 64 67 65 72 2d 65 78 65 63 2d 73 75 63 63 65 73 73 2d 70 20 65 78 69 74 2d 63 6f f.(ledger-exec-success-p.exit-co
bae0 64 65 20 6f 75 74 62 75 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 75 74 62 75 de.outbuf).................outbu
bb00 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 20 f...............(display-buffer.
bb20 28 6c 65 64 67 65 72 2d 65 78 65 63 2d 68 61 6e 64 6c 65 2d 65 72 72 6f 72 20 65 72 72 66 69 6c (ledger-exec-handle-error.errfil
bb40 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4c 65 64 67 65 72 e))...............(error."Ledger
bb60 20 65 78 65 63 75 74 69 6f 6e 20 66 61 69 6c 65 64 22 29 29 29 29 0a 20 20 20 20 20 20 28 64 65 .execution.failed")))).......(de
bb80 6c 65 74 65 2d 66 69 6c 65 20 65 72 72 66 69 6c 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 lete-file.errfile))))..(defun.le
bba0 64 67 65 72 2d 76 65 72 73 69 6f 6e 2d 67 72 65 61 74 65 72 2d 70 20 28 6e 65 65 64 65 64 29 0a dger-version-greater-p.(needed).
bbc0 20 20 22 56 65 72 69 66 79 20 74 68 65 20 6c 65 64 67 65 72 20 62 69 6e 61 72 79 20 76 65 72 73 .."Verify.the.ledger.binary.vers
bbe0 69 6f 6e 20 69 73 20 61 74 20 6c 65 61 73 74 20 4e 45 45 44 45 44 2e 22 0a 20 20 28 6c 65 74 20 ion.is.at.least.NEEDED."...(let.
bc00 28 28 76 65 72 73 69 6f 6e 2d 73 74 72 69 6e 67 73 20 27 28 29 29 29 0a 20 20 20 20 28 77 69 74 ((version-strings.'())).....(wit
bc20 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 6c 65 64 67 65 h-temp-buffer.......(when.(ledge
bc40 72 2d 65 78 65 63 2d 6c 65 64 67 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 28 r-exec-ledger.(current-buffer).(
bc60 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 22 2d 2d 76 65 72 73 69 6f 6e 22 29 0a 20 20 20 current-buffer)."--version")....
bc80 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 .....(goto-char.(point-min))....
bca0 20 20 20 20 20 28 64 65 6c 65 74 65 2d 68 6f 72 69 7a 6f 6e 74 61 6c 2d 73 70 61 63 65 29 0a 20 .....(delete-horizontal-space)..
bcc0 20 20 20 20 20 20 20 28 73 65 74 71 20 76 65 72 73 69 6f 6e 2d 73 74 72 69 6e 67 73 20 28 73 70 .......(setq.version-strings.(sp
bce0 6c 69 74 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 lit-string......................
bd00 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 ..........(buffer-substring-no-p
bd20 72 6f 70 65 72 74 69 65 73 20 28 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 roperties.(point)...............
bd40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
bd60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 0a .................(point-max)))).
bd80 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 28 ........(if.(and.(string-match.(
bda0 72 65 67 65 78 70 2d 71 75 6f 74 65 20 22 4c 65 64 67 65 72 22 29 20 28 63 61 72 20 76 65 72 73 regexp-quote."Ledger").(car.vers
bdc0 69 6f 6e 2d 73 74 72 69 6e 67 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ion-strings))..................(
bde0 6f 72 20 28 73 74 72 69 6e 67 3d 20 6e 65 65 64 65 64 20 28 63 61 64 72 20 76 65 72 73 69 6f 6e or.(string=.needed.(cadr.version
be00 2d 73 74 72 69 6e 67 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -strings))......................
be20 28 73 74 72 69 6e 67 3c 20 6e 65 65 64 65 64 20 28 63 61 64 72 20 76 65 72 73 69 6f 6e 2d 73 74 (string<.needed.(cadr.version-st
be40 72 69 6e 67 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 20 3b 3b 20 73 75 63 63 65 rings)))).............t.;;.succe
be60 73 73 0a 20 20 20 20 20 20 20 20 20 20 6e 69 6c 29 29 29 29 29 20 3b 3b 66 61 69 6c 75 72 65 0a ss...........nil))))).;;failure.
be80 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 63 68 65 63 6b 2d 76 65 72 73 69 6f 6e 20 28 29 0a .(defun.ledger-check-version.().
bea0 20 20 22 56 65 72 69 66 79 20 74 68 61 74 20 6c 65 64 67 65 72 20 77 6f 72 6b 73 20 61 6e 64 20 .."Verify.that.ledger.works.and.
bec0 69 73 20 6d 6f 64 65 72 6e 20 65 6e 6f 75 67 68 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 is.modern.enough."...(interactiv
bee0 65 29 0a 20 20 28 69 66 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 73 68 6f 75 6c 64 2d 63 68 65 63 e)...(if.ledger-mode-should-chec
bf00 6b 2d 76 65 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 69 66 20 28 73 65 74 71 20 6c 65 64 67 65 72 k-version.......(if.(setq.ledger
bf20 2d 77 6f 72 6b 73 20 28 6c 65 64 67 65 72 2d 76 65 72 73 69 6f 6e 2d 67 72 65 61 74 65 72 2d 70 -works.(ledger-version-greater-p
bf40 20 6c 65 64 67 65 72 2d 76 65 72 73 69 6f 6e 2d 6e 65 65 64 65 64 29 29 0a 20 20 20 20 20 20 20 .ledger-version-needed))........
bf60 20 20 20 28 6d 65 73 73 61 67 65 20 22 47 6f 6f 64 20 4c 65 64 67 65 72 20 56 65 72 73 69 6f 6e ...(message."Good.Ledger.Version
bf80 22 29 0a 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 42 61 64 20 4c 65 64 67 65 72 20 ").........(message."Bad.Ledger.
bfa0 56 65 72 73 69 6f 6e 22 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 6c 65 64 67 65 72 2d 65 Version"))))..(provide.'ledger-e
bfc0 78 65 63 29 0a 0a 3b 3b 3b 20 6c 65 64 67 65 72 2d 65 78 65 63 2e 65 6c 20 65 6e 64 73 20 68 65 xec)..;;;.ledger-exec.el.ends.he
bfe0 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 re..............................
c000 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 33 32 36 2e 32 30 30 32 2f 6c 65 64 67 65 72 ledger-mode-20240326.2002/ledger
c020 2d 66 6c 79 6d 61 6b 65 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -flymake.el.....................
c040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c060 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
c080 30 30 31 35 32 30 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 33 37 35 00 20 30 00 00 00 0015202.00000000000.016375..0...
c0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c100 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
c120 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
c140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c200 3b 3b 3b 20 6c 65 64 67 65 72 2d 66 6c 79 6d 61 6b 65 2e 65 6c 20 2d 2d 2d 20 41 20 6c 65 64 67 ;;;.ledger-flymake.el.---.A.ledg
c220 65 72 20 46 6c 79 6d 61 6b 65 20 62 61 63 6b 65 6e 64 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d er.Flymake.backend..-*-.lexical-
c240 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 binding:.t;.-*-..;;.Copyright.(C
c260 29 20 32 30 31 38 20 4a 2e 20 41 6c 65 78 61 6e 64 65 72 20 42 72 61 6e 68 61 6d 20 28 61 6c 65 ).2018.J..Alexander.Branham.(ale
c280 78 20 44 4f 54 20 62 72 61 6e 68 61 6d 20 41 54 20 67 6d 61 69 6c 20 44 4f 54 20 63 6f 6d 29 0a x.DOT.branham.AT.gmail.DOT.com).
c2a0 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 6e 6f 74 20 70 61 72 74 20 6f 66 20 47 4e 55 .;;.This.file.is.not.part.of.GNU
c2c0 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 54 68 69 73 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 .Emacs...;;.This.is.free.softwar
c2e0 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f e;.you.can.redistribute.it.and/o
c300 72 20 6d 6f 64 69 66 79 20 69 74 20 75 6e 64 65 72 0a 3b 3b 20 74 68 65 20 74 65 72 6d 73 20 6f r.modify.it.under.;;.the.terms.o
c320 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 f.the.GNU.General.Public.License
c340 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 20 46 72 65 65 0a 3b 3b 20 53 6f 66 .as.published.by.the.Free.;;.Sof
c360 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e tware.Foundation;.either.version
c380 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 .3,.or.(at.your.option).any.late
c3a0 72 0a 3b 3b 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 69 73 20 64 69 73 74 r.;;.version..;;.;;.This.is.dist
c3c0 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c ributed.in.the.hope.that.it.will
c3e0 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 .be.useful,.but.WITHOUT.;;.ANY.W
c400 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 ARRANTY;.without.even.the.implie
c420 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 d.warranty.of.MERCHANTABILITY.or
c440 0a 3b 3b 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 .;;.FITNESS.FOR.A.PARTICULAR.PUR
c460 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 POSE...See.the.GNU.General.Publi
c480 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b c.License.;;.for.more.details..;
c4a0 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 ;.;;.You.should.have.received.a.
c4c0 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c copy.of.the.GNU.General.Public.L
c4e0 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 47 4e 55 20 45 6d 61 63 73 3b 20 icense.;;.along.with.GNU.Emacs;.
c500 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 20 49 66 20 6e 6f 74 2c 20 77 see.the.file.COPYING...If.not,.w
c520 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 rite.to.the.;;.Free.Software.Fou
c540 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 ndation,.Inc.,.51.Franklin.Stree
c560 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 t,.Fifth.Floor,.Boston,.;;.MA.02
c580 31 31 30 2d 31 33 30 31 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 110-1301.USA...;;;.Commentary:.;
c5a0 3b 20 46 6c 79 6d 61 6b 65 20 69 73 20 74 68 65 20 62 75 69 6c 74 2d 69 6e 20 45 6d 61 63 73 20 ;.Flymake.is.the.built-in.Emacs.
c5c0 70 61 63 6b 61 67 65 20 74 6f 20 73 75 70 70 6f 72 74 20 6f 6e 2d 74 68 65 2d 66 6c 79 20 73 79 package.to.support.on-the-fly.sy
c5e0 6e 74 61 78 20 63 68 65 63 6b 69 6e 67 2e 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 61 64 64 73 ntax.checking..;;.This.file.adds
c600 20 73 75 70 70 6f 72 74 20 66 6f 72 20 66 6c 79 6d 61 6b 65 20 74 6f 20 60 6c 65 64 67 65 72 2d .support.for.flymake.to.`ledger-
c620 6d 6f 64 65 27 2e 20 20 45 6e 61 62 6c 65 20 69 74 20 62 79 20 63 61 6c 6c 69 6e 67 0a 3b 3b 20 mode'...Enable.it.by.calling.;;.
c640 60 6c 65 64 67 65 72 2d 66 6c 79 6d 61 6b 65 2d 65 6e 61 62 6c 65 27 20 66 72 6f 6d 20 61 20 66 `ledger-flymake-enable'.from.a.f
c660 69 6c 65 2d 76 69 73 69 74 69 6e 67 20 6c 65 64 67 65 72 20 62 75 66 66 65 72 2e 20 20 54 6f 20 ile-visiting.ledger.buffer...To.
c680 65 6e 61 62 6c 65 20 69 74 0a 3b 3b 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 2c 20 70 75 74 20 enable.it.;;.automatically,.put.
c6a0 74 68 69 73 20 69 6e 20 79 6f 75 72 20 2e 65 6d 61 63 73 3a 0a 3b 3b 0a 3b 3b 20 20 20 20 20 28 this.in.your..emacs:.;;.;;.....(
c6c0 61 64 64 2d 68 6f 6f 6b 20 27 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 68 6f 6f 6b 20 23 27 6c 65 64 add-hook.'ledger-mode-hook.#'led
c6e0 67 65 72 2d 66 6c 79 6d 61 6b 65 2d 65 6e 61 62 6c 65 29 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 28 ger-flymake-enable)..;;;.Code:.(
c700 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 0a 28 72 65 71 75 69 72 65 20 27 66 6c 79 6d 61 require.'cl-lib).(require.'flyma
c720 6b 65 29 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 65 78 65 63 29 20 20 20 20 20 20 ke).(require.'ledger-exec)......
c740 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 66 6f 72 20 60 6c 65 64 67 65 72 2d 62 69 6e 61 72 79 ............;.for.`ledger-binary
c760 2d 70 61 74 68 27 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 20 -path'.(require.'ledger-report).
c780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 66 6f 72 20 60 6c 65 64 67 65 72 2d 6d 61 73 ...............;.for.`ledger-mas
c7a0 74 65 72 2d 66 69 6c 65 27 0a 0a 3b 3b 20 54 6f 20 73 69 6c 65 6e 63 65 20 62 79 74 65 20 63 6f ter-file'..;;.To.silence.byte.co
c7c0 6d 70 69 6c 65 72 20 77 61 72 6e 69 6e 67 73 20 69 6e 20 45 6d 61 63 73 20 32 35 20 61 6e 64 20 mpiler.warnings.in.Emacs.25.and.
c7e0 6f 6c 64 65 72 3a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 66 6c 79 6d 61 6b 65 older:.(declare-function.flymake
c800 2d 64 69 61 67 2d 72 65 67 69 6f 6e 20 22 66 6c 79 6d 61 6b 65 22 20 28 62 75 66 66 65 72 20 6c -diag-region."flymake".(buffer.l
c820 69 6e 65 20 26 6f 70 74 69 6f 6e 61 6c 20 63 6f 6c 29 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e ine.&optional.col)).(declare-fun
c840 63 74 69 6f 6e 20 66 6c 79 6d 61 6b 65 2d 6d 61 6b 65 2d 64 69 61 67 6e 6f 73 74 69 63 20 22 66 ction.flymake-make-diagnostic."f
c860 6c 79 6d 61 6b 65 22 20 28 62 75 66 66 65 72 20 62 65 67 20 65 6e 64 20 74 79 70 65 20 74 65 78 lymake".(buffer.beg.end.type.tex
c880 74 20 26 6f 70 74 69 6f 6e 61 6c 20 64 61 74 61 20 6f 76 65 72 6c 61 79 2d 70 72 6f 70 65 72 74 t.&optional.data.overlay-propert
c8a0 69 65 73 29 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6c 65 64 67 65 72 2d 2d 66 6c 79 ies))..(defvar-local.ledger--fly
c8c0 6d 61 6b 65 2d 70 72 6f 63 20 6e 69 6c 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 make-proc.nil)..(defcustom.ledge
c8e0 72 2d 66 6c 79 6d 61 6b 65 2d 62 65 2d 70 65 64 61 6e 74 69 63 20 6e 69 6c 0a 20 20 22 49 66 20 r-flymake-be-pedantic.nil..."If.
c900 6e 6f 6e 2d 6e 69 6c 2c 20 70 61 73 73 20 74 68 65 20 2d 2d 70 65 64 61 6e 74 69 63 20 66 6c 61 non-nil,.pass.the.--pedantic.fla
c920 67 20 66 6f 72 20 6c 65 64 67 65 72 20 74 6f 20 74 68 65 20 66 6c 79 6d 61 6b 65 20 62 61 63 6b g.for.ledger.to.the.flymake.back
c940 65 6e 64 2e 0a 49 66 20 2d 2d 70 65 64 61 6e 74 69 63 20 69 73 20 69 6e 20 79 6f 75 72 20 6c 65 end..If.--pedantic.is.in.your.le
c960 64 67 65 72 72 63 20 66 69 6c 65 2c 20 74 68 65 6e 20 2d 2d 70 65 64 61 6e 74 69 63 20 67 65 74 dgerrc.file,.then.--pedantic.get
c980 73 0a 70 61 73 73 65 64 20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 74 68 65 20 76 61 6c 75 65 s.passed.regardless.of.the.value
c9a0 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 ."...:type.'boolean...:package-v
c9c0 65 72 73 69 6f 6e 20 27 28 6c 65 64 67 65 72 2d 6d 6f 64 65 20 2e 20 22 34 2e 30 2e 30 22 29 0a ersion.'(ledger-mode..."4.0.0").
c9e0 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 ..:group.'ledger)..(defcustom.le
ca00 64 67 65 72 2d 66 6c 79 6d 61 6b 65 2d 62 65 2d 65 78 70 6c 69 63 69 74 20 6e 69 6c 0a 20 20 22 dger-flymake-be-explicit.nil..."
ca20 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 70 61 73 73 20 74 68 65 20 2d 2d 65 78 70 6c 69 63 69 74 20 If.non-nil,.pass.the.--explicit.
ca40 66 6c 61 67 20 66 6f 72 20 6c 65 64 67 65 72 20 74 6f 20 74 68 65 20 66 6c 79 6d 61 6b 65 20 62 flag.for.ledger.to.the.flymake.b
ca60 61 63 6b 65 6e 64 2e 0a 49 66 20 2d 2d 65 78 70 6c 69 63 69 74 20 69 73 20 69 6e 20 79 6f 75 72 ackend..If.--explicit.is.in.your
ca80 20 6c 65 64 67 65 72 72 63 20 66 69 6c 65 2c 20 74 68 65 6e 20 2d 2d 65 78 70 6c 69 63 69 74 20 .ledgerrc.file,.then.--explicit.
caa0 67 65 74 73 0a 70 61 73 73 65 64 20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 74 68 65 20 76 61 gets.passed.regardless.of.the.va
cac0 6c 75 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 70 61 63 6b 61 67 lue."...:type.'boolean...:packag
cae0 65 2d 76 65 72 73 69 6f 6e 20 27 28 6c 65 64 67 65 72 2d 6d 6f 64 65 20 2e 20 22 34 2e 30 2e 30 e-version.'(ledger-mode..."4.0.0
cb00 22 29 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 29 0a 0a 3b 3b 20 42 61 73 65 64 20 6f ")...:group.'ledger)..;;.Based.o
cb20 6e 20 74 68 65 20 65 78 61 6d 70 6c 65 20 66 72 6f 6d 20 46 6c 79 6d 61 6b 65 27 73 20 69 6e 66 n.the.example.from.Flymake's.inf
cb40 6f 3a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 66 6c 79 6d 61 6b 65 20 28 72 65 70 6f 72 74 o:.(defun.ledger-flymake.(report
cb60 2d 66 6e 20 26 72 65 73 74 20 5f 61 72 67 73 29 0a 20 20 22 41 20 46 6c 79 6d 61 6b 65 20 62 61 -fn.&rest._args)..."A.Flymake.ba
cb80 63 6b 65 6e 64 20 66 6f 72 20 60 6c 65 64 67 65 72 2d 6d 6f 64 65 27 2e 0a 0a 46 6c 79 6d 61 6b ckend.for.`ledger-mode'...Flymak
cba0 65 20 63 61 6c 6c 73 20 74 68 69 73 20 77 69 74 68 20 52 45 50 4f 52 54 2d 46 4e 20 61 73 20 6e e.calls.this.with.REPORT-FN.as.n
cbc0 65 65 64 65 64 2e 22 0a 20 20 28 75 6e 6c 65 73 73 20 28 65 78 65 63 75 74 61 62 6c 65 2d 66 69 eeded."...(unless.(executable-fi
cbe0 6e 64 20 6c 65 64 67 65 72 2d 62 69 6e 61 72 79 2d 70 61 74 68 29 0a 20 20 20 20 28 65 72 72 6f nd.ledger-binary-path).....(erro
cc00 72 20 22 43 61 6e 6e 6f 74 20 66 69 6e 64 20 6c 65 64 67 65 72 22 29 29 0a 20 20 3b 3b 20 49 66 r."Cannot.find.ledger"))...;;.If
cc20 20 61 20 6c 69 76 65 20 70 72 6f 63 65 73 73 20 6c 61 75 6e 63 68 65 64 20 69 6e 20 61 6e 20 65 .a.live.process.launched.in.an.e
cc40 61 72 6c 69 65 72 20 63 68 65 63 6b 20 77 61 73 20 66 6f 75 6e 64 2c 20 74 68 61 74 0a 20 20 3b arlier.check.was.found,.that...;
cc60 3b 20 70 72 6f 63 65 73 73 20 69 73 20 6b 69 6c 6c 65 64 2e 20 20 57 68 65 6e 20 74 68 61 74 20 ;.process.is.killed...When.that.
cc80 70 72 6f 63 65 73 73 27 73 20 73 65 6e 74 69 6e 65 6c 20 65 76 65 6e 74 75 61 6c 6c 79 20 72 75 process's.sentinel.eventually.ru
cca0 6e 73 2c 0a 20 20 3b 3b 20 69 74 20 77 69 6c 6c 20 6e 6f 74 69 63 65 20 69 74 73 20 6f 62 73 6f ns,...;;.it.will.notice.its.obso
ccc0 6c 65 74 69 6f 6e 2c 20 73 69 6e 63 65 20 69 74 20 68 61 76 65 20 73 69 6e 63 65 20 72 65 73 65 letion,.since.it.have.since.rese
cce0 74 0a 20 20 3b 3b 20 60 6c 65 64 67 65 72 2d 66 6c 79 6d 61 6b 65 2d 70 72 6f 63 27 20 74 6f 20 t...;;.`ledger-flymake-proc'.to.
cd00 61 20 64 69 66 66 65 72 65 6e 74 20 76 61 6c 75 65 0a 20 20 28 77 68 65 6e 20 28 70 72 6f 63 65 a.different.value...(when.(proce
cd20 73 73 2d 6c 69 76 65 2d 70 20 6c 65 64 67 65 72 2d 2d 66 6c 79 6d 61 6b 65 2d 70 72 6f 63 29 0a ss-live-p.ledger--flymake-proc).
cd40 20 20 20 20 28 6b 69 6c 6c 2d 70 72 6f 63 65 73 73 20 6c 65 64 67 65 72 2d 2d 66 6c 79 6d 61 6b ....(kill-process.ledger--flymak
cd60 65 2d 70 72 6f 63 29 29 0a 20 20 3b 3b 20 53 61 76 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 e-proc))...;;.Save.the.current.b
cd80 75 66 66 65 72 2c 20 74 68 65 20 6e 61 72 72 6f 77 69 6e 67 20 72 65 73 74 72 69 63 74 69 6f 6e uffer,.the.narrowing.restriction
cda0 2c 20 72 65 6d 6f 76 65 20 61 6e 79 0a 20 20 3b 3b 20 6e 61 72 72 6f 77 69 6e 67 20 72 65 73 74 ,.remove.any...;;.narrowing.rest
cdc0 72 69 63 74 69 6f 6e 2e 0a 20 20 28 6c 65 74 2a 20 28 28 73 6f 75 72 63 65 20 28 63 75 72 72 65 riction....(let*.((source.(curre
cde0 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 20 28 6f 72 20 28 nt-buffer))..........(file.(or.(
ce00 6c 65 64 67 65 72 2d 6d 61 73 74 65 72 2d 66 69 6c 65 29 20 28 62 75 66 66 65 72 2d 66 69 6c 65 ledger-master-file).(buffer-file
ce20 2d 6e 61 6d 65 29 29 29 29 0a 20 20 20 20 28 73 61 76 65 2d 72 65 73 74 72 69 63 74 69 6f 6e 0a -name)))).....(save-restriction.
ce40 20 20 20 20 20 20 28 77 69 64 65 6e 29 0a 20 20 20 20 20 20 3b 3b 20 52 65 73 65 74 20 74 68 65 ......(widen).......;;.Reset.the
ce60 20 60 6c 65 64 67 65 72 2d 2d 66 6c 79 6d 61 6b 65 2d 70 72 6f 63 27 20 70 72 6f 63 65 73 73 20 .`ledger--flymake-proc'.process.
ce80 74 6f 20 61 20 6e 65 77 20 70 72 6f 63 65 73 73 0a 20 20 20 20 20 20 3b 3b 20 63 61 6c 6c 69 6e to.a.new.process.......;;.callin
cea0 67 20 74 68 65 20 6c 65 64 67 65 72 20 74 6f 6f 6c 2e 0a 20 20 20 20 20 20 28 73 65 74 71 0a 20 g.the.ledger.tool........(setq..
cec0 20 20 20 20 20 20 6c 65 64 67 65 72 2d 2d 66 6c 79 6d 61 6b 65 2d 70 72 6f 63 0a 20 20 20 20 20 ......ledger--flymake-proc......
cee0 20 20 28 6d 61 6b 65 2d 70 72 6f 63 65 73 73 0a 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 22 6c ..(make-process.........:name."l
cf00 65 64 67 65 72 2d 66 6c 79 6d 61 6b 65 22 20 3a 6e 6f 71 75 65 72 79 20 74 20 3a 63 6f 6e 6e 65 edger-flymake".:noquery.t.:conne
cf20 63 74 69 6f 6e 2d 74 79 70 65 20 27 70 69 70 65 0a 20 20 20 20 20 20 20 20 3a 62 75 66 66 65 72 ction-type.'pipe.........:buffer
cf40 20 28 67 65 6e 65 72 61 74 65 2d 6e 65 77 2d 62 75 66 66 65 72 20 22 20 2a 6c 65 64 67 65 72 2d .(generate-new-buffer.".*ledger-
cf60 66 6c 79 6d 61 6b 65 2a 22 29 0a 20 20 20 20 20 20 20 20 3a 63 6f 6d 6d 61 6e 64 20 28 63 6c 2d flymake*").........:command.(cl-
cf80 72 65 6d 6f 76 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 0a 20 20 20 remove...................nil....
cfa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 2c 6c 65 64 67 65 72 2d 62 69 6e 61 72 79 2d ...............`(,ledger-binary-
cfc0 70 61 74 68 20 22 2d 66 22 20 2c 66 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 path."-f".,file.................
cfe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 28 77 68 65 6e 20 6c ........................,(when.l
d000 65 64 67 65 72 2d 66 6c 79 6d 61 6b 65 2d 62 65 2d 70 65 64 61 6e 74 69 63 20 22 2d 2d 70 65 64 edger-flymake-be-pedantic."--ped
d020 61 6e 74 69 63 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 antic").........................
d040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 28 77 68 65 6e 20 6c 65 64 67 65 72 2d 66 6c ................,(when.ledger-fl
d060 79 6d 61 6b 65 2d 62 65 2d 65 78 70 6c 69 63 69 74 20 22 2d 2d 65 78 70 6c 69 63 69 74 22 29 0a ymake-be-explicit."--explicit").
d080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d0a0 20 20 20 20 20 20 20 20 22 62 61 6c 61 6e 63 65 22 29 29 0a 20 20 20 20 20 20 20 20 3a 73 65 6e ........"balance")).........:sen
d0c0 74 69 6e 65 6c 0a 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 70 72 6f 63 20 5f 65 76 65 tinel.........(lambda.(proc._eve
d0e0 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 43 68 65 63 6b 20 74 68 61 74 20 74 68 65 20 nt)...........;;.Check.that.the.
d100 70 72 6f 63 65 73 73 20 68 61 73 20 69 6e 64 65 65 64 20 65 78 69 74 65 64 2c 20 61 73 20 69 74 process.has.indeed.exited,.as.it
d120 20 6d 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 62 65 20 73 69 6d 70 6c 79 20 73 75 .might...........;;.be.simply.su
d140 73 70 65 6e 64 65 64 2e 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 27 65 78 spended............(when.(eq.'ex
d160 69 74 20 28 70 72 6f 63 65 73 73 2d 73 74 61 74 75 73 20 70 72 6f 63 29 29 0a 20 20 20 20 20 20 it.(process-status.proc)).......
d180 20 20 20 20 20 20 28 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63 74 0a 20 20 20 20 20 20 20 20 20 20 ......(unwind-protect...........
d1a0 20 20 20 20 20 20 3b 3b 20 4f 6e 6c 79 20 70 72 6f 63 65 65 64 20 69 66 20 60 70 72 6f 63 27 20 ......;;.Only.proceed.if.`proc'.
d1c0 69 73 20 74 68 65 20 73 61 6d 65 20 61 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b is.the.same.as.................;
d1e0 3b 20 60 6c 65 64 67 65 72 2d 2d 66 6c 79 6d 61 6b 65 2d 70 72 6f 63 27 2c 20 77 68 69 63 68 20 ;.`ledger--flymake-proc',.which.
d200 69 6e 64 69 63 61 74 65 73 20 74 68 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b indicates.that.................;
d220 3b 20 60 70 72 6f 63 27 20 69 73 20 6e 6f 74 20 61 6e 20 6f 62 73 6f 6c 65 74 65 20 70 72 6f 63 ;.`proc'.is.not.an.obsolete.proc
d240 65 73 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 77 69 74 68 2d 63 ess..................(if.(with-c
d260 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 73 6f 75 72 63 65 20 28 65 71 20 70 72 6f 63 20 6c 65 urrent-buffer.source.(eq.proc.le
d280 64 67 65 72 2d 2d 66 6c 79 6d 61 6b 65 2d 70 72 6f 63 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 dger--flymake-proc))............
d2a0 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 70 .........(with-current-buffer.(p
d2c0 72 6f 63 65 73 73 2d 62 75 66 66 65 72 20 70 72 6f 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 rocess-buffer.proc).............
d2e0 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 ..........(goto-char.(point-min)
d300 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 50 61 72 73 65 ).......................;;.Parse
d320 20 74 68 65 20 6f 75 74 70 75 74 20 62 75 66 66 65 72 20 66 6f 72 20 64 69 61 67 6e 6f 73 74 69 .the.output.buffer.for.diagnosti
d340 63 27 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6d 65 73 c's.......................;;.mes
d360 73 61 67 65 73 20 61 6e 64 20 6c 6f 63 61 74 69 6f 6e 73 2c 20 63 6f 6c 6c 65 63 74 20 74 68 65 sages.and.locations,.collect.the
d380 6d 20 69 6e 20 61 20 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 m.in.a.list.....................
d3a0 20 20 3b 3b 20 6f 66 20 6f 62 6a 65 63 74 73 2c 20 61 6e 64 20 63 61 6c 6c 20 60 72 65 70 6f 72 ..;;.of.objects,.and.call.`repor
d3c0 74 2d 66 6e 27 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c t-fn'........................(cl
d3e0 2d 6c 6f 6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 68 69 -loop........................whi
d400 6c 65 20 28 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 2d 72 65 67 65 78 70 0a 20 20 20 20 20 20 le.(search-forward-regexp.......
d420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 68 69 73 20 ........................;;.This.
d440 72 65 67 65 78 20 6e 65 65 64 73 20 74 6f 20 6d 61 74 63 68 20 74 68 65 20 77 68 6f 6c 65 20 65 regex.needs.to.match.the.whole.e
d460 72 72 6f 72 2e 20 20 57 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rror...We.......................
d480 20 20 20 20 20 20 20 20 3b 3b 20 61 6c 73 6f 20 6e 65 65 64 20 61 20 63 61 70 74 75 72 65 20 67 ........;;.also.need.a.capture.g
d4a0 72 6f 75 70 20 66 6f 72 20 74 68 65 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 0a 20 20 20 20 20 roup.for.the.error.message......
d4c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 28 74 68 61 .........................;;.(tha
d4e0 74 27 73 20 67 72 6f 75 70 20 31 20 68 65 72 65 29 20 61 6e 64 20 74 68 65 20 6c 69 6e 65 20 6e t's.group.1.here).and.the.line.n
d500 75 6d 62 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 umber...........................
d520 20 20 20 20 3b 3b 20 28 67 72 6f 75 70 20 32 29 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....;;.(group.2)................
d540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 78 20 6c 69 6e 65 2d 73 74 61 72 74 20 22 ................(rx.line-start."
d560 57 68 69 6c 65 20 70 61 72 73 69 6e 67 20 66 69 6c 65 20 5c 22 22 20 28 6f 6e 65 2d 6f 72 2d 6d While.parsing.file.\"".(one-or-m
d580 6f 72 65 20 28 6e 6f 74 20 77 68 69 74 65 73 70 61 63 65 29 29 20 22 20 6c 69 6e 65 20 22 20 28 ore.(not.whitespace)).".line.".(
d5a0 67 72 6f 75 70 2d 6e 20 32 20 28 6f 6e 65 2d 6f 72 2d 6d 6f 72 65 20 6e 75 6d 29 29 20 22 3a 5c group-n.2.(one-or-more.num)).":\
d5c0 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n"..............................
d5e0 20 20 20 20 20 28 7a 65 72 6f 2d 6f 72 2d 6d 6f 72 65 20 6c 69 6e 65 2d 73 74 61 72 74 20 22 57 .....(zero-or-more.line-start."W
d600 68 69 6c 65 20 22 20 28 6f 6e 65 2d 6f 72 2d 6d 6f 72 65 20 6e 6f 74 2d 6e 65 77 6c 69 6e 65 29 hile.".(one-or-more.not-newline)
d620 20 22 5c 6e 22 20 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."\n".).........................
d640 20 20 20 20 20 20 20 20 20 20 28 6d 69 6e 69 6d 61 6c 2d 6d 61 74 63 68 20 28 7a 65 72 6f 2d 6f ..........(minimal-match.(zero-o
d660 72 2d 6d 6f 72 65 20 6c 69 6e 65 2d 73 74 61 72 74 20 28 7a 65 72 6f 2d 6f 72 2d 6d 6f 72 65 20 r-more.line-start.(zero-or-more.
d680 6e 6f 74 2d 6e 65 77 6c 69 6e 65 29 20 22 5c 6e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 not-newline)."\n")).............
d6a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 72 6f 75 70 2d 6e 20 31 ......................(group-n.1
d6c0 20 22 45 72 72 6f 72 3a 20 22 20 28 6f 6e 65 2d 6f 72 2d 6d 6f 72 65 20 6e 6f 74 2d 6e 65 77 6c ."Error:.".(one-or-more.not-newl
d6e0 69 6e 65 29 20 22 5c 6e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ine)."\n")).....................
d700 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..........nil.t)................
d720 20 20 20 20 20 20 20 20 66 6f 72 20 6d 73 67 20 3d 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 ........for.msg.=.(match-string.
d740 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 62 1)........................for.(b
d760 65 67 20 2e 20 65 6e 64 29 20 3d 20 28 66 6c 79 6d 61 6b 65 2d 64 69 61 67 2d 72 65 67 69 6f 6e eg...end).=.(flymake-diag-region
d780 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d7a0 20 20 20 20 20 20 20 20 20 20 20 73 6f 75 72 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...........source...............
d7c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 ............................(str
d7e0 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32 29 29 29 ing-to-number.(match-string.2)))
d800 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 74 79 70 65 ........................for.type
d820 20 3d 20 3a 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .=.:error.......................
d840 20 63 6f 6c 6c 65 63 74 20 28 66 6c 79 6d 61 6b 65 2d 6d 61 6b 65 2d 64 69 61 67 6e 6f 73 74 69 .collect.(flymake-make-diagnosti
d860 63 20 73 6f 75 72 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 c.source........................
d880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d8a0 20 62 65 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .beg............................
d8c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 .............................end
d8e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 79 70 65 0a 20 20 .........................type...
d920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
d940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 73 67 29 0a 20 20 20 20 20 ......................msg)......
d960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 6f 20 64 69 61 67 73 0a 20 20 20 ..................into.diags....
d980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 28 66 75 6e ....................finally.(fun
d9a0 63 61 6c 6c 20 72 65 70 6f 72 74 2d 66 6e 20 64 69 61 67 73 29 29 29 0a 20 20 20 20 20 20 20 20 call.report-fn.diags))).........
d9c0 20 20 20 20 20 20 20 20 20 20 28 66 6c 79 6d 61 6b 65 2d 6c 6f 67 20 3a 77 61 72 6e 69 6e 67 20 ..........(flymake-log.:warning.
d9e0 22 43 61 6e 63 65 6c 69 6e 67 20 6f 62 73 6f 6c 65 74 65 20 63 68 65 63 6b 20 25 73 22 0a 20 20 "Canceling.obsolete.check.%s"...
da00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f .............................pro
da20 63 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 43 6c 65 61 6e 75 70 20 74 68 65 c))...............;;.Cleanup.the
da40 20 74 65 6d 70 6f 72 61 72 79 20 62 75 66 66 65 72 20 75 73 65 64 20 74 6f 20 68 6f 6c 64 20 74 .temporary.buffer.used.to.hold.t
da60 68 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 63 68 65 63 6b 27 73 20 6f 75 74 70 he...............;;.check's.outp
da80 75 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 28 ut................(kill-buffer.(
daa0 70 72 6f 63 65 73 73 2d 62 75 66 66 65 72 20 70 72 6f 63 29 29 29 29 29 29 29 29 29 29 0a 0a 3b process-buffer.proc))))))))))..;
dac0 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 66 6c 79 6d ;;###autoload.(defun.ledger-flym
dae0 61 6b 65 2d 65 6e 61 62 6c 65 20 28 29 0a 20 20 22 45 6e 61 62 6c 65 20 60 66 6c 79 6d 61 6b 65 ake-enable.()..."Enable.`flymake
db00 2d 6d 6f 64 65 27 20 69 6e 20 60 6c 65 64 67 65 72 2d 6d 6f 64 65 27 20 62 75 66 66 65 72 73 2e -mode'.in.`ledger-mode'.buffers.
db20 22 0a 20 20 28 75 6e 6c 65 73 73 20 28 3e 20 65 6d 61 63 73 2d 6d 61 6a 6f 72 2d 76 65 72 73 69 "...(unless.(>.emacs-major-versi
db40 6f 6e 20 32 35 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 4c 65 64 67 65 72 2d 66 6c 79 6d 61 6b on.25).....(error."Ledger-flymak
db60 65 20 72 65 71 75 69 72 65 73 20 45 6d 61 63 73 20 76 65 72 73 69 6f 6e 20 32 36 20 6f 72 20 68 e.requires.Emacs.version.26.or.h
db80 69 67 68 65 72 22 29 29 0a 20 20 3b 3b 20 41 64 64 20 60 6c 65 64 67 65 72 2d 66 6c 79 6d 61 6b igher"))...;;.Add.`ledger-flymak
dba0 65 27 20 74 6f 20 60 66 6c 79 6d 61 6b 65 2d 64 69 61 67 6e 6f 73 74 69 63 2d 66 75 6e 63 74 69 e'.to.`flymake-diagnostic-functi
dbc0 6f 6e 73 27 20 73 6f 20 74 68 61 74 20 66 6c 79 6d 61 6b 65 20 63 61 6e 0a 20 20 3b 3b 20 77 6f ons'.so.that.flymake.can...;;.wo
dbe0 72 6b 20 69 6e 20 6c 65 64 67 65 72 2d 6d 6f 64 65 3a 0a 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 rk.in.ledger-mode:...(add-hook.'
dc00 66 6c 79 6d 61 6b 65 2d 64 69 61 67 6e 6f 73 74 69 63 2d 66 75 6e 63 74 69 6f 6e 73 20 27 6c 65 flymake-diagnostic-functions.'le
dc20 64 67 65 72 2d 66 6c 79 6d 61 6b 65 20 6e 69 6c 20 74 29 0a 20 20 28 66 6c 79 6d 61 6b 65 2d 6d dger-flymake.nil.t)...(flymake-m
dc40 6f 64 65 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 6c 65 64 67 65 72 2d 66 6c 79 6d 61 6b 65 29 ode))..(provide.'ledger-flymake)
dc60 0a 0a 3b 3b 3b 20 6c 65 64 67 65 72 2d 66 6c 79 6d 61 6b 65 2e 65 6c 20 65 6e 64 73 20 68 65 72 ..;;;.ledger-flymake.el.ends.her
dc80 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e...............................
dca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
dcc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
dce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
dd00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
dd20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
dd40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
dd60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
dd80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
dda0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ddc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
dde0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
de00 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 33 32 36 2e 32 30 30 32 2f 6c 65 64 67 65 72 ledger-mode-20240326.2002/ledger
de20 2d 66 6f 6e 74 69 66 79 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -fontify.el.....................
de40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
de60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
de80 30 30 30 33 37 33 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 34 33 34 00 20 30 00 00 00 0003736.00000000000.016434..0...
dea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
dec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
dee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
df00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
df20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
df40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
df60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
df80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
dfa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
dfc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
dfe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e000 3b 3b 3b 20 6c 65 64 67 65 72 2d 66 6f 6e 74 69 66 79 2e 65 6c 20 2d 2d 2d 20 50 72 6f 76 69 64 ;;;.ledger-fontify.el.---.Provid
e020 65 20 63 75 73 74 6f 6d 20 66 6f 6e 74 69 66 69 63 61 74 69 6f 6e 20 66 6f 72 20 6c 65 64 67 65 e.custom.fontification.for.ledge
e040 72 2d 6d 6f 64 65 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 r-mode..-*-.lexical-binding:.t;.
e060 2d 2a 2d 0a 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 31 34 20 43 72 61 69 -*-...;;.Copyright.(C).2014.Crai
e080 67 20 50 2e 20 45 61 72 6c 73 20 28 65 6e 64 65 72 77 38 38 20 61 74 20 67 6d 61 69 6c 20 64 6f g.P..Earls.(enderw88.at.gmail.do
e0a0 74 20 63 6f 6d 29 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 6e 6f 74 20 70 61 72 74 t.com)..;;.This.file.is.not.part
e0c0 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 54 68 69 73 20 69 73 20 66 72 65 65 20 .of.GNU.Emacs...;;.This.is.free.
e0e0 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 software;.you.can.redistribute.i
e100 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 20 75 6e 64 65 72 0a 3b 3b 20 74 68 65 20 t.and/or.modify.it.under.;;.the.
e120 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 terms.of.the.GNU.General.Public.
e140 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 20 46 72 65 65 License.as.published.by.the.Free
e160 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 .;;.Software.Foundation;.either.
e180 76 65 72 73 69 6f 6e 20 32 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 version.2,.or.(at.your.option).a
e1a0 6e 79 20 6c 61 74 65 72 0a 3b 3b 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 ny.later.;;.version..;;.;;.This.
e1c0 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 is.distributed.in.the.hope.that.
e1e0 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 4f 55 54 0a 3b it.will.be.useful,.but.WITHOUT.;
e200 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 ;.ANY.WARRANTY;.without.even.the
e220 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 4e 54 41 42 49 .implied.warranty.of.MERCHANTABI
e240 4c 49 54 59 20 6f 72 0a 3b 3b 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 LITY.or.;;.FITNESS.FOR.A.PARTICU
e260 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 LAR.PURPOSE...See.the.GNU.Genera
e280 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 l.Public.License.;;.for.more.det
e2a0 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 ails..;;.;;.You.should.have.rece
e2c0 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 ived.a.copy.of.the.GNU.General.P
e2e0 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 47 4e 55 20 ublic.License.;;.along.with.GNU.
e300 45 6d 61 63 73 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 20 49 66 Emacs;.see.the.file.COPYING...If
e320 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 20 53 6f 66 74 77 .not,.write.to.the.;;.Free.Softw
e340 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 are.Foundation,.Inc.,.51.Frankli
e360 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 6f 6e 2c 0a 3b n.Street,.Fifth.Floor,.Boston,.;
e380 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e ;.MA.02110-1301.USA...;;;.Commen
e3a0 74 61 72 79 3a 0a 3b 3b 20 20 46 6f 6e 74 2d 6c 6f 63 6b 2d 6d 6f 64 65 20 64 6f 65 73 6e 27 74 tary:.;;..Font-lock-mode.doesn't
e3c0 20 68 61 6e 64 6c 65 20 6d 75 6c 74 69 6c 69 6e 65 20 73 79 6e 74 61 78 20 76 65 72 79 20 77 65 .handle.multiline.syntax.very.we
e3e0 6c 6c 2e 20 20 54 68 69 73 0a 3b 3b 20 20 63 6f 64 65 20 70 72 6f 76 69 64 65 73 20 66 6f 6e 74 ll...This.;;..code.provides.font
e400 20 6c 6f 63 6b 20 74 68 61 74 20 69 73 20 73 65 6e 73 69 74 69 76 65 20 74 6f 20 6f 76 65 72 61 .lock.that.is.sensitive.to.overa
e420 6c 6c 20 74 72 61 6e 73 61 63 74 69 6f 6e 0a 3b 3b 20 20 73 74 61 74 65 73 0a 0a 0a 3b 3b 3b 20 ll.transaction.;;..states...;;;.
e440 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 Code:..(require.'ledger-navigate
e460 29 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 72 65 67 65 78 29 0a 28 72 65 71 75 69 ).(require.'ledger-regex).(requi
e480 72 65 20 27 6c 65 64 67 65 72 2d 73 74 61 74 65 29 0a 0a 3b 3b 20 54 68 65 73 65 20 61 72 65 20 re.'ledger-state)..;;.These.are.
e4a0 64 79 6e 61 6d 69 63 61 6c 6c 79 20 62 6f 75 6e 64 2c 20 73 65 65 20 60 66 6f 6e 74 2d 6c 6f 63 dynamically.bound,.see.`font-loc
e4c0 6b 2d 65 78 74 65 6e 64 2d 72 65 67 69 6f 6e 2d 66 75 6e 63 74 69 6f 6e 73 27 2e 0a 28 64 65 66 k-extend-region-functions'..(def
e4e0 76 61 72 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 62 65 67 29 0a 28 64 65 66 76 61 72 20 66 6f 6e 74 2d var.font-lock-beg).(defvar.font-
e500 6c 6f 63 6b 2d 65 6e 64 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 66 6f 6e lock-end)..(defcustom.ledger-fon
e520 74 69 66 79 2d 78 61 63 74 2d 73 74 61 74 65 2d 6f 76 65 72 72 69 64 65 73 20 6e 69 6c 0a 20 20 tify-xact-state-overrides.nil...
e540 22 49 66 20 74 20 74 68 65 20 68 69 67 68 6c 69 67 68 74 20 65 6e 74 69 72 65 20 78 61 63 74 20 "If.t.the.highlight.entire.xact.
e560 77 69 74 68 20 73 74 61 74 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 with.state."...:type.'boolean...
e580 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 66 :group.'ledger)..(defun.ledger-f
e5a0 6f 6e 74 69 66 79 2d 65 78 74 65 6e 64 2d 72 65 67 69 6f 6e 20 28 29 0a 20 20 22 45 78 74 65 6e ontify-extend-region.()..."Exten
e5c0 64 20 66 6f 6e 74 69 66 69 63 61 74 69 6f 6e 20 72 65 67 69 6f 6e 20 74 6f 20 69 6e 63 6c 75 64 d.fontification.region.to.includ
e5e0 65 20 77 68 6f 6c 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 6f 72 20 64 69 72 65 63 74 69 76 e.whole.transactions.or.directiv
e600 65 73 2e 22 0a 20 20 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 28 6c 65 74 es."...(save-match-data.....(let
e620 2a 20 28 28 6e 65 77 2d 62 65 67 20 28 6d 69 6e 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 62 65 67 20 28 *.((new-beg.(min.font-lock-beg.(
e640 63 61 72 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 66 69 6e 64 2d 65 6c 65 6d 65 6e car.(ledger-navigate-find-elemen
e660 74 2d 65 78 74 65 6e 74 73 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 62 65 67 29 29 29 29 0a 20 20 20 20 t-extents.font-lock-beg)))).....
e680 20 20 20 20 20 20 20 28 6e 65 77 2d 65 6e 64 20 28 6d 61 78 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 65 .......(new-end.(max.font-lock-e
e6a0 6e 64 20 28 63 61 64 72 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 66 69 6e 64 2d 65 nd.(cadr.(ledger-navigate-find-e
e6c0 6c 65 6d 65 6e 74 2d 65 78 74 65 6e 74 73 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 65 6e 64 29 29 29 29 lement-extents.font-lock-end))))
e6e0 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 68 61 6e 67 65 64 20 28 6f 72 20 28 2f 3d 20 6e 65 77 ............(changed.(or.(/=.new
e700 2d 62 65 67 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 62 65 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 -beg.font-lock-beg).............
e720 20 20 20 20 20 20 20 20 20 20 20 20 28 2f 3d 20 6e 65 77 2d 65 6e 64 20 66 6f 6e 74 2d 6c 6f 63 ............(/=.new-end.font-loc
e740 6b 2d 65 6e 64 29 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 66 6f 6e 74 2d 6c 6f 63 6b 2d k-end)))).......(setq.font-lock-
e760 62 65 67 20 6e 65 77 2d 62 65 67 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 66 6f 6e 74 2d 6c 6f beg.new-beg).......(setq.font-lo
e780 63 6b 2d 65 6e 64 20 6e 65 77 2d 65 6e 64 29 0a 20 20 20 20 20 20 63 68 61 6e 67 65 64 29 29 29 ck-end.new-end).......changed)))
e7a0 0a 0a 0a 28 70 72 6f 76 69 64 65 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 69 66 79 29 0a 0a 3b 3b ...(provide.'ledger-fontify)..;;
e7c0 3b 20 6c 65 64 67 65 72 2d 66 6f 6e 74 69 66 79 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 ;.ledger-fontify.el.ends.here...
e7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e800 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 33 32 36 2e 32 30 30 32 2f 6c 65 64 67 65 72 ledger-mode-20240326.2002/ledger
e820 2d 66 6f 6e 74 73 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -fonts.el.......................
e840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e860 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
e880 30 30 36 31 30 30 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 31 30 31 00 20 30 00 00 00 0061006.00000000000.016101..0...
e8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e900 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
e920 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
e940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea00 3b 3b 3b 20 6c 65 64 67 65 72 2d 66 6f 6e 74 73 2e 65 6c 20 2d 2d 2d 20 48 65 6c 70 65 72 20 63 ;;;.ledger-fonts.el.---.Helper.c
ea20 6f 64 65 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 74 68 65 20 22 6c 65 64 67 65 72 22 20 63 6f ode.for.use.with.the."ledger".co
ea40 6d 6d 61 6e 64 2d 6c 69 6e 65 20 74 6f 6f 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e mmand-line.tool..-*-.lexical-bin
ea60 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 ding:.t;.-*-..;;.Copyright.(C).2
ea80 30 30 33 2d 32 30 31 36 20 4a 6f 68 6e 20 57 69 65 67 6c 65 79 20 28 6a 6f 68 6e 77 20 41 54 20 003-2016.John.Wiegley.(johnw.AT.
eaa0 67 6e 75 20 44 4f 54 20 6f 72 67 29 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 6e 6f gnu.DOT.org)..;;.This.file.is.no
eac0 74 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 54 68 69 73 20 69 73 t.part.of.GNU.Emacs...;;.This.is
eae0 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 .free.software;.you.can.redistri
eb00 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 20 75 6e 64 65 72 0a 3b bute.it.and/or.modify.it.under.;
eb20 3b 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 ;.the.terms.of.the.GNU.General.P
eb40 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 ublic.License.as.published.by.th
eb60 65 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 e.Free.;;.Software.Foundation;.e
eb80 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 32 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 ither.version.2,.or.(at.your.opt
eba0 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 0a 3b 3b 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b ion).any.later.;;.version..;;.;;
ebc0 20 54 68 69 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 .This.is.distributed.in.the.hope
ebe0 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 .that.it.will.be.useful,.but.WIT
ec00 48 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 HOUT.;;.ANY.WARRANTY;.without.ev
ec20 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 en.the.implied.warranty.of.MERCH
ec40 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 0a 3b 3b 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 ANTABILITY.or.;;.FITNESS.FOR.A.P
ec60 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 ARTICULAR.PURPOSE...See.the.GNU.
ec80 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 66 6f 72 20 6d 6f General.Public.License.;;.for.mo
eca0 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 re.details..;;.;;.You.should.hav
ecc0 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e e.received.a.copy.of.the.GNU.Gen
ece0 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 eral.Public.License.;;.along.wit
ed00 68 20 47 4e 55 20 45 6d 61 63 73 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e h.GNU.Emacs;.see.the.file.COPYIN
ed20 47 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 G...If.not,.write.to.the.;;.Free
ed40 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 .Software.Foundation,.Inc.,.51.F
ed60 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 ranklin.Street,.Fifth.Floor,.Bos
ed80 74 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 20 55 53 41 2e 0a 0a 0a 0a 3b 3b ton,.;;.MA.02110-1301.USA.....;;
eda0 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 20 41 6c 6c 20 6f 66 20 74 68 65 20 66 61 63 65 ;.Commentary:.;;.All.of.the.face
edc0 73 20 66 6f 72 20 6c 65 64 67 65 72 20 6d 6f 64 65 20 61 72 65 20 64 65 66 69 6e 65 64 20 68 65 s.for.ledger.mode.are.defined.he
ede0 72 65 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 re...;;;.Code:..(require.'ledger
ee00 2d 6e 61 76 69 67 61 74 65 29 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 72 65 67 65 -navigate).(require.'ledger-rege
ee20 78 29 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 73 74 61 74 65 29 0a 28 72 65 71 75 x).(require.'ledger-state).(requ
ee40 69 72 65 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 69 66 79 29 0a 0a 28 64 65 66 67 72 6f 75 70 20 ire.'ledger-fontify)..(defgroup.
ee60 6c 65 64 67 65 72 2d 66 61 63 65 73 20 6e 69 6c 20 22 4c 65 64 67 65 72 20 6d 6f 64 65 20 68 69 ledger-faces.nil."Ledger.mode.hi
ee80 67 68 6c 69 67 68 74 69 6e 67 22 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 29 0a 0a 28 64 65 ghlighting".:group.'ledger)..(de
eea0 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 61 75 74 6f 2d 78 61 63 74 2d 66 61 63 65 fface.ledger-font-auto-xact-face
eec0 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 6e 65 67 61 74 ...`((t.:inherit.font-lock-negat
eee0 69 6f 6e 2d 63 68 61 72 2d 66 61 63 65 29 29 0a 20 20 22 44 65 66 61 75 6c 74 20 66 61 63 65 20 ion-char-face))..."Default.face.
ef00 66 6f 72 20 61 75 74 6f 6d 61 74 69 63 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 22 0a 20 20 3a 67 for.automatic.transactions"...:g
ef20 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 roup.'ledger-faces)..(defface.le
ef40 64 67 65 72 2d 66 6f 6e 74 2d 70 65 72 69 6f 64 69 63 2d 78 61 63 74 2d 66 61 63 65 0a 20 20 60 dger-font-periodic-xact-face...`
ef60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6e 73 74 61 6e 74 2d ((t.:inherit.font-lock-constant-
ef80 66 61 63 65 29 29 0a 20 20 22 44 65 66 61 75 6c 74 20 66 61 63 65 20 66 6f 72 20 61 75 74 6f 6d face))..."Default.face.for.autom
efa0 61 74 69 63 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 atic.transactions"...:group.'led
efc0 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 ger-faces)..(defface.ledger-font
efe0 2d 78 61 63 74 2d 63 6c 65 61 72 65 64 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 -xact-cleared-face...`((t.:inher
f000 69 74 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 61 79 65 65 2d 63 6c 65 61 72 65 64 2d 66 61 63 it.ledger-font-payee-cleared-fac
f020 65 29 29 0a 20 20 22 44 65 66 61 75 6c 74 20 66 61 63 65 20 66 6f 72 20 63 6c 65 61 72 65 64 20 e))..."Default.face.for.cleared.
f040 74 72 61 6e 73 61 63 74 69 6f 6e 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 transaction"...:group.'ledger-fa
f060 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 78 61 63 74 2d ces)..(defface.ledger-font-xact-
f080 70 65 6e 64 69 6e 67 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 6c 65 64 pending-face...`((t.:inherit.led
f0a0 67 65 72 2d 66 6f 6e 74 2d 70 65 6e 64 69 6e 67 2d 66 61 63 65 29 29 0a 20 20 22 44 65 66 61 75 ger-font-pending-face))..."Defau
f0c0 6c 74 20 66 61 63 65 20 66 6f 72 20 70 65 6e 64 69 6e 67 20 74 72 61 6e 73 61 63 74 69 6f 6e 22 lt.face.for.pending.transaction"
f0e0 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 ...:group.'ledger-faces)..(deffa
f100 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 61 79 65 65 2d 75 6e 63 6c 65 61 72 65 64 2d 66 ce.ledger-font-payee-uncleared-f
f120 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 65 72 72 6f 72 29 29 0a 20 20 22 44 ace...`((t.:inherit.error))..."D
f140 65 66 61 75 6c 74 20 66 61 63 65 20 66 6f 72 20 4c 65 64 67 65 72 22 0a 20 20 3a 67 72 6f 75 70 efault.face.for.Ledger"...:group
f160 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 .'ledger-faces)..(defface.ledger
f180 2d 66 6f 6e 74 2d 70 61 79 65 65 2d 63 6c 65 61 72 65 64 2d 66 61 63 65 0a 20 20 60 28 28 74 20 -font-payee-cleared-face...`((t.
f1a0 3a 69 6e 68 65 72 69 74 20 73 68 61 64 6f 77 29 29 0a 20 20 22 44 65 66 61 75 6c 74 20 66 61 63 :inherit.shadow))..."Default.fac
f1c0 65 20 66 6f 72 20 63 6c 65 61 72 65 64 20 28 2a 29 20 70 61 79 65 65 73 22 0a 20 20 3a 67 72 6f e.for.cleared.(*).payees"...:gro
f1e0 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 up.'ledger-faces)..(defface.ledg
f200 65 72 2d 66 6f 6e 74 2d 70 61 79 65 65 2d 70 65 6e 64 69 6e 67 2d 66 61 63 65 0a 20 20 60 28 28 er-font-payee-pending-face...`((
f220 74 20 3a 69 6e 68 65 72 69 74 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 65 6e 64 69 6e 67 2d 66 t.:inherit.ledger-font-pending-f
f240 61 63 65 29 29 0a 20 20 22 44 65 66 61 75 6c 74 20 66 61 63 65 20 66 6f 72 20 70 65 6e 64 69 6e ace))..."Default.face.for.pendin
f260 67 20 28 21 29 20 70 61 79 65 65 73 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 g.(!).payees"...:group.'ledger-f
f280 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 78 61 63 74 aces)..(defface.ledger-font-xact
f2a0 2d 68 69 67 68 6c 69 67 68 74 2d 66 61 63 65 0a 20 20 60 28 28 74 0a 20 20 20 20 20 2c 40 28 61 -highlight-face...`((t......,@(a
f2c0 6e 64 20 28 3e 3d 20 65 6d 61 63 73 2d 6d 61 6a 6f 72 2d 76 65 72 73 69 6f 6e 20 32 37 29 20 27 nd.(>=.emacs-major-version.27).'
f2e0 28 3a 65 78 74 65 6e 64 20 74 29 29 0a 20 20 20 20 20 3a 69 6e 68 65 72 69 74 20 6c 65 64 67 65 (:extend.t))......:inherit.ledge
f300 72 2d 6f 63 63 75 72 2d 78 61 63 74 2d 66 61 63 65 29 29 0a 20 20 22 44 65 66 61 75 6c 74 20 66 r-occur-xact-face))..."Default.f
f320 61 63 65 20 66 6f 72 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 75 6e 64 65 72 20 70 6f 69 6e 74 22 ace.for.transaction.under.point"
f340 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 ...:group.'ledger-faces)..(deffa
f360 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 65 6e 64 69 6e 67 2d 66 61 63 65 0a 20 20 60 28 ce.ledger-font-pending-face...`(
f380 28 74 20 3a 69 6e 68 65 72 69 74 20 77 61 72 6e 69 6e 67 29 29 0a 20 20 22 44 65 66 61 75 6c 74 (t.:inherit.warning))..."Default
f3a0 20 66 61 63 65 20 66 6f 72 20 70 65 6e 64 69 6e 67 20 28 21 29 20 74 72 61 6e 73 61 63 74 69 6f .face.for.pending.(!).transactio
f3c0 6e 73 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 ns"...:group.'ledger-faces)..(de
f3e0 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 6f 74 68 65 72 2d 66 61 63 65 0a 20 20 60 fface.ledger-font-other-face...`
f400 28 28 74 20 3a 69 6e 68 65 72 69 74 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 74 79 70 65 2d 66 61 63 65 ((t.:inherit.font-lock-type-face
f420 29 29 0a 20 20 22 44 65 66 61 75 6c 74 20 66 61 63 65 20 66 6f 72 20 6f 74 68 65 72 20 74 72 61 ))..."Default.face.for.other.tra
f440 6e 73 61 63 74 69 6f 6e 73 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 nsactions"...:group.'ledger-face
f460 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 64 69 72 65 63 74 69 s)..(defface.ledger-font-directi
f480 76 65 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 66 6f 6e 74 2d 6c 6f 63 ve-face...`((t.:inherit.font-loc
f4a0 6b 2d 70 72 65 70 72 6f 63 65 73 73 6f 72 2d 66 61 63 65 29 29 0a 20 20 22 44 65 66 61 75 6c 74 k-preprocessor-face))..."Default
f4c0 20 66 61 63 65 20 66 6f 72 20 6f 74 68 65 72 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 22 0a 20 20 .face.for.other.transactions"...
f4e0 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 :group.'ledger-faces)..(defface.
f500 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 61 63 63 6f 75 6e 74 2d 64 69 72 65 63 74 69 76 65 2d 66 61 ledger-font-account-directive-fa
f520 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 64 ce...`((t.:inherit.ledger-font-d
f540 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 29 0a 20 20 22 44 65 66 61 75 6c 74 20 66 61 63 65 20 irective-face))..."Default.face.
f560 66 6f 72 20 6f 74 68 65 72 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 22 0a 20 20 3a 67 72 6f 75 70 for.other.transactions"...:group
f580 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 .'ledger-faces)..(defface.ledger
f5a0 2d 66 6f 6e 74 2d 61 63 63 6f 75 6e 74 2d 6e 61 6d 65 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a -font-account-name-face...`((t.:
f5c0 69 6e 68 65 72 69 74 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 76 61 72 69 61 62 6c 65 2d 6e 61 6d 65 2d inherit.font-lock-variable-name-
f5e0 66 61 63 65 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 61 63 63 6f 75 6e 74 20 6e 61 6d 65 73 face))..."Face.for.account.names
f600 20 69 6e 20 61 63 63 6f 75 6e 74 20 61 6e 64 20 61 6c 69 61 73 20 64 69 72 65 63 74 69 76 65 73 .in.account.and.alias.directives
f620 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 "...:group.'ledger-faces)..(deff
f640 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 6e 6f 74 65 2d 64 69 72 65 63 74 69 76 65 2d 66 ace.ledger-font-note-directive-f
f660 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d ace...`((t.:inherit.ledger-font-
f680 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 6e 6f 74 directive-face))..."Face.for.not
f6a0 65 20 73 75 62 64 69 72 65 63 74 69 76 65 73 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 e.subdirectives"...:group.'ledge
f6c0 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 6e r-faces)..(defface.ledger-font-n
f6e0 6f 74 65 2d 74 65 78 74 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 66 6f ote-text-face...`((t.:inherit.fo
f700 6e 74 2d 6c 6f 63 6b 2d 64 6f 63 2d 66 61 63 65 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 6e nt-lock-doc-face))..."Face.for.n
f720 6f 74 65 20 73 75 62 64 69 72 65 63 74 69 76 65 20 74 65 78 74 22 0a 20 20 3a 67 72 6f 75 70 20 ote.subdirective.text"...:group.
f740 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 'ledger-faces)..(defface.ledger-
f760 66 6f 6e 74 2d 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 0a 20 20 60 28 font-default-directive-face...`(
f780 28 74 20 3a 69 6e 68 65 72 69 74 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 64 69 72 65 63 74 69 76 (t.:inherit.ledger-font-directiv
f7a0 65 2d 66 61 63 65 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 64 65 66 61 75 6c 74 20 73 75 62 e-face))..."Face.for.default.sub
f7c0 64 69 72 65 63 74 69 76 65 73 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 directives"...:group.'ledger-fac
f7e0 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 72 69 63 65 2d es)..(defface.ledger-font-price-
f800 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 6c directive-face...`((t.:inherit.l
f820 65 64 67 65 72 2d 66 6f 6e 74 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 29 0a 20 20 22 44 edger-font-directive-face))..."D
f840 65 66 61 75 6c 74 20 66 61 63 65 20 66 6f 72 20 6f 74 68 65 72 20 74 72 61 6e 73 61 63 74 69 6f efault.face.for.other.transactio
f860 6e 73 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 ns"...:group.'ledger-faces)..(de
f880 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 72 69 63 65 2d 64 61 74 65 2d 66 61 63 fface.ledger-font-price-date-fac
f8a0 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 64 65 66 61 75 6c 74 29 29 0a 20 20 22 46 e...`((t.:inherit.default))..."F
f8c0 61 63 65 20 66 6f 72 20 64 61 74 65 20 61 6e 64 20 74 69 6d 65 20 69 6e 20 70 72 69 63 65 20 64 ace.for.date.and.time.in.price.d
f8e0 69 72 65 63 74 69 76 65 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 irective"...:group.'ledger-faces
f900 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 72 69 63 65 2d 73 79 )..(defface.ledger-font-price-sy
f920 6d 62 6f 6c 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 66 6f 6e 74 2d 6c mbol-face...`((t.:inherit.font-l
f940 6f 63 6b 2d 63 6f 6e 73 74 61 6e 74 2d 66 61 63 65 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 ock-constant-face))..."Face.for.
f960 73 79 6d 62 6f 6c 20 69 6e 20 70 72 69 63 65 20 64 69 72 65 63 74 69 76 65 22 0a 20 20 3a 67 72 symbol.in.price.directive"...:gr
f980 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 oup.'ledger-faces)..(defface.led
f9a0 67 65 72 2d 66 6f 6e 74 2d 70 72 69 63 65 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 ger-font-price-face...`((t.:inhe
f9c0 72 69 74 20 64 65 66 61 75 6c 74 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 70 72 69 63 65 20 rit.default))..."Face.for.price.
f9e0 69 6e 20 70 72 69 63 65 20 64 69 72 65 63 74 69 76 65 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 in.price.directive"...:group.'le
fa00 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e dger-faces)..(defface.ledger-fon
fa20 74 2d 61 70 70 6c 79 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 t-apply-directive-face...`((t.:i
fa40 6e 68 65 72 69 74 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 nherit.ledger-font-directive-fac
fa60 65 29 29 0a 20 20 22 44 65 66 61 75 6c 74 20 66 61 63 65 20 66 6f 72 20 6f 74 68 65 72 20 74 72 e))..."Default.face.for.other.tr
fa80 61 6e 73 61 63 74 69 6f 6e 73 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 ansactions"...:group.'ledger-fac
faa0 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 61 70 70 6c 79 2d es)..(defface.ledger-font-apply-
fac0 61 63 63 6f 75 6e 74 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 64 65 66 account-face...`((t.:inherit.def
fae0 61 75 6c 74 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 61 72 67 75 6d 65 6e 74 20 6f 66 20 61 ault))..."Face.for.argument.of.a
fb00 70 70 6c 79 20 61 63 63 6f 75 6e 74 20 64 69 72 65 63 74 69 76 65 22 0a 20 20 3a 67 72 6f 75 70 pply.account.directive"...:group
fb20 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 .'ledger-faces)..(defface.ledger
fb40 2d 66 6f 6e 74 2d 61 70 70 6c 79 2d 74 61 67 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 -font-apply-tag-face...`((t.:inh
fb60 65 72 69 74 20 64 65 66 61 75 6c 74 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 61 72 67 75 6d erit.default))..."Face.for.argum
fb80 65 6e 74 20 6f 66 20 61 70 70 6c 79 20 74 61 67 20 64 69 72 65 63 74 69 76 65 22 0a 20 20 3a 67 ent.of.apply.tag.directive"...:g
fba0 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 roup.'ledger-faces)..(defface.le
fbc0 64 67 65 72 2d 66 6f 6e 74 2d 61 6c 69 61 73 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 0a 20 dger-font-alias-directive-face..
fbe0 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 64 69 72 65 63 .`((t.:inherit.ledger-font-direc
fc00 74 69 76 65 2d 66 61 63 65 29 29 0a 20 20 22 44 65 66 61 75 6c 74 20 66 61 63 65 20 66 6f 72 20 tive-face))..."Default.face.for.
fc20 6f 74 68 65 72 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 other.transactions"...:group.'le
fc40 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e dger-faces)..(defface.ledger-fon
fc60 74 2d 61 6c 69 61 73 2d 64 65 66 69 6e 69 74 69 6f 6e 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a t-alias-definition-face...`((t.:
fc80 69 6e 68 65 72 69 74 20 64 65 66 61 75 6c 74 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 61 6c inherit.default))..."Face.for.al
fca0 69 61 73 65 64 20 61 63 63 6f 75 6e 74 20 69 6e 20 61 6c 69 61 73 20 64 69 72 65 63 74 69 76 65 iased.account.in.alias.directive
fcc0 73 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 s"...:group.'ledger-faces)..(def
fce0 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 61 73 73 65 72 74 2d 64 69 72 65 63 74 69 76 face.ledger-font-assert-directiv
fd00 65 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 6c 65 64 67 65 72 2d 66 6f e-face...`((t.:inherit.ledger-fo
fd20 6e 74 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 29 0a 20 20 22 44 65 66 61 75 6c 74 20 66 nt-directive-face))..."Default.f
fd40 61 63 65 20 66 6f 72 20 6f 74 68 65 72 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 22 0a 20 20 3a 67 ace.for.other.transactions"...:g
fd60 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 roup.'ledger-faces)..(defface.le
fd80 64 67 65 72 2d 66 6f 6e 74 2d 63 6f 6e 64 69 74 69 6f 6e 2d 66 61 63 65 0a 20 20 60 28 28 74 20 dger-font-condition-face...`((t.
fda0 3a 69 6e 68 65 72 69 74 20 64 65 66 61 75 6c 74 29 29 0a 20 20 22 44 65 66 61 75 6c 74 20 66 61 :inherit.default))..."Default.fa
fdc0 63 65 20 66 6f 72 20 63 68 65 63 6b 20 61 6e 64 20 61 73 73 65 72 74 20 63 6f 6e 64 69 74 69 6f ce.for.check.and.assert.conditio
fde0 6e 73 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 ns"...:group.'ledger-faces)..(de
fe00 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 61 73 73 65 72 74 2d 63 6f 6e 64 69 74 69 fface.ledger-font-assert-conditi
fe20 6f 6e 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 6c 65 64 67 65 72 2d 66 on-face...`((t.:inherit.ledger-f
fe40 6f 6e 74 2d 63 6f 6e 64 69 74 69 6f 6e 2d 66 61 63 65 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 ont-condition-face))..."Face.for
fe60 20 61 73 73 65 72 74 20 63 6f 6e 64 69 74 69 6f 6e 73 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 .assert.conditions"...:group.'le
fe80 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e dger-faces)..(defface.ledger-fon
fea0 74 2d 62 75 63 6b 65 74 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a t-bucket-directive-face...`((t.:
fec0 69 6e 68 65 72 69 74 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 64 69 72 65 63 74 69 76 65 2d 66 61 inherit.ledger-font-directive-fa
fee0 63 65 29 29 0a 20 20 22 44 65 66 61 75 6c 74 20 66 61 63 65 20 66 6f 72 20 6f 74 68 65 72 20 74 ce))..."Default.face.for.other.t
ff00 72 61 6e 73 61 63 74 69 6f 6e 73 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 ransactions"...:group.'ledger-fa
ff20 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 62 75 63 6b 65 ces)..(defface.ledger-font-bucke
ff40 74 2d 61 63 63 6f 75 6e 74 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 64 t-account-face...`((t.:inherit.d
ff60 65 66 61 75 6c 74 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 62 75 63 6b 65 74 20 64 69 72 65 efault))..."Face.for.bucket.dire
ff80 63 74 69 76 65 20 61 72 67 75 6d 65 6e 74 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 ctive.argument"...:group.'ledger
ffa0 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 43 2d -faces)..(defface.ledger-font-C-
ffc0 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 6c directive-face...`((t.:inherit.l
ffe0 65 64 67 65 72 2d 66 6f 6e 74 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 29 0a 20 20 22 44 edger-font-directive-face))..."D
10000 65 66 61 75 6c 74 20 66 61 63 65 20 66 6f 72 20 43 20 64 69 72 65 63 74 69 76 65 22 0a 20 20 3a efault.face.for.C.directive"...:
10020 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c group.'ledger-faces)..(defface.l
10040 65 64 67 65 72 2d 66 6f 6e 74 2d 43 2d 61 6d 6f 75 6e 74 2d 66 61 63 65 0a 20 20 60 28 28 74 20 edger-font-C-amount-face...`((t.
10060 3a 69 6e 68 65 72 69 74 20 64 65 66 61 75 6c 74 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 61 :inherit.default))..."Face.for.a
10080 6d 6f 75 6e 74 73 20 69 6e 20 43 20 64 69 72 65 63 74 69 76 65 73 22 0a 20 20 3a 67 72 6f 75 70 mounts.in.C.directives"...:group
100a0 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 .'ledger-faces)..(defface.ledger
100c0 2d 66 6f 6e 74 2d 63 61 70 74 75 72 65 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 0a 20 20 60 -font-capture-directive-face...`
100e0 28 28 74 20 3a 69 6e 68 65 72 69 74 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 64 69 72 65 63 74 69 ((t.:inherit.ledger-font-directi
10100 76 65 2d 66 61 63 65 29 29 0a 20 20 22 44 65 66 61 75 6c 74 20 66 61 63 65 20 66 6f 72 20 6f 74 ve-face))..."Default.face.for.ot
10120 68 65 72 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 her.transactions"...:group.'ledg
10140 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d er-faces)..(defface.ledger-font-
10160 63 61 70 74 75 72 65 2d 61 63 63 6f 75 6e 74 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 capture-account-face...`((t.:inh
10180 65 72 69 74 20 64 65 66 61 75 6c 74 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 61 63 63 6f 75 erit.default))..."Face.for.accou
101a0 6e 74 20 6e 61 6d 65 20 69 6e 20 63 61 70 74 75 72 65 20 64 69 72 65 63 74 69 76 65 73 22 0a 20 nt.name.in.capture.directives"..
101c0 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 .:group.'ledger-faces)..(defface
101e0 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 63 61 70 74 75 72 65 2d 72 65 67 65 78 2d 66 61 63 65 0a .ledger-font-capture-regex-face.
10200 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 64 65 66 61 75 6c 74 29 29 0a 20 20 22 46 61 63 ..`((t.:inherit.default))..."Fac
10220 65 20 66 6f 72 20 6d 61 74 63 68 20 72 65 67 65 78 20 69 6e 20 63 61 70 74 75 72 65 20 64 69 72 e.for.match.regex.in.capture.dir
10240 65 63 74 69 76 65 73 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 ectives"...:group.'ledger-faces)
10260 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 63 68 65 63 6b 2d 64 69 72 ..(defface.ledger-font-check-dir
10280 65 63 74 69 76 65 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 6c 65 64 67 ective-face...`((t.:inherit.ledg
102a0 65 72 2d 66 6f 6e 74 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 29 0a 20 20 22 44 65 66 61 er-font-directive-face))..."Defa
102c0 75 6c 74 20 66 61 63 65 20 66 6f 72 20 6f 74 68 65 72 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 22 ult.face.for.other.transactions"
102e0 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 ...:group.'ledger-faces)..(deffa
10300 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 63 68 65 63 6b 2d 63 6f 6e 64 69 74 69 6f 6e 2d 66 ce.ledger-font-check-condition-f
10320 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d ace...`((t.:inherit.ledger-font-
10340 63 6f 6e 64 69 74 69 6f 6e 2d 66 61 63 65 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 63 68 65 condition-face))..."Face.for.che
10360 63 6b 20 63 6f 6e 64 69 74 69 6f 6e 73 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d ck.conditions"...:group.'ledger-
10380 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 63 6f 6d faces)..(defface.ledger-font-com
103a0 6d 6f 64 69 74 79 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e modity-directive-face...`((t.:in
103c0 68 65 72 69 74 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 herit.ledger-font-directive-face
103e0 29 29 0a 20 20 22 44 65 66 61 75 6c 74 20 66 61 63 65 20 66 6f 72 20 6f 74 68 65 72 20 74 72 61 ))..."Default.face.for.other.tra
10400 6e 73 61 63 74 69 6f 6e 73 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 nsactions"...:group.'ledger-face
10420 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 63 6f 6d 6d 6f 64 69 s)..(defface.ledger-font-commodi
10440 74 79 2d 6e 61 6d 65 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 66 6f 6e ty-name-face...`((t.:inherit.fon
10460 74 2d 6c 6f 63 6b 2d 63 6f 6e 73 74 61 6e 74 2d 66 61 63 65 29 29 0a 20 20 22 46 61 63 65 20 66 t-lock-constant-face))..."Face.f
10480 6f 72 20 63 6f 6d 6d 6f 64 69 74 79 20 6e 61 6d 65 20 69 6e 20 63 6f 6d 6d 6f 64 69 74 79 20 64 or.commodity.name.in.commodity.d
104a0 69 72 65 63 74 69 76 65 73 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 irectives"...:group.'ledger-face
104c0 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 66 6f 72 6d 61 74 2d s)..(defface.ledger-font-format-
104e0 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 6c directive-face...`((t.:inherit.l
10500 65 64 67 65 72 2d 66 6f 6e 74 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 29 0a 20 20 22 46 edger-font-directive-face))..."F
10520 61 63 65 20 66 6f 72 20 66 6f 72 6d 61 74 20 73 75 62 64 69 72 65 63 74 69 76 65 22 0a 20 20 3a ace.for.format.subdirective"...:
10540 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c group.'ledger-faces)..(defface.l
10560 65 64 67 65 72 2d 66 6f 6e 74 2d 63 6f 6d 6d 6f 64 69 74 79 2d 66 6f 72 6d 61 74 2d 66 61 63 65 edger-font-commodity-format-face
10580 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 64 65 66 61 75 6c 74 29 29 0a 20 20 22 46 61 ...`((t.:inherit.default))..."Fa
105a0 63 65 20 66 6f 72 20 66 6f 72 6d 61 74 20 73 75 62 64 69 72 65 63 74 69 76 65 20 61 72 67 75 6d ce.for.format.subdirective.argum
105c0 65 6e 74 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 ent"...:group.'ledger-faces)..(d
105e0 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 44 2d 64 69 72 65 63 74 69 76 65 2d 66 efface.ledger-font-D-directive-f
10600 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d ace...`((t.:inherit.ledger-font-
10620 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 29 0a 20 20 22 44 65 66 61 75 6c 74 20 66 61 63 65 directive-face))..."Default.face
10640 20 66 6f 72 20 44 20 64 69 72 65 63 74 69 76 65 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 .for.D.directive"...:group.'ledg
10660 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d er-faces)..(defface.ledger-font-
10680 64 65 66 69 6e 65 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e define-directive-face...`((t.:in
106a0 68 65 72 69 74 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 herit.ledger-font-directive-face
106c0 29 29 0a 20 20 22 44 65 66 61 75 6c 74 20 66 61 63 65 20 66 6f 72 20 6f 74 68 65 72 20 74 72 61 ))..."Default.face.for.other.tra
106e0 6e 73 61 63 74 69 6f 6e 73 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 nsactions"...:group.'ledger-face
10700 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 64 65 66 69 6e 65 2d s)..(defface.ledger-font-define-
10720 6e 61 6d 65 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 66 6f 6e 74 2d 6c name-face...`((t.:inherit.font-l
10740 6f 63 6b 2d 76 61 72 69 61 62 6c 65 2d 6e 61 6d 65 2d 66 61 63 65 29 29 0a 20 20 22 46 61 63 65 ock-variable-name-face))..."Face
10760 20 66 6f 72 20 76 61 72 69 61 62 6c 65 20 6e 61 6d 65 20 69 6e 20 64 65 66 69 6e 65 20 64 69 72 .for.variable.name.in.define.dir
10780 65 63 74 69 76 65 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a ective"...:group.'ledger-faces).
107a0 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 64 65 66 69 6e 65 2d 62 6f 64 .(defface.ledger-font-define-bod
107c0 79 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 64 65 66 61 75 6c 74 29 29 y-face...`((t.:inherit.default))
107e0 0a 20 20 22 46 61 63 65 20 66 6f 72 20 62 6f 64 79 20 69 6e 20 64 65 66 69 6e 65 20 64 69 72 65 ..."Face.for.body.in.define.dire
10800 63 74 69 76 65 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a 0a ctive"...:group.'ledger-faces)..
10820 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 65 6e 64 2d 64 69 72 65 63 74 69 (defface.ledger-font-end-directi
10840 76 65 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 6c 65 64 67 65 72 2d 66 ve-face...`((t.:inherit.ledger-f
10860 6f 6e 74 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 29 0a 20 20 22 44 65 66 61 75 6c 74 20 ont-directive-face))..."Default.
10880 66 61 63 65 20 66 6f 72 20 6f 74 68 65 72 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 22 0a 20 20 3a face.for.other.transactions"...:
108a0 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c group.'ledger-faces)..(defface.l
108c0 65 64 67 65 72 2d 66 6f 6e 74 2d 65 78 70 72 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 0a 20 edger-font-expr-directive-face..
108e0 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 64 69 72 65 63 .`((t.:inherit.ledger-font-direc
10900 74 69 76 65 2d 66 61 63 65 29 29 0a 20 20 22 44 65 66 61 75 6c 74 20 66 61 63 65 20 66 6f 72 20 tive-face))..."Default.face.for.
10920 6f 74 68 65 72 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 other.transactions"...:group.'le
10940 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e dger-faces)..(defface.ledger-fon
10960 74 2d 65 78 70 72 2d 65 78 70 72 65 73 73 69 6f 6e 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 t-expr-expression-face...`((t.:i
10980 6e 68 65 72 69 74 20 64 65 66 61 75 6c 74 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 65 78 70 nherit.default))..."Face.for.exp
109a0 72 20 61 6e 64 20 65 76 61 6c 20 65 78 70 72 65 73 73 69 6f 6e 73 22 0a 20 20 3a 67 72 6f 75 70 r.and.eval.expressions"...:group
109c0 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 .'ledger-faces)..(defface.ledger
109e0 2d 66 6f 6e 74 2d 66 69 78 65 64 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 0a 20 20 60 28 28 -font-fixed-directive-face...`((
10a00 74 20 3a 69 6e 68 65 72 69 74 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 64 69 72 65 63 74 69 76 65 t.:inherit.ledger-font-directive
10a20 2d 66 61 63 65 29 29 0a 20 20 22 44 65 66 61 75 6c 74 20 66 61 63 65 20 66 6f 72 20 6f 74 68 65 -face))..."Default.face.for.othe
10a40 72 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 r.transactions"...:group.'ledger
10a60 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 66 69 -faces)..(defface.ledger-font-fi
10a80 78 65 64 2d 63 6f 6d 6d 6f 64 69 74 79 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 xed-commodity-face...`((t.:inher
10aa0 69 74 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6e 73 74 61 6e 74 2d 66 61 63 65 29 29 0a 20 20 22 it.font-lock-constant-face))..."
10ac0 46 61 63 65 20 66 6f 72 20 63 6f 6d 6d 6f 64 69 74 79 20 6e 61 6d 65 20 69 6e 20 66 69 78 65 64 Face.for.commodity.name.in.fixed
10ae0 20 64 69 72 65 63 74 69 76 65 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 .directive"...:group.'ledger-fac
10b00 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 66 69 78 65 64 2d es)..(defface.ledger-font-fixed-
10b20 70 72 69 63 65 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 64 65 66 61 75 price-face...`((t.:inherit.defau
10b40 6c 74 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 70 72 69 63 65 20 69 6e 20 66 69 78 65 64 20 lt))..."Face.for.price.in.fixed.
10b60 64 69 72 65 63 74 69 76 65 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 directive"...:group.'ledger-face
10b80 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 69 6e 63 6c 75 64 65 s)..(defface.ledger-font-include
10ba0 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 -directive-face...`((t.:inherit.
10bc0 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 29 0a 20 20 22 ledger-font-directive-face))..."
10be0 44 65 66 61 75 6c 74 20 66 61 63 65 20 66 6f 72 20 6f 74 68 65 72 20 74 72 61 6e 73 61 63 74 69 Default.face.for.other.transacti
10c00 6f 6e 73 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 ons"...:group.'ledger-faces)..(d
10c20 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 69 6e 63 6c 75 64 65 2d 66 69 6c 65 6e efface.ledger-font-include-filen
10c40 61 6d 65 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 66 6f 6e 74 2d 6c 6f ame-face...`((t.:inherit.font-lo
10c60 63 6b 2d 73 74 72 69 6e 67 2d 66 61 63 65 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 66 69 6c ck-string-face))..."Face.for.fil
10c80 65 20 6e 61 6d 65 20 69 6e 20 69 6e 63 6c 75 64 65 20 64 69 72 65 63 74 69 76 65 73 22 0a 20 20 e.name.in.include.directives"...
10ca0 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 :group.'ledger-faces)..(defface.
10cc0 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 4e 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 0a 20 20 60 ledger-font-N-directive-face...`
10ce0 28 28 74 20 3a 69 6e 68 65 72 69 74 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 64 69 72 65 63 74 69 ((t.:inherit.ledger-font-directi
10d00 76 65 2d 66 61 63 65 29 29 0a 20 20 22 44 65 66 61 75 6c 74 20 66 61 63 65 20 66 6f 72 20 4e 20 ve-face))..."Default.face.for.N.
10d20 64 69 72 65 63 74 69 76 65 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 directive"...:group.'ledger-face
10d40 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 4e 2d 73 79 6d 62 6f s)..(defface.ledger-font-N-symbo
10d60 6c 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 64 65 66 61 75 6c 74 29 29 l-face...`((t.:inherit.default))
10d80 0a 20 20 22 46 61 63 65 20 66 6f 72 20 73 79 6d 62 6f 6c 20 69 6e 20 4e 20 64 69 72 65 63 74 69 ..."Face.for.symbol.in.N.directi
10da0 76 65 73 22 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 61 79 65 ves")..(defface.ledger-font-paye
10dc0 65 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 e-directive-face...`((t.:inherit
10de0 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 29 0a 20 20 .ledger-font-directive-face))...
10e00 22 44 65 66 61 75 6c 74 20 66 61 63 65 20 66 6f 72 20 6f 74 68 65 72 20 74 72 61 6e 73 61 63 74 "Default.face.for.other.transact
10e20 69 6f 6e 73 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 ions"...:group.'ledger-faces)..(
10e40 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 61 79 65 65 2d 6e 61 6d 65 2d 66 defface.ledger-font-payee-name-f
10e60 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 75 ace...`((t.:inherit.font-lock-fu
10e80 6e 63 74 69 6f 6e 2d 6e 61 6d 65 2d 66 61 63 65 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 70 nction-name-face))..."Face.for.p
10ea0 61 79 65 65 20 6e 61 6d 65 20 69 6e 20 70 61 79 65 65 20 64 69 72 65 63 74 69 76 65 22 0a 20 20 ayee.name.in.payee.directive"...
10ec0 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 :group.'ledger-faces)..(defface.
10ee0 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 61 79 65 65 2d 72 65 67 65 78 2d 66 61 63 65 0a 20 20 60 ledger-font-payee-regex-face...`
10f00 28 28 74 20 3a 69 6e 68 65 72 69 74 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 73 74 72 69 6e 67 2d 66 61 ((t.:inherit.font-lock-string-fa
10f20 63 65 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 70 61 79 65 65 20 73 75 62 64 69 72 65 63 74 ce))..."Face.for.payee.subdirect
10f40 69 76 65 20 72 65 67 65 78 20 69 6e 20 61 63 63 6f 75 6e 74 20 64 69 72 65 63 74 69 76 65 22 0a ive.regex.in.account.directive".
10f60 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 ..:group.'ledger-faces)..(deffac
10f80 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 75 75 69 64 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 e.ledger-font-uuid-directive-fac
10fa0 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 64 69 e...`((t.:inherit.ledger-font-di
10fc0 72 65 63 74 69 76 65 2d 66 61 63 65 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 75 75 69 64 20 rective-face))..."Face.for.uuid.
10fe0 73 75 62 64 69 72 65 63 74 69 76 65 73 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d subdirectives"...:group.'ledger-
11000 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 75 75 69 faces)..(defface.ledger-font-uui
11020 64 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 64 65 66 61 75 6c 74 29 29 d-face...`((t.:inherit.default))
11040 0a 20 20 22 46 61 63 65 20 66 6f 72 20 75 75 69 64 20 69 6e 20 75 75 69 64 20 73 75 62 64 69 72 ..."Face.for.uuid.in.uuid.subdir
11060 65 63 74 69 76 65 73 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 ectives"...:group.'ledger-faces)
11080 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 74 61 67 2d 64 69 72 65 63 ..(defface.ledger-font-tag-direc
110a0 74 69 76 65 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 6c 65 64 67 65 72 tive-face...`((t.:inherit.ledger
110c0 2d 66 6f 6e 74 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 29 0a 20 20 22 44 65 66 61 75 6c -font-directive-face))..."Defaul
110e0 74 20 66 61 63 65 20 66 6f 72 20 6f 74 68 65 72 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 22 0a 20 t.face.for.other.transactions"..
11100 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 .:group.'ledger-faces)..(defface
11120 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 74 61 67 2d 6e 61 6d 65 2d 66 61 63 65 0a 20 20 60 28 28 .ledger-font-tag-name-face...`((
11140 74 20 3a 69 6e 68 65 72 69 74 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 74 79 70 65 2d 66 61 63 65 29 29 t.:inherit.font-lock-type-face))
11160 0a 20 20 22 46 61 63 65 20 66 6f 72 20 74 61 67 20 6e 61 6d 65 20 69 6e 20 74 61 67 20 64 69 72 ..."Face.for.tag.name.in.tag.dir
11180 65 63 74 69 76 65 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a ective"...:group.'ledger-faces).
111a0 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 74 69 6d 65 63 6c 6f 63 6b 2d .(defface.ledger-font-timeclock-
111c0 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 6c directive-face...`((t.:inherit.l
111e0 65 64 67 65 72 2d 66 6f 6e 74 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 29 0a 20 20 22 44 edger-font-directive-face))..."D
11200 65 66 61 75 6c 74 20 66 61 63 65 20 66 6f 72 20 74 69 6d 65 63 6c 6f 63 6b 20 49 2c 69 2c 4f 2c efault.face.for.timeclock.I,i,O,
11220 6f 2c 62 2c 68 20 64 69 72 65 63 74 69 76 65 73 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 o,b,h.directives"...:group.'ledg
11240 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d er-faces)..(defface.ledger-font-
11260 79 65 61 72 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 year-directive-face...`((t.:inhe
11280 72 69 74 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 29 rit.ledger-font-directive-face))
112a0 0a 20 20 22 44 65 66 61 75 6c 74 20 66 61 63 65 20 66 6f 72 20 6f 74 68 65 72 20 74 72 61 6e 73 ..."Default.face.for.other.trans
112c0 61 63 74 69 6f 6e 73 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 actions"...:group.'ledger-faces)
112e0 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 79 65 61 72 2d 66 61 63 65 ..(defface.ledger-font-year-face
11300 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 64 65 66 61 75 6c 74 29 29 0a 20 20 22 46 6f ...`((t.:inherit.default))..."Fo
11320 6e 74 20 66 6f 72 20 79 65 61 72 20 69 6e 20 79 65 61 72 20 64 69 72 65 63 74 69 76 65 73 22 0a nt.for.year.in.year.directives".
11340 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 ..:group.'ledger-faces)..(deffac
11360 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 6f 73 74 69 6e 67 2d 61 63 63 6f 75 6e 74 2d 66 61 e.ledger-font-posting-account-fa
11380 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 64 ce...`((t.:inherit.ledger-font-d
113a0 65 66 61 75 6c 74 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 29 0a 20 20 22 46 61 63 65 20 efault-directive-face))..."Face.
113c0 66 6f 72 20 4c 65 64 67 65 72 20 61 63 63 6f 75 6e 74 73 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c for.Ledger.accounts"...:group.'l
113e0 65 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f edger-faces)..(defface.ledger-fo
11400 6e 74 2d 70 6f 73 74 69 6e 67 2d 61 63 63 6f 75 6e 74 2d 63 6c 65 61 72 65 64 2d 66 61 63 65 0a nt-posting-account-cleared-face.
11420 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 61 79 65 ..`((t.:inherit.ledger-font-paye
11440 65 2d 63 6c 65 61 72 65 64 2d 66 61 63 65 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 4c 65 64 e-cleared-face))..."Face.for.Led
11460 67 65 72 20 61 63 63 6f 75 6e 74 73 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 ger.accounts"...:group.'ledger-f
11480 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 6f 73 74 aces)..(defface.ledger-font-post
114a0 69 6e 67 2d 61 6d 6f 75 6e 74 2d 63 6c 65 61 72 65 64 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a ing-amount-cleared-face...`((t.:
114c0 69 6e 68 65 72 69 74 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 6f 73 74 69 6e 67 2d 61 63 63 6f inherit.ledger-font-posting-acco
114e0 75 6e 74 2d 63 6c 65 61 72 65 64 2d 66 61 63 65 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 4c unt-cleared-face))..."Face.for.L
11500 65 64 67 65 72 20 61 63 63 6f 75 6e 74 73 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 edger.accounts"...:group.'ledger
11520 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 6f -faces)..(defface.ledger-font-po
11540 73 74 69 6e 67 2d 61 63 63 6f 75 6e 74 2d 70 65 6e 64 69 6e 67 2d 66 61 63 65 0a 20 20 60 28 28 sting-account-pending-face...`((
11560 74 20 3a 69 6e 68 65 72 69 74 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 65 6e 64 69 6e 67 2d 66 t.:inherit.ledger-font-pending-f
11580 61 63 65 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 4c 65 64 67 65 72 20 61 63 63 6f 75 6e 74 ace))..."Face.for.Ledger.account
115a0 73 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 s"...:group.'ledger-faces)..(def
115c0 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 6f 73 74 69 6e 67 2d 61 6d 6f 75 6e 74 2d face.ledger-font-posting-amount-
115e0 70 65 6e 64 69 6e 67 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 6c 65 64 pending-face...`((t.:inherit.led
11600 67 65 72 2d 66 6f 6e 74 2d 70 6f 73 74 69 6e 67 2d 61 63 63 6f 75 6e 74 2d 70 65 6e 64 69 6e 67 ger-font-posting-account-pending
11620 2d 66 61 63 65 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 4c 65 64 67 65 72 20 61 63 63 6f 75 -face))..."Face.for.Ledger.accou
11640 6e 74 73 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 nts"...:group.'ledger-faces)..(d
11660 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 6f 73 74 69 6e 67 2d 61 6d 6f 75 6e efface.ledger-font-posting-amoun
11680 74 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 66 6f 6e 74 2d 6c 6f 63 6b t-face...`((t.:inherit.font-lock
116a0 2d 63 6f 6e 73 74 61 6e 74 2d 66 61 63 65 20 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 4c 65 -constant-face.))..."Face.for.Le
116c0 64 67 65 72 20 61 6d 6f 75 6e 74 73 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 dger.amounts"...:group.'ledger-f
116e0 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 6f 73 74 aces)..(defface.ledger-font-post
11700 69 6e 67 2d 64 61 74 65 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 66 6f ing-date-face...`((t.:inherit.fo
11720 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 64 2d 66 61 63 65 29 29 0a 20 20 22 46 61 63 65 20 66 nt-lock-keyword-face))..."Face.f
11740 6f 72 20 4c 65 64 67 65 72 20 64 61 74 65 73 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 or.Ledger.dates"...:group.'ledge
11760 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d r-faces)..(defface.ledger-occur-
11780 6e 61 72 72 6f 77 65 64 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 66 6f narrowed-face...`((t.:inherit.fo
117a0 6e 74 2d 6c 6f 63 6b 2d 63 6f 6d 6d 65 6e 74 2d 66 61 63 65 20 3a 69 6e 76 69 73 69 62 6c 65 20 nt-lock-comment-face.:invisible.
117c0 74 29 29 0a 20 20 22 44 65 66 61 75 6c 74 20 66 61 63 65 20 66 6f 72 20 4c 65 64 67 65 72 20 6f t))..."Default.face.for.Ledger.o
117e0 63 63 75 72 20 6d 6f 64 65 20 68 69 64 64 65 6e 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 22 0a 20 ccur.mode.hidden.transactions"..
11800 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 .:group.'ledger-faces)..(defface
11820 20 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d 78 61 63 74 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a .ledger-occur-xact-face...`((t.:
11840 69 6e 68 65 72 69 74 20 68 69 67 68 6c 69 67 68 74 29 29 0a 20 20 22 44 65 66 61 75 6c 74 20 66 inherit.highlight))..."Default.f
11860 61 63 65 20 66 6f 72 20 4c 65 64 67 65 72 20 6f 63 63 75 72 20 6d 6f 64 65 20 73 68 6f 77 6e 20 ace.for.Ledger.occur.mode.shown.
11880 74 72 61 6e 73 61 63 74 69 6f 6e 73 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 transactions"...:group.'ledger-f
118a0 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 63 6f 6d 6d aces)..(defface.ledger-font-comm
118c0 65 6e 74 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 66 6f 6e 74 2d 6c 6f ent-face...`((t.:inherit.font-lo
118e0 63 6b 2d 63 6f 6d 6d 65 6e 74 2d 66 61 63 65 29 29 0a 20 20 22 46 61 63 65 20 66 6f 72 20 4c 65 ck-comment-face))..."Face.for.Le
11900 64 67 65 72 20 63 6f 6d 6d 65 6e 74 73 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d dger.comments"...:group.'ledger-
11920 66 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 72 65 63 faces)..(defface.ledger-font-rec
11940 6f 6e 63 69 6c 65 72 2d 75 6e 63 6c 65 61 72 65 64 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 onciler-uncleared-face...`((t.:i
11960 6e 68 65 72 69 74 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 61 79 65 65 2d 75 6e 63 6c 65 61 72 nherit.ledger-font-payee-unclear
11980 65 64 2d 66 61 63 65 29 29 0a 20 20 22 44 65 66 61 75 6c 74 20 66 61 63 65 20 66 6f 72 20 75 6e ed-face))..."Default.face.for.un
119a0 63 6c 65 61 72 65 64 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 69 6e 20 74 68 65 20 72 65 63 6f cleared.transactions.in.the.reco
119c0 6e 63 69 6c 65 20 77 69 6e 64 6f 77 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 ncile.window"...:group.'ledger-f
119e0 61 63 65 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 72 65 63 6f aces)..(defface.ledger-font-reco
11a00 6e 63 69 6c 65 72 2d 63 6c 65 61 72 65 64 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 nciler-cleared-face...`((t.:inhe
11a20 72 69 74 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 61 79 65 65 2d 63 6c 65 61 72 65 64 2d 66 61 rit.ledger-font-payee-cleared-fa
11a40 63 65 29 29 0a 20 20 22 44 65 66 61 75 6c 74 20 66 61 63 65 20 66 6f 72 20 63 6c 65 61 72 65 64 ce))..."Default.face.for.cleared
11a60 20 28 2a 29 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 69 6e 20 74 68 65 20 72 65 63 6f 6e 63 69 .(*).transactions.in.the.reconci
11a80 6c 65 20 77 69 6e 64 6f 77 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 le.window"...:group.'ledger-face
11aa0 73 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 72 65 63 6f 6e 63 69 s)..(defface.ledger-font-reconci
11ac0 6c 65 72 2d 70 65 6e 64 69 6e 67 2d 66 61 63 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 ler-pending-face...`((t.:inherit
11ae0 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 65 6e 64 69 6e 67 2d 66 61 63 65 29 29 0a 20 20 22 44 .ledger-font-pending-face))..."D
11b00 65 66 61 75 6c 74 20 66 61 63 65 20 66 6f 72 20 70 65 6e 64 69 6e 67 20 28 21 29 20 74 72 61 6e efault.face.for.pending.(!).tran
11b20 73 61 63 74 69 6f 6e 73 20 69 6e 20 74 68 65 20 72 65 63 6f 6e 63 69 6c 65 20 77 69 6e 64 6f 77 sactions.in.the.reconcile.window
11b40 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 66 "...:group.'ledger-faces)..(deff
11b60 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 72 65 70 6f 72 74 2d 63 6c 69 63 6b 61 62 6c 65 ace.ledger-font-report-clickable
11b80 2d 66 61 63 65 0a 20 20 60 28 28 74 29 29 0a 20 20 22 46 61 63 65 20 61 70 70 6c 69 65 64 20 74 -face...`((t))..."Face.applied.t
11ba0 6f 20 63 6c 69 63 6b 61 62 6c 65 20 65 6e 74 72 69 65 73 20 69 6e 20 74 68 65 20 72 65 70 6f 72 o.clickable.entries.in.the.repor
11bc0 74 20 77 69 6e 64 6f 77 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 66 61 63 65 73 t.window"...:group.'ledger-faces
11be0 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 63 6f 64 65 2d 66 61 63 )..(defface.ledger-font-code-fac
11c00 65 0a 20 20 60 28 28 74 20 3a 69 6e 68 65 72 69 74 20 64 65 66 61 75 6c 74 29 29 0a 20 20 22 46 e...`((t.:inherit.default))..."F
11c20 61 63 65 20 66 6f 72 20 4c 65 64 67 65 72 20 63 6f 64 65 73 22 0a 20 20 3a 67 72 6f 75 70 20 27 ace.for.Ledger.codes"...:group.'
11c40 6c 65 64 67 65 72 2d 66 61 63 65 73 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 66 6f 6e ledger-faces)..(defun.ledger-fon
11c60 74 2d 66 61 63 65 2d 62 79 2d 73 74 61 74 65 20 28 6e 75 6d 20 66 61 63 65 73 29 0a 20 20 22 43 t-face-by-state.(num.faces)..."C
11c80 68 6f 6f 73 65 20 6f 6e 65 20 6f 66 20 74 68 72 65 65 20 66 61 63 65 73 20 64 65 70 65 6e 64 69 hoose.one.of.three.faces.dependi
11ca0 6e 67 20 6f 6e 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 73 74 61 74 65 2e 0a 4e 55 4d 20 73 70 65 ng.on.transaction.state..NUM.spe
11cc0 63 69 66 69 65 73 20 61 20 6d 61 74 63 68 20 67 72 6f 75 70 20 63 6f 6e 74 61 69 6e 69 6e 67 20 cifies.a.match.group.containing.
11ce0 74 68 65 20 73 74 61 74 65 2e 0a 46 41 43 45 53 20 68 61 73 20 74 68 65 20 66 6f 72 6d 20 28 43 the.state..FACES.has.the.form.(C
11d00 4c 45 41 52 45 44 20 50 45 4e 44 49 4e 47 20 4f 54 48 45 52 29 2e 0a 52 65 74 75 72 6e 20 43 4c LEARED.PENDING.OTHER)..Return.CL
11d20 45 41 52 45 44 20 69 66 20 74 68 61 74 20 67 72 6f 75 70 20 73 70 65 63 69 66 69 65 73 20 61 20 EARED.if.that.group.specifies.a.
11d40 63 6c 65 61 72 65 64 20 74 72 61 6e 73 61 63 74 69 6f 6e 2c 0a 50 45 4e 44 49 4e 47 20 69 66 20 cleared.transaction,.PENDING.if.
11d60 70 65 6e 64 69 6e 67 2c 20 61 6e 64 20 4f 54 48 45 52 20 69 66 20 6e 6f 6e 65 20 6f 66 20 74 68 pending,.and.OTHER.if.none.of.th
11d80 65 20 61 62 6f 76 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 74 61 74 65 20 28 73 61 76 65 2d 6d e.above."...(let.((state.(save-m
11da0 61 74 63 68 2d 64 61 74 61 20 28 6c 65 64 67 65 72 2d 73 74 61 74 65 2d 66 72 6f 6d 2d 73 74 72 atch-data.(ledger-state-from-str
11dc0 69 6e 67 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 6e 75 6d 29 29 29 29 29 0a 20 20 20 20 28 ing.(match-string.num))))).....(
11de0 63 6f 6e 64 20 28 28 65 71 20 73 74 61 74 65 20 27 63 6c 65 61 72 65 64 29 20 28 6e 74 68 20 30 cond.((eq.state.'cleared).(nth.0
11e00 20 66 61 63 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 73 74 61 74 65 20 27 70 .faces))...........((eq.state.'p
11e20 65 6e 64 69 6e 67 29 20 28 6e 74 68 20 31 20 66 61 63 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 ending).(nth.1.faces))..........
11e40 20 28 74 20 28 6e 74 68 20 32 20 66 61 63 65 73 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 .(t.(nth.2.faces)))))..(defun.le
11e60 64 67 65 72 2d 66 6f 6e 74 2d 66 61 63 65 2d 62 79 2d 74 69 6d 65 63 6c 6f 63 6b 2d 73 74 61 74 dger-font-face-by-timeclock-stat
11e80 65 20 28 6e 75 6d 20 66 61 63 65 73 29 0a 20 20 22 43 68 6f 6f 73 65 20 6f 6e 65 20 6f 66 20 74 e.(num.faces)..."Choose.one.of.t
11ea0 77 6f 20 66 61 63 65 73 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 61 20 74 69 6d 65 63 6c 6f 63 wo.faces.depending.on.a.timecloc
11ec0 6b 20 64 69 72 65 63 74 69 76 65 20 63 68 61 72 61 63 74 65 72 2e 0a 4e 55 4d 20 73 70 65 63 69 k.directive.character..NUM.speci
11ee0 66 69 65 73 20 61 20 6d 61 74 63 68 20 67 72 6f 75 70 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 fies.a.match.group.containing.th
11f00 65 20 63 68 61 72 61 63 74 65 72 2e 0a 46 41 43 45 53 20 68 61 73 20 74 68 65 20 66 6f 72 6d 20 e.character..FACES.has.the.form.
11f20 28 43 4c 45 41 52 45 44 20 55 4e 43 4c 45 41 52 45 44 29 2e 0a 52 65 74 75 72 6e 20 43 4c 45 41 (CLEARED.UNCLEARED)..Return.CLEA
11f40 52 45 44 20 69 66 20 74 68 65 20 63 68 61 72 61 63 74 65 72 20 73 70 65 63 69 66 69 65 73 20 61 RED.if.the.character.specifies.a
11f60 20 63 6c 65 61 72 65 64 20 74 72 61 6e 73 61 63 74 69 6f 6e 2c 0a 55 4e 43 4c 45 41 52 45 44 20 .cleared.transaction,.UNCLEARED.
11f80 6f 74 68 65 72 77 69 73 65 2e 22 0a 20 20 28 69 66 20 28 6d 65 6d 62 65 72 20 28 6d 61 74 63 68 otherwise."...(if.(member.(match
11fa0 2d 73 74 72 69 6e 67 20 6e 75 6d 29 20 27 28 22 49 22 20 22 4f 22 29 29 0a 20 20 20 20 20 20 28 -string.num).'("I"."O")).......(
11fc0 6e 74 68 20 30 20 66 61 63 65 73 29 0a 20 20 20 20 28 6e 74 68 20 31 20 66 61 63 65 73 29 29 29 nth.0.faces).....(nth.1.faces)))
11fe0 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 73 75 62 64 69 72 65 63 74 69 76 ..(defun.ledger-font-subdirectiv
12000 65 73 20 28 73 75 62 64 69 72 65 63 74 69 76 65 73 29 0a 20 20 22 43 6f 6e 73 74 72 75 63 74 20 es.(subdirectives)..."Construct.
12020 61 6e 63 68 6f 72 65 64 20 68 69 67 68 6c 69 67 68 74 65 72 73 20 66 6f 72 20 73 75 62 64 69 72 anchored.highlighters.for.subdir
12040 65 63 74 69 76 65 73 2e 0a 0a 45 61 63 68 20 65 6c 65 6d 65 6e 74 20 6f 66 20 53 55 42 44 49 52 ectives...Each.element.of.SUBDIR
12060 45 43 54 49 56 45 53 20 73 68 6f 75 6c 64 20 68 61 76 65 20 74 68 65 20 66 6f 72 6d 20 28 4d 41 ECTIVES.should.have.the.form.(MA
12080 54 43 48 45 52 0a 53 55 42 45 58 50 2d 48 49 47 48 4c 49 47 48 54 45 52 53 e2 80 a6 29 2e 20 20 TCHER.SUBEXP-HIGHLIGHTERS...)...
120a0 54 68 65 20 72 65 73 75 6c 74 20 77 69 6c 6c 20 62 65 20 61 20 6c 69 73 74 20 6f 66 20 65 6c 65 The.result.will.be.a.list.of.ele
120c0 6d 65 6e 74 73 20 6f 66 0a 74 68 65 20 66 6f 72 6d 20 28 4d 41 54 43 48 45 52 20 50 52 45 2d 46 ments.of.the.form.(MATCHER.PRE-F
120e0 4f 52 4d 20 50 4f 53 54 2d 46 4f 52 4d 20 53 55 42 45 58 50 2d 48 49 47 48 4c 49 47 48 54 45 52 ORM.POST-FORM.SUBEXP-HIGHLIGHTER
12100 53 29 20 77 69 74 68 0a 50 52 45 2d 46 4f 52 4d 20 61 6e 64 20 50 4f 53 54 2d 46 4f 52 4d 20 73 S).with.PRE-FORM.and.POST-FORM.s
12120 65 74 20 74 6f 20 61 70 70 72 6f 70 72 69 61 74 65 20 76 61 6c 75 65 73 2e 0a 0a 53 65 65 20 60 et.to.appropriate.values...See.`
12140 66 6f 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 64 73 27 20 66 6f 72 20 74 68 65 20 66 75 6c 6c font-lock-keywords'.for.the.full
12160 20 64 65 73 63 72 69 70 74 69 6f 6e 2e 22 0a 0a 20 20 28 6d 61 70 63 61 72 20 28 6c 61 6d 62 64 .description."....(mapcar.(lambd
12180 61 20 28 69 74 65 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 60 28 2c 28 63 61 72 20 69 74 65 a.(item).............`(,(car.ite
121a0 6d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e m)...............(save-excursion
121c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 74 .................(save-match-dat
121e0 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 a...................(ledger-navi
12200 67 61 74 65 2d 65 6e 64 2d 6f 66 2d 78 61 63 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 gate-end-of-xact))..............
12220 20 20 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d ...(point))...............(goto-
12240 63 68 61 72 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 char.(match-end.0)).............
12260 20 20 2c 40 28 63 64 72 20 69 74 65 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 73 75 62 64 69 ..,@(cdr.item)))...........subdi
12280 72 65 63 74 69 76 65 73 29 29 0a 0a 28 64 65 66 76 61 72 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d rectives))..(defvar.ledger-font-
122a0 6c 6f 63 6b 2d 6b 65 79 77 6f 72 64 73 0a 20 20 60 28 28 22 5e 5b 3b 23 25 7c 2a 5d 2e 2a 24 22 lock-keywords...`(("^[;#%|*].*$"
122c0 20 2e 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 63 6f 6d 6d 65 6e 74 2d 66 61 63 65 29 0a 20 20 ...'ledger-font-comment-face)...
122e0 20 20 28 22 5e 5c 5c 28 61 63 63 6f 75 6e 74 5c 5c 29 5c 5c 28 3f 3a 5b 5b 3a 62 6c 61 6e 6b 3a ..("^\\(account\\)\\(?:[[:blank:
12300 5d 5d 5c 5c 28 2e 2a 5c 5c 29 5c 5c 29 3f 24 22 0a 20 20 20 20 20 28 31 20 27 6c 65 64 67 65 72 ]]\\(.*\\)\\)?$"......(1.'ledger
12320 2d 66 6f 6e 74 2d 61 63 63 6f 75 6e 74 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 0a 20 20 -font-account-directive-face)...
12340 20 20 20 28 32 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 61 63 63 6f 75 6e 74 2d 6e 61 6d 65 2d ...(2.'ledger-font-account-name-
12360 66 61 63 65 20 6e 69 6c 20 3a 6c 61 78 29 0a 20 20 20 20 20 2c 40 28 6c 65 64 67 65 72 2d 66 6f face.nil.:lax)......,@(ledger-fo
12380 6e 74 2d 73 75 62 64 69 72 65 63 74 69 76 65 73 0a 20 20 20 20 20 20 20 20 27 28 28 22 5e 5b 20 nt-subdirectives.........'(("^[.
123a0 5c 74 5d 2b 5c 5c 28 3b 2e 2a 5c 5c 29 22 20 28 31 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 63 \t]+\\(;.*\\)".(1.'ledger-font-c
123c0 6f 6d 6d 65 6e 74 2d 66 61 63 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 22 5e 5b 20 5c 74 5d omment-face))...........("^[.\t]
123e0 2b 5c 5c 28 6e 6f 74 65 5c 5c 29 5c 5c 28 3f 3a 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c 28 2e +\\(note\\)\\(?:[[:blank:]]+\\(.
12400 2a 5c 5c 29 5c 5c 29 3f 24 22 0a 20 20 20 20 20 20 20 20 20 20 20 28 31 20 27 6c 65 64 67 65 72 *\\)\\)?$"............(1.'ledger
12420 2d 66 6f 6e 74 2d 6e 6f 74 65 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 0a 20 20 20 20 20 -font-note-directive-face)......
12440 20 20 20 20 20 20 28 32 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 6e 6f 74 65 2d 74 65 78 74 2d ......(2.'ledger-font-note-text-
12460 66 61 63 65 20 6e 69 6c 20 3a 6c 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 22 5e 5b 20 5c face.nil.:lax))...........("^[.\
12480 74 5d 2b 5c 5c 28 61 6c 69 61 73 5c 5c 29 5c 5c 28 3f 3a 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c t]+\\(alias\\)\\(?:[[:blank:]]+\
124a0 5c 28 2e 2a 5c 5c 29 5c 5c 29 3f 24 22 0a 20 20 20 20 20 20 20 20 20 20 20 28 31 20 27 6c 65 64 \(.*\\)\\)?$"............(1.'led
124c0 67 65 72 2d 66 6f 6e 74 2d 61 6c 69 61 73 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 0a 20 ger-font-alias-directive-face)..
124e0 20 20 20 20 20 20 20 20 20 20 28 32 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 61 63 63 6f 75 6e ..........(2.'ledger-font-accoun
12500 74 2d 6e 61 6d 65 2d 66 61 63 65 20 6e 69 6c 20 3a 6c 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 t-name-face.nil.:lax))..........
12520 20 28 22 5e 5b 20 5c 74 5d 2b 5c 5c 28 70 61 79 65 65 5c 5c 29 5c 5c 28 3f 3a 5b 5b 3a 62 6c 61 .("^[.\t]+\\(payee\\)\\(?:[[:bla
12540 6e 6b 3a 5d 5d 2b 5c 5c 28 2e 2a 5c 5c 29 5c 5c 29 3f 24 22 0a 20 20 20 20 20 20 20 20 20 20 20 nk:]]+\\(.*\\)\\)?$"............
12560 28 31 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 61 79 65 65 2d 64 69 72 65 63 74 69 76 65 2d (1.'ledger-font-payee-directive-
12580 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 32 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 face)............(2.'ledger-font
125a0 2d 70 61 79 65 65 2d 72 65 67 65 78 2d 66 61 63 65 20 6e 69 6c 20 3a 6c 61 78 29 29 0a 20 20 20 -payee-regex-face.nil.:lax))....
125c0 20 20 20 20 20 20 20 28 22 5e 5b 20 5c 74 5d 2b 5c 5c 28 63 68 65 63 6b 5c 5c 29 5c 5c 28 3f 3a .......("^[.\t]+\\(check\\)\\(?:
125e0 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c 28 2e 2a 5c 5c 29 5c 5c 29 3f 24 22 0a 20 20 20 20 20 [[:blank:]]+\\(.*\\)\\)?$"......
12600 20 20 20 20 20 20 28 31 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 63 68 65 63 6b 2d 64 69 72 65 ......(1.'ledger-font-check-dire
12620 63 74 69 76 65 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 32 20 27 6c 65 64 67 65 ctive-face)............(2.'ledge
12640 72 2d 66 6f 6e 74 2d 63 68 65 63 6b 2d 63 6f 6e 64 69 74 69 6f 6e 2d 66 61 63 65 20 6e 69 6c 20 r-font-check-condition-face.nil.
12660 3a 6c 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 22 5e 5b 20 5c 74 5d 2b 5c 5c 28 61 73 73 :lax))...........("^[.\t]+\\(ass
12680 65 72 74 5c 5c 29 5c 5c 28 3f 3a 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c 28 2e 2a 5c 5c 29 5c ert\\)\\(?:[[:blank:]]+\\(.*\\)\
126a0 5c 29 3f 24 22 0a 20 20 20 20 20 20 20 20 20 20 20 28 31 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 \)?$"............(1.'ledger-font
126c0 2d 61 73 73 65 72 74 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 -assert-directive-face).........
126e0 20 20 20 28 32 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 61 73 73 65 72 74 2d 63 6f 6e 64 69 74 ...(2.'ledger-font-assert-condit
12700 69 6f 6e 2d 66 61 63 65 20 6e 69 6c 20 3a 6c 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 22 ion-face.nil.:lax))...........("
12720 5e 5b 20 5c 74 5d 2b 5c 5c 28 65 76 61 6c 5c 5c 29 5c 5c 28 3f 3a 5b 5b 3a 62 6c 61 6e 6b 3a 5d ^[.\t]+\\(eval\\)\\(?:[[:blank:]
12740 5d 2b 5c 5c 28 2e 2a 5c 5c 29 5c 5c 29 3f 24 22 0a 20 20 20 20 20 20 20 20 20 20 20 28 31 20 27 ]+\\(.*\\)\\)?$"............(1.'
12760 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 65 78 70 72 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 ledger-font-expr-directive-face)
12780 0a 20 20 20 20 20 20 20 20 20 20 20 28 32 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 65 78 70 72 ............(2.'ledger-font-expr
127a0 2d 65 78 70 72 65 73 73 69 6f 6e 2d 66 61 63 65 20 6e 69 6c 20 3a 6c 61 78 29 29 0a 20 20 20 20 -expression-face.nil.:lax)).....
127c0 20 20 20 20 20 20 28 22 5e 5b 20 5c 74 5d 2b 5c 5c 28 64 65 66 61 75 6c 74 5c 5c 29 5c 5c 3e 2e ......("^[.\t]+\\(default\\)\\>.
127e0 2a 22 0a 20 20 20 20 20 20 20 20 20 20 20 28 31 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 64 65 *"............(1.'ledger-font-de
12800 66 61 75 6c 74 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 29 29 29 29 0a 20 20 20 20 28 22 fault-directive-face))))).....("
12820 5e 5c 5c 28 61 6c 69 61 73 5c 5c 29 5c 5c 28 3f 3a 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c 28 ^\\(alias\\)\\(?:[[:blank:]]+\\(
12840 5b 5e 3d 5c 6e 5d 2a 5c 5c 29 5c 5c 28 3f 3a 3d 5c 5c 28 2e 2a 5c 5c 29 5c 5c 29 3f 5c 5c 29 3f [^=\n]*\\)\\(?:=\\(.*\\)\\)?\\)?
12860 24 22 0a 20 20 20 20 20 28 31 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 61 6c 69 61 73 2d 64 69 $"......(1.'ledger-font-alias-di
12880 72 65 63 74 69 76 65 2d 66 61 63 65 29 0a 20 20 20 20 20 28 32 20 27 6c 65 64 67 65 72 2d 66 6f rective-face)......(2.'ledger-fo
128a0 6e 74 2d 61 63 63 6f 75 6e 74 2d 6e 61 6d 65 2d 66 61 63 65 20 6e 69 6c 20 3a 6c 61 78 29 0a 20 nt-account-name-face.nil.:lax)..
128c0 20 20 20 20 28 33 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 61 6c 69 61 73 2d 64 65 66 69 6e 69 ....(3.'ledger-font-alias-defini
128e0 74 69 6f 6e 2d 66 61 63 65 20 6e 69 6c 20 3a 6c 61 78 29 29 0a 20 20 20 20 28 2c 28 63 6f 6e 63 tion-face.nil.:lax)).....(,(conc
12900 61 74 20 22 5e 5c 5c 28 61 70 70 6c 79 5c 5c 29 5c 5c 28 3f 3a 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d at."^\\(apply\\)\\(?:[[:blank:]]
12920 2b 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 28 3f 3a 5c 5c 28 61 63 63 6f 75 6e +"..............."\\(?:\\(accoun
12940 74 5c 5c 29 5c 5c 28 3f 3a 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c 28 2e 2a 5c 5c 29 5c 5c 29 t\\)\\(?:[[:blank:]]+\\(.*\\)\\)
12960 3f 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 7c 5c 5c 28 74 61 67 5c 5c 29 5c 5c ?"..............."\\|\\(tag\\)\\
12980 28 3f 3a 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c 28 2e 2a 5c 5c 29 5c 5c 29 3f 5c 5c 29 5c 5c (?:[[:blank:]]+\\(.*\\)\\)?\\)\\
129a0 29 3f 24 22 29 0a 20 20 20 20 20 28 31 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 61 70 70 6c 79 )?$")......(1.'ledger-font-apply
129c0 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 0a 20 20 20 20 20 28 32 20 27 6c 65 64 67 65 72 -directive-face)......(2.'ledger
129e0 2d 66 6f 6e 74 2d 61 70 70 6c 79 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 20 6e 69 6c 20 3a -font-apply-directive-face.nil.:
12a00 6c 61 78 29 0a 20 20 20 20 20 28 33 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 61 70 70 6c 79 2d lax)......(3.'ledger-font-apply-
12a20 61 63 63 6f 75 6e 74 2d 66 61 63 65 20 6e 69 6c 20 3a 6c 61 78 29 0a 20 20 20 20 20 28 34 20 27 account-face.nil.:lax)......(4.'
12a40 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 61 70 70 6c 79 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 ledger-font-apply-directive-face
12a60 20 6e 69 6c 20 3a 6c 61 78 29 0a 20 20 20 20 20 28 35 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d .nil.:lax)......(5.'ledger-font-
12a80 61 70 70 6c 79 2d 74 61 67 2d 66 61 63 65 20 6e 69 6c 20 3a 6c 61 78 29 29 0a 20 20 20 20 28 22 apply-tag-face.nil.:lax)).....("
12aa0 5e 5c 5c 28 61 73 73 65 72 74 5c 5c 29 5c 5c 28 3f 3a 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c ^\\(assert\\)\\(?:[[:blank:]]+\\
12ac0 28 2e 2a 5c 5c 29 5c 5c 29 3f 24 22 0a 20 20 20 20 20 28 31 20 27 6c 65 64 67 65 72 2d 66 6f 6e (.*\\)\\)?$"......(1.'ledger-fon
12ae0 74 2d 61 73 73 65 72 74 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 0a 20 20 20 20 20 28 32 t-assert-directive-face)......(2
12b00 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 61 73 73 65 72 74 2d 63 6f 6e 64 69 74 69 6f 6e 2d 66 .'ledger-font-assert-condition-f
12b20 61 63 65 20 6e 69 6c 20 3a 6c 61 78 29 29 0a 20 20 20 20 28 22 5e 5c 5c 28 62 75 63 6b 65 74 5c ace.nil.:lax)).....("^\\(bucket\
12b40 5c 7c 41 5c 5c 29 5c 5c 28 3f 3a 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c 28 2e 2a 5c 5c 29 5c \|A\\)\\(?:[[:blank:]]+\\(.*\\)\
12b60 5c 29 3f 24 22 0a 20 20 20 20 20 28 31 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 62 75 63 6b 65 \)?$"......(1.'ledger-font-bucke
12b80 74 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 0a 20 20 20 20 20 28 32 20 27 6c 65 64 67 65 t-directive-face)......(2.'ledge
12ba0 72 2d 66 6f 6e 74 2d 62 75 63 6b 65 74 2d 61 63 63 6f 75 6e 74 2d 66 61 63 65 20 6e 69 6c 20 3a r-font-bucket-account-face.nil.:
12bc0 6c 61 78 29 29 0a 20 20 20 20 28 2c 28 63 6f 6e 63 61 74 20 22 5e 5c 5c 28 43 5c 5c 29 22 0a 20 lax)).....(,(concat."^\\(C\\)"..
12be0 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 28 3f 3a 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c ............."\\(?:[[:blank:]]+\
12c00 5c 28 5b 5e 3d 5c 6e 5d 2a 3f 5c 5c 29 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2a 22 0a 20 20 20 20 20 \([^=\n]*?\\)[[:blank:]]*"......
12c20 20 20 20 20 20 20 20 20 20 22 5c 5c 28 3f 3a 3d 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2a 5c 5c 28 2e ........."\\(?:=[[:blank:]]*\\(.
12c40 2a 5c 5c 29 5c 5c 29 3f 5c 5c 29 3f 24 22 29 0a 20 20 20 20 20 28 31 20 27 6c 65 64 67 65 72 2d *\\)\\)?\\)?$")......(1.'ledger-
12c60 66 6f 6e 74 2d 43 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 0a 20 20 20 20 20 28 32 20 27 font-C-directive-face)......(2.'
12c80 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 43 2d 61 6d 6f 75 6e 74 2d 66 61 63 65 20 6e 69 6c 20 3a 6c ledger-font-C-amount-face.nil.:l
12ca0 61 78 29 0a 20 20 20 20 20 28 33 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 43 2d 61 6d 6f 75 6e ax)......(3.'ledger-font-C-amoun
12cc0 74 2d 66 61 63 65 20 6e 69 6c 20 3a 6c 61 78 29 29 0a 20 20 20 20 28 2c 28 63 6f 6e 63 61 74 20 t-face.nil.:lax)).....(,(concat.
12ce0 22 5e 5c 5c 28 63 61 70 74 75 72 65 5c 5c 29 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 "^\\(capture\\)"..............."
12d00 5c 5c 28 3f 3a 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c 28 2e 2a 3f 5c 5c 29 22 0a 20 20 20 20 \\(?:[[:blank:]]+\\(.*?\\)".....
12d20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 28 3f 3a 5c 5c 28 3f 3a 5c 74 5c 5c 7c 5b 20 5c 74 5d 5c .........."\\(?:\\(?:\t\\|[.\t]\
12d40 5c 7b 32 2c 5c 5c 7d 5c 5c 29 5c 5c 28 2e 2a 5c 5c 29 5c 5c 29 3f 5c 5c 29 3f 24 22 29 0a 20 20 \{2,\\}\\)\\(.*\\)\\)?\\)?$")...
12d60 20 20 20 28 31 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 63 61 70 74 75 72 65 2d 64 69 72 65 63 ...(1.'ledger-font-capture-direc
12d80 74 69 76 65 2d 66 61 63 65 29 0a 20 20 20 20 20 28 32 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d tive-face)......(2.'ledger-font-
12da0 63 61 70 74 75 72 65 2d 61 63 63 6f 75 6e 74 2d 66 61 63 65 20 6e 69 6c 20 3a 6c 61 78 29 0a 20 capture-account-face.nil.:lax)..
12dc0 20 20 20 20 28 33 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 63 61 70 74 75 72 65 2d 72 65 67 65 ....(3.'ledger-font-capture-rege
12de0 78 2d 66 61 63 65 20 6e 69 6c 20 3a 6c 61 78 29 29 0a 20 20 20 20 28 22 5e 5c 5c 28 63 68 65 63 x-face.nil.:lax)).....("^\\(chec
12e00 6b 5c 5c 29 5c 5c 28 3f 3a 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c 28 2e 2a 5c 5c 29 5c 5c 29 k\\)\\(?:[[:blank:]]+\\(.*\\)\\)
12e20 3f 24 22 0a 20 20 20 20 20 28 31 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 63 68 65 63 6b 2d 64 ?$"......(1.'ledger-font-check-d
12e40 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 0a 20 20 20 20 20 28 32 20 27 6c 65 64 67 65 72 2d 66 irective-face)......(2.'ledger-f
12e60 6f 6e 74 2d 63 68 65 63 6b 2d 63 6f 6e 64 69 74 69 6f 6e 2d 66 61 63 65 20 6e 69 6c 20 3a 6c 61 ont-check-condition-face.nil.:la
12e80 78 29 29 0a 20 20 20 20 28 2c 28 63 6f 6e 63 61 74 20 22 5e 5c 5c 28 3f 3a 63 6f 6d 6d 65 6e 74 x)).....(,(concat."^\\(?:comment
12ea0 5c 5c 7c 74 65 73 74 5c 5c 29 5c 5c 3e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5b 5e \\|test\\)\\>"..............."[^
12ec0 5c 30 5d 2a 3f 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 65 6e 64 5b 5b 3a 62 6c \0]*?\n"..............."end[[:bl
12ee0 61 6e 6b 3a 5d 5d 2b 5c 5c 28 3f 3a 63 6f 6d 6d 65 6e 74 5c 5c 7c 74 65 73 74 5c 5c 29 5c 5c 3e ank:]]+\\(?:comment\\|test\\)\\>
12f00 2e 2a 5c 6e 22 29 0a 20 20 20 20 20 2e 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 63 6f 6d 6d 65 .*\n")........'ledger-font-comme
12f20 6e 74 2d 66 61 63 65 29 0a 20 20 20 20 28 22 5e 5c 5c 28 63 6f 6d 6d 6f 64 69 74 79 5c 5c 29 5c nt-face).....("^\\(commodity\\)\
12f40 5c 28 3f 3a 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c 28 2e 2a 5c 5c 29 5c 5c 29 3f 24 22 0a 20 \(?:[[:blank:]]+\\(.*\\)\\)?$"..
12f60 20 20 20 20 28 31 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 63 6f 6d 6d 6f 64 69 74 79 2d 64 69 ....(1.'ledger-font-commodity-di
12f80 72 65 63 74 69 76 65 2d 66 61 63 65 29 0a 20 20 20 20 20 28 32 20 27 6c 65 64 67 65 72 2d 66 6f rective-face)......(2.'ledger-fo
12fa0 6e 74 2d 63 6f 6d 6d 6f 64 69 74 79 2d 6e 61 6d 65 2d 66 61 63 65 20 6e 69 6c 20 3a 6c 61 78 29 nt-commodity-name-face.nil.:lax)
12fc0 0a 20 20 20 20 20 2c 40 28 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 73 75 62 64 69 72 65 63 74 69 76 ......,@(ledger-font-subdirectiv
12fe0 65 73 0a 20 20 20 20 20 20 20 20 27 28 28 22 5e 5b 20 5c 74 5d 2b 5c 5c 28 3b 2e 2a 5c 5c 29 22 es.........'(("^[.\t]+\\(;.*\\)"
13000 20 28 31 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 63 6f 6d 6d 65 6e 74 2d 66 61 63 65 29 29 0a .(1.'ledger-font-comment-face)).
13020 20 20 20 20 20 20 20 20 20 20 28 22 5e 5b 20 5c 74 5d 2b 5c 5c 28 6e 6f 74 65 5c 5c 29 5c 5c 28 ..........("^[.\t]+\\(note\\)\\(
13040 3f 3a 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c 28 2e 2a 5c 5c 29 5c 5c 29 3f 24 22 0a 20 20 20 ?:[[:blank:]]+\\(.*\\)\\)?$"....
13060 20 20 20 20 20 20 20 20 28 31 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 6e 6f 74 65 2d 64 69 72 ........(1.'ledger-font-note-dir
13080 65 63 74 69 76 65 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 32 20 27 6c 65 64 67 ective-face)............(2.'ledg
130a0 65 72 2d 66 6f 6e 74 2d 6e 6f 74 65 2d 74 65 78 74 2d 66 61 63 65 20 6e 69 6c 20 3a 6c 61 78 29 er-font-note-text-face.nil.:lax)
130c0 29 0a 20 20 20 20 20 20 20 20 20 20 28 22 5e 5b 20 5c 74 5d 2b 5c 5c 28 66 6f 72 6d 61 74 5c 5c )...........("^[.\t]+\\(format\\
130e0 29 5c 5c 28 3f 3a 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c 28 2e 2a 5c 5c 29 5c 5c 29 3f 24 22 )\\(?:[[:blank:]]+\\(.*\\)\\)?$"
13100 0a 20 20 20 20 20 20 20 20 20 20 20 28 31 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 66 6f 72 6d ............(1.'ledger-font-form
13120 61 74 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 32 at-directive-face)............(2
13140 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 63 6f 6d 6d 6f 64 69 74 79 2d 66 6f 72 6d 61 74 2d 66 .'ledger-font-commodity-format-f
13160 61 63 65 20 6e 69 6c 20 3a 6c 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 22 5e 5b 20 5c 74 ace.nil.:lax))...........("^[.\t
13180 5d 2b 5c 5c 28 6e 6f 6d 61 72 6b 65 74 5c 5c 29 5c 5c 3e 2e 2a 22 0a 20 20 20 20 20 20 20 20 20 ]+\\(nomarket\\)\\>.*"..........
131a0 20 20 28 31 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 4e 2d 64 69 72 65 63 74 69 76 65 2d 66 61 ..(1.'ledger-font-N-directive-fa
131c0 63 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 22 5e 5b 20 5c 74 5d 2b 5c 5c 28 64 65 66 61 75 ce))...........("^[.\t]+\\(defau
131e0 6c 74 5c 5c 29 5c 5c 3e 2e 2a 22 0a 20 20 20 20 20 20 20 20 20 20 20 28 31 20 27 6c 65 64 67 65 lt\\)\\>.*"............(1.'ledge
13200 72 2d 66 6f 6e 74 2d 64 65 66 61 75 6c 74 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 29 29 r-font-default-directive-face)))
13220 29 29 0a 20 20 20 20 28 22 5e 5c 5c 28 44 5c 5c 29 5c 5c 28 3f 3a 5b 5b 3a 62 6c 61 6e 6b 3a 5d )).....("^\\(D\\)\\(?:[[:blank:]
13240 5d 2b 5c 5c 28 2e 2a 5c 5c 29 5c 5c 29 3f 24 22 0a 20 20 20 20 20 28 31 20 27 6c 65 64 67 65 72 ]+\\(.*\\)\\)?$"......(1.'ledger
13260 2d 66 6f 6e 74 2d 44 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 0a 20 20 20 20 20 28 32 20 -font-D-directive-face)......(2.
13280 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 63 6f 6d 6d 6f 64 69 74 79 2d 66 6f 72 6d 61 74 2d 66 61 'ledger-font-commodity-format-fa
132a0 63 65 20 6e 69 6c 20 3a 6c 61 78 29 29 0a 20 20 20 20 28 2c 28 63 6f 6e 63 61 74 20 22 5e 5c 5c ce.nil.:lax)).....(,(concat."^\\
132c0 28 64 65 66 69 6e 65 5c 5c 7c 64 65 66 5c 5c 29 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (define\\|def\\)"...............
132e0 22 5c 5c 28 3f 3a 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c 28 5b 5e 3d 5c 6e 5d 2a 3f 5c 5c 29 "\\(?:[[:blank:]]+\\([^=\n]*?\\)
13300 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2a 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 28 [[:blank:]]*"..............."\\(
13320 3f 3a 3d 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2a 5c 5c 28 2e 2a 5c 5c 29 5c 5c 29 3f 5c 5c 29 3f 24 ?:=[[:blank:]]*\\(.*\\)\\)?\\)?$
13340 22 29 0a 20 20 20 20 20 28 31 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 64 65 66 69 6e 65 2d 64 ")......(1.'ledger-font-define-d
13360 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 0a 20 20 20 20 20 28 32 20 27 6c 65 64 67 65 72 2d 66 irective-face)......(2.'ledger-f
13380 6f 6e 74 2d 64 65 66 69 6e 65 2d 6e 61 6d 65 2d 66 61 63 65 20 6e 69 6c 20 3a 6c 61 78 29 0a 20 ont-define-name-face.nil.:lax)..
133a0 20 20 20 20 28 33 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 64 65 66 69 6e 65 2d 62 6f 64 79 2d ....(3.'ledger-font-define-body-
133c0 66 61 63 65 20 6e 69 6c 20 3a 6c 61 78 29 29 0a 20 20 20 20 28 2c 28 63 6f 6e 63 61 74 20 22 5e face.nil.:lax)).....(,(concat."^
133e0 5c 5c 28 65 6e 64 5c 5c 29 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 28 3f 3a 5b \\(end\\)"..............."\\(?:[
13400 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c 28 61 70 70 6c 79 5c 5c 29 22 0a 20 20 20 20 20 20 20 20 [:blank:]]+\\(apply\\)".........
13420 20 20 20 20 20 20 22 5c 5c 28 3f 3a 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c 28 61 63 63 6f 75 ......"\\(?:[[:blank:]]+\\(accou
13440 6e 74 5c 5c 7c 74 61 67 5c 5c 29 5c 5c 3e 2e 2a 5c 5c 29 3f 5c 5c 29 3f 24 22 29 0a 20 20 20 20 nt\\|tag\\)\\>.*\\)?\\)?$").....
13460 20 28 31 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 65 6e 64 2d 64 69 72 65 63 74 69 76 65 2d 66 .(1.'ledger-font-end-directive-f
13480 61 63 65 29 0a 20 20 20 20 20 28 32 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 65 6e 64 2d 64 69 ace)......(2.'ledger-font-end-di
134a0 72 65 63 74 69 76 65 2d 66 61 63 65 20 6e 69 6c 20 3a 6c 61 78 29 0a 20 20 20 20 20 28 33 20 27 rective-face.nil.:lax)......(3.'
134c0 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 65 6e 64 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 20 6e ledger-font-end-directive-face.n
134e0 69 6c 20 3a 6c 61 78 29 29 0a 20 20 20 20 28 22 5e 5c 5c 28 65 6e 64 66 69 78 65 64 5c 5c 29 5c il.:lax)).....("^\\(endfixed\\)\
13500 5c 28 3f 3a 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c 28 2e 2a 5c 5c 29 5c 5c 29 3f 24 22 0a 20 \(?:[[:blank:]]+\\(.*\\)\\)?$"..
13520 20 20 20 20 28 31 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 65 6e 64 2d 64 69 72 65 63 74 69 76 ....(1.'ledger-font-end-directiv
13540 65 2d 66 61 63 65 29 0a 20 20 20 20 20 28 32 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 66 69 78 e-face)......(2.'ledger-font-fix
13560 65 64 2d 63 6f 6d 6d 6f 64 69 74 79 2d 66 61 63 65 20 6e 69 6c 20 3a 6c 61 78 29 29 0a 20 20 20 ed-commodity-face.nil.:lax))....
13580 20 28 22 5e 5c 5c 28 65 78 70 72 5c 5c 29 5c 5c 28 3f 3a 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c .("^\\(expr\\)\\(?:[[:blank:]]+\
135a0 5c 28 2e 2a 5c 5c 29 5c 5c 29 3f 24 22 0a 20 20 20 20 20 28 31 20 27 6c 65 64 67 65 72 2d 66 6f \(.*\\)\\)?$"......(1.'ledger-fo
135c0 6e 74 2d 65 78 70 72 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 0a 20 20 20 20 20 28 32 20 nt-expr-directive-face)......(2.
135e0 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 65 78 70 72 2d 65 78 70 72 65 73 73 69 6f 6e 2d 66 61 63 'ledger-font-expr-expression-fac
13600 65 20 6e 69 6c 20 3a 6c 61 78 29 29 0a 20 20 20 20 28 22 5e 5c 5c 28 66 69 78 65 64 5c 5c 29 5c e.nil.:lax)).....("^\\(fixed\\)\
13620 5c 28 3f 3a 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c 28 5b 5e 5b 3a 62 6c 61 6e 6b 3a 5d 5c 6e \(?:[[:blank:]]+\\([^[:blank:]\n
13640 5d 2b 5c 5c 29 5c 5c 28 3f 3a 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c 28 2e 2a 5c 5c 29 5c 5c ]+\\)\\(?:[[:blank:]]+\\(.*\\)\\
13660 29 3f 5c 5c 29 3f 24 22 0a 20 20 20 20 20 28 31 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 66 69 )?\\)?$"......(1.'ledger-font-fi
13680 78 65 64 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 0a 20 20 20 20 20 28 32 20 27 6c 65 64 xed-directive-face)......(2.'led
136a0 67 65 72 2d 66 6f 6e 74 2d 66 69 78 65 64 2d 63 6f 6d 6d 6f 64 69 74 79 2d 66 61 63 65 20 6e 69 ger-font-fixed-commodity-face.ni
136c0 6c 20 3a 6c 61 78 29 0a 20 20 20 20 20 28 33 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 66 69 78 l.:lax)......(3.'ledger-font-fix
136e0 65 64 2d 70 72 69 63 65 2d 66 61 63 65 20 6e 69 6c 20 3a 6c 61 78 29 29 0a 20 20 20 20 28 22 5e ed-price-face.nil.:lax)).....("^
13700 5c 5c 28 69 6e 63 6c 75 64 65 5c 5c 29 5c 5c 28 3f 3a 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c \\(include\\)\\(?:[[:blank:]]+\\
13720 28 2e 2a 5c 5c 29 5c 5c 29 3f 24 22 0a 20 20 20 20 20 28 31 20 27 6c 65 64 67 65 72 2d 66 6f 6e (.*\\)\\)?$"......(1.'ledger-fon
13740 74 2d 69 6e 63 6c 75 64 65 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 0a 20 20 20 20 20 28 t-include-directive-face)......(
13760 32 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 69 6e 63 6c 75 64 65 2d 66 69 6c 65 6e 61 6d 65 2d 2.'ledger-font-include-filename-
13780 66 61 63 65 20 6e 69 6c 20 3a 6c 61 78 29 29 0a 20 20 20 20 28 22 5e 5c 5c 28 4e 5c 5c 29 5c 5c face.nil.:lax)).....("^\\(N\\)\\
137a0 28 3f 3a 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c 28 2e 2a 5c 5c 29 5c 5c 29 3f 24 22 0a 20 20 (?:[[:blank:]]+\\(.*\\)\\)?$"...
137c0 20 20 20 28 31 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 4e 2d 64 69 72 65 63 74 69 76 65 2d 66 ...(1.'ledger-font-N-directive-f
137e0 61 63 65 29 0a 20 20 20 20 20 28 32 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 4e 2d 73 79 6d 62 ace)......(2.'ledger-font-N-symb
13800 6f 6c 2d 66 61 63 65 20 6e 69 6c 20 3a 6c 61 78 29 29 0a 20 20 20 20 28 22 5e 5c 5c 28 70 61 79 ol-face.nil.:lax)).....("^\\(pay
13820 65 65 5c 5c 29 5c 5c 28 3f 3a 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c 28 2e 2a 5c 5c 29 5c 5c ee\\)\\(?:[[:blank:]]+\\(.*\\)\\
13840 29 3f 24 22 0a 20 20 20 20 20 28 31 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 61 79 65 65 2d )?$"......(1.'ledger-font-payee-
13860 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 0a 20 20 20 20 20 28 32 20 27 6c 65 64 67 65 72 2d directive-face)......(2.'ledger-
13880 66 6f 6e 74 2d 70 61 79 65 65 2d 6e 61 6d 65 2d 66 61 63 65 20 6e 69 6c 20 3a 6c 61 78 29 0a 20 font-payee-name-face.nil.:lax)..
138a0 20 20 20 20 2c 40 28 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 73 75 62 64 69 72 65 63 74 69 76 65 73 ....,@(ledger-font-subdirectives
138c0 0a 20 20 20 20 20 20 20 20 27 28 28 22 5e 5b 20 5c 74 5d 2b 5c 5c 28 3b 2e 2a 5c 5c 29 22 20 28 .........'(("^[.\t]+\\(;.*\\)".(
138e0 31 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 63 6f 6d 6d 65 6e 74 2d 66 61 63 65 29 29 0a 20 20 1.'ledger-font-comment-face))...
13900 20 20 20 20 20 20 20 20 28 22 5e 5b 20 5c 74 5d 2b 5c 5c 28 61 6c 69 61 73 5c 5c 29 5c 5c 28 3f ........("^[.\t]+\\(alias\\)\\(?
13920 3a 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c 28 2e 2a 5c 5c 29 5c 5c 29 3f 24 22 0a 20 20 20 20 :[[:blank:]]+\\(.*\\)\\)?$".....
13940 20 20 20 20 20 20 20 28 31 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 61 6c 69 61 73 2d 64 69 72 .......(1.'ledger-font-alias-dir
13960 65 63 74 69 76 65 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 32 20 27 6c 65 64 67 ective-face)............(2.'ledg
13980 65 72 2d 66 6f 6e 74 2d 70 61 79 65 65 2d 72 65 67 65 78 2d 66 61 63 65 20 6e 69 6c 20 3a 6c 61 er-font-payee-regex-face.nil.:la
139a0 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 22 5e 5b 20 5c 74 5d 2b 5c 5c 28 75 75 69 64 5c 5c x))...........("^[.\t]+\\(uuid\\
139c0 29 5c 5c 28 3f 3a 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c 28 2e 2a 5c 5c 29 5c 5c 29 3f 24 22 )\\(?:[[:blank:]]+\\(.*\\)\\)?$"
139e0 0a 20 20 20 20 20 20 20 20 20 20 20 28 31 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 75 75 69 64 ............(1.'ledger-font-uuid
13a00 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 32 20 27 -directive-face)............(2.'
13a20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 75 75 69 64 2d 66 61 63 65 20 6e 69 6c 20 3a 6c 61 78 29 29 ledger-font-uuid-face.nil.:lax))
13a40 29 29 29 0a 20 20 20 20 28 2c 28 63 6f 6e 63 61 74 20 22 5e 5c 5c 28 50 5c 5c 29 22 0a 20 20 20 ))).....(,(concat."^\\(P\\)"....
13a60 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 28 3f 3a 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c 28 ..........."\\(?:[[:blank:]]+\\(
13a80 5b 5e 5b 3a 62 6c 61 6e 6b 3a 5d 5c 6e 5d 2b 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 [^[:blank:]\n]+"..............."
13aa0 5c 5c 28 3f 3a 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5b 5b 3a 64 69 67 69 74 3a 5d 5d 5b 5e 5b 3a \\(?:[[:blank:]]+[[:digit:]][^[:
13ac0 62 6c 61 6e 6b 3a 5d 5c 6e 5d 2a 5c 5c 29 3f 5c 5c 29 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 blank:]\n]*\\)?\\)".............
13ae0 20 20 22 5c 5c 28 3f 3a 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c 28 5c 22 2e 2a 3f 5c 22 5c 5c .."\\(?:[[:blank:]]+\\(\".*?\"\\
13b00 7c 5b 5e 5b 3a 62 6c 61 6e 6b 3a 5d 5c 6e 5d 2b 5c 5c 29 22 0a 20 20 20 20 20 20 20 20 20 20 20 |[^[:blank:]\n]+\\)"............
13b20 20 20 20 22 5c 5c 28 3f 3a 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c 28 2e 2a 5c 5c 29 5c 5c 29 ..."\\(?:[[:blank:]]+\\(.*\\)\\)
13b40 3f 5c 5c 29 3f 5c 5c 29 3f 24 22 29 0a 20 20 20 20 20 28 31 20 27 6c 65 64 67 65 72 2d 66 6f 6e ?\\)?\\)?$")......(1.'ledger-fon
13b60 74 2d 70 72 69 63 65 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 0a 20 20 20 20 20 28 32 20 t-price-directive-face)......(2.
13b80 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 72 69 63 65 2d 64 61 74 65 2d 66 61 63 65 20 6e 69 6c 'ledger-font-price-date-face.nil
13ba0 20 3a 6c 61 78 29 0a 20 20 20 20 20 28 33 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 72 69 63 .:lax)......(3.'ledger-font-pric
13bc0 65 2d 73 79 6d 62 6f 6c 2d 66 61 63 65 20 6e 69 6c 20 3a 6c 61 78 29 0a 20 20 20 20 20 28 34 20 e-symbol-face.nil.:lax)......(4.
13be0 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 72 69 63 65 2d 66 61 63 65 20 6e 69 6c 20 3a 6c 61 78 'ledger-font-price-face.nil.:lax
13c00 29 29 0a 20 20 20 20 28 22 5e 5c 5c 28 74 61 67 5c 5c 29 5c 5c 28 3f 3a 5b 5b 3a 62 6c 61 6e 6b )).....("^\\(tag\\)\\(?:[[:blank
13c20 3a 5d 5d 2b 5c 5c 28 2e 2a 5c 5c 29 5c 5c 29 3f 24 22 0a 20 20 20 20 20 28 31 20 27 6c 65 64 67 :]]+\\(.*\\)\\)?$"......(1.'ledg
13c40 65 72 2d 66 6f 6e 74 2d 74 61 67 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 0a 20 20 20 20 er-font-tag-directive-face).....
13c60 20 28 32 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 74 61 67 2d 6e 61 6d 65 2d 66 61 63 65 20 6e .(2.'ledger-font-tag-name-face.n
13c80 69 6c 20 3a 6c 61 78 29 0a 20 20 20 20 20 2c 40 28 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 73 75 62 il.:lax)......,@(ledger-font-sub
13ca0 64 69 72 65 63 74 69 76 65 73 0a 20 20 20 20 20 20 20 20 27 28 28 22 5e 5b 20 5c 74 5d 2b 5c 5c directives.........'(("^[.\t]+\\
13cc0 28 3b 2e 2a 5c 5c 29 22 20 28 31 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 63 6f 6d 6d 65 6e 74 (;.*\\)".(1.'ledger-font-comment
13ce0 2d 66 61 63 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 22 5e 5b 20 5c 74 5d 2b 5c 5c 28 63 68 -face))...........("^[.\t]+\\(ch
13d00 65 63 6b 5c 5c 29 5c 5c 28 3f 3a 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c 28 2e 2a 5c 5c 29 5c eck\\)\\(?:[[:blank:]]+\\(.*\\)\
13d20 5c 29 3f 24 22 0a 20 20 20 20 20 20 20 20 20 20 20 28 31 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 \)?$"............(1.'ledger-font
13d40 2d 63 68 65 63 6b 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 -check-directive-face)..........
13d60 20 20 28 32 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 63 68 65 63 6b 2d 63 6f 6e 64 69 74 69 6f ..(2.'ledger-font-check-conditio
13d80 6e 2d 66 61 63 65 20 6e 69 6c 20 3a 6c 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 22 5e 5b n-face.nil.:lax))...........("^[
13da0 20 5c 74 5d 2b 5c 5c 28 61 73 73 65 72 74 5c 5c 29 5c 5c 28 3f 3a 5b 5b 3a 62 6c 61 6e 6b 3a 5d .\t]+\\(assert\\)\\(?:[[:blank:]
13dc0 5d 2b 5c 5c 28 2e 2a 5c 5c 29 5c 5c 29 3f 24 22 0a 20 20 20 20 20 20 20 20 20 20 20 28 31 20 27 ]+\\(.*\\)\\)?$"............(1.'
13de0 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 61 73 73 65 72 74 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 ledger-font-assert-directive-fac
13e00 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 32 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 61 73 e)............(2.'ledger-font-as
13e20 73 65 72 74 2d 63 6f 6e 64 69 74 69 6f 6e 2d 66 61 63 65 20 6e 69 6c 20 3a 6c 61 78 29 29 29 29 sert-condition-face.nil.:lax))))
13e40 29 0a 20 20 20 20 28 2c 28 63 6f 6e 63 61 74 20 22 5e 5c 5c 28 5b 49 69 4f 6f 5d 5c 5c 29 22 0a ).....(,(concat."^\\([IiOo]\\)".
13e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 28 3f 3a 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b .............."\\(?:[[:blank:]]+
13e80 5c 5c 28 5b 5e 5b 3a 62 6c 61 6e 6b 3a 5d 5c 6e 5d 2b 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 \\([^[:blank:]\n]+".............
13ea0 20 20 22 5c 5c 28 3f 3a 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5b 5e 5b 3a 62 6c 61 6e 6b 3a 5d 5c .."\\(?:[[:blank:]]+[^[:blank:]\
13ec0 6e 5d 2b 5c 5c 29 3f 5c 5c 29 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 28 3f 3a n]+\\)?\\)"..............."\\(?:
13ee0 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c 28 2e 2a 3f 5c 5c 29 22 0a 20 20 20 20 20 20 20 20 20 [[:blank:]]+\\(.*?\\)"..........
13f00 20 20 20 20 20 22 5c 5c 28 3f 3a 5c 5c 28 3f 3a 5c 74 5c 5c 7c 5b 20 5c 74 5d 5c 5c 7b 32 2c 5c ....."\\(?:\\(?:\t\\|[.\t]\\{2,\
13f20 5c 7d 5c 5c 29 5c 5c 28 2e 2a 3f 5c 5c 29 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c \}\\)\\(.*?\\)"..............."\
13f40 5c 28 3f 3a 5c 5c 28 3f 3a 5c 74 5c 5c 7c 5b 20 5c 74 5d 5c 5c 7b 32 2c 5c 5c 7d 5c 5c 29 5c 5c \(?:\\(?:\t\\|[.\t]\\{2,\\}\\)\\
13f60 28 3b 2e 2a 5c 5c 29 5c 5c 29 3f 5c 5c 29 3f 5c 5c 29 3f 5c 5c 29 3f 24 22 29 0a 20 20 20 20 20 (;.*\\)\\)?\\)?\\)?\\)?$")......
13f80 28 31 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 74 69 6d 65 63 6c 6f 63 6b 2d 64 69 72 65 63 74 (1.'ledger-font-timeclock-direct
13fa0 69 76 65 2d 66 61 63 65 29 0a 20 20 20 20 20 28 32 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 ive-face)......(2.'ledger-font-p
13fc0 6f 73 74 69 6e 67 2d 64 61 74 65 2d 66 61 63 65 20 6e 69 6c 20 3a 6c 61 78 29 0a 20 20 20 20 20 osting-date-face.nil.:lax)......
13fe0 28 33 20 28 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 66 61 63 65 2d 62 79 2d 74 69 6d 65 63 6c 6f 63 (3.(ledger-font-face-by-timecloc
14000 6b 2d 73 74 61 74 65 20 31 20 27 28 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 6f 73 74 69 6e 67 2d k-state.1.'(ledger-font-posting-
14020 61 63 63 6f 75 6e 74 2d 63 6c 65 61 72 65 64 2d 66 61 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 account-cleared-face............
14040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
14060 20 20 20 20 20 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 6f 73 74 69 6e 67 2d 61 63 63 6f 75 6e ......ledger-font-posting-accoun
14080 74 2d 66 61 63 65 29 29 20 6e 69 6c 20 3a 6c 61 78 29 0a 20 20 20 20 20 28 34 20 28 6c 65 64 67 t-face)).nil.:lax)......(4.(ledg
140a0 65 72 2d 66 6f 6e 74 2d 66 61 63 65 2d 62 79 2d 74 69 6d 65 63 6c 6f 63 6b 2d 73 74 61 74 65 20 er-font-face-by-timeclock-state.
140c0 31 20 27 28 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 61 79 65 65 2d 63 6c 65 61 72 65 64 2d 66 61 1.'(ledger-font-payee-cleared-fa
140e0 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ce..............................
14100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d ....................ledger-font-
14120 70 61 79 65 65 2d 75 6e 63 6c 65 61 72 65 64 2d 66 61 63 65 29 29 20 6e 69 6c 20 3a 6c 61 78 29 payee-uncleared-face)).nil.:lax)
14140 0a 20 20 20 20 20 28 35 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 63 6f 6d 6d 65 6e 74 2d 66 61 ......(5.'ledger-font-comment-fa
14160 63 65 20 6e 69 6c 20 3a 6c 61 78 29 29 0a 20 20 20 20 28 22 5e 5c 5c 28 5b 62 68 5d 5c 5c 29 5c ce.nil.:lax)).....("^\\([bh]\\)\
14180 5c 3e 2e 2a 24 22 20 28 31 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 74 69 6d 65 63 6c 6f 63 6b \>.*$".(1.'ledger-font-timeclock
141a0 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 29 0a 20 20 20 20 28 22 5e 5c 5c 28 79 65 61 72 -directive-face)).....("^\\(year
141c0 5c 5c 7c 59 5c 5c 29 5c 5c 28 3f 3a 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c 28 2e 2a 5c 5c 29 \\|Y\\)\\(?:[[:blank:]]+\\(.*\\)
141e0 5c 5c 29 3f 24 22 0a 20 20 20 20 20 28 31 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 79 65 61 72 \\)?$"......(1.'ledger-font-year
14200 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 0a 20 20 20 20 20 28 32 20 27 6c 65 64 67 65 72 -directive-face)......(2.'ledger
14220 2d 66 6f 6e 74 2d 79 65 61 72 2d 66 61 63 65 20 6e 69 6c 20 3a 6c 61 78 29 29 0a 0a 20 20 20 20 -font-year-face.nil.:lax))......
14240 28 2c 28 6c 61 6d 62 64 61 20 28 6c 69 6d 69 74 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 (,(lambda.(limit).........(when.
14260 6c 65 64 67 65 72 2d 66 6f 6e 74 69 66 79 2d 78 61 63 74 2d 73 74 61 74 65 2d 6f 76 65 72 72 69 ledger-fontify-xact-state-overri
14280 64 65 73 0a 20 20 20 20 20 20 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 des...........(re-search-forward
142a0 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 5e 5c 5c 28 3f 3a 5c 5c 28 5b 3d ............(concat."^\\(?:\\([=
142c0 7e 5d 5c 5c 29 5b 20 5c 74 5d 2e 2a 5c 5c 7c 22 20 3b 20 61 75 74 6f 2f 70 65 72 69 6f 64 69 63 ~]\\)[.\t].*\\|".;.auto/periodic
142e0 2c 20 73 75 62 65 78 70 72 20 31 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 ,.subexpr.1...................."
14300 5b 5b 3a 64 69 67 69 74 3a 5d 5d 5b 5e 20 5c 74 5c 6e 5d 2a 22 20 20 20 20 20 20 20 3b 20 64 61 [[:digit:]][^.\t\n]*".......;.da
14320 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5b 20 5c 74 5d 2b 5c 5c 28 te...................."[.\t]+\\(
14340 5b 2a 21 5d 5c 5c 29 22 20 20 20 20 20 20 20 20 20 20 20 3b 20 6d 61 72 6b 2c 20 73 75 62 65 78 [*!]\\)"...........;.mark,.subex
14360 70 20 32 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2e 2a 5c 5c 29 22 20 20 p.2....................".*\\)"..
14380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 72 65 73 74 20 6f 66 20 68 65 ....................;.rest.of.he
143a0 61 64 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 28 3f 3a 5c 6e ader...................."\\(?:\n
143c0 5b 20 5c 74 5d 2b 2e 2a 5c 5c 29 2a 22 20 20 20 20 20 20 20 20 3b 20 70 6f 73 74 69 6e 67 73 0a [.\t]+.*\\)*"........;.postings.
143e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 0a 20 20 20 20 20 20 20 20 20 20 20 ...................)............
14400 6c 69 6d 69 74 20 74 29 29 29 0a 20 20 20 20 20 28 30 20 28 63 6f 6e 64 20 28 28 65 71 75 61 6c limit.t)))......(0.(cond.((equal
14420 20 22 3d 22 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 29 29 20 27 6c 65 64 67 65 72 2d 66 ."=".(match-string.1)).'ledger-f
14440 6f 6e 74 2d 61 75 74 6f 2d 78 61 63 74 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ont-auto-xact-face).............
14460 20 20 28 28 65 71 75 61 6c 20 22 7e 22 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 29 29 20 ..((equal."~".(match-string.1)).
14480 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 65 72 69 6f 64 69 63 2d 78 61 63 74 2d 66 61 63 65 29 'ledger-font-periodic-xact-face)
144a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 28 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 66 ...............(t.(ledger-font-f
144c0 61 63 65 2d 62 79 2d 73 74 61 74 65 20 32 20 27 28 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 78 61 63 ace-by-state.2.'(ledger-font-xac
144e0 74 2d 63 6c 65 61 72 65 64 2d 66 61 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t-cleared-face..................
14500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c ...............................l
14520 65 64 67 65 72 2d 66 6f 6e 74 2d 78 61 63 74 2d 70 65 6e 64 69 6e 67 2d 66 61 63 65 29 29 29 29 edger-font-xact-pending-face))))
14540 29 29 0a 20 20 20 20 28 2c 28 63 6f 6e 63 61 74 20 22 5e 5c 5c 28 3f 3a 5c 5c 28 5c 5c 28 5b 3d )).....(,(concat."^\\(?:\\(\\([=
14560 7e 5d 5c 5c 29 2e 2a 5c 5c 29 5c 5c 7c 22 20 20 20 20 20 20 20 3b 20 61 75 74 6f 2f 70 65 72 69 ~]\\).*\\)\\|".......;.auto/peri
14580 6f 64 69 63 2c 20 73 75 62 65 78 70 20 31 2c 20 32 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 odic,.subexp.1,.2...............
145a0 22 5c 5c 28 5b 5b 3a 64 69 67 69 74 3a 5d 5d 5b 5e 20 5c 74 5c 6e 5d 2a 5c 5c 29 22 20 20 20 20 "\\([[:digit:]][^.\t\n]*\\)"....
145c0 20 20 20 20 3b 20 64 61 74 65 2c 20 73 75 62 65 78 70 20 33 0a 20 20 20 20 20 20 20 20 20 20 20 ....;.date,.subexp.3............
145e0 20 20 20 6c 65 64 67 65 72 2d 78 61 63 74 2d 61 66 74 65 72 2d 64 61 74 65 2d 72 65 67 65 78 20 ...ledger-xact-after-date-regex.
14600 22 5c 5c 29 22 29 20 3b 20 6d 61 72 6b 20 34 2c 20 63 6f 64 65 20 35 2c 20 64 65 73 63 20 36 2c "\\)").;.mark.4,.code.5,.desc.6,
14620 20 63 6f 6d 6d 65 6e 74 20 37 0a 20 20 20 20 20 28 31 20 28 63 6f 6e 64 20 28 28 65 71 75 61 6c .comment.7......(1.(cond.((equal
14640 20 22 3d 22 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32 29 29 20 27 6c 65 64 67 65 72 2d 66 ."=".(match-string.2)).'ledger-f
14660 6f 6e 74 2d 61 75 74 6f 2d 78 61 63 74 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ont-auto-xact-face).............
14680 20 20 28 28 65 71 75 61 6c 20 22 7e 22 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32 29 29 20 ..((equal."~".(match-string.2)).
146a0 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 65 72 69 6f 64 69 63 2d 78 61 63 74 2d 66 61 63 65 29 'ledger-font-periodic-xact-face)
146c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 64 ...............(t.'ledger-font-d
146e0 65 66 61 75 6c 74 2d 64 69 72 65 63 74 69 76 65 2d 66 61 63 65 29 29 0a 20 20 20 20 20 20 20 20 efault-directive-face)).........
14700 6e 69 6c 20 3a 6c 61 78 29 0a 20 20 20 20 20 28 33 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 nil.:lax)......(3.'ledger-font-p
14720 6f 73 74 69 6e 67 2d 64 61 74 65 2d 66 61 63 65 20 6e 69 6c 20 3a 6c 61 78 29 0a 20 20 20 20 20 osting-date-face.nil.:lax)......
14740 28 35 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 63 6f 64 65 2d 66 61 63 65 20 6e 69 6c 20 3a 6c (5.'ledger-font-code-face.nil.:l
14760 61 78 29 0a 20 20 20 20 20 28 36 20 28 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 66 61 63 65 2d 62 79 ax)......(6.(ledger-font-face-by
14780 2d 73 74 61 74 65 20 34 20 27 28 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 61 79 65 65 2d 63 6c 65 -state.4.'(ledger-font-payee-cle
147a0 61 72 65 64 2d 66 61 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ared-face.......................
147c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 61 79 .................ledger-font-pay
147e0 65 65 2d 70 65 6e 64 69 6e 67 2d 66 61 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ee-pending-face.................
14800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 64 67 65 72 2d 66 6f .......................ledger-fo
14820 6e 74 2d 70 61 79 65 65 2d 75 6e 63 6c 65 61 72 65 64 2d 66 61 63 65 29 29 0a 20 20 20 20 20 20 nt-payee-uncleared-face)).......
14840 20 20 6e 69 6c 20 3a 6c 61 78 29 0a 20 20 20 20 20 28 37 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 ..nil.:lax)......(7.'ledger-font
14860 2d 63 6f 6d 6d 65 6e 74 2d 66 61 63 65 20 6e 69 6c 20 3a 6c 61 78 29 0a 20 20 20 20 20 2c 40 28 -comment-face.nil.:lax)......,@(
14880 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 73 75 62 64 69 72 65 63 74 69 76 65 73 0a 20 20 20 20 20 20 ledger-font-subdirectives.......
148a0 20 20 60 28 28 22 5e 5b 20 5c 74 5d 2b 5c 5c 28 3b 2e 2a 5c 5c 29 22 0a 20 20 20 20 20 20 20 20 ..`(("^[.\t]+\\(;.*\\)".........
148c0 20 20 20 28 31 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 63 6f 6d 6d 65 6e 74 2d 66 61 63 65 29 ...(1.'ledger-font-comment-face)
148e0 29 0a 20 20 20 20 20 20 20 20 20 20 28 2c 6c 65 64 67 65 72 2d 70 6f 73 74 69 6e 67 2d 72 65 67 )...........(,ledger-posting-reg
14900 65 78 20 3b 20 73 74 61 74 65 20 61 6e 64 20 61 63 63 6f 75 6e 74 20 31 2c 20 73 74 61 74 65 20 ex.;.state.and.account.1,.state.
14920 32 2c 20 61 63 63 6f 75 6e 74 20 33 2c 20 61 6d 6f 75 6e 74 20 34 2c 20 63 6f 6d 6d 65 6e 74 20 2,.account.3,.amount.4,.comment.
14940 35 0a 20 20 20 20 20 20 20 20 20 20 20 28 31 20 28 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 66 61 63 5............(1.(ledger-font-fac
14960 65 2d 62 79 2d 73 74 61 74 65 20 32 20 27 28 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 6f 73 74 69 e-by-state.2.'(ledger-font-posti
14980 6e 67 2d 61 63 63 6f 75 6e 74 2d 63 6c 65 61 72 65 64 2d 66 61 63 65 0a 20 20 20 20 20 20 20 20 ng-account-cleared-face.........
149a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
149c0 20 20 20 20 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 6f 73 74 69 6e 67 2d 61 63 63 6f 75 6e 74 .....ledger-font-posting-account
149e0 2d 70 65 6e 64 69 6e 67 2d 66 61 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -pending-face...................
14a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 64 67 65 ...........................ledge
14a20 72 2d 66 6f 6e 74 2d 70 6f 73 74 69 6e 67 2d 61 63 63 6f 75 6e 74 2d 66 61 63 65 29 29 0a 20 20 r-font-posting-account-face))...
14a40 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 3a 6c 61 78 29 0a 20 20 20 20 20 20 20 20 20 20 ............nil.:lax)...........
14a60 20 28 34 20 28 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 66 61 63 65 2d 62 79 2d 73 74 61 74 65 20 32 .(4.(ledger-font-face-by-state.2
14a80 20 27 28 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 6f 73 74 69 6e 67 2d 61 6d 6f 75 6e 74 2d 63 6c .'(ledger-font-posting-amount-cl
14aa0 65 61 72 65 64 2d 66 61 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 eared-face......................
14ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 64 67 65 72 2d 66 ........................ledger-f
14ae0 6f 6e 74 2d 70 6f 73 74 69 6e 67 2d 61 6d 6f 75 6e 74 2d 70 65 6e 64 69 6e 67 2d 66 61 63 65 0a ont-posting-amount-pending-face.
14b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
14b20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 6f 73 74 69 6e 67 .............ledger-font-posting
14b40 2d 61 6d 6f 75 6e 74 2d 66 61 63 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c -amount-face))...............nil
14b60 20 3a 6c 61 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 35 20 27 6c 65 64 67 65 72 2d 66 6f 6e .:lax)............(5.'ledger-fon
14b80 74 2d 63 6f 6d 6d 65 6e 74 2d 66 61 63 65 20 6e 69 6c 20 3a 6c 61 78 29 29 29 29 29 29 0a 20 20 t-comment-face.nil.:lax))))))...
14ba0 22 45 78 70 72 65 73 73 69 6f 6e 73 20 74 6f 20 68 69 67 68 6c 69 67 68 74 20 69 6e 20 4c 65 64 "Expressions.to.highlight.in.Led
14bc0 67 65 72 20 6d 6f 64 65 2e 22 29 0a 0a 0a 0a 28 70 72 6f 76 69 64 65 20 27 6c 65 64 67 65 72 2d ger.mode.")....(provide.'ledger-
14be0 66 6f 6e 74 73 29 0a 0a 3b 3b 3b 20 6c 65 64 67 65 72 2d 66 6f 6e 74 73 2e 65 6c 20 65 6e 64 73 fonts)..;;;.ledger-fonts.el.ends
14c00 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .here...........................
14c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14e00 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 33 32 36 2e 32 30 30 32 2f 6c 65 64 67 65 72 ledger-mode-20240326.2002/ledger
14e20 2d 69 6e 69 74 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -init.el........................
14e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14e60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
14e80 30 30 30 36 37 37 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 37 32 33 00 20 30 00 00 00 0006771.00000000000.015723..0...
14ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14f00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
14f20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
14f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15000 3b 3b 3b 20 6c 65 64 67 65 72 2d 69 6e 69 74 2e 65 6c 20 2d 2d 2d 20 48 65 6c 70 65 72 20 63 6f ;;;.ledger-init.el.---.Helper.co
15020 64 65 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 74 68 65 20 22 6c 65 64 67 65 72 22 20 63 6f 6d de.for.use.with.the."ledger".com
15040 6d 61 6e 64 2d 6c 69 6e 65 20 74 6f 6f 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 mand-line.tool..-*-.lexical-bind
15060 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 ing:.t;.-*-..;;.Copyright.(C).20
15080 30 33 2d 32 30 31 36 20 4a 6f 68 6e 20 57 69 65 67 6c 65 79 20 28 6a 6f 68 6e 77 20 41 54 20 67 03-2016.John.Wiegley.(johnw.AT.g
150a0 6e 75 20 44 4f 54 20 6f 72 67 29 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 6e 6f 74 nu.DOT.org)..;;.This.file.is.not
150c0 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 54 68 69 73 20 69 73 20 .part.of.GNU.Emacs...;;.This.is.
150e0 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 free.software;.you.can.redistrib
15100 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 20 75 6e 64 65 72 0a 3b 3b ute.it.and/or.modify.it.under.;;
15120 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 .the.terms.of.the.GNU.General.Pu
15140 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 blic.License.as.published.by.the
15160 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 .Free.;;.Software.Foundation;.ei
15180 74 68 65 72 20 76 65 72 73 69 6f 6e 20 32 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 ther.version.2,.or.(at.your.opti
151a0 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 0a 3b 3b 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 on).any.later.;;.version..;;.;;.
151c0 54 68 69 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 This.is.distributed.in.the.hope.
151e0 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 that.it.will.be.useful,.but.WITH
15200 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 OUT.;;.ANY.WARRANTY;.without.eve
15220 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 n.the.implied.warranty.of.MERCHA
15240 4e 54 41 42 49 4c 49 54 59 20 6f 72 0a 3b 3b 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 NTABILITY.or.;;.FITNESS.FOR.A.PA
15260 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 RTICULAR.PURPOSE...See.the.GNU.G
15280 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 66 6f 72 20 6d 6f 72 eneral.Public.License.;;.for.mor
152a0 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 e.details..;;.;;.You.should.have
152c0 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 .received.a.copy.of.the.GNU.Gene
152e0 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 ral.Public.License.;;.along.with
15300 20 47 4e 55 20 45 6d 61 63 73 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 .GNU.Emacs;.see.the.file.COPYING
15320 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 20 ...If.not,.write.to.the.;;.Free.
15340 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 Software.Foundation,.Inc.,.51.Fr
15360 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 anklin.Street,.Fifth.Floor,.Bost
15380 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 on,.;;.MA.02110-1301.USA...;;;.C
153a0 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 20 44 65 74 65 72 6d 69 6e 65 20 74 68 65 20 6c 65 64 67 ommentary:.;;.Determine.the.ledg
153c0 65 72 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 0a 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 er.environment..(require.'ledger
153e0 2d 72 65 67 65 78 29 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c -regex)..;;;.Code:..(defcustom.l
15400 65 64 67 65 72 2d 69 6e 69 74 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 7e 2f 2e 6c 65 64 67 65 72 72 edger-init-file-name."~/.ledgerr
15420 63 22 0a 20 20 22 4c 6f 63 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 6c 65 64 67 65 72 20 69 6e 69 c"..."Location.of.the.ledger.ini
15440 74 69 61 6c 69 7a 61 74 69 6f 6e 20 66 69 6c 65 2e 20 20 6e 69 6c 20 69 66 20 79 6f 75 20 64 6f tialization.file...nil.if.you.do
15460 6e 27 74 20 68 61 76 65 20 6f 6e 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65 20 n't.have.one."...:type.'(choice.
15480 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 44 6f 20 6e 6f 74 20 72 65 61 64 20 6c 65 64 67 65 72 20 (const.:tag."Do.not.read.ledger.
154a0 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 66 69 6c 65 22 20 6e 69 6c 29 0a 20 20 20 20 20 20 initialization.file".nil).......
154c0 20 20 20 20 20 20 20 20 20 20 20 66 69 6c 65 29 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 ...........file)...:group.'ledge
154e0 72 2d 65 78 65 63 29 0a 0a 28 64 65 66 76 61 72 20 6c 65 64 67 65 72 2d 65 6e 76 69 72 6f 6e 6d r-exec)..(defvar.ledger-environm
15500 65 6e 74 2d 61 6c 69 73 74 20 6e 69 6c 0a 20 20 22 56 61 72 69 61 62 6c 65 20 74 6f 20 68 6f 6c ent-alist.nil..."Variable.to.hol
15520 64 20 64 65 74 61 69 6c 73 20 61 62 6f 75 74 20 6c 65 64 67 65 72 2d 6d 6f 64 65 27 73 20 65 6e d.details.about.ledger-mode's.en
15540 76 69 72 6f 6e 6d 65 6e 74 2e 0a 0a 41 64 64 69 6e 67 20 74 68 65 20 64 6f 74 74 65 64 20 70 61 vironment...Adding.the.dotted.pa
15560 69 72 20 28 5c 22 64 65 63 69 6d 61 6c 2d 63 6f 6d 6d 61 5c 22 20 2e 20 74 29 20 77 69 6c 6c 20 ir.(\"decimal-comma\"...t).will.
15580 74 65 6c 6c 20 6c 65 64 67 65 72 0a 74 6f 20 74 72 65 61 74 20 63 6f 6d 6d 61 73 20 61 73 20 64 tell.ledger.to.treat.commas.as.d
155a0 65 63 69 6d 61 6c 20 73 65 70 61 72 61 74 6f 72 2e 0a 0a 54 68 69 73 20 76 61 72 69 61 62 6c 65 ecimal.separator...This.variable
155c0 20 69 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 70 6f 70 75 6c 61 74 65 64 20 62 79 0a 60 .is.automatically.populated.by.`
155e0 6c 65 64 67 65 72 2d 69 6e 69 74 2d 6c 6f 61 64 2d 69 6e 69 74 2d 66 69 6c 65 27 2c 20 77 68 69 ledger-init-load-init-file',.whi
15600 63 68 20 69 73 20 63 61 6c 6c 65 64 20 69 6e 20 74 68 65 20 62 6f 64 79 20 6f 66 0a 60 6c 65 64 ch.is.called.in.the.body.of.`led
15620 67 65 72 2d 6d 6f 64 65 27 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6c 65 64 67 65 72 2d 69 ger-mode'.")..(defconst.ledger-i
15640 73 6f 2d 64 61 74 65 2d 66 6f 72 6d 61 74 20 22 25 59 2d 25 6d 2d 25 64 22 0a 20 20 22 54 68 65 so-date-format."%Y-%m-%d"..."The
15660 20 66 6f 72 6d 61 74 20 66 6f 72 20 49 53 4f 20 38 36 30 31 20 64 61 74 65 73 2e 22 29 0a 0a 28 .format.for.ISO.8601.dates.")..(
15680 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 64 65 66 61 75 6c 74 2d 64 61 74 65 2d 66 6f defcustom.ledger-default-date-fo
156a0 72 6d 61 74 20 22 25 59 2f 25 6d 2f 25 64 22 0a 20 20 22 54 68 65 20 64 61 74 65 20 66 6f 72 6d rmat."%Y/%m/%d"..."The.date.form
156c0 61 74 20 74 68 61 74 20 6c 65 64 67 65 72 20 75 73 65 73 20 74 68 72 6f 75 67 68 6f 75 74 2e 0a at.that.ledger.uses.throughout..
156e0 53 65 74 20 74 68 69 73 20 74 6f 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 60 6c 65 64 67 65 72 Set.this.to.the.value.of.`ledger
15700 2d 69 73 6f 2d 64 61 74 65 2d 66 6f 72 6d 61 74 27 20 69 66 20 79 6f 75 20 70 72 65 66 65 72 0a -iso-date-format'.if.you.prefer.
15720 49 53 4f 20 38 36 30 31 20 64 61 74 65 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 ISO.8601.dates."...:type.'string
15740 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 6c 65 64 67 65 72 2d 6d 6f 64 ...:package-version.'(ledger-mod
15760 65 20 2e 20 22 34 2e 30 2e 30 22 29 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 29 0a 0a e..."4.0.0")...:group.'ledger)..
15780 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 66 6f 72 6d 61 74 2d 64 61 74 65 20 28 26 6f 70 74 69 (defun.ledger-format-date.(&opti
157a0 6f 6e 61 6c 20 64 61 74 65 29 0a 20 20 22 46 6f 72 6d 61 74 20 44 41 54 45 20 61 63 63 6f 72 64 onal.date)..."Format.DATE.accord
157c0 69 6e 67 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 65 66 65 72 72 65 64 20 64 61 74 ing.to.the.current.preferred.dat
157e0 65 20 66 6f 72 6d 61 74 2e 0a 52 65 74 75 72 6e 73 20 74 68 65 20 63 75 72 72 65 6e 74 20 64 61 e.format..Returns.the.current.da
15800 74 65 20 69 66 20 44 41 54 45 20 69 73 20 6e 69 6c 20 6f 72 20 6e 6f 74 20 73 75 70 70 6c 69 65 te.if.DATE.is.nil.or.not.supplie
15820 64 2e 22 0a 20 20 28 66 6f 72 6d 61 74 2d 74 69 6d 65 2d 73 74 72 69 6e 67 0a 20 20 20 28 6f 72 d."...(format-time-string....(or
15840 20 28 63 64 72 20 28 61 73 73 6f 63 20 22 69 6e 70 75 74 2d 64 61 74 65 2d 66 6f 72 6d 61 74 22 .(cdr.(assoc."input-date-format"
15860 20 6c 65 64 67 65 72 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 61 6c 69 73 74 29 29 0a 20 20 20 20 .ledger-environment-alist)).....
15880 20 20 20 6c 65 64 67 65 72 2d 64 65 66 61 75 6c 74 2d 64 61 74 65 2d 66 6f 72 6d 61 74 29 0a 20 ...ledger-default-date-format)..
158a0 20 20 64 61 74 65 29 29 0a 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 69 6e 69 74 2d 70 61 ..date))...(defun.ledger-init-pa
158c0 72 73 65 2d 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 28 62 75 66 66 65 72 29 0a 20 20 22 50 rse-initialization.(buffer)..."P
158e0 61 72 73 65 20 74 68 65 20 2e 6c 65 64 67 65 72 72 63 20 66 69 6c 65 20 69 6e 20 42 55 46 46 45 arse.the..ledgerrc.file.in.BUFFE
15900 52 2e 22 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 66 65 R."...(with-current-buffer.buffe
15920 72 0a 20 20 20 20 28 6c 65 74 20 28 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 61 6c 69 73 74 29 0a 20 r.....(let.(environment-alist)..
15940 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 .....(goto-char.(point-min))....
15960 20 20 20 28 77 68 69 6c 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 6c 65 64 ...(while.(re-search-forward.led
15980 67 65 72 2d 69 6e 69 74 2d 73 74 72 69 6e 67 2d 72 65 67 65 78 20 6e 69 6c 20 74 29 0a 20 20 20 ger-init-string-regex.nil.t)....
159a0 20 20 20 20 20 28 6c 65 74 20 28 28 6d 61 74 63 68 62 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e .....(let.((matchb.(match-beginn
159c0 69 6e 67 20 30 29 29 20 3b 3b 20 73 61 76 65 20 74 68 65 20 6d 61 74 63 68 20 64 61 74 61 2c 20 ing.0)).;;.save.the.match.data,.
159e0 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 73 74 61 6d 70 20 6f 6e 20 69 74 0a 20 20 20 20 20 20 20 string-match.stamp.on.it........
15a00 20 20 20 20 20 20 20 28 6d 61 74 63 68 65 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 29 0a 20 .......(matche.(match-end.0)))..
15a20 20 20 20 20 20 20 20 20 20 28 65 6e 64 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 20 .........(end-of-line)..........
15a40 20 28 70 75 73 68 20 28 63 6f 6e 73 20 28 6c 65 74 20 28 28 66 6c 61 67 20 28 62 75 66 66 65 72 .(push.(cons.(let.((flag.(buffer
15a60 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 28 2b 20 32 20 6d 61 -substring-no-properties.(+.2.ma
15a80 74 63 68 62 29 20 6d 61 74 63 68 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tchb).matche))).................
15aa0 20 20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5b 20 5c 74 5c ........(if.(string-match."[.\t\
15ac0 6e 5c 72 5d 2b 5c 5c 27 22 20 66 6c 61 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n\r]+\\'".flag).................
15ae0 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 70 6c 61 63 65 2d 6d 61 74 63 68 20 22 22 20 74 20 ............(replace-match."".t.
15b00 74 20 66 6c 61 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t.flag).........................
15b20 20 20 66 6c 61 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ..flag)).......................(
15b40 6c 65 74 20 28 28 76 61 6c 75 65 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f let.((value.(buffer-substring-no
15b60 2d 70 72 6f 70 65 72 74 69 65 73 20 6d 61 74 63 68 65 20 28 70 6f 69 6e 74 29 29 29 29 0a 20 20 -properties.matche.(point))))...
15b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3e 20 28 6c 65 ......................(if.(>.(le
15ba0 6e 67 74 68 20 76 61 6c 75 65 29 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ngth.value).0)..................
15bc0 20 20 20 20 20 20 20 20 20 20 20 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...........value................
15be0 20 20 20 20 20 20 20 20 20 20 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...........t))).................
15c00 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 61 6c 69 73 74 29 29 29 0a 20 20 20 20 20 20 28 6e 72 65 76 environment-alist))).......(nrev
15c20 65 72 73 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 61 6c 69 73 74 29 29 29 29 0a 0a 28 64 65 66 erse.environment-alist))))..(def
15c40 75 6e 20 6c 65 64 67 65 72 2d 69 6e 69 74 2d 6c 6f 61 64 2d 69 6e 69 74 2d 66 69 6c 65 20 28 29 un.ledger-init-load-init-file.()
15c60 0a 20 20 22 4c 6f 61 64 20 61 6e 64 20 70 61 72 73 65 20 74 68 65 20 2e 6c 65 64 67 65 72 72 63 ..."Load.and.parse.the..ledgerrc
15c80 20 66 69 6c 65 20 69 6e 74 6f 20 60 6c 65 64 67 65 72 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 61 .file.into.`ledger-environment-a
15ca0 6c 69 73 74 27 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e 20 list'."...(interactive)...(when.
15cc0 28 61 6e 64 20 6c 65 64 67 65 72 2d 69 6e 69 74 2d 66 69 6c 65 2d 6e 61 6d 65 0a 20 20 20 20 20 (and.ledger-init-file-name......
15ce0 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 72 65 61 64 61 62 6c 65 2d 70 20 6c 65 64 67 65 72 2d ........(file-readable-p.ledger-
15d00 69 6e 69 74 2d 66 69 6c 65 2d 6e 61 6d 65 29 29 0a 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d init-file-name)).....(with-temp-
15d20 62 75 66 66 65 72 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e buffer.......(insert-file-conten
15d40 74 73 20 6c 65 64 67 65 72 2d 69 6e 69 74 2d 66 69 6c 65 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 ts.ledger-init-file-name).......
15d60 28 73 65 74 71 20 6c 65 64 67 65 72 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 61 6c 69 73 74 0a 20 (setq.ledger-environment-alist..
15d80 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 69 6e 69 74 2d 70 61 72 73 65 2d 69 6e ...........(ledger-init-parse-in
15da0 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 29 itialization.(current-buffer))))
15dc0 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 6c 65 64 67 65 72 2d 69 6e 69 74 29 0a 0a 3b 3b 3b 20 ))..(provide.'ledger-init)..;;;.
15de0 6c 65 64 67 65 72 2d 69 6e 69 74 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 ledger-init.el.ends.here........
15e00 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 33 32 36 2e 32 30 30 32 2f 6c 65 64 67 65 72 ledger-mode-20240326.2002/ledger
15e20 2d 6d 6f 64 65 2d 70 6b 67 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -mode-pkg.el....................
15e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15e60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
15e80 30 30 30 30 33 34 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 34 35 33 00 20 30 00 00 00 0000346.00000000000.016453..0...
15ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15f00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
15f20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
15f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16000 28 64 65 66 69 6e 65 2d 70 61 63 6b 61 67 65 20 22 6c 65 64 67 65 72 2d 6d 6f 64 65 22 20 22 32 (define-package."ledger-mode"."2
16020 30 32 34 30 33 32 36 2e 32 30 30 32 22 20 22 48 65 6c 70 65 72 20 63 6f 64 65 20 66 6f 72 20 75 0240326.2002"."Helper.code.for.u
16040 73 65 20 77 69 74 68 20 74 68 65 20 5c 22 6c 65 64 67 65 72 5c 22 20 63 6f 6d 6d 61 6e 64 2d 6c se.with.the.\"ledger\".command-l
16060 69 6e 65 20 74 6f 6f 6c 22 0a 20 20 27 28 28 65 6d 61 63 73 20 22 32 35 2e 31 22 29 29 0a 20 20 ine.tool"...'((emacs."25.1"))...
16080 3a 63 6f 6d 6d 69 74 20 22 31 39 34 61 63 61 32 66 35 62 39 63 33 65 63 31 38 62 64 35 30 33 37 :commit."194aca2f5b9c3ec18bd5037
160a0 65 66 31 30 65 38 66 31 39 38 61 61 63 37 33 38 32 22 29 0a 3b 3b 20 4c 6f 63 61 6c 20 56 61 72 ef10e8f198aac7382").;;.Local.Var
160c0 69 61 62 6c 65 73 3a 0a 3b 3b 20 6e 6f 2d 62 79 74 65 2d 63 6f 6d 70 69 6c 65 3a 20 74 0a 3b 3b iables:.;;.no-byte-compile:.t.;;
160e0 20 45 6e 64 3a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .End:...........................
16100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
161a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
161c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
161e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16200 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 33 32 36 2e 32 30 30 32 2f 6c 65 64 67 65 72 ledger-mode-20240326.2002/ledger
16220 2d 6d 6f 64 65 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -mode.el........................
16240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16260 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
16280 30 30 33 32 33 33 35 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 36 37 37 00 20 30 00 00 00 0032335.00000000000.015677..0...
162a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
162c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
162e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16300 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
16320 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
16340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
163a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
163c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
163e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16400 3b 3b 3b 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 65 6c 20 2d 2d 2d 20 48 65 6c 70 65 72 20 63 6f ;;;.ledger-mode.el.---.Helper.co
16420 64 65 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 74 68 65 20 22 6c 65 64 67 65 72 22 20 63 6f 6d de.for.use.with.the."ledger".com
16440 6d 61 6e 64 2d 6c 69 6e 65 20 74 6f 6f 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 mand-line.tool..-*-.lexical-bind
16460 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 ing:.t;.-*-..;;.Copyright.(C).20
16480 30 33 2d 32 30 31 36 20 4a 6f 68 6e 20 57 69 65 67 6c 65 79 20 28 6a 6f 68 6e 77 20 41 54 20 67 03-2016.John.Wiegley.(johnw.AT.g
164a0 6e 75 20 44 4f 54 20 6f 72 67 29 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 6e 6f 74 nu.DOT.org)..;;.This.file.is.not
164c0 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 50 61 63 6b 61 67 65 2d .part.of.GNU.Emacs...;;.Package-
164e0 52 65 71 75 69 72 65 73 3a 20 28 28 65 6d 61 63 73 20 22 32 35 2e 31 22 29 29 0a 0a 3b 3b 20 54 Requires:.((emacs."25.1"))..;;.T
16500 68 69 73 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 his.is.free.software;.you.can.re
16520 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 20 75 distribute.it.and/or.modify.it.u
16540 6e 64 65 72 0a 3b 3b 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e nder.;;.the.terms.of.the.GNU.Gen
16560 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 eral.Public.License.as.published
16580 20 62 79 20 74 68 65 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 .by.the.Free.;;.Software.Foundat
165a0 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 32 2c 20 6f 72 20 28 61 74 20 79 6f ion;.either.version.2,.or.(at.yo
165c0 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 0a 3b 3b 20 76 65 72 73 69 6f 6e 2e ur.option).any.later.;;.version.
165e0 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 .;;.;;.This.is.distributed.in.th
16600 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 e.hope.that.it.will.be.useful,.b
16620 75 74 20 57 49 54 48 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 ut.WITHOUT.;;.ANY.WARRANTY;.with
16640 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 out.even.the.implied.warranty.of
16660 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 0a 3b 3b 20 46 49 54 4e 45 53 53 20 46 .MERCHANTABILITY.or.;;.FITNESS.F
16680 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 OR.A.PARTICULAR.PURPOSE...See.th
166a0 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 e.GNU.General.Public.License.;;.
166c0 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 for.more.details..;;.;;.You.shou
166e0 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 ld.have.received.a.copy.of.the.G
16700 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f NU.General.Public.License.;;.alo
16720 6e 67 20 77 69 74 68 20 47 4e 55 20 45 6d 61 63 73 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 ng.with.GNU.Emacs;.see.the.file.
16740 43 4f 50 59 49 4e 47 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b COPYING...If.not,.write.to.the.;
16760 3b 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e ;.Free.Software.Foundation,.Inc.
16780 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f ,.51.Franklin.Street,.Fifth.Floo
167a0 72 2c 20 42 6f 73 74 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 20 55 53 41 2e r,.Boston,.;;.MA.02110-1301.USA.
167c0 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 20 54 68 69 73 20 45 6d 61 63 73 20 ..;;;.Commentary:.;;.This.Emacs.
167e0 6c 69 62 72 61 72 79 20 70 72 6f 76 69 64 65 73 20 61 20 6d 61 6a 6f 72 20 6d 6f 64 65 20 66 6f library.provides.a.major.mode.fo
16800 72 20 65 64 69 74 69 6e 67 20 66 69 6c 65 73 20 69 6e 20 74 68 65 20 66 6f 72 6d 61 74 20 75 73 r.editing.files.in.the.format.us
16820 65 64 0a 3b 3b 20 62 79 20 74 68 65 20 60 6c 65 64 67 65 72 27 20 63 6f 6d 6d 61 6e 64 2d 6c 69 ed.;;.by.the.`ledger'.command-li
16840 6e 65 20 61 63 63 6f 75 6e 74 69 6e 67 20 73 79 73 74 65 6d 2e 0a 0a 3b 3b 20 49 74 20 61 6c 73 ne.accounting.system...;;.It.als
16860 6f 20 70 72 6f 76 69 64 65 73 20 61 75 74 6f 6d 61 74 65 64 20 73 75 70 70 6f 72 74 20 66 6f 72 o.provides.automated.support.for
16880 20 73 6f 6d 65 20 60 6c 65 64 67 65 72 27 20 77 6f 72 6b 66 6c 6f 77 73 2c 20 73 75 63 68 20 61 .some.`ledger'.workflows,.such.a
168a0 73 0a 3b 3b 20 72 65 63 6f 6e 63 69 6c 69 6e 67 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 2c 20 6f s.;;.reconciling.transactions,.o
168c0 72 20 72 75 6e 6e 69 6e 67 20 63 65 72 74 61 69 6e 20 72 65 70 6f 72 74 73 2e 0a 0a 3b 3b 3b 20 r.running.certain.reports...;;;.
168e0 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 72 65 67 65 78 29 0a 28 Code:..(require.'ledger-regex).(
16900 72 65 71 75 69 72 65 20 27 6f 72 67 29 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 63 require.'org).(require.'ledger-c
16920 6f 6d 6d 6f 64 69 74 69 65 73 29 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 63 6f 6d ommodities).(require.'ledger-com
16940 70 6c 65 74 65 29 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 29 plete).(require.'ledger-context)
16960 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 65 78 65 63 29 0a 28 72 65 71 75 69 72 65 .(require.'ledger-exec).(require
16980 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 73 29 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 .'ledger-fonts).(require.'ledger
169a0 2d 66 6f 6e 74 69 66 79 29 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 69 6e 69 74 29 -fontify).(require.'ledger-init)
169c0 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 29 0a 28 72 65 71 .(require.'ledger-navigate).(req
169e0 75 69 72 65 20 27 6c 65 64 67 65 72 2d 6f 63 63 75 72 29 0a 28 72 65 71 75 69 72 65 20 27 6c 65 uire.'ledger-occur).(require.'le
16a00 64 67 65 72 2d 70 6f 73 74 29 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 72 65 63 6f dger-post).(require.'ledger-reco
16a20 6e 63 69 6c 65 29 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 0a ncile).(require.'ledger-report).
16a40 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 73 6f 72 74 29 0a 28 72 65 71 75 69 72 65 20 (require.'ledger-sort).(require.
16a60 27 6c 65 64 67 65 72 2d 73 74 61 74 65 29 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 'ledger-state).(require.'ledger-
16a80 74 65 73 74 29 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 74 65 78 69 29 0a 28 72 65 test).(require.'ledger-texi).(re
16aa0 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 78 61 63 74 29 0a 28 72 65 71 75 69 72 65 20 27 6c 65 quire.'ledger-xact).(require.'le
16ac0 64 67 65 72 2d 73 63 68 65 64 75 6c 65 29 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d dger-schedule).(require.'ledger-
16ae0 63 68 65 63 6b 29 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 63 75 73 74 6f 6d check)..(declare-function.custom
16b00 2d 67 72 6f 75 70 2d 6d 65 6d 62 65 72 73 20 22 63 75 73 2d 65 64 69 74 22 20 28 73 79 6d 62 6f -group-members."cus-edit".(symbo
16b20 6c 20 67 72 6f 75 70 73 2d 6f 6e 6c 79 29 29 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 64 65 66 l.groups-only))..;;;.Code:..(def
16b40 67 72 6f 75 70 20 6c 65 64 67 65 72 20 6e 69 6c 0a 20 20 22 49 6e 74 65 72 66 61 63 65 20 74 6f group.ledger.nil..."Interface.to
16b60 20 74 68 65 20 4c 65 64 67 65 72 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 61 63 63 6f 75 6e 74 .the.Ledger.command-line.account
16b80 69 6e 67 20 70 72 6f 67 72 61 6d 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 64 61 74 61 29 0a 0a 28 ing.program."...:group.'data)..(
16ba0 64 65 66 63 6f 6e 73 74 20 6c 65 64 67 65 72 2d 76 65 72 73 69 6f 6e 20 22 33 2e 30 22 0a 20 20 defconst.ledger-version."3.0"...
16bc0 22 54 68 65 20 76 65 72 73 69 6f 6e 20 6f 66 20 6c 65 64 67 65 72 2e 65 6c 20 63 75 72 72 65 6e "The.version.of.ledger.el.curren
16be0 74 6c 79 20 6c 6f 61 64 65 64 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6c 65 64 67 65 72 2d tly.loaded.")..(defconst.ledger-
16c00 6d 6f 64 65 2d 76 65 72 73 69 6f 6e 20 22 34 2e 30 2e 30 22 29 0a 0a 28 64 65 66 75 6e 20 6c 65 mode-version."4.0.0")..(defun.le
16c20 64 67 65 72 2d 6d 6f 64 65 2d 64 75 6d 70 2d 76 61 72 69 61 62 6c 65 20 28 76 61 72 29 0a 20 20 dger-mode-dump-variable.(var)...
16c40 22 46 6f 72 6d 61 74 20 56 41 52 20 66 6f 72 20 64 75 6d 70 20 74 6f 20 62 75 66 66 65 72 2e 22 "Format.VAR.for.dump.to.buffer."
16c60 0a 20 20 28 69 66 20 76 61 72 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 66 6f 72 6d 61 74 ...(if.var.......(insert.(format
16c80 20 22 20 20 20 20 20 20 20 20 20 25 73 3a 20 25 53 5c 6e 22 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d .".........%s:.%S\n".(symbol-nam
16ca0 65 20 76 61 72 29 20 28 65 76 61 6c 20 76 61 72 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 e.var).(eval.var)))))..(defun.le
16cc0 64 67 65 72 2d 6d 6f 64 65 2d 64 75 6d 70 2d 67 72 6f 75 70 20 28 67 72 6f 75 70 29 0a 20 20 22 dger-mode-dump-group.(group)..."
16ce0 44 75 6d 70 20 47 52 4f 55 50 20 63 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 73 20 74 6f 20 63 75 72 Dump.GROUP.customizations.to.cur
16d00 72 65 6e 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 72 65 71 75 69 72 65 20 27 63 75 73 2d 65 64 rent.buffer."...(require.'cus-ed
16d20 69 74 29 0a 20 20 28 6c 65 74 20 28 28 6d 65 6d 62 65 72 73 20 28 63 75 73 74 6f 6d 2d 67 72 6f it)...(let.((members.(custom-gro
16d40 75 70 2d 6d 65 6d 62 65 72 73 20 67 72 6f 75 70 20 6e 69 6c 29 29 29 0a 20 20 20 20 28 64 6f 6c up-members.group.nil))).....(dol
16d60 69 73 74 20 28 6d 65 6d 62 65 72 20 6d 65 6d 62 65 72 73 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 ist.(member.members).......(cond
16d80 20 28 28 65 71 20 28 63 61 64 72 20 6d 65 6d 62 65 72 29 20 27 63 75 73 74 6f 6d 2d 67 72 6f 75 .((eq.(cadr.member).'custom-grou
16da0 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 66 6f 72 6d 61 74 20 p)..............(insert.(format.
16dc0 22 47 72 6f 75 70 20 25 73 3a 5c 6e 22 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 28 63 61 72 20 "Group.%s:\n".(symbol-name.(car.
16de0 6d 65 6d 62 65 72 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d member))))..............(ledger-
16e00 6d 6f 64 65 2d 64 75 6d 70 2d 67 72 6f 75 70 20 28 63 61 72 20 6d 65 6d 62 65 72 29 29 29 0a 20 mode-dump-group.(car.member)))..
16e20 20 20 20 20 20 20 20 20 20 20 20 28 28 65 71 20 28 63 61 64 72 20 6d 65 6d 62 65 72 29 20 27 63 ...........((eq.(cadr.member).'c
16e40 75 73 74 6f 6d 2d 76 61 72 69 61 62 6c 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 ustom-variable)..............(le
16e60 64 67 65 72 2d 6d 6f 64 65 2d 64 75 6d 70 2d 76 61 72 69 61 62 6c 65 20 28 63 61 72 20 6d 65 6d dger-mode-dump-variable.(car.mem
16e80 62 65 72 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 64 ber)))))))..(defun.ledger-mode-d
16ea0 75 6d 70 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 28 29 0a 20 20 22 44 75 6d 70 20 61 6c 6c ump-configuration.()..."Dump.all
16ec0 20 63 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 .customizations."...(interactive
16ee0 29 0a 20 20 28 66 69 6e 64 2d 66 69 6c 65 20 22 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 64 75 6d 70 )...(find-file."ledger-mode-dump
16f00 22 29 0a 20 20 28 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 64 75 6d 70 2d 67 72 6f 75 70 20 27 6c 65 ")...(ledger-mode-dump-group.'le
16f20 64 67 65 72 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 61 64 2d 61 63 63 6f 75 dger))..(defun.ledger-read-accou
16f40 6e 74 2d 77 69 74 68 2d 70 72 6f 6d 70 74 20 28 70 72 6f 6d 70 74 29 0a 20 20 22 52 65 61 64 20 nt-with-prompt.(prompt)..."Read.
16f60 61 6e 20 61 63 63 6f 75 6e 74 20 66 72 6f 6d 20 74 68 65 20 6d 69 6e 69 62 75 66 66 65 72 20 77 an.account.from.the.minibuffer.w
16f80 69 74 68 20 50 52 4f 4d 50 54 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 63 6f 6e 74 65 78 74 20 28 ith.PROMPT."...(let*.((context.(
16fa0 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 2d 61 74 2d 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 ledger-context-at-point)).......
16fc0 20 20 20 28 61 63 63 6f 75 6e 74 20 28 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 2d 66 69 65 6c ...(account.(ledger-context-fiel
16fe0 64 2d 76 61 6c 75 65 20 63 6f 6e 74 65 78 74 20 27 61 63 63 6f 75 6e 74 29 29 29 0a 20 20 20 20 d-value.context.'account))).....
17000 28 6c 65 64 67 65 72 2d 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 2d 77 69 74 68 2d 64 65 66 (ledger-completing-read-with-def
17020 61 75 6c 74 20 70 72 6f 6d 70 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ault.prompt.....................
17040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 61 63 63 6f 75 .....................(when.accou
17060 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nt..............................
17080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 67 65 78 70 2d 71 75 6f 74 65 20 61 63 63 6f ..............(regexp-quote.acco
170a0 75 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 unt))...........................
170c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d ...............(ledger-accounts-
170e0 6c 69 73 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 61 64 2d 64 61 74 list))))..(defun.ledger-read-dat
17100 65 20 28 70 72 6f 6d 70 74 29 0a 20 20 22 52 65 74 75 72 6e 20 75 73 65 72 2d 73 75 70 70 6c 69 e.(prompt)..."Return.user-suppli
17120 65 64 20 64 61 74 65 20 61 66 74 65 72 20 60 50 52 4f 4d 50 54 27 2c 20 64 65 66 61 75 6c 74 73 ed.date.after.`PROMPT',.defaults
17140 20 74 6f 20 74 6f 64 61 79 2e 0a 54 68 69 73 20 75 73 65 73 20 60 6f 72 67 2d 72 65 61 64 2d 64 .to.today..This.uses.`org-read-d
17160 61 74 65 27 2c 20 77 68 69 63 68 20 73 65 65 2e 22 0a 20 20 28 6c 65 64 67 65 72 2d 66 6f 72 6d ate',.which.see."...(ledger-form
17180 61 74 2d 64 61 74 65 20 28 6c 65 74 20 28 28 6f 72 67 2d 72 65 61 64 2d 64 61 74 65 2d 70 72 65 at-date.(let.((org-read-date-pre
171a0 66 65 72 2d 66 75 74 75 72 65 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 fer-future.nil))................
171c0 20 20 20 20 20 20 20 20 20 28 6f 72 67 2d 72 65 61 64 2d 64 61 74 65 20 6e 69 6c 20 74 20 6e 69 .........(org-read-date.nil.t.ni
171e0 6c 20 70 72 6f 6d 70 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 67 65 74 2d l.prompt))))..(defun.ledger-get-
17200 6d 69 6e 69 62 75 66 66 65 72 2d 70 72 6f 6d 70 74 20 28 70 72 6f 6d 70 74 20 64 65 66 61 75 6c minibuffer-prompt.(prompt.defaul
17220 74 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6d 69 6e 69 62 75 66 66 65 72 20 70 72 6f 6d 70 74 t)..."Return.a.minibuffer.prompt
17240 20 73 74 72 69 6e 67 20 63 6f 6d 70 6f 73 69 6e 67 20 50 52 4f 4d 50 54 20 61 6e 64 20 44 45 46 .string.composing.PROMPT.and.DEF
17260 41 55 4c 54 2e 22 0a 20 20 28 63 6f 6e 63 61 74 20 70 72 6f 6d 70 74 0a 20 20 20 20 20 20 20 20 AULT."...(concat.prompt.........
17280 20 20 28 69 66 20 64 65 66 61 75 6c 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e ..(if.default...............(con
172a0 63 61 74 20 22 20 28 22 20 64 65 66 61 75 6c 74 20 22 29 3a 20 22 29 0a 20 20 20 20 20 20 20 20 cat.".(".default."):.").........
172c0 20 20 20 20 22 3a 20 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 63 6f 6d 70 6c ....":.")))..(defun.ledger-compl
172e0 65 74 69 6e 67 2d 72 65 61 64 2d 77 69 74 68 2d 64 65 66 61 75 6c 74 20 28 70 72 6f 6d 70 74 20 eting-read-with-default.(prompt.
17300 64 65 66 61 75 6c 74 20 63 6f 6c 6c 65 63 74 69 6f 6e 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 default.collection)..."Return.a.
17320 75 73 65 72 2d 73 75 70 70 6c 69 65 64 20 73 74 72 69 6e 67 20 61 66 74 65 72 20 50 52 4f 4d 50 user-supplied.string.after.PROMP
17340 54 2e 0a 55 73 65 20 74 68 65 20 67 69 76 65 6e 20 44 45 46 41 55 4c 54 2c 20 77 68 69 6c 65 20 T..Use.the.given.DEFAULT,.while.
17360 70 72 6f 76 69 64 69 6e 67 20 63 6f 6d 70 6c 65 74 69 6f 6e 73 20 66 72 6f 6d 20 43 4f 4c 4c 45 providing.completions.from.COLLE
17380 43 54 49 4f 4e 2e 22 0a 20 20 28 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 20 28 6c 65 64 67 CTION."...(completing-read.(ledg
173a0 65 72 2d 67 65 74 2d 6d 69 6e 69 62 75 66 66 65 72 2d 70 72 6f 6d 70 74 20 70 72 6f 6d 70 74 20 er-get-minibuffer-prompt.prompt.
173c0 64 65 66 61 75 6c 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c default)....................coll
173e0 65 63 74 69 6f 6e 20 6e 69 6c 20 6e 69 6c 20 6e 69 6c 20 27 6c 65 64 67 65 72 2d 6d 69 6e 69 62 ection.nil.nil.nil.'ledger-minib
17400 75 66 66 65 72 2d 68 69 73 74 6f 72 79 20 64 65 66 61 75 6c 74 29 29 0a 0a 28 64 65 66 75 6e 20 uffer-history.default))..(defun.
17420 6c 65 64 67 65 72 2d 72 65 61 64 2d 73 74 72 69 6e 67 2d 77 69 74 68 2d 64 65 66 61 75 6c 74 20 ledger-read-string-with-default.
17440 28 70 72 6f 6d 70 74 20 64 65 66 61 75 6c 74 29 0a 20 20 22 52 65 74 75 72 6e 20 75 73 65 72 20 (prompt.default)..."Return.user.
17460 73 75 70 70 6c 69 65 64 20 73 74 72 69 6e 67 20 61 66 74 65 72 20 50 52 4f 4d 50 54 2c 20 6f 72 supplied.string.after.PROMPT,.or
17480 20 44 45 46 41 55 4c 54 2e 22 0a 20 20 28 72 65 61 64 2d 73 74 72 69 6e 67 20 28 6c 65 64 67 65 .DEFAULT."...(read-string.(ledge
174a0 72 2d 67 65 74 2d 6d 69 6e 69 62 75 66 66 65 72 2d 70 72 6f 6d 70 74 20 70 72 6f 6d 70 74 20 64 r-get-minibuffer-prompt.prompt.d
174c0 65 66 61 75 6c 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 27 6c 65 64 67 efault)................nil.'ledg
174e0 65 72 2d 6d 69 6e 69 62 75 66 66 65 72 2d 68 69 73 74 6f 72 79 20 64 65 66 61 75 6c 74 29 29 0a er-minibuffer-history.default)).
17500 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 64 69 73 70 6c 61 79 2d 62 61 6c 61 6e 63 65 2d 61 .(defun.ledger-display-balance-a
17520 74 2d 70 6f 69 6e 74 20 28 26 6f 70 74 69 6f 6e 61 6c 20 61 72 67 29 0a 20 20 22 44 69 73 70 6c t-point.(&optional.arg)..."Displ
17540 61 79 20 74 68 65 20 63 6c 65 61 72 65 64 2d 6f 72 2d 70 65 6e 64 69 6e 67 20 62 61 6c 61 6e 63 ay.the.cleared-or-pending.balanc
17560 65 2e 0a 41 6e 64 20 63 61 6c 63 75 6c 61 74 65 20 74 68 65 20 74 61 72 67 65 74 2d 64 65 6c 74 e..And.calculate.the.target-delt
17580 61 20 6f 66 20 74 68 65 20 61 63 63 6f 75 6e 74 20 62 65 69 6e 67 20 72 65 63 6f 6e 63 69 6c 65 a.of.the.account.being.reconcile
175a0 64 2e 0a 0a 57 69 74 68 20 41 52 47 20 28 5c 5c 5b 75 6e 69 76 65 72 73 61 6c 2d 61 72 67 75 6d d...With.ARG.(\\[universal-argum
175c0 65 6e 74 5d 29 20 61 73 6b 20 66 6f 72 20 74 68 65 20 74 61 72 67 65 74 20 63 6f 6d 6d 6f 64 69 ent]).ask.for.the.target.commodi
175e0 74 79 20 61 6e 64 20 63 6f 6e 76 65 72 74 0a 74 68 65 20 62 61 6c 61 6e 63 65 20 69 6e 74 6f 20 ty.and.convert.the.balance.into.
17600 74 68 61 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 50 22 29 0a 20 20 28 6c 65 that."...(interactive."P")...(le
17620 74 2a 20 28 28 61 63 63 6f 75 6e 74 20 28 6c 65 64 67 65 72 2d 72 65 61 64 2d 61 63 63 6f 75 6e t*.((account.(ledger-read-accoun
17640 74 2d 77 69 74 68 2d 70 72 6f 6d 70 74 20 22 41 63 63 6f 75 6e 74 20 62 61 6c 61 6e 63 65 20 74 t-with-prompt."Account.balance.t
17660 6f 20 73 68 6f 77 22 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 61 72 67 65 74 2d 63 6f 6d 6d 6f o.show"))..........(target-commo
17680 64 69 74 79 20 28 77 68 65 6e 20 61 72 67 20 28 6c 65 64 67 65 72 2d 72 65 61 64 2d 63 6f 6d 6d dity.(when.arg.(ledger-read-comm
176a0 6f 64 69 74 79 2d 77 69 74 68 2d 70 72 6f 6d 70 74 20 22 54 61 72 67 65 74 20 63 6f 6d 6d 6f 64 odity-with-prompt."Target.commod
176c0 69 74 79 3a 20 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 20 28 66 69 6e 64 ity:.")))..........(buffer.(find
176e0 2d 66 69 6c 65 2d 6e 6f 73 65 6c 65 63 74 20 28 6c 65 64 67 65 72 2d 6d 61 73 74 65 72 2d 66 69 -file-noselect.(ledger-master-fi
17700 6c 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 62 61 6c 61 6e 63 65 20 28 77 69 74 68 2d 74 65 le)))..........(balance.(with-te
17720 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 mp-buffer.....................(a
17740 70 70 6c 79 20 27 6c 65 64 67 65 72 2d 65 78 65 63 2d 6c 65 64 67 65 72 20 62 75 66 66 65 72 20 pply.'ledger-exec-ledger.buffer.
17760 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 22 63 6c 65 61 72 65 64 22 20 61 63 63 6f 75 (current-buffer)."cleared".accou
17780 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 nt............................(w
177a0 68 65 6e 20 74 61 72 67 65 74 2d 63 6f 6d 6d 6f 64 69 74 79 20 28 6c 69 73 74 20 22 2d 58 22 20 hen.target-commodity.(list."-X".
177c0 74 61 72 67 65 74 2d 63 6f 6d 6d 6f 64 69 74 79 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 target-commodity))).............
177e0 20 20 20 20 20 20 20 20 28 69 66 20 28 3e 20 28 62 75 66 66 65 72 2d 73 69 7a 65 29 20 30 29 0a ........(if.(>.(buffer-size).0).
17800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d ........................(buffer-
17820 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 28 70 6f 69 6e 74 2d 6d substring-no-properties.(point-m
17840 69 6e 29 20 28 31 2d 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 in).(1-.(point-max)))...........
17860 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 61 63 63 6f 75 6e 74 20 22 20 69 73 ............(concat.account.".is
17880 20 65 6d 70 74 79 2e 22 29 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 62 61 6c 61 6e 63 65 0a .empty."))))).....(when.balance.
178a0 20 20 20 20 20 20 28 64 69 73 70 6c 61 79 2d 6d 65 73 73 61 67 65 2d 6f 72 2d 62 75 66 66 65 72 ......(display-message-or-buffer
178c0 20 62 61 6c 61 6e 63 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 64 69 73 70 .balance))))..(defun.ledger-disp
178e0 6c 61 79 2d 6c 65 64 67 65 72 2d 73 74 61 74 73 20 28 29 0a 20 20 22 44 69 73 70 6c 61 79 20 73 lay-ledger-stats.()..."Display.s
17900 6f 6d 65 20 73 75 6d 6d 61 72 79 20 73 74 61 74 69 73 74 69 63 73 20 61 62 6f 75 74 20 74 68 65 ome.summary.statistics.about.the
17920 20 63 75 72 72 65 6e 74 20 6c 65 64 67 65 72 20 66 69 6c 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 .current.ledger.file."...(intera
17940 63 74 69 76 65 29 0a 20 20 28 6c 65 74 2a 20 28 28 62 75 66 66 65 72 20 28 66 69 6e 64 2d 66 69 ctive)...(let*.((buffer.(find-fi
17960 6c 65 2d 6e 6f 73 65 6c 65 63 74 20 28 6c 65 64 67 65 72 2d 6d 61 73 74 65 72 2d 66 69 6c 65 29 le-noselect.(ledger-master-file)
17980 29 29 0a 20 20 20 20 20 20 20 20 20 28 62 61 6c 61 6e 63 65 20 28 77 69 74 68 2d 74 65 6d 70 2d ))..........(balance.(with-temp-
179a0 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 buffer.....................(ledg
179c0 65 72 2d 65 78 65 63 2d 6c 65 64 67 65 72 20 62 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 er-exec-ledger.buffer.(current-b
179e0 75 66 66 65 72 29 20 22 73 74 61 74 73 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 uffer)."stats").................
17a00 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 ....(buffer-substring-no-propert
17a20 69 65 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 31 2d 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 ies.(point-min).(1-.(point-max))
17a40 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 62 61 6c 61 6e 63 65 0a 20 20 20 20 20 20 28 6d 65 )))).....(when.balance.......(me
17a60 73 73 61 67 65 20 62 61 6c 61 6e 63 65 29 29 29 29 0a 0a 28 64 65 66 76 61 72 20 6c 65 64 67 65 ssage.balance))))..(defvar.ledge
17a80 72 2d 6d 6f 64 65 2d 61 62 62 72 65 76 2d 74 61 62 6c 65 29 0a 0a 28 64 65 66 76 61 72 20 6c 65 r-mode-abbrev-table)..(defvar.le
17aa0 64 67 65 72 2d 64 61 74 65 2d 73 74 72 69 6e 67 2d 74 6f 64 61 79 20 28 6c 65 64 67 65 72 2d 66 dger-date-string-today.(ledger-f
17ac0 6f 72 6d 61 74 2d 64 61 74 65 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 6d 6f ormat-date))..(defun.ledger-remo
17ae0 76 65 2d 65 66 66 65 63 74 69 76 65 2d 64 61 74 65 20 28 29 0a 20 20 22 52 65 6d 6f 76 65 20 74 ve-effective-date.()..."Remove.t
17b00 68 65 20 65 66 66 65 63 74 69 76 65 20 64 61 74 65 20 66 72 6f 6d 20 61 20 74 72 61 6e 73 61 63 he.effective.date.from.a.transac
17b20 74 69 6f 6e 20 6f 72 20 70 6f 73 74 69 6e 67 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 tion.or.posting."...(interactive
17b40 29 0a 20 20 28 6c 65 74 20 28 28 63 6f 6e 74 65 78 74 20 28 63 61 72 20 28 6c 65 64 67 65 72 2d )...(let.((context.(car.(ledger-
17b60 63 6f 6e 74 65 78 74 2d 61 74 2d 70 6f 69 6e 74 29 29 29 29 0a 20 20 20 20 28 73 61 76 65 2d 65 context-at-point)))).....(save-e
17b80 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 73 61 76 65 2d 72 65 73 74 72 69 63 74 69 6f 6e xcursion.......(save-restriction
17ba0 0a 20 20 20 20 20 20 20 20 28 6e 61 72 72 6f 77 2d 74 6f 2d 72 65 67 69 6f 6e 20 28 6c 69 6e 65 .........(narrow-to-region.(line
17bc0 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 -beginning-position).(line-end-p
17be0 6f 73 69 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d osition)).........(beginning-of-
17c00 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 65 71 20 27 78 61 63 74 20 63 line).........(cond.((eq.'xact.c
17c20 6f 6e 74 65 78 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 2d 73 65 61 72 63 ontext)................(re-searc
17c40 68 2d 66 6f 72 77 61 72 64 20 6c 65 64 67 65 72 2d 69 73 6f 2d 64 61 74 65 2d 72 65 67 65 78 70 h-forward.ledger-iso-date-regexp
17c60 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 3d 20 28 63 68 61 72 2d )................(when.(=.(char-
17c80 61 66 74 65 72 29 20 3f 3d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 after).?=)..................(let
17ca0 20 28 28 65 71 2d 70 6f 73 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .((eq-pos.(point))).............
17cc0 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 .......(delete-region...........
17ce0 20 20 20 20 20 20 20 20 20 20 65 71 2d 70 6f 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..........eq-pos................
17d00 20 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 6c 65 64 67 65 72 2d 69 .....(re-search-forward.ledger-i
17d20 73 6f 2d 64 61 74 65 2d 72 65 67 65 78 70 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 so-date-regexp))))).............
17d40 20 20 28 28 65 71 20 27 61 63 63 74 2d 74 72 61 6e 73 61 63 74 69 6f 6e 20 63 6f 6e 74 65 78 74 ..((eq.'acct-transaction.context
17d60 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4d 61 74 63 68 20 22 3b 20 5b 3d 64 )................;;.Match.";.[=d
17d80 61 74 65 5d 22 20 26 20 64 65 6c 65 74 65 20 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 ate]".&.delete.string...........
17da0 20 20 20 20 20 28 77 68 65 6e 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 0a 20 20 .....(when.(re-search-forward...
17dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 6c 65 64 67 ....................(concat.ledg
17de0 65 72 2d 63 6f 6d 6d 65 6e 74 2d 72 65 67 65 78 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 er-comment-regex................
17e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 5b 3d 22 20 6c 65 64 67 65 72 2d 69 73 6f ..............."\\[=".ledger-iso
17e20 2d 64 61 74 65 2d 72 65 67 65 78 70 20 22 5c 5c 5d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 -date-regexp."\\]").............
17e40 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 27 6e 6f 65 72 72 29 0a 20 20 20 20 20 20 20 20 20 20 ..........nil.'noerr)...........
17e60 20 20 20 20 20 20 20 28 72 65 70 6c 61 63 65 2d 6d 61 74 63 68 20 22 22 29 29 29 29 29 29 29 29 .......(replace-match.""))))))))
17e80 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 69 6e 73 65 72 74 2d 65 66 66 65 63 74 69 76 65 ..(defun.ledger-insert-effective
17ea0 2d 64 61 74 65 20 28 26 6f 70 74 69 6f 6e 61 6c 20 64 61 74 65 29 0a 20 20 22 49 6e 73 65 72 74 -date.(&optional.date)..."Insert
17ec0 20 65 66 66 65 63 74 69 76 65 20 64 61 74 65 20 60 44 41 54 45 27 20 74 6f 20 74 68 65 20 74 72 .effective.date.`DATE'.to.the.tr
17ee0 61 6e 73 61 63 74 69 6f 6e 20 6f 72 20 70 6f 73 74 69 6e 67 2e 0a 0a 49 66 20 60 44 41 54 45 27 ansaction.or.posting...If.`DATE'
17f00 20 69 73 20 6e 69 6c 2c 20 70 72 6f 6d 70 74 20 74 68 65 20 75 73 65 72 20 61 20 64 61 74 65 2e .is.nil,.prompt.the.user.a.date.
17f20 0a 0a 52 65 70 6c 61 63 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 65 66 66 65 63 74 69 76 65 20 ..Replace.the.current.effective.
17f40 64 61 74 65 20 69 66 20 74 68 65 72 65 27 73 20 6f 6e 65 20 69 6e 20 74 68 65 20 73 61 6d 65 0a date.if.there's.one.in.the.same.
17f60 6c 69 6e 65 2e 0a 0a 57 69 74 68 20 61 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 2c 20 72 line...With.a.prefix.argument,.r
17f80 65 6d 6f 76 65 20 74 68 65 20 65 66 66 65 63 74 69 76 65 20 64 61 74 65 2e 22 0a 20 20 28 69 6e emove.the.effective.date."...(in
17fa0 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 69 66 20 28 61 6e 64 20 28 6c 69 73 74 70 20 63 75 72 teractive)...(if.(and.(listp.cur
17fc0 72 65 6e 74 2d 70 72 65 66 69 78 2d 61 72 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 3d 20 34 rent-prefix-arg)............(=.4
17fe0 20 28 70 72 65 66 69 78 2d 6e 75 6d 65 72 69 63 2d 76 61 6c 75 65 20 63 75 72 72 65 6e 74 2d 70 .(prefix-numeric-value.current-p
18000 72 65 66 69 78 2d 61 72 67 29 29 29 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 6d 6f 76 refix-arg))).......(ledger-remov
18020 65 2d 65 66 66 65 63 74 69 76 65 2d 64 61 74 65 29 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 63 6f e-effective-date).....(let*.((co
18040 6e 74 65 78 74 20 28 63 61 72 20 28 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 2d 61 74 2d 70 6f ntext.(car.(ledger-context-at-po
18060 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 64 61 74 65 2d 73 74 72 69 6e 67 20 28 int)))............(date-string.(
18080 6f 72 20 64 61 74 65 20 28 6c 65 64 67 65 72 2d 72 65 61 64 2d 64 61 74 65 20 22 45 66 66 65 63 or.date.(ledger-read-date."Effec
180a0 74 69 76 65 20 64 61 74 65 3a 20 22 29 29 29 29 0a 20 20 20 20 20 20 28 73 61 76 65 2d 72 65 73 tive.date:.")))).......(save-res
180c0 74 72 69 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 6e 61 72 72 6f 77 2d 74 6f 2d 72 65 67 69 triction.........(narrow-to-regi
180e0 6f 6e 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 20 28 6c 69 on.(line-beginning-position).(li
18100 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a ne-end-position)).........(cond.
18120 20 20 20 20 20 20 20 20 20 28 28 65 71 20 27 78 61 63 74 20 63 6f 6e 74 65 78 74 29 0a 20 20 20 .........((eq.'xact.context)....
18140 20 20 20 20 20 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 20 .......(beginning-of-line)......
18160 20 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 6c 65 64 67 65 72 2d 69 .....(re-search-forward.ledger-i
18180 73 6f 2d 64 61 74 65 2d 72 65 67 65 78 70 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 so-date-regexp)...........(when.
181a0 28 3d 20 28 63 68 61 72 2d 61 66 74 65 72 29 20 3f 3d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 (=.(char-after).?=).............
181c0 28 6c 65 64 67 65 72 2d 72 65 6d 6f 76 65 2d 65 66 66 65 63 74 69 76 65 2d 64 61 74 65 29 29 0a (ledger-remove-effective-date)).
181e0 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 3d 22 20 64 61 74 65 2d 73 74 72 69 6e ..........(insert."=".date-strin
18200 67 29 29 0a 20 20 20 20 20 20 20 20 20 28 28 65 71 20 27 61 63 63 74 2d 74 72 61 6e 73 61 63 74 g))..........((eq.'acct-transact
18220 69 6f 6e 20 63 6f 6e 74 65 78 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6e 64 2d 6f 66 2d 6c ion.context)...........(end-of-l
18240 69 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 6d 6f 76 65 2d 65 66 ine)...........(ledger-remove-ef
18260 66 65 63 74 69 76 65 2d 64 61 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 fective-date)...........(insert.
18280 22 20 20 3b 20 5b 3d 22 20 64 61 74 65 2d 73 74 72 69 6e 67 20 22 5d 22 29 29 29 29 29 29 29 0a "..;.[=".date-string."]"))))))).
182a0 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 72 65 6d 6f 76 65 2d 65 78 74 72 61 .(defun.ledger-mode-remove-extra
182c0 2d 6c 69 6e 65 73 20 28 29 0a 20 20 22 47 65 74 20 72 69 64 20 6f 66 20 6d 75 6c 74 69 70 6c 65 -lines.()..."Get.rid.of.multiple
182e0 20 65 6d 70 74 79 20 6c 69 6e 65 73 2e 22 0a 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 .empty.lines."...(goto-char.(poi
18300 6e 74 2d 6d 69 6e 29 29 0a 20 20 28 77 68 69 6c 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 nt-min))...(while.(re-search-for
18320 77 61 72 64 20 22 5c 6e 5c 6e 5c 5c 28 5c 6e 5c 5c 29 2b 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 ward."\n\n\\(\n\\)+".nil.t).....
18340 28 72 65 70 6c 61 63 65 2d 6d 61 74 63 68 20 22 5c 6e 5c 6e 22 29 29 29 0a 0a 28 64 65 66 75 6e (replace-match."\n\n")))..(defun
18360 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 63 6c 65 61 6e 2d 62 75 66 66 65 72 20 28 29 0a 20 20 22 .ledger-mode-clean-buffer.()..."
18380 49 6e 64 65 6e 74 2c 20 72 65 6d 6f 76 65 20 6d 75 6c 74 69 70 6c 65 20 6c 69 6e 65 20 66 65 65 Indent,.remove.multiple.line.fee
183a0 64 73 20 61 6e 64 20 73 6f 72 74 20 74 68 65 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 6e 74 65 ds.and.sort.the.buffer."...(inte
183c0 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 73 74 61 72 74 20 28 70 6f 69 6e 74 2d 6d ractive)...(let.((start.(point-m
183e0 69 6e 2d 6d 61 72 6b 65 72 29 29 0a 20 20 20 20 20 20 20 20 28 65 6e 64 20 28 70 6f 69 6e 74 2d in-marker)).........(end.(point-
18400 6d 61 78 2d 6d 61 72 6b 65 72 29 29 0a 20 20 20 20 20 20 20 20 28 64 69 73 74 61 6e 63 65 2d 69 max-marker)).........(distance-i
18420 6e 2d 78 61 63 74 20 28 2d 20 28 70 6f 69 6e 74 29 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 n-xact.(-.(point).(ledger-naviga
18440 74 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 78 61 63 74 29 29 29 29 0a 20 20 20 20 28 6c 65 te-beginning-of-xact)))).....(le
18460 74 20 28 28 74 61 72 67 65 74 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 28 6c 69 t.((target.(buffer-substring.(li
18480 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 20 28 6c 69 6e 65 2d 65 6e 64 ne-beginning-position).(line-end
184a0 2d 70 6f 73 69 74 69 6f 6e 29 29 29 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 73 -position)))).......(goto-char.s
184c0 74 61 72 74 29 0a 20 20 20 20 20 20 28 75 6e 74 61 62 69 66 79 20 73 74 61 72 74 20 65 6e 64 29 tart).......(untabify.start.end)
184e0 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 73 6f 72 74 2d 62 75 66 66 65 72 29 0a 20 20 20 20 .......(ledger-sort-buffer).....
18500 20 20 28 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 6c 69 67 6e 2d 70 6f 73 74 69 6e 67 73 20 73 74 ..(ledger-post-align-postings.st
18520 61 72 74 20 65 6e 64 29 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 72 65 6d 6f art.end).......(ledger-mode-remo
18540 76 65 2d 65 78 74 72 61 2d 6c 69 6e 65 73 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 ve-extra-lines).......(goto-char
18560 20 73 74 61 72 74 29 0a 20 20 20 20 20 20 28 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 74 61 .start).......(search-forward.ta
18580 72 67 65 74 29 0a 20 20 20 20 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a rget).......(beginning-of-line).
185a0 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 63 68 61 72 20 64 69 73 74 61 6e 63 65 2d 69 6e 2d ......(forward-char.distance-in-
185c0 78 61 63 74 29 29 29 29 0a 0a 28 64 65 66 76 61 72 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 73 79 xact))))..(defvar.ledger-mode-sy
185e0 6e 74 61 78 2d 74 61 62 6c 65 0a 20 20 28 6c 65 74 20 28 28 74 61 62 6c 65 20 28 6d 61 6b 65 2d ntax-table...(let.((table.(make-
18600 73 79 6e 74 61 78 2d 74 61 62 6c 65 20 74 65 78 74 2d 6d 6f 64 65 2d 73 79 6e 74 61 78 2d 74 61 syntax-table.text-mode-syntax-ta
18620 62 6c 65 29 29 29 0a 20 20 20 20 28 6d 6f 64 69 66 79 2d 73 79 6e 74 61 78 2d 65 6e 74 72 79 20 ble))).....(modify-syntax-entry.
18640 3f 5c 3b 20 22 3c 22 20 74 61 62 6c 65 29 0a 20 20 20 20 28 6d 6f 64 69 66 79 2d 73 79 6e 74 61 ?\;."<".table).....(modify-synta
18660 78 2d 65 6e 74 72 79 20 3f 5c 6e 20 22 3e 22 20 74 61 62 6c 65 29 0a 20 20 20 20 74 61 62 6c 65 x-entry.?\n.">".table).....table
18680 29 0a 20 20 22 53 79 6e 74 61 78 20 74 61 62 6c 65 20 69 6e 20 75 73 65 20 69 6e 20 60 6c 65 64 )..."Syntax.table.in.use.in.`led
186a0 67 65 72 2d 6d 6f 64 65 27 20 62 75 66 66 65 72 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 6c 65 ger-mode'.buffers.")..(defvar.le
186c0 64 67 65 72 2d 6d 6f 64 65 2d 6d 61 70 0a 20 20 28 6c 65 74 20 28 28 6d 61 70 20 28 6d 61 6b 65 dger-mode-map...(let.((map.(make
186e0 2d 73 70 61 72 73 65 2d 6b 65 79 6d 61 70 29 29 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 -sparse-keymap))).....(define-ke
18700 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 61 22 29 20 23 27 6c 65 64 67 65 72 2d 61 y.map.(kbd."C-c.C-a").#'ledger-a
18720 64 64 2d 74 72 61 6e 73 61 63 74 69 6f 6e 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 dd-transaction).....(define-key.
18740 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 62 22 29 20 23 27 6c 65 64 67 65 72 2d 70 6f 73 map.(kbd."C-c.C-b").#'ledger-pos
18760 74 2d 65 64 69 74 2d 61 6d 6f 75 6e 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d t-edit-amount).....(define-key.m
18780 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 63 22 29 20 23 27 6c 65 64 67 65 72 2d 74 6f 67 67 ap.(kbd."C-c.C-c").#'ledger-togg
187a0 6c 65 2d 63 75 72 72 65 6e 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 le-current).....(define-key.map.
187c0 28 6b 62 64 20 22 43 2d 63 20 43 2d 64 22 29 20 23 27 6c 65 64 67 65 72 2d 64 65 6c 65 74 65 2d (kbd."C-c.C-d").#'ledger-delete-
187e0 63 75 72 72 65 6e 74 2d 74 72 61 6e 73 61 63 74 69 6f 6e 29 0a 20 20 20 20 28 64 65 66 69 6e 65 current-transaction).....(define
18800 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 65 22 29 20 23 27 6c 65 64 67 65 -key.map.(kbd."C-c.C-e").#'ledge
18820 72 2d 74 6f 67 67 6c 65 2d 63 75 72 72 65 6e 74 2d 74 72 61 6e 73 61 63 74 69 6f 6e 29 0a 20 20 r-toggle-current-transaction)...
18840 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 66 22 ..(define-key.map.(kbd."C-c.C-f"
18860 29 20 23 27 6c 65 64 67 65 72 2d 6f 63 63 75 72 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 ).#'ledger-occur).....(define-ke
18880 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 6b 22 29 20 23 27 6c 65 64 67 65 72 2d 63 y.map.(kbd."C-c.C-k").#'ledger-c
188a0 6f 70 79 2d 74 72 61 6e 73 61 63 74 69 6f 6e 2d 61 74 2d 70 6f 69 6e 74 29 0a 20 20 20 20 28 64 opy-transaction-at-point).....(d
188c0 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 72 22 29 20 23 27 efine-key.map.(kbd."C-c.C-r").#'
188e0 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 ledger-reconcile).....(define-ke
18900 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 73 22 29 20 23 27 6c 65 64 67 65 72 2d 73 y.map.(kbd."C-c.C-s").#'ledger-s
18920 6f 72 74 2d 72 65 67 69 6f 6e 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 ort-region).....(define-key.map.
18940 28 6b 62 64 20 22 43 2d 63 20 43 2d 74 22 29 20 23 27 6c 65 64 67 65 72 2d 69 6e 73 65 72 74 2d (kbd."C-c.C-t").#'ledger-insert-
18960 65 66 66 65 63 74 69 76 65 2d 64 61 74 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 effective-date).....(define-key.
18980 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 75 22 29 20 23 27 6c 65 64 67 65 72 2d 73 63 68 map.(kbd."C-c.C-u").#'ledger-sch
189a0 65 64 75 6c 65 2d 75 70 63 6f 6d 69 6e 67 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 edule-upcoming).....(define-key.
189c0 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 70 22 29 20 23 27 6c 65 64 67 65 72 2d 64 69 73 map.(kbd."C-c.C-p").#'ledger-dis
189e0 70 6c 61 79 2d 62 61 6c 61 6e 63 65 2d 61 74 2d 70 6f 69 6e 74 29 0a 20 20 20 20 28 64 65 66 69 play-balance-at-point).....(defi
18a00 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 6c 22 29 20 23 27 6c 65 64 ne-key.map.(kbd."C-c.C-l").#'led
18a20 67 65 72 2d 64 69 73 70 6c 61 79 2d 6c 65 64 67 65 72 2d 73 74 61 74 73 29 0a 20 20 20 20 28 64 ger-display-ledger-stats).....(d
18a40 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 71 22 29 20 23 27 efine-key.map.(kbd."C-c.C-q").#'
18a60 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 6c 69 67 6e 2d 78 61 63 74 29 0a 0a 20 20 20 20 28 64 65 ledger-post-align-xact)......(de
18a80 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 54 41 42 22 29 20 23 27 6c 65 64 fine-key.map.(kbd."C-TAB").#'led
18aa0 67 65 72 2d 70 6f 73 74 2d 61 6c 69 67 6e 2d 78 61 63 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 ger-post-align-xact).....(define
18ac0 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 54 41 42 22 29 20 23 27 6c 65 64 67 65 -key.map.(kbd."C-c.TAB").#'ledge
18ae0 72 2d 66 75 6c 6c 79 2d 63 6f 6d 70 6c 65 74 65 2d 78 61 63 74 29 0a 20 20 20 20 28 64 65 66 69 r-fully-complete-xact).....(defi
18b00 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 69 22 29 20 23 27 6c 65 64 ne-key.map.(kbd."C-c.C-i").#'led
18b20 67 65 72 2d 66 75 6c 6c 79 2d 63 6f 6d 70 6c 65 74 65 2d 78 61 63 74 29 0a 0a 20 20 20 20 28 64 ger-fully-complete-xact)......(d
18b40 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 6f 20 43 2d 61 22 efine-key.map.(kbd."C-c.C-o.C-a"
18b60 29 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 64 6f 29 0a 20 20 20 20 28 64 65 66 ).#'ledger-report-redo).....(def
18b80 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 6f 20 43 2d 65 22 29 20 ine-key.map.(kbd."C-c.C-o.C-e").
18ba0 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 65 64 69 74 2d 72 65 70 6f 72 74 29 0a 20 20 20 #'ledger-report-edit-report)....
18bc0 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 6f 20 43 .(define-key.map.(kbd."C-c.C-o.C
18be0 2d 67 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 67 6f 74 6f 29 0a 20 20 20 20 28 -g").#'ledger-report-goto).....(
18c00 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 6f 20 43 2d 6b define-key.map.(kbd."C-c.C-o.C-k
18c20 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 71 75 69 74 29 0a 20 20 20 20 28 64 65 ").#'ledger-report-quit).....(de
18c40 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 6f 20 43 2d 72 22 29 fine-key.map.(kbd."C-c.C-o.C-r")
18c60 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 .#'ledger-report).....(define-ke
18c80 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 6f 20 43 2d 73 22 29 20 23 27 6c 65 64 67 y.map.(kbd."C-c.C-o.C-s").#'ledg
18ca0 65 72 2d 72 65 70 6f 72 74 2d 73 61 76 65 29 0a 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 er-report-save)......(define-key
18cc0 20 6d 61 70 20 28 6b 62 64 20 22 4d 2d 70 22 29 20 23 27 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 .map.(kbd."M-p").#'ledger-naviga
18ce0 74 65 2d 70 72 65 76 2d 78 61 63 74 2d 6f 72 2d 64 69 72 65 63 74 69 76 65 29 0a 20 20 20 20 28 te-prev-xact-or-directive).....(
18d00 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 4d 2d 6e 22 29 20 23 27 6c 65 64 define-key.map.(kbd."M-n").#'led
18d20 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 6e 65 78 74 2d 78 61 63 74 2d 6f 72 2d 64 69 72 65 63 74 ger-navigate-next-xact-or-direct
18d40 69 76 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 4d ive).....(define-key.map.(kbd."M
18d60 2d 71 22 29 20 23 27 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 6c 69 67 6e 2d 64 77 69 6d 29 0a 0a -q").#'ledger-post-align-dwim)..
18d80 20 20 20 20 3b 3b 20 52 65 73 65 74 20 74 68 65 20 60 74 65 78 74 2d 6d 6f 64 65 27 20 6f 76 65 ....;;.Reset.the.`text-mode'.ove
18da0 72 72 69 64 65 20 6f 66 20 74 68 69 73 20 73 74 61 6e 64 61 72 64 20 62 69 6e 64 69 6e 67 0a 20 rride.of.this.standard.binding..
18dc0 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 4d 2d 69 22 29 ...(define-key.map.(kbd."C-M-i")
18de0 20 27 63 6f 6d 70 6c 65 74 69 6f 6e 2d 61 74 2d 70 6f 69 6e 74 29 0a 20 20 20 20 6d 61 70 29 0a .'completion-at-point).....map).
18e00 20 20 22 4b 65 79 6d 61 70 20 66 6f 72 20 60 6c 65 64 67 65 72 2d 6d 6f 64 65 27 2e 22 29 0a 0a .."Keymap.for.`ledger-mode'.")..
18e20 28 65 61 73 79 2d 6d 65 6e 75 2d 64 65 66 69 6e 65 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 6d 65 (easy-menu-define.ledger-mode-me
18e40 6e 75 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 6d 61 70 0a 20 20 22 4c 65 64 67 65 72 20 6d 65 6e nu.ledger-mode-map..."Ledger.men
18e60 75 22 0a 20 20 27 28 22 4c 65 64 67 65 72 22 0a 20 20 20 20 5b 22 4e 61 72 72 6f 77 20 74 6f 20 u"...'("Ledger".....["Narrow.to.
18e80 52 45 47 45 58 22 20 6c 65 64 67 65 72 2d 6f 63 63 75 72 5d 0a 20 20 20 20 5b 22 53 68 6f 77 20 REGEX".ledger-occur].....["Show.
18ea0 61 6c 6c 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 22 20 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d 6d all.transactions".ledger-occur-m
18ec0 6f 64 65 20 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d 6d 6f 64 65 5d 0a 20 20 20 20 5b 22 4c 65 64 ode.ledger-occur-mode].....["Led
18ee0 67 65 72 20 53 74 61 74 69 73 74 69 63 73 22 20 6c 65 64 67 65 72 2d 64 69 73 70 6c 61 79 2d 6c ger.Statistics".ledger-display-l
18f00 65 64 67 65 72 2d 73 74 61 74 73 20 6c 65 64 67 65 72 2d 77 6f 72 6b 73 5d 0a 20 20 20 20 22 2d edger-stats.ledger-works]....."-
18f20 2d 2d 22 0a 20 20 20 20 5b 22 53 68 6f 77 20 75 70 63 6f 6d 69 6e 67 20 74 72 61 6e 73 61 63 74 --".....["Show.upcoming.transact
18f40 69 6f 6e 73 22 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 75 70 63 6f 6d 69 6e 67 5d 0a ions".ledger-schedule-upcoming].
18f60 20 20 20 20 5b 22 41 64 64 20 54 72 61 6e 73 61 63 74 69 6f 6e 20 28 6c 65 64 67 65 72 20 78 61 ....["Add.Transaction.(ledger.xa
18f80 63 74 29 22 20 6c 65 64 67 65 72 2d 61 64 64 2d 74 72 61 6e 73 61 63 74 69 6f 6e 20 6c 65 64 67 ct)".ledger-add-transaction.ledg
18fa0 65 72 2d 77 6f 72 6b 73 5d 0a 20 20 20 20 5b 22 43 6f 6d 70 6c 65 74 65 20 54 72 61 6e 73 61 63 er-works].....["Complete.Transac
18fc0 74 69 6f 6e 22 20 6c 65 64 67 65 72 2d 66 75 6c 6c 79 2d 63 6f 6d 70 6c 65 74 65 2d 78 61 63 74 tion".ledger-fully-complete-xact
18fe0 5d 0a 20 20 20 20 5b 22 44 65 6c 65 74 65 20 54 72 61 6e 73 61 63 74 69 6f 6e 22 20 6c 65 64 67 ].....["Delete.Transaction".ledg
19000 65 72 2d 64 65 6c 65 74 65 2d 63 75 72 72 65 6e 74 2d 74 72 61 6e 73 61 63 74 69 6f 6e 5d 0a 20 er-delete-current-transaction]..
19020 20 20 20 22 2d 2d 2d 22 0a 20 20 20 20 5b 22 43 61 6c 63 20 6f 6e 20 41 6d 6f 75 6e 74 22 20 6c ..."---".....["Calc.on.Amount".l
19040 65 64 67 65 72 2d 70 6f 73 74 2d 65 64 69 74 2d 61 6d 6f 75 6e 74 5d 0a 20 20 20 20 22 2d 2d 2d edger-post-edit-amount]....."---
19060 22 0a 20 20 20 20 5b 22 43 68 65 63 6b 20 42 61 6c 61 6e 63 65 22 20 6c 65 64 67 65 72 2d 64 69 ".....["Check.Balance".ledger-di
19080 73 70 6c 61 79 2d 62 61 6c 61 6e 63 65 2d 61 74 2d 70 6f 69 6e 74 20 6c 65 64 67 65 72 2d 77 6f splay-balance-at-point.ledger-wo
190a0 72 6b 73 5d 0a 20 20 20 20 5b 22 52 65 63 6f 6e 63 69 6c 65 20 41 63 63 6f 75 6e 74 22 20 6c 65 rks].....["Reconcile.Account".le
190c0 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 20 6c 65 64 67 65 72 2d 77 6f 72 6b 73 5d 0a 20 20 20 dger-reconcile.ledger-works]....
190e0 20 22 2d 2d 2d 22 0a 20 20 20 20 5b 22 54 6f 67 67 6c 65 20 43 75 72 72 65 6e 74 20 54 72 61 6e ."---".....["Toggle.Current.Tran
19100 73 61 63 74 69 6f 6e 22 20 6c 65 64 67 65 72 2d 74 6f 67 67 6c 65 2d 63 75 72 72 65 6e 74 2d 74 saction".ledger-toggle-current-t
19120 72 61 6e 73 61 63 74 69 6f 6e 5d 0a 20 20 20 20 5b 22 54 6f 67 67 6c 65 20 43 75 72 72 65 6e 74 ransaction].....["Toggle.Current
19140 20 50 6f 73 74 69 6e 67 22 20 6c 65 64 67 65 72 2d 74 6f 67 67 6c 65 2d 63 75 72 72 65 6e 74 5d .Posting".ledger-toggle-current]
19160 0a 20 20 20 20 5b 22 43 6f 70 79 20 54 72 61 6e 73 20 61 74 20 50 6f 69 6e 74 22 20 6c 65 64 67 .....["Copy.Trans.at.Point".ledg
19180 65 72 2d 63 6f 70 79 2d 74 72 61 6e 73 61 63 74 69 6f 6e 2d 61 74 2d 70 6f 69 6e 74 5d 0a 20 20 er-copy-transaction-at-point]...
191a0 20 20 22 2d 2d 2d 22 0a 20 20 20 20 5b 22 43 6c 65 61 6e 2d 75 70 20 42 75 66 66 65 72 22 20 6c .."---".....["Clean-up.Buffer".l
191c0 65 64 67 65 72 2d 6d 6f 64 65 2d 63 6c 65 61 6e 2d 62 75 66 66 65 72 5d 0a 20 20 20 20 5b 22 43 edger-mode-clean-buffer].....["C
191e0 68 65 63 6b 20 42 75 66 66 65 72 22 20 6c 65 64 67 65 72 2d 63 68 65 63 6b 2d 62 75 66 66 65 72 heck.Buffer".ledger-check-buffer
19200 20 6c 65 64 67 65 72 2d 77 6f 72 6b 73 5d 0a 20 20 20 20 5b 22 41 6c 69 67 6e 20 52 65 67 69 6f .ledger-works].....["Align.Regio
19220 6e 22 20 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 6c 69 67 6e 2d 70 6f 73 74 69 6e 67 73 20 6d 61 n".ledger-post-align-postings.ma
19240 72 6b 2d 61 63 74 69 76 65 5d 0a 20 20 20 20 5b 22 41 6c 69 67 6e 20 58 61 63 74 22 20 6c 65 64 rk-active].....["Align.Xact".led
19260 67 65 72 2d 70 6f 73 74 2d 61 6c 69 67 6e 2d 78 61 63 74 5d 0a 20 20 20 20 5b 22 53 6f 72 74 20 ger-post-align-xact].....["Sort.
19280 52 65 67 69 6f 6e 22 20 6c 65 64 67 65 72 2d 73 6f 72 74 2d 72 65 67 69 6f 6e 20 6d 61 72 6b 2d Region".ledger-sort-region.mark-
192a0 61 63 74 69 76 65 5d 0a 20 20 20 20 5b 22 53 6f 72 74 20 42 75 66 66 65 72 22 20 6c 65 64 67 65 active].....["Sort.Buffer".ledge
192c0 72 2d 73 6f 72 74 2d 62 75 66 66 65 72 5d 0a 20 20 20 20 5b 22 4d 61 72 6b 20 53 6f 72 74 20 42 r-sort-buffer].....["Mark.Sort.B
192e0 65 67 69 6e 6e 69 6e 67 22 20 6c 65 64 67 65 72 2d 73 6f 72 74 2d 69 6e 73 65 72 74 2d 73 74 61 eginning".ledger-sort-insert-sta
19300 72 74 2d 6d 61 72 6b 5d 0a 20 20 20 20 5b 22 4d 61 72 6b 20 53 6f 72 74 20 45 6e 64 22 20 6c 65 rt-mark].....["Mark.Sort.End".le
19320 64 67 65 72 2d 73 6f 72 74 2d 69 6e 73 65 72 74 2d 65 6e 64 2d 6d 61 72 6b 5d 0a 20 20 20 20 5b dger-sort-insert-end-mark].....[
19340 22 53 65 74 20 65 66 66 65 63 74 69 76 65 20 64 61 74 65 22 20 6c 65 64 67 65 72 2d 69 6e 73 65 "Set.effective.date".ledger-inse
19360 72 74 2d 65 66 66 65 63 74 69 76 65 2d 64 61 74 65 5d 0a 20 20 20 20 22 2d 2d 2d 22 0a 20 20 20 rt-effective-date]....."---"....
19380 20 5b 22 43 75 73 74 6f 6d 69 7a 65 20 4c 65 64 67 65 72 20 4d 6f 64 65 22 20 28 6c 61 6d 62 64 .["Customize.Ledger.Mode".(lambd
193a0 61 20 28 29 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 20 28 63 75 73 74 6f 6d 69 7a 65 2d 67 72 a.().(interactive).(customize-gr
193c0 6f 75 70 20 27 6c 65 64 67 65 72 29 29 5d 0a 20 20 20 20 22 2d 2d 2d 22 0a 20 20 20 20 5b 22 52 oup.'ledger))]....."---".....["R
193e0 75 6e 20 52 65 70 6f 72 74 22 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 20 6c 65 64 67 65 72 2d un.Report".ledger-report.ledger-
19400 77 6f 72 6b 73 5d 0a 20 20 20 20 5b 22 47 6f 74 6f 20 52 65 70 6f 72 74 22 20 6c 65 64 67 65 72 works].....["Goto.Report".ledger
19420 2d 72 65 70 6f 72 74 2d 67 6f 74 6f 20 6c 65 64 67 65 72 2d 77 6f 72 6b 73 5d 0a 20 20 20 20 5b -report-goto.ledger-works].....[
19440 22 52 65 2d 72 75 6e 20 52 65 70 6f 72 74 22 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 "Re-run.Report".ledger-report-re
19460 64 6f 20 6c 65 64 67 65 72 2d 77 6f 72 6b 73 5d 0a 20 20 20 20 5b 22 53 61 76 65 20 52 65 70 6f do.ledger-works].....["Save.Repo
19480 72 74 22 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 73 61 76 65 20 6c 65 64 67 65 72 2d 77 6f rt".ledger-report-save.ledger-wo
194a0 72 6b 73 5d 0a 20 20 20 20 5b 22 45 64 69 74 20 52 65 70 6f 72 74 22 20 6c 65 64 67 65 72 2d 72 rks].....["Edit.Report".ledger-r
194c0 65 70 6f 72 74 2d 65 64 69 74 2d 72 65 70 6f 72 74 20 6c 65 64 67 65 72 2d 77 6f 72 6b 73 5d 0a eport-edit-report.ledger-works].
194e0 20 20 20 20 5b 22 51 75 69 74 20 52 65 70 6f 72 74 22 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 ....["Quit.Report".ledger-report
19500 2d 71 75 69 74 20 6c 65 64 67 65 72 2d 77 6f 72 6b 73 5d 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 -quit.ledger-works]))..;;;###aut
19520 6f 6c 6f 61 64 0a 28 64 65 66 69 6e 65 2d 64 65 72 69 76 65 64 2d 6d 6f 64 65 20 6c 65 64 67 65 oload.(define-derived-mode.ledge
19540 72 2d 6d 6f 64 65 20 74 65 78 74 2d 6d 6f 64 65 20 22 4c 65 64 67 65 72 22 0a 20 20 22 41 20 6d r-mode.text-mode."Ledger"..."A.m
19560 6f 64 65 20 66 6f 72 20 65 64 69 74 69 6e 67 20 6c 65 64 67 65 72 20 64 61 74 61 20 66 69 6c 65 ode.for.editing.ledger.data.file
19580 73 2e 22 0a 20 20 28 6c 65 64 67 65 72 2d 63 68 65 63 6b 2d 76 65 72 73 69 6f 6e 29 0a 20 20 28 s."...(ledger-check-version)...(
195a0 73 65 74 71 20 66 6f 6e 74 2d 6c 6f 63 6b 2d 64 65 66 61 75 6c 74 73 0a 20 20 20 20 20 20 20 20 setq.font-lock-defaults.........
195c0 27 28 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 6c 6f 63 6b 2d 6b 65 79 77 6f 72 64 73 20 74 20 6e 69 '(ledger-font-lock-keywords.t.ni
195e0 6c 20 6e 69 6c 20 6e 69 6c 29 29 0a 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 66 6f 6e 74 2d 6c 6f l.nil.nil))...(add-hook.'font-lo
19600 63 6b 2d 65 78 74 65 6e 64 2d 72 65 67 69 6f 6e 2d 66 75 6e 63 74 69 6f 6e 73 20 27 6c 65 64 67 ck-extend-region-functions.'ledg
19620 65 72 2d 66 6f 6e 74 69 66 79 2d 65 78 74 65 6e 64 2d 72 65 67 69 6f 6e 29 0a 20 20 28 61 64 64 er-fontify-extend-region)...(add
19640 2d 68 6f 6f 6b 20 27 63 6f 6d 70 6c 65 74 69 6f 6e 2d 61 74 2d 70 6f 69 6e 74 2d 66 75 6e 63 74 -hook.'completion-at-point-funct
19660 69 6f 6e 73 20 23 27 6c 65 64 67 65 72 2d 63 6f 6d 70 6c 65 74 65 2d 61 74 2d 70 6f 69 6e 74 20 ions.#'ledger-complete-at-point.
19680 6e 69 6c 20 74 29 0a 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 61 66 74 65 72 2d 73 61 76 65 2d 68 nil.t)...(add-hook.'after-save-h
196a0 6f 6f 6b 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 64 6f 20 6e 69 6c 20 74 29 0a 0a ook.'ledger-report-redo.nil.t)..
196c0 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 70 6f 73 74 2d 63 6f 6d 6d 61 6e 64 2d 68 6f 6f 6b 20 27 ..(add-hook.'post-command-hook.'
196e0 6c 65 64 67 65 72 2d 68 69 67 68 6c 69 67 68 74 2d 78 61 63 74 2d 75 6e 64 65 72 2d 70 6f 69 6e ledger-highlight-xact-under-poin
19700 74 20 6e 69 6c 20 74 29 0a 0a 20 20 28 6c 65 64 67 65 72 2d 69 6e 69 74 2d 6c 6f 61 64 2d 69 6e t.nil.t)....(ledger-init-load-in
19720 69 74 2d 66 69 6c 65 29 0a 20 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 63 6f 6d 6d 65 6e 74 2d 73 it-file)...(setq-local.comment-s
19740 74 61 72 74 20 22 3b 22 29 0a 20 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 69 6e 64 65 6e 74 2d 6c tart.";")...(setq-local.indent-l
19760 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 20 23 27 6c 65 64 67 65 72 2d 69 6e 64 65 6e 74 2d 6c 69 6e ine-function.#'ledger-indent-lin
19780 65 29 0a 20 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 69 6e 64 65 6e 74 2d 72 65 67 69 6f 6e 2d 66 e)...(setq-local.indent-region-f
197a0 75 6e 63 74 69 6f 6e 20 27 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 6c 69 67 6e 2d 70 6f 73 74 69 unction.'ledger-post-align-posti
197c0 6e 67 73 29 0a 20 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d ngs)...(setq-local.beginning-of-
197e0 64 65 66 75 6e 2d 66 75 6e 63 74 69 6f 6e 20 23 27 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 defun-function.#'ledger-navigate
19800 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 78 61 63 74 29 0a 20 20 28 73 65 74 71 2d 6c 6f 63 61 -beginning-of-xact)...(setq-loca
19820 6c 20 65 6e 64 2d 6f 66 2d 64 65 66 75 6e 2d 66 75 6e 63 74 69 6f 6e 20 23 27 6c 65 64 67 65 72 l.end-of-defun-function.#'ledger
19840 2d 6e 61 76 69 67 61 74 65 2d 65 6e 64 2d 6f 66 2d 78 61 63 74 29 29 0a 0a 3b 3b 3b 23 23 23 61 -navigate-end-of-xact))..;;;###a
19860 75 74 6f 6c 6f 61 64 0a 28 61 64 64 2d 74 6f 2d 6c 69 73 74 20 27 61 75 74 6f 2d 6d 6f 64 65 2d utoload.(add-to-list.'auto-mode-
19880 61 6c 69 73 74 20 27 28 22 5c 5c 2e 6c 65 64 67 65 72 5c 5c 27 22 20 2e 20 6c 65 64 67 65 72 2d alist.'("\\.ledger\\'"...ledger-
198a0 6d 6f 64 65 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 6c 65 64 67 65 72 2d 6d 6f 64 65 29 0a 0a mode))..(provide.'ledger-mode)..
198c0 3b 3b 3b 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 ;;;.ledger-mode.el.ends.here....
198e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
199a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
199c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
199e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19a00 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 33 32 36 2e 32 30 30 32 2f 6c 65 64 67 65 72 ledger-mode-20240326.2002/ledger
19a20 2d 6d 6f 64 65 2e 69 6e 66 6f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -mode.info......................
19a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19a60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
19a80 30 32 30 36 35 31 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 32 33 32 00 20 30 00 00 00 0206512.00000000000.016232..0...
19aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19b00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
19b20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
19b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
19c00 54 68 69 73 20 69 73 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 69 6e 66 6f 2c 20 70 72 6f 64 75 63 This.is.ledger-mode.info,.produc
19c20 65 64 20 62 79 20 6d 61 6b 65 69 6e 66 6f 20 76 65 72 73 69 6f 6e 20 36 2e 37 20 66 72 6f 6d 0a ed.by.makeinfo.version.6.7.from.
19c40 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 74 65 78 69 2e 0a 0a 43 6f 70 79 72 69 67 68 74 20 c2 a9 20 ledger-mode.texi...Copyright....
19c60 32 30 31 33 2c 20 43 72 61 69 67 20 45 61 72 6c 73 2e 20 20 41 6c 6c 20 72 69 67 68 74 73 20 72 2013,.Craig.Earls...All.rights.r
19c80 65 73 65 72 76 65 64 2e 0a 0a 20 20 20 52 65 64 69 73 74 72 69 62 75 74 69 6f 6e 20 61 6e 64 20 eserved......Redistribution.and.
19ca0 75 73 65 20 69 6e 20 73 6f 75 72 63 65 20 61 6e 64 20 62 69 6e 61 72 79 20 66 6f 72 6d 73 2c 20 use.in.source.and.binary.forms,.
19cc0 77 69 74 68 20 6f 72 20 77 69 74 68 6f 75 74 0a 6d 6f 64 69 66 69 63 61 74 69 6f 6e 2c 20 61 72 with.or.without.modification,.ar
19ce0 65 20 70 65 72 6d 69 74 74 65 64 20 70 72 6f 76 69 64 65 64 20 74 68 61 74 20 74 68 65 20 66 6f e.permitted.provided.that.the.fo
19d00 6c 6c 6f 77 69 6e 67 20 63 6f 6e 64 69 74 69 6f 6e 73 20 61 72 65 0a 6d 65 74 3a 0a 0a 20 20 20 llowing.conditions.are.met:.....
19d20 e2 80 a2 20 52 65 64 69 73 74 72 69 62 75 74 69 6f 6e 73 20 6f 66 20 73 6f 75 72 63 65 20 63 6f ....Redistributions.of.source.co
19d40 64 65 20 6d 75 73 74 20 72 65 74 61 69 6e 20 74 68 65 20 61 62 6f 76 65 20 63 6f 70 79 72 69 67 de.must.retain.the.above.copyrig
19d60 68 74 0a 20 20 20 20 20 6e 6f 74 69 63 65 2c 20 74 68 69 73 20 6c 69 73 74 20 6f 66 20 63 6f 6e ht......notice,.this.list.of.con
19d80 64 69 74 69 6f 6e 73 20 61 6e 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 64 69 73 63 6c 61 ditions.and.the.following.discla
19da0 69 6d 65 72 2e 0a 0a 20 20 20 e2 80 a2 20 52 65 64 69 73 74 72 69 62 75 74 69 6f 6e 73 20 69 6e imer..........Redistributions.in
19dc0 20 62 69 6e 61 72 79 20 66 6f 72 6d 20 6d 75 73 74 20 72 65 70 72 6f 64 75 63 65 20 74 68 65 20 .binary.form.must.reproduce.the.
19de0 61 62 6f 76 65 20 63 6f 70 79 72 69 67 68 74 0a 20 20 20 20 20 6e 6f 74 69 63 65 2c 20 74 68 69 above.copyright......notice,.thi
19e00 73 20 6c 69 73 74 20 6f 66 20 63 6f 6e 64 69 74 69 6f 6e 73 20 61 6e 64 20 74 68 65 20 66 6f 6c s.list.of.conditions.and.the.fol
19e20 6c 6f 77 69 6e 67 20 64 69 73 63 6c 61 69 6d 65 72 20 69 6e 20 74 68 65 0a 20 20 20 20 20 64 6f lowing.disclaimer.in.the......do
19e40 63 75 6d 65 6e 74 61 74 69 6f 6e 20 61 6e 64 2f 6f 72 20 6f 74 68 65 72 20 6d 61 74 65 72 69 61 cumentation.and/or.other.materia
19e60 6c 73 20 70 72 6f 76 69 64 65 64 20 77 69 74 68 20 74 68 65 0a 20 20 20 20 20 64 69 73 74 72 69 ls.provided.with.the......distri
19e80 62 75 74 69 6f 6e 2e 0a 0a 20 20 20 e2 80 a2 20 4e 65 69 74 68 65 72 20 74 68 65 20 6e 61 6d 65 bution..........Neither.the.name
19ea0 20 6f 66 20 4e 65 77 20 41 72 74 69 73 61 6e 73 20 4c 4c 43 20 6e 6f 72 20 74 68 65 20 6e 61 6d .of.New.Artisans.LLC.nor.the.nam
19ec0 65 73 20 6f 66 20 69 74 73 0a 20 20 20 20 20 63 6f 6e 74 72 69 62 75 74 6f 72 73 20 6d 61 79 20 es.of.its......contributors.may.
19ee0 62 65 20 75 73 65 64 20 74 6f 20 65 6e 64 6f 72 73 65 20 6f 72 20 70 72 6f 6d 6f 74 65 20 70 72 be.used.to.endorse.or.promote.pr
19f00 6f 64 75 63 74 73 20 64 65 72 69 76 65 64 0a 20 20 20 20 20 66 72 6f 6d 20 74 68 69 73 20 73 6f oducts.derived......from.this.so
19f20 66 74 77 61 72 65 20 77 69 74 68 6f 75 74 20 73 70 65 63 69 66 69 63 20 70 72 69 6f 72 20 77 72 ftware.without.specific.prior.wr
19f40 69 74 74 65 6e 20 70 65 72 6d 69 73 73 69 6f 6e 2e 0a 0a 20 20 20 54 48 49 53 20 53 4f 46 54 57 itten.permission......THIS.SOFTW
19f60 41 52 45 20 49 53 20 50 52 4f 56 49 44 45 44 20 42 59 20 54 48 45 20 43 4f 50 59 52 49 47 48 54 ARE.IS.PROVIDED.BY.THE.COPYRIGHT
19f80 20 48 4f 4c 44 45 52 53 20 41 4e 44 20 43 4f 4e 54 52 49 42 55 54 4f 52 53 0a e2 80 9c 41 53 20 .HOLDERS.AND.CONTRIBUTORS....AS.
19fa0 49 53 e2 80 9d 20 41 4e 44 20 41 4e 59 20 45 58 50 52 45 53 53 20 4f 52 20 49 4d 50 4c 49 45 44 IS....AND.ANY.EXPRESS.OR.IMPLIED
19fc0 20 57 41 52 52 41 4e 54 49 45 53 2c 20 49 4e 43 4c 55 44 49 4e 47 2c 20 42 55 54 20 4e 4f 54 0a .WARRANTIES,.INCLUDING,.BUT.NOT.
19fe0 4c 49 4d 49 54 45 44 20 54 4f 2c 20 54 48 45 20 49 4d 50 4c 49 45 44 20 57 41 52 52 41 4e 54 49 LIMITED.TO,.THE.IMPLIED.WARRANTI
1a000 45 53 20 4f 46 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 41 4e 44 20 46 49 54 4e 45 53 ES.OF.MERCHANTABILITY.AND.FITNES
1a020 53 20 46 4f 52 20 41 0a 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 20 41 52 45 20 44 S.FOR.A.PARTICULAR.PURPOSE.ARE.D
1a040 49 53 43 4c 41 49 4d 45 44 2e 20 49 4e 20 4e 4f 20 45 56 45 4e 54 20 53 48 41 4c 4c 20 54 48 45 ISCLAIMED..IN.NO.EVENT.SHALL.THE
1a060 20 43 4f 50 59 52 49 47 48 54 20 4f 57 4e 45 52 0a 4f 52 20 43 4f 4e 54 52 49 42 55 54 4f 52 53 .COPYRIGHT.OWNER.OR.CONTRIBUTORS
1a080 20 42 45 20 4c 49 41 42 4c 45 20 46 4f 52 20 41 4e 59 20 44 49 52 45 43 54 2c 20 49 4e 44 49 52 .BE.LIABLE.FOR.ANY.DIRECT,.INDIR
1a0a0 45 43 54 2c 20 49 4e 43 49 44 45 4e 54 41 4c 2c 20 53 50 45 43 49 41 4c 2c 0a 45 58 45 4d 50 4c ECT,.INCIDENTAL,.SPECIAL,.EXEMPL
1a0c0 41 52 59 2c 20 4f 52 20 43 4f 4e 53 45 51 55 45 4e 54 49 41 4c 20 44 41 4d 41 47 45 53 20 28 49 ARY,.OR.CONSEQUENTIAL.DAMAGES.(I
1a0e0 4e 43 4c 55 44 49 4e 47 2c 20 42 55 54 20 4e 4f 54 20 4c 49 4d 49 54 45 44 20 54 4f 2c 0a 50 52 NCLUDING,.BUT.NOT.LIMITED.TO,.PR
1a100 4f 43 55 52 45 4d 45 4e 54 20 4f 46 20 53 55 42 53 54 49 54 55 54 45 20 47 4f 4f 44 53 20 4f 52 OCUREMENT.OF.SUBSTITUTE.GOODS.OR
1a120 20 53 45 52 56 49 43 45 53 3b 20 4c 4f 53 53 20 4f 46 20 55 53 45 2c 20 44 41 54 41 2c 20 4f 52 .SERVICES;.LOSS.OF.USE,.DATA,.OR
1a140 0a 50 52 4f 46 49 54 53 3b 20 4f 52 20 42 55 53 49 4e 45 53 53 20 49 4e 54 45 52 52 55 50 54 49 .PROFITS;.OR.BUSINESS.INTERRUPTI
1a160 4f 4e 29 20 48 4f 57 45 56 45 52 20 43 41 55 53 45 44 20 41 4e 44 20 4f 4e 20 41 4e 59 20 54 48 ON).HOWEVER.CAUSED.AND.ON.ANY.TH
1a180 45 4f 52 59 20 4f 46 0a 4c 49 41 42 49 4c 49 54 59 2c 20 57 48 45 54 48 45 52 20 49 4e 20 43 4f EORY.OF.LIABILITY,.WHETHER.IN.CO
1a1a0 4e 54 52 41 43 54 2c 20 53 54 52 49 43 54 20 4c 49 41 42 49 4c 49 54 59 2c 20 4f 52 20 54 4f 52 NTRACT,.STRICT.LIABILITY,.OR.TOR
1a1c0 54 20 28 49 4e 43 4c 55 44 49 4e 47 0a 4e 45 47 4c 49 47 45 4e 43 45 20 4f 52 20 4f 54 48 45 52 T.(INCLUDING.NEGLIGENCE.OR.OTHER
1a1e0 57 49 53 45 29 20 41 52 49 53 49 4e 47 20 49 4e 20 41 4e 59 20 57 41 59 20 4f 55 54 20 4f 46 20 WISE).ARISING.IN.ANY.WAY.OUT.OF.
1a200 54 48 45 20 55 53 45 20 4f 46 20 54 48 49 53 0a 53 4f 46 54 57 41 52 45 2c 20 45 56 45 4e 20 49 THE.USE.OF.THIS.SOFTWARE,.EVEN.I
1a220 46 20 41 44 56 49 53 45 44 20 4f 46 20 54 48 45 20 50 4f 53 53 49 42 49 4c 49 54 59 20 4f 46 20 F.ADVISED.OF.THE.POSSIBILITY.OF.
1a240 53 55 43 48 20 44 41 4d 41 47 45 2e 0a 0a 49 4e 46 4f 2d 44 49 52 2d 53 45 43 54 49 4f 4e 20 45 SUCH.DAMAGE...INFO-DIR-SECTION.E
1a260 6d 61 63 73 0a 53 54 41 52 54 2d 49 4e 46 4f 2d 44 49 52 2d 45 4e 54 52 59 0a 2a 20 4c 65 64 67 macs.START-INFO-DIR-ENTRY.*.Ledg
1a280 65 72 20 4d 6f 64 65 3a 20 28 6c 65 64 67 65 72 2d 6d 6f 64 65 29 2e 20 20 20 20 20 20 20 20 20 er.Mode:.(ledger-mode)..........
1a2a0 20 20 43 6f 6d 6d 61 6e 64 2d 4c 69 6e 65 20 41 63 63 6f 75 6e 74 69 6e 67 0a 45 4e 44 2d 49 4e ..Command-Line.Accounting.END-IN
1a2c0 46 4f 2d 44 49 52 2d 45 4e 54 52 59 0a 0a 1f 0a 46 69 6c 65 3a 20 6c 65 64 67 65 72 2d 6d 6f 64 FO-DIR-ENTRY....File:.ledger-mod
1a2e0 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 54 6f 70 2c 20 20 4e 65 78 74 3a 20 49 6e 74 72 6f e.info,..Node:.Top,..Next:.Intro
1a300 64 75 63 74 69 6f 6e 20 74 6f 20 4c 65 64 67 65 72 2d 6d 6f 64 65 2c 20 20 50 72 65 76 3a 20 28 duction.to.Ledger-mode,..Prev:.(
1a320 64 69 72 29 2c 20 20 55 70 3a 20 28 64 69 72 29 0a 0a 4f 76 65 72 76 69 65 77 0a 2a 2a 2a 2a 2a dir),..Up:.(dir)..Overview.*****
1a340 2a 2a 2a 0a 0a 4c 65 64 67 65 72 20 69 73 20 61 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 61 63 ***..Ledger.is.a.command.line.ac
1a360 63 6f 75 6e 74 69 6e 67 20 74 6f 6f 6c 20 74 68 61 74 20 70 72 6f 76 69 64 65 73 20 64 6f 75 62 counting.tool.that.provides.doub
1a380 6c 65 2d 65 6e 74 72 79 0a 61 63 63 6f 75 6e 74 69 6e 67 20 62 61 73 65 64 20 6f 6e 20 61 20 74 le-entry.accounting.based.on.a.t
1a3a0 65 78 74 20 6a 6f 75 72 6e 61 6c 2e 20 20 49 74 20 70 72 6f 76 69 64 65 73 20 6e 6f 20 62 65 6c ext.journal...It.provides.no.bel
1a3c0 6c 73 20 6f 72 20 77 68 69 73 74 6c 65 73 2c 0a 61 6e 64 20 72 65 74 75 72 6e 73 20 74 68 65 20 ls.or.whistles,.and.returns.the.
1a3e0 75 73 65 72 20 74 6f 20 74 68 65 20 64 61 79 73 20 62 65 66 6f 72 65 20 75 73 65 72 20 69 6e 74 user.to.the.days.before.user.int
1a400 65 72 66 61 63 65 73 20 77 65 72 65 20 65 76 65 6e 20 61 0a 74 77 69 6e 6b 6c 69 6e 67 20 69 6e erfaces.were.even.a.twinkling.in
1a420 20 74 68 65 69 72 20 66 61 74 68 65 72 e2 80 99 73 20 43 52 54 2e 0a 0a 20 20 20 4c 65 64 67 65 .their.father...s.CRT......Ledge
1a440 72 2d 6d 6f 64 65 20 61 73 73 69 73 74 73 20 79 6f 75 20 69 6e 20 6d 61 69 6e 74 61 69 6e 69 6e r-mode.assists.you.in.maintainin
1a460 67 20 69 6e 70 75 74 20 66 69 6c 65 73 20 66 6f 72 20 4c 65 64 67 65 72 2c 0a 72 75 6e 6e 69 6e g.input.files.for.Ledger,.runnin
1a480 67 20 72 65 70 6f 72 74 73 20 61 6e 64 20 6d 75 63 68 20 6d 6f 72 65 2e 2e 2e 0a 0a 2a 20 4d 65 g.reports.and.much.more.....*.Me
1a4a0 6e 75 3a 0a 0a 2a 20 49 6e 74 72 6f 64 75 63 74 69 6f 6e 20 74 6f 20 4c 65 64 67 65 72 2d 6d 6f nu:..*.Introduction.to.Ledger-mo
1a4c0 64 65 3a 3a 0a 2a 20 54 68 65 20 4c 65 64 67 65 72 20 42 75 66 66 65 72 3a 3a 0a 2a 20 54 68 65 de::.*.The.Ledger.Buffer::.*.The
1a4e0 20 52 65 63 6f 6e 63 69 6c 65 20 42 75 66 66 65 72 3a 3a 0a 2a 20 54 68 65 20 52 65 70 6f 72 74 .Reconcile.Buffer::.*.The.Report
1a500 20 42 75 66 66 65 72 3a 3a 0a 2a 20 53 63 68 65 64 75 6c 69 6e 67 20 54 72 61 6e 73 61 63 74 69 .Buffer::.*.Scheduling.Transacti
1a520 6f 6e 73 3a 3a 0a 2a 20 43 75 73 74 6f 6d 69 7a 69 6e 67 20 4c 65 64 67 65 72 2d 6d 6f 64 65 3a ons::.*.Customizing.Ledger-mode:
1a540 3a 0a 2a 20 47 65 6e 65 72 61 74 69 6e 67 20 4c 65 64 67 65 72 20 52 65 67 72 65 73 73 69 6f 6e :.*.Generating.Ledger.Regression
1a560 20 54 65 73 74 73 3a 3a 0a 2a 20 45 6d 62 65 64 64 69 6e 67 20 45 78 61 6d 70 6c 65 20 72 65 73 .Tests::.*.Embedding.Example.res
1a580 75 6c 74 73 20 69 6e 20 4c 65 64 67 65 72 20 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 3a 3a 0a 2a ults.in.Ledger.Documentation::.*
1a5a0 20 48 61 63 6b 69 6e 67 20 4c 65 64 67 65 72 2d 6d 6f 64 65 3a 3a 0a 2a 20 43 6f 6e 63 65 70 74 .Hacking.Ledger-mode::.*.Concept
1a5c0 20 49 6e 64 65 78 3a 3a 0a 2a 20 43 6f 6d 6d 61 6e 64 20 26 20 56 61 72 69 61 62 6c 65 20 49 6e .Index::.*.Command.&.Variable.In
1a5e0 64 65 78 3a 3a 0a 2a 20 4b 65 79 73 74 72 6f 6b 65 20 49 6e 64 65 78 3a 3a 0a 0a 1f 0a 46 69 6c dex::.*.Keystroke.Index::....Fil
1a600 65 3a 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 49 6e 74 72 e:.ledger-mode.info,..Node:.Intr
1a620 6f 64 75 63 74 69 6f 6e 20 74 6f 20 4c 65 64 67 65 72 2d 6d 6f 64 65 2c 20 20 4e 65 78 74 3a 20 oduction.to.Ledger-mode,..Next:.
1a640 54 68 65 20 4c 65 64 67 65 72 20 42 75 66 66 65 72 2c 20 20 50 72 65 76 3a 20 54 6f 70 2c 20 20 The.Ledger.Buffer,..Prev:.Top,..
1a660 55 70 3a 20 54 6f 70 0a 0a 31 20 49 6e 74 72 6f 64 75 63 74 69 6f 6e 20 74 6f 20 4c 65 64 67 65 Up:.Top..1.Introduction.to.Ledge
1a680 72 2d 6d 6f 64 65 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a r-mode.*************************
1a6a0 2a 2a 2a 2a 0a 0a 2a 20 4d 65 6e 75 3a 0a 0a 2a 20 51 75 69 63 6b 20 49 6e 73 74 61 6c 6c 61 74 ****..*.Menu:..*.Quick.Installat
1a6c0 69 6f 6e 3a 3a 0a 2a 20 4d 65 6e 75 73 3a 3a 0a 2a 20 51 75 69 63 6b 20 44 65 6d 6f 3a 3a 0a 0a ion::.*.Menus::.*.Quick.Demo::..
1a6e0 1f 0a 46 69 6c 65 3a 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a ..File:.ledger-mode.info,..Node:
1a700 20 51 75 69 63 6b 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 2c 20 20 4e 65 78 74 3a 20 4d 65 6e 75 .Quick.Installation,..Next:.Menu
1a720 73 2c 20 20 50 72 65 76 3a 20 49 6e 74 72 6f 64 75 63 74 69 6f 6e 20 74 6f 20 4c 65 64 67 65 72 s,..Prev:.Introduction.to.Ledger
1a740 2d 6d 6f 64 65 2c 20 20 55 70 3a 20 49 6e 74 72 6f 64 75 63 74 69 6f 6e 20 74 6f 20 4c 65 64 67 -mode,..Up:.Introduction.to.Ledg
1a760 65 72 2d 6d 6f 64 65 0a 0a 31 2e 31 20 51 75 69 63 6b 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 0a er-mode..1.1.Quick.Installation.
1a780 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 54 68 65 20 45 6d 61 63 ======================..The.Emac
1a7a0 73 20 6c 69 73 70 20 73 6f 75 72 63 65 20 66 6f 72 20 4c 65 64 67 65 72 2d 6d 6f 64 65 20 69 73 s.lisp.source.for.Ledger-mode.is
1a7c0 20 69 6e 63 6c 75 64 65 64 20 77 69 74 68 20 74 68 65 20 73 6f 75 72 63 65 0a 64 69 73 74 72 69 .included.with.the.source.distri
1a7e0 62 75 74 69 6f 6e 20 6f 66 20 4c 65 64 67 65 72 2e 20 20 49 74 20 69 73 20 65 6e 74 69 72 65 6c bution.of.Ledger...It.is.entirel
1a800 79 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 e2 80 98 6c 69 73 70 e2 80 99 0a 73 75 62 y.included.in.the....lisp....sub
1a820 64 69 72 65 63 74 6f 72 79 2e 20 20 54 6f 20 75 73 65 20 4c 65 64 67 65 72 2d 6d 6f 64 65 2c 20 directory...To.use.Ledger-mode,.
1a840 69 6e 63 6c 75 64 65 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 69 6e 20 79 6f 75 72 20 45 6d include.the.following.in.your.Em
1a860 61 63 73 0a 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 66 69 6c 65 20 28 e2 80 98 7e 2f 2e 65 acs.initialization.file.(...~/.e
1a880 6d 61 63 73 e2 80 99 2c 20 e2 80 98 7e 2f 2e 65 6d 61 63 73 2e 64 2f 69 6e 69 74 2e 65 6c e2 80 macs...,....~/.emacs.d/init.el..
1a8a0 99 2c 20 6f 72 0a e2 80 98 7e 2f 2e 41 71 75 61 6d 61 63 73 2f 50 72 65 66 65 72 65 6e 63 65 73 .,.or....~/.Aquamacs/Preferences
1a8c0 2e 65 6c e2 80 99 29 2e 0a 0a 20 20 20 20 20 28 61 75 74 6f 6c 6f 61 64 20 27 6c 65 64 67 65 72 .el...)........(autoload.'ledger
1a8e0 2d 6d 6f 64 65 20 22 6c 65 64 67 65 72 2d 6d 6f 64 65 22 20 22 41 20 6d 61 6a 6f 72 20 6d 6f 64 -mode."ledger-mode"."A.major.mod
1a900 65 20 66 6f 72 20 4c 65 64 67 65 72 22 20 74 29 0a 20 20 20 20 20 28 61 64 64 2d 74 6f 2d 6c 69 e.for.Ledger".t)......(add-to-li
1a920 73 74 20 27 6c 6f 61 64 2d 70 61 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 st.'load-path...................
1a940 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 2f 70 61 74 68 2f 74 6f 2f 6c 65 64 67 (expand-file-name."/path/to/ledg
1a960 65 72 2f 73 6f 75 72 63 65 2f 6c 69 73 70 2f 22 29 29 0a 20 20 20 20 20 28 61 64 64 2d 74 6f 2d er/source/lisp/"))......(add-to-
1a980 6c 69 73 74 20 27 61 75 74 6f 2d 6d 6f 64 65 2d 61 6c 69 73 74 20 27 28 22 5c 5c 2e 6c 65 64 67 list.'auto-mode-alist.'("\\.ledg
1a9a0 65 72 24 22 20 2e 20 6c 65 64 67 65 72 2d 6d 6f 64 65 29 29 0a 0a 20 20 20 54 68 69 73 20 73 65 er$"...ledger-mode)).....This.se
1a9c0 74 73 20 75 70 20 45 6d 61 63 73 20 74 6f 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 72 65 63 ts.up.Emacs.to.automatically.rec
1a9e0 6f 67 6e 69 7a 65 20 66 69 6c 65 73 20 74 68 61 74 20 65 6e 64 20 77 69 74 68 0a e2 80 98 2e 6c ognize.files.that.end.with.....l
1aa00 65 64 67 65 72 e2 80 99 20 61 6e 64 20 73 74 61 72 74 20 4c 65 64 67 65 72 2d 6d 6f 64 65 2e 20 edger....and.start.Ledger-mode..
1aa20 20 4e 6f 74 68 69 6e 67 20 65 6c 73 65 20 73 68 6f 75 6c 64 20 62 65 20 72 65 71 75 69 72 65 64 .Nothing.else.should.be.required
1aa40 20 61 73 0a 6c 6f 6e 67 20 61 73 20 74 68 65 20 6c 65 64 67 65 72 20 63 6f 6d 6d 61 6e 64 20 6c .as.long.as.the.ledger.command.l
1aa60 69 6e 65 20 75 74 69 6c 69 74 79 20 69 73 20 70 72 6f 70 65 72 6c 79 20 69 6e 73 74 61 6c 6c 65 ine.utility.is.properly.installe
1aa80 64 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e d.....File:.ledger-mode.info,..N
1aaa0 6f 64 65 3a 20 4d 65 6e 75 73 2c 20 20 4e 65 78 74 3a 20 51 75 69 63 6b 20 44 65 6d 6f 2c 20 20 ode:.Menus,..Next:.Quick.Demo,..
1aac0 50 72 65 76 3a 20 51 75 69 63 6b 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 2c 20 20 55 70 3a 20 49 Prev:.Quick.Installation,..Up:.I
1aae0 6e 74 72 6f 64 75 63 74 69 6f 6e 20 74 6f 20 4c 65 64 67 65 72 2d 6d 6f 64 65 0a 0a 31 2e 32 20 ntroduction.to.Ledger-mode..1.2.
1ab00 4d 65 6e 75 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 54 68 65 20 76 61 73 74 20 6d 61 6a 6f 72 69 Menus.=========..The.vast.majori
1ab20 74 79 20 6f 66 20 4c 65 64 67 65 72 2d 6d 6f 64 65 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79 20 ty.of.Ledger-mode.functionality.
1ab40 69 73 20 61 76 61 69 6c 61 62 6c 65 20 66 72 6f 6d 20 74 68 65 0a 45 6d 61 63 73 20 6d 65 6e 75 is.available.from.the.Emacs.menu
1ab60 20 73 79 73 74 65 6d 2e 20 20 54 68 65 20 6b 65 79 73 74 72 6f 6b 65 73 20 61 72 65 20 73 68 6f .system...The.keystrokes.are.sho
1ab80 77 6e 20 69 6e 20 74 68 65 20 6d 65 6e 75 20 74 6f 20 68 65 6c 70 20 79 6f 75 0a 6c 65 61 72 6e wn.in.the.menu.to.help.you.learn
1aba0 20 74 68 65 20 66 61 73 74 65 72 20 6b 65 79 62 6f 61 72 64 20 6d 65 74 68 6f 64 73 2e 0a 0a 1f .the.faster.keyboard.methods....
1abc0 0a 46 69 6c 65 3a 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 .File:.ledger-mode.info,..Node:.
1abe0 51 75 69 63 6b 20 44 65 6d 6f 2c 20 20 50 72 65 76 3a 20 4d 65 6e 75 73 2c 20 20 55 70 3a 20 49 Quick.Demo,..Prev:.Menus,..Up:.I
1ac00 6e 74 72 6f 64 75 63 74 69 6f 6e 20 74 6f 20 4c 65 64 67 65 72 2d 6d 6f 64 65 0a 0a 31 2e 33 20 ntroduction.to.Ledger-mode..1.3.
1ac20 51 75 69 63 6b 20 44 65 6d 6f 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 4c 6f 61 64 20 Quick.Demo.==============..Load.
1ac40 74 68 65 20 64 65 6d 6f 20 66 69 6c 65 20 e2 80 98 64 65 6d 6f 2e 6c 65 64 67 65 72 e2 80 99 20 the.demo.file....demo.ledger....
1ac60 66 72 6f 6d 20 74 68 65 20 4c 65 64 67 65 72 20 73 6f 75 72 63 65 20 e2 80 98 74 65 73 74 2f 69 from.the.Ledger.source....test/i
1ac80 6e 70 75 74 e2 80 99 0a 64 69 72 65 63 74 6f 72 79 2e 20 20 54 68 65 20 6c 65 64 67 65 72 20 77 nput....directory...The.ledger.w
1aca0 69 6c 6c 20 62 65 20 6c 6f 61 64 65 64 20 61 6e 64 20 66 6f 6e 74 20 68 69 67 68 6c 69 67 68 74 ill.be.loaded.and.font.highlight
1acc0 65 64 2e 20 20 41 74 20 74 68 69 73 0a 70 6f 69 6e 74 20 79 6f 75 20 63 6f 75 6c 64 20 6d 61 6e ed...At.this.point.you.could.man
1ace0 75 61 6c 6c 79 20 65 64 69 74 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 61 6e 64 20 72 75 6e 20 ually.edit.transactions.and.run.
1ad00 4c 65 64 67 65 72 20 66 72 6f 6d 20 61 0a 63 6f 6e 76 65 6e 69 65 6e 74 20 63 6f 6d 6d 61 6e 64 Ledger.from.a.convenient.command
1ad20 20 6c 69 6e 65 2e 0a 0a 2a 20 4d 65 6e 75 3a 0a 0a 2a 20 51 75 69 63 6b 20 41 64 64 3a 3a 0a 2a .line...*.Menu:..*.Quick.Add::.*
1ad40 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 3a 3a 0a 2a 20 52 65 70 6f 72 74 73 3a 3a 0a 2a 20 .Reconciliation::.*.Reports::.*.
1ad60 4e 61 72 72 6f 77 69 6e 67 3a 3a 0a 0a 1f 0a 46 69 6c 65 3a 20 6c 65 64 67 65 72 2d 6d 6f 64 65 Narrowing::....File:.ledger-mode
1ad80 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 51 75 69 63 6b 20 41 64 64 2c 20 20 4e 65 78 74 3a 20 .info,..Node:.Quick.Add,..Next:.
1ada0 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 2c 20 20 50 72 65 76 3a 20 51 75 69 63 6b 20 44 65 6d Reconciliation,..Prev:.Quick.Dem
1adc0 6f 2c 20 20 55 70 3a 20 51 75 69 63 6b 20 44 65 6d 6f 0a 0a 31 2e 33 2e 31 20 51 75 69 63 6b 20 o,..Up:.Quick.Demo..1.3.1.Quick.
1ade0 41 64 64 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 41 73 20 73 69 6d 70 6c 65 20 61 Add.---------------..As.simple.a
1ae00 73 20 74 68 65 20 4c 65 64 67 65 72 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 66 6f 72 6d 61 74 20 s.the.Ledger.transaction.format.
1ae20 69 73 2c 20 69 74 20 63 61 6e 20 73 74 69 6c 6c 20 62 65 20 64 61 75 6e 74 69 6e 67 0a 74 6f 20 is,.it.can.still.be.daunting.to.
1ae40 61 64 64 20 6d 61 6e 79 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 6d 61 6e 75 61 6c 6c 79 2e 20 add.many.transactions.manually..
1ae60 20 4c 65 64 67 65 72 20 70 72 6f 76 69 64 65 73 20 74 77 6f 20 77 61 79 73 20 74 6f 20 61 64 64 .Ledger.provides.two.ways.to.add
1ae80 0a 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 77 69 74 68 20 6d 69 6e 69 6d 61 6c 20 74 79 70 69 6e .transactions.with.minimal.typin
1aea0 67 2e 20 20 42 6f 74 68 20 61 72 65 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 69 64 65 61 20 74 g...Both.are.based.on.the.idea.t
1aec0 68 61 74 20 6d 6f 73 74 0a 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 61 72 65 20 72 65 70 65 74 69 hat.most.transactions.are.repeti
1aee0 74 69 6f 6e 73 20 6f 66 20 65 61 72 6c 69 65 72 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 2e 0a 0a tions.of.earlier.transactions...
1af00 20 20 20 49 6e 20 74 68 65 20 e2 80 98 64 65 6d 6f 2e 6c 65 64 67 65 72 e2 80 99 20 62 75 66 66 ...In.the....demo.ledger....buff
1af20 65 72 20 65 6e 74 65 72 20 61 20 64 61 74 65 20 75 73 69 6e 67 20 74 68 65 20 63 6f 72 72 65 63 er.enter.a.date.using.the.correc
1af40 74 20 66 6f 72 6d 61 74 2e 0a 54 68 65 6e 20 74 79 70 65 20 74 68 65 20 66 69 72 73 74 20 66 65 t.format..Then.type.the.first.fe
1af60 77 20 63 68 61 72 61 63 74 65 72 73 20 6f 66 20 61 6e 6f 74 68 65 72 20 70 61 79 65 65 20 69 6e w.characters.of.another.payee.in
1af80 20 74 68 65 20 e2 80 98 64 65 6d 6f 2e 6c 65 64 67 65 72 e2 80 99 0a 62 75 66 66 65 72 2e 20 20 .the....demo.ledger....buffer...
1afa0 54 79 70 65 20 e2 80 98 43 2d 63 20 54 41 42 e2 80 99 2e 20 20 4c 65 64 67 65 72 2d 6d 6f 64 65 Type....C-c.TAB......Ledger-mode
1afc0 20 77 69 6c 6c 20 73 65 61 72 63 68 20 66 6f 72 20 61 20 50 61 79 65 65 20 74 68 61 74 20 68 61 .will.search.for.a.Payee.that.ha
1afe0 73 0a 74 68 65 20 73 61 6d 65 20 62 65 67 69 6e 6e 69 6e 67 20 61 6e 64 20 63 6f 70 79 20 74 68 s.the.same.beginning.and.copy.th
1b000 65 20 72 65 73 74 20 6f 66 20 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 74 6f 20 79 6f 75 e.rest.of.the.transaction.to.you
1b020 20 6e 65 77 0a 65 6e 74 72 79 2e 0a 0a 20 20 20 41 64 64 69 74 69 6f 6e 61 6c 6c 79 20 79 6f 75 .new.entry......Additionally.you
1b040 20 63 61 6e 20 75 73 65 20 74 68 65 20 6c 65 64 67 65 72 20 e2 80 98 78 61 63 74 e2 80 99 20 63 .can.use.the.ledger....xact....c
1b060 6f 6d 6d 61 6e 64 2c 20 62 79 20 65 69 74 68 65 72 20 74 79 70 69 6e 67 0a e2 80 98 43 2d 63 20 ommand,.by.either.typing....C-c.
1b080 43 2d 61 e2 80 99 20 6f 72 20 75 73 69 6e 67 20 e2 80 98 41 64 64 20 54 72 61 6e 73 61 63 74 69 C-a....or.using....Add.Transacti
1b0a0 6f 6e e2 80 99 20 6d 65 6e 75 20 65 6e 74 72 79 2e 20 20 54 68 65 6e 20 74 79 70 69 6e 67 20 61 on....menu.entry...Then.typing.a
1b0c0 20 63 6c 6f 73 65 0a 6d 61 74 63 68 20 74 6f 20 74 68 65 20 70 61 79 65 65 2e 20 20 4c 65 64 67 .close.match.to.the.payee...Ledg
1b0e0 65 72 2d 6d 6f 64 65 20 77 69 6c 6c 20 63 61 6c 6c 20 e2 80 98 6c 65 64 67 65 72 20 78 61 63 74 er-mode.will.call....ledger.xact
1b100 e2 80 99 20 77 69 74 68 20 74 68 65 20 64 61 74 61 0a 79 6f 75 20 65 6e 74 65 72 20 61 6e 64 20 ....with.the.data.you.enter.and.
1b120 70 6c 61 63 65 20 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 69 6e 20 74 68 65 20 70 72 6f place.the.transaction.in.the.pro
1b140 70 65 72 20 63 68 72 6f 6e 6f 6c 6f 67 69 63 61 6c 20 70 6c 61 63 65 20 69 6e 0a 74 68 65 20 6c per.chronological.place.in.the.l
1b160 65 64 67 65 72 2e 20 20 54 68 65 20 64 61 74 65 20 66 6f 72 6d 61 74 20 63 61 6e 20 62 65 20 63 edger...The.date.format.can.be.c
1b180 68 61 6e 67 65 64 20 62 79 20 6d 6f 64 69 66 79 69 6e 67 0a e2 80 98 6c 65 64 67 65 72 2d 64 65 hanged.by.modifying....ledger-de
1b1a0 66 61 75 6c 74 2d 64 61 74 65 2d 66 6f 72 6d 61 74 e2 80 99 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 6c fault-date-format........File:.l
1b1c0 65 64 67 65 72 2d 6d 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 52 65 63 6f 6e 63 69 6c edger-mode.info,..Node:.Reconcil
1b1e0 69 61 74 69 6f 6e 2c 20 20 4e 65 78 74 3a 20 52 65 70 6f 72 74 73 2c 20 20 50 72 65 76 3a 20 51 iation,..Next:.Reports,..Prev:.Q
1b200 75 69 63 6b 20 41 64 64 2c 20 20 55 70 3a 20 51 75 69 63 6b 20 44 65 6d 6f 0a 0a 31 2e 33 2e 32 uick.Add,..Up:.Quick.Demo..1.3.2
1b220 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .Reconciliation.----------------
1b240 2d 2d 2d 2d 0a 0a 54 68 65 20 62 69 67 67 65 73 74 20 74 61 73 6b 20 6f 66 20 6d 61 69 6e 74 61 ----..The.biggest.task.of.mainta
1b260 69 6e 69 6e 67 20 61 20 6c 65 64 67 65 72 20 69 73 20 65 6e 73 75 72 69 6e 67 20 74 68 61 74 20 ining.a.ledger.is.ensuring.that.
1b280 69 74 20 6d 61 74 63 68 65 73 20 74 68 65 0a 6f 75 74 73 69 64 65 20 77 6f 72 6c 64 2e 20 20 54 it.matches.the.outside.world...T
1b2a0 68 69 73 20 70 72 6f 63 65 73 73 20 69 73 20 63 61 6c 6c 65 64 20 72 65 63 6f 6e 63 69 6c 69 61 his.process.is.called.reconcilia
1b2c0 74 69 6f 6e 20 28 2a 6e 6f 74 65 20 42 61 73 69 63 73 20 6f 66 0a 52 65 63 6f 6e 63 69 6c 69 61 tion.(*note.Basics.of.Reconcilia
1b2e0 74 69 6f 6e 3a 3a 29 20 61 6e 64 20 63 61 6e 20 62 65 20 71 75 69 74 65 20 6f 6e 65 72 6f 75 73 tion::).and.can.be.quite.onerous
1b300 2e 20 20 4c 65 64 67 65 72 2d 6d 6f 64 65 20 61 74 74 65 6d 70 74 73 20 74 6f 0a 6d 61 6b 65 20 ...Ledger-mode.attempts.to.make.
1b320 69 74 20 61 73 20 70 61 69 6e 6c 65 73 73 20 61 73 20 70 6f 73 73 69 62 6c 65 2e 0a 0a 20 20 20 it.as.painless.as.possible......
1b340 49 6e 20 74 68 65 20 e2 80 98 64 65 6d 6f 2e 6c 65 64 67 65 72 e2 80 99 20 62 75 66 66 65 72 20 In.the....demo.ledger....buffer.
1b360 74 79 70 65 20 e2 80 98 43 2d 63 20 43 2d 72 e2 80 99 2e 20 20 49 66 20 63 75 72 73 6f 72 20 69 type....C-c.C-r......If.cursor.i
1b380 73 20 6f 6e 20 61 6e 0a 61 63 63 6f 75 6e 74 2c 20 4c 65 64 67 65 72 2d 6d 6f 64 65 20 77 69 6c s.on.an.account,.Ledger-mode.wil
1b3a0 6c 20 70 72 6f 70 6f 73 65 20 74 68 69 73 20 61 63 63 6f 75 6e 74 2c 20 6f 72 20 69 6e 20 74 68 l.propose.this.account,.or.in.th
1b3c0 65 20 4d 69 6e 69 62 75 66 66 65 72 2c 0a 77 69 6c 6c 20 70 72 6f 6d 70 74 20 66 6f 72 20 61 6e e.Minibuffer,.will.prompt.for.an
1b3e0 20 61 63 63 6f 75 6e 74 20 74 6f 20 72 65 63 6f 6e 63 69 6c 65 2e 20 20 48 69 74 20 e2 80 98 52 .account.to.reconcile...Hit....R
1b400 45 54 e2 80 99 20 69 66 20 79 6f 75 20 61 72 65 20 68 61 70 70 79 0a 77 69 74 68 20 70 72 6f 70 ET....if.you.are.happy.with.prop
1b420 6f 73 65 64 20 61 63 63 6f 75 6e 74 2c 20 6f 72 20 65 6e 74 65 72 20 e2 80 98 43 68 65 63 6b 69 osed.account,.or.enter....Checki
1b440 6e 67 e2 80 99 20 61 73 20 65 78 61 6d 70 6c 65 2e 20 20 45 6d 61 63 73 20 77 69 6c 6c 20 74 68 ng....as.example...Emacs.will.th
1b460 65 6e 0a 70 72 6f 6d 70 74 20 66 6f 72 20 61 20 74 61 72 67 65 74 20 76 61 6c 75 65 2e 20 20 54 en.prompt.for.a.target.value...T
1b480 68 65 20 74 61 72 67 65 74 20 76 61 6c 75 65 20 69 73 20 74 68 65 20 61 6d 6f 75 6e 74 20 79 6f he.target.value.is.the.amount.yo
1b4a0 75 20 77 61 6e 74 20 74 68 65 0a 63 6c 65 61 72 65 64 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 u.want.the.cleared.transactions.
1b4c0 69 6e 20 74 68 65 20 62 75 66 66 65 72 20 74 6f 20 74 6f 74 61 6c 2e 20 20 4e 6f 72 6d 61 6c 6c in.the.buffer.to.total...Normall
1b4e0 79 20 74 68 69 73 20 77 6f 75 6c 64 20 62 65 20 74 68 65 0a 65 6e 64 69 6e 67 20 76 61 6c 75 65 y.this.would.be.the.ending.value
1b500 20 66 72 6f 6d 20 79 6f 75 72 20 62 61 6e 6b 20 73 74 61 74 65 6d 65 6e 74 2c 20 6f 72 20 74 68 .from.your.bank.statement,.or.th
1b520 65 20 6c 61 74 65 73 74 20 76 61 6c 75 65 20 69 6e 20 79 6f 75 72 0a 6f 6e 2d 6c 69 6e 65 20 74 e.latest.value.in.your.on-line.t
1b540 72 61 6e 73 61 63 74 69 6f 6e 20 73 75 6d 6d 61 72 79 2e 20 20 45 6e 74 65 72 20 e2 80 98 31 37 ransaction.summary...Enter....17
1b560 31 30 e2 80 99 2e 20 20 4e 6f 74 65 20 74 68 61 74 20 4c 65 64 67 65 72 2d 6d 6f 64 65 0a 61 73 10......Note.that.Ledger-mode.as
1b580 73 75 6d 65 73 20 79 6f 75 20 61 72 65 20 75 73 69 6e 67 20 e2 80 98 24 e2 80 99 20 28 55 53 44 sumes.you.are.using....$....(USD
1b5a0 29 20 61 73 20 79 6f 75 72 20 64 65 66 61 75 6c 74 20 63 6f 6d 6d 6f 64 69 74 79 2c 20 74 68 69 ).as.your.default.commodity,.thi
1b5c0 73 20 63 61 6e 20 62 65 0a 65 61 73 69 6c 79 20 63 68 61 6e 67 65 64 20 69 6e 20 74 68 65 20 63 s.can.be.easily.changed.in.the.c
1b5e0 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 76 61 72 69 61 62 6c 65 73 2e 20 20 2a 4e 6f 74 65 20 4c ustomization.variables...*Note.L
1b600 65 64 67 65 72 2d 6d 6f 64 65 0a 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 3a 3a 2e 0a 0a 20 20 20 edger-mode.Customization::......
1b620 59 6f 75 20 6e 6f 77 20 73 65 65 20 61 20 6c 69 73 74 20 6f 66 20 75 6e 63 6c 65 61 72 65 64 20 You.now.see.a.list.of.uncleared.
1b640 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 69 6e 20 61 20 62 75 66 66 65 72 20 62 65 6c 6f 77 20 74 transactions.in.a.buffer.below.t
1b660 68 65 0a e2 80 98 64 65 6d 6f 2e 6c 65 64 67 65 72 e2 80 99 20 62 75 66 66 65 72 2e 20 20 54 6f he....demo.ledger....buffer...To
1b680 75 63 68 69 6e 67 20 74 68 65 20 e2 80 98 53 50 43 e2 80 99 20 62 61 72 20 77 69 6c 6c 20 6d 61 uching.the....SPC....bar.will.ma
1b6a0 72 6b 20 61 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 61 73 0a 70 65 6e 64 69 6e 67 20 61 6e 64 20 rk.a.transaction.as.pending.and.
1b6c0 64 69 73 70 6c 61 79 20 74 68 65 20 63 75 72 72 65 6e 74 20 63 6c 65 61 72 65 64 20 28 61 6e 64 display.the.current.cleared.(and
1b6e0 20 70 65 6e 64 69 6e 67 29 20 62 61 6c 61 6e 63 65 2c 20 61 6c 6f 6e 67 0a 77 69 74 68 20 74 68 .pending).balance,.along.with.th
1b700 65 20 64 69 66 66 65 72 65 6e 63 65 20 72 65 6d 61 69 6e 69 6e 67 20 74 6f 20 6d 65 65 74 20 79 e.difference.remaining.to.meet.y
1b720 6f 75 72 20 74 61 72 67 65 74 2e 20 20 43 6c 65 61 72 20 74 68 65 20 66 69 72 73 74 0a 74 68 72 our.target...Clear.the.first.thr
1b740 65 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 2c 20 61 6e 64 20 79 6f 75 20 77 69 6c 6c 20 73 65 ee.transactions,.and.you.will.se
1b760 65 20 74 68 65 20 64 69 66 66 65 72 65 6e 63 65 20 74 6f 20 74 61 72 67 65 74 20 72 65 61 63 68 e.the.difference.to.target.reach
1b780 0a e2 80 98 24 30 e2 80 99 2e 20 20 45 6e 64 20 74 68 65 20 72 65 63 6f 6e 63 69 6c 69 61 74 69 ....$0......End.the.reconciliati
1b7a0 6f 6e 20 62 79 20 74 79 70 69 6e 67 20 e2 80 98 43 2d 63 20 43 2d 63 e2 80 99 2e 20 20 54 68 69 on.by.typing....C-c.C-c......Thi
1b7c0 73 20 73 61 76 65 73 20 74 68 65 0a e2 80 98 64 65 6d 6f 2e 6c 65 64 67 65 72 e2 80 99 20 62 75 s.saves.the....demo.ledger....bu
1b7e0 66 66 65 72 20 61 6e 64 20 6d 61 72 6b 73 20 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 ffer.and.marks.the.transactions.
1b800 61 6e 64 20 66 69 6e 61 6c 6c 79 20 63 6c 65 61 72 65 64 2e 0a 54 79 70 65 20 e2 80 98 71 e2 80 and.finally.cleared..Type....q..
1b820 99 20 74 6f 20 63 6c 6f 73 65 20 6f 75 74 20 74 68 65 20 72 65 63 6f 6e 63 69 6c 69 61 74 69 6f ..to.close.out.the.reconciliatio
1b840 6e 20 62 75 66 66 65 72 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 69 n.buffer.....File:.ledger-mode.i
1b860 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 52 65 70 6f 72 74 73 2c 20 20 4e 65 78 74 3a 20 4e 61 72 72 nfo,..Node:.Reports,..Next:.Narr
1b880 6f 77 69 6e 67 2c 20 20 50 72 65 76 3a 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 2c 20 20 55 owing,..Prev:.Reconciliation,..U
1b8a0 70 3a 20 51 75 69 63 6b 20 44 65 6d 6f 0a 0a 31 2e 33 2e 33 20 52 65 70 6f 72 74 73 0a 2d 2d 2d p:.Quick.Demo..1.3.3.Reports.---
1b8c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 54 68 65 20 72 65 61 6c 20 70 6f 77 65 72 20 6f 66 20 4c 65 ----------..The.real.power.of.Le
1b8e0 64 67 65 72 20 69 73 20 69 6e 20 69 74 73 20 72 65 70 6f 72 74 69 6e 67 20 63 61 70 61 62 69 6c dger.is.in.its.reporting.capabil
1b900 69 74 69 65 73 2e 20 20 52 65 70 6f 72 74 73 20 63 61 6e 0a 62 65 20 72 75 6e 20 61 6e 64 20 64 ities...Reports.can.be.run.and.d
1b920 69 73 70 6c 61 79 65 64 20 69 6e 20 61 20 73 65 70 61 72 61 74 65 20 45 6d 61 63 73 20 62 75 66 isplayed.in.a.separate.Emacs.buf
1b940 66 65 72 2e 20 20 49 6e 20 74 68 65 20 e2 80 98 64 65 6d 6f 2e 6c 65 64 67 65 72 e2 80 99 0a 62 fer...In.the....demo.ledger....b
1b960 75 66 66 65 72 2c 20 74 79 70 65 20 e2 80 98 43 2d 63 20 43 2d 6f 20 43 2d 72 e2 80 99 2e 20 20 uffer,.type....C-c.C-o.C-r......
1b980 49 6e 20 74 68 65 20 4d 69 6e 69 62 75 66 66 65 72 20 45 6d 61 63 73 20 77 69 6c 6c 20 70 72 6f In.the.Minibuffer.Emacs.will.pro
1b9a0 6d 70 74 20 66 6f 72 20 61 0a 72 65 70 6f 72 74 20 6e 61 6d 65 2e 20 20 54 68 65 72 65 20 61 72 mpt.for.a.report.name...There.ar
1b9c0 65 20 61 20 66 65 77 20 62 75 69 6c 74 2d 69 6e 20 72 65 70 6f 72 74 73 2c 20 61 6e 64 20 79 6f e.a.few.built-in.reports,.and.yo
1b9e0 75 20 63 61 6e 20 61 64 64 20 61 6e 79 0a 72 65 70 6f 72 74 20 79 6f 75 20 6e 65 65 64 20 2a 4e u.can.add.any.report.you.need.*N
1ba00 6f 74 65 20 41 64 64 69 6e 67 20 61 6e 64 20 45 64 69 74 69 6e 67 20 52 65 70 6f 72 74 73 3a 3a ote.Adding.and.Editing.Reports::
1ba20 2e 0a 0a 20 20 20 49 6e 20 74 68 65 20 4d 69 6e 69 62 75 66 66 65 72 20 74 79 70 65 20 e2 80 98 ......In.the.Minibuffer.type....
1ba40 61 63 63 6f 75 6e 74 e2 80 99 2e 20 20 57 68 65 6e 20 70 72 6f 6d 70 74 65 64 20 66 6f 72 20 61 account......When.prompted.for.a
1ba60 6e 20 61 63 63 6f 75 6e 74 20 74 79 70 65 0a e2 80 98 63 68 65 63 6b 69 6e 67 e2 80 99 2e 20 20 n.account.type....checking......
1ba80 49 6e 20 61 20 62 75 66 66 65 72 20 6e 61 6d 65 64 20 e2 80 98 2a 4c 65 64 67 65 72 20 52 65 70 In.a.buffer.named....*Ledger.Rep
1baa0 6f 72 74 2a e2 80 99 2c 20 79 6f 75 20 77 69 6c 6c 20 73 65 65 20 61 20 4c 65 64 67 65 72 0a 72 ort*...,.you.will.see.a.Ledger.r
1bac0 65 67 69 73 74 65 72 20 72 65 70 6f 72 74 2e 20 20 59 6f 75 20 63 61 6e 20 6d 6f 76 65 20 61 72 egister.report...You.can.move.ar
1bae0 6f 75 6e 64 20 74 68 65 20 62 75 66 66 65 72 2c 20 77 69 74 68 20 74 68 65 20 70 6f 69 6e 74 20 ound.the.buffer,.with.the.point.
1bb00 6f 6e 20 61 0a 74 72 61 6e 73 61 63 74 69 6f 6e 2c 20 74 79 70 65 20 e2 80 98 52 45 54 e2 80 99 on.a.transaction,.type....RET...
1bb20 2e 20 20 4c 65 64 67 65 72 2d 6d 6f 64 65 20 77 69 6c 6c 20 74 61 6b 65 20 79 6f 75 20 64 69 72 ...Ledger-mode.will.take.you.dir
1bb40 65 63 74 6c 79 20 74 6f 20 74 68 61 74 0a 74 72 61 6e 73 61 63 74 69 6f 6e 20 69 6e 20 74 68 65 ectly.to.that.transaction.in.the
1bb60 20 e2 80 98 64 65 6d 6f 2e 6c 65 64 67 65 72 e2 80 99 20 62 75 66 66 65 72 2e 0a 0a 20 20 20 41 ....demo.ledger....buffer......A
1bb80 6e 6f 74 68 65 72 20 62 75 69 6c 74 2d 69 6e 20 72 65 70 6f 72 74 20 69 73 20 74 68 65 20 62 61 nother.built-in.report.is.the.ba
1bba0 6c 61 6e 63 65 20 72 65 70 6f 72 74 2e 20 20 49 6e 20 74 68 65 20 e2 80 98 64 65 6d 6f 2e 6c 65 lance.report...In.the....demo.le
1bbc0 64 67 65 72 e2 80 99 0a 62 75 66 66 65 72 2c 20 74 79 70 65 20 e2 80 98 43 2d 63 20 43 2d 6f 20 dger....buffer,.type....C-c.C-o.
1bbe0 43 2d 72 e2 80 99 2e 20 20 57 68 65 6e 20 70 72 6f 6d 70 74 65 64 20 66 6f 72 20 61 20 72 65 70 C-r......When.prompted.for.a.rep
1bc00 6f 72 74 20 74 6f 20 72 75 6e 2c 20 74 79 70 65 0a e2 80 98 62 61 6c e2 80 99 2c 20 61 6e 64 20 ort.to.run,.type....bal...,.and.
1bc20 61 20 62 61 6c 61 6e 63 65 20 72 65 70 6f 72 74 20 6f 66 20 61 6c 6c 20 61 63 63 6f 75 6e 74 73 a.balance.report.of.all.accounts
1bc40 20 77 69 6c 6c 20 62 65 20 73 68 6f 77 6e 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 6c 65 64 67 65 72 2d .will.be.shown.....File:.ledger-
1bc60 6d 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 4e 61 72 72 6f 77 69 6e 67 2c 20 20 50 72 mode.info,..Node:.Narrowing,..Pr
1bc80 65 76 3a 20 52 65 70 6f 72 74 73 2c 20 20 55 70 3a 20 51 75 69 63 6b 20 44 65 6d 6f 0a 0a 31 2e ev:.Reports,..Up:.Quick.Demo..1.
1bca0 33 2e 34 20 4e 61 72 72 6f 77 69 6e 67 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 41 3.4.Narrowing.---------------..A
1bcc0 20 6c 65 64 67 65 72 20 66 69 6c 65 20 63 61 6e 20 67 65 74 20 76 65 72 79 20 6c 61 72 67 65 2e .ledger.file.can.get.very.large.
1bce0 20 20 49 74 20 63 61 6e 20 62 65 20 68 65 6c 70 66 75 6c 20 74 6f 20 63 6f 6c 6c 61 70 73 65 20 ..It.can.be.helpful.to.collapse.
1bd00 74 68 65 0a 62 75 66 66 65 72 20 74 6f 20 64 69 73 70 6c 61 79 20 6f 6e 6c 79 20 74 68 65 20 74 the.buffer.to.display.only.the.t
1bd20 72 61 6e 73 61 63 74 69 6f 6e 73 20 79 6f 75 20 61 72 65 20 69 6e 74 65 72 65 73 74 65 64 20 69 ransactions.you.are.interested.i
1bd40 6e 2e 0a 4c 65 64 67 65 72 2d 6d 6f 64 65 20 63 6f 70 69 65 73 20 74 68 65 20 e2 80 98 6f 63 63 n..Ledger-mode.copies.the....occ
1bd60 75 72 e2 80 99 20 6d 6f 64 65 20 66 75 6e 63 74 69 6f 6e 61 6c 69 74 79 2e 20 20 54 79 70 69 6e ur....mode.functionality...Typin
1bd80 67 20 e2 80 98 43 2d 63 20 43 2d 66 e2 80 99 20 61 6e 64 0a 65 6e 74 65 72 69 6e 67 20 61 6e 79 g....C-c.C-f....and.entering.any
1bda0 20 72 65 67 65 78 20 69 6e 20 74 68 65 20 4d 69 6e 69 62 75 66 66 65 72 20 77 69 6c 6c 20 73 68 .regex.in.the.Minibuffer.will.sh
1bdc0 6f 77 20 6f 6e 6c 79 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 74 68 61 74 0a 6d 61 74 63 68 20 ow.only.transactions.that.match.
1bde0 74 68 65 20 72 65 67 65 78 2e 20 20 54 68 65 20 72 65 67 65 78 20 63 61 6e 20 62 65 20 6f 6e 20 the.regex...The.regex.can.be.on.
1be00 61 6e 79 20 66 69 65 6c 64 2c 20 6f 72 20 61 6d 6f 75 6e 74 2e 20 20 55 73 65 20 e2 80 98 43 2d any.field,.or.amount...Use....C-
1be20 63 0a 43 2d 67 e2 80 99 20 61 66 74 65 72 20 65 64 69 74 69 6e 67 20 74 72 61 6e 73 61 63 74 69 c.C-g....after.editing.transacti
1be40 6f 6e 73 20 74 6f 20 72 65 2d 61 70 70 6c 79 20 74 68 65 20 63 75 72 72 65 6e 74 20 72 65 67 65 ons.to.re-apply.the.current.rege
1be60 78 2e 20 20 43 61 6e 63 65 6c 0a 74 68 65 20 6e 61 72 72 6f 77 69 6e 67 20 62 79 20 74 79 70 69 x...Cancel.the.narrowing.by.typi
1be80 6e 67 20 e2 80 98 43 2d 63 20 43 2d 66 e2 80 99 20 61 67 61 69 6e 2e 0a 0a 1f 0a 46 69 6c 65 3a ng....C-c.C-f....again.....File:
1bea0 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 54 68 65 20 4c 65 .ledger-mode.info,..Node:.The.Le
1bec0 64 67 65 72 20 42 75 66 66 65 72 2c 20 20 4e 65 78 74 3a 20 54 68 65 20 52 65 63 6f 6e 63 69 6c dger.Buffer,..Next:.The.Reconcil
1bee0 65 20 42 75 66 66 65 72 2c 20 20 50 72 65 76 3a 20 49 6e 74 72 6f 64 75 63 74 69 6f 6e 20 74 6f e.Buffer,..Prev:.Introduction.to
1bf00 20 4c 65 64 67 65 72 2d 6d 6f 64 65 2c 20 20 55 70 3a 20 54 6f 70 0a 0a 32 20 54 68 65 20 4c 65 .Ledger-mode,..Up:.Top..2.The.Le
1bf20 64 67 65 72 20 42 75 66 66 65 72 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a dger.Buffer.*******************.
1bf40 0a 2a 20 4d 65 6e 75 3a 0a 0a 2a 20 4e 61 76 69 67 61 74 69 6e 67 20 54 72 61 6e 73 61 63 74 69 .*.Menu:..*.Navigating.Transacti
1bf60 6f 6e 73 3a 3a 0a 2a 20 41 64 64 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 3a 3a 0a 2a 20 ons::.*.Adding.Transactions::.*.
1bf80 43 6f 70 79 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 3a 3a 0a 2a 20 45 64 69 74 69 6e 67 Copying.Transactions::.*.Editing
1bfa0 20 41 6d 6f 75 6e 74 73 3a 3a 0a 2a 20 4d 61 72 6b 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e .Amounts::.*.Marking.Transaction
1bfc0 73 3a 3a 0a 2a 20 46 6f 72 6d 61 74 74 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 3a 3a 0a s::.*.Formatting.Transactions::.
1bfe0 2a 20 44 65 6c 65 74 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 3a 3a 0a 2a 20 53 6f 72 74 *.Deleting.Transactions::.*.Sort
1c000 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 3a 3a 0a 2a 20 4e 61 72 72 6f 77 69 6e 67 20 54 ing.Transactions::.*.Narrowing.T
1c020 72 61 6e 73 61 63 74 69 6f 6e 73 3a 3a 0a 0a 1f 0a 46 69 6c 65 3a 20 6c 65 64 67 65 72 2d 6d 6f ransactions::....File:.ledger-mo
1c040 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 4e 61 76 69 67 61 74 69 6e 67 20 54 72 61 6e 73 de.info,..Node:.Navigating.Trans
1c060 61 63 74 69 6f 6e 73 2c 20 20 4e 65 78 74 3a 20 41 64 64 69 6e 67 20 54 72 61 6e 73 61 63 74 69 actions,..Next:.Adding.Transacti
1c080 6f 6e 73 2c 20 20 50 72 65 76 3a 20 54 68 65 20 4c 65 64 67 65 72 20 42 75 66 66 65 72 2c 20 20 ons,..Prev:.The.Ledger.Buffer,..
1c0a0 55 70 3a 20 54 68 65 20 4c 65 64 67 65 72 20 42 75 66 66 65 72 0a 0a 32 2e 31 20 4e 61 76 69 67 Up:.The.Ledger.Buffer..2.1.Navig
1c0c0 61 74 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ating.Transactions.=============
1c0e0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 49 6e 20 61 64 64 69 74 69 6f 6e 20 74 6f 20 74 ==============..In.addition.to.t
1c100 68 65 20 75 73 75 61 6c 20 45 6d 61 63 73 20 6e 61 76 69 67 61 74 69 6f 6e 20 63 6f 6d 6d 61 6e he.usual.Emacs.navigation.comman
1c120 64 73 2c 20 6c 65 64 67 65 72 2d 6d 6f 64 65 20 6f 66 66 65 72 73 0a 73 65 76 65 72 61 6c 20 61 ds,.ledger-mode.offers.several.a
1c140 64 64 69 74 69 6f 6e 61 6c 20 63 6f 6d 6d 61 6e 64 73 20 74 6f 20 65 61 73 65 20 6e 61 76 69 67 dditional.commands.to.ease.navig
1c160 61 74 69 6f 6e 2e 20 20 e2 80 98 4d 2d 6e e2 80 99 20 61 6e 64 20 e2 80 98 4d 2d 70 e2 80 99 0a ation......M-n....and....M-p....
1c180 6e 61 76 69 67 61 74 65 20 62 65 74 77 65 65 6e 20 6e 65 78 74 20 61 6e 64 20 70 72 65 76 69 6f navigate.between.next.and.previo
1c1a0 75 73 20 78 61 63 74 73 20 6f 72 20 64 69 72 65 63 74 69 76 65 73 2e 0a 0a 20 20 20 41 64 64 69 us.xacts.or.directives......Addi
1c1c0 74 69 6f 6e 61 6c 6c 79 2c 20 e2 80 98 4d 2d 78 20 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 tionally,....M-x.ledger-navigate
1c1e0 2d 6e 65 78 74 2d 75 6e 63 6c 65 61 72 65 64 e2 80 99 20 61 6e 64 20 e2 80 98 4d 2d 78 0a 6c 65 -next-uncleared....and....M-x.le
1c200 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 70 72 65 76 69 6f 75 73 2d 75 6e 63 6c 65 61 72 65 64 dger-navigate-previous-uncleared
1c220 e2 80 99 20 6e 61 76 69 67 61 74 65 20 74 6f 20 74 68 65 20 6e 65 78 74 20 61 6e 64 20 70 72 65 ....navigate.to.the.next.and.pre
1c240 76 69 6f 75 73 0a 75 6e 63 6c 65 61 72 65 64 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 2e 0a 0a 1f vious.uncleared.transactions....
1c260 0a 46 69 6c 65 3a 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 .File:.ledger-mode.info,..Node:.
1c280 41 64 64 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 2c 20 20 4e 65 78 74 3a 20 43 6f 70 79 Adding.Transactions,..Next:.Copy
1c2a0 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 2c 20 20 50 72 65 76 3a 20 4e 61 76 69 67 61 74 ing.Transactions,..Prev:.Navigat
1c2c0 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 2c 20 20 55 70 3a 20 54 68 65 20 4c 65 64 67 65 ing.Transactions,..Up:.The.Ledge
1c2e0 72 20 42 75 66 66 65 72 0a 0a 32 2e 32 20 41 64 64 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e r.Buffer..2.2.Adding.Transaction
1c300 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 42 65 79 6f 6e s.=======================..Beyon
1c320 64 20 74 68 65 20 74 77 6f 20 77 61 79 73 20 6f 66 20 71 75 69 63 6b 6c 79 20 61 64 64 69 6e 67 d.the.two.ways.of.quickly.adding
1c340 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 28 2a 6e 6f 74 65 20 51 75 69 63 6b 20 41 64 64 3a 3a .transactions.(*note.Quick.Add::
1c360 29 0a 4c 65 64 67 65 72 2d 6d 6f 64 65 20 61 73 73 69 73 74 73 20 79 6f 75 20 62 79 20 70 72 6f ).Ledger-mode.assists.you.by.pro
1c380 76 69 64 69 6e 67 20 72 6f 62 75 73 74 20 e2 80 98 54 41 42 e2 80 99 20 63 6f 6d 70 6c 65 74 69 viding.robust....TAB....completi
1c3a0 6f 6e 20 66 6f 72 20 70 61 79 65 65 73 0a 61 6e 64 20 61 63 63 6f 75 6e 74 73 2e 20 20 4c 65 64 on.for.payees.and.accounts...Led
1c3c0 67 65 72 2d 6d 6f 64 65 20 77 69 6c 6c 20 73 63 61 6e 20 74 68 65 20 65 78 69 73 74 69 6e 67 20 ger-mode.will.scan.the.existing.
1c3e0 62 75 66 66 65 72 20 66 6f 72 20 70 61 79 65 65 73 20 61 6e 64 0a 61 63 63 6f 75 6e 74 73 2e 20 buffer.for.payees.and.accounts..
1c400 20 49 6e 63 6c 75 64 65 64 20 66 69 6c 65 73 20 61 72 65 20 6e 6f 74 20 63 75 72 72 65 6e 74 6c .Included.files.are.not.currentl
1c420 79 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 63 6f 6d 70 6c 65 74 69 6f 6e 0a 73 63 61 y.included.in.the.completion.sca
1c440 6e 2e 20 20 4c 65 64 67 65 72 2d 6d 6f 64 65 20 72 65 73 70 65 63 74 73 20 45 6d 61 63 73 e2 80 n...Ledger-mode.respects.Emacs..
1c460 99 73 20 76 61 72 69 61 62 6c 65 73 20 74 68 61 74 20 67 6f 76 65 72 6e 20 e2 80 98 54 41 42 e2 .s.variables.that.govern....TAB.
1c480 80 99 0a 63 6f 6d 70 6c 65 74 69 6f 6e 2c 20 73 65 65 20 65 73 70 65 63 69 61 6c 6c 79 20 e2 80 ...completion,.see.especially...
1c4a0 98 74 61 62 2d 61 6c 77 61 79 73 2d 69 6e 64 65 6e 74 e2 80 99 2e 0a 0a 20 20 20 54 6f 20 63 79 .tab-always-indent.........To.cy
1c4c0 63 6c 65 20 62 65 74 77 65 65 6e 20 63 6f 6d 70 6c 65 74 69 6f 6e 73 20 77 68 65 6e 20 68 69 74 cle.between.completions.when.hit
1c4e0 74 69 6e 67 20 e2 80 98 54 41 42 e2 80 99 20 6d 75 6c 74 69 70 6c 65 20 74 69 6d 65 73 2c 20 79 ting....TAB....multiple.times,.y
1c500 6f 75 0a 63 61 6e 20 61 64 6a 75 73 74 20 74 68 65 20 73 74 61 6e 64 61 72 64 20 63 6f 6d 70 6c ou.can.adjust.the.standard.compl
1c520 65 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 6c 69 6b 65 20 74 68 69 73 3a 0a 0a etion.configuration.like.this:..
1c540 20 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 68 6f 6f 6b .....(add-hook.'ledger-mode-hook
1c560 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 ................(lambda.()......
1c580 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 74 61 62 2d 61 6c 77 61 ............(setq-local.tab-alwa
1c5a0 79 73 2d 69 6e 64 65 6e 74 20 27 63 6f 6d 70 6c 65 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 ys-indent.'complete)............
1c5c0 20 20 20 20 20 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 63 6f 6d 70 6c 65 74 69 6f 6e 2d 63 79 63 ......(setq-local.completion-cyc
1c5e0 6c 65 2d 74 68 72 65 73 68 6f 6c 64 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 le-threshold.t).................
1c600 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 6c 65 64 67 65 72 2d 63 6f 6d 70 6c 65 74 65 2d 69 6e 2d .(setq-local.ledger-complete-in-
1c620 73 74 65 70 73 20 74 29 29 29 0a 0a 20 20 20 4c 65 64 67 65 72 2d 6d 6f 64 65 20 77 69 6c 6c 20 steps.t))).....Ledger-mode.will.
1c640 68 65 6c 70 20 79 6f 75 20 6b 65 65 70 20 79 6f 75 72 20 61 6d 6f 75 6e 74 73 20 61 6c 69 67 6e help.you.keep.your.amounts.align
1c660 65 64 2e 20 20 57 68 65 6e 20 69 6e 64 65 6e 74 69 6e 67 0a 6f 72 20 63 6f 6d 70 6c 65 74 69 6e ed...When.indenting.or.completin
1c680 67 2c 20 4c 65 64 67 65 72 2d 6d 6f 64 65 20 77 69 6c 6c 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c g,.Ledger-mode.will.automaticall
1c6a0 79 20 70 6c 61 63 65 20 61 6e 79 20 61 6d 6f 75 6e 74 73 20 73 75 63 68 0a 74 68 61 74 20 74 68 y.place.any.amounts.such.that.th
1c6c0 65 69 72 20 6c 61 73 74 20 64 69 67 69 74 20 69 73 20 61 6c 69 67 6e 65 64 20 74 6f 20 74 68 65 eir.last.digit.is.aligned.to.the
1c6e0 20 63 6f 6c 75 6d 6e 20 73 70 65 63 69 66 69 65 64 20 62 79 0a e2 80 98 6c 65 64 67 65 72 2d 70 .column.specified.by....ledger-p
1c700 6f 73 74 2d 61 6d 6f 75 6e 74 2d 61 6c 69 67 6e 6d 65 6e 74 2d 63 6f 6c 75 6d 6e e2 80 99 2c 20 ost-amount-alignment-column...,.
1c720 77 68 69 63 68 20 64 65 66 61 75 6c 74 73 20 74 6f 20 e2 80 98 35 32 e2 80 99 2e 20 20 2a 4e 6f which.defaults.to....52......*No
1c740 74 65 0a 4c 65 64 67 65 72 20 50 6f 73 74 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f te.Ledger.Post.Customization.Gro
1c760 75 70 3a 3a 2e 0a 0a 20 20 20 54 6f 20 70 72 65 76 65 6e 74 20 74 68 65 20 61 75 74 6f 6d 61 74 up::......To.prevent.the.automat
1c780 69 63 20 72 65 61 6c 69 67 6e 6d 65 6e 74 20 6f 66 20 61 6d 6f 75 6e 74 73 2c 20 64 69 73 61 62 ic.realignment.of.amounts,.disab
1c7a0 6c 65 0a e2 80 98 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 75 74 6f 2d 61 6c 69 67 6e e2 80 99 2e le....ledger-post-auto-align....
1c7c0 20 20 2a 4e 6f 74 65 20 4c 65 64 67 65 72 20 50 6f 73 74 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f ..*Note.Ledger.Post.Customizatio
1c7e0 6e 20 47 72 6f 75 70 3a 3a 2e 0a 0a 2a 20 4d 65 6e 75 3a 0a 0a 2a 20 53 65 74 74 69 6e 67 20 61 n.Group::...*.Menu:..*.Setting.a
1c800 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 20 45 66 66 65 63 74 69 76 65 20 44 61 74 65 3a 3a 0a 2a .Transactions.Effective.Date::.*
1c820 20 51 75 69 63 6b 20 42 61 6c 61 6e 63 65 20 44 69 73 70 6c 61 79 3a 3a 0a 0a 1f 0a 46 69 6c 65 .Quick.Balance.Display::....File
1c840 3a 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 53 65 74 74 69 :.ledger-mode.info,..Node:.Setti
1c860 6e 67 20 61 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 20 45 66 66 65 63 74 69 76 65 20 44 61 74 65 ng.a.Transactions.Effective.Date
1c880 2c 20 20 4e 65 78 74 3a 20 51 75 69 63 6b 20 42 61 6c 61 6e 63 65 20 44 69 73 70 6c 61 79 2c 20 ,..Next:.Quick.Balance.Display,.
1c8a0 20 50 72 65 76 3a 20 41 64 64 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 2c 20 20 55 70 3a .Prev:.Adding.Transactions,..Up:
1c8c0 20 41 64 64 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 0a 0a 32 2e 32 2e 31 20 53 65 74 74 .Adding.Transactions..2.2.1.Sett
1c8e0 69 6e 67 20 61 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 20 45 66 66 65 63 74 69 76 65 20 44 61 74 ing.a.Transactions.Effective.Dat
1c900 65 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d e.------------------------------
1c920 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 4c 65 64 67 65 72 20 70 72 6f 76 69 64 65 73 20 66 -------------..Ledger.provides.f
1c940 6f 72 20 61 64 64 69 6e 67 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 74 6f 20 61 20 74 72 61 6e 73 or.adding.information.to.a.trans
1c960 61 63 74 69 6f 6e 20 74 68 61 74 20 61 64 64 20 64 65 74 61 69 6c 73 0a 74 6f 20 74 68 65 20 64 action.that.add.details.to.the.d
1c980 61 74 65 73 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 79 6f 75 20 63 61 6e 20 73 70 65 63 ates...For.example,.you.can.spec
1c9a0 69 66 79 20 77 68 65 6e 20 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 77 61 73 0a 65 6e 74 ify.when.the.transaction.was.ent
1c9c0 65 72 65 64 2c 20 77 68 65 6e 20 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 77 61 73 20 63 ered,.when.the.transaction.was.c
1c9e0 6c 65 61 72 65 64 2c 20 6f 72 20 77 68 65 6e 20 69 6e 64 69 76 69 64 75 61 6c 20 70 6f 73 74 69 leared,.or.when.individual.posti
1ca00 6e 67 73 0a 77 65 72 65 20 63 6c 65 61 72 65 64 2e 20 20 4c 65 64 67 65 72 2d 6d 6f 64 65 20 72 ngs.were.cleared...Ledger-mode.r
1ca20 65 66 65 72 73 20 74 6f 20 74 68 65 73 65 20 61 64 64 69 74 69 6f 6e 61 6c 20 64 61 74 65 73 20 efers.to.these.additional.dates.
1ca40 61 73 0a 5f 65 66 66 65 63 74 69 76 65 5f 20 64 61 74 65 73 2e 20 20 54 6f 20 73 65 74 20 74 68 as._effective_.dates...To.set.th
1ca60 65 20 65 66 66 65 63 74 69 76 65 20 64 61 74 65 20 6f 66 20 61 20 74 72 61 6e 73 61 63 74 69 6f e.effective.date.of.a.transactio
1ca80 6e 2c 20 70 6c 61 63 65 0a 74 68 65 20 70 6f 69 6e 74 20 69 6e 20 74 68 65 20 66 69 72 73 74 20 n,.place.the.point.in.the.first.
1caa0 6c 69 6e 65 20 6f 66 20 61 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 61 6e 64 20 74 79 70 65 20 e2 line.of.a.transaction.and.type..
1cac0 80 98 43 2d 63 20 43 2d 74 e2 80 99 2e 20 20 54 68 65 0a 65 66 66 65 63 74 69 76 65 20 64 61 74 ..C-c.C-t......The.effective.dat
1cae0 65 20 77 69 6c 6c 20 62 65 20 61 64 64 65 64 20 74 6f 20 74 68 65 20 74 72 61 6e 73 61 63 74 69 e.will.be.added.to.the.transacti
1cb00 6f 6e 2e 20 20 54 6f 20 73 65 74 20 74 68 65 20 65 66 66 65 63 74 69 76 65 0a 64 61 74 65 20 66 on...To.set.the.effective.date.f
1cb20 6f 72 20 61 6e 20 69 6e 64 69 76 69 64 75 61 6c 20 70 6f 73 74 69 6e 67 2c 20 70 6c 61 63 65 20 or.an.individual.posting,.place.
1cb40 70 6f 69 6e 74 20 69 6e 20 74 68 65 20 70 6f 73 74 69 6e 67 20 61 6e 64 20 74 79 70 65 20 e2 80 point.in.the.posting.and.type...
1cb60 98 43 2d 63 0a 43 2d 74 e2 80 99 20 61 6e 64 20 74 68 65 20 65 66 66 65 63 74 69 76 65 20 64 61 .C-c.C-t....and.the.effective.da
1cb80 74 65 20 66 6f 72 20 74 68 61 74 20 70 6f 73 74 69 6e 67 20 77 69 6c 6c 20 62 65 20 61 64 64 65 te.for.that.posting.will.be.adde
1cba0 64 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 0a 74 68 65 20 70 6f 73 74 69 6e 67 2e 0a 0a 1f 0a d.at.the.end.of.the.posting.....
1cbc0 46 69 6c 65 3a 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 51 File:.ledger-mode.info,..Node:.Q
1cbe0 75 69 63 6b 20 42 61 6c 61 6e 63 65 20 44 69 73 70 6c 61 79 2c 20 20 50 72 65 76 3a 20 53 65 74 uick.Balance.Display,..Prev:.Set
1cc00 74 69 6e 67 20 61 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 20 45 66 66 65 63 74 69 76 65 20 44 61 ting.a.Transactions.Effective.Da
1cc20 74 65 2c 20 20 55 70 3a 20 41 64 64 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 0a 0a 32 2e te,..Up:.Adding.Transactions..2.
1cc40 32 2e 32 20 51 75 69 63 6b 20 42 61 6c 61 6e 63 65 20 44 69 73 70 6c 61 79 0a 2d 2d 2d 2d 2d 2d 2.2.Quick.Balance.Display.------
1cc60 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 59 6f 75 20 77 69 6c 6c 20 ---------------------..You.will.
1cc80 6f 66 74 65 6e 20 77 61 6e 74 20 74 6f 20 71 75 69 63 6b 6c 79 20 63 68 65 63 6b 20 74 68 65 20 often.want.to.quickly.check.the.
1cca0 62 61 6c 61 6e 63 65 20 6f 66 20 61 6e 20 61 63 63 6f 75 6e 74 2e 20 20 54 68 65 0a 65 61 73 69 balance.of.an.account...The.easi
1ccc0 65 73 74 20 77 61 79 20 69 73 20 74 6f 20 70 6f 73 69 74 69 6f 6e 20 70 6f 69 6e 74 20 6f 6e 20 est.way.is.to.position.point.on.
1cce0 74 68 65 20 61 63 63 6f 75 6e 74 20 79 6f 75 20 61 72 65 20 69 6e 74 65 72 65 73 74 65 64 20 69 the.account.you.are.interested.i
1cd00 6e 2c 0a 61 6e 64 20 74 79 70 65 20 e2 80 98 43 2d 63 20 43 2d 70 e2 80 99 2e 20 20 54 68 65 20 n,.and.type....C-c.C-p......The.
1cd20 4d 69 6e 69 62 75 66 66 65 72 20 77 69 6c 6c 20 61 73 6b 20 79 6f 75 20 74 6f 20 76 65 72 69 66 Minibuffer.will.ask.you.to.verif
1cd40 79 20 74 68 65 20 6e 61 6d 65 20 6f 66 0a 74 68 65 20 61 63 63 6f 75 6e 74 20 79 6f 75 20 77 61 y.the.name.of.the.account.you.wa
1cd60 6e 74 2c 20 69 66 20 69 74 20 69 73 20 61 6c 72 65 61 64 79 20 63 6f 72 72 65 63 74 20 68 69 74 nt,.if.it.is.already.correct.hit
1cd80 20 e2 80 98 52 45 54 e2 80 99 2c 20 74 68 65 6e 20 74 68 65 0a 62 61 6c 61 6e 63 65 20 6f 66 20 ....RET...,.then.the.balance.of.
1cda0 74 68 65 20 61 63 63 6f 75 6e 74 20 77 69 6c 6c 20 62 65 20 64 69 73 70 6c 61 79 65 64 20 69 6e the.account.will.be.displayed.in
1cdc0 20 74 68 65 20 4d 69 6e 69 62 75 66 66 65 72 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 6c 65 64 67 65 72 .the.Minibuffer.....File:.ledger
1cde0 2d 6d 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 43 6f 70 79 69 6e 67 20 54 72 61 6e 73 -mode.info,..Node:.Copying.Trans
1ce00 61 63 74 69 6f 6e 73 2c 20 20 4e 65 78 74 3a 20 45 64 69 74 69 6e 67 20 41 6d 6f 75 6e 74 73 2c actions,..Next:.Editing.Amounts,
1ce20 20 20 50 72 65 76 3a 20 41 64 64 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 2c 20 20 55 70 ..Prev:.Adding.Transactions,..Up
1ce40 3a 20 54 68 65 20 4c 65 64 67 65 72 20 42 75 66 66 65 72 0a 0a 32 2e 33 20 43 6f 70 79 69 6e 67 :.The.Ledger.Buffer..2.3.Copying
1ce60 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d .Transactions.==================
1ce80 3d 3d 3d 3d 3d 3d 0a 0a 41 6e 20 65 61 73 79 20 77 61 79 20 74 6f 20 63 6f 70 79 20 61 20 74 72 ======..An.easy.way.to.copy.a.tr
1cea0 61 6e 73 61 63 74 69 6f 6e 20 69 73 20 74 6f 20 74 79 70 65 20 e2 80 98 43 2d 63 20 43 2d 6b e2 ansaction.is.to.type....C-c.C-k.
1cec0 80 99 20 6f 72 20 6d 65 6e 75 20 65 6e 74 72 79 0a e2 80 98 43 6f 70 79 20 54 72 61 6e 73 20 61 ...or.menu.entry....Copy.Trans.a
1cee0 74 20 50 6f 69 6e 74 e2 80 99 2e 20 20 59 6f 75 20 77 69 6c 6c 20 62 65 20 70 72 6f 6d 70 74 65 t.Point......You.will.be.prompte
1cf00 64 20 74 68 65 20 6e 65 77 20 64 61 74 65 20 66 6f 72 20 74 68 65 20 63 6f 70 69 65 64 0a 74 72 d.the.new.date.for.the.copied.tr
1cf20 61 6e 73 61 63 74 69 6f 6e 2c 20 61 6e 64 20 61 66 74 65 72 20 68 61 76 69 6e 67 20 63 6f 6e 66 ansaction,.and.after.having.conf
1cf40 69 72 6d 65 64 20 77 69 74 68 20 e2 80 98 52 45 54 e2 80 99 2c 20 6e 65 77 20 74 72 61 6e 73 61 irmed.with....RET...,.new.transa
1cf60 63 74 69 6f 6e 20 77 69 6c 6c 0a 62 65 20 69 6e 73 65 72 74 65 64 20 61 74 20 5f 64 61 74 65 5f ction.will.be.inserted.at._date_
1cf80 20 70 6f 73 69 74 69 6f 6e 20 69 6e 20 62 75 66 66 65 72 2e 0a 0a 20 20 20 49 66 20 79 6f 75 20 .position.in.buffer......If.you.
1cfa0 70 72 65 66 65 72 20 74 6f 20 6b 65 65 70 20 62 6c 61 6e 6b 20 6c 69 6e 65 73 20 62 65 74 77 65 prefer.to.keep.blank.lines.betwe
1cfc0 65 6e 20 79 6f 75 72 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 2c 20 79 6f 75 20 63 61 6e 0a 63 68 en.your.transactions,.you.can.ch
1cfe0 61 6e 67 65 20 74 68 65 20 64 65 66 61 75 6c 74 20 69 6e 20 e2 80 98 6c 65 64 67 65 72 2d 63 6f ange.the.default.in....ledger-co
1d000 70 79 2d 74 72 61 6e 73 61 63 74 69 6f 6e 2d 69 6e 73 65 72 74 2d 62 6c 61 6e 6b 2d 6c 69 6e 65 py-transaction-insert-blank-line
1d020 2d 61 66 74 65 72 e2 80 99 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2e -after........File:.ledger-mode.
1d040 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 45 64 69 74 69 6e 67 20 41 6d 6f 75 6e 74 73 2c 20 20 4e info,..Node:.Editing.Amounts,..N
1d060 65 78 74 3a 20 4d 61 72 6b 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 2c 20 20 50 72 65 76 ext:.Marking.Transactions,..Prev
1d080 3a 20 43 6f 70 79 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 2c 20 20 55 70 3a 20 54 68 65 :.Copying.Transactions,..Up:.The
1d0a0 20 4c 65 64 67 65 72 20 42 75 66 66 65 72 0a 0a 32 2e 34 20 45 64 69 74 69 6e 67 20 41 6d 6f 75 .Ledger.Buffer..2.4.Editing.Amou
1d0c0 6e 74 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 47 4e 55 20 45 6d 61 nts.===================..GNU.Ema
1d0e0 63 73 20 43 61 6c 63 75 6c 61 74 6f 72 2c 20 61 6b 61 20 e2 80 98 43 61 6c 63 e2 80 99 2c 20 69 cs.Calculator,.aka....Calc...,.i
1d100 73 20 61 20 76 65 72 79 20 70 6f 77 65 72 66 75 6c 20 52 65 76 65 72 73 65 20 50 6f 6c 69 73 68 s.a.very.powerful.Reverse.Polish
1d120 0a 4e 6f 74 61 74 69 6f 6e 20 63 61 6c 63 75 6c 61 74 6f 72 20 62 75 69 6c 74 20 69 6e 74 6f 20 .Notation.calculator.built.into.
1d140 61 6c 6c 20 72 65 63 65 6e 74 20 76 65 72 73 69 6f 6e 20 6f 66 20 45 6d 61 63 73 2e 20 20 4c 65 all.recent.version.of.Emacs...Le
1d160 64 67 65 72 2d 6d 6f 64 65 0a 6d 61 6b 65 73 20 69 74 20 65 61 73 79 20 74 6f 20 63 61 6c 63 75 dger-mode.makes.it.easy.to.calcu
1d180 6c 61 74 65 20 76 61 6c 75 65 73 20 66 6f 72 20 61 6d 6f 75 6e 74 20 62 79 20 69 6e 74 65 67 72 late.values.for.amount.by.integr
1d1a0 61 74 69 6e 67 20 e2 80 98 43 61 6c 63 e2 80 99 2e 0a 57 69 74 68 20 74 68 65 20 70 6f 69 6e 74 ating....Calc.....With.the.point
1d1c0 20 61 6e 79 77 68 65 72 65 20 69 6e 20 74 68 65 20 73 61 6d 65 20 6c 69 6e 65 20 61 73 20 61 20 .anywhere.in.the.same.line.as.a.
1d1e0 70 6f 73 74 69 6e 67 2c 20 74 79 70 69 6e 67 20 e2 80 98 43 2d 63 20 43 2d 62 e2 80 99 0a 77 69 posting,.typing....C-c.C-b....wi
1d200 6c 6c 20 62 72 69 6e 67 20 75 70 20 74 68 65 20 e2 80 98 43 61 6c 63 e2 80 99 20 62 75 66 66 65 ll.bring.up.the....Calc....buffe
1d220 72 2c 20 61 6e 64 20 70 75 73 68 20 74 68 65 20 63 75 72 72 65 6e 74 20 61 6d 6f 75 6e 74 20 66 r,.and.push.the.current.amount.f
1d240 6f 72 20 74 68 65 0a 70 6f 73 74 69 6e 67 20 6f 6e 74 6f 20 74 68 65 20 74 6f 70 20 6f 66 20 74 or.the.posting.onto.the.top.of.t
1d260 68 65 20 e2 80 98 43 61 6c 63 e2 80 99 20 73 74 61 63 6b 2e 20 20 50 65 72 66 6f 72 6d 20 61 6e he....Calc....stack...Perform.an
1d280 79 20 63 61 6c 63 75 6c 61 74 69 6f 6e 73 20 79 6f 75 0a 6e 65 65 64 20 74 6f 20 61 72 72 69 76 y.calculations.you.need.to.arriv
1d2a0 65 20 61 74 20 74 68 65 20 66 69 6e 61 6c 20 76 61 6c 75 65 2c 20 74 68 65 6e 20 74 79 70 65 20 e.at.the.final.value,.then.type.
1d2c0 e2 80 98 79 e2 80 99 20 74 6f 20 79 61 6e 6b 20 74 68 65 20 76 61 6c 75 65 20 61 74 0a 74 68 65 ...y....to.yank.the.value.at.the
1d2e0 20 74 6f 70 20 6f 66 20 73 74 61 63 6b 20 62 61 63 6b 20 69 6e 74 6f 20 74 68 65 20 6c 65 64 67 .top.of.stack.back.into.the.ledg
1d300 65 72 20 62 75 66 66 65 72 2e 20 20 4e 6f 74 65 3a 20 e2 80 98 43 61 6c 63 e2 80 99 20 64 6f 65 er.buffer...Note:....Calc....doe
1d320 73 20 6e 6f 74 0a 64 69 72 65 63 74 6c 79 20 73 75 70 70 6f 72 74 20 63 6f 6d 6d 61 73 20 61 73 s.not.directly.support.commas.as
1d340 20 64 65 63 69 6d 61 6c 20 73 65 70 61 72 61 74 6f 72 73 2e 20 20 4c 65 64 67 65 72 2d 6d 6f 64 .decimal.separators...Ledger-mod
1d360 65 20 77 69 6c 6c 0a 74 72 61 6e 73 6c 61 74 65 20 76 61 6c 75 65 73 20 66 72 6f 6d 20 64 65 63 e.will.translate.values.from.dec
1d380 69 6d 61 6c 2d 63 6f 6d 6d 61 20 66 6f 72 6d 61 74 20 74 6f 20 64 65 63 69 6d 61 6c 2d 70 65 72 imal-comma.format.to.decimal-per
1d3a0 69 6f 64 20 66 6f 72 6d 61 74 20 66 6f 72 0a 75 73 65 20 69 6e 20 e2 80 98 43 61 6c 63 e2 80 99 iod.format.for.use.in....Calc...
1d3c0 2c 20 62 75 74 20 69 74 20 63 61 6e 6e 6f 74 20 69 6e 74 65 72 63 65 70 74 20 74 68 65 20 76 61 ,.but.it.cannot.intercept.the.va
1d3e0 6c 75 65 20 62 65 69 6e 67 20 79 61 6e 6b 65 64 20 66 72 6f 6d 20 74 68 65 0a e2 80 98 43 61 6c lue.being.yanked.from.the....Cal
1d400 63 e2 80 99 20 73 74 61 63 6b 2c 20 73 6f 20 64 65 63 69 6d 61 6c 2d 63 6f 6d 6d 61 20 75 73 65 c....stack,.so.decimal-comma.use
1d420 72 73 20 77 69 6c 6c 20 68 61 76 65 20 74 6f 20 6d 61 6e 75 61 6c 6c 79 20 72 65 70 6c 61 63 65 rs.will.have.to.manually.replace
1d440 20 74 68 65 0a 70 65 72 69 6f 64 20 77 69 74 68 20 61 20 63 6f 6d 6d 61 2e 0a 0a 1f 0a 46 69 6c .the.period.with.a.comma.....Fil
1d460 65 3a 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 4d 61 72 6b e:.ledger-mode.info,..Node:.Mark
1d480 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 2c 20 20 4e 65 78 74 3a 20 46 6f 72 6d 61 74 74 ing.Transactions,..Next:.Formatt
1d4a0 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 2c 20 20 50 72 65 76 3a 20 45 64 69 74 69 6e 67 ing.Transactions,..Prev:.Editing
1d4c0 20 41 6d 6f 75 6e 74 73 2c 20 20 55 70 3a 20 54 68 65 20 4c 65 64 67 65 72 20 42 75 66 66 65 72 .Amounts,..Up:.The.Ledger.Buffer
1d4e0 0a 0a 32 2e 35 20 4d 61 72 6b 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 0a 3d 3d 3d 3d 3d ..2.5.Marking.Transactions.=====
1d500 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 4c 65 64 67 65 72 20 63 6f 6e 73 ===================..Ledger.cons
1d520 69 64 65 72 73 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 6f 72 20 70 6f 73 74 69 6e 67 20 74 6f 20 iders.transaction.or.posting.to.
1d540 62 65 20 69 6e 20 6f 6e 65 20 6f 66 20 74 68 72 65 65 20 73 74 61 74 65 73 3a 0a 75 6e 63 6c 65 be.in.one.of.three.states:.uncle
1d560 61 72 65 64 2c 20 63 6c 65 61 72 65 64 2c 20 61 6e 64 20 70 65 6e 64 69 6e 67 2e 20 20 46 6f 72 ared,.cleared,.and.pending...For
1d580 20 63 61 6c 63 75 6c 61 74 69 6f 6e 20 4c 65 64 67 65 72 20 69 67 6e 6f 72 65 73 20 74 68 65 73 .calculation.Ledger.ignores.thes
1d5a0 65 0a 73 74 61 74 65 73 20 75 6e 6c 65 73 73 20 73 70 65 63 69 66 69 63 61 6c 6c 79 20 69 6e 73 e.states.unless.specifically.ins
1d5c0 74 72 75 63 74 65 64 20 74 6f 20 75 73 65 20 74 68 65 6d 2e 20 20 4c 65 64 67 65 72 2d 6d 6f 64 tructed.to.use.them...Ledger-mod
1d5e0 65 20 61 73 73 69 67 6e 73 0a 73 6f 6d 65 20 61 64 64 69 74 69 6f 6e 61 6c 20 6d 65 61 6e 69 6e e.assigns.some.additional.meanin
1d600 67 20 74 6f 20 74 68 65 20 73 74 61 74 65 73 3a 0a 0a 20 20 20 e2 80 a2 20 55 6e 63 6c 65 61 72 g.to.the.states:.........Unclear
1d620 65 64 2e 20 20 4e 6f 20 73 74 61 74 65 2e 20 20 54 68 69 73 20 69 73 20 65 71 75 69 76 61 6c 65 ed...No.state...This.is.equivale
1d640 6e 74 20 74 6f 20 73 74 69 63 6b 69 6e 67 20 61 20 63 68 65 63 6b 20 69 6e 0a 20 20 20 20 20 74 nt.to.sticking.a.check.in......t
1d660 68 65 20 6d 61 69 6c 2e 20 20 49 74 20 68 61 73 20 62 65 65 6e 20 6f 62 6c 69 67 61 74 65 64 2c he.mail...It.has.been.obligated,
1d680 20 62 75 74 20 6e 6f 74 20 62 65 65 6e 20 63 61 73 68 65 64 20 62 79 20 74 68 65 0a 20 20 20 20 .but.not.been.cashed.by.the.....
1d6a0 20 72 65 63 69 70 69 65 6e 74 2e 20 20 49 74 20 63 6f 75 6c 64 20 61 6c 73 6f 20 61 70 70 6c 79 .recipient...It.could.also.apply
1d6c0 20 74 6f 20 63 72 65 64 69 74 2f 64 65 62 69 74 20 63 61 72 64 20 74 72 61 6e 73 61 63 74 69 6f .to.credit/debit.card.transactio
1d6e0 6e 73 0a 20 20 20 20 20 74 68 61 74 20 68 61 76 65 20 6e 6f 74 20 62 65 65 6e 20 63 6c 65 61 72 ns......that.have.not.been.clear
1d700 65 64 20 69 6e 74 6f 20 79 6f 75 72 20 61 63 63 6f 75 6e 74 20 62 61 6c 61 6e 63 65 2e 20 20 59 ed.into.your.account.balance...Y
1d720 6f 75 20 62 61 6e 6b 20 6d 61 79 0a 20 20 20 20 20 63 61 6c 6c 20 74 68 65 73 65 20 74 72 61 6e ou.bank.may......call.these.tran
1d740 73 61 63 74 69 6f 6e 73 20 5f 70 65 6e 64 69 6e 67 5f 2c 20 62 75 74 20 4c 65 64 67 65 72 2d 6d sactions._pending_,.but.Ledger-m
1d760 6f 64 65 20 75 73 65 73 20 61 20 73 6c 69 67 68 74 6c 79 0a 20 20 20 20 20 64 69 66 66 65 72 65 ode.uses.a.slightly......differe
1d780 6e 74 20 6d 65 61 6e 69 6e 67 2e 0a 0a 20 20 20 e2 80 a2 20 50 65 6e 64 69 6e 67 2e 20 20 4c 65 nt.meaning..........Pending...Le
1d7a0 64 67 65 72 2d 6d 6f 64 65 e2 80 99 73 20 72 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 20 66 75 6e dger-mode...s.reconciliation.fun
1d7c0 63 74 69 6f 6e 20 73 65 65 20 70 65 6e 64 69 6e 67 0a 20 20 20 20 20 74 72 61 6e 73 61 63 74 69 ction.see.pending......transacti
1d7e0 6f 6e 73 20 61 73 20 61 6e 20 69 6e 74 65 72 6d 65 64 69 61 74 65 20 73 74 65 70 20 69 6e 20 72 ons.as.an.intermediate.step.in.r
1d800 65 63 6f 6e 63 69 6c 69 6e 67 20 61 6e 20 61 63 63 6f 75 6e 74 2e 0a 20 20 20 20 20 57 68 65 6e econciling.an.account.......When
1d820 20 64 6f 69 6e 67 20 61 20 72 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 20 28 2a 6e 6f 74 65 20 52 .doing.a.reconciliation.(*note.R
1d840 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 3a 3a 29 2c 20 6d 61 72 6b 69 6e 67 20 61 0a 20 20 20 20 econciliation::),.marking.a.....
1d860 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 61 73 20 70 65 6e 64 69 6e 67 20 6d 65 61 6e 73 20 74 68 .transaction.as.pending.means.th
1d880 61 74 20 79 6f 75 20 68 61 76 65 20 73 65 65 6e 20 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e at.you.have.seen.the.transaction
1d8a0 0a 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 72 65 63 6f 72 64 65 64 20 62 79 20 74 68 65 20 72 65 ......finally.recorded.by.the.re
1d8c0 63 69 70 69 65 6e 74 2c 20 62 75 74 20 79 6f 75 20 68 61 76 65 20 6e 6f 74 20 63 6f 6d 70 6c 65 cipient,.but.you.have.not.comple
1d8e0 74 65 6c 79 0a 20 20 20 20 20 72 65 63 6f 6e 63 69 6c 65 64 20 74 68 65 20 61 63 63 6f 75 6e 74 tely......reconciled.the.account
1d900 2e 0a 0a 20 20 20 e2 80 a2 20 43 6c 65 61 72 65 64 2e 20 20 54 68 65 20 74 72 61 6e 73 61 63 74 ..........Cleared...The.transact
1d920 69 6f 6e 20 68 61 73 20 62 65 65 6e 20 63 6f 6d 70 6c 65 74 65 6c 79 20 72 65 63 6f 67 6e 69 7a ion.has.been.completely.recogniz
1d940 65 64 20 62 79 20 61 6c 6c 0a 20 20 20 20 20 70 61 72 74 69 65 73 20 74 6f 20 74 68 65 20 74 72 ed.by.all......parties.to.the.tr
1d960 61 6e 73 61 63 74 69 6f 6e 2e 0a 0a 20 20 20 54 79 70 69 6e 67 20 e2 80 98 43 2d 63 20 43 2d 63 ansaction......Typing....C-c.C-c
1d980 e2 80 99 2c 20 64 65 70 65 6e 64 69 6e 67 20 77 68 65 72 65 20 69 73 20 74 68 65 20 70 6f 69 6e ...,.depending.where.is.the.poin
1d9a0 74 2c 20 77 69 6c 6c 20 63 6c 65 61 72 20 74 68 65 0a 63 6f 6d 70 6c 65 74 65 20 74 72 61 6e 73 t,.will.clear.the.complete.trans
1d9c0 61 63 74 69 6f 6e 2c 20 6f 72 20 61 6e 20 69 6e 64 69 76 69 64 75 61 6c 20 70 6f 73 74 69 6e 67 action,.or.an.individual.posting
1d9e0 2e 20 20 54 68 69 73 20 70 6c 61 63 65 73 20 61 6e 20 61 73 74 65 72 69 73 6b 0a e2 80 98 2a e2 ...This.places.an.asterisk....*.
1da00 80 99 20 70 72 69 6f 72 20 74 6f 20 74 68 65 20 70 61 79 65 65 20 66 6f 72 20 74 68 65 20 63 6f ...prior.to.the.payee.for.the.co
1da20 6d 70 6c 65 74 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 2c 20 6f 72 20 70 72 69 6f 72 20 74 6f 20 mplete.transaction,.or.prior.to.
1da40 74 68 65 0a 61 63 63 6f 75 6e 74 20 66 6f 72 20 61 6e 20 69 6e 64 69 76 69 64 75 61 6c 20 70 6f the.account.for.an.individual.po
1da60 73 74 69 6e 67 2e 20 20 57 68 65 6e 20 70 6f 69 6e 74 20 69 73 20 69 6e 73 69 64 65 20 61 20 74 sting...When.point.is.inside.a.t
1da80 72 61 6e 73 61 63 74 69 6f 6e 2c 0a 73 70 65 63 69 66 69 63 61 6c 6c 79 20 6f 6e 20 61 6e 20 69 ransaction,.specifically.on.an.i
1daa0 6e 64 69 76 69 64 75 61 6c 20 70 6f 73 74 69 6e 67 2c 20 79 6f 75 20 63 61 6e 20 73 74 69 6c 6c ndividual.posting,.you.can.still
1dac0 20 63 6c 65 61 72 20 74 68 65 20 63 6f 6d 70 6c 65 74 65 0a 74 72 61 6e 73 61 63 74 69 6f 6e 20 .clear.the.complete.transaction.
1dae0 62 79 20 74 79 70 69 6e 67 20 e2 80 98 43 2d 63 20 43 2d 65 e2 80 99 2e 0a 0a 1f 0a 46 69 6c 65 by.typing....C-c.C-e........File
1db00 3a 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 46 6f 72 6d 61 :.ledger-mode.info,..Node:.Forma
1db20 74 74 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 2c 20 20 4e 65 78 74 3a 20 44 65 6c 65 74 tting.Transactions,..Next:.Delet
1db40 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 2c 20 20 50 72 65 76 3a 20 4d 61 72 6b 69 6e 67 ing.Transactions,..Prev:.Marking
1db60 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 2c 20 20 55 70 3a 20 54 68 65 20 4c 65 64 67 65 72 20 42 .Transactions,..Up:.The.Ledger.B
1db80 75 66 66 65 72 0a 0a 32 2e 36 20 46 6f 72 6d 61 74 74 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f uffer..2.6.Formatting.Transactio
1dba0 6e 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a ns.===========================..
1dbc0 57 68 65 6e 20 65 64 69 74 69 6e 67 20 61 20 74 72 61 6e 73 61 63 74 69 6f 6e 2c 20 6c 69 62 65 When.editing.a.transaction,.libe
1dbe0 72 61 6c 20 75 73 65 20 6f 66 20 74 68 65 20 e2 80 98 54 41 42 e2 80 99 20 6b 65 79 20 63 61 6e ral.use.of.the....TAB....key.can
1dc00 20 6b 65 65 70 20 74 68 65 0a 74 72 61 6e 73 61 63 74 69 6f 6e 20 77 65 6c 6c 20 66 6f 72 6d 61 .keep.the.transaction.well.forma
1dc20 74 74 65 64 2e 20 20 49 66 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 68 61 76 65 20 4c 65 64 67 65 tted...If.you.want.to.have.Ledge
1dc40 72 2d 6d 6f 64 65 20 63 6c 65 61 6e 75 70 20 74 68 65 0a 66 6f 72 6d 61 74 74 69 6e 67 20 6f 66 r-mode.cleanup.the.formatting.of
1dc60 20 61 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 79 6f 75 20 63 61 6e 20 75 73 65 20 e2 80 98 41 6c .a.transaction.you.can.use....Al
1dc80 69 67 6e 20 54 72 61 6e 73 61 63 74 69 6f 6e e2 80 99 20 6f 72 20 e2 80 98 41 6c 69 67 6e 0a 52 ign.Transaction....or....Align.R
1dca0 65 67 69 6f 6e e2 80 99 20 66 72 6f 6d 20 74 68 65 20 6d 65 6e 75 20 62 61 72 2e 0a 0a 20 20 20 egion....from.the.menu.bar......
1dcc0 54 68 65 20 6d 65 6e 75 20 69 74 65 6d 20 e2 80 98 43 6c 65 61 6e 2d 75 70 20 42 75 66 66 65 72 The.menu.item....Clean-up.Buffer
1dce0 e2 80 99 20 73 6f 72 74 73 20 61 6c 6c 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 69 6e 20 74 68 ....sorts.all.transactions.in.th
1dd00 65 20 62 75 66 66 65 72 0a 62 79 20 64 61 74 65 2c 20 72 65 6d 6f 76 65 73 20 65 78 74 72 61 6e e.buffer.by.date,.removes.extran
1dd20 65 6f 75 73 20 65 6d 70 74 79 20 6c 69 6e 65 73 20 61 6e 64 20 61 6c 69 67 6e 73 20 65 76 65 72 eous.empty.lines.and.aligns.ever
1dd40 79 20 74 72 61 6e 73 61 63 74 69 6f 6e 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 6c 65 64 67 65 72 2d 6d y.transaction.....File:.ledger-m
1dd60 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 44 65 6c 65 74 69 6e 67 20 54 72 61 6e 73 61 ode.info,..Node:.Deleting.Transa
1dd80 63 74 69 6f 6e 73 2c 20 20 4e 65 78 74 3a 20 53 6f 72 74 69 6e 67 20 54 72 61 6e 73 61 63 74 69 ctions,..Next:.Sorting.Transacti
1dda0 6f 6e 73 2c 20 20 50 72 65 76 3a 20 46 6f 72 6d 61 74 74 69 6e 67 20 54 72 61 6e 73 61 63 74 69 ons,..Prev:.Formatting.Transacti
1ddc0 6f 6e 73 2c 20 20 55 70 3a 20 54 68 65 20 4c 65 64 67 65 72 20 42 75 66 66 65 72 0a 0a 32 2e 37 ons,..Up:.The.Ledger.Buffer..2.7
1dde0 20 44 65 6c 65 74 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d .Deleting.Transactions.=========
1de00 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 41 6c 6f 6e 67 20 77 69 74 68 20 6e 6f 72 ================..Along.with.nor
1de20 6d 61 6c 20 62 75 66 66 65 72 20 65 64 69 74 69 6e 67 20 6d 65 74 68 6f 64 73 20 74 6f 20 64 65 mal.buffer.editing.methods.to.de
1de40 6c 65 74 65 20 74 65 78 74 2c 20 4c 65 64 67 65 72 2d 6d 6f 64 65 0a 70 72 6f 76 69 64 65 73 20 lete.text,.Ledger-mode.provides.
1de60 61 6e 20 65 61 73 79 20 77 61 79 20 74 6f 20 64 65 6c 65 74 65 20 74 68 65 20 74 72 61 6e 73 61 an.easy.way.to.delete.the.transa
1de80 63 74 69 6f 6e 20 75 6e 64 65 72 20 70 6f 69 6e 74 3a 20 e2 80 98 43 2d 63 20 43 2d 64 e2 80 99 ction.under.point:....C-c.C-d...
1dea0 2e 0a 54 68 65 20 61 64 76 61 6e 74 61 67 65 20 74 6f 20 75 73 69 6e 67 20 74 68 69 73 20 6d 65 ..The.advantage.to.using.this.me
1dec0 74 68 6f 64 20 69 73 20 74 68 61 74 20 74 68 65 20 63 6f 6d 70 6c 65 74 65 20 74 72 61 6e 73 61 thod.is.that.the.complete.transa
1dee0 63 74 69 6f 6e 0a 6f 70 65 72 61 74 69 6f 6e 20 69 73 20 69 6e 20 74 68 65 20 75 6e 64 6f 20 62 ction.operation.is.in.the.undo.b
1df00 75 66 66 65 72 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 69 6e 66 6f uffer.....File:.ledger-mode.info
1df20 2c 20 20 4e 6f 64 65 3a 20 53 6f 72 74 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 2c 20 20 ,..Node:.Sorting.Transactions,..
1df40 4e 65 78 74 3a 20 4e 61 72 72 6f 77 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 2c 20 20 50 Next:.Narrowing.Transactions,..P
1df60 72 65 76 3a 20 44 65 6c 65 74 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 2c 20 20 55 70 3a rev:.Deleting.Transactions,..Up:
1df80 20 54 68 65 20 4c 65 64 67 65 72 20 42 75 66 66 65 72 0a 0a 32 2e 38 20 53 6f 72 74 69 6e 67 20 .The.Ledger.Buffer..2.8.Sorting.
1dfa0 54 72 61 6e 73 61 63 74 69 6f 6e 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d Transactions.===================
1dfc0 3d 3d 3d 3d 3d 0a 0a 41 73 20 79 6f 75 20 6f 70 65 72 61 74 69 6e 67 20 6f 6e 20 74 68 65 20 4c =====..As.you.operating.on.the.L
1dfe0 65 64 67 65 72 20 66 69 6c 65 73 2c 20 74 68 65 79 20 6d 61 79 20 62 65 63 6f 6d 65 20 64 69 73 edger.files,.they.may.become.dis
1e000 6f 72 67 61 6e 69 7a 65 64 2e 20 20 46 6f 72 0a 74 68 65 20 6d 6f 73 74 20 70 61 72 74 2c 20 4c organized...For.the.most.part,.L
1e020 65 64 67 65 72 20 64 6f 65 73 6e e2 80 99 74 20 63 61 72 65 2c 20 62 75 74 20 6f 75 72 20 68 75 edger.doesn...t.care,.but.our.hu
1e040 6d 61 6e 20 62 72 61 69 6e 73 20 70 72 65 66 65 72 20 61 20 62 69 74 20 6f 66 0a 6f 72 64 65 72 man.brains.prefer.a.bit.of.order
1e060 2e 20 20 53 6f 72 74 69 6e 67 20 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 69 6e 20 61 ...Sorting.the.transactions.in.a
1e080 20 62 75 66 66 65 72 20 69 6e 74 6f 20 63 68 72 6f 6e 6f 6c 6f 67 69 63 61 6c 20 6f 72 64 65 72 .buffer.into.chronological.order
1e0a0 0a 63 61 6e 20 68 65 6c 70 20 62 72 69 6e 67 20 6f 72 64 65 72 20 74 6f 20 63 68 61 6f 73 2e 20 .can.help.bring.order.to.chaos..
1e0c0 20 45 69 74 68 65 72 20 75 73 69 6e 67 20 e2 80 98 53 6f 72 74 20 52 65 67 69 6f 6e e2 80 99 20 .Either.using....Sort.Region....
1e0e0 6d 65 6e 75 20 65 6e 74 72 79 20 6f 72 0a 74 79 70 69 6e 67 20 e2 80 98 43 2d 63 20 43 2d 73 e2 menu.entry.or.typing....C-c.C-s.
1e100 80 99 20 77 69 6c 6c 20 73 6f 72 74 20 61 6c 6c 20 6f 66 20 74 68 65 20 74 72 61 6e 73 61 63 74 ...will.sort.all.of.the.transact
1e120 69 6f 6e 73 20 69 6e 20 61 20 72 65 67 69 6f 6e 20 62 79 20 64 61 74 65 2e 0a 4c 65 64 67 65 72 ions.in.a.region.by.date..Ledger
1e140 2d 6d 6f 64 65 20 69 73 6e e2 80 99 74 20 70 61 72 74 69 63 75 6c 61 72 6c 79 20 73 6d 61 72 74 -mode.isn...t.particularly.smart
1e160 20 61 62 6f 75 74 20 68 61 6e 64 6c 69 6e 67 20 64 61 74 65 73 20 61 6e 64 20 69 74 20 73 69 6d .about.handling.dates.and.it.sim
1e180 70 6c 79 0a 73 6f 72 74 73 20 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 75 73 69 6e 67 ply.sorts.the.transactions.using
1e1a0 20 74 68 65 20 73 74 72 69 6e 67 20 61 74 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 .the.string.at.the.beginning.of.
1e1c0 74 68 65 0a 74 72 61 6e 73 61 63 74 69 6f 6e 2e 20 20 53 6f 2c 20 79 6f 75 20 73 68 6f 75 6c 64 the.transaction...So,.you.should
1e1e0 20 75 73 65 20 74 68 65 20 70 72 65 66 65 72 72 65 64 20 49 53 4f 20 38 36 30 31 20 73 74 61 6e .use.the.preferred.ISO.8601.stan
1e200 64 61 72 64 20 64 61 74 65 0a 66 6f 72 6d 61 74 20 e2 80 98 59 59 59 59 2f 4d 4d 2f 44 44 e2 80 dard.date.format....YYYY/MM/DD..
1e220 99 20 77 68 69 63 68 20 65 61 73 69 6c 79 20 73 6f 72 74 73 2e 0a 0a 20 20 20 4e 6f 74 65 2c 20 ..which.easily.sorts......Note,.
1e240 74 68 65 72 65 20 69 73 20 61 20 6d 65 6e 75 20 65 6e 74 72 79 20 e2 80 98 53 6f 72 74 20 42 75 there.is.a.menu.entry....Sort.Bu
1e260 66 66 65 72 e2 80 99 20 74 6f 20 73 6f 72 74 20 74 68 65 20 65 6e 74 69 72 65 20 62 75 66 66 65 ffer....to.sort.the.entire.buffe
1e280 72 2e 0a 53 70 65 63 69 61 6c 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 6c 69 6b 65 20 61 75 74 r..Special.transactions.like.aut
1e2a0 6f 6d 61 74 65 64 20 74 72 61 6e 73 61 63 74 69 6f 6e 2c 20 77 69 6c 6c 20 62 65 20 6d 6f 76 65 omated.transaction,.will.be.move
1e2c0 64 20 69 6e 20 74 68 65 0a 73 6f 72 74 69 6e 67 20 70 72 6f 63 65 73 73 20 61 6e 64 20 6d 61 79 d.in.the.sorting.process.and.may
1e2e0 20 6e 6f 74 20 66 75 6e 63 74 69 6f 6e 20 63 6f 72 72 65 63 74 6c 79 20 61 66 74 65 72 77 61 72 .not.function.correctly.afterwar
1e300 64 73 2e 20 20 46 6f 72 20 74 68 69 73 0a 72 65 61 73 6f 6e 20 74 68 65 72 65 20 69 73 20 6e 6f ds...For.this.reason.there.is.no
1e320 20 6b 65 79 20 73 65 71 75 65 6e 63 65 2e 0a 0a 20 20 20 59 6f 75 20 63 61 6e 20 6c 69 6d 69 74 .key.sequence......You.can.limit
1e340 20 74 68 65 20 61 6c 6c 6f 77 65 64 20 73 6f 72 74 20 72 65 67 69 6f 6e 20 62 79 20 75 73 69 6e .the.allowed.sort.region.by.usin
1e360 67 20 65 6d 62 65 64 64 65 64 20 4c 65 64 67 65 72 2d 6d 6f 64 65 0a 6d 61 72 6b 75 70 20 77 69 g.embedded.Ledger-mode.markup.wi
1e380 74 68 69 6e 20 79 6f 75 72 20 6c 65 64 67 65 72 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 3a 0a thin.your.ledger...For.example:.
1e3a0 0a 20 20 20 20 20 3c 3c 3c 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 74 6f 20 6e 6f 74 20 73 6f 72 ......<<<.information.to.not.sor
1e3c0 74 20 3e 3e 3e 0a 0a 20 20 20 20 20 3b 20 4c 65 64 67 65 72 2d 6d 6f 64 65 3a 20 53 74 61 72 74 t.>>>.......;.Ledger-mode:.Start
1e3e0 20 73 6f 72 74 0a 0a 20 20 20 20 20 3c 3c 3c 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 74 6f 20 .sort.......<<<.transactions.to.
1e400 73 6f 72 74 20 3e 3e 3e 0a 0a 20 20 20 20 20 3b 20 4c 65 64 67 65 72 2d 6d 6f 64 65 3a 20 45 6e sort.>>>.......;.Ledger-mode:.En
1e420 64 20 73 6f 72 74 0a 0a 20 20 20 20 20 3c 3c 3c 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 74 6f 20 d.sort.......<<<.information.to.
1e440 6e 6f 74 20 73 6f 72 74 20 3e 3e 3e 0a 0a 20 20 20 59 6f 75 20 63 61 6e 20 75 73 65 20 6d 65 6e not.sort.>>>.....You.can.use.men
1e460 75 20 65 6e 74 72 69 65 73 20 e2 80 98 4d 61 72 6b 20 53 6f 72 74 20 42 65 67 69 6e 6e 69 6e 67 u.entries....Mark.Sort.Beginning
1e480 e2 80 99 20 74 6f 20 69 6e 73 65 72 74 20 73 74 61 72 74 20 61 6e 64 0a e2 80 98 4d 61 72 6b 20 ....to.insert.start.and....Mark.
1e4a0 53 6f 72 74 20 45 6e 64 e2 80 99 20 74 6f 20 69 6e 73 65 72 74 20 65 6e 64 20 6d 61 72 6b 65 72 Sort.End....to.insert.end.marker
1e4c0 73 2e 20 20 54 68 65 73 65 20 66 75 6e 63 74 69 6f 6e 73 20 77 69 6c 6c 0a 61 75 74 6f 6d 61 74 s...These.functions.will.automat
1e4e0 69 63 61 6c 6c 79 20 64 65 6c 65 74 65 20 6f 6c 64 20 6d 61 72 6b 65 72 73 20 61 6e 64 20 70 75 ically.delete.old.markers.and.pu
1e500 74 20 6e 65 77 20 6d 61 72 6b 65 72 20 61 74 20 70 6f 69 6e 74 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 t.new.marker.at.point.....File:.
1e520 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 4e 61 72 72 6f 77 69 ledger-mode.info,..Node:.Narrowi
1e540 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 2c 20 20 50 72 65 76 3a 20 53 6f 72 74 69 6e 67 20 ng.Transactions,..Prev:.Sorting.
1e560 54 72 61 6e 73 61 63 74 69 6f 6e 73 2c 20 20 55 70 3a 20 54 68 65 20 4c 65 64 67 65 72 20 42 75 Transactions,..Up:.The.Ledger.Bu
1e580 66 66 65 72 0a 0a 32 2e 39 20 4e 61 72 72 6f 77 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 ffer..2.9.Narrowing.Transactions
1e5a0 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 4f 66 74 .==========================..Oft
1e5c0 65 6e 20 79 6f 75 20 77 69 6c 6c 20 77 61 6e 74 20 74 6f 20 72 75 6e 20 4c 65 64 67 65 72 20 72 en.you.will.want.to.run.Ledger.r
1e5e0 65 67 69 73 74 65 72 20 72 65 70 6f 72 74 73 20 6a 75 73 74 20 74 6f 20 6c 6f 6f 6b 20 61 74 20 egister.reports.just.to.look.at.
1e600 61 0a 73 70 65 63 69 66 69 63 20 73 65 74 20 6f 66 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 2e 20 a.specific.set.of.transactions..
1e620 20 49 66 20 79 6f 75 20 64 6f 6e e2 80 99 74 20 6e 65 65 64 20 74 68 65 20 72 75 6e 6e 69 6e 67 .If.you.don...t.need.the.running
1e640 20 74 6f 74 61 6c 0a 63 61 6c 63 75 6c 61 74 69 6f 6e 20 68 61 6e 64 6c 65 64 20 62 79 20 4c 65 .total.calculation.handled.by.Le
1e660 64 67 65 72 2c 20 4c 65 64 67 65 72 2d 6d 6f 64 65 20 70 72 6f 76 69 64 65 73 20 61 20 72 61 70 dger,.Ledger-mode.provides.a.rap
1e680 69 64 20 77 61 79 20 6f 66 0a 6e 61 72 72 6f 77 69 6e 67 20 77 68 61 74 20 69 73 20 64 69 73 70 id.way.of.narrowing.what.is.disp
1e6a0 6c 61 79 65 64 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 20 69 6e 20 61 20 77 61 79 20 74 68 61 layed.in.the.buffer.in.a.way.tha
1e6c0 74 20 69 73 20 73 69 6d 70 6c 65 72 20 74 68 61 6e 0a 74 68 65 20 4c 65 64 67 65 72 20 72 65 67 t.is.simpler.than.the.Ledger.reg
1e6e0 69 73 74 65 72 20 63 6f 6d 6d 61 6e 64 2e 0a 0a 20 20 20 42 61 73 65 64 20 6f 6e 20 74 68 65 20 ister.command......Based.on.the.
1e700 45 6d 61 63 73 20 4f 63 63 75 72 20 6d 6f 64 65 20 62 79 20 41 6c 65 78 65 79 20 56 65 72 65 74 Emacs.Occur.mode.by.Alexey.Veret
1e720 65 6e 6e 69 6b 6f 76 2c 20 4c 65 64 67 65 72 2d 6f 63 63 75 72 0a 68 69 64 65 73 20 61 6c 6c 20 ennikov,.Ledger-occur.hides.all.
1e740 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 74 68 61 74 20 64 6f 20 5f 6e 6f 74 5f 20 6d 65 65 74 20 transactions.that.do._not_.meet.
1e760 61 20 73 70 65 63 69 66 69 63 20 72 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 2e 0a 54 a.specific.regular.expression..T
1e780 68 65 20 72 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 20 63 61 6e 20 6d 61 74 63 68 20 he.regular.expression.can.match.
1e7a0 6f 6e 20 61 6e 79 20 70 61 72 74 20 6f 66 20 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 2e 20 on.any.part.of.the.transaction..
1e7c0 20 49 66 20 79 6f 75 0a 77 61 6e 74 20 74 6f 20 66 69 6e 64 20 61 6c 6c 20 74 72 61 6e 73 61 63 .If.you.want.to.find.all.transac
1e7e0 74 69 6f 6e 73 20 77 68 6f 73 65 20 61 6d 6f 75 6e 74 20 65 6e 64 73 20 69 6e 20 e2 80 98 2e 33 tions.whose.amount.ends.in.....3
1e800 37 e2 80 99 2c 20 79 6f 75 20 63 61 6e 20 64 6f 0a 74 68 61 74 20 28 49 20 64 6f 6e e2 80 99 74 7...,.you.can.do.that.(I.don...t
1e820 20 6b 6e 6f 77 20 77 68 79 2c 20 62 75 74 20 68 65 79 2c 20 77 68 61 74 65 76 65 72 20 65 76 65 .know.why,.but.hey,.whatever.eve
1e840 72 20 66 6c 6f 61 74 73 20 79 6f 75 20 61 65 72 6f 73 74 61 74 29 2e 0a 0a 20 20 20 55 73 69 6e r.floats.you.aerostat)......Usin
1e860 67 20 e2 80 98 43 2d 63 20 43 2d 66 e2 80 99 20 6f 72 20 74 68 65 20 e2 80 98 4e 61 72 72 6f 77 g....C-c.C-f....or.the....Narrow
1e880 20 74 6f 20 52 65 67 65 78 e2 80 99 20 6d 65 6e 75 20 65 6e 74 72 79 2c 20 65 6e 74 65 72 20 61 .to.Regex....menu.entry,.enter.a
1e8a0 20 72 65 67 75 6c 61 72 0a 65 78 70 72 65 73 73 69 6f 6e 20 69 6e 20 74 68 65 20 4d 69 6e 69 62 .regular.expression.in.the.Minib
1e8c0 75 66 66 65 72 2e 20 20 4c 65 64 67 65 72 2d 6d 6f 64 65 20 77 69 6c 6c 20 68 69 64 65 20 61 6c uffer...Ledger-mode.will.hide.al
1e8e0 6c 20 6f 74 68 65 72 0a 74 72 61 6e 73 61 63 74 69 6f 6e 73 2e 20 20 46 6f 72 20 64 65 74 61 69 l.other.transactions...For.detai
1e900 6c 73 20 6f 66 20 74 68 65 20 72 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 20 73 79 6e ls.of.the.regular.expression.syn
1e920 74 61 78 2c 20 73 65 65 20 79 6f 75 72 0a 45 6d 61 63 73 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f tax,.see.your.Emacs.documentatio
1e940 6e 2e 20 20 41 20 66 65 77 20 65 78 61 6d 70 6c 65 73 20 75 73 69 6e 67 20 74 68 65 20 e2 80 98 n...A.few.examples.using.the....
1e960 64 65 6d 6f 2e 6c 65 64 67 65 72 e2 80 99 20 61 72 65 20 67 69 76 65 6e 0a 68 65 72 65 3a 0a 0a demo.ledger....are.given.here:..
1e980 e2 80 98 47 72 6f 63 65 72 69 65 73 e2 80 99 0a 20 20 20 20 20 53 68 6f 77 20 6f 6e 6c 79 20 74 ...Groceries.........Show.only.t
1e9a0 72 61 6e 73 61 63 74 69 6f 6e 73 20 74 68 61 74 20 68 61 76 65 20 61 20 70 6f 73 74 69 6e 67 20 ransactions.that.have.a.posting.
1e9c0 74 6f 20 74 68 65 20 e2 80 98 47 72 6f 63 65 72 69 65 73 e2 80 99 0a 20 20 20 20 20 61 63 63 6f to.the....Groceries.........acco
1e9e0 75 6e 74 2e 0a 0a e2 80 98 5e 32 30 31 31 2f 30 31 e2 80 99 0a 20 20 20 20 20 53 68 6f 77 20 6f unt......^2011/01.........Show.o
1ea00 6e 6c 79 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 6f 63 63 75 72 72 69 6e 67 20 69 6e 20 4a 61 nly.transactions.occurring.in.Ja
1ea20 6e 75 61 72 79 20 6f 66 20 32 30 31 31 2e 0a 0a e2 80 98 5e 32 30 31 31 2f 2e 2a 2f 32 35 e2 80 nuary.of.2011......^2011/.*/25..
1ea40 99 0a 20 20 20 20 20 53 68 6f 77 20 6f 6e 6c 79 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 6f 63 .......Show.only.transactions.oc
1ea60 63 75 72 72 69 6e 67 20 6f 6e 20 74 68 65 20 32 35 74 68 20 6f 66 20 74 68 65 20 6d 6f 6e 74 68 curring.on.the.25th.of.the.month
1ea80 20 69 6e 20 32 30 31 31 2e 0a 0a e2 80 98 61 75 74 6f e2 80 99 0a 20 20 20 20 20 53 68 6f 77 20 .in.2011......auto.........Show.
1eaa0 6f 6e 6c 79 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 77 69 74 68 20 70 61 79 65 65 73 20 6f 72 only.transactions.with.payees.or
1eac0 20 61 63 63 6f 75 6e 74 73 20 6f 72 20 63 6f 6d 6d 65 6e 74 73 0a 20 20 20 20 20 63 6f 6e 74 61 .accounts.or.comments......conta
1eae0 69 6e 69 6e 67 2e 20 20 e2 80 98 61 75 74 6f e2 80 99 0a 0a e2 80 98 68 61 72 6c 65 79 24 e2 80 ining......auto........harley$..
1eb00 99 0a 20 20 20 20 20 53 68 6f 77 20 6f 6e 6c 79 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 77 69 .......Show.only.transactions.wi
1eb20 74 68 20 61 6e 79 20 6c 69 6e 65 20 65 6e 64 69 6e 67 20 77 69 74 68 20 e2 80 98 68 61 72 6c 65 th.any.line.ending.with....harle
1eb40 79 e2 80 99 2e 0a 0a 20 20 20 54 6f 20 73 68 6f 77 20 62 61 63 6b 20 61 6c 6c 20 74 72 61 6e 73 y.........To.show.back.all.trans
1eb60 61 63 74 69 6f 6e 73 20 73 69 6d 70 6c 79 20 69 6e 76 6f 6b 65 20 e2 80 98 4e 61 72 72 6f 77 20 actions.simply.invoke....Narrow.
1eb80 74 6f 20 52 65 67 65 78 e2 80 99 20 6f 72 20 e2 80 98 43 2d 63 0a 43 2d 66 e2 80 99 20 61 67 61 to.Regex....or....C-c.C-f....aga
1eba0 69 6e 2e 0a 0a 20 20 20 49 66 20 79 6f 75 e2 80 99 76 65 20 65 64 69 74 65 64 20 73 6f 6d 65 20 in......If.you...ve.edited.some.
1ebc0 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 61 66 74 65 72 20 6e 61 72 72 6f 77 69 6e 67 20 73 75 63 transactions.after.narrowing.suc
1ebe0 68 20 74 68 61 74 20 74 68 65 79 0a 77 6f 75 6c 64 20 6e 6f 20 6c 6f 6e 67 65 72 20 6d 61 74 63 h.that.they.would.no.longer.matc
1ec00 68 20 74 68 65 20 72 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 2c 20 79 6f 75 20 63 61 h.the.regular.expression,.you.ca
1ec20 6e 20 72 65 66 72 65 73 68 20 74 68 65 0a 6e 61 72 72 6f 77 65 64 20 76 69 65 77 20 75 73 69 6e n.refresh.the.narrowed.view.usin
1ec40 67 20 e2 80 98 43 2d 63 20 43 2d 67 e2 80 99 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 6c 65 64 67 65 72 g....C-c.C-g........File:.ledger
1ec60 2d 6d 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 54 68 65 20 52 65 63 6f 6e 63 69 6c 65 -mode.info,..Node:.The.Reconcile
1ec80 20 42 75 66 66 65 72 2c 20 20 4e 65 78 74 3a 20 54 68 65 20 52 65 70 6f 72 74 20 42 75 66 66 65 .Buffer,..Next:.The.Report.Buffe
1eca0 72 2c 20 20 50 72 65 76 3a 20 54 68 65 20 4c 65 64 67 65 72 20 42 75 66 66 65 72 2c 20 20 55 70 r,..Prev:.The.Ledger.Buffer,..Up
1ecc0 3a 20 54 6f 70 0a 0a 33 20 54 68 65 20 52 65 63 6f 6e 63 69 6c 65 20 42 75 66 66 65 72 0a 2a 2a :.Top..3.The.Reconcile.Buffer.**
1ece0 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 0a 2a 20 4d 65 6e 75 3a 0a 0a 2a ********************..*.Menu:..*
1ed00 20 42 61 73 69 63 73 20 6f 66 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 3a 3a 0a 2a 20 53 74 .Basics.of.Reconciliation::.*.St
1ed20 61 72 74 69 6e 67 20 61 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 3a 3a 0a 2a 20 4d 61 72 6b arting.a.Reconciliation::.*.Mark
1ed40 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 20 50 65 6e 64 69 6e 67 3a 3a 0a 2a 20 45 64 69 74 20 54 .Transactions.Pending::.*.Edit.T
1ed60 72 61 6e 73 61 63 74 69 6f 6e 73 20 44 75 72 69 6e 67 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f ransactions.During.Reconciliatio
1ed80 6e 3a 3a 0a 2a 20 46 69 6e 61 6c 69 7a 65 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 3a 3a 0a n::.*.Finalize.Reconciliation::.
1eda0 2a 20 41 64 64 69 6e 67 20 61 6e 64 20 44 65 6c 65 74 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f *.Adding.and.Deleting.Transactio
1edc0 6e 73 20 64 75 72 69 6e 67 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 3a 3a 0a 2a 20 43 68 61 ns.during.Reconciliation::.*.Cha
1ede0 6e 67 69 6e 67 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 20 41 63 63 6f 75 6e 74 3a 3a 0a 2a nging.Reconciliation.Account::.*
1ee00 20 43 68 61 6e 67 69 6e 67 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 20 54 61 72 67 65 74 3a .Changing.Reconciliation.Target:
1ee20 3a 0a 0a 1f 0a 46 69 6c 65 3a 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f :....File:.ledger-mode.info,..No
1ee40 64 65 3a 20 42 61 73 69 63 73 20 6f 66 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 2c 20 20 4e de:.Basics.of.Reconciliation,..N
1ee60 65 78 74 3a 20 53 74 61 72 74 69 6e 67 20 61 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 2c 20 ext:.Starting.a.Reconciliation,.
1ee80 20 50 72 65 76 3a 20 54 68 65 20 52 65 63 6f 6e 63 69 6c 65 20 42 75 66 66 65 72 2c 20 20 55 70 .Prev:.The.Reconcile.Buffer,..Up
1eea0 3a 20 54 68 65 20 52 65 63 6f 6e 63 69 6c 65 20 42 75 66 66 65 72 0a 0a 33 2e 31 20 42 61 73 69 :.The.Reconcile.Buffer..3.1.Basi
1eec0 63 73 20 6f 66 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d cs.of.Reconciliation.===========
1eee0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 45 76 65 6e 20 69 6e 20 74 68 69 73 20 =================..Even.in.this.
1ef00 72 65 6c 61 74 69 76 65 6c 79 20 6d 6f 64 65 72 6e 20 65 72 61 2c 20 66 69 6e 61 6e 63 69 61 6c relatively.modern.era,.financial
1ef20 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 64 6f 20 6e 6f 74 20 68 61 70 70 65 6e 0a 69 6e 73 74 .transactions.do.not.happen.inst
1ef40 61 6e 74 61 6e 65 6f 75 73 6c 79 2c 20 75 6e 6c 65 73 73 20 79 6f 75 20 61 72 65 20 70 61 79 69 antaneously,.unless.you.are.payi
1ef60 6e 67 20 63 61 73 68 2e 20 20 57 68 65 6e 20 79 6f 75 20 73 77 69 70 65 20 79 6f 75 72 20 64 65 ng.cash...When.you.swipe.your.de
1ef80 62 69 74 0a 63 61 72 64 20 74 68 65 20 6d 6f 6e 65 79 20 6d 61 79 20 74 61 6b 65 20 73 65 76 65 bit.card.the.money.may.take.seve
1efa0 72 61 6c 20 64 61 79 73 20 74 6f 20 61 63 74 75 61 6c 6c 79 20 63 6f 6d 65 20 6f 75 74 20 6f 66 ral.days.to.actually.come.out.of
1efc0 20 79 6f 75 72 0a 61 63 63 6f 75 6e 74 2c 20 6f 72 20 61 20 63 68 65 63 6b 20 6d 61 79 20 74 61 .your.account,.or.a.check.may.ta
1efe0 6b 65 20 73 65 76 65 72 61 6c 20 64 61 79 73 20 74 6f 20 5f 63 6c 65 61 72 5f 2e 20 20 54 68 61 ke.several.days.to._clear_...Tha
1f000 74 20 69 73 20 74 68 65 20 72 6f 6f 74 0a 6f 66 20 74 68 65 20 64 69 66 66 65 72 65 6e 63 65 20 t.is.the.root.of.the.difference.
1f020 62 65 74 77 65 65 6e 20 5f 6f 62 6c 69 67 61 74 69 6e 67 5f 20 66 75 6e 64 73 20 61 6e 64 20 5f between._obligating_.funds.and._
1f040 65 78 70 65 6e 64 69 6e 67 5f 20 66 75 6e 64 73 2e 0a 4f 62 6c 69 67 61 74 69 6f 6e 20 73 61 79 expending_.funds..Obligation.say
1f060 73 20 79 6f 75 20 68 61 76 65 20 61 67 72 65 65 64 20 74 6f 20 70 61 79 20 69 74 2c 20 74 68 65 s.you.have.agreed.to.pay.it,.the
1f080 20 65 78 70 65 6e 64 69 74 75 72 65 20 64 6f 65 73 6e e2 80 99 74 0a 68 61 70 70 65 6e 20 75 6e .expenditure.doesn...t.happen.un
1f0a0 74 69 6c 20 74 68 65 20 6d 6f 6e 65 79 20 61 63 74 75 61 6c 6c 79 20 6c 65 61 76 65 73 20 79 6f til.the.money.actually.leaves.yo
1f0c0 75 72 20 61 63 63 6f 75 6e 74 2e 20 20 4f 72 20 69 6e 20 74 68 65 20 63 61 73 65 20 6f 66 0a 72 ur.account...Or.in.the.case.of.r
1f0e0 65 63 65 69 76 69 6e 67 20 70 61 79 6d 65 6e 74 2c 20 79 6f 75 20 68 61 76 65 20 61 6e 20 61 63 eceiving.payment,.you.have.an.ac
1f100 63 6f 75 6e 74 20 72 65 63 65 69 76 61 62 6c 65 20 75 6e 74 69 6c 20 74 68 65 20 6d 6f 6e 65 79 count.receivable.until.the.money
1f120 20 68 61 73 0a 61 63 74 75 61 6c 6c 79 20 6d 61 64 65 20 69 74 20 74 6f 20 79 6f 75 2e 0a 0a 20 .has.actually.made.it.to.you....
1f140 20 20 41 66 74 65 72 20 61 6e 20 61 63 63 6f 75 6e 74 20 68 61 73 20 62 65 65 6e 20 72 65 63 6f ..After.an.account.has.been.reco
1f160 6e 63 69 6c 65 64 20 79 6f 75 20 68 61 76 65 20 76 65 72 69 66 69 65 64 20 74 68 61 74 20 61 6c nciled.you.have.verified.that.al
1f180 6c 20 74 68 65 0a 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 69 6e 20 74 68 61 74 20 61 63 63 6f 75 l.the.transactions.in.that.accou
1f1a0 6e 74 20 68 61 76 65 20 62 65 65 6e 20 63 6f 72 72 65 63 74 6c 79 20 72 65 63 6f 72 64 65 64 20 nt.have.been.correctly.recorded.
1f1c0 61 6e 64 20 61 6c 6c 0a 70 61 72 74 69 65 73 20 61 67 72 65 65 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 and.all.parties.agree.....File:.
1f1e0 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 53 74 61 72 74 69 6e ledger-mode.info,..Node:.Startin
1f200 67 20 61 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 2c 20 20 4e 65 78 74 3a 20 4d 61 72 6b 20 g.a.Reconciliation,..Next:.Mark.
1f220 54 72 61 6e 73 61 63 74 69 6f 6e 73 20 50 65 6e 64 69 6e 67 2c 20 20 50 72 65 76 3a 20 42 61 73 Transactions.Pending,..Prev:.Bas
1f240 69 63 73 20 6f 66 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 2c 20 20 55 70 3a 20 54 68 65 20 ics.of.Reconciliation,..Up:.The.
1f260 52 65 63 6f 6e 63 69 6c 65 20 42 75 66 66 65 72 0a 0a 33 2e 32 20 53 74 61 72 74 69 6e 67 20 61 Reconcile.Buffer..3.2.Starting.a
1f280 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d .Reconciliation.================
1f2a0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 54 6f 20 73 74 61 72 74 20 72 65 63 6f 6e 63 69 6c =============..To.start.reconcil
1f2c0 69 6e 67 20 61 6e 20 61 63 63 6f 75 6e 74 20 79 6f 75 20 6d 75 73 74 20 68 61 76 65 20 61 20 74 ing.an.account.you.must.have.a.t
1f2e0 61 72 67 65 74 2c 20 62 6f 74 68 20 74 68 65 0a 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 74 68 61 arget,.both.the.transactions.tha
1f300 74 20 79 6f 75 20 6b 6e 6f 77 20 61 62 6f 75 74 20 61 6e 64 20 74 68 65 20 74 72 61 6e 73 61 63 t.you.know.about.and.the.transac
1f320 74 69 6f 6e 73 20 74 68 65 20 62 61 6e 6b 20 6b 6e 6f 77 73 0a 61 62 6f 75 74 2e 20 20 59 6f 75 tions.the.bank.knows.about...You
1f340 20 63 61 6e 20 67 65 74 20 74 68 69 73 20 66 72 6f 6d 20 61 20 6d 6f 6e 74 68 6c 79 20 73 74 61 .can.get.this.from.a.monthly.sta
1f360 74 65 6d 65 6e 74 2c 20 6f 72 20 66 72 6f 6d 20 63 68 65 63 6b 69 6e 67 20 79 6f 75 72 0a 6f 6e tement,.or.from.checking.your.on
1f380 2d 6c 69 6e 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 68 69 73 74 6f 72 79 2e 20 20 49 74 20 61 -line.transaction.history...It.a
1f3a0 6c 73 6f 20 68 65 6c 70 73 20 69 6d 6d 65 6e 73 65 6c 79 20 74 6f 20 6b 6e 6f 77 20 74 68 65 20 lso.helps.immensely.to.know.the.
1f3c0 66 69 6e 61 6c 0a 63 6c 65 61 72 65 64 20 62 61 6c 61 6e 63 65 20 79 6f 75 20 61 72 65 20 61 69 final.cleared.balance.you.are.ai
1f3e0 6d 69 6e 67 20 66 6f 72 2e 0a 0a 20 20 20 55 73 65 20 6d 65 6e 75 20 e2 80 98 52 65 63 6f 6e 63 ming.for......Use.menu....Reconc
1f400 69 6c 65 20 41 63 63 6f 75 6e 74 e2 80 99 20 6f 72 20 6b 65 79 62 6f 61 72 64 20 73 68 6f 72 74 ile.Account....or.keyboard.short
1f420 63 75 74 20 e2 80 98 43 2d 63 20 43 2d 72 e2 80 99 20 74 6f 20 73 74 61 72 74 0a 72 65 63 6f 6e cut....C-c.C-r....to.start.recon
1f440 63 69 6c 69 61 74 69 6f 6e 2e 0a 0a 20 20 20 49 66 20 63 75 72 73 6f 72 20 69 73 20 6f 6e 20 61 ciliation......If.cursor.is.on.a
1f460 6e 20 61 63 63 6f 75 6e 74 2c 20 4c 65 64 67 65 72 2d 6d 6f 64 65 20 77 69 6c 6c 20 70 72 6f 70 n.account,.Ledger-mode.will.prop
1f480 6f 73 65 20 74 68 69 73 20 61 63 63 6f 75 6e 74 2c 20 6f 72 0a 69 6e 20 74 68 65 20 4d 69 6e 69 ose.this.account,.or.in.the.Mini
1f4a0 62 75 66 66 65 72 2c 20 77 69 6c 6c 20 70 72 6f 6d 70 74 20 66 6f 72 20 61 6e 20 61 63 63 6f 75 buffer,.will.prompt.for.an.accou
1f4c0 6e 74 20 74 6f 20 72 65 63 6f 6e 63 69 6c 65 2e 20 20 48 69 74 20 e2 80 98 52 45 54 e2 80 99 0a nt.to.reconcile...Hit....RET....
1f4e0 69 66 20 79 6f 75 20 61 72 65 20 68 61 70 70 79 20 77 69 74 68 20 70 72 6f 70 6f 73 65 64 20 61 if.you.are.happy.with.proposed.a
1f500 63 63 6f 75 6e 74 2c 20 6f 72 20 65 6e 74 65 72 20 e2 80 98 43 68 65 63 6b 69 6e 67 e2 80 99 20 ccount,.or.enter....Checking....
1f520 61 73 20 65 78 61 6d 70 6c 65 2e 0a 4c 65 64 67 65 72 2d 6d 6f 64 65 20 69 73 20 6e 6f 74 20 70 as.example..Ledger-mode.is.not.p
1f540 61 72 74 69 63 75 6c 61 72 20 61 62 6f 75 74 20 77 68 61 74 20 79 6f 75 20 65 6e 74 65 72 20 66 articular.about.what.you.enter.f
1f560 6f 72 20 74 68 65 20 61 63 63 6f 75 6e 74 2e 20 20 59 6f 75 0a 63 61 6e 20 6c 65 61 76 65 20 69 or.the.account...You.can.leave.i
1f580 74 20 62 6c 61 6e 6b 20 61 6e 64 20 e2 80 98 2a 52 65 63 6f 6e 63 69 6c 65 2a e2 80 99 20 62 75 t.blank.and....*Reconcile*....bu
1f5a0 66 66 65 72 20 77 69 6c 6c 20 73 68 6f 77 20 79 6f 75 20 5f 61 6c 6c 5f 0a 75 6e 63 6c 65 61 72 ffer.will.show.you._all_.unclear
1f5c0 65 64 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 2e 0a 0a 20 20 20 41 66 74 65 72 20 79 6f 75 20 65 ed.transactions......After.you.e
1f5e0 6e 74 65 72 20 74 68 65 20 61 63 63 6f 75 6e 74 20 65 6e 74 65 72 20 74 68 65 20 74 61 72 67 65 nter.the.account.enter.the.targe
1f600 74 20 61 6d 6f 75 6e 74 2e 20 20 49 74 20 69 73 20 68 65 6c 70 66 75 6c 0a 74 6f 20 65 6e 74 65 t.amount...It.is.helpful.to.ente
1f620 72 20 61 6e 20 61 6d 6f 75 6e 74 20 77 69 74 68 20 61 20 63 6f 6d 6d 6f 64 69 74 79 2e 20 20 59 r.an.amount.with.a.commodity...Y
1f640 6f 75 20 63 61 6e 20 61 6c 73 6f 20 6c 65 61 76 65 20 69 74 20 62 6c 61 6e 6b 2c 20 79 6f 75 0a ou.can.also.leave.it.blank,.you.
1f660 77 69 6c 6c 20 62 65 20 61 62 6c 65 20 74 6f 20 63 6c 65 61 72 20 74 72 61 6e 73 61 63 74 69 6f will.be.able.to.clear.transactio
1f680 6e 73 20 62 75 74 20 6e 6f 74 20 62 65 6e 65 66 69 74 20 66 72 6f 6d 20 62 61 6c 61 6e 63 65 0a ns.but.not.benefit.from.balance.
1f6a0 63 61 6c 63 75 6c 61 74 69 6f 6e 73 2e 20 20 49 74 20 61 73 73 75 6d 65 73 20 69 6e 69 74 69 61 calculations...It.assumes.initia
1f6c0 6c 6c 79 20 74 68 61 74 20 79 6f 75 20 61 72 65 20 75 73 69 6e 67 20 e2 80 98 24 e2 80 99 20 28 lly.that.you.are.using....$....(
1f6e0 55 53 44 29 20 61 73 20 79 6f 75 72 0a 64 65 66 61 75 6c 74 20 63 6f 6d 6d 6f 64 69 74 79 2e 20 USD).as.your.default.commodity..
1f700 20 49 66 20 79 6f 75 20 61 72 65 20 77 6f 72 6b 69 6e 67 20 69 6e 20 61 20 64 69 66 66 65 72 65 .If.you.are.working.in.a.differe
1f720 6e 74 20 63 75 72 72 65 6e 63 79 20 79 6f 75 20 63 61 6e 0a 63 68 61 6e 67 65 20 74 68 65 20 64 nt.currency.you.can.change.the.d
1f740 65 66 61 75 6c 74 20 69 6e 20 76 61 72 69 61 62 6c 65 20 e2 80 98 6c 65 64 67 65 72 2d 72 65 63 efault.in.variable....ledger-rec
1f760 6f 6e 63 69 6c 65 2d 64 65 66 61 75 6c 74 2d 63 6f 6d 6d 6f 64 69 74 79 e2 80 99 20 74 6f 0a 77 oncile-default-commodity....to.w
1f780 68 61 74 65 76 65 72 20 79 6f 75 20 6e 65 65 64 2e 20 20 49 66 20 79 6f 75 20 77 6f 72 6b 20 69 hatever.you.need...If.you.work.i
1f7a0 6e 20 6d 75 6c 74 69 70 6c 65 20 63 6f 6d 6d 6f 64 69 74 69 65 73 20 73 69 6d 70 6c 79 20 65 6e n.multiple.commodities.simply.en
1f7c0 74 65 72 20 74 68 65 0a 63 6f 6d 6d 6f 64 69 74 69 7a 65 64 20 61 6d 6f 75 6e 74 20 28 66 6f 72 ter.the.commoditized.amount.(for
1f7e0 20 65 78 61 6d 70 6c 65 20 e2 80 98 33 34 30 20 56 53 44 58 e2 80 99 2c 20 66 6f 72 20 33 34 30 .example....340.VSDX...,.for.340
1f800 20 73 68 61 72 65 73 20 6f 66 20 56 53 44 58 29 2e 0a 0a 20 20 20 4c 65 64 67 65 72 2d 6d 6f 64 .shares.of.VSDX)......Ledger-mod
1f820 65 20 72 65 63 6f 6e 63 69 6c 65 20 63 61 6e 6e 6f 74 20 63 75 72 72 65 6e 74 6c 79 20 72 65 63 e.reconcile.cannot.currently.rec
1f840 6f 6e 63 69 6c 65 20 61 63 63 6f 75 6e 74 73 20 74 68 61 74 20 68 61 76 65 0a 6d 75 6c 74 69 70 oncile.accounts.that.have.multip
1f860 6c 65 20 63 6f 6d 6d 6f 64 69 74 69 65 73 2c 20 73 75 63 68 20 61 73 20 62 72 6f 6b 65 72 61 67 le.commodities,.such.as.brokerag
1f880 65 20 61 63 63 6f 75 6e 74 73 2e 20 20 59 6f 75 20 6d 61 79 20 75 73 65 0a 72 65 63 6f 6e 63 69 e.accounts...You.may.use.reconci
1f8a0 6c 69 61 74 69 6f 6e 20 6d 6f 64 65 20 74 6f 20 63 6c 65 61 72 20 74 72 61 6e 73 61 63 74 69 6f liation.mode.to.clear.transactio
1f8c0 6e 73 2c 20 62 75 74 20 62 61 6c 61 6e 63 65 20 63 61 6c 63 75 6c 61 74 69 6f 6e 73 20 77 69 6c ns,.but.balance.calculations.wil
1f8e0 6c 0a 6e 6f 74 20 64 69 73 70 6c 61 79 20 74 68 65 20 63 6f 6d 70 6c 65 74 65 20 6c 69 73 74 20 l.not.display.the.complete.list.
1f900 6f 66 20 63 6f 6d 6d 6f 64 69 74 69 65 73 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 6c 65 64 67 65 72 2d of.commodities.....File:.ledger-
1f920 6d 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 4d 61 72 6b 20 54 72 61 6e 73 61 63 74 69 mode.info,..Node:.Mark.Transacti
1f940 6f 6e 73 20 50 65 6e 64 69 6e 67 2c 20 20 4e 65 78 74 3a 20 45 64 69 74 20 54 72 61 6e 73 61 63 ons.Pending,..Next:.Edit.Transac
1f960 74 69 6f 6e 73 20 44 75 72 69 6e 67 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 2c 20 20 50 72 tions.During.Reconciliation,..Pr
1f980 65 76 3a 20 53 74 61 72 74 69 6e 67 20 61 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 2c 20 20 ev:.Starting.a.Reconciliation,..
1f9a0 55 70 3a 20 54 68 65 20 52 65 63 6f 6e 63 69 6c 65 20 42 75 66 66 65 72 0a 0a 33 2e 33 20 4d 61 Up:.The.Reconcile.Buffer..3.3.Ma
1f9c0 72 6b 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 20 50 65 6e 64 69 6e 67 0a 3d 3d 3d 3d 3d 3d 3d 3d rk.Transactions.Pending.========
1f9e0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 54 68 65 20 e2 80 98 2a 52 =====================..The....*R
1fa00 65 63 6f 6e 63 69 6c 65 2a e2 80 99 20 62 75 66 66 65 72 20 77 69 6c 6c 20 73 68 6f 77 20 61 6c econcile*....buffer.will.show.al
1fa20 6c 20 74 68 65 20 75 6e 63 6c 65 61 72 65 64 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 74 68 61 l.the.uncleared.transactions.tha
1fa40 74 0a 6d 65 65 74 20 74 68 65 20 63 72 69 74 65 72 69 61 20 73 65 74 20 69 6e 20 74 68 65 20 72 t.meet.the.criteria.set.in.the.r
1fa60 65 67 65 78 2e 20 20 42 79 20 64 65 66 61 75 6c 74 20 75 6e 63 6c 65 61 72 65 64 20 74 72 61 6e egex...By.default.uncleared.tran
1fa80 73 61 63 74 69 6f 6e 73 0a 61 72 65 20 73 68 6f 77 6e 20 69 6e 20 72 65 64 2e 20 20 57 68 65 6e sactions.are.shown.in.red...When
1faa0 20 79 6f 75 20 68 61 76 65 20 76 65 72 69 66 69 65 64 20 74 68 61 74 20 61 20 74 72 61 6e 73 61 .you.have.verified.that.a.transa
1fac0 63 74 69 6f 6e 20 68 61 73 20 62 65 65 6e 0a 63 6f 72 72 65 63 74 6c 79 20 61 6e 64 20 63 6f 6d ction.has.been.correctly.and.com
1fae0 70 6c 65 74 65 6c 79 20 72 65 63 6f 72 64 65 64 20 62 79 20 74 68 65 20 6f 70 70 6f 73 69 6e 67 pletely.recorded.by.the.opposing
1fb00 20 70 61 72 74 79 2c 20 6d 61 72 6b 20 74 68 65 0a 74 72 61 6e 73 61 63 74 69 6f 6e 20 61 73 20 .party,.mark.the.transaction.as.
1fb20 70 65 6e 64 69 6e 67 20 75 73 69 6e 67 20 74 68 65 20 e2 80 98 53 50 43 e2 80 99 20 62 61 72 2e pending.using.the....SPC....bar.
1fb40 20 20 43 6f 6e 74 69 6e 75 65 20 74 68 69 73 20 70 72 6f 63 65 73 73 20 75 6e 74 69 6c 0a 79 6f ..Continue.this.process.until.yo
1fb60 75 20 61 67 72 65 65 20 77 69 74 68 20 74 68 65 20 6f 70 70 6f 73 69 6e 67 20 70 61 72 74 79 20 u.agree.with.the.opposing.party.
1fb80 61 6e 64 20 74 68 65 20 64 69 66 66 65 72 65 6e 63 65 20 66 72 6f 6d 20 79 6f 75 72 20 74 61 72 and.the.difference.from.your.tar
1fba0 67 65 74 20 69 73 0a 7a 65 72 6f 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 6c 65 64 67 65 72 2d 6d 6f 64 get.is.zero.....File:.ledger-mod
1fbc0 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 45 64 69 74 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 e.info,..Node:.Edit.Transactions
1fbe0 20 44 75 72 69 6e 67 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 2c 20 20 4e 65 78 74 3a 20 46 .During.Reconciliation,..Next:.F
1fc00 69 6e 61 6c 69 7a 65 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 2c 20 20 50 72 65 76 3a 20 4d inalize.Reconciliation,..Prev:.M
1fc20 61 72 6b 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 20 50 65 6e 64 69 6e 67 2c 20 20 55 70 3a 20 54 ark.Transactions.Pending,..Up:.T
1fc40 68 65 20 52 65 63 6f 6e 63 69 6c 65 20 42 75 66 66 65 72 0a 0a 33 2e 34 20 45 64 69 74 20 54 72 he.Reconcile.Buffer..3.4.Edit.Tr
1fc60 61 6e 73 61 63 74 69 6f 6e 73 20 64 75 72 69 6e 67 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e ansactions.during.Reconciliation
1fc80 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d .===============================
1fca0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 49 66 20 79 6f 75 20 66 69 6e 64 20 65 72 72 6f 72 73 ============..If.you.find.errors
1fcc0 20 64 75 72 69 6e 67 20 72 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 2e 20 20 59 6f 75 20 63 61 6e .during.reconciliation...You.can
1fce0 20 76 69 73 69 74 20 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 0a 75 6e 64 65 72 20 70 6f 69 .visit.the.transaction.under.poi
1fd00 6e 74 20 69 6e 20 74 68 65 20 e2 80 98 2a 52 65 63 6f 6e 63 69 6c 65 2a e2 80 99 20 62 75 66 66 nt.in.the....*Reconcile*....buff
1fd20 65 72 20 62 79 20 68 69 74 74 69 6e 67 20 74 68 65 20 e2 80 98 52 45 54 e2 80 99 20 6b 65 79 2e er.by.hitting.the....RET....key.
1fd40 20 20 54 68 69 73 0a 77 69 6c 6c 20 74 61 6b 65 20 79 6f 75 20 74 6f 20 74 68 65 20 74 72 61 6e ..This.will.take.you.to.the.tran
1fd60 73 61 63 74 69 6f 6e 20 69 6e 20 74 68 65 20 4c 65 64 67 65 72 20 62 75 66 66 65 72 2e 20 20 57 saction.in.the.Ledger.buffer...W
1fd80 68 65 6e 20 79 6f 75 20 68 61 76 65 0a 66 69 6e 69 73 68 65 64 20 65 64 69 74 69 6e 67 20 74 68 hen.you.have.finished.editing.th
1fda0 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 2c 20 73 61 76 69 6e 67 20 74 68 65 20 62 75 66 66 65 72 e.transaction,.saving.the.buffer
1fdc0 20 77 69 6c 6c 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 0a 72 65 74 75 72 6e 20 79 6f 75 20 74 .will.automatically.return.you.t
1fde0 6f 20 74 68 65 20 e2 80 98 2a 52 65 63 6f 6e 63 69 6c 65 2a e2 80 99 20 62 75 66 66 65 72 20 61 o.the....*Reconcile*....buffer.a
1fe00 6e 64 20 79 6f 75 20 63 61 6e 20 6d 61 72 6b 20 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 0a nd.you.can.mark.the.transaction.
1fe20 69 66 20 61 70 70 72 6f 70 72 69 61 74 65 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 6c 65 64 67 65 72 2d if.appropriate.....File:.ledger-
1fe40 6d 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 46 69 6e 61 6c 69 7a 65 20 52 65 63 6f 6e mode.info,..Node:.Finalize.Recon
1fe60 63 69 6c 69 61 74 69 6f 6e 2c 20 20 4e 65 78 74 3a 20 41 64 64 69 6e 67 20 61 6e 64 20 44 65 6c ciliation,..Next:.Adding.and.Del
1fe80 65 74 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 20 64 75 72 69 6e 67 20 52 65 63 6f 6e 63 eting.Transactions.during.Reconc
1fea0 69 6c 69 61 74 69 6f 6e 2c 20 20 50 72 65 76 3a 20 45 64 69 74 20 54 72 61 6e 73 61 63 74 69 6f iliation,..Prev:.Edit.Transactio
1fec0 6e 73 20 44 75 72 69 6e 67 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 2c 20 20 55 70 3a 20 54 ns.During.Reconciliation,..Up:.T
1fee0 68 65 20 52 65 63 6f 6e 63 69 6c 65 20 42 75 66 66 65 72 0a 0a 33 2e 35 20 46 69 6e 61 6c 69 7a he.Reconcile.Buffer..3.5.Finaliz
1ff00 65 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d e.Reconciliation.===============
1ff20 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 4f 6e 63 65 20 79 6f 75 20 68 61 76 65 20 6d 61 72 6b ============..Once.you.have.mark
1ff40 65 64 20 61 6c 6c 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 61 73 20 70 65 6e 64 69 6e 67 20 61 ed.all.transactions.as.pending.a
1ff60 6e 64 20 74 68 65 20 63 6c 65 61 72 65 64 20 62 61 6c 61 6e 63 65 0a 69 73 20 63 6f 72 72 65 63 nd.the.cleared.balance.is.correc
1ff80 74 2e 20 20 46 69 6e 69 73 68 20 74 68 65 20 72 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 20 62 79 t...Finish.the.reconciliation.by
1ffa0 20 74 79 70 69 6e 67 20 e2 80 98 43 2d 63 20 43 2d 63 e2 80 99 2e 20 20 54 68 69 73 20 6d 61 72 .typing....C-c.C-c......This.mar
1ffc0 6b 73 0a 61 6c 6c 20 70 65 6e 64 69 6e 67 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 61 73 20 63 ks.all.pending.transactions.as.c
1ffe0 6c 65 61 72 65 64 20 61 6e 64 20 73 61 76 65 73 20 74 68 65 20 6c 65 64 67 65 72 20 62 75 66 66 leared.and.saves.the.ledger.buff
20000 65 72 2e 0a 0a 20 20 20 54 79 70 65 20 e2 80 98 71 e2 80 99 20 74 6f 20 63 6c 6f 73 65 20 6f 75 er......Type....q....to.close.ou
20020 74 20 74 68 65 20 72 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 20 62 75 66 66 65 72 2e 20 20 49 66 t.the.reconciliation.buffer...If
20040 20 76 61 72 69 61 62 6c 65 0a 4c 45 44 47 45 52 2d 52 45 43 4f 4e 43 49 4c 45 2d 46 49 4e 49 53 .variable.LEDGER-RECONCILE-FINIS
20060 48 2d 46 4f 52 43 45 2d 51 55 49 54 20 69 73 20 73 65 74 2c 20 74 68 65 20 72 65 63 6f 6e 63 69 H-FORCE-QUIT.is.set,.the.reconci
20080 6c 69 61 74 69 6f 6e 20 62 75 66 66 65 72 0a 77 69 6c 6c 20 62 65 20 6b 69 6c 6c 65 64 20 61 75 liation.buffer.will.be.killed.au
200a0 74 6f 6d 61 74 69 63 61 6c 6c 79 20 61 66 74 65 72 20 e2 80 98 43 2d 63 20 43 2d 63 e2 80 99 2e tomatically.after....C-c.C-c....
200c0 0a 0a 1f 0a 46 69 6c 65 3a 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 ....File:.ledger-mode.info,..Nod
200e0 65 3a 20 41 64 64 69 6e 67 20 61 6e 64 20 44 65 6c 65 74 69 6e 67 20 54 72 61 6e 73 61 63 74 69 e:.Adding.and.Deleting.Transacti
20100 6f 6e 73 20 64 75 72 69 6e 67 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 2c 20 20 4e 65 78 74 ons.during.Reconciliation,..Next
20120 3a 20 43 68 61 6e 67 69 6e 67 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 20 41 63 63 6f 75 6e :.Changing.Reconciliation.Accoun
20140 74 2c 20 20 50 72 65 76 3a 20 46 69 6e 61 6c 69 7a 65 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f t,..Prev:.Finalize.Reconciliatio
20160 6e 2c 20 20 55 70 3a 20 54 68 65 20 52 65 63 6f 6e 63 69 6c 65 20 42 75 66 66 65 72 0a 0a 33 2e n,..Up:.The.Reconcile.Buffer..3.
20180 36 20 41 64 64 69 6e 67 20 61 6e 64 20 44 65 6c 65 74 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6.Adding.and.Deleting.Transactio
201a0 6e 73 20 64 75 72 69 6e 67 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 0a 3d 3d 3d 3d 3d 3d 3d ns.during.Reconciliation.=======
201c0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ================================
201e0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 57 68 69 6c 65 20 72 65 63 6f 6e ===================..While.recon
20200 63 69 6c 69 6e 67 2c 20 79 6f 75 20 6d 61 79 20 66 69 6e 64 20 6e 65 77 20 74 72 61 6e 73 61 63 ciling,.you.may.find.new.transac
20220 74 69 6f 6e 73 20 74 68 61 74 20 6e 65 65 64 20 74 6f 20 62 65 20 65 6e 74 65 72 65 64 0a 69 6e tions.that.need.to.be.entered.in
20240 74 6f 20 79 6f 75 72 20 6c 65 64 67 65 72 2e 20 20 53 69 6d 70 6c 79 20 74 79 70 65 20 e2 80 98 to.your.ledger...Simply.type....
20260 61 e2 80 99 20 74 6f 20 62 72 69 6e 67 20 75 70 20 74 68 65 20 71 75 69 63 6b 20 61 64 64 20 66 a....to.bring.up.the.quick.add.f
20280 6f 72 20 74 68 65 0a 6c 65 64 67 65 72 20 62 75 66 66 65 72 2e 0a 0a 20 20 20 54 79 70 69 6e 67 or.the.ledger.buffer......Typing
202a0 20 e2 80 98 64 e2 80 99 20 77 69 6c 6c 20 64 65 6c 65 74 65 20 74 68 65 20 74 72 61 6e 73 61 63 ....d....will.delete.the.transac
202c0 74 69 6f 6e 20 75 6e 64 65 72 20 70 6f 69 6e 74 20 69 6e 20 74 68 65 0a e2 80 98 2a 52 65 63 6f tion.under.point.in.the....*Reco
202e0 6e 63 69 6c 65 2a e2 80 99 20 62 75 66 66 65 72 20 66 72 6f 6d 20 74 68 65 20 6c 65 64 67 65 72 ncile*....buffer.from.the.ledger
20300 20 62 75 66 66 65 72 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 69 6e .buffer.....File:.ledger-mode.in
20320 66 6f 2c 20 20 4e 6f 64 65 3a 20 43 68 61 6e 67 69 6e 67 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 fo,..Node:.Changing.Reconciliati
20340 6f 6e 20 41 63 63 6f 75 6e 74 2c 20 20 4e 65 78 74 3a 20 43 68 61 6e 67 69 6e 67 20 52 65 63 6f on.Account,..Next:.Changing.Reco
20360 6e 63 69 6c 69 61 74 69 6f 6e 20 54 61 72 67 65 74 2c 20 20 50 72 65 76 3a 20 41 64 64 69 6e 67 nciliation.Target,..Prev:.Adding
20380 20 61 6e 64 20 44 65 6c 65 74 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 20 64 75 72 69 6e .and.Deleting.Transactions.durin
203a0 67 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 2c 20 20 55 70 3a 20 54 68 65 20 52 65 63 6f 6e g.Reconciliation,..Up:.The.Recon
203c0 63 69 6c 65 20 42 75 66 66 65 72 0a 0a 33 2e 37 20 43 68 61 6e 67 69 6e 67 20 52 65 63 6f 6e 63 cile.Buffer..3.7.Changing.Reconc
203e0 69 6c 69 61 74 69 6f 6e 20 41 63 63 6f 75 6e 74 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d iliation.Account.===============
20400 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 59 6f 75 20 63 61 6e 20 63 6f ====================..You.can.co
20420 6e 76 65 6e 69 65 6e 74 6c 79 20 73 77 69 74 63 68 20 74 68 65 20 61 63 63 6f 75 6e 74 20 62 65 nveniently.switch.the.account.be
20440 69 6e 67 20 72 65 63 6f 6e 63 69 6c 65 64 20 62 79 20 74 79 70 69 6e 67 20 e2 80 98 67 e2 80 99 ing.reconciled.by.typing....g...
20460 2c 0a 61 6e 64 20 65 6e 74 65 72 69 6e 67 20 61 20 6e 65 77 20 61 63 63 6f 75 6e 74 20 74 6f 20 ,.and.entering.a.new.account.to.
20480 72 65 63 6f 6e 63 69 6c 65 2e 20 20 54 68 69 73 20 73 69 6d 70 6c 79 20 72 65 73 74 61 72 74 73 reconcile...This.simply.restarts
204a0 20 74 68 65 0a 72 65 63 6f 6e 63 69 6c 65 20 70 72 6f 63 65 73 73 2e 20 20 41 6e 79 20 74 72 61 .the.reconcile.process...Any.tra
204c0 6e 73 61 63 74 69 6f 6e 73 20 74 68 61 74 20 77 65 72 65 20 6d 61 72 6b 65 64 20 5f 70 65 6e 64 nsactions.that.were.marked._pend
204e0 69 6e 67 5f 20 69 6e 20 74 68 65 0a 6c 65 64 67 65 72 20 62 75 66 66 65 72 20 61 72 65 20 6c 65 ing_.in.the.ledger.buffer.are.le
20500 66 74 20 69 6e 20 74 68 61 74 20 73 74 61 74 65 20 77 68 65 6e 20 74 68 65 20 61 63 63 6f 75 6e ft.in.that.state.when.the.accoun
20520 74 20 69 73 20 73 77 69 74 63 68 65 64 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 6c 65 64 67 65 72 2d 6d t.is.switched.....File:.ledger-m
20540 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 43 68 61 6e 67 69 6e 67 20 52 65 63 6f 6e 63 ode.info,..Node:.Changing.Reconc
20560 69 6c 69 61 74 69 6f 6e 20 54 61 72 67 65 74 2c 20 20 50 72 65 76 3a 20 43 68 61 6e 67 69 6e 67 iliation.Target,..Prev:.Changing
20580 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 20 41 63 63 6f 75 6e 74 2c 20 20 55 70 3a 20 54 68 .Reconciliation.Account,..Up:.Th
205a0 65 20 52 65 63 6f 6e 63 69 6c 65 20 42 75 66 66 65 72 0a 0a 33 2e 38 20 43 68 61 6e 67 69 6e 67 e.Reconcile.Buffer..3.8.Changing
205c0 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 20 54 61 72 67 65 74 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d .Reconciliation.Target.=========
205e0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 49 66 20 66 6f =========================..If.fo
20600 72 20 73 6f 6d 65 20 72 65 61 73 6f 6e 20 64 75 72 69 6e 67 20 72 65 63 6f 6e 63 69 6c 69 61 74 r.some.reason.during.reconciliat
20620 69 6f 6e 20 79 6f 75 72 20 74 61 72 67 65 74 20 61 6d 6f 75 6e 74 20 63 68 61 6e 67 65 73 2c 0a ion.your.target.amount.changes,.
20640 74 79 70 65 20 e2 80 98 74 e2 80 99 20 61 6e 64 20 65 6e 74 65 72 20 74 68 65 20 6e 65 77 20 74 type....t....and.enter.the.new.t
20660 61 72 67 65 74 20 76 61 6c 75 65 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 6c 65 64 67 65 72 2d 6d 6f 64 arget.value.....File:.ledger-mod
20680 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 54 68 65 20 52 65 70 6f 72 74 20 42 75 66 66 65 72 e.info,..Node:.The.Report.Buffer
206a0 2c 20 20 4e 65 78 74 3a 20 53 63 68 65 64 75 6c 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 ,..Next:.Scheduling.Transactions
206c0 2c 20 20 50 72 65 76 3a 20 54 68 65 20 52 65 63 6f 6e 63 69 6c 65 20 42 75 66 66 65 72 2c 20 20 ,..Prev:.The.Reconcile.Buffer,..
206e0 55 70 3a 20 54 6f 70 0a 0a 34 20 54 68 65 20 52 65 70 6f 72 74 20 42 75 66 66 65 72 0a 2a 2a 2a Up:.Top..4.The.Report.Buffer.***
20700 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 0a 2a 20 4d 65 6e 75 3a 0a 0a 2a 20 52 75 6e ****************..*.Menu:..*.Run
20720 6e 69 6e 67 20 42 61 73 69 63 20 52 65 70 6f 72 74 73 3a 3a 0a 2a 20 41 64 64 69 6e 67 20 61 6e ning.Basic.Reports::.*.Adding.an
20740 64 20 45 64 69 74 69 6e 67 20 52 65 70 6f 72 74 73 3a 3a 0a 2a 20 52 65 76 65 72 73 69 6e 67 20 d.Editing.Reports::.*.Reversing.
20760 52 65 70 6f 72 74 20 4f 72 64 65 72 3a 3a 0a 0a 1f 0a 46 69 6c 65 3a 20 6c 65 64 67 65 72 2d 6d Report.Order::....File:.ledger-m
20780 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 52 75 6e 6e 69 6e 67 20 42 61 73 69 63 20 52 ode.info,..Node:.Running.Basic.R
207a0 65 70 6f 72 74 73 2c 20 20 4e 65 78 74 3a 20 41 64 64 69 6e 67 20 61 6e 64 20 45 64 69 74 69 6e eports,..Next:.Adding.and.Editin
207c0 67 20 52 65 70 6f 72 74 73 2c 20 20 50 72 65 76 3a 20 54 68 65 20 52 65 70 6f 72 74 20 42 75 66 g.Reports,..Prev:.The.Report.Buf
207e0 66 65 72 2c 20 20 55 70 3a 20 54 68 65 20 52 65 70 6f 72 74 20 42 75 66 66 65 72 0a 0a 34 2e 31 fer,..Up:.The.Report.Buffer..4.1
20800 20 52 75 6e 6e 69 6e 67 20 52 65 70 6f 72 74 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d .Running.Reports.===============
20820 3d 3d 3d 3d 0a 0a 54 68 65 20 72 65 61 6c 20 70 6f 77 65 72 20 62 65 68 69 6e 64 20 4c 65 64 67 ====..The.real.power.behind.Ledg
20840 65 72 20 69 73 20 69 6e 20 69 74 73 20 61 6d 61 7a 69 6e 67 20 72 65 70 6f 72 74 69 6e 67 20 63 er.is.in.its.amazing.reporting.c
20860 61 70 61 62 69 6c 69 74 79 2e 0a 4c 65 64 67 65 72 2d 6d 6f 64 65 20 70 72 6f 76 69 64 65 73 20 apability..Ledger-mode.provides.
20880 65 61 73 79 20 66 61 63 69 6c 69 74 79 20 74 6f 20 72 75 6e 20 72 65 70 6f 72 74 73 20 64 69 72 easy.facility.to.run.reports.dir
208a0 65 63 74 6c 79 20 66 72 6f 6d 20 45 6d 61 63 73 2e 0a 49 74 20 68 61 73 20 66 6f 75 72 20 72 65 ectly.from.Emacs..It.has.four.re
208c0 70 6f 72 74 73 20 62 75 69 6c 74 2d 69 6e 20 61 6e 64 20 66 61 63 69 6c 69 74 69 65 73 20 66 6f ports.built-in.and.facilities.fo
208e0 72 20 61 64 64 69 6e 67 20 63 75 73 74 6f 6d 20 72 65 70 6f 72 74 73 2e 0a 0a 20 20 20 54 79 70 r.adding.custom.reports......Typ
20900 69 6e 67 20 e2 80 98 43 2d 63 20 43 2d 6f 20 43 2d 72 e2 80 99 20 6f 72 20 75 73 69 6e 67 20 6d ing....C-c.C-o.C-r....or.using.m
20920 65 6e 75 20 e2 80 98 52 75 6e 20 52 65 70 6f 72 74 e2 80 99 20 70 72 6f 6d 70 74 73 20 66 6f 72 enu....Run.Report....prompts.for
20940 20 74 68 65 20 6e 61 6d 65 0a 6f 66 20 61 20 73 61 76 65 64 20 72 65 70 6f 72 74 2e 20 20 54 68 .the.name.of.a.saved.report...Th
20960 65 20 62 75 69 6c 74 2d 69 6e 20 72 65 70 6f 72 74 73 20 61 72 65 3a 0a 0a 42 41 4c 0a 20 20 20 e.built-in.reports.are:..BAL....
20980 20 20 50 72 6f 64 75 63 65 20 61 20 62 61 6c 61 6e 63 65 20 72 65 70 6f 72 74 73 20 6f 66 20 61 ..Produce.a.balance.reports.of.a
209a0 6c 6c 20 61 63 63 6f 75 6e 74 73 2e 0a 0a 52 45 47 0a 20 20 20 20 20 50 72 6f 64 75 63 65 20 61 ll.accounts...REG......Produce.a
209c0 20 72 65 67 69 73 74 65 72 20 72 65 70 6f 72 74 20 6f 66 20 61 6c 6c 20 74 72 61 6e 73 61 63 74 .register.report.of.all.transact
209e0 69 6f 6e 73 2e 0a 0a 50 41 59 45 45 0a 20 20 20 20 20 50 72 6f 6d 70 74 20 66 6f 72 20 61 20 70 ions...PAYEE......Prompt.for.a.p
20a00 61 79 65 65 2c 20 74 68 65 6e 20 70 72 6f 64 75 63 65 20 61 20 72 65 67 69 73 74 65 72 20 72 65 ayee,.then.produce.a.register.re
20a20 70 6f 72 74 20 6f 66 20 61 6c 6c 0a 20 20 20 20 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 69 6e port.of.all......transactions.in
20a40 76 6f 6c 76 69 6e 67 20 74 68 61 74 20 70 61 79 65 65 2e 0a 0a 41 43 43 4f 55 4e 54 0a 20 20 20 volving.that.payee...ACCOUNT....
20a60 20 20 50 72 6f 6d 70 74 20 66 6f 72 20 61 6e 20 61 63 63 6f 75 6e 74 2c 20 74 68 65 6e 20 70 72 ..Prompt.for.an.account,.then.pr
20a80 6f 64 75 63 65 20 61 20 72 65 67 69 73 74 65 72 20 72 65 70 6f 72 74 20 6f 66 20 61 6c 6c 0a 20 oduce.a.register.report.of.all..
20aa0 20 20 20 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 69 6e 76 6f 6c 76 69 6e 67 20 74 68 61 74 20 ....transactions.involving.that.
20ac0 61 63 63 6f 75 6e 74 2e 0a 0a 20 20 20 57 68 69 6c 65 20 76 69 65 77 69 6e 67 20 72 65 70 6f 72 account......While.viewing.repor
20ae0 74 73 20 79 6f 75 20 63 61 6e 20 65 61 73 69 6c 79 20 73 77 69 74 63 68 20 62 61 63 6b 20 61 6e ts.you.can.easily.switch.back.an
20b00 64 20 66 6f 72 74 68 20 62 65 74 77 65 65 6e 0a 74 68 65 20 6c 65 64 67 65 72 20 62 75 66 66 65 d.forth.between.the.ledger.buffe
20b20 72 20 61 6e 64 20 74 68 65 20 e2 80 98 2a 4c 65 64 67 65 72 20 52 65 70 6f 72 74 2a e2 80 99 20 r.and.the....*Ledger.Report*....
20b40 62 75 66 66 65 72 2e 20 20 49 6e 20 e2 80 98 2a 4c 65 64 67 65 72 0a 52 65 70 6f 72 74 2a e2 80 buffer...In....*Ledger.Report*..
20b60 99 20 62 75 66 66 65 72 2c 20 74 79 70 69 6e 67 20 e2 80 98 52 45 54 e2 80 99 20 77 69 6c 6c 20 ..buffer,.typing....RET....will.
20b80 74 61 6b 65 20 79 6f 75 20 74 6f 20 74 68 61 74 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 69 6e 20 take.you.to.that.transaction.in.
20ba0 74 68 65 0a 6c 65 64 67 65 72 20 62 75 66 66 65 72 2e 20 20 57 68 69 6c 65 20 69 6e 20 74 68 65 the.ledger.buffer...While.in.the
20bc0 20 6c 65 64 67 65 72 20 62 75 66 66 65 72 20 e2 80 98 43 2d 63 20 43 2d 6f 20 43 2d 67 e2 80 99 .ledger.buffer....C-c.C-o.C-g...
20be0 20 72 65 74 75 72 6e 73 20 79 6f 75 20 74 6f 0a 74 68 65 20 e2 80 98 2a 4c 65 64 67 65 72 20 52 .returns.you.to.the....*Ledger.R
20c00 65 70 6f 72 74 2a e2 80 99 20 62 75 66 66 65 72 2e 0a 0a 20 20 20 42 79 20 64 65 66 61 75 6c 74 eport*....buffer......By.default
20c20 20 4c 65 64 67 65 72 2d 6d 6f 64 65 20 77 69 6c 6c 20 72 65 66 72 65 73 68 20 74 68 65 20 72 65 .Ledger-mode.will.refresh.the.re
20c40 70 6f 72 74 20 62 75 66 66 65 72 20 77 68 65 6e 20 74 68 65 20 6c 65 64 67 65 72 0a 62 75 66 66 port.buffer.when.the.ledger.buff
20c60 65 72 20 69 73 20 73 61 76 65 64 2e 20 20 49 66 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 72 65 72 er.is.saved...If.you.want.to.rer
20c80 75 6e 20 74 68 65 20 72 65 70 6f 72 74 20 61 74 20 61 6e 6f 74 68 65 72 20 74 69 6d 65 20 e2 80 un.the.report.at.another.time...
20ca0 98 43 2d 63 0a 43 2d 6f 20 43 2d 61 e2 80 99 2e 20 20 54 68 69 73 20 69 73 20 75 73 65 66 75 6c .C-c.C-o.C-a......This.is.useful
20cc0 20 69 66 20 79 6f 75 20 68 61 76 65 20 6f 74 68 65 72 20 70 72 6f 67 72 61 6d 73 20 61 6c 74 65 .if.you.have.other.programs.alte
20ce0 72 69 6e 67 20 79 6f 75 72 0a 6c 65 64 67 65 72 20 66 69 6c 65 20 6f 75 74 73 69 64 65 20 6f 66 ring.your.ledger.file.outside.of
20d00 20 45 6d 61 63 73 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 69 6e 66 .Emacs.....File:.ledger-mode.inf
20d20 6f 2c 20 20 4e 6f 64 65 3a 20 41 64 64 69 6e 67 20 61 6e 64 20 45 64 69 74 69 6e 67 20 52 65 70 o,..Node:.Adding.and.Editing.Rep
20d40 6f 72 74 73 2c 20 20 4e 65 78 74 3a 20 52 65 76 65 72 73 69 6e 67 20 52 65 70 6f 72 74 20 4f 72 orts,..Next:.Reversing.Report.Or
20d60 64 65 72 2c 20 20 50 72 65 76 3a 20 52 75 6e 6e 69 6e 67 20 42 61 73 69 63 20 52 65 70 6f 72 74 der,..Prev:.Running.Basic.Report
20d80 73 2c 20 20 55 70 3a 20 54 68 65 20 52 65 70 6f 72 74 20 42 75 66 66 65 72 0a 0a 34 2e 32 20 41 s,..Up:.The.Report.Buffer..4.2.A
20da0 64 64 69 6e 67 20 61 6e 64 20 45 64 69 74 69 6e 67 20 52 65 70 6f 72 74 73 0a 3d 3d 3d 3d 3d 3d dding.and.Editing.Reports.======
20dc0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 2a 20 4d 65 6e 75 ========================..*.Menu
20de0 3a 0a 0a 2a 20 45 78 70 61 6e 73 69 6f 6e 20 46 6f 72 6d 61 74 73 3a 3a 0a 2a 20 4d 61 6b 65 20 :..*.Expansion.Formats::.*.Make.
20e00 52 65 70 6f 72 74 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 20 41 63 74 69 76 65 3a 3a 0a 0a 49 66 Report.Transactions.Active::..If
20e20 20 79 6f 75 20 74 79 70 65 20 61 20 72 65 70 6f 72 74 20 6e 61 6d 65 20 74 68 61 74 20 4c 65 64 .you.type.a.report.name.that.Led
20e40 67 65 72 2d 6d 6f 64 65 20 64 6f 65 73 6e e2 80 99 74 20 72 65 63 6f 67 6e 69 7a 65 20 69 74 20 ger-mode.doesn...t.recognize.it.
20e60 77 69 6c 6c 0a 70 72 6f 6d 70 74 20 79 6f 75 20 66 6f 72 20 61 20 6c 65 64 67 65 72 20 63 6f 6d will.prompt.you.for.a.ledger.com
20e80 6d 61 6e 64 20 6c 69 6e 65 20 74 6f 20 72 75 6e 2e 20 20 54 68 61 74 20 63 6f 6d 6d 61 6e 64 20 mand.line.to.run...That.command.
20ea0 69 73 0a 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 73 61 76 65 64 20 77 69 74 68 20 74 68 65 20 is.automatically.saved.with.the.
20ec0 6e 61 6d 65 20 67 69 76 65 6e 20 61 6e 64 20 79 6f 75 20 63 61 6e 20 72 65 2d 72 75 6e 20 69 74 name.given.and.you.can.re-run.it
20ee0 20 61 74 20 61 6e 79 0a 74 69 6d 65 2e 0a 0a 20 20 20 54 68 65 72 65 20 61 72 65 20 74 77 6f 20 .at.any.time......There.are.two.
20f00 77 61 79 73 20 74 6f 20 65 64 69 74 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 66 6f ways.to.edit.the.command.line.fo
20f20 72 20 61 20 72 65 70 6f 72 74 2e 20 20 54 68 65 20 66 69 72 73 74 0a 69 73 20 74 6f 20 70 72 6f r.a.report...The.first.is.to.pro
20f40 76 69 64 65 20 61 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 20 74 6f 20 74 68 65 20 72 75 vide.a.prefix.argument.to.the.ru
20f60 6e 2d 72 65 70 6f 72 74 20 63 6f 6d 6d 61 6e 64 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 0a n-report.command...For.example,.
20f80 74 79 70 65 20 e2 80 98 4d 2d 31 20 43 2d 63 20 43 2d 6f 20 43 2d 72 e2 80 99 2e 20 20 54 68 69 type....M-1.C-c.C-o.C-r......Thi
20fa0 73 20 77 69 6c 6c 20 70 72 6f 6d 70 74 20 79 6f 75 20 66 6f 72 20 74 68 65 20 72 65 70 6f 72 74 s.will.prompt.you.for.the.report
20fc0 20 6e 61 6d 65 2c 20 74 68 65 6e 0a 70 72 65 73 65 6e 74 20 74 68 65 20 72 65 70 6f 72 74 20 63 .name,.then.present.the.report.c
20fe0 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 74 6f 20 62 65 20 65 64 69 74 65 64 2e 20 20 57 68 65 6e 20 ommand.line.to.be.edited...When.
21000 79 6f 75 20 68 69 74 20 e2 80 98 52 45 54 e2 80 99 2c 20 74 68 65 0a 72 65 70 6f 72 74 20 77 69 you.hit....RET...,.the.report.wi
21020 6c 6c 20 62 65 20 72 75 6e 2c 20 62 75 74 20 69 74 20 77 69 6c 6c 20 6e 6f 74 20 62 65 20 70 65 ll.be.run,.but.it.will.not.be.pe
21040 72 6d 61 6e 65 6e 74 6c 79 20 73 61 76 65 64 2e 20 20 49 66 20 79 6f 75 20 77 61 6e 74 0a 74 6f rmanently.saved...If.you.want.to
21060 20 73 61 76 65 20 69 74 2c 20 74 79 70 65 20 e2 80 98 53 e2 80 99 20 69 6e 20 74 68 65 20 e2 80 .save.it,.type....S....in.the...
21080 98 2a 4c 65 64 67 65 72 20 52 65 70 6f 72 74 2a e2 80 99 20 62 75 66 66 65 72 20 79 6f 75 20 77 .*Ledger.Report*....buffer.you.w
210a0 69 6c 6c 20 68 61 76 65 20 74 68 65 0a 6f 70 74 69 6f 6e 20 74 6f 20 67 69 76 65 20 69 74 20 61 ill.have.the.option.to.give.it.a
210c0 20 6e 65 77 20 6e 61 6d 65 2c 20 6f 72 20 6f 76 65 72 77 72 69 74 65 20 74 68 65 20 6f 6c 64 20 .new.name,.or.overwrite.the.old.
210e0 72 65 70 6f 72 74 2e 0a 0a 20 20 20 44 65 6c 65 74 69 6e 67 20 72 65 70 6f 72 74 73 20 69 73 20 report......Deleting.reports.is.
21100 61 63 63 6f 6d 70 6c 69 73 68 65 64 20 62 79 20 74 79 70 69 6e 67 20 e2 80 98 43 2d 63 20 43 2d accomplished.by.typing....C-c.C-
21120 6f 20 43 2d 65 e2 80 99 20 6f 72 20 75 73 69 6e 67 0a e2 80 98 45 64 69 74 20 52 65 70 6f 72 74 o.C-e....or.using....Edit.Report
21140 e2 80 99 20 6d 65 6e 75 20 69 6e 20 74 68 65 20 6c 65 64 67 65 72 20 62 75 66 66 65 72 2c 20 6f ....menu.in.the.ledger.buffer,.o
21160 72 20 74 79 70 69 6e 67 20 e2 80 98 65 e2 80 99 20 69 6e 20 74 68 65 20 e2 80 98 2a 4c 65 64 67 r.typing....e....in.the....*Ledg
21180 65 72 0a 52 65 70 6f 72 74 2a e2 80 99 20 62 75 66 66 65 72 2e 20 20 54 68 69 73 20 74 61 6b 65 er.Report*....buffer...This.take
211a0 73 20 79 6f 75 20 74 6f 20 74 68 65 20 45 6d 61 63 73 20 63 75 73 74 6f 6d 69 7a 61 74 69 6f 6e s.you.to.the.Emacs.customization
211c0 20 77 69 6e 64 6f 77 20 66 6f 72 0a 74 68 65 20 4c 65 64 67 65 72 20 52 65 70 6f 72 74 73 20 76 .window.for.the.Ledger.Reports.v
211e0 61 72 69 61 62 6c 65 73 2e 20 20 55 73 65 20 74 68 65 20 77 69 64 67 65 74 73 20 74 6f 20 64 65 ariables...Use.the.widgets.to.de
21200 6c 65 74 65 20 74 68 65 20 72 65 70 6f 72 74 20 79 6f 75 0a 77 61 6e 74 20 72 65 6d 6f 76 65 64 lete.the.report.you.want.removed
21220 2e 0a 0a 20 20 20 54 79 70 69 6e 67 20 e2 80 98 43 2d 63 20 43 2d 6f 20 43 2d 73 e2 80 99 20 77 ......Typing....C-c.C-o.C-s....w
21240 69 6c 6c 20 70 72 6f 6d 70 74 20 66 6f 72 20 61 20 6e 61 6d 65 20 61 6e 64 20 73 61 76 65 20 74 ill.prompt.for.a.name.and.save.t
21260 68 65 20 63 75 72 72 65 6e 74 0a 72 65 70 6f 72 74 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 6c 65 64 67 he.current.report.....File:.ledg
21280 65 72 2d 6d 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 45 78 70 61 6e 73 69 6f 6e 20 46 er-mode.info,..Node:.Expansion.F
212a0 6f 72 6d 61 74 73 2c 20 20 4e 65 78 74 3a 20 4d 61 6b 65 20 52 65 70 6f 72 74 20 54 72 61 6e 73 ormats,..Next:.Make.Report.Trans
212c0 61 63 74 69 6f 6e 73 20 41 63 74 69 76 65 2c 20 20 50 72 65 76 3a 20 41 64 64 69 6e 67 20 61 6e actions.Active,..Prev:.Adding.an
212e0 64 20 45 64 69 74 69 6e 67 20 52 65 70 6f 72 74 73 2c 20 20 55 70 3a 20 41 64 64 69 6e 67 20 61 d.Editing.Reports,..Up:.Adding.a
21300 6e 64 20 45 64 69 74 69 6e 67 20 52 65 70 6f 72 74 73 0a 0a 34 2e 32 2e 31 20 45 78 70 61 6e 73 nd.Editing.Reports..4.2.1.Expans
21320 69 6f 6e 20 46 6f 72 6d 61 74 73 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ion.Formats.--------------------
21340 2d 2d 2d 0a 0a 49 74 20 69 73 20 73 6f 6d 65 74 69 6d 65 73 20 63 6f 6e 76 65 6e 69 65 6e 74 20 ---..It.is.sometimes.convenient.
21360 74 6f 20 6c 65 61 76 65 20 72 6f 6f 6d 20 74 6f 20 63 75 73 74 6f 6d 69 7a 65 20 61 20 72 65 70 to.leave.room.to.customize.a.rep
21380 6f 72 74 20 77 69 74 68 6f 75 74 0a 73 61 76 69 6e 67 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 6c ort.without.saving.the.command.l
213a0 69 6e 65 20 65 76 65 72 79 20 74 69 6d 65 2e 20 20 46 6f 72 20 65 78 61 6d 70 6c 65 20 72 75 6e ine.every.time...For.example.run
213c0 6e 69 6e 67 20 61 20 72 65 67 69 73 74 65 72 0a 72 65 70 6f 72 74 20 66 6f 72 20 61 20 73 70 65 ning.a.register.report.for.a.spe
213e0 63 69 66 69 63 20 61 63 63 6f 75 6e 74 20 65 6e 74 65 72 65 64 20 61 74 20 72 75 6e 74 69 6d 65 cific.account.entered.at.runtime
21400 20 62 79 20 74 68 65 20 75 73 65 72 2e 20 20 54 68 65 0a 62 75 69 6c 74 2d 69 6e 20 72 65 70 6f .by.the.user...The.built-in.repo
21420 72 74 20 41 43 43 4f 55 4e 54 20 64 6f 65 73 20 65 78 61 63 74 6c 79 20 74 68 61 74 2c 20 75 73 rt.ACCOUNT.does.exactly.that,.us
21440 69 6e 67 20 61 20 76 61 72 69 61 62 6c 65 20 65 78 70 61 6e 73 69 6f 6e 20 74 6f 0a 70 72 6f 6d ing.a.variable.expansion.to.prom
21460 70 74 20 74 68 65 20 75 73 65 72 20 66 6f 72 20 74 68 65 20 61 63 63 6f 75 6e 74 20 74 6f 20 75 pt.the.user.for.the.account.to.u
21480 73 65 2e 20 20 54 68 65 72 65 20 61 72 65 20 66 6f 75 72 20 76 61 72 69 61 62 6c 65 73 20 74 68 se...There.are.four.variables.th
214a0 61 74 0a 63 61 6e 20 62 65 20 65 78 70 61 6e 64 65 64 20 74 6f 20 72 75 6e 20 61 20 72 65 70 6f at.can.be.expanded.to.run.a.repo
214c0 72 74 3a 0a 0a 4c 45 44 47 45 52 2d 46 49 4c 45 0a 20 20 20 20 20 52 65 74 75 72 6e 73 20 74 68 rt:..LEDGER-FILE......Returns.th
214e0 65 20 66 69 6c 65 20 74 6f 20 62 65 20 6f 70 65 72 61 74 65 64 20 6f 6e 2e 0a 0a 50 41 59 45 45 e.file.to.be.operated.on...PAYEE
21500 0a 20 20 20 20 20 50 72 6f 6d 70 74 73 20 66 6f 72 20 61 20 70 61 79 65 65 2e 0a 0a 41 43 43 4f ......Prompts.for.a.payee...ACCO
21520 55 4e 54 0a 20 20 20 20 20 50 72 6f 6d 70 74 20 66 6f 72 20 61 6e 20 61 63 63 6f 75 6e 74 2e 0a UNT......Prompt.for.an.account..
21540 0a 54 41 47 4e 41 4d 45 0a 20 20 20 20 20 50 72 6f 6d 70 74 20 66 6f 72 20 61 20 6d 65 74 61 2d .TAGNAME......Prompt.for.a.meta-
21560 64 61 74 61 20 74 61 67 20 6e 61 6d 65 2e 0a 0a 54 41 47 56 41 4c 55 45 0a 20 20 20 20 20 50 72 data.tag.name...TAGVALUE......Pr
21580 6f 6d 70 74 20 66 6f 72 20 61 20 6d 65 74 61 2d 64 61 74 61 20 74 61 67 20 76 61 6c 75 65 2e 0a ompt.for.a.meta-data.tag.value..
215a0 0a 4d 4f 4e 54 48 0a 20 20 20 20 20 52 65 74 75 72 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 6d .MONTH......Return.the.current.m
215c0 6f 6e 74 68 2e 0a 0a 20 20 20 59 6f 75 20 63 61 6e 20 75 73 65 20 74 68 65 73 65 20 65 78 70 61 onth......You.can.use.these.expa
215e0 6e 73 69 6f 6e 20 76 61 6c 75 65 73 20 69 6e 20 79 6f 75 72 20 6c 65 64 67 65 72 20 72 65 70 6f nsion.values.in.your.ledger.repo
21600 72 74 20 63 6f 6d 6d 61 6e 64 73 2e 0a 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 69 66 20 79 6f 75 rt.commands..For.example,.if.you
21620 20 77 61 6e 74 65 64 20 74 6f 20 73 70 65 63 69 66 79 20 61 20 72 65 67 69 73 74 65 72 20 72 65 .wanted.to.specify.a.register.re
21640 70 6f 72 74 20 74 68 65 20 64 69 73 70 6c 61 79 65 64 0a 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 port.the.displayed.transactions.
21660 66 72 6f 6d 20 61 20 75 73 65 72 2d 64 65 74 65 72 6d 69 6e 65 64 20 61 63 63 6f 75 6e 74 20 77 from.a.user-determined.account.w
21680 69 74 68 20 61 20 70 61 72 74 69 63 75 6c 61 72 20 6d 65 74 61 2d 64 61 74 61 0a 74 61 67 20 76 ith.a.particular.meta-data.tag.v
216a0 61 6c 75 65 2c 20 79 6f 75 20 73 70 65 63 69 66 79 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 alue,.you.specify.the.following.
216c0 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 3a 0a 0a 20 20 20 20 20 6c 65 64 67 65 72 20 2d 66 20 25 28 command.line:.......ledger.-f.%(
216e0 6c 65 64 67 65 72 2d 66 69 6c 65 29 20 72 65 67 20 25 28 61 63 63 6f 75 6e 74 29 20 5c 0a 20 20 ledger-file).reg.%(account).\...
21700 20 20 20 20 20 2d 2d 6c 69 6d 69 74 20 5c 22 74 61 67 28 27 6d 79 2d 74 61 67 27 29 20 3d 7e 2f .....--limit.\"tag('my-tag').=~/
21720 25 28 76 61 6c 75 65 29 2f 5c 22 0a 0a 20 20 20 4e 6f 74 65 20 68 6f 77 20 74 68 65 20 64 6f 75 %(value)/\".....Note.how.the.dou
21740 62 6c 65 2d 71 75 6f 74 65 73 20 61 72 65 20 65 73 63 61 70 65 64 20 77 69 74 68 20 62 61 63 6b ble-quotes.are.escaped.with.back
21760 2d 73 6c 61 73 68 65 73 2e 0a 0a 20 20 20 41 64 64 69 74 69 6f 6e 61 6c 6c 79 2c 20 69 66 20 79 -slashes......Additionally,.if.y
21780 6f 75 20 77 61 6e 74 20 61 20 72 65 70 6f 72 74 20 73 68 6f 77 69 6e 67 20 61 20 70 61 72 74 69 ou.want.a.report.showing.a.parti
217a0 63 75 6c 61 72 20 6d 6f 6e 74 68 20 61 6e 64 20 62 65 0a 61 62 6c 65 20 74 6f 20 65 61 73 69 6c cular.month.and.be.able.to.easil
217c0 79 20 63 68 61 6e 67 65 20 74 68 61 74 20 6d 6f 6e 74 68 2c 20 79 6f 75 20 63 61 6e 20 73 70 65 y.change.that.month,.you.can.spe
217e0 63 69 66 79 20 61 20 70 65 72 69 6f 64 20 75 73 69 6e 67 20 74 68 65 0a e2 80 98 25 28 6d 6f 6e cify.a.period.using.the....%(mon
21800 74 68 29 e2 80 99 20 73 70 65 63 69 66 69 65 72 20 6c 69 6b 65 20 74 68 69 73 3a 0a 0a 20 20 20 th)....specifier.like.this:.....
21820 20 20 6c 65 64 67 65 72 20 2d 66 20 25 28 6c 65 64 67 65 72 2d 66 69 6c 65 29 20 62 61 6c 61 6e ..ledger.-f.%(ledger-file).balan
21840 63 65 20 2d 2d 70 65 72 69 6f 64 20 25 28 6d 6f 6e 74 68 29 20 5e 49 6e 63 6f 6d 65 20 5e 45 78 ce.--period.%(month).^Income.^Ex
21860 70 65 6e 73 65 73 0a 0a 20 20 20 57 68 65 6e 20 79 6f 75 20 64 6f 20 74 68 69 73 2c 20 79 6f 75 penses.....When.you.do.this,.you
21880 20 63 61 6e 20 75 73 65 20 e2 80 98 4d 2d 70 e2 80 99 20 6f 72 20 e2 80 98 4d 2d 6e e2 80 99 20 .can.use....M-p....or....M-n....
218a0 74 6f 20 72 65 2d 6f 70 65 6e 20 74 68 65 20 73 61 6d 65 0a 72 65 70 6f 72 74 20 77 69 74 68 20 to.re-open.the.same.report.with.
218c0 74 68 65 20 70 72 65 76 69 6f 75 73 20 6f 72 20 6e 65 78 74 20 6d 6f 6e 74 68 2e 0a 0a 1f 0a 46 the.previous.or.next.month.....F
218e0 69 6c 65 3a 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 4d 61 ile:.ledger-mode.info,..Node:.Ma
21900 6b 65 20 52 65 70 6f 72 74 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 20 41 63 74 69 76 65 2c 20 20 ke.Report.Transactions.Active,..
21920 50 72 65 76 3a 20 45 78 70 61 6e 73 69 6f 6e 20 46 6f 72 6d 61 74 73 2c 20 20 55 70 3a 20 41 64 Prev:.Expansion.Formats,..Up:.Ad
21940 64 69 6e 67 20 61 6e 64 20 45 64 69 74 69 6e 67 20 52 65 70 6f 72 74 73 0a 0a 34 2e 32 2e 32 20 ding.and.Editing.Reports..4.2.2.
21960 4d 61 6b 65 20 52 65 70 6f 72 74 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 20 41 63 74 69 76 65 0a Make.Report.Transactions.Active.
21980 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
219a0 2d 2d 2d 2d 2d 0a 0a 49 6e 20 61 20 6c 61 72 67 65 20 72 65 67 69 73 74 65 72 20 72 65 70 6f 72 -----..In.a.large.register.repor
219c0 74 20 69 74 20 69 73 20 63 6f 6e 76 65 6e 69 65 6e 74 20 74 6f 20 62 65 20 61 62 6c 65 20 74 6f t.it.is.convenient.to.be.able.to
219e0 20 6a 75 6d 70 20 74 6f 20 74 68 65 0a 73 6f 75 72 63 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 2e .jump.to.the.source.transaction.
21a00 20 20 4c 65 64 67 65 72 2d 6d 6f 64 65 20 77 69 6c 6c 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 ..Ledger-mode.will.automatically
21a20 20 69 6e 63 6c 75 64 65 20 73 6f 75 72 63 65 0a 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 6e 20 65 .include.source.information.in.e
21a40 76 65 72 79 20 72 65 67 69 73 74 65 72 20 66 69 6c 65 20 74 68 61 74 20 64 6f 65 73 6e e2 80 99 very.register.file.that.doesn...
21a60 74 20 63 6f 6e 74 61 69 6e 20 61 20 e2 80 98 2d 2d 73 75 62 74 6f 74 61 6c e2 80 99 0a 6f 70 74 t.contain.a....--subtotal....opt
21a80 69 6f 6e 2e 20 20 49 74 20 64 6f 65 73 20 74 68 69 73 20 62 79 20 61 64 64 69 6e 67 0a e2 80 98 ion...It.does.this.by.adding....
21aa0 2d 2d 70 72 65 70 65 6e 64 2d 66 6f 72 6d 61 74 3d 27 25 28 66 69 6c 65 6e 61 6d 65 29 3a 25 28 --prepend-format='%(filename):%(
21ac0 62 65 67 5f 6c 69 6e 65 29 3a 27 e2 80 99 20 74 6f 20 74 68 65 20 72 65 67 69 73 74 65 72 20 72 beg_line):'....to.the.register.r
21ae0 65 70 6f 72 74 0a 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 79 6f 75 20 73 70 65 63 69 66 79 2e 20 eport.command-line.you.specify..
21b00 20 59 6f 75 20 73 68 6f 75 6c 64 20 6e 65 76 65 72 20 68 61 76 65 20 74 6f 20 73 65 65 20 74 68 .You.should.never.have.to.see.th
21b20 69 73 2c 20 62 75 74 20 69 66 0a 74 68 65 72 65 20 69 73 20 61 6e 20 65 72 72 6f 72 20 69 6e 20 is,.but.if.there.is.an.error.in.
21b40 79 6f 75 72 20 6c 65 64 67 65 72 20 6f 75 74 70 75 74 20 74 68 69 73 20 61 64 64 69 74 69 6f 6e your.ledger.output.this.addition
21b60 61 6c 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 6d 61 79 0a 6e 6f 74 20 67 65 74 20 73 74 72 69 70 al.information.may.not.get.strip
21b80 70 65 64 20 6f 75 74 20 6f 66 20 74 68 65 20 76 69 73 69 62 6c 65 20 72 65 70 6f 72 74 2e 0a 0a ped.out.of.the.visible.report...
21ba0 1f 0a 46 69 6c 65 3a 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a ..File:.ledger-mode.info,..Node:
21bc0 20 52 65 76 65 72 73 69 6e 67 20 52 65 70 6f 72 74 20 4f 72 64 65 72 2c 20 20 50 72 65 76 3a 20 .Reversing.Report.Order,..Prev:.
21be0 41 64 64 69 6e 67 20 61 6e 64 20 45 64 69 74 69 6e 67 20 52 65 70 6f 72 74 73 2c 20 20 55 70 3a Adding.and.Editing.Reports,..Up:
21c00 20 54 68 65 20 52 65 70 6f 72 74 20 42 75 66 66 65 72 0a 0a 34 2e 33 20 52 65 76 65 72 73 69 6e .The.Report.Buffer..4.3.Reversin
21c20 67 20 52 65 70 6f 72 74 20 4f 72 64 65 72 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d g.Report.Order.=================
21c40 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 4f 66 74 65 6e 2c 20 62 61 6e 6b 73 20 73 68 6f 77 20 74 68 65 =========..Often,.banks.show.the
21c60 69 72 20 6f 6e 2d 6c 69 6e 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 68 69 73 74 6f 72 69 65 73 ir.on-line.transaction.histories
21c80 20 77 69 74 68 20 74 68 65 20 6d 6f 73 74 0a 72 65 63 65 6e 74 20 74 72 61 6e 73 61 63 74 69 6f .with.the.most.recent.transactio
21ca0 6e 20 61 74 20 74 68 65 20 74 6f 70 2e 20 20 4c 65 64 67 65 72 20 69 74 73 65 6c 66 20 63 61 6e n.at.the.top...Ledger.itself.can
21cc0 6e 6f 74 20 64 6f 20 61 20 73 65 6e 73 69 62 6c 65 0a 6c 65 64 67 65 72 20 72 65 70 6f 72 74 20 not.do.a.sensible.ledger.report.
21ce0 69 6e 20 72 65 76 65 72 73 65 20 63 68 72 6f 6e 6f 6c 6f 67 69 63 61 6c 20 6f 72 64 65 72 2c 20 in.reverse.chronological.order,.
21d00 69 66 20 79 6f 75 20 73 6f 72 74 20 6f 6e 20 72 65 76 65 72 73 65 0a 64 61 74 65 20 74 68 65 20 if.you.sort.on.reverse.date.the.
21d20 63 61 6c 63 75 6c 61 74 69 6f 6e 20 77 69 6c 6c 20 61 6c 73 6f 20 72 75 6e 20 69 6e 20 74 68 65 calculation.will.also.run.in.the
21d40 20 6f 70 70 6f 73 69 74 65 20 64 69 72 65 63 74 69 6f 6e 2e 20 20 49 66 20 79 6f 75 0a 77 61 6e .opposite.direction...If.you.wan
21d60 74 20 74 6f 20 63 6f 6d 70 61 72 65 20 61 20 6c 65 64 67 65 72 20 72 65 67 69 73 74 65 72 20 72 t.to.compare.a.ledger.register.r
21d80 65 70 6f 72 74 20 74 6f 20 61 20 62 61 6e 6b 20 72 65 70 6f 72 74 20 77 69 74 68 20 74 68 65 20 eport.to.a.bank.report.with.the.
21da0 6d 6f 73 74 0a 72 65 63 65 6e 74 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 61 74 20 74 68 65 20 most.recent.transactions.at.the.
21dc0 74 6f 70 2c 20 74 79 70 65 20 e2 80 98 52 e2 80 99 20 69 6e 20 74 68 65 20 e2 80 98 2a 4c 65 64 top,.type....R....in.the....*Led
21de0 67 65 72 20 52 65 70 6f 72 74 2a e2 80 99 20 62 75 66 66 65 72 0a 61 6e 64 20 69 74 20 77 69 6c ger.Report*....buffer.and.it.wil
21e00 6c 20 72 65 76 65 72 73 65 20 74 68 65 20 6f 72 64 65 72 20 6f 66 20 74 68 65 20 74 72 61 6e 73 l.reverse.the.order.of.the.trans
21e20 61 63 74 69 6f 6e 73 20 61 6e 64 20 6d 61 69 6e 74 61 69 6e 20 74 68 65 0a 70 72 6f 70 65 72 20 actions.and.maintain.the.proper.
21e40 6d 61 74 68 65 6d 61 74 69 63 61 6c 20 73 65 6e 73 65 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 6c 65 64 mathematical.sense.....File:.led
21e60 67 65 72 2d 6d 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 53 63 68 65 64 75 6c 69 6e 67 ger-mode.info,..Node:.Scheduling
21e80 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 2c 20 20 4e 65 78 74 3a 20 43 75 73 74 6f 6d 69 7a 69 6e .Transactions,..Next:.Customizin
21ea0 67 20 4c 65 64 67 65 72 2d 6d 6f 64 65 2c 20 20 50 72 65 76 3a 20 54 68 65 20 52 65 70 6f 72 74 g.Ledger-mode,..Prev:.The.Report
21ec0 20 42 75 66 66 65 72 2c 20 20 55 70 3a 20 54 6f 70 0a 0a 35 20 53 63 68 65 64 75 6c 69 6e 67 20 .Buffer,..Up:.Top..5.Scheduling.
21ee0 54 72 61 6e 73 61 63 74 69 6f 6e 73 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a Transactions.*******************
21f00 2a 2a 2a 2a 2a 2a 0a 0a 54 68 65 20 4c 65 64 67 65 72 20 70 72 6f 67 72 61 6d 20 70 72 6f 76 69 ******..The.Ledger.program.provi
21f20 64 65 73 20 66 6f 72 20 61 75 74 6f 6d 61 74 69 6e 67 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 des.for.automating.transactions.
21f40 62 75 74 20 74 68 65 73 65 0a 74 72 61 6e 73 61 63 74 69 6f 6e 20 61 72 65 6e e2 80 99 74 20 5f but.these.transaction.aren...t._
21f60 72 65 61 6c 5f 2c 20 74 68 65 79 20 6f 6e 6c 79 20 65 78 69 73 74 20 69 6e 73 69 64 65 20 61 20 real_,.they.only.exist.inside.a.
21f80 6c 65 64 67 65 72 20 73 65 73 73 69 6f 6e 20 61 6e 64 0a 61 72 65 20 6e 6f 74 20 72 65 66 6c 65 ledger.session.and.are.not.refle
21fa0 63 74 65 64 20 69 6e 20 74 68 65 20 61 63 74 75 61 6c 20 64 61 74 61 20 66 69 6c 65 2e 20 20 4d cted.in.the.actual.data.file...M
21fc0 61 6e 79 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 61 72 65 20 76 65 72 79 0a 72 65 70 65 74 69 any.transactions.are.very.repeti
21fe0 74 69 76 65 2c 20 62 75 74 20 6d 61 79 20 76 61 72 79 20 73 6c 69 67 68 74 6c 79 20 69 6e 20 74 tive,.but.may.vary.slightly.in.t
22000 68 65 20 64 61 74 65 20 74 68 65 79 20 6f 63 63 75 72 20 6f 6e 2c 20 6f 72 20 74 68 65 0a 61 6d he.date.they.occur.on,.or.the.am
22020 6f 75 6e 74 2e 20 20 53 6f 6d 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 61 72 65 20 77 65 65 ount...Some.transactions.are.wee
22040 6b 6c 79 2c 20 6d 6f 6e 74 68 6c 79 2c 20 71 75 61 72 74 65 72 6c 79 20 6f 72 20 61 6e 6e 75 61 kly,.monthly,.quarterly.or.annua
22060 6c 6c 79 2e 0a 4c 65 64 67 65 72 20 6d 6f 64 65 20 70 72 6f 76 69 64 65 73 20 61 20 77 61 79 20 lly..Ledger.mode.provides.a.way.
22080 74 6f 20 73 63 68 65 64 75 6c 65 20 75 70 63 6f 6d 69 6e 67 20 74 72 61 6e 73 61 63 74 69 6f 6e to.schedule.upcoming.transaction
220a0 20 77 69 74 68 20 61 0a 66 6c 65 78 69 62 6c 65 20 73 63 68 65 64 75 6c 65 72 20 74 68 61 74 20 .with.a.flexible.scheduler.that.
220c0 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f 20 73 70 65 63 69 66 79 20 74 68 65 20 74 72 61 6e 73 61 allows.you.to.specify.the.transa
220e0 63 74 69 6f 6e 73 20 69 6e 20 61 0a 73 65 70 61 72 61 74 65 20 6c 65 64 67 65 72 20 66 69 6c 65 ctions.in.a.separate.ledger.file
22100 20 61 6e 64 20 63 61 6c 63 75 6c 61 74 65 20 74 68 65 20 75 70 63 6f 6d 69 6e 67 20 6f 63 63 75 .and.calculate.the.upcoming.occu
22120 72 72 65 6e 63 65 73 20 6f 66 20 74 68 6f 73 65 0a 74 72 61 6e 73 61 63 74 69 6f 6e 73 2e 20 20 rrences.of.those.transactions...
22140 59 6f 75 20 63 61 6e 20 74 68 65 6e 20 63 6f 70 79 20 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f You.can.then.copy.the.transactio
22160 6e 73 20 69 6e 74 6f 20 79 6f 75 72 20 6c 69 76 65 20 64 61 74 61 0a 66 69 6c 65 2e 0a 0a 2a 20 ns.into.your.live.data.file...*.
22180 4d 65 6e 75 3a 0a 0a 2a 20 53 70 65 63 69 66 79 69 6e 67 20 55 70 63 6f 6d 69 6e 67 20 54 72 61 Menu:..*.Specifying.Upcoming.Tra
221a0 6e 73 61 63 74 69 6f 6e 73 3a 3a 0a 0a 1f 0a 46 69 6c 65 3a 20 6c 65 64 67 65 72 2d 6d 6f 64 65 nsactions::....File:.ledger-mode
221c0 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 53 70 65 63 69 66 79 69 6e 67 20 55 70 63 6f 6d 69 6e .info,..Node:.Specifying.Upcomin
221e0 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 2c 20 20 50 72 65 76 3a 20 53 63 68 65 64 75 6c 69 6e g.Transactions,..Prev:.Schedulin
22200 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 2c 20 20 55 70 3a 20 53 63 68 65 64 75 6c 69 6e 67 20 g.Transactions,..Up:.Scheduling.
22220 54 72 61 6e 73 61 63 74 69 6f 6e 73 0a 0a 35 2e 31 20 53 70 65 63 69 66 79 69 6e 67 20 55 70 63 Transactions..5.1.Specifying.Upc
22240 6f 6d 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d oming.Transactions.=============
22260 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 54 68 65 20 66 6f 72 =======================..The.for
22280 6d 61 74 20 66 6f 72 20 73 70 65 63 69 66 79 69 6e 67 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 mat.for.specifying.transactions.
222a0 69 73 20 69 64 65 6e 74 69 63 61 6c 20 74 6f 20 4c 65 64 67 65 72 e2 80 99 73 20 66 69 6c 65 0a is.identical.to.Ledger...s.file.
222c0 66 6f 72 6d 61 74 20 77 69 74 68 20 74 68 65 20 65 78 63 65 70 74 69 6f 6e 20 6f 66 20 74 68 65 format.with.the.exception.of.the
222e0 20 64 61 74 65 20 66 69 65 6c 64 2e 20 20 54 68 65 20 64 61 74 61 20 66 69 65 6c 64 20 69 73 20 .date.field...The.data.field.is.
22300 6d 6f 64 69 66 69 65 64 0a 62 79 20 73 75 72 72 6f 75 6e 64 69 6e 67 20 69 74 20 77 69 74 68 20 modified.by.surrounding.it.with.
22320 62 72 61 63 6b 65 74 73 20 61 6e 64 20 75 73 69 6e 67 20 77 69 6c 64 20 63 61 72 64 73 20 61 6e brackets.and.using.wild.cards.an
22340 64 20 73 70 65 63 69 61 6c 0a 63 68 61 72 61 63 74 65 72 73 20 74 6f 20 73 70 65 63 69 66 79 20 d.special.characters.to.specify.
22360 77 68 65 6e 20 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 73 68 6f 75 6c 64 20 61 70 70 when.the.transactions.should.app
22380 65 61 72 2e 0a 0a 2a 20 4d 65 6e 75 3a 0a 0a 2a 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 20 74 68 ear...*.Menu:..*.Transactions.th
223a0 61 74 20 6f 63 63 75 72 20 6f 6e 20 73 70 65 63 69 66 69 63 20 64 61 74 65 73 3a 3a 0a 2a 20 54 at.occur.on.specific.dates::.*.T
223c0 72 61 6e 73 61 63 74 69 6f 6e 73 20 74 68 61 74 20 6f 63 63 75 72 20 6f 6e 20 73 70 65 63 69 66 ransactions.that.occur.on.specif
223e0 69 63 20 64 61 79 73 3a 3a 0a 0a 1f 0a 46 69 6c 65 3a 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 69 ic.days::....File:.ledger-mode.i
22400 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 20 74 68 61 74 20 6f 63 nfo,..Node:.Transactions.that.oc
22420 63 75 72 20 6f 6e 20 73 70 65 63 69 66 69 63 20 64 61 74 65 73 2c 20 20 4e 65 78 74 3a 20 54 72 cur.on.specific.dates,..Next:.Tr
22440 61 6e 73 61 63 74 69 6f 6e 73 20 74 68 61 74 20 6f 63 63 75 72 20 6f 6e 20 73 70 65 63 69 66 69 ansactions.that.occur.on.specifi
22460 63 20 64 61 79 73 2c 20 20 50 72 65 76 3a 20 53 70 65 63 69 66 79 69 6e 67 20 55 70 63 6f 6d 69 c.days,..Prev:.Specifying.Upcomi
22480 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 2c 20 20 55 70 3a 20 53 70 65 63 69 66 79 69 6e 67 ng.Transactions,..Up:.Specifying
224a0 20 55 70 63 6f 6d 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 0a 0a 35 2e 31 2e 31 20 54 72 .Upcoming.Transactions..5.1.1.Tr
224c0 61 6e 73 61 63 74 69 6f 6e 73 20 74 68 61 74 20 6f 63 63 75 72 20 6f 6e 20 73 70 65 63 69 66 69 ansactions.that.occur.on.specifi
224e0 63 20 64 61 74 65 73 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d c.dates.------------------------
22500 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 4d 61 6e 79 20 74 69 -----------------------..Many.ti
22520 6d 65 73 20 79 6f 75 20 77 69 6c 6c 20 65 6e 74 65 72 20 72 65 70 65 74 69 74 69 76 65 20 74 72 mes.you.will.enter.repetitive.tr
22540 61 6e 73 61 63 74 69 6f 6e 73 20 74 68 61 74 20 6f 63 63 75 72 20 6f 6e 20 74 68 65 20 73 61 6d ansactions.that.occur.on.the.sam
22560 65 0a 64 61 79 20 6f 66 20 74 68 65 20 6d 6f 6e 74 68 20 65 61 63 68 20 6d 6f 6e 74 68 2e 20 20 e.day.of.the.month.each.month...
22580 54 68 65 73 65 20 63 61 6e 20 62 65 20 73 70 65 63 69 66 69 65 64 20 75 73 69 6e 67 20 61 20 77 These.can.be.specified.using.a.w
225a0 69 6c 64 20 63 61 72 64 0a 69 6e 20 74 68 65 20 79 65 61 72 20 61 6e 64 20 6d 6f 6e 74 68 20 77 ild.card.in.the.year.and.month.w
225c0 69 74 68 20 61 20 66 69 78 65 64 20 64 61 74 65 20 69 6e 20 74 68 65 20 64 61 79 2e 20 20 54 68 ith.a.fixed.date.in.the.day...Th
225e0 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 65 6e 74 72 79 0a 73 70 65 63 69 66 69 65 73 20 61 20 74 72 e.following.entry.specifies.a.tr
22600 61 6e 73 61 63 74 69 6f 6e 20 74 68 61 74 20 6f 63 63 75 72 73 20 6f 6e 20 74 68 65 20 66 69 72 ansaction.that.occurs.on.the.fir
22620 73 74 20 61 6e 64 20 66 69 66 74 65 65 6e 74 68 20 6f 66 20 65 76 65 72 79 0a 6d 6f 6e 74 68 20 st.and.fifteenth.of.every.month.
22640 69 6e 20 65 76 65 72 79 20 79 65 61 72 2e 0a 20 20 20 20 20 5b 2a 2f 2a 2f 31 2c 31 35 5d 20 50 in.every.year.......[*/*/1,15].P
22660 61 79 63 68 65 63 6b 0a 20 20 20 20 20 20 20 20 20 49 6e 63 6f 6d 65 3a 4a 6f 62 20 20 20 20 20 aycheck..........Income:Job.....
22680 20 20 24 31 30 30 30 2e 30 30 0a 20 20 20 20 20 20 20 20 20 41 73 73 65 74 73 3a 43 68 65 63 6b ..$1000.00..........Assets:Check
226a0 69 6e 67 0a 0a 20 20 20 53 6f 6d 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 64 6f 20 6e 6f 74 ing.....Some.transactions.do.not
226c0 20 6f 63 63 75 72 20 65 76 65 72 79 20 6d 6f 6e 74 68 2e 20 20 43 6f 6d 6d 61 20 73 65 70 61 72 .occur.every.month...Comma.separ
226e0 61 74 65 64 20 6c 69 73 74 73 20 6f 66 0a 74 68 65 20 6d 6f 6e 74 68 73 2c 20 6f 72 20 e2 80 98 ated.lists.of.the.months,.or....
22700 45 e2 80 99 20 66 6f 72 20 65 76 65 6e 2c 20 6f 72 20 e2 80 98 4f e2 80 99 20 66 6f 72 20 6f 64 E....for.even,.or....O....for.od
22720 64 20 6e 75 6d 62 65 72 20 6d 6f 6e 74 68 73 20 63 61 6e 20 61 6c 73 6f 20 62 65 0a 73 70 65 63 d.number.months.can.also.be.spec
22740 69 66 69 65 64 2e 20 20 54 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 65 6e 74 72 79 20 73 70 65 63 ified...The.following.entry.spec
22760 69 66 69 65 73 20 61 20 62 69 2d 6d 6f 6e 74 68 6c 79 20 65 78 74 65 72 6d 69 6e 61 74 6f 72 20 ifies.a.bi-monthly.exterminator.
22780 62 69 6c 6c 0a 74 68 61 74 20 6f 63 63 75 72 73 20 69 6e 20 74 68 65 20 65 76 65 6e 20 6d 6f 6e bill.that.occurs.in.the.even.mon
227a0 74 68 73 3a 0a 20 20 20 20 20 5b 2a 2f 45 2f 30 31 5d 20 20 45 78 74 65 72 6d 69 6e 61 74 6f 72 ths:......[*/E/01]..Exterminator
227c0 0a 20 20 20 20 20 20 20 20 20 45 78 70 65 6e 73 65 73 3a 48 6f 6d 65 20 20 20 24 31 30 30 2e 30 ..........Expenses:Home...$100.0
227e0 30 0a 20 20 20 20 20 20 20 20 20 41 73 73 65 74 73 3a 43 68 65 63 6b 69 6e 67 0a 0a 1f 0a 46 69 0..........Assets:Checking....Fi
22800 6c 65 3a 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 54 72 61 le:.ledger-mode.info,..Node:.Tra
22820 6e 73 61 63 74 69 6f 6e 73 20 74 68 61 74 20 6f 63 63 75 72 20 6f 6e 20 73 70 65 63 69 66 69 63 nsactions.that.occur.on.specific
22840 20 64 61 79 73 2c 20 20 50 72 65 76 3a 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 20 74 68 61 74 20 .days,..Prev:.Transactions.that.
22860 6f 63 63 75 72 20 6f 6e 20 73 70 65 63 69 66 69 63 20 64 61 74 65 73 2c 20 20 55 70 3a 20 53 70 occur.on.specific.dates,..Up:.Sp
22880 65 63 69 66 79 69 6e 67 20 55 70 63 6f 6d 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 0a 0a ecifying.Upcoming.Transactions..
228a0 35 2e 31 2e 32 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 20 74 68 61 74 20 6f 63 63 75 72 20 6f 6e 5.1.2.Transactions.that.occur.on
228c0 20 73 70 65 63 69 66 69 63 20 64 61 79 73 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .specific.days.-----------------
228e0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 53 -----------------------------..S
22900 6f 6d 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 6f 63 63 75 72 20 65 76 65 72 79 20 72 65 6c ome.transactions.occur.every.rel
22920 61 74 69 76 65 20 74 6f 20 74 68 65 20 64 61 79 20 6f 66 20 74 68 65 20 77 65 65 6b 20 72 61 74 ative.to.the.day.of.the.week.rat
22940 68 65 72 0a 74 68 61 6e 20 74 68 65 20 64 61 74 65 20 6f 66 20 74 68 65 20 6d 6f 6e 74 68 2e 20 her.than.the.date.of.the.month..
22960 20 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 6d 61 6e 79 20 70 65 6f 70 6c 65 20 61 72 65 20 70 61 .For.example,.many.people.are.pa
22980 69 64 20 65 76 65 72 79 20 74 77 6f 0a 77 65 65 6b 73 20 77 69 74 68 6f 75 74 20 72 65 67 61 72 id.every.two.weeks.without.regar
229a0 64 20 74 6f 20 74 68 65 20 64 61 79 20 6f 66 20 74 68 65 20 6d 6f 6e 74 68 2e 20 20 4f 74 68 65 d.to.the.day.of.the.month...Othe
229c0 72 20 65 76 65 6e 74 73 20 6d 61 79 20 6f 63 63 75 72 20 6f 6e 0a 73 70 65 63 69 66 69 63 20 64 r.events.may.occur.on.specific.d
229e0 61 79 73 20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 74 68 65 20 64 61 74 65 2e 20 20 46 6f 72 ays.regardless.of.the.date...For
22a00 20 65 78 61 6d 70 6c 65 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 0a 74 72 61 6e 73 61 63 74 69 .example.the.following.transacti
22a20 6f 6e 73 20 63 72 65 61 74 65 73 20 61 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 65 76 65 72 79 20 ons.creates.a.transaction.every.
22a40 6f 74 68 65 72 20 54 68 75 72 73 64 61 79 3a 0a 0a 20 20 20 20 20 5b 32 30 31 34 2f 31 31 2f 32 other.Thursday:.......[2014/11/2
22a60 37 2b 32 54 68 5d 20 20 50 61 79 63 68 65 63 6b 0a 20 20 20 20 20 20 20 20 20 49 6e 63 6f 6d 65 7+2Th]..Paycheck..........Income
22a80 3a 4a 6f 62 20 20 20 20 20 20 20 24 31 30 30 30 2e 30 30 0a 20 20 20 20 20 20 20 20 20 41 73 73 :Job.......$1000.00..........Ass
22aa0 65 74 73 3a 43 68 65 63 6b 69 6e 67 0a 0a 20 20 20 49 74 20 69 73 20 6e 65 63 65 73 73 61 72 79 ets:Checking.....It.is.necessary
22ac0 20 74 6f 20 73 70 65 63 69 66 79 20 61 20 73 74 61 72 74 69 6e 67 20 64 61 74 65 20 69 6e 20 6f .to.specify.a.starting.date.in.o
22ae0 72 64 65 72 20 66 6f 72 20 74 68 69 73 20 74 79 70 65 20 6f 66 0a 72 65 63 75 72 72 65 6e 63 65 rder.for.this.type.of.recurrence
22b00 20 72 65 6c 61 74 69 6f 6e 20 74 6f 20 62 65 20 73 70 65 63 69 66 69 65 64 2e 20 20 54 68 65 20 .relation.to.be.specified...The.
22b20 64 61 79 20 6e 61 6d 65 73 20 61 72 65 20 74 77 6f 20 63 68 61 72 61 63 74 65 72 0a 63 6f 64 65 day.names.are.two.character.code
22b40 73 20 74 68 61 74 20 64 65 66 61 75 6c 74 20 74 6f 20 4d 6f 2c 20 54 75 2c 20 57 65 2c 20 54 68 s.that.default.to.Mo,.Tu,.We,.Th
22b60 2c 20 46 72 2c 20 53 61 2c 20 53 75 2c 20 66 6f 72 20 4d 6f 6e 64 61 79 2c 20 54 75 65 73 64 61 ,.Fr,.Sa,.Su,.for.Monday,.Tuesda
22b80 79 2c 0a 57 65 64 6e 65 73 64 61 79 2c 20 54 68 75 72 73 64 61 79 2c 20 46 72 69 64 61 79 2c 20 y,.Wednesday,.Thursday,.Friday,.
22ba0 53 61 74 75 72 64 61 79 2c 20 53 75 6e 64 61 79 20 72 65 73 70 65 63 74 69 76 65 6c 79 2e 20 20 Saturday,.Sunday.respectively...
22bc0 59 6f 75 20 63 61 6e 0a 63 68 61 6e 67 65 20 74 68 65 20 63 6f 64 65 73 20 74 6f 20 73 6f 6d 65 You.can.change.the.codes.to.some
22be0 74 68 69 6e 67 20 6d 6f 72 65 20 63 6f 6e 76 65 6e 69 65 6e 74 20 66 6f 72 20 79 6f 75 72 20 6c thing.more.convenient.for.your.l
22c00 6f 63 61 6c 65 20 62 79 0a 63 75 73 74 6f 6d 69 7a 69 6e 67 20 74 68 65 20 6c 65 64 67 65 72 20 ocale.by.customizing.the.ledger.
22c20 e2 80 98 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 77 65 65 6b 2d 64 61 79 73 e2 80 99 2e ...ledger-schedule-week-days....
22c40 20 20 54 68 65 79 20 6d 75 73 74 20 62 65 20 74 77 6f 0a 63 68 61 72 61 63 74 65 72 73 20 6c 6f ..They.must.be.two.characters.lo
22c60 6e 67 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 69 6e 66 6f 2c 20 20 ng.....File:.ledger-mode.info,..
22c80 4e 6f 64 65 3a 20 43 75 73 74 6f 6d 69 7a 69 6e 67 20 4c 65 64 67 65 72 2d 6d 6f 64 65 2c 20 20 Node:.Customizing.Ledger-mode,..
22ca0 4e 65 78 74 3a 20 47 65 6e 65 72 61 74 69 6e 67 20 4c 65 64 67 65 72 20 52 65 67 72 65 73 73 69 Next:.Generating.Ledger.Regressi
22cc0 6f 6e 20 54 65 73 74 73 2c 20 20 50 72 65 76 3a 20 53 63 68 65 64 75 6c 69 6e 67 20 54 72 61 6e on.Tests,..Prev:.Scheduling.Tran
22ce0 73 61 63 74 69 6f 6e 73 2c 20 20 55 70 3a 20 54 6f 70 0a 0a 36 20 43 75 73 74 6f 6d 69 7a 69 6e sactions,..Up:.Top..6.Customizin
22d00 67 20 4c 65 64 67 65 72 2d 6d 6f 64 65 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a g.Ledger-mode.******************
22d20 2a 2a 2a 2a 2a 2a 2a 0a 0a 2a 20 4d 65 6e 75 3a 0a 0a 2a 20 4c 65 64 67 65 72 2d 6d 6f 64 65 20 *******..*.Menu:..*.Ledger-mode.
22d40 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 3a 3a 0a 2a 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 Customization::.*.Customization.
22d60 56 61 72 69 61 62 6c 65 73 3a 3a 0a 0a 1f 0a 46 69 6c 65 3a 20 6c 65 64 67 65 72 2d 6d 6f 64 65 Variables::....File:.ledger-mode
22d80 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 4c 65 64 67 65 72 2d 6d 6f 64 65 20 43 75 73 74 6f 6d .info,..Node:.Ledger-mode.Custom
22da0 69 7a 61 74 69 6f 6e 2c 20 20 4e 65 78 74 3a 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 56 61 ization,..Next:.Customization.Va
22dc0 72 69 61 62 6c 65 73 2c 20 20 50 72 65 76 3a 20 43 75 73 74 6f 6d 69 7a 69 6e 67 20 4c 65 64 67 riables,..Prev:.Customizing.Ledg
22de0 65 72 2d 6d 6f 64 65 2c 20 20 55 70 3a 20 43 75 73 74 6f 6d 69 7a 69 6e 67 20 4c 65 64 67 65 72 er-mode,..Up:.Customizing.Ledger
22e00 2d 6d 6f 64 65 0a 0a 36 2e 31 20 4c 65 64 67 65 72 2d 6d 6f 64 65 20 43 75 73 74 6f 6d 69 7a 61 -mode..6.1.Ledger-mode.Customiza
22e20 74 69 6f 6e 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d tion.===========================
22e40 3d 3d 0a 0a 4c 65 64 67 65 72 2d 6d 6f 64 65 20 68 61 73 20 73 65 76 65 72 61 6c 20 6f 70 74 69 ==..Ledger-mode.has.several.opti
22e60 6f 6e 73 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2e ons.available.for.configuration.
22e80 20 20 41 6c 6c 0a 6f 70 74 69 6f 6e 73 20 63 61 6e 20 62 65 20 63 6f 6e 66 69 67 75 72 65 64 20 ..All.options.can.be.configured.
22ea0 74 68 72 6f 75 67 68 20 74 68 65 20 45 6d 61 63 73 20 63 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 through.the.Emacs.customization.
22ec0 6d 65 6e 75 73 2c 20 6f 72 0a 73 70 65 63 69 66 69 65 64 20 69 6e 20 79 6f 75 72 20 45 6d 61 63 menus,.or.specified.in.your.Emac
22ee0 73 20 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 66 69 6c 65 2e 20 20 54 68 65 20 63 6f 6d 70 s.initialization.file...The.comp
22f00 6c 65 74 65 20 6c 69 73 74 20 6f 66 0a 6f 70 74 69 6f 6e 73 20 69 73 20 73 68 6f 77 6e 20 62 65 lete.list.of.options.is.shown.be
22f20 6c 6f 77 2e 20 20 54 6f 20 63 68 61 6e 67 65 20 74 68 65 20 6f 70 74 69 6f 6e 20 75 73 69 6e 67 low...To.change.the.option.using
22f40 20 74 68 65 20 45 6d 61 63 73 0a 63 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 6d 65 6e 75 2c 20 73 .the.Emacs.customization.menu,.s
22f60 69 6d 70 6c 79 20 63 68 6f 6f 73 65 20 63 75 73 74 6f 6d 69 7a 65 20 69 6e 20 74 68 65 20 4f 70 imply.choose.customize.in.the.Op
22f80 74 69 6f 6e 73 20 6d 65 6e 75 20 61 6e 64 20 6c 6f 6f 6b 0a 66 6f 72 20 4c 65 64 67 65 72 20 75 tions.menu.and.look.for.Ledger.u
22fa0 6e 64 65 72 20 74 68 65 20 64 61 74 61 20 6f 70 74 69 6f 6e 73 2e 20 20 41 6c 74 65 72 6e 61 74 nder.the.data.options...Alternat
22fc0 69 76 65 6c 79 20 79 6f 75 20 63 61 6e 20 63 68 6f 6f 73 65 0a e2 80 98 43 75 73 74 6f 6d 69 7a ively.you.can.choose....Customiz
22fe0 65 20 53 70 65 63 69 66 69 63 20 47 72 6f 75 70 e2 80 99 20 61 6e 64 20 65 6e 74 65 72 20 e2 80 e.Specific.Group....and.enter...
23000 98 4c 65 64 67 65 72 e2 80 99 20 61 73 20 74 68 65 20 67 72 6f 75 70 2e 0a 0a 1f 0a 46 69 6c 65 .Ledger....as.the.group.....File
23020 3a 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 43 75 73 74 6f :.ledger-mode.info,..Node:.Custo
23040 6d 69 7a 61 74 69 6f 6e 20 56 61 72 69 61 62 6c 65 73 2c 20 20 50 72 65 76 3a 20 4c 65 64 67 65 mization.Variables,..Prev:.Ledge
23060 72 2d 6d 6f 64 65 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 2c 20 20 55 70 3a 20 43 75 73 74 6f r-mode.Customization,..Up:.Custo
23080 6d 69 7a 69 6e 67 20 4c 65 64 67 65 72 2d 6d 6f 64 65 0a 0a 36 2e 32 20 43 75 73 74 6f 6d 69 7a mizing.Ledger-mode..6.2.Customiz
230a0 61 74 69 6f 6e 20 56 61 72 69 61 62 6c 65 73 0a 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d ation.Variables.================
230c0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 2a 20 4d 65 6e 75 3a 0a 0a 2a 20 4c 65 64 67 65 72 20 43 ===========..*.Menu:..*.Ledger.C
230e0 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 3a 3a 0a 2a 20 4c 65 64 67 65 72 20 52 65 ustomization.Group::.*.Ledger.Re
23100 63 6f 6e 63 69 6c 65 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 3a 3a 0a 2a 20 concile.Customization.Group::.*.
23120 4c 65 64 67 65 72 20 52 65 70 6f 72 74 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 Ledger.Report.Customization.Grou
23140 70 3a 3a 0a 2a 20 4c 65 64 67 65 72 20 46 61 63 65 73 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e p::.*.Ledger.Faces.Customization
23160 20 47 72 6f 75 70 3a 3a 0a 2a 20 4c 65 64 67 65 72 20 50 6f 73 74 20 43 75 73 74 6f 6d 69 7a 61 .Group::.*.Ledger.Post.Customiza
23180 74 69 6f 6e 20 47 72 6f 75 70 3a 3a 0a 2a 20 4c 65 64 67 65 72 20 45 78 65 63 20 43 75 73 74 6f tion.Group::.*.Ledger.Exec.Custo
231a0 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 3a 3a 0a 2a 20 4c 65 64 67 65 72 20 54 65 73 74 20 43 mization.Group::.*.Ledger.Test.C
231c0 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 3a 3a 0a 2a 20 4c 65 64 67 65 72 20 54 65 ustomization.Group::.*.Ledger.Te
231e0 78 69 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 3a 3a 0a 0a 1f 0a 46 69 6c 65 xi.Customization.Group::....File
23200 3a 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 4c 65 64 67 65 :.ledger-mode.info,..Node:.Ledge
23220 72 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2c 20 20 4e 65 78 74 3a 20 4c 65 r.Customization.Group,..Next:.Le
23240 64 67 65 72 20 52 65 63 6f 6e 63 69 6c 65 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f dger.Reconcile.Customization.Gro
23260 75 70 2c 20 20 50 72 65 76 3a 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 56 61 72 69 61 62 6c up,..Prev:.Customization.Variabl
23280 65 73 2c 20 20 55 70 3a 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 56 61 72 69 61 62 6c 65 73 es,..Up:.Customization.Variables
232a0 0a 0a 36 2e 32 2e 31 20 4c 65 64 67 65 72 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f ..6.2.1.Ledger.Customization.Gro
232c0 75 70 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d up.-----------------------------
232e0 2d 2d 2d 0a 0a e2 80 98 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d 75 73 65 2d 66 61 63 65 2d 73 68 ---.....ledger-occur-use-face-sh
23300 6f 77 6e e2 80 99 0a 20 20 20 20 20 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 75 73 65 20 61 20 63 75 own.........If.non-nil,.use.a.cu
23320 73 74 6f 6d 20 66 61 63 65 20 66 6f 72 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 73 68 6f 77 6e stom.face.for.transactions.shown
23340 20 69 6e 0a 20 20 20 20 20 e2 80 98 6c 65 64 67 65 72 2d 6f 63 63 75 72 e2 80 99 20 6d 6f 64 65 .in.........ledger-occur....mode
23360 20 75 73 69 6e 67 20 e2 80 98 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d 78 61 63 74 2d 66 61 63 65 .using....ledger-occur-xact-face
23380 e2 80 99 2e 0a 0a e2 80 98 6c 65 64 67 65 72 2d 63 6c 65 61 72 2d 77 68 6f 6c 65 2d 74 72 61 6e .........ledger-clear-whole-tran
233a0 73 61 63 74 69 6f 6e 73 e2 80 99 0a 20 20 20 20 20 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 63 6c 65 sactions.........If.non-nil,.cle
233c0 61 72 20 77 68 6f 6c 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 2c 20 6e 6f 74 20 69 6e 64 69 76 ar.whole.transactions,.not.indiv
233e0 69 64 75 61 6c 20 70 6f 73 74 69 6e 67 73 2e 0a 0a e2 80 98 6c 65 64 67 65 72 2d 68 69 67 68 6c idual.postings......ledger-highl
23400 69 67 68 74 2d 78 61 63 74 2d 75 6e 64 65 72 2d 70 6f 69 6e 74 e2 80 99 0a 20 20 20 20 20 49 66 ight-xact-under-point.........If
23420 20 6e 6f 6e 2d 6e 69 6c 2c 20 68 69 67 68 6c 69 67 68 74 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 .non-nil,.highlight.transaction.
23440 75 6e 64 65 72 20 70 6f 69 6e 74 20 75 73 69 6e 67 0a 20 20 20 20 20 e2 80 98 6c 65 64 67 65 72 under.point.using.........ledger
23460 2d 66 6f 6e 74 2d 68 69 67 68 6c 69 67 68 74 2d 66 61 63 65 e2 80 99 2e 0a 0a 1f 0a 46 69 6c 65 -font-highlight-face........File
23480 3a 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 4c 65 64 67 65 :.ledger-mode.info,..Node:.Ledge
234a0 72 20 52 65 63 6f 6e 63 69 6c 65 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2c r.Reconcile.Customization.Group,
234c0 20 20 4e 65 78 74 3a 20 4c 65 64 67 65 72 20 52 65 70 6f 72 74 20 43 75 73 74 6f 6d 69 7a 61 74 ..Next:.Ledger.Report.Customizat
234e0 69 6f 6e 20 47 72 6f 75 70 2c 20 20 50 72 65 76 3a 20 4c 65 64 67 65 72 20 43 75 73 74 6f 6d 69 ion.Group,..Prev:.Ledger.Customi
23500 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2c 20 20 55 70 3a 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e zation.Group,..Up:.Customization
23520 20 56 61 72 69 61 62 6c 65 73 0a 0a 36 2e 32 2e 32 20 4c 65 64 67 65 72 20 52 65 63 6f 6e 63 69 .Variables..6.2.2.Ledger.Reconci
23540 6c 65 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d le.Customization.Group.---------
23560 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d --------------------------------
23580 2d 0a 0a e2 80 98 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 62 75 66 66 65 72 2d 6e 61 -.....ledger-reconcile-buffer-na
235a0 6d 65 e2 80 99 0a 20 20 20 20 20 4e 61 6d 65 20 74 6f 20 75 73 65 20 66 6f 72 20 72 65 63 6f 6e me.........Name.to.use.for.recon
235c0 63 69 6c 69 61 74 69 6f 6e 20 62 75 66 66 65 72 2e 20 20 44 65 66 61 75 6c 74 73 20 74 6f 20 e2 ciliation.buffer...Defaults.to..
235e0 80 98 2a 52 65 63 6f 6e 63 69 6c 65 2a e2 80 99 2e 0a 0a e2 80 98 6c 65 64 67 65 72 2d 6e 61 72 ..*Reconcile*.........ledger-nar
23600 72 6f 77 2d 6f 6e 2d 72 65 63 6f 6e 63 69 6c 65 e2 80 99 0a 20 20 20 20 20 49 66 20 74 2c 20 6c row-on-reconcile.........If.t,.l
23620 69 6d 69 74 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 73 68 6f 77 6e 20 69 6e 20 6d 61 69 6e 20 imit.transactions.shown.in.main.
23640 62 75 66 66 65 72 20 74 6f 20 74 68 6f 73 65 20 6d 61 74 63 68 69 6e 67 20 74 68 65 0a 20 20 20 buffer.to.those.matching.the....
23660 20 20 72 65 63 6f 6e 63 69 6c 65 20 72 65 67 65 78 2e 0a 0a e2 80 98 6c 65 64 67 65 72 2d 62 75 ..reconcile.regex......ledger-bu
23680 66 66 65 72 2d 74 72 61 63 6b 73 2d 72 65 63 6f 6e 63 69 6c 65 2d 62 75 66 66 65 72 e2 80 99 0a ffer-tracks-reconcile-buffer....
236a0 20 20 20 20 20 49 66 20 74 2c 20 74 68 65 6e 20 77 68 65 6e 20 74 68 65 20 63 75 72 73 6f 72 20 .....If.t,.then.when.the.cursor.
236c0 69 73 20 6d 6f 76 65 64 20 74 6f 20 61 20 6e 65 77 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 69 6e is.moved.to.a.new.transaction.in
236e0 20 74 68 65 0a 20 20 20 20 20 e2 80 98 2a 52 65 63 6f 6e 63 69 6c 65 2a e2 80 99 20 62 75 66 66 .the.........*Reconcile*....buff
23700 65 72 2e 20 20 54 68 65 6e 20 74 68 61 74 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 77 69 6c 6c 20 er...Then.that.transaction.will.
23720 62 65 20 73 68 6f 77 6e 20 69 6e 20 69 74 73 0a 20 20 20 20 20 73 6f 75 72 63 65 20 62 75 66 66 be.shown.in.its......source.buff
23740 65 72 2e 0a 0a e2 80 98 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 66 6f 72 63 65 2d 77 er......ledger-reconcile-force-w
23760 69 6e 64 6f 77 2d 62 6f 74 74 6f 6d e2 80 99 0a 20 20 20 20 20 49 66 20 74 2c 20 6d 61 6b 65 20 indow-bottom.........If.t,.make.
23780 74 68 65 20 e2 80 98 2a 52 65 63 6f 6e 63 69 6c 65 2a e2 80 99 20 77 69 6e 64 6f 77 20 61 70 70 the....*Reconcile*....window.app
237a0 65 61 72 20 61 6c 6f 6e 67 20 74 68 65 20 62 6f 74 74 6f 6d 20 6f 66 20 74 68 65 0a 20 20 20 20 ear.along.the.bottom.of.the.....
237c0 20 72 65 67 69 73 74 65 72 20 77 69 6e 64 6f 77 20 61 6e 64 20 72 65 73 69 7a 65 2e 0a 0a e2 80 .register.window.and.resize.....
237e0 98 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 74 6f 67 67 6c 65 2d 74 6f 2d 70 65 6e 64 .ledger-reconcile-toggle-to-pend
23800 69 6e 67 e2 80 99 0a 20 20 20 20 20 49 66 20 74 2c 20 74 68 65 6e 20 74 6f 67 67 6c 65 20 62 65 ing.........If.t,.then.toggle.be
23820 74 77 65 65 6e 20 75 6e 63 6c 65 61 72 65 64 20 61 6e 64 20 70 65 6e 64 69 6e 67 20 e2 80 98 21 tween.uncleared.and.pending....!
23840 e2 80 99 2e 20 20 49 66 20 66 61 6c 73 65 0a 20 20 20 20 20 74 6f 67 67 6c 65 20 62 65 74 77 65 ......If.false......toggle.betwe
23860 65 6e 20 75 6e 63 6c 65 61 72 65 64 20 61 6e 64 20 63 6c 65 61 72 65 64 20 e2 80 98 2a e2 80 99 en.uncleared.and.cleared....*...
23880 2e 0a 0a e2 80 98 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 64 65 66 61 75 6c 74 2d 64 ......ledger-reconcile-default-d
238a0 61 74 65 2d 66 6f 72 6d 61 74 e2 80 99 0a 20 20 20 20 20 44 61 74 65 20 66 6f 72 6d 61 74 20 66 ate-format.........Date.format.f
238c0 6f 72 20 74 68 65 20 72 65 63 6f 6e 63 69 6c 65 20 62 75 66 66 65 72 2e 20 20 44 65 66 61 75 6c or.the.reconcile.buffer...Defaul
238e0 74 73 20 74 6f 0a 20 20 20 20 20 e2 80 98 6c 65 64 67 65 72 2d 64 65 66 61 75 6c 74 2d 64 61 74 ts.to.........ledger-default-dat
23900 65 2d 66 6f 72 6d 61 74 e2 80 99 2e 0a 0a e2 80 98 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c e-format.........ledger-reconcil
23920 65 2d 74 61 72 67 65 74 2d 70 72 6f 6d 70 74 2d 73 74 72 69 6e 67 e2 80 99 0a 20 20 20 20 20 50 e-target-prompt-string.........P
23940 72 6f 6d 70 74 20 66 6f 72 20 72 65 63 6f 6e 63 69 6c 65 20 74 61 72 67 65 74 2e 20 20 44 65 66 rompt.for.reconcile.target...Def
23960 61 75 6c 74 73 20 74 6f 20 22 54 61 72 67 65 74 20 61 6d 6f 75 6e 74 20 66 6f 72 0a 20 20 20 20 aults.to."Target.amount.for.....
23980 20 72 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 20 22 2e 0a 0a e2 80 98 6c 65 64 67 65 72 2d 72 65 .reconciliation."......ledger-re
239a0 63 6f 6e 63 69 6c 65 2d 62 75 66 66 65 72 2d 68 65 61 64 65 72 e2 80 99 0a 20 20 20 20 20 48 65 concile-buffer-header.........He
239c0 61 64 65 72 20 73 74 72 69 6e 67 20 66 6f 72 20 74 68 65 20 72 65 63 6f 6e 63 69 6c 65 20 62 75 ader.string.for.the.reconcile.bu
239e0 66 66 65 72 2e 20 20 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 74 68 65 20 6e 61 6d 65 20 6f 66 0a 20 ffer...If.non-nil,.the.name.of..
23a00 20 20 20 20 74 68 65 20 61 63 63 6f 75 6e 74 20 62 65 69 6e 67 20 72 65 63 6f 6e 63 69 6c 65 64 ....the.account.being.reconciled
23a20 20 77 69 6c 6c 20 62 65 20 73 75 62 73 74 69 74 75 74 65 64 20 69 6e 74 6f 20 74 68 65 20 e2 80 .will.be.substituted.into.the...
23a40 99 25 73 e2 80 99 2e 20 20 49 66 0a 20 20 20 20 20 6e 69 6c 2c 20 6e 6f 20 68 65 61 64 65 72 20 .%s......If......nil,.no.header.
23a60 77 69 6c 6c 20 62 65 20 64 69 73 70 6c 61 79 65 64 2e 20 20 44 65 66 61 75 6c 74 73 20 74 6f 20 will.be.displayed...Defaults.to.
23a80 22 52 65 63 6f 6e 63 69 6c 69 6e 67 20 61 63 63 6f 75 6e 74 0a 20 20 20 20 20 25 73 5c 6e 5c 6e "Reconciling.account......%s\n\n
23aa0 22 2e 0a 0a e2 80 98 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 62 75 66 66 65 72 2d 6c "......ledger-reconcile-buffer-l
23ac0 69 6e 65 2d 66 6f 72 6d 61 74 e2 80 99 0a 20 20 20 20 20 46 6f 72 6d 61 74 20 73 74 72 69 6e 67 ine-format.........Format.string
23ae0 20 66 6f 72 20 74 68 65 20 6c 65 64 67 65 72 20 72 65 63 6f 6e 63 69 6c 65 20 70 6f 73 74 69 6e .for.the.ledger.reconcile.postin
23b00 67 20 66 6f 72 6d 61 74 2e 20 20 41 76 61 69 6c 61 62 6c 65 0a 20 20 20 20 20 66 69 65 6c 64 73 g.format...Available......fields
23b20 20 61 72 65 20 64 61 74 65 2c 20 73 74 61 74 75 73 2c 20 63 6f 64 65 2c 20 70 61 79 65 65 2c 20 .are.date,.status,.code,.payee,.
23b40 61 63 63 6f 75 6e 74 2c 20 61 6d 6f 75 6e 74 2e 20 20 54 68 65 20 66 6f 72 6d 61 74 0a 20 20 20 account,.amount...The.format....
23b60 20 20 66 6f 72 20 65 61 63 68 20 66 69 65 6c 64 20 69 73 20 25 57 49 44 54 48 28 46 49 45 4c 44 ..for.each.field.is.%WIDTH(FIELD
23b80 29 2c 20 57 49 44 54 48 20 63 61 6e 20 62 65 20 70 72 65 63 65 64 65 64 20 62 79 20 61 20 6d 69 ),.WIDTH.can.be.preceded.by.a.mi
23ba0 6e 75 73 0a 20 20 20 20 20 73 69 67 6e 20 77 68 69 63 68 20 6d 65 61 6e 20 74 6f 20 6c 65 66 74 nus......sign.which.mean.to.left
23bc0 20 6a 75 73 74 69 66 79 20 61 6e 64 20 70 61 64 20 74 68 65 20 66 69 65 6c 64 2e 20 20 57 49 44 .justify.and.pad.the.field...WID
23be0 54 48 20 69 73 20 74 68 65 0a 20 20 20 20 20 6d 69 6e 69 6d 75 6d 20 6e 75 6d 62 65 72 20 6f 66 TH.is.the......minimum.number.of
23c00 20 63 68 61 72 61 63 74 65 72 73 20 74 6f 20 64 69 73 70 6c 61 79 3b 20 69 66 20 73 74 72 69 6e .characters.to.display;.if.strin
23c20 67 20 69 73 20 6c 6f 6e 67 65 72 2c 20 69 74 20 69 73 0a 20 20 20 20 20 6e 6f 74 20 74 72 75 6e g.is.longer,.it.is......not.trun
23c40 63 61 74 65 64 20 75 6e 6c 65 73 73 20 e2 80 98 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 cated.unless....ledger-reconcile
23c60 2d 62 75 66 66 65 72 2d 70 61 79 65 65 2d 6d 61 78 2d 63 68 61 72 73 e2 80 99 20 6f 72 0a 20 20 -buffer-payee-max-chars....or...
23c80 20 20 20 e2 80 98 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 62 75 66 66 65 72 2d 61 63 ......ledger-reconcile-buffer-ac
23ca0 63 6f 75 6e 74 2d 6d 61 78 2d 63 68 61 72 73 e2 80 99 20 69 73 20 64 65 66 69 6e 65 64 2e 20 20 count-max-chars....is.defined...
23cc0 44 65 66 61 75 6c 74 73 0a 20 20 20 20 20 74 6f 20 22 25 28 64 61 74 65 29 73 20 25 2d 34 28 63 Defaults......to."%(date)s.%-4(c
23ce0 6f 64 65 29 73 20 25 2d 35 30 28 70 61 79 65 65 29 73 20 25 2d 33 30 28 61 63 63 6f 75 6e 74 29 ode)s.%-50(payee)s.%-30(account)
23d00 73 20 25 31 35 28 61 6d 6f 75 6e 74 29 73 5c 6e 22 0a 0a e2 80 98 6c 65 64 67 65 72 2d 72 65 63 s.%15(amount)s\n".....ledger-rec
23d20 6f 6e 63 69 6c 65 2d 62 75 66 66 65 72 2d 70 61 79 65 65 2d 6d 61 78 2d 63 68 61 72 73 e2 80 99 oncile-buffer-payee-max-chars...
23d40 0a 20 20 20 20 20 49 66 20 70 6f 73 69 74 69 76 65 2c 20 74 72 75 6e 63 61 74 65 20 70 61 79 65 ......If.positive,.truncate.paye
23d60 65 20 6e 61 6d 65 20 72 69 67 68 74 20 73 69 64 65 20 74 6f 20 6d 61 78 20 6e 75 6d 62 65 72 20 e.name.right.side.to.max.number.
23d80 6f 66 0a 20 20 20 20 20 63 68 61 72 61 63 74 65 72 73 2e 0a 0a e2 80 98 6c 65 64 67 65 72 2d 72 of......characters......ledger-r
23da0 65 63 6f 6e 63 69 6c 65 2d 62 75 66 66 65 72 2d 61 63 63 6f 75 6e 74 2d 6d 61 78 2d 63 68 61 72 econcile-buffer-account-max-char
23dc0 73 e2 80 99 0a 20 20 20 20 20 49 66 20 70 6f 73 69 74 69 76 65 2c 20 74 72 75 6e 63 61 74 65 20 s.........If.positive,.truncate.
23de0 61 63 63 6f 75 6e 74 20 6e 61 6d 65 20 6c 65 66 74 20 73 69 64 65 20 74 6f 20 6d 61 78 20 6e 75 account.name.left.side.to.max.nu
23e00 6d 62 65 72 20 6f 66 0a 20 20 20 20 20 63 68 61 72 61 63 74 65 72 73 2e 0a 0a e2 80 98 6c 65 64 mber.of......characters......led
23e20 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 73 6f 72 74 2d 6b 65 79 e2 80 99 0a 20 20 20 20 20 4b ger-reconcile-sort-key.........K
23e40 65 79 20 66 6f 72 20 73 6f 72 74 69 6e 67 20 72 65 63 6f 6e 63 69 6c 65 20 62 75 66 66 65 72 2e ey.for.sorting.reconcile.buffer.
23e60 20 20 50 6f 73 73 69 62 6c 65 20 76 61 6c 75 65 73 20 61 72 65 20 e2 80 99 28 64 61 74 65 29 e2 ..Possible.values.are....(date).
23e80 80 99 2c 0a 20 20 20 20 20 e2 80 99 28 61 6d 6f 75 6e 74 29 e2 80 99 2c 20 e2 80 99 28 70 61 79 ..,.........(amount)...,....(pay
23ea0 65 65 29 e2 80 99 20 6f 72 20 e2 80 99 28 30 29 e2 80 99 20 66 6f 72 20 6e 6f 20 73 6f 72 74 69 ee)....or....(0)....for.no.sorti
23ec0 6e 67 2c 20 69 2e 65 2e 20 20 75 73 69 6e 67 20 6c 65 64 67 65 72 0a 20 20 20 20 20 66 69 6c 65 ng,.i.e...using.ledger......file
23ee0 20 6f 72 64 65 72 2e 20 20 44 65 66 61 75 6c 74 73 20 74 6f 20 e2 80 99 28 30 29 e2 80 99 2e 0a .order...Defaults.to....(0).....
23f00 0a e2 80 98 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 69 6e 73 65 72 74 2d 65 66 66 65 ....ledger-reconcile-insert-effe
23f20 63 74 69 76 65 2d 64 61 74 65 20 6e 69 6c e2 80 99 0a 20 20 20 20 20 49 66 20 74 2c 20 70 72 6f ctive-date.nil.........If.t,.pro
23f40 6d 70 74 20 66 6f 72 20 65 66 66 65 63 74 69 76 65 20 64 61 74 65 20 77 68 65 6e 20 63 6c 65 61 mpt.for.effective.date.when.clea
23f60 72 69 6e 67 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 64 75 72 69 6e 67 0a 20 20 20 20 20 72 65 ring.transactions.during......re
23f80 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 2e 0a 0a e2 80 98 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 conciliation......ledger-reconci
23fa0 6c 65 2d 66 69 6e 69 73 68 2d 66 6f 72 63 65 2d 71 75 69 74 20 6e 69 6c e2 80 99 0a 20 20 20 20 le-finish-force-quit.nil........
23fc0 20 49 66 20 74 2c 20 77 69 6c 6c 20 66 6f 72 63 65 20 63 6c 6f 73 69 6e 67 20 72 65 63 6f 6e 63 .If.t,.will.force.closing.reconc
23fe0 69 6c 65 20 77 69 6e 64 6f 77 20 61 66 74 65 72 20 e2 80 98 43 2d 63 20 43 2d 63 e2 80 99 2e 0a ile.window.after....C-c.C-c.....
24000 0a 1f 0a 46 69 6c 65 3a 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 ...File:.ledger-mode.info,..Node
24020 3a 20 4c 65 64 67 65 72 20 52 65 70 6f 72 74 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 :.Ledger.Report.Customization.Gr
24040 6f 75 70 2c 20 20 4e 65 78 74 3a 20 4c 65 64 67 65 72 20 46 61 63 65 73 20 43 75 73 74 6f 6d 69 oup,..Next:.Ledger.Faces.Customi
24060 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2c 20 20 50 72 65 76 3a 20 4c 65 64 67 65 72 20 52 65 63 6f zation.Group,..Prev:.Ledger.Reco
24080 6e 63 69 6c 65 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2c 20 20 55 70 3a 20 ncile.Customization.Group,..Up:.
240a0 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 56 61 72 69 61 62 6c 65 73 0a 0a 36 2e 32 2e 33 20 4c Customization.Variables..6.2.3.L
240c0 65 64 67 65 72 20 52 65 70 6f 72 74 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 edger.Report.Customization.Group
240e0 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .-------------------------------
24100 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a e2 80 98 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 e2 80 99 0a 20 --------.....ledger-reports.....
24120 20 20 20 20 44 65 66 69 6e 69 74 69 6f 6e 20 6f 66 20 72 65 70 6f 72 74 73 20 74 6f 20 72 75 6e ....Definition.of.reports.to.run
24140 2e 0a 0a e2 80 98 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 66 6f 72 6d 61 74 2d 73 70 65 63 69 ......ledger-report-format-speci
24160 66 69 65 72 73 e2 80 99 0a 20 20 20 20 20 41 6e 20 61 6c 69 73 74 20 6d 61 70 70 69 6e 67 20 6c fiers.........An.alist.mapping.l
24180 65 64 67 65 72 20 72 65 70 6f 72 74 20 66 6f 72 6d 61 74 20 73 70 65 63 69 66 69 65 72 73 20 74 edger.report.format.specifiers.t
241a0 6f 20 69 6d 70 6c 65 6d 65 6e 74 69 6e 67 0a 20 20 20 20 20 66 75 6e 63 74 69 6f 6e 73 2e 0a 0a o.implementing......functions...
241c0 e2 80 98 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 75 73 65 2d 6e 61 74 69 76 65 2d 68 69 67 68 ...ledger-report-use-native-high
241e0 6c 69 67 68 74 69 6e 67 e2 80 99 0a 20 20 20 20 20 57 68 65 74 68 65 72 20 72 65 70 6f 72 74 73 lighting.........Whether.reports
24200 20 73 68 6f 75 6c 64 20 62 65 20 64 69 73 70 6c 61 79 65 64 20 75 73 69 6e 67 20 74 68 65 20 73 .should.be.displayed.using.the.s
24220 61 6d 65 20 63 6f 6c 6f 72 73 20 61 73 20 77 68 65 6e 0a 20 20 20 20 20 63 61 6c 6c 69 6e 67 20 ame.colors.as.when......calling.
24240 6c 65 64 67 65 72 20 6f 6e 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 2e 0a 0a e2 80 98 ledger.on.the.command.line......
24260 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 61 75 74 6f 2d 77 69 64 74 68 e2 80 99 0a 20 20 20 20 ledger-report-auto-width........
24280 20 57 68 65 74 68 65 72 20 72 65 70 6f 72 74 73 20 73 68 6f 75 6c 64 20 66 69 6c 6c 20 74 68 65 .Whether.reports.should.fill.the
242a0 20 77 68 6f 6c 65 20 77 69 64 74 68 20 6f 66 20 74 68 65 20 e2 80 98 2a 52 65 70 6f 72 74 2a e2 .whole.width.of.the....*Report*.
242c0 80 99 0a 20 20 20 20 20 77 69 6e 64 6f 77 0a 0a 1f 0a 46 69 6c 65 3a 20 6c 65 64 67 65 72 2d 6d ........window....File:.ledger-m
242e0 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 4c 65 64 67 65 72 20 46 61 63 65 73 20 43 75 ode.info,..Node:.Ledger.Faces.Cu
24300 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2c 20 20 4e 65 78 74 3a 20 4c 65 64 67 65 72 stomization.Group,..Next:.Ledger
24320 20 50 6f 73 74 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2c 20 20 50 72 65 76 .Post.Customization.Group,..Prev
24340 3a 20 4c 65 64 67 65 72 20 52 65 70 6f 72 74 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 :.Ledger.Report.Customization.Gr
24360 6f 75 70 2c 20 20 55 70 3a 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 56 61 72 69 61 62 6c 65 oup,..Up:.Customization.Variable
24380 73 0a 0a 36 2e 32 2e 34 20 4c 65 64 67 65 72 20 46 61 63 65 73 20 43 75 73 74 6f 6d 69 7a 61 74 s..6.2.4.Ledger.Faces.Customizat
243a0 69 6f 6e 20 47 72 6f 75 70 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ion.Group.----------------------
243c0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 4c 65 64 67 65 72 20 46 61 63 65 73 3a 20 ----------------..Ledger.Faces:.
243e0 4c 65 64 67 65 72 2d 6d 6f 64 65 20 68 69 67 68 6c 69 67 68 74 69 6e 67 0a 0a e2 80 98 6c 65 64 Ledger-mode.highlighting.....led
24400 67 65 72 2d 66 6f 6e 74 2d 75 6e 63 6c 65 61 72 65 64 2d 66 61 63 65 e2 80 99 0a 20 20 20 20 20 ger-font-uncleared-face.........
24420 44 65 66 61 75 6c 74 20 66 61 63 65 20 66 6f 72 20 4c 65 64 67 65 72 2e 0a 0a e2 80 98 6c 65 64 Default.face.for.Ledger......led
24440 67 65 72 2d 66 6f 6e 74 2d 63 6c 65 61 72 65 64 2d 66 61 63 65 e2 80 99 0a 20 20 20 20 20 44 65 ger-font-cleared-face.........De
24460 66 61 75 6c 74 20 66 61 63 65 20 66 6f 72 20 63 6c 65 61 72 65 64 20 e2 80 98 2a e2 80 99 20 74 fault.face.for.cleared....*....t
24480 72 61 6e 73 61 63 74 69 6f 6e 73 2e 0a 0a e2 80 98 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 68 69 67 ransactions......ledger-font-hig
244a0 68 6c 69 67 68 74 2d 66 61 63 65 e2 80 99 0a 20 20 20 20 20 44 65 66 61 75 6c 74 20 66 61 63 65 hlight-face.........Default.face
244c0 20 66 6f 72 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 75 6e 64 65 72 20 70 6f 69 6e 74 2e 0a 0a e2 .for.transaction.under.point....
244e0 80 98 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 65 6e 64 69 6e 67 2d 66 61 63 65 e2 80 99 0a 20 20 ..ledger-font-pending-face......
24500 20 20 20 44 65 66 61 75 6c 74 20 66 61 63 65 20 66 6f 72 20 70 65 6e 64 69 6e 67 20 e2 80 98 21 ...Default.face.for.pending....!
24520 e2 80 99 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 2e 0a 0a e2 80 98 6c 65 64 67 65 72 2d 66 6f 6e ....transactions......ledger-fon
24540 74 2d 6f 74 68 65 72 2d 66 61 63 65 e2 80 99 0a 20 20 20 20 20 44 65 66 61 75 6c 74 20 66 61 63 t-other-face.........Default.fac
24560 65 20 66 6f 72 20 6f 74 68 65 72 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 2e 0a 0a e2 80 98 6c 65 e.for.other.transactions......le
24580 64 67 65 72 2d 66 6f 6e 74 2d 70 6f 73 74 69 6e 67 2d 61 63 63 6f 75 6e 74 2d 66 61 63 65 e2 80 dger-font-posting-account-face..
245a0 99 0a 20 20 20 20 20 46 61 63 65 20 66 6f 72 20 4c 65 64 67 65 72 20 61 63 63 6f 75 6e 74 73 2e .......Face.for.Ledger.accounts.
245c0 0a 0a e2 80 98 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 6f 73 74 69 6e 67 2d 61 63 63 6f 75 6e 74 .....ledger-font-posting-account
245e0 2d 63 6c 65 61 72 65 64 2d 66 61 63 65 e2 80 99 0a 20 20 20 20 20 46 61 63 65 20 66 6f 72 20 63 -cleared-face.........Face.for.c
24600 6c 65 61 72 65 64 20 4c 65 64 67 65 72 20 61 63 63 6f 75 6e 74 73 2e 0a 0a e2 80 98 6c 65 64 67 leared.Ledger.accounts......ledg
24620 65 72 2d 66 6f 6e 74 2d 70 6f 73 74 69 6e 67 2d 61 63 63 6f 75 6e 74 2d 70 65 6e 64 69 6e 67 2d er-font-posting-account-pending-
24640 66 61 63 65 e2 80 99 0a 20 20 20 20 20 46 61 63 65 20 66 6f 72 20 4c 65 64 67 65 72 20 70 65 6e face.........Face.for.Ledger.pen
24660 64 69 6e 67 20 61 63 63 6f 75 6e 74 73 2e 0a 0a e2 80 98 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 ding.accounts......ledger-font-p
24680 6f 73 74 69 6e 67 2d 61 6d 6f 75 6e 74 2d 66 61 63 65 e2 80 99 0a 20 20 20 20 20 46 61 63 65 20 osting-amount-face.........Face.
246a0 66 6f 72 20 4c 65 64 67 65 72 20 61 6d 6f 75 6e 74 73 2e 0a 0a e2 80 98 6c 65 64 67 65 72 2d 6f for.Ledger.amounts......ledger-o
246c0 63 63 75 72 2d 6e 61 72 72 6f 77 65 64 2d 66 61 63 65 e2 80 99 0a 20 20 20 20 20 44 65 66 61 75 ccur-narrowed-face.........Defau
246e0 6c 74 20 66 61 63 65 20 66 6f 72 20 4c 65 64 67 65 72 20 6f 63 63 75 72 20 6d 6f 64 65 20 68 69 lt.face.for.Ledger.occur.mode.hi
24700 64 64 65 6e 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 2e 0a 0a e2 80 98 6c 65 64 67 65 72 2d 6f 63 dden.transactions......ledger-oc
24720 63 75 72 2d 78 61 63 74 2d 66 61 63 65 e2 80 99 0a 20 20 20 20 20 44 65 66 61 75 6c 74 20 66 61 cur-xact-face.........Default.fa
24740 63 65 20 66 6f 72 20 4c 65 64 67 65 72 20 6f 63 63 75 72 20 6d 6f 64 65 20 73 68 6f 77 6e 20 74 ce.for.Ledger.occur.mode.shown.t
24760 72 61 6e 73 61 63 74 69 6f 6e 73 2e 0a 0a e2 80 98 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 63 6f 6d ransactions......ledger-font-com
24780 6d 65 6e 74 2d 66 61 63 65 e2 80 99 0a 20 20 20 20 20 46 61 63 65 20 66 6f 72 20 4c 65 64 67 65 ment-face.........Face.for.Ledge
247a0 72 20 63 6f 6d 6d 65 6e 74 73 2e 0a 0a e2 80 98 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 72 65 63 6f r.comments......ledger-font-reco
247c0 6e 63 69 6c 65 72 2d 75 6e 63 6c 65 61 72 65 64 2d 66 61 63 65 e2 80 99 0a 20 20 20 20 20 44 65 nciler-uncleared-face.........De
247e0 66 61 75 6c 74 20 66 61 63 65 20 66 6f 72 20 75 6e 63 6c 65 61 72 65 64 20 74 72 61 6e 73 61 63 fault.face.for.uncleared.transac
24800 74 69 6f 6e 73 20 69 6e 20 74 68 65 20 e2 80 98 2a 52 65 63 6f 6e 63 69 6c 65 2a e2 80 99 0a 20 tions.in.the....*Reconcile*.....
24820 20 20 20 20 62 75 66 66 65 72 2e 0a 0a e2 80 98 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 72 65 63 6f ....buffer......ledger-font-reco
24840 6e 63 69 6c 65 72 2d 63 6c 65 61 72 65 64 2d 66 61 63 65 e2 80 99 0a 20 20 20 20 20 44 65 66 61 nciler-cleared-face.........Defa
24860 75 6c 74 20 66 61 63 65 20 66 6f 72 20 63 6c 65 61 72 65 64 20 e2 80 98 2a e2 80 99 20 74 72 61 ult.face.for.cleared....*....tra
24880 6e 73 61 63 74 69 6f 6e 73 20 69 6e 20 74 68 65 20 e2 80 98 2a 52 65 63 6f 6e 63 69 6c 65 2a e2 nsactions.in.the....*Reconcile*.
248a0 80 99 0a 20 20 20 20 20 62 75 66 66 65 72 2e 0a 0a e2 80 98 6c 65 64 67 65 72 2d 66 6f 6e 74 2d ........buffer......ledger-font-
248c0 72 65 63 6f 6e 63 69 6c 65 72 2d 70 65 6e 64 69 6e 67 2d 66 61 63 65 e2 80 99 0a 20 20 20 20 20 reconciler-pending-face.........
248e0 44 65 66 61 75 6c 74 20 66 61 63 65 20 66 6f 72 20 70 65 6e 64 69 6e 67 20 e2 80 98 21 e2 80 99 Default.face.for.pending....!...
24900 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 69 6e 20 74 68 65 20 e2 80 98 2a 52 65 63 6f 6e 63 69 .transactions.in.the....*Reconci
24920 6c 65 2a e2 80 99 0a 20 20 20 20 20 62 75 66 66 65 72 2e 0a 0a e2 80 98 6c 65 64 67 65 72 2d 66 le*.........buffer......ledger-f
24940 6f 6e 74 2d 72 65 70 6f 72 74 2d 63 6c 69 63 6b 61 62 6c 65 2d 66 61 63 65 e2 80 99 0a 20 20 20 ont-report-clickable-face.......
24960 20 20 46 61 63 65 20 61 70 70 6c 69 65 64 20 74 6f 20 63 6c 69 63 6b 61 62 6c 65 20 65 6e 74 72 ..Face.applied.to.clickable.entr
24980 69 65 73 20 69 6e 20 74 68 65 20 e2 80 98 2a 52 65 70 6f 72 74 2a e2 80 99 20 62 75 66 66 65 72 ies.in.the....*Report*....buffer
249a0 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f .....File:.ledger-mode.info,..No
249c0 64 65 3a 20 4c 65 64 67 65 72 20 50 6f 73 74 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 de:.Ledger.Post.Customization.Gr
249e0 6f 75 70 2c 20 20 4e 65 78 74 3a 20 4c 65 64 67 65 72 20 45 78 65 63 20 43 75 73 74 6f 6d 69 7a oup,..Next:.Ledger.Exec.Customiz
24a00 61 74 69 6f 6e 20 47 72 6f 75 70 2c 20 20 50 72 65 76 3a 20 4c 65 64 67 65 72 20 46 61 63 65 73 ation.Group,..Prev:.Ledger.Faces
24a20 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2c 20 20 55 70 3a 20 43 75 73 74 6f .Customization.Group,..Up:.Custo
24a40 6d 69 7a 61 74 69 6f 6e 20 56 61 72 69 61 62 6c 65 73 0a 0a 36 2e 32 2e 35 20 4c 65 64 67 65 72 mization.Variables..6.2.5.Ledger
24a60 20 50 6f 73 74 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 0a 2d 2d 2d 2d 2d 2d .Post.Customization.Group.------
24a80 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a -------------------------------.
24aa0 0a 4c 65 64 67 65 72 20 50 6f 73 74 3a 0a 0a e2 80 98 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 63 .Ledger.Post:.....ledger-post-ac
24ac0 63 6f 75 6e 74 2d 61 6c 69 67 6e 6d 65 6e 74 2d 63 6f 6c 75 6d 6e e2 80 99 0a 20 20 20 20 20 54 count-alignment-column.........T
24ae0 68 65 20 63 6f 6c 75 6d 6e 20 4c 65 64 67 65 72 2d 6d 6f 64 65 20 61 74 74 65 6d 70 74 73 20 74 he.column.Ledger-mode.attempts.t
24b00 6f 20 61 6c 69 67 6e 20 61 63 63 6f 75 6e 74 73 20 74 6f 2e 0a 0a e2 80 98 6c 65 64 67 65 72 2d o.align.accounts.to......ledger-
24b20 70 6f 73 74 2d 61 6d 6f 75 6e 74 2d 61 6c 69 67 6e 6d 65 6e 74 2d 61 74 e2 80 99 0a 20 20 20 20 post-amount-alignment-at........
24b40 20 50 6f 73 69 74 69 6f 6e 20 61 74 20 77 68 69 63 68 20 74 68 65 20 61 6d 6f 75 6e 74 20 69 73 .Position.at.which.the.amount.is
24b60 20 61 6c 69 67 6e 65 64 2e 0a 0a 20 20 20 20 20 43 61 6e 20 62 65 20 e2 80 98 3a 65 6e 64 e2 80 .aligned........Can.be....:end..
24b80 99 20 74 6f 20 61 6c 69 67 6e 20 6f 6e 20 74 68 65 20 6c 61 73 74 20 6e 75 6d 62 65 72 20 6f 66 ..to.align.on.the.last.number.of
24ba0 20 74 68 65 20 61 6d 6f 75 6e 74 20 28 63 61 6e 20 62 65 0a 20 20 20 20 20 66 6f 6c 6c 6f 77 65 .the.amount.(can.be......followe
24bc0 64 20 62 79 20 75 6e 61 6c 69 67 6e 65 64 20 63 6f 6d 6d 6f 64 69 74 79 29 20 6f 72 20 e2 80 98 d.by.unaligned.commodity).or....
24be0 3a 64 65 63 69 6d 61 6c e2 80 99 20 74 6f 20 61 6c 69 67 6e 20 61 74 20 74 68 65 0a 20 20 20 20 :decimal....to.align.at.the.....
24c00 20 64 65 63 69 6d 61 6c 20 73 65 70 61 72 61 74 6f 72 2e 0a 0a e2 80 98 6c 65 64 67 65 72 2d 70 .decimal.separator......ledger-p
24c20 6f 73 74 2d 61 6d 6f 75 6e 74 2d 61 6c 69 67 6e 6d 65 6e 74 2d 63 6f 6c 75 6d 6e e2 80 99 0a 20 ost-amount-alignment-column.....
24c40 20 20 20 20 54 68 65 20 63 6f 6c 75 6d 6e 20 4c 65 64 67 65 72 2d 6d 6f 64 65 20 61 74 74 65 6d ....The.column.Ledger-mode.attem
24c60 70 74 73 20 74 6f 20 61 6c 69 67 6e 20 61 6d 6f 75 6e 74 73 20 74 6f 2e 0a 0a e2 80 98 6c 65 64 pts.to.align.amounts.to......led
24c80 67 65 72 2d 70 6f 73 74 2d 61 75 74 6f 2d 61 6c 69 67 6e e2 80 99 0a 20 20 20 20 20 57 68 65 6e ger-post-auto-align.........When
24ca0 20 6e 6f 6e 2d 6e 69 6c 2c 20 72 65 61 6c 69 67 6e 20 70 6f 73 74 20 61 6d 6f 75 6e 74 73 20 77 .non-nil,.realign.post.amounts.w
24cc0 68 65 6e 20 69 6e 64 65 6e 74 69 6e 67 20 6f 72 20 63 6f 6d 70 6c 65 74 69 6e 67 2e 0a 0a 1f 0a hen.indenting.or.completing.....
24ce0 46 69 6c 65 3a 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 4c File:.ledger-mode.info,..Node:.L
24d00 65 64 67 65 72 20 45 78 65 63 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2c 20 edger.Exec.Customization.Group,.
24d20 20 4e 65 78 74 3a 20 4c 65 64 67 65 72 20 54 65 73 74 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e .Next:.Ledger.Test.Customization
24d40 20 47 72 6f 75 70 2c 20 20 50 72 65 76 3a 20 4c 65 64 67 65 72 20 50 6f 73 74 20 43 75 73 74 6f .Group,..Prev:.Ledger.Post.Custo
24d60 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2c 20 20 55 70 3a 20 43 75 73 74 6f 6d 69 7a 61 74 69 mization.Group,..Up:.Customizati
24d80 6f 6e 20 56 61 72 69 61 62 6c 65 73 0a 0a 36 2e 32 2e 36 20 4c 65 64 67 65 72 20 45 78 65 63 20 on.Variables..6.2.6.Ledger.Exec.
24da0 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d Customization.Group.------------
24dc0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a 4c 65 64 67 65 -------------------------..Ledge
24de0 72 20 45 78 65 63 3a 20 49 6e 74 65 72 66 61 63 65 20 74 6f 20 74 68 65 20 4c 65 64 67 65 72 20 r.Exec:.Interface.to.the.Ledger.
24e00 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 61 63 63 6f 75 6e 74 69 6e 67 20 70 72 6f 67 72 61 6d 2e command-line.accounting.program.
24e20 0a 0a e2 80 98 6c 65 64 67 65 72 2d 62 69 6e 61 72 79 2d 70 61 74 68 e2 80 99 0a 20 20 20 20 20 .....ledger-binary-path.........
24e40 50 61 74 68 20 74 6f 20 74 68 65 20 6c 65 64 67 65 72 20 65 78 65 63 75 74 61 62 6c 65 2e 0a 0a Path.to.the.ledger.executable...
24e60 e2 80 98 6c 65 64 67 65 72 2d 69 6e 69 74 2d 66 69 6c 65 2d 6e 61 6d 65 e2 80 99 0a 20 20 20 20 ...ledger-init-file-name........
24e80 20 4c 6f 63 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 6c 65 64 67 65 72 20 69 6e 69 74 69 61 6c 69 .Location.of.the.ledger.initiali
24ea0 7a 61 74 69 6f 6e 20 66 69 6c 65 2e 20 20 6e 69 6c 20 69 66 20 79 6f 75 20 64 6f 6e e2 80 99 74 zation.file...nil.if.you.don...t
24ec0 20 68 61 76 65 0a 20 20 20 20 20 6f 6e 65 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 6c 65 64 67 65 72 2d .have......one.....File:.ledger-
24ee0 6d 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 4c 65 64 67 65 72 20 54 65 73 74 20 43 75 mode.info,..Node:.Ledger.Test.Cu
24f00 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2c 20 20 4e 65 78 74 3a 20 4c 65 64 67 65 72 stomization.Group,..Next:.Ledger
24f20 20 54 65 78 69 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2c 20 20 50 72 65 76 .Texi.Customization.Group,..Prev
24f40 3a 20 4c 65 64 67 65 72 20 45 78 65 63 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 :.Ledger.Exec.Customization.Grou
24f60 70 2c 20 20 55 70 3a 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 56 61 72 69 61 62 6c 65 73 0a p,..Up:.Customization.Variables.
24f80 0a 36 2e 32 2e 37 20 4c 65 64 67 65 72 20 54 65 73 74 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e .6.2.7.Ledger.Test.Customization
24fa0 20 47 72 6f 75 70 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d .Group.-------------------------
24fc0 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a e2 80 98 6c 65 64 67 65 72 2d 73 6f 75 72 63 65 2d 64 ------------.....ledger-source-d
24fe0 69 72 65 63 74 6f 72 79 e2 80 99 0a 20 20 20 20 20 44 69 72 65 63 74 6f 72 79 20 77 68 65 72 65 irectory.........Directory.where
25000 20 74 68 65 20 4c 65 64 67 65 72 20 73 6f 75 72 63 65 73 20 61 72 65 20 6c 6f 63 61 74 65 64 2e .the.Ledger.sources.are.located.
25020 0a 0a e2 80 98 6c 65 64 67 65 72 2d 74 65 73 74 2d 62 69 6e 61 72 79 e2 80 99 0a 20 20 20 20 20 .....ledger-test-binary.........
25040 44 69 72 65 63 74 6f 72 79 20 77 68 65 72 65 20 74 68 65 20 64 65 62 75 67 20 62 69 6e 61 72 79 Directory.where.the.debug.binary
25060 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f .....File:.ledger-mode.info,..No
25080 64 65 3a 20 4c 65 64 67 65 72 20 54 65 78 69 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 de:.Ledger.Texi.Customization.Gr
250a0 6f 75 70 2c 20 20 50 72 65 76 3a 20 4c 65 64 67 65 72 20 54 65 73 74 20 43 75 73 74 6f 6d 69 7a oup,..Prev:.Ledger.Test.Customiz
250c0 61 74 69 6f 6e 20 47 72 6f 75 70 2c 20 20 55 70 3a 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 ation.Group,..Up:.Customization.
250e0 56 61 72 69 61 62 6c 65 73 0a 0a 36 2e 32 2e 38 20 4c 65 64 67 65 72 20 54 65 78 69 20 43 75 73 Variables..6.2.8.Ledger.Texi.Cus
25100 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 0a 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d tomization.Group.---------------
25120 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0a 0a e2 80 98 6c 65 64 67 65 ----------------------.....ledge
25140 72 2d 74 65 78 69 2d 73 61 6d 70 6c 65 2d 64 6f 63 2d 70 61 74 68 e2 80 99 0a 20 20 20 20 20 4c r-texi-sample-doc-path.........L
25160 6f 63 61 74 69 6f 6e 20 66 6f 72 20 73 61 6d 70 6c 65 20 64 61 74 61 20 74 6f 20 62 65 20 75 73 ocation.for.sample.data.to.be.us
25180 65 64 20 69 6e 20 74 65 78 69 20 74 65 73 74 73 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 0a 20 20 ed.in.texi.tests,.defaults.to...
251a0 20 20 20 e2 80 98 7e 2f 6c 65 64 67 65 72 2f 64 6f 63 2f 73 61 6d 70 6c 65 2e 64 61 74 e2 80 99 ......~/ledger/doc/sample.dat...
251c0 2e 0a 0a e2 80 98 6c 65 64 67 65 72 2d 74 65 78 69 2d 6e 6f 72 6d 61 6c 69 7a 61 74 69 6f 6e 2d ......ledger-texi-normalization-
251e0 61 72 67 73 e2 80 99 0a 20 20 20 20 20 74 65 78 69 20 6e 6f 72 6d 61 6c 69 7a 61 74 69 6f 6e 20 args.........texi.normalization.
25200 66 6f 72 20 70 72 6f 64 75 63 69 6e 67 20 6c 65 64 67 65 72 20 6f 75 74 70 75 74 2c 20 64 65 66 for.producing.ledger.output,.def
25220 61 75 6c 74 73 20 74 6f 0a 20 20 20 20 20 e2 80 98 2d 2d 61 72 67 73 2d 6f 6e 6c 79 20 2d 2d 63 aults.to.........--args-only.--c
25240 6f 6c 75 6d 6e 73 20 38 30 e2 80 99 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 6c 65 64 67 65 72 2d 6d 6f olumns.80........File:.ledger-mo
25260 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 47 65 6e 65 72 61 74 69 6e 67 20 4c 65 64 67 65 de.info,..Node:.Generating.Ledge
25280 72 20 52 65 67 72 65 73 73 69 6f 6e 20 54 65 73 74 73 2c 20 20 4e 65 78 74 3a 20 45 6d 62 65 64 r.Regression.Tests,..Next:.Embed
252a0 64 69 6e 67 20 45 78 61 6d 70 6c 65 20 72 65 73 75 6c 74 73 20 69 6e 20 4c 65 64 67 65 72 20 44 ding.Example.results.in.Ledger.D
252c0 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2c 20 20 50 72 65 76 3a 20 43 75 73 74 6f 6d 69 7a 69 6e 67 ocumentation,..Prev:.Customizing
252e0 20 4c 65 64 67 65 72 2d 6d 6f 64 65 2c 20 20 55 70 3a 20 54 6f 70 0a 0a 37 20 47 65 6e 65 72 61 .Ledger-mode,..Up:.Top..7.Genera
25300 74 69 6e 67 20 4c 65 64 67 65 72 20 52 65 67 72 65 73 73 69 6f 6e 20 54 65 73 74 73 0a 2a 2a 2a ting.Ledger.Regression.Tests.***
25320 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ********************************
25340 2a 0a 0a 57 6f 72 6b 20 69 6e 20 50 72 6f 67 72 65 73 73 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 6c 65 *..Work.in.Progress.....File:.le
25360 64 67 65 72 2d 6d 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 45 6d 62 65 64 64 69 6e 67 dger-mode.info,..Node:.Embedding
25380 20 45 78 61 6d 70 6c 65 20 72 65 73 75 6c 74 73 20 69 6e 20 4c 65 64 67 65 72 20 44 6f 63 75 6d .Example.results.in.Ledger.Docum
253a0 65 6e 74 61 74 69 6f 6e 2c 20 20 4e 65 78 74 3a 20 48 61 63 6b 69 6e 67 20 4c 65 64 67 65 72 2d entation,..Next:.Hacking.Ledger-
253c0 6d 6f 64 65 2c 20 20 50 72 65 76 3a 20 47 65 6e 65 72 61 74 69 6e 67 20 4c 65 64 67 65 72 20 52 mode,..Prev:.Generating.Ledger.R
253e0 65 67 72 65 73 73 69 6f 6e 20 54 65 73 74 73 2c 20 20 55 70 3a 20 54 6f 70 0a 0a 38 20 45 6d 62 egression.Tests,..Up:.Top..8.Emb
25400 65 64 64 69 6e 67 20 45 78 61 6d 70 6c 65 20 72 65 73 75 6c 74 73 20 69 6e 20 4c 65 64 67 65 72 edding.Example.results.in.Ledger
25420 20 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a .Documentation.*****************
25440 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a ********************************
25460 2a 2a 0a 0a 57 6f 72 6b 20 69 6e 20 50 72 6f 67 72 65 73 73 2e 0a 0a 1f 0a 46 69 6c 65 3a 20 6c **..Work.in.Progress.....File:.l
25480 65 64 67 65 72 2d 6d 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 48 61 63 6b 69 6e 67 20 edger-mode.info,..Node:.Hacking.
254a0 4c 65 64 67 65 72 2d 6d 6f 64 65 2c 20 20 4e 65 78 74 3a 20 43 6f 6e 63 65 70 74 20 49 6e 64 65 Ledger-mode,..Next:.Concept.Inde
254c0 78 2c 20 20 50 72 65 76 3a 20 45 6d 62 65 64 64 69 6e 67 20 45 78 61 6d 70 6c 65 20 72 65 73 75 x,..Prev:.Embedding.Example.resu
254e0 6c 74 73 20 69 6e 20 4c 65 64 67 65 72 20 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 2c 20 20 55 70 lts.in.Ledger.Documentation,..Up
25500 3a 20 54 6f 70 0a 0a 39 20 48 61 63 6b 69 6e 67 20 4c 65 64 67 65 72 2d 6d 6f 64 65 0a 2a 2a 2a :.Top..9.Hacking.Ledger-mode.***
25520 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 0a 0a 2a 20 4d 65 6e 75 3a 0a 0a 2a 20 55 ******************..*.Menu:..*.U
25540 73 65 20 6f 72 67 2d 6c 69 6b 65 20 6f 75 74 6c 69 6e 65 73 3a 3a 0a 0a 1f 0a 46 69 6c 65 3a 20 se.org-like.outlines::....File:.
25560 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 55 73 65 20 6f 72 67 ledger-mode.info,..Node:.Use.org
25580 2d 6c 69 6b 65 20 6f 75 74 6c 69 6e 65 73 2c 20 20 50 72 65 76 3a 20 48 61 63 6b 69 6e 67 20 4c -like.outlines,..Prev:.Hacking.L
255a0 65 64 67 65 72 2d 6d 6f 64 65 2c 20 20 55 70 3a 20 48 61 63 6b 69 6e 67 20 4c 65 64 67 65 72 2d edger-mode,..Up:.Hacking.Ledger-
255c0 6d 6f 64 65 0a 0a 39 2e 31 20 55 73 65 20 6f 72 67 2d 6c 69 6b 65 20 6f 75 74 6c 69 6e 65 73 0a mode..9.1.Use.org-like.outlines.
255e0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 0a 0a 53 6f 6d 65 20 =========================..Some.
25600 75 73 65 72 73 20 6c 69 6b 65 20 74 6f 20 68 61 76 65 20 6f 72 67 2d 6c 69 6b 65 20 6f 75 74 6c users.like.to.have.org-like.outl
25620 69 6e 65 73 20 66 6f 72 20 74 68 65 69 72 20 6c 65 64 67 65 72 20 66 69 6c 65 73 2e 20 20 41 0a ines.for.their.ledger.files...A.
25640 73 75 67 67 65 73 74 65 64 20 63 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 69 73 20 74 6f 20 69 6e suggested.customization.is.to.in
25660 63 6c 75 64 65 20 73 6f 6d 65 74 68 69 6e 67 20 6c 69 6b 65 20 74 68 65 20 66 6f 6c 6c 6f 77 69 clude.something.like.the.followi
25680 6e 67 20 69 6e 0a 79 6f 75 72 20 45 6d 61 63 73 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 3a 0a ng.in.your.Emacs.configuration:.
256a0 0a 20 20 20 20 20 28 65 76 61 6c 2d 61 66 74 65 72 2d 6c 6f 61 64 20 27 6c 65 64 67 65 72 2d 6d ......(eval-after-load.'ledger-m
256c0 6f 64 65 0a 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 3b 3b 20 6f 72 ode........(progn..........;;.or
256e0 67 2d 63 79 63 6c 65 20 61 6c 6c 6f 77 73 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 74 6f 20 77 6f 72 g-cycle.allows.completion.to.wor
25700 6b 20 77 68 65 72 65 61 73 20 6f 75 74 6c 69 6e 65 2d 74 6f 67 67 6c 65 2d 63 68 69 6c 64 72 65 k.whereas.outline-toggle-childre
25720 6e 20 64 6f 65 73 20 6e 6f 74 0a 20 20 20 20 20 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 n.does.not..........(define-key.
25740 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 6d 61 70 20 28 6b 62 64 20 22 54 41 42 22 29 20 23 27 6f 72 ledger-mode-map.(kbd."TAB").#'or
25760 67 2d 63 79 63 6c 65 29 0a 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 6c 65 64 g-cycle)..........(add-hook.'led
25780 67 65 72 2d 6d 6f 64 65 2d 68 6f 6f 6b 20 23 27 6f 75 74 6c 69 6e 65 2d 6d 69 6e 6f 72 2d 6d 6f ger-mode-hook.#'outline-minor-mo
257a0 64 65 29 0a 20 20 20 20 20 20 20 20 20 28 66 6f 6e 74 2d 6c 6f 63 6b 2d 61 64 64 2d 6b 65 79 77 de)..........(font-lock-add-keyw
257c0 6f 72 64 73 20 27 6c 65 64 67 65 72 2d 6d 6f 64 65 20 6f 75 74 6c 69 6e 65 2d 66 6f 6e 74 2d 6c ords.'ledger-mode.outline-font-l
257e0 6f 63 6b 2d 6b 65 79 77 6f 72 64 73 29 29 29 0a 0a 1f 0a 46 69 6c 65 3a 20 6c 65 64 67 65 72 2d ock-keywords)))....File:.ledger-
25800 6d 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 43 6f 6e 63 65 70 74 20 49 6e 64 65 78 2c mode.info,..Node:.Concept.Index,
25820 20 20 4e 65 78 74 3a 20 43 6f 6d 6d 61 6e 64 20 26 20 56 61 72 69 61 62 6c 65 20 49 6e 64 65 78 ..Next:.Command.&.Variable.Index
25840 2c 20 20 50 72 65 76 3a 20 48 61 63 6b 69 6e 67 20 4c 65 64 67 65 72 2d 6d 6f 64 65 2c 20 20 55 ,..Prev:.Hacking.Ledger-mode,..U
25860 70 3a 20 54 6f 70 0a 0a 43 6f 6e 63 65 70 74 20 49 6e 64 65 78 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a p:.Top..Concept.Index.**********
25880 2a 2a 2a 0a 0a 00 08 5b 69 6e 64 65 78 00 08 5d 0a 2a 20 4d 65 6e 75 3a 0a 0a 2a 20 62 61 6c 61 ***....[index..].*.Menu:..*.bala
258a0 6e 63 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nce:............................
258c0 20 20 20 51 75 69 63 6b 20 42 61 6c 61 6e 63 65 20 44 69 73 70 6c 61 79 2e 0a 20 20 20 20 20 20 ...Quick.Balance.Display........
258e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
25900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 .........................(line..
25920 36 29 0a 2a 20 43 61 6c 63 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6).*.Calc:......................
25940 20 20 20 20 20 20 20 20 20 20 20 20 45 64 69 74 69 6e 67 20 41 6d 6f 75 6e 74 73 2e 20 20 20 20 ............Editing.Amounts.....
25960 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 63 6c 65 61 72 65 64 3a 20 20 20 20 20 20 20 20 20 20 ..(line..6).*.cleared:..........
25980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4d 61 72 6b 69 6e 67 20 54 72 61 .....................Marking.Tra
259a0 6e 73 61 63 74 69 6f 6e 73 2e 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 63 75 73 74 6f 6d 69 7a 61 nsactions..(line..6).*.customiza
259c0 74 69 6f 6e 2c 20 65 78 65 63 75 74 61 62 6c 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 65 tion,.executable:.............Le
259e0 64 67 65 72 20 45 78 65 63 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2e 0a 20 dger.Exec.Customization.Group...
25a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
25a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c ..............................(l
25a40 69 6e 65 20 20 36 29 0a 2a 20 63 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 2c 20 66 61 63 65 73 3a 20 ine..6).*.customization,.faces:.
25a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 65 64 67 65 72 20 46 61 63 65 73 20 43 75 .................Ledger.Faces.Cu
25a80 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 stomization.Group...............
25aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
25ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 63 75 ..................(line..6).*.cu
25ae0 73 74 6f 6d 69 7a 61 74 69 6f 6e 2c 20 6c 65 64 67 65 72 2d 6d 6f 64 65 3a 20 20 20 20 20 20 20 stomization,.ledger-mode:.......
25b00 20 20 20 20 20 4c 65 64 67 65 72 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2e .....Ledger.Customization.Group.
25b20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
25b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
25b60 28 6c 69 6e 65 20 20 36 29 0a 2a 20 63 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 2c 20 70 6f 73 74 3a (line..6).*.customization,.post:
25b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 65 64 67 65 72 20 50 6f 73 74 20 43 ...................Ledger.Post.C
25ba0 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 ustomization.Group..............
25bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
25be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 63 ...................(line..6).*.c
25c00 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 2c 20 72 65 63 6f 6e 63 69 6c 65 3a 20 20 20 20 20 20 20 20 ustomization,.reconcile:........
25c20 20 20 20 20 20 20 4c 65 64 67 65 72 20 52 65 63 6f 6e 63 69 6c 65 20 43 75 73 74 6f 6d 69 7a 61 ......Ledger.Reconcile.Customiza
25c40 74 69 6f 6e 20 47 72 6f 75 70 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tion.Group......................
25c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
25c80 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 63 75 73 74 6f 6d 69 7a 61 ...........(line..6).*.customiza
25ca0 74 69 6f 6e 2c 20 72 65 70 6f 72 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 65 tion,.report:.................Le
25cc0 64 67 65 72 20 52 65 70 6f 72 74 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2e dger.Report.Customization.Group.
25ce0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
25d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
25d20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 63 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 2c 20 74 65 73 74 3a (line..6).*.customization,.test:
25d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 65 64 67 65 72 20 54 65 73 74 20 43 ...................Ledger.Test.C
25d60 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 ustomization.Group..............
25d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
25da0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 63 ...................(line..6).*.c
25dc0 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 2c 20 74 65 78 69 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 ustomization,.texi:.............
25de0 20 20 20 20 20 20 4c 65 64 67 65 72 20 54 65 78 69 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 ......Ledger.Texi.Customization.
25e00 47 72 6f 75 70 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 Group...........................
25e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
25e40 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 64 65 6d 6f 3a 20 20 20 20 20 20 20 20 20 ......(line..6).*.demo:.........
25e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 51 75 69 63 6b 20 44 .........................Quick.D
25e80 65 6d 6f 2e 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 65 66 66 65 63 emo............(line..6).*.effec
25ea0 74 69 76 65 20 64 61 74 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tive.date:......................
25ec0 20 20 53 65 74 74 69 6e 67 20 61 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 20 45 66 66 65 63 74 69 ..Setting.a.Transactions.Effecti
25ee0 76 65 20 44 61 74 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ve.Date.........................
25f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
25f20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 66 6f 6c 64 69 6e 67 3a 20 20 20 20 ........(line..6).*.folding:....
25f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 55 73 65 20 6f ...........................Use.o
25f60 72 67 2d 6c 69 6b 65 20 6f 75 74 6c 69 6e 65 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rg-like.outlines................
25f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
25fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 30 29 0a 2a 20 47 4e 55 .................(line.10).*.GNU
25fc0 20 45 6d 61 63 73 20 43 61 6c 63 75 6c 61 74 6f 72 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .Emacs.Calculator:..............
25fe0 20 20 20 20 45 64 69 74 69 6e 67 20 41 6d 6f 75 6e 74 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 ....Editing.Amounts.......(line.
26000 20 36 29 0a 2a 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 .6).*.installation:.............
26020 20 20 20 20 20 20 20 20 20 20 20 20 20 51 75 69 63 6b 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 2e .............Quick.Installation.
26040 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 6d 65 6e 75 3a 20 20 20 20 20 20 20 20 20 20 20 20 ...(line..6).*.menu:............
26060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4d 65 6e 75 73 2e 20 20 20 20 ......................Menus.....
26080 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 6f 72 67 3a 20 20 20 20 ............(line..6).*.org:....
260a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 55 ...............................U
260c0 73 65 20 6f 72 67 2d 6c 69 6b 65 20 6f 75 74 6c 69 6e 65 73 2e 0a 20 20 20 20 20 20 20 20 20 20 se.org-like.outlines............
260e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
26100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 30 29 0a 2a .....................(line.10).*
26120 20 6f 75 74 6c 69 6e 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .outline:.......................
26140 20 20 20 20 20 20 20 20 55 73 65 20 6f 72 67 2d 6c 69 6b 65 20 6f 75 74 6c 69 6e 65 73 2e 0a 20 ........Use.org-like.outlines...
26160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
26180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c ..............................(l
261a0 69 6e 65 20 31 30 29 0a 2a 20 70 65 6e 64 69 6e 67 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ine.10).*.pending:..............
261c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4d 61 72 6b 69 6e 67 20 54 72 61 6e 73 61 63 .................Marking.Transac
261e0 74 69 6f 6e 73 2e 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 72 65 63 6f 6e 63 69 6c 69 61 74 69 6f tions..(line..6).*.reconciliatio
26200 6e 2c 20 61 63 63 6f 75 6e 74 20 63 68 61 6e 67 69 6e 67 3a 20 20 20 20 20 20 43 68 61 6e 67 69 n,.account.changing:......Changi
26220 6e 67 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 20 41 63 63 6f 75 6e 74 2e 0a 20 20 20 20 20 ng.Reconciliation.Account.......
26240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
26260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 ..........................(line.
26280 20 36 29 0a 2a 20 72 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 2c 20 62 61 73 69 63 73 3a 20 20 20 .6).*.reconciliation,.basics:...
262a0 20 20 20 20 20 20 20 20 20 20 20 20 20 42 61 73 69 63 73 20 6f 66 20 52 65 63 6f 6e 63 69 6c 69 .............Basics.of.Reconcili
262c0 61 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ation...........................
262e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
26300 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 72 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e ......(line..6).*.reconciliation
26320 2c 20 66 69 6e 61 6c 69 7a 69 6e 67 3a 20 20 20 20 20 20 20 20 20 20 20 20 46 69 6e 61 6c 69 7a ,.finalizing:............Finaliz
26340 65 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.Reconciliation................
26360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
26380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 72 65 63 .................(line..6).*.rec
263a0 6f 6e 63 69 6c 69 61 74 69 6f 6e 2c 20 73 74 61 72 74 69 6e 67 3a 20 20 20 20 20 20 20 20 20 20 onciliation,.starting:..........
263c0 20 20 20 20 53 74 61 72 74 69 6e 67 20 61 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 2e 0a 20 ....Starting.a.Reconciliation...
263e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
26400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c ..............................(l
26420 69 6e 65 20 20 36 29 0a 2a 20 72 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 2c 20 74 61 72 67 65 74 ine..6).*.reconciliation,.target
26440 20 63 68 61 6e 67 69 6e 67 3a 20 20 20 20 20 20 20 43 68 61 6e 67 69 6e 67 20 52 65 63 6f 6e 63 .changing:.......Changing.Reconc
26460 69 6c 69 61 74 69 6f 6e 20 54 61 72 67 65 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 iliation.Target.................
26480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
264a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 72 65 63 6f ................(line..6).*.reco
264c0 6e 63 69 6c 69 61 74 69 6f 6e 2c 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 61 64 64 69 6e 67 20 61 nciliation,.transaction.adding.a
264e0 6e 64 20 64 65 6c 65 74 69 6e 67 3a 20 41 64 64 69 6e 67 20 61 6e 64 20 44 65 6c 65 74 69 6e 67 nd.deleting:.Adding.and.Deleting
26500 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 20 64 75 72 69 6e 67 20 52 65 63 6f 6e 63 69 6c 69 61 74 .Transactions.during.Reconciliat
26520 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ion.............................
26540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
26560 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 72 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 2c 20 ....(line..6).*.reconciliation,.
26580 74 72 61 6e 73 61 63 74 69 6f 6e 20 65 64 69 74 69 6e 67 3a 20 20 20 45 64 69 74 20 54 72 61 6e transaction.editing:...Edit.Tran
265a0 73 61 63 74 69 6f 6e 73 20 44 75 72 69 6e 67 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 2e 0a sactions.During.Reconciliation..
265c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
265e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ...............................(
26600 6c 69 6e 65 20 20 36 29 0a 2a 20 72 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 2c 20 74 72 61 6e 73 line..6).*.reconciliation,.trans
26620 61 63 74 69 6f 6e 20 6d 61 72 6b 69 6e 67 3a 20 20 20 4d 61 72 6b 20 54 72 61 6e 73 61 63 74 69 action.marking:...Mark.Transacti
26640 6f 6e 73 20 50 65 6e 64 69 6e 67 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ons.Pending.....................
26660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
26680 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 72 65 70 6f 72 74 2c 20 ............(line..6).*.report,.
266a0 61 64 64 69 6e 67 20 61 6e 64 20 65 64 69 74 69 6e 67 3a 20 20 20 20 20 20 20 20 20 20 20 20 41 adding.and.editing:............A
266c0 64 64 69 6e 67 20 61 6e 64 20 45 64 69 74 69 6e 67 20 52 65 70 6f 72 74 73 2e 0a 20 20 20 20 20 dding.and.Editing.Reports.......
266e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
26700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 ..........................(line.
26720 20 36 29 0a 2a 20 72 65 70 6f 72 74 2c 20 63 75 73 74 6f 6d 20 63 6f 6d 6d 61 6e 64 3a 20 20 20 .6).*.report,.custom.command:...
26740 20 20 20 20 20 20 20 20 20 20 20 20 20 4d 61 6b 65 20 52 65 70 6f 72 74 20 54 72 61 6e 73 61 63 .............Make.Report.Transac
26760 74 69 6f 6e 73 20 41 63 74 69 76 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tions.Active....................
26780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
267a0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 72 65 70 6f 72 74 2c .............(line..6).*.report,
267c0 20 63 75 73 74 6f 6d 20 76 61 72 69 61 62 6c 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .custom.variable:...............
267e0 45 78 70 61 6e 73 69 6f 6e 20 46 6f 72 6d 61 74 73 2e 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a Expansion.Formats.....(line..6).
26800 2a 20 72 65 70 6f 72 74 2c 20 6f 72 64 65 72 20 72 65 76 65 72 73 69 6e 67 3a 20 20 20 20 20 20 *.report,.order.reversing:......
26820 20 20 20 20 20 20 20 20 20 52 65 76 65 72 73 69 6e 67 20 52 65 70 6f 72 74 20 4f 72 64 65 72 2e .........Reversing.Report.Order.
26840 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
26860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
26880 28 6c 69 6e 65 20 20 36 29 0a 2a 20 72 65 70 6f 72 74 2c 20 72 75 6e 6e 69 6e 67 3a 20 20 20 20 (line..6).*.report,.running:....
268a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 75 6e 6e 69 6e 67 20 42 61 73 69 63 ...................Running.Basic
268c0 20 52 65 70 6f 72 74 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .Reports........................
268e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
26900 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 74 72 61 6e 73 61 63 74 69 6f 6e .........(line..6).*.transaction
26920 2c 20 61 64 64 69 6e 67 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 64 64 69 ,.adding:...................Addi
26940 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 2e 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 74 72 ng.Transactions...(line..6).*.tr
26960 61 6e 73 61 63 74 69 6f 6e 2c 20 63 6f 70 79 69 6e 67 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 ansaction,.copying:.............
26980 20 20 20 20 20 43 6f 70 79 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 2e 20 28 6c 69 6e 65 .....Copying.Transactions..(line
269a0 20 20 36 29 0a 2a 20 74 72 61 6e 73 61 63 74 69 6f 6e 2c 20 64 65 6c 65 74 69 6e 67 3a 20 20 20 ..6).*.transaction,.deleting:...
269c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 65 6c 65 74 69 6e 67 20 54 72 61 6e 73 61 63 74 69 ..............Deleting.Transacti
269e0 6f 6e 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ons.............................
26a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
26a20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 74 72 61 6e 73 61 63 74 69 6f 6e 2c 20 64 69 73 ....(line..6).*.transaction,.dis
26a40 70 6c 61 79 20 66 69 6c 74 65 72 69 6e 67 3a 20 20 20 20 20 20 20 20 4e 61 72 72 6f 77 69 6e 67 play.filtering:........Narrowing
26a60 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .Transactions...................
26a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
26aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 74 72 61 6e 73 61 ..............(line..6).*.transa
26ac0 63 74 69 6f 6e 2c 20 65 64 69 74 69 6e 67 20 61 6d 6f 75 6e 74 73 3a 20 20 20 20 20 20 20 20 20 ction,.editing.amounts:.........
26ae0 20 45 64 69 74 69 6e 67 20 41 6d 6f 75 6e 74 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 .Editing.Amounts.......(line..6)
26b00 0a 2a 20 74 72 61 6e 73 61 63 74 69 6f 6e 2c 20 66 6f 72 6d 61 74 74 69 6e 67 3a 20 20 20 20 20 .*.transaction,.formatting:.....
26b20 20 20 20 20 20 20 20 20 20 20 46 6f 72 6d 61 74 74 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e ..........Formatting.Transaction
26b40 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 s...............................
26b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
26b80 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 74 72 61 6e 73 61 63 74 69 6f 6e 2c 20 6d 61 72 6b 69 ..(line..6).*.transaction,.marki
26ba0 6e 67 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4d 61 72 6b 69 6e 67 20 54 72 61 ng:..................Marking.Tra
26bc0 6e 73 61 63 74 69 6f 6e 73 2e 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 74 72 61 6e 73 61 63 74 69 nsactions..(line..6).*.transacti
26be0 6f 6e 2c 20 6e 61 72 72 6f 77 69 6e 67 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4e 61 on,.narrowing:................Na
26c00 72 72 6f 77 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 20 20 20 20 rrowing.Transactions............
26c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
26c40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a .....................(line..6).*
26c60 20 74 72 61 6e 73 61 63 74 69 6f 6e 2c 20 6e 61 76 69 67 61 74 69 6f 6e 3a 20 20 20 20 20 20 20 .transaction,.navigation:.......
26c80 20 20 20 20 20 20 20 20 4e 61 76 69 67 61 74 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 2e ........Navigating.Transactions.
26ca0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
26cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
26ce0 28 6c 69 6e 65 20 20 36 29 0a 2a 20 74 72 61 6e 73 61 63 74 69 6f 6e 2c 20 73 6f 72 74 69 6e 67 (line..6).*.transaction,.sorting
26d00 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 6f 72 74 69 6e 67 20 54 72 61 6e 73 :..................Sorting.Trans
26d20 61 63 74 69 6f 6e 73 2e 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 75 6e 63 6c 65 61 72 65 64 3a 20 actions..(line..6).*.uncleared:.
26d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4d 61 72 6b ............................Mark
26d60 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 2e 20 28 6c 69 6e 65 20 20 36 29 0a 0a 1f 0a 46 ing.Transactions..(line..6)....F
26d80 69 6c 65 3a 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 69 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 43 6f ile:.ledger-mode.info,..Node:.Co
26da0 6d 6d 61 6e 64 20 26 20 56 61 72 69 61 62 6c 65 20 49 6e 64 65 78 2c 20 20 4e 65 78 74 3a 20 4b mmand.&.Variable.Index,..Next:.K
26dc0 65 79 73 74 72 6f 6b 65 20 49 6e 64 65 78 2c 20 20 50 72 65 76 3a 20 43 6f 6e 63 65 70 74 20 49 eystroke.Index,..Prev:.Concept.I
26de0 6e 64 65 78 2c 20 20 55 70 3a 20 54 6f 70 0a 0a 43 6f 6d 6d 61 6e 64 20 26 20 56 61 72 69 61 62 ndex,..Up:.Top..Command.&.Variab
26e00 6c 65 20 49 6e 64 65 78 0a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a le.Index.***********************
26e20 2a 0a 0a 00 08 5b 69 6e 64 65 78 00 08 5d 0a 2a 20 4d 65 6e 75 3a 0a 0a 2a 20 6c 65 64 67 65 72 *....[index..].*.Menu:..*.ledger
26e40 2d 62 69 6e 61 72 79 2d 70 61 74 68 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -binary-path:...................
26e60 20 4c 65 64 67 65 72 20 45 78 65 63 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 .Ledger.Exec.Customization.Group
26e80 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
26ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
26ec0 20 28 6c 69 6e 65 20 20 38 29 0a 2a 20 6c 65 64 67 65 72 2d 62 75 66 66 65 72 2d 74 72 61 63 6b .(line..8).*.ledger-buffer-track
26ee0 73 2d 72 65 63 6f 6e 63 69 6c 65 2d 62 75 66 66 65 72 3a 20 4c 65 64 67 65 72 20 52 65 63 6f 6e s-reconcile-buffer:.Ledger.Recon
26f00 63 69 6c 65 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2e 0a 20 20 20 20 20 20 cile.Customization.Group........
26f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
26f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 .........................(line.1
26f60 33 29 0a 2a 20 6c 65 64 67 65 72 2d 63 6c 65 61 72 2d 77 68 6f 6c 65 2d 74 72 61 6e 73 61 63 74 3).*.ledger-clear-whole-transact
26f80 69 6f 6e 73 3a 20 20 20 20 20 20 20 4c 65 64 67 65 72 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e ions:.......Ledger.Customization
26fa0 20 47 72 6f 75 70 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .Group..........................
26fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
26fe0 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 30 29 0a 2a 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 63 .......(line.10).*.ledger-font-c
27000 6c 65 61 72 65 64 2d 66 61 63 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 65 64 67 65 72 leared-face:..............Ledger
27020 20 46 61 63 65 73 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2e 0a 20 20 20 20 .Faces.Customization.Group......
27040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 ...........................(line
27080 20 31 31 29 0a 2a 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 63 6f 6d 6d 65 6e 74 2d 66 61 63 65 3a .11).*.ledger-font-comment-face:
270a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 65 64 67 65 72 20 46 61 63 65 73 20 43 75 73 74 6f ..............Ledger.Faces.Custo
270c0 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 mization.Group..................
270e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 34 31 29 0a 2a 20 6c 65 64 67 65 ...............(line.41).*.ledge
27120 72 2d 66 6f 6e 74 2d 68 69 67 68 6c 69 67 68 74 2d 66 61 63 65 3a 20 20 20 20 20 20 20 20 20 20 r-font-highlight-face:..........
27140 20 20 4c 65 64 67 65 72 20 46 61 63 65 73 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f ..Ledger.Faces.Customization.Gro
27160 75 70 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 up..............................
27180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
271a0 20 20 20 28 6c 69 6e 65 20 31 34 29 0a 2a 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 6f 74 68 65 72 ...(line.14).*.ledger-font-other
271c0 2d 66 61 63 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 65 64 67 65 72 20 46 61 63 -face:................Ledger.Fac
271e0 65 73 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2e 0a 20 20 20 20 20 20 20 20 es.Customization.Group..........
27200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 32 30 29 .......................(line.20)
27240 0a 2a 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 65 6e 64 69 6e 67 2d 66 61 63 65 3a 20 20 20 20 .*.ledger-font-pending-face:....
27260 20 20 20 20 20 20 20 20 20 20 4c 65 64 67 65 72 20 46 61 63 65 73 20 43 75 73 74 6f 6d 69 7a 61 ..........Ledger.Faces.Customiza
27280 74 69 6f 6e 20 47 72 6f 75 70 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tion.Group......................
272a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
272c0 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 37 29 0a 2a 20 6c 65 64 67 65 72 2d 66 6f ...........(line.17).*.ledger-fo
272e0 6e 74 2d 70 6f 73 74 69 6e 67 2d 61 63 63 6f 75 6e 74 2d 63 6c 65 61 72 65 64 2d 66 61 63 65 3a nt-posting-account-cleared-face:
27300 20 4c 65 64 67 65 72 20 46 61 63 65 73 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 .Ledger.Faces.Customization.Grou
27320 70 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 p...............................
27340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27360 20 20 28 6c 69 6e 65 20 32 36 29 0a 2a 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 6f 73 74 69 6e ..(line.26).*.ledger-font-postin
27380 67 2d 61 63 63 6f 75 6e 74 2d 66 61 63 65 3a 20 20 20 20 20 20 4c 65 64 67 65 72 20 46 61 63 65 g-account-face:......Ledger.Face
273a0 73 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2e 0a 20 20 20 20 20 20 20 20 20 s.Customization.Group...........
273c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
273e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 32 33 29 0a ......................(line.23).
27400 2a 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 70 6f 73 74 69 6e 67 2d 61 63 63 6f 75 6e 74 2d 70 65 *.ledger-font-posting-account-pe
27420 6e 64 69 6e 67 2d 66 61 63 65 3a 20 4c 65 64 67 65 72 20 46 61 63 65 73 20 43 75 73 74 6f 6d 69 nding-face:.Ledger.Faces.Customi
27440 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 zation.Group....................
27460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27480 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 32 39 29 0a 2a 20 6c 65 64 67 65 72 2d .............(line.29).*.ledger-
274a0 66 6f 6e 74 2d 70 6f 73 74 69 6e 67 2d 61 6d 6f 75 6e 74 2d 66 61 63 65 3a 20 20 20 20 20 20 20 font-posting-amount-face:.......
274c0 4c 65 64 67 65 72 20 46 61 63 65 73 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 Ledger.Faces.Customization.Group
274e0 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27520 20 28 6c 69 6e 65 20 33 32 29 0a 2a 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 72 65 63 6f 6e 63 69 .(line.32).*.ledger-font-reconci
27540 6c 65 72 2d 63 6c 65 61 72 65 64 2d 66 61 63 65 3a 20 20 20 4c 65 64 67 65 72 20 46 61 63 65 73 ler-cleared-face:...Ledger.Faces
27560 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2e 0a 20 20 20 20 20 20 20 20 20 20 .Customization.Group............
27580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
275a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 34 38 29 0a 2a .....................(line.48).*
275c0 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 72 65 63 6f 6e 63 69 6c 65 72 2d 70 65 6e 64 69 6e 67 2d .ledger-font-reconciler-pending-
275e0 66 61 63 65 3a 20 20 20 4c 65 64 67 65 72 20 46 61 63 65 73 20 43 75 73 74 6f 6d 69 7a 61 74 69 face:...Ledger.Faces.Customizati
27600 6f 6e 20 47 72 6f 75 70 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 on.Group........................
27620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27640 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 35 32 29 0a 2a 20 6c 65 64 67 65 72 2d 66 6f 6e 74 .........(line.52).*.ledger-font
27660 2d 72 65 63 6f 6e 63 69 6c 65 72 2d 75 6e 63 6c 65 61 72 65 64 2d 66 61 63 65 3a 20 4c 65 64 67 -reconciler-uncleared-face:.Ledg
27680 65 72 20 46 61 63 65 73 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2e 0a 20 20 er.Faces.Customization.Group....
276a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
276c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 .............................(li
276e0 6e 65 20 34 34 29 0a 2a 20 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 72 65 70 6f 72 74 2d 63 6c 69 63 ne.44).*.ledger-font-report-clic
27700 6b 61 62 6c 65 2d 66 61 63 65 3a 20 20 20 20 20 4c 65 64 67 65 72 20 46 61 63 65 73 20 43 75 73 kable-face:.....Ledger.Faces.Cus
27720 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tomization.Group................
27740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 35 36 29 0a 2a 20 6c 65 64 .................(line.56).*.led
27780 67 65 72 2d 66 6f 6e 74 2d 75 6e 63 6c 65 61 72 65 64 2d 66 61 63 65 3a 20 20 20 20 20 20 20 20 ger-font-uncleared-face:........
277a0 20 20 20 20 4c 65 64 67 65 72 20 46 61 63 65 73 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 ....Ledger.Faces.Customization.G
277c0 72 6f 75 70 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 roup............................
277e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27800 20 20 20 20 20 28 6c 69 6e 65 20 20 38 29 0a 2a 20 6c 65 64 67 65 72 2d 68 69 67 68 6c 69 67 68 .....(line..8).*.ledger-highligh
27820 74 2d 78 61 63 74 2d 75 6e 64 65 72 2d 70 6f 69 6e 74 3a 20 20 20 20 20 4c 65 64 67 65 72 20 43 t-xact-under-point:.....Ledger.C
27840 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 ustomization.Group..............
27860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 33 29 0a 2a 20 6c ...................(line.13).*.l
278a0 65 64 67 65 72 2d 69 6e 69 74 2d 66 69 6c 65 2d 6e 61 6d 65 3a 20 20 20 20 20 20 20 20 20 20 20 edger-init-file-name:...........
278c0 20 20 20 20 20 20 4c 65 64 67 65 72 20 45 78 65 63 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 ......Ledger.Exec.Customization.
278e0 47 72 6f 75 70 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 Group...........................
27900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27920 20 20 20 20 20 20 28 6c 69 6e 65 20 31 31 29 0a 2a 20 6c 65 64 67 65 72 2d 6e 61 72 72 6f 77 2d ......(line.11).*.ledger-narrow-
27940 6f 6e 2d 72 65 63 6f 6e 63 69 6c 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 4c 65 64 67 65 72 20 on-reconcile:............Ledger.
27960 52 65 63 6f 6e 63 69 6c 65 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2e 0a 20 Reconcile.Customization.Group...
27980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
279a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c ..............................(l
279c0 69 6e 65 20 20 39 29 0a 2a 20 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 6e 65 78 74 2d 75 ine..9).*.ledger-navigate-next-u
279e0 6e 63 6c 65 61 72 65 64 3a 20 20 20 20 20 20 20 20 4e 61 76 69 67 61 74 69 6e 67 20 54 72 61 6e ncleared:........Navigating.Tran
27a00 73 61 63 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 sactions........................
27a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27a40 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 30 29 0a 2a 20 6c 65 64 67 65 72 2d 6e 61 76 69 .........(line.10).*.ledger-navi
27a60 67 61 74 65 2d 6e 65 78 74 2d 78 61 63 74 2d 6f 72 2d 64 69 72 65 63 74 69 76 65 3a 20 4e 61 76 gate-next-xact-or-directive:.Nav
27a80 69 67 61 74 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 20 20 20 20 igating.Transactions............
27aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a .....................(line..6).*
27ae0 20 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 70 72 65 76 2d 78 61 63 74 2d 6f 72 2d 64 69 .ledger-navigate-prev-xact-or-di
27b00 72 65 63 74 69 76 65 3a 20 4e 61 76 69 67 61 74 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 rective:.Navigating.Transactions
27b20 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27b60 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 70 72 65 .(line..6).*.ledger-navigate-pre
27b80 76 69 6f 75 73 2d 75 6e 63 6c 65 61 72 65 64 3a 20 20 20 20 4e 61 76 69 67 61 74 69 6e 67 20 54 vious-uncleared:....Navigating.T
27ba0 72 61 6e 73 61 63 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ransactions.....................
27bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27be0 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 30 29 0a 2a 20 6c 65 64 67 65 72 2d 6f ............(line.10).*.ledger-o
27c00 63 63 75 72 2d 6e 61 72 72 6f 77 65 64 2d 66 61 63 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 4c ccur-narrowed-face:............L
27c20 65 64 67 65 72 20 46 61 63 65 73 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2e edger.Faces.Customization.Group.
27c40 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27c80 28 6c 69 6e 65 20 33 35 29 0a 2a 20 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d 75 73 65 2d 66 61 63 (line.35).*.ledger-occur-use-fac
27ca0 65 2d 73 68 6f 77 6e 3a 20 20 20 20 20 20 20 20 20 20 20 4c 65 64 67 65 72 20 43 75 73 74 6f 6d e-shown:...........Ledger.Custom
27cc0 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ization.Group...................
27ce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 6c 65 64 67 65 72 ..............(line..6).*.ledger
27d20 2d 6f 63 63 75 72 2d 78 61 63 74 2d 66 61 63 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -occur-xact-face:...............
27d40 20 4c 65 64 67 65 72 20 46 61 63 65 73 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 .Ledger.Faces.Customization.Grou
27d60 70 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 p...............................
27d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27da0 20 20 28 6c 69 6e 65 20 33 38 29 0a 2a 20 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 63 63 6f 75 6e ..(line.38).*.ledger-post-accoun
27dc0 74 2d 61 6c 69 67 6e 6d 65 6e 74 2d 63 6f 6c 75 6d 6e 3a 20 20 4c 65 64 67 65 72 20 50 6f 73 74 t-alignment-column:..Ledger.Post
27de0 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2e 0a 20 20 20 20 20 20 20 20 20 20 .Customization.Group............
27e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 38 29 0a 2a .....................(line..8).*
27e40 20 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 6d 6f 75 6e 74 2d 61 6c 69 67 6e 6d 65 6e 74 2d 61 74 .ledger-post-amount-alignment-at
27e60 3a 20 20 20 20 20 20 20 4c 65 64 67 65 72 20 50 6f 73 74 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f :.......Ledger.Post.Customizatio
27e80 6e 20 47 72 6f 75 70 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n.Group.........................
27ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27ec0 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 31 29 0a 2a 20 6c 65 64 67 65 72 2d 70 6f 73 74 2d ........(line.11).*.ledger-post-
27ee0 61 6d 6f 75 6e 74 2d 61 6c 69 67 6e 6d 65 6e 74 2d 63 6f 6c 75 6d 6e 3a 20 20 20 41 64 64 69 6e amount-alignment-column:...Addin
27f00 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 2e 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 6c 65 64 g.Transactions...(line..6).*.led
27f20 67 65 72 2d 70 6f 73 74 2d 61 6d 6f 75 6e 74 2d 61 6c 69 67 6e 6d 65 6e 74 2d 63 6f 6c 75 6d 6e ger-post-amount-alignment-column
27f40 20 3c 31 3e 3a 20 4c 65 64 67 65 72 20 50 6f 73 74 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 .<1>:.Ledger.Post.Customization.
27f60 47 72 6f 75 70 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 Group...........................
27f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
27fa0 20 20 20 20 20 20 28 6c 69 6e 65 20 31 38 29 0a 2a 20 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 75 ......(line.18).*.ledger-post-au
27fc0 74 6f 2d 61 6c 69 67 6e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 65 64 67 65 72 20 to-align:................Ledger.
27fe0 50 6f 73 74 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2e 0a 20 20 20 20 20 20 Post.Customization.Group........
28000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 32 .........................(line.2
28040 31 29 0a 2a 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 62 75 66 66 65 72 2d 61 63 63 1).*.ledger-reconcile-buffer-acc
28060 6f 75 6e 74 2d 6d 61 78 2d 63 68 61 72 73 3a 20 4c 65 64 67 65 72 20 52 65 63 6f 6e 63 69 6c 65 ount-max-chars:.Ledger.Reconcile
28080 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2e 0a 20 20 20 20 20 20 20 20 20 20 .Customization.Group............
280a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
280c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 35 34 29 0a 2a .....................(line.54).*
280e0 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 62 75 66 66 65 72 2d 68 65 61 64 65 72 3a .ledger-reconcile-buffer-header:
28100 20 20 20 20 20 20 20 20 4c 65 64 67 65 72 20 52 65 63 6f 6e 63 69 6c 65 20 43 75 73 74 6f 6d 69 ........Ledger.Reconcile.Customi
28120 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 zation.Group....................
28140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28160 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 33 34 29 0a 2a 20 6c 65 64 67 65 72 2d .............(line.34).*.ledger-
28180 72 65 63 6f 6e 63 69 6c 65 2d 62 75 66 66 65 72 2d 6c 69 6e 65 2d 66 6f 72 6d 61 74 3a 20 20 20 reconcile-buffer-line-format:...
281a0 4c 65 64 67 65 72 20 52 65 63 6f 6e 63 69 6c 65 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 Ledger.Reconcile.Customization.G
281c0 72 6f 75 70 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 roup............................
281e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28200 20 20 20 20 20 28 6c 69 6e 65 20 34 30 29 0a 2a 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c .....(line.40).*.ledger-reconcil
28220 65 2d 62 75 66 66 65 72 2d 6e 61 6d 65 3a 20 20 20 20 20 20 20 20 20 20 4c 65 64 67 65 72 20 52 e-buffer-name:..........Ledger.R
28240 65 63 6f 6e 63 69 6c 65 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2e 0a 20 20 econcile.Customization.Group....
28260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 .............................(li
282a0 6e 65 20 20 36 29 0a 2a 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 62 75 66 66 65 72 ne..6).*.ledger-reconcile-buffer
282c0 2d 70 61 79 65 65 2d 6d 61 78 2d 63 68 61 72 73 3a 20 4c 65 64 67 65 72 20 52 65 63 6f 6e 63 69 -payee-max-chars:.Ledger.Reconci
282e0 6c 65 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2e 0a 20 20 20 20 20 20 20 20 le.Customization.Group..........
28300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 35 30 29 .......................(line.50)
28340 0a 2a 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 64 65 66 61 75 6c 74 2d 63 6f 6d 6d .*.ledger-reconcile-default-comm
28360 6f 64 69 74 79 3a 20 20 20 20 53 74 61 72 74 69 6e 67 20 61 20 52 65 63 6f 6e 63 69 6c 69 61 74 odity:....Starting.a.Reconciliat
28380 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ion.............................
283a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
283c0 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 ....(line..6).*.ledger-reconcile
283e0 2d 64 65 66 61 75 6c 74 2d 64 61 74 65 2d 66 6f 72 6d 61 74 3a 20 20 4c 65 64 67 65 72 20 52 65 -default-date-format:..Ledger.Re
28400 63 6f 6e 63 69 6c 65 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2e 0a 20 20 20 concile.Customization.Group.....
28420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e ............................(lin
28460 65 20 32 36 29 0a 2a 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 66 69 6e 69 73 68 2d e.26).*.ledger-reconcile-finish-
28480 66 6f 72 63 65 2d 71 75 69 74 20 6e 69 6c 3a 20 4c 65 64 67 65 72 20 52 65 63 6f 6e 63 69 6c 65 force-quit.nil:.Ledger.Reconcile
284a0 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2e 0a 20 20 20 20 20 20 20 20 20 20 .Customization.Group............
284c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
284e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 36 37 29 0a 2a .....................(line.67).*
28500 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 66 6f 72 63 65 2d 77 69 6e 64 6f 77 2d 62 .ledger-reconcile-force-window-b
28520 6f 74 74 6f 6d 3a 20 20 4c 65 64 67 65 72 20 52 65 63 6f 6e 63 69 6c 65 20 43 75 73 74 6f 6d 69 ottom:..Ledger.Reconcile.Customi
28540 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 zation.Group....................
28560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28580 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 38 29 0a 2a 20 6c 65 64 67 65 72 2d .............(line.18).*.ledger-
285a0 72 65 63 6f 6e 63 69 6c 65 2d 69 6e 73 65 72 74 2d 65 66 66 65 63 74 69 76 65 2d 64 61 74 65 20 reconcile-insert-effective-date.
285c0 6e 69 6c 3a 20 4c 65 64 67 65 72 20 52 65 63 6f 6e 63 69 6c 65 20 43 75 73 74 6f 6d 69 7a 61 74 nil:.Ledger.Reconcile.Customizat
285e0 69 6f 6e 20 47 72 6f 75 70 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ion.Group.......................
28600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28620 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 36 33 29 0a 2a 20 6c 65 64 67 65 72 2d 72 65 63 ..........(line.63).*.ledger-rec
28640 6f 6e 63 69 6c 65 2d 73 6f 72 74 2d 6b 65 79 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 65 64 oncile-sort-key:.............Led
28660 67 65 72 20 52 65 63 6f 6e 63 69 6c 65 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 ger.Reconcile.Customization.Grou
28680 70 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 p...............................
286a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
286c0 20 20 28 6c 69 6e 65 20 35 38 29 0a 2a 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 74 ..(line.58).*.ledger-reconcile-t
286e0 61 72 67 65 74 2d 70 72 6f 6d 70 74 2d 73 74 72 69 6e 67 3a 20 4c 65 64 67 65 72 20 52 65 63 6f arget-prompt-string:.Ledger.Reco
28700 6e 63 69 6c 65 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2e 0a 20 20 20 20 20 ncile.Customization.Group.......
28720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 ..........................(line.
28760 33 30 29 0a 2a 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 74 6f 67 67 6c 65 2d 74 6f 30).*.ledger-reconcile-toggle-to
28780 2d 70 65 6e 64 69 6e 67 3a 20 20 20 20 4c 65 64 67 65 72 20 52 65 63 6f 6e 63 69 6c 65 20 43 75 -pending:....Ledger.Reconcile.Cu
287a0 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 stomization.Group...............
287c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
287e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 32 32 29 0a 2a 20 6c 65 ..................(line.22).*.le
28800 64 67 65 72 2d 72 65 70 6f 72 74 2d 61 75 74 6f 2d 77 69 64 74 68 3a 20 20 20 20 20 20 20 20 20 dger-report-auto-width:.........
28820 20 20 20 20 20 4c 65 64 67 65 72 20 52 65 70 6f 72 74 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e .....Ledger.Report.Customization
28840 20 47 72 6f 75 70 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .Group..........................
28860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28880 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 37 29 0a 2a 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 .......(line.17).*.ledger-report
288a0 2d 66 6f 72 6d 61 74 2d 73 70 65 63 69 66 69 65 72 73 3a 20 20 20 20 20 20 20 4c 65 64 67 65 72 -format-specifiers:.......Ledger
288c0 20 52 65 70 6f 72 74 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2e 0a 20 20 20 .Report.Customization.Group.....
288e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e ............................(lin
28920 65 20 20 39 29 0a 2a 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 75 73 65 2d 6e 61 74 69 76 65 e..9).*.ledger-report-use-native
28940 2d 68 69 67 68 6c 69 67 68 74 69 6e 67 3a 20 4c 65 64 67 65 72 20 52 65 70 6f 72 74 20 43 75 73 -highlighting:.Ledger.Report.Cus
28960 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tomization.Group................
28980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
289a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 33 29 0a 2a 20 6c 65 64 .................(line.13).*.led
289c0 67 65 72 2d 72 65 70 6f 72 74 73 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ger-reports:....................
289e0 20 20 20 20 41 64 64 69 6e 67 20 61 6e 64 20 45 64 69 74 69 6e 67 20 52 65 70 6f 72 74 73 2e 0a ....Adding.and.Editing.Reports..
28a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ...............................(
28a40 6c 69 6e 65 20 20 36 29 0a 2a 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 20 3c 31 3e 3a 20 20 line..6).*.ledger-reports.<1>:..
28a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 65 64 67 65 72 20 52 65 70 6f 72 74 20 ..................Ledger.Report.
28a80 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2e 0a 20 20 20 20 20 20 20 20 20 20 20 Customization.Group.............
28aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 ....................(line..6).*.
28ae0 6c 65 64 67 65 72 2d 73 6f 75 72 63 65 2d 64 69 72 65 63 74 6f 72 79 3a 20 20 20 20 20 20 20 20 ledger-source-directory:........
28b00 20 20 20 20 20 20 20 4c 65 64 67 65 72 20 54 65 73 74 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e .......Ledger.Test.Customization
28b20 20 47 72 6f 75 70 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .Group..........................
28b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28b60 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 6c 65 64 67 65 72 2d 74 65 73 74 2d 62 .......(line..6).*.ledger-test-b
28b80 69 6e 61 72 79 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 65 64 67 65 72 inary:....................Ledger
28ba0 20 54 65 73 74 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2e 0a 20 20 20 20 20 .Test.Customization.Group.......
28bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 ..........................(line.
28c00 20 39 29 0a 2a 20 6c 65 64 67 65 72 2d 74 65 78 69 2d 6e 6f 72 6d 61 6c 69 7a 61 74 69 6f 6e 2d .9).*.ledger-texi-normalization-
28c20 61 72 67 73 3a 20 20 20 20 20 20 20 20 4c 65 64 67 65 72 20 54 65 78 69 20 43 75 73 74 6f 6d 69 args:........Ledger.Texi.Customi
28c40 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 zation.Group....................
28c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28c80 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 30 29 0a 2a 20 6c 65 64 67 65 72 2d .............(line.10).*.ledger-
28ca0 74 65 78 69 2d 73 61 6d 70 6c 65 2d 64 6f 63 2d 70 61 74 68 3a 20 20 20 20 20 20 20 20 20 20 20 texi-sample-doc-path:...........
28cc0 4c 65 64 67 65 72 20 54 65 78 69 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 2e Ledger.Texi.Customization.Group.
28ce0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28d20 28 6c 69 6e 65 20 20 36 29 0a 0a 1f 0a 46 69 6c 65 3a 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 69 (line..6)....File:.ledger-mode.i
28d40 6e 66 6f 2c 20 20 4e 6f 64 65 3a 20 4b 65 79 73 74 72 6f 6b 65 20 49 6e 64 65 78 2c 20 20 50 72 nfo,..Node:.Keystroke.Index,..Pr
28d60 65 76 3a 20 43 6f 6d 6d 61 6e 64 20 26 20 56 61 72 69 61 62 6c 65 20 49 6e 64 65 78 2c 20 20 55 ev:.Command.&.Variable.Index,..U
28d80 70 3a 20 54 6f 70 0a 0a 4b 65 79 73 74 72 6f 6b 65 20 49 6e 64 65 78 0a 2a 2a 2a 2a 2a 2a 2a 2a p:.Top..Keystroke.Index.********
28da0 2a 2a 2a 2a 2a 2a 2a 0a 0a 00 08 5b 69 6e 64 65 78 00 08 5d 0a 2a 20 4d 65 6e 75 3a 0a 0a 2a 20 *******....[index..].*.Menu:..*.
28dc0 61 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 a:..............................
28de0 20 20 20 20 20 20 20 41 64 64 69 6e 67 20 61 6e 64 20 44 65 6c 65 74 69 6e 67 20 54 72 61 6e 73 .......Adding.and.Deleting.Trans
28e00 61 63 74 69 6f 6e 73 20 64 75 72 69 6e 67 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 2e 0a 20 actions.during.Reconciliation...
28e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
28e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c ..............................(l
28e60 69 6e 65 20 20 36 29 0a 2a 20 43 2d 63 20 43 2d 61 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ine..6).*.C-c.C-a:..............
28e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 51 75 69 63 6b 20 41 64 64 2e 20 20 20 20 20 .................Quick.Add......
28ea0 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 43 2d 63 20 43 2d 62 3a 20 20 20 20 20 .......(line..6).*.C-c.C-b:.....
28ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 45 64 69 74 69 6e ..........................Editin
28ee0 67 20 41 6d 6f 75 6e 74 73 2e 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 43 2d 63 20 g.Amounts.......(line..6).*.C-c.
28f00 43 2d 63 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 C-c:............................
28f20 20 20 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 2e 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 ...Reconciliation........(line..
28f40 36 29 0a 2a 20 43 2d 63 20 43 2d 63 20 3c 31 3e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6).*.C-c.C-c.<1>:...............
28f60 20 20 20 20 20 20 20 20 20 20 20 20 52 65 70 6f 72 74 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 ............Reports.............
28f80 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 43 2d 63 20 43 2d 63 20 3c 32 3e 3a 20 20 20 20 20 20 ..(line..6).*.C-c.C-c.<2>:......
28fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4d 61 72 6b 69 6e 67 20 54 72 61 .....................Marking.Tra
28fc0 6e 73 61 63 74 69 6f 6e 73 2e 20 28 6c 69 6e 65 20 32 38 29 0a 2a 20 43 2d 63 20 43 2d 63 20 3c nsactions..(line.28).*.C-c.C-c.<
28fe0 33 3e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 45 64 3>:...........................Ed
29000 69 74 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 20 44 75 72 69 6e 67 20 52 65 63 6f 6e 63 69 6c 69 it.Transactions.During.Reconcili
29020 61 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ation...........................
29040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29060 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 43 2d 63 20 43 2d 63 20 3c 34 3e 3a 20 20 ......(line..6).*.C-c.C-c.<4>:..
29080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 46 69 6e 61 6c 69 7a .........................Finaliz
290a0 65 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.Reconciliation................
290c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
290e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 43 2d 63 .................(line..6).*.C-c
29100 20 43 2d 64 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .C-d:...........................
29120 20 20 20 20 44 65 6c 65 74 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 2e 0a 20 20 20 20 20 ....Deleting.Transactions.......
29140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 ..........................(line.
29180 20 36 29 0a 2a 20 43 2d 63 20 43 2d 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .6).*.C-c.C-e:..................
291a0 20 20 20 20 20 20 20 20 20 20 20 20 20 4d 61 72 6b 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e .............Marking.Transaction
291c0 73 2e 20 28 6c 69 6e 65 20 32 38 29 0a 2a 20 43 2d 63 20 43 2d 66 3a 20 20 20 20 20 20 20 20 20 s..(line.28).*.C-c.C-f:.........
291e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4e 61 72 72 6f 77 69 6e 67 2e ......................Narrowing.
29200 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 43 2d 63 20 43 2d 66 20 ............(line..6).*.C-c.C-f.
29220 3c 31 3e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4e <1>:...........................N
29240 61 72 72 6f 77 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 20 20 20 arrowing.Transactions...........
29260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a ......................(line..6).
292a0 2a 20 43 2d 63 20 43 2d 67 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 *.C-c.C-g:......................
292c0 20 20 20 20 20 20 20 20 20 4e 61 72 72 6f 77 69 6e 67 2e 20 20 20 20 20 20 20 20 20 20 20 20 28 .........Narrowing.............(
292e0 6c 69 6e 65 20 20 36 29 0a 2a 20 43 2d 63 20 43 2d 67 20 3c 31 3e 3a 20 20 20 20 20 20 20 20 20 line..6).*.C-c.C-g.<1>:.........
29300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4e 61 72 72 6f 77 69 6e 67 20 54 72 61 6e ..................Narrowing.Tran
29320 73 61 63 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 sactions........................
29340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29360 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 43 2d 63 20 43 2d 6b 3a 20 20 20 .........(line..6).*.C-c.C-k:...
29380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 6f 70 79 ............................Copy
293a0 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 2e 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 43 2d ing.Transactions..(line..6).*.C-
293c0 63 20 43 2d 6f 20 43 2d 61 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 c.C-o.C-a:......................
293e0 20 20 20 20 20 52 75 6e 6e 69 6e 67 20 42 61 73 69 63 20 52 65 70 6f 72 74 73 2e 0a 20 20 20 20 .....Running.Basic.Reports......
29400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 ...........................(line
29440 20 20 36 29 0a 2a 20 43 2d 63 20 43 2d 6f 20 43 2d 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..6).*.C-c.C-o.C-e:.............
29460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 64 64 69 6e 67 20 61 6e 64 20 45 64 69 74 69 6e 67 ..............Adding.and.Editing
29480 20 52 65 70 6f 72 74 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .Reports........................
294a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
294c0 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 43 2d 63 20 43 2d 6f 20 43 2d 67 .........(line..6).*.C-c.C-o.C-g
294e0 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 75 6e 6e :...........................Runn
29500 69 6e 67 20 42 61 73 69 63 20 52 65 70 6f 72 74 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ing.Basic.Reports...............
29520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 43 2d ..................(line..6).*.C-
29560 63 20 43 2d 6f 20 43 2d 72 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 c.C-o.C-r:......................
29580 20 20 20 20 20 52 65 70 6f 72 74 73 2e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 .....Reports...............(line
295a0 20 20 36 29 0a 2a 20 43 2d 63 20 43 2d 6f 20 43 2d 72 20 3c 31 3e 3a 20 20 20 20 20 20 20 20 20 ..6).*.C-c.C-o.C-r.<1>:.........
295c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 75 6e 6e 69 6e 67 20 42 61 73 69 63 20 52 65 70 6f ..............Running.Basic.Repo
295e0 72 74 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rts.............................
29600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29620 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 43 2d 63 20 43 2d 70 3a 20 20 20 20 20 20 20 20 ....(line..6).*.C-c.C-p:........
29640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 51 75 69 63 6b 20 42 61 6c .......................Quick.Bal
29660 61 6e 63 65 20 44 69 73 70 6c 61 79 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ance.Display....................
29680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
296a0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 43 2d 63 20 43 2d 72 .............(line..6).*.C-c.C-r
296c0 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 :...............................
296e0 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 2e 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a Reconciliation........(line..6).
29700 2a 20 43 2d 63 20 43 2d 72 20 3c 31 3e 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 *.C-c.C-r.<1>:..................
29720 20 20 20 20 20 20 20 20 20 53 74 61 72 74 69 6e 67 20 61 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 .........Starting.a.Reconciliati
29740 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 on..............................
29760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29780 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 43 2d 63 20 43 2d 73 3a 20 20 20 20 20 20 20 20 20 ...(line..6).*.C-c.C-s:.........
297a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 6f 72 74 69 6e 67 20 54 72 ......................Sorting.Tr
297c0 61 6e 73 61 63 74 69 6f 6e 73 2e 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 43 2d 63 20 43 2d 74 3a ansactions..(line..6).*.C-c.C-t:
297e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 53 ...............................S
29800 65 74 74 69 6e 67 20 61 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 20 45 66 66 65 63 74 69 76 65 20 etting.a.Transactions.Effective.
29820 44 61 74 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 Date............................
29840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29860 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 43 2d 63 20 54 41 42 3a 20 20 20 20 20 20 20 .....(line..6).*.C-c.TAB:.......
29880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 51 75 69 63 6b 20 41 64 ........................Quick.Ad
298a0 64 2e 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 64 3a 20 20 20 20 d.............(line..6).*.d:....
298c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
298e0 20 41 64 64 69 6e 67 20 61 6e 64 20 44 65 6c 65 74 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e .Adding.and.Deleting.Transaction
29900 73 20 64 75 72 69 6e 67 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 s.during.Reconciliation.........
29920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 ........................(line..6
29960 29 0a 2a 20 65 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ).*.e:..........................
29980 20 20 20 20 20 20 20 20 20 20 20 41 64 64 69 6e 67 20 61 6e 64 20 45 64 69 74 69 6e 67 20 52 65 ...........Adding.and.Editing.Re
299a0 70 6f 72 74 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ports...........................
299c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
299e0 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 67 3a 20 20 20 20 20 20 20 20 20 20 20 20 ......(line..6).*.g:............
29a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 43 68 61 6e 67 69 6e .........................Changin
29a20 67 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 20 41 63 63 6f 75 6e 74 2e 0a 20 20 20 20 20 20 g.Reconciliation.Account........
29a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 .........................(line..
29a80 36 29 0a 2a 20 4d 2d 31 20 43 2d 63 20 43 2d 6f 20 43 2d 72 3a 20 20 20 20 20 20 20 20 20 20 20 6).*.M-1.C-c.C-o.C-r:...........
29aa0 20 20 20 20 20 20 20 20 20 20 20 20 41 64 64 69 6e 67 20 61 6e 64 20 45 64 69 74 69 6e 67 20 52 ............Adding.and.Editing.R
29ac0 65 70 6f 72 74 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 eports..........................
29ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29b00 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 4d 2d 6e 3a 20 20 20 20 20 20 20 20 20 .......(line..6).*.M-n:.........
29b20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4e 61 76 69 67 61 ..........................Naviga
29b40 74 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ting.Transactions...............
29b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 4d 2d ..................(line..6).*.M-
29ba0 70 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 p:..............................
29bc0 20 20 20 20 20 4e 61 76 69 67 61 74 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 2e 0a 20 20 .....Navigating.Transactions....
29be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 .............................(li
29c20 6e 65 20 20 36 29 0a 2a 20 71 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ne..6).*.q:.....................
29c40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 2e 20 ................Reconciliation..
29c60 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 71 20 3c 31 3e 3a 20 20 20 20 20 20 20 20 ......(line..6).*.q.<1>:........
29c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 46 69 6e 61 6c 69 7a .........................Finaliz
29ca0 65 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e.Reconciliation................
29cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29ce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 52 3a 20 .................(line..6).*.R:.
29d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29d20 20 20 20 20 52 65 76 65 72 73 69 6e 67 20 52 65 70 6f 72 74 20 4f 72 64 65 72 2e 0a 20 20 20 20 ....Reversing.Report.Order......
29d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 ...........................(line
29d80 20 20 36 29 0a 2a 20 52 45 54 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..6).*.RET:.....................
29da0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 45 64 69 74 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 20 ..............Edit.Transactions.
29dc0 44 75 72 69 6e 67 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 2e 0a 20 20 20 20 20 20 20 20 20 During.Reconciliation...........
29de0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a ......................(line..6).
29e20 2a 20 53 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 *.S:............................
29e40 20 20 20 20 20 20 20 20 20 41 64 64 69 6e 67 20 61 6e 64 20 45 64 69 74 69 6e 67 20 52 65 70 6f .........Adding.and.Editing.Repo
29e60 72 74 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rts.............................
29e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29ea0 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 53 50 43 3a 20 20 20 20 20 20 20 20 20 20 20 20 ....(line..6).*.SPC:............
29ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 52 65 63 6f 6e 63 69 6c 69 .......................Reconcili
29ee0 61 74 69 6f 6e 2e 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 53 50 43 20 3c 31 3e ation........(line..6).*.SPC.<1>
29f00 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 :...............................
29f20 4d 61 72 6b 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 20 50 65 6e 64 69 6e 67 2e 0a 20 20 20 20 20 Mark.Transactions.Pending.......
29f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
29f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 ..........................(line.
29f80 20 36 29 0a 2a 20 74 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .6).*.t:........................
29fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 43 68 61 6e 67 69 6e 67 20 52 65 63 6f 6e 63 69 6c 69 61 .............Changing.Reconcilia
29fc0 74 69 6f 6e 20 54 61 72 67 65 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tion.Target.....................
29fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2a000 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 54 41 42 3a 20 20 20 20 ............(line..6).*.TAB:....
2a020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 41 ...............................A
2a040 64 64 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 2e 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a dding.Transactions...(line..6).*
2a060 20 79 3a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .y:.............................
2a080 20 20 20 20 20 20 20 20 45 64 69 74 69 6e 67 20 41 6d 6f 75 6e 74 73 2e 20 20 20 20 20 20 28 6c ........Editing.Amounts.......(l
2a0a0 69 6e 65 20 20 36 29 0a 0a 0a 1f 0a 54 61 67 20 54 61 62 6c 65 3a 0a 4e 6f 64 65 3a 20 54 6f 70 ine..6).....Tag.Table:.Node:.Top
2a0c0 7f 31 37 34 32 0a 4e 6f 64 65 3a 20 49 6e 74 72 6f 64 75 63 74 69 6f 6e 20 74 6f 20 4c 65 64 67 .1742.Node:.Introduction.to.Ledg
2a0e0 65 72 2d 6d 6f 64 65 7f 32 35 35 35 0a 4e 6f 64 65 3a 20 51 75 69 63 6b 20 49 6e 73 74 61 6c 6c er-mode.2555.Node:.Quick.Install
2a100 61 74 69 6f 6e 7f 32 37 38 34 0a 4e 6f 64 65 3a 20 4d 65 6e 75 73 7f 33 37 31 36 0a 4e 6f 64 65 ation.2784.Node:.Menus.3716.Node
2a120 3a 20 51 75 69 63 6b 20 44 65 6d 6f 7f 34 30 33 31 0a 4e 6f 64 65 3a 20 51 75 69 63 6b 20 41 64 :.Quick.Demo.4031.Node:.Quick.Ad
2a140 64 7f 34 34 36 31 0a 4e 6f 64 65 3a 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 7f 35 35 35 39 d.4461.Node:.Reconciliation.5559
2a160 0a 4e 6f 64 65 3a 20 52 65 70 6f 72 74 73 7f 37 32 34 33 0a 4e 6f 64 65 3a 20 4e 61 72 72 6f 77 .Node:.Reports.7243.Node:.Narrow
2a180 69 6e 67 7f 38 32 37 33 0a 4e 6f 64 65 3a 20 54 68 65 20 4c 65 64 67 65 72 20 42 75 66 66 65 72 ing.8273.Node:.The.Ledger.Buffer
2a1a0 7f 38 38 35 37 0a 4e 6f 64 65 3a 20 4e 61 76 69 67 61 74 69 6e 67 20 54 72 61 6e 73 61 63 74 69 .8857.Node:.Navigating.Transacti
2a1c0 6f 6e 73 7f 39 32 36 33 0a 4e 6f 64 65 3a 20 41 64 64 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f ons.9263.Node:.Adding.Transactio
2a1e0 6e 73 7f 39 38 32 33 0a 4e 6f 64 65 3a 20 53 65 74 74 69 6e 67 20 61 20 54 72 61 6e 73 61 63 74 ns.9823.Node:.Setting.a.Transact
2a200 69 6f 6e 73 20 45 66 66 65 63 74 69 76 65 20 44 61 74 65 7f 31 31 33 32 32 0a 4e 6f 64 65 3a 20 ions.Effective.Date.11322.Node:.
2a220 51 75 69 63 6b 20 42 61 6c 61 6e 63 65 20 44 69 73 70 6c 61 79 7f 31 32 32 32 32 0a 4e 6f 64 65 Quick.Balance.Display.12222.Node
2a240 3a 20 43 6f 70 79 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 7f 31 32 37 35 34 0a 4e 6f 64 :.Copying.Transactions.12754.Nod
2a260 65 3a 20 45 64 69 74 69 6e 67 20 41 6d 6f 75 6e 74 73 7f 31 33 33 35 36 0a 4e 6f 64 65 3a 20 4d e:.Editing.Amounts.13356.Node:.M
2a280 61 72 6b 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 7f 31 34 34 32 37 0a 4e 6f 64 65 3a 20 arking.Transactions.14427.Node:.
2a2a0 46 6f 72 6d 61 74 74 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 7f 31 36 31 32 32 0a 4e 6f Formatting.Transactions.16122.No
2a2c0 64 65 3a 20 44 65 6c 65 74 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 7f 31 36 37 32 30 0a de:.Deleting.Transactions.16720.
2a2e0 4e 6f 64 65 3a 20 53 6f 72 74 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 7f 31 37 31 36 30 Node:.Sorting.Transactions.17160
2a300 0a 4e 6f 64 65 3a 20 4e 61 72 72 6f 77 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 7f 31 38 .Node:.Narrowing.Transactions.18
2a320 37 31 32 0a 4e 6f 64 65 3a 20 54 68 65 20 52 65 63 6f 6e 63 69 6c 65 20 42 75 66 66 65 72 7f 32 712.Node:.The.Reconcile.Buffer.2
2a340 30 35 36 32 0a 4e 6f 64 65 3a 20 42 61 73 69 63 73 20 6f 66 20 52 65 63 6f 6e 63 69 6c 69 61 74 0562.Node:.Basics.of.Reconciliat
2a360 69 6f 6e 7f 32 31 30 32 37 0a 4e 6f 64 65 3a 20 53 74 61 72 74 69 6e 67 20 61 20 52 65 63 6f 6e ion.21027.Node:.Starting.a.Recon
2a380 63 69 6c 69 61 74 69 6f 6e 7f 32 31 39 37 36 0a 4e 6f 64 65 3a 20 4d 61 72 6b 20 54 72 61 6e 73 ciliation.21976.Node:.Mark.Trans
2a3a0 61 63 74 69 6f 6e 73 20 50 65 6e 64 69 6e 67 7f 32 33 38 32 35 0a 4e 6f 64 65 3a 20 45 64 69 74 actions.Pending.23825.Node:.Edit
2a3c0 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 20 44 75 72 69 6e 67 20 52 65 63 6f 6e 63 69 6c 69 61 74 .Transactions.During.Reconciliat
2a3e0 69 6f 6e 7f 32 34 34 39 34 0a 4e 6f 64 65 3a 20 46 69 6e 61 6c 69 7a 65 20 52 65 63 6f 6e 63 69 ion.24494.Node:.Finalize.Reconci
2a400 6c 69 61 74 69 6f 6e 7f 32 35 31 33 37 0a 4e 6f 64 65 3a 20 41 64 64 69 6e 67 20 61 6e 64 20 44 liation.25137.Node:.Adding.and.D
2a420 65 6c 65 74 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 20 64 75 72 69 6e 67 20 52 65 63 6f eleting.Transactions.during.Reco
2a440 6e 63 69 6c 69 61 74 69 6f 6e 7f 32 35 37 39 34 0a 4e 6f 64 65 3a 20 43 68 61 6e 67 69 6e 67 20 nciliation.25794.Node:.Changing.
2a460 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 20 41 63 63 6f 75 6e 74 7f 32 36 33 37 38 0a 4e 6f 64 Reconciliation.Account.26378.Nod
2a480 65 3a 20 43 68 61 6e 67 69 6e 67 20 52 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 20 54 61 72 67 65 e:.Changing.Reconciliation.Targe
2a4a0 74 7f 32 36 39 32 38 0a 4e 6f 64 65 3a 20 54 68 65 20 52 65 70 6f 72 74 20 42 75 66 66 65 72 7f t.26928.Node:.The.Report.Buffer.
2a4c0 32 37 32 34 36 0a 4e 6f 64 65 3a 20 52 75 6e 6e 69 6e 67 20 42 61 73 69 63 20 52 65 70 6f 72 74 27246.Node:.Running.Basic.Report
2a4e0 73 7f 32 37 35 30 34 0a 4e 6f 64 65 3a 20 41 64 64 69 6e 67 20 61 6e 64 20 45 64 69 74 69 6e 67 s.27504.Node:.Adding.and.Editing
2a500 20 52 65 70 6f 72 74 73 7f 32 38 39 33 37 0a 4e 6f 64 65 3a 20 45 78 70 61 6e 73 69 6f 6e 20 46 .Reports.28937.Node:.Expansion.F
2a520 6f 72 6d 61 74 73 7f 33 30 33 32 34 0a 4e 6f 64 65 3a 20 4d 61 6b 65 20 52 65 70 6f 72 74 20 54 ormats.30324.Node:.Make.Report.T
2a540 72 61 6e 73 61 63 74 69 6f 6e 73 20 41 63 74 69 76 65 7f 33 31 39 36 35 0a 4e 6f 64 65 3a 20 52 ransactions.Active.31965.Node:.R
2a560 65 76 65 72 73 69 6e 67 20 52 65 70 6f 72 74 20 4f 72 64 65 72 7f 33 32 36 37 32 0a 4e 6f 64 65 eversing.Report.Order.32672.Node
2a580 3a 20 53 63 68 65 64 75 6c 69 6e 67 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 7f 33 33 33 36 35 0a :.Scheduling.Transactions.33365.
2a5a0 4e 6f 64 65 3a 20 53 70 65 63 69 66 79 69 6e 67 20 55 70 63 6f 6d 69 6e 67 20 54 72 61 6e 73 61 Node:.Specifying.Upcoming.Transa
2a5c0 63 74 69 6f 6e 73 7f 33 34 32 32 31 0a 4e 6f 64 65 3a 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 20 ctions.34221.Node:.Transactions.
2a5e0 74 68 61 74 20 6f 63 63 75 72 20 6f 6e 20 73 70 65 63 69 66 69 63 20 64 61 74 65 73 7f 33 34 37 that.occur.on.specific.dates.347
2a600 39 35 0a 4e 6f 64 65 3a 20 54 72 61 6e 73 61 63 74 69 6f 6e 73 20 74 68 61 74 20 6f 63 63 75 72 95.Node:.Transactions.that.occur
2a620 20 6f 6e 20 73 70 65 63 69 66 69 63 20 64 61 79 73 7f 33 35 38 33 36 0a 4e 6f 64 65 3a 20 43 75 .on.specific.days.35836.Node:.Cu
2a640 73 74 6f 6d 69 7a 69 6e 67 20 4c 65 64 67 65 72 2d 6d 6f 64 65 7f 33 36 39 36 35 0a 4e 6f 64 65 stomizing.Ledger-mode.36965.Node
2a660 3a 20 4c 65 64 67 65 72 2d 6d 6f 64 65 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 7f 33 37 32 32 :.Ledger-mode.Customization.3722
2a680 39 0a 4e 6f 64 65 3a 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 56 61 72 69 61 62 6c 65 73 7f 9.Node:.Customization.Variables.
2a6a0 33 37 39 31 34 0a 4e 6f 64 65 3a 20 4c 65 64 67 65 72 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 37914.Node:.Ledger.Customization
2a6c0 20 47 72 6f 75 70 7f 33 38 33 39 34 0a 4e 6f 64 65 3a 20 4c 65 64 67 65 72 20 52 65 63 6f 6e 63 .Group.38394.Node:.Ledger.Reconc
2a6e0 69 6c 65 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 7f 33 39 30 33 34 0a 4e 6f ile.Customization.Group.39034.No
2a700 64 65 3a 20 4c 65 64 67 65 72 20 52 65 70 6f 72 74 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 de:.Ledger.Report.Customization.
2a720 47 72 6f 75 70 7f 34 31 39 38 35 0a 4e 6f 64 65 3a 20 4c 65 64 67 65 72 20 46 61 63 65 73 20 43 Group.41985.Node:.Ledger.Faces.C
2a740 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 7f 34 32 37 30 34 0a 4e 6f 64 65 3a 20 4c ustomization.Group.42704.Node:.L
2a760 65 64 67 65 72 20 50 6f 73 74 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 7f 34 edger.Post.Customization.Group.4
2a780 34 34 35 31 0a 4e 6f 64 65 3a 20 4c 65 64 67 65 72 20 45 78 65 63 20 43 75 73 74 6f 6d 69 7a 61 4451.Node:.Ledger.Exec.Customiza
2a7a0 74 69 6f 6e 20 47 72 6f 75 70 7f 34 35 32 37 38 0a 4e 6f 64 65 3a 20 4c 65 64 67 65 72 20 54 65 tion.Group.45278.Node:.Ledger.Te
2a7c0 73 74 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f 75 70 7f 34 35 37 37 37 0a 4e 6f 64 st.Customization.Group.45777.Nod
2a7e0 65 3a 20 4c 65 64 67 65 72 20 54 65 78 69 20 43 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 20 47 72 6f e:.Ledger.Texi.Customization.Gro
2a800 75 70 7f 34 36 31 37 39 0a 4e 6f 64 65 3a 20 47 65 6e 65 72 61 74 69 6e 67 20 4c 65 64 67 65 72 up.46179.Node:.Generating.Ledger
2a820 20 52 65 67 72 65 73 73 69 6f 6e 20 54 65 73 74 73 7f 34 36 36 37 31 0a 4e 6f 64 65 3a 20 45 6d .Regression.Tests.46671.Node:.Em
2a840 62 65 64 64 69 6e 67 20 45 78 61 6d 70 6c 65 20 72 65 73 75 6c 74 73 20 69 6e 20 4c 65 64 67 65 bedding.Example.results.in.Ledge
2a860 72 20 44 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 7f 34 36 39 33 34 0a 4e 6f 64 65 3a 20 48 61 63 6b r.Documentation.46934.Node:.Hack
2a880 69 6e 67 20 4c 65 64 67 65 72 2d 6d 6f 64 65 7f 34 37 32 32 33 0a 4e 6f 64 65 3a 20 55 73 65 20 ing.Ledger-mode.47223.Node:.Use.
2a8a0 6f 72 67 2d 6c 69 6b 65 20 6f 75 74 6c 69 6e 65 73 7f 34 37 34 34 38 0a 4e 6f 64 65 3a 20 43 6f org-like.outlines.47448.Node:.Co
2a8c0 6e 63 65 70 74 20 49 6e 64 65 78 7f 34 38 31 31 33 0a 4e 6f 64 65 3a 20 43 6f 6d 6d 61 6e 64 20 ncept.Index.48113.Node:.Command.
2a8e0 26 20 56 61 72 69 61 62 6c 65 20 49 6e 64 65 78 7f 35 33 36 32 39 0a 4e 6f 64 65 3a 20 4b 65 79 &.Variable.Index.53629.Node:.Key
2a900 73 74 72 6f 6b 65 20 49 6e 64 65 78 7f 36 31 37 33 39 0a 1f 0a 45 6e 64 20 54 61 67 20 54 61 62 stroke.Index.61739...End.Tag.Tab
2a920 6c 65 0a 0a 1f 0a 4c 6f 63 61 6c 20 56 61 72 69 61 62 6c 65 73 3a 0a 63 6f 64 69 6e 67 3a 20 75 le....Local.Variables:.coding:.u
2a940 74 66 2d 38 0a 45 6e 64 3a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 tf-8.End:.......................
2a960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2aa00 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 33 32 36 2e 32 30 30 32 2f 6c 65 64 67 65 72 ledger-mode-20240326.2002/ledger
2aa20 2d 6e 61 76 69 67 61 74 65 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -navigate.el....................
2aa40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2aa60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
2aa80 30 30 31 35 37 34 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 35 35 35 00 20 30 00 00 00 0015743.00000000000.016555..0...
2aaa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2aac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2aae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ab00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
2ab20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
2ab40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ab60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ab80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2aba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2abc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2abe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ac00 3b 3b 3b 20 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2e 65 6c 20 2d 2d 2d 20 50 72 6f 76 69 ;;;.ledger-navigate.el.---.Provi
2ac20 64 65 20 6e 61 76 69 67 61 74 69 6f 6e 20 73 65 72 76 69 63 65 73 20 74 68 72 6f 75 67 68 20 74 de.navigation.services.through.t
2ac40 68 65 20 6c 65 64 67 65 72 20 62 75 66 66 65 72 2e 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 he.ledger.buffer...-*-.lexical-b
2ac60 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 inding:.t;.-*-..;;.Copyright.(C)
2ac80 20 32 30 31 34 2d 32 30 31 35 20 43 72 61 69 67 20 45 61 72 6c 73 20 28 65 6e 64 65 72 77 38 38 .2014-2015.Craig.Earls.(enderw88
2aca0 20 41 54 20 67 6d 61 69 6c 20 44 4f 54 20 63 6f 6d 29 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 .AT.gmail.DOT.com)..;;.This.file
2acc0 20 69 73 20 6e 6f 74 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 54 .is.not.part.of.GNU.Emacs...;;.T
2ace0 68 69 73 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 his.is.free.software;.you.can.re
2ad00 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 20 75 distribute.it.and/or.modify.it.u
2ad20 6e 64 65 72 0a 3b 3b 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e nder.;;.the.terms.of.the.GNU.Gen
2ad40 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 eral.Public.License.as.published
2ad60 20 62 79 20 74 68 65 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 .by.the.Free.;;.Software.Foundat
2ad80 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 32 2c 20 6f 72 20 28 61 74 20 79 6f ion;.either.version.2,.or.(at.yo
2ada0 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 0a 3b 3b 20 76 65 72 73 69 6f 6e 2e ur.option).any.later.;;.version.
2adc0 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 .;;.;;.This.is.distributed.in.th
2ade0 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 e.hope.that.it.will.be.useful,.b
2ae00 75 74 20 57 49 54 48 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 ut.WITHOUT.;;.ANY.WARRANTY;.with
2ae20 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 out.even.the.implied.warranty.of
2ae40 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 0a 3b 3b 20 46 49 54 4e 45 53 53 20 46 .MERCHANTABILITY.or.;;.FITNESS.F
2ae60 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 OR.A.PARTICULAR.PURPOSE...See.th
2ae80 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 e.GNU.General.Public.License.;;.
2aea0 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 for.more.details..;;.;;.You.shou
2aec0 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 ld.have.received.a.copy.of.the.G
2aee0 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f NU.General.Public.License.;;.alo
2af00 6e 67 20 77 69 74 68 20 47 4e 55 20 45 6d 61 63 73 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 ng.with.GNU.Emacs;.see.the.file.
2af20 43 4f 50 59 49 4e 47 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b COPYING...If.not,.write.to.the.;
2af40 3b 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e ;.Free.Software.Foundation,.Inc.
2af60 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f ,.51.Franklin.Street,.Fifth.Floo
2af80 72 2c 20 42 6f 73 74 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 20 55 53 41 2e r,.Boston,.;;.MA.02110-1301.USA.
2afa0 0a 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 0a 0a 3b 3b 3b 20 43 6f 64 65 3a ...;;;.Commentary:.;;..;;;.Code:
2afc0 0a 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 72 65 67 65 78 29 0a 28 72 65 71 75 69 ..(require.'ledger-regex).(requi
2afe0 72 65 20 27 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 re.'ledger-context)..(defun.ledg
2b000 65 72 2d 6e 61 76 69 67 61 74 65 2d 6e 65 78 74 2d 78 61 63 74 20 28 29 0a 20 20 22 4d 6f 76 65 er-navigate-next-xact.()..."Move
2b020 20 70 6f 69 6e 74 20 74 6f 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 6e 65 78 74 20 78 61 63 74 .point.to.beginning.of.next.xact
2b040 2e 22 0a 20 20 3b 3b 20 6d 61 6b 65 20 73 75 72 65 20 77 65 20 61 63 74 75 61 6c 6c 79 20 6d 6f ."...;;.make.sure.we.actually.mo
2b060 76 65 20 74 6f 20 74 68 65 20 6e 65 78 74 20 78 61 63 74 2c 20 65 76 65 6e 20 69 66 20 77 65 20 ve.to.the.next.xact,.even.if.we.
2b080 61 72 65 20 74 68 65 0a 20 20 3b 3b 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 6f 6e 65 20 6e 6f are.the...;;.beginning.of.one.no
2b0a0 77 2e 0a 20 20 28 69 66 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 6c 65 64 67 65 72 2d 70 61 79 65 w....(if.(looking-at.ledger-paye
2b0c0 65 2d 61 6e 79 2d 73 74 61 74 75 73 2d 72 65 67 65 78 29 0a 20 20 20 20 20 20 28 66 6f 72 77 61 e-any-status-regex).......(forwa
2b0e0 72 64 2d 6c 69 6e 65 29 29 0a 20 20 28 69 66 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 rd-line))...(if.(re-search-forwa
2b100 72 64 20 20 6c 65 64 67 65 72 2d 70 61 79 65 65 2d 61 6e 79 2d 73 74 61 74 75 73 2d 72 65 67 65 rd..ledger-payee-any-status-rege
2b120 78 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 x.nil.t).......(goto-char.(match
2b140 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 -beginning.0)).....(goto-char.(p
2b160 6f 69 6e 74 2d 6d 61 78 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6e 61 76 69 oint-max))))..(defun.ledger-navi
2b180 67 61 74 65 2d 73 74 61 72 74 2d 78 61 63 74 2d 6f 72 2d 64 69 72 65 63 74 69 76 65 2d 70 20 28 gate-start-xact-or-directive-p.(
2b1a0 29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 61 74 20 74 68 65 20 62 65 67 69 6e 6e 69 6e )..."Return.t.if.at.the.beginnin
2b1c0 67 20 6c 69 6e 65 20 6f 66 20 61 6e 20 78 61 63 74 20 6f 72 20 64 69 72 65 63 74 69 76 65 2e 0a g.line.of.an.xact.or.directive..
2b1e0 0a 41 73 73 75 6d 65 73 20 70 6f 69 6e 74 20 69 73 20 61 74 20 74 68 65 20 62 65 67 69 6e 6e 69 .Assumes.point.is.at.the.beginni
2b200 6e 67 20 6f 66 20 61 20 6c 69 6e 65 2e 22 0a 20 20 28 6e 6f 74 20 28 6c 6f 6f 6b 69 6e 67 2d 61 ng.of.a.line."...(not.(looking-a
2b220 74 20 22 5b 20 5c 74 5d 5c 5c 7c 5c 5c 28 5e 24 5c 5c 29 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 t."[.\t]\\|\\(^$\\)")))..(defun.
2b240 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 6e 65 78 74 2d 78 61 63 74 2d 6f 72 2d 64 69 72 ledger-navigate-next-xact-or-dir
2b260 65 63 74 69 76 65 20 28 29 0a 20 20 22 4d 6f 76 65 20 74 6f 20 74 68 65 20 62 65 67 69 6e 6e 69 ective.()..."Move.to.the.beginni
2b280 6e 67 20 6f 66 20 74 68 65 20 6e 65 78 74 20 78 61 63 74 20 6f 72 20 64 69 72 65 63 74 69 76 65 ng.of.the.next.xact.or.directive
2b2a0 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d ."...(interactive)...(beginning-
2b2c0 6f 66 2d 6c 69 6e 65 29 0a 20 20 28 69 66 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d of-line)...(if.(ledger-navigate-
2b2e0 73 74 61 72 74 2d 78 61 63 74 2d 6f 72 2d 64 69 72 65 63 74 69 76 65 2d 70 29 20 3b 20 69 66 20 start-xact-or-directive-p).;.if.
2b300 77 65 20 61 72 65 20 74 68 65 20 73 74 61 72 74 20 6f 66 20 61 6e 20 78 61 63 74 2c 20 6d 6f 76 we.are.the.start.of.an.xact,.mov
2b320 65 20 66 6f 72 77 61 72 64 20 74 6f 20 74 68 65 20 6e 65 78 74 20 78 61 63 74 0a 20 20 20 20 20 e.forward.to.the.next.xact......
2b340 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 29 0a 20 .(progn.........(forward-line)..
2b360 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d .......(unless.(ledger-navigate-
2b380 73 74 61 72 74 2d 78 61 63 74 2d 6f 72 2d 64 69 72 65 63 74 69 76 65 2d 70 29 20 3b 20 77 65 20 start-xact-or-directive-p).;.we.
2b3a0 68 61 76 65 20 6d 6f 76 65 64 20 66 6f 72 77 61 72 64 20 61 6e 64 20 61 72 65 20 6e 6f 74 20 61 have.moved.forward.and.are.not.a
2b3c0 74 20 61 6e 6f 74 68 65 72 20 78 61 63 74 2c 20 72 65 63 75 72 73 65 20 66 6f 72 77 61 72 64 0a t.another.xact,.recurse.forward.
2b3e0 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 6e 65 78 74 2d ..........(ledger-navigate-next-
2b400 78 61 63 74 2d 6f 72 2d 64 69 72 65 63 74 69 76 65 29 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 xact-or-directive))).....(while.
2b420 28 6e 6f 74 20 28 6f 72 20 28 65 6f 62 70 29 20 20 3b 20 77 65 20 64 69 64 6e 27 74 20 73 74 61 (not.(or.(eobp)..;.we.didn't.sta
2b440 72 74 20 6f 66 66 20 61 74 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 61 6e 20 78 61 rt.off.at.the.beginning.of.an.xa
2b460 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6e ct.....................(ledger-n
2b480 61 76 69 67 61 74 65 2d 73 74 61 72 74 2d 78 61 63 74 2d 6f 72 2d 64 69 72 65 63 74 69 76 65 2d avigate-start-xact-or-directive-
2b4a0 70 29 29 29 0a 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 29 29 29 29 0a 0a 28 64 p))).......(forward-line))))..(d
2b4c0 65 66 75 6e 20 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 70 72 65 76 2d 78 61 63 74 2d 6f efun.ledger-navigate-prev-xact-o
2b4e0 72 2d 64 69 72 65 63 74 69 76 65 20 28 29 0a 20 20 22 4d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 r-directive.()..."Move.point.to.
2b500 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 70 72 65 76 69 6f 75 73 20 78 61 63 74 2e 22 0a 20 20 28 beginning.of.previous.xact."...(
2b520 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 63 6f 6e 74 65 78 74 20 28 63 interactive)...(let.((context.(c
2b540 61 72 20 28 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 2d 61 74 2d 70 6f 69 6e 74 29 29 29 29 0a ar.(ledger-context-at-point)))).
2b560 20 20 20 20 28 77 68 65 6e 20 28 65 71 75 61 6c 20 63 6f 6e 74 65 78 74 20 27 61 63 63 74 2d 74 ....(when.(equal.context.'acct-t
2b580 72 61 6e 73 61 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 ransaction).......(ledger-naviga
2b5a0 74 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 78 61 63 74 29 29 0a 20 20 20 20 28 62 65 67 69 te-beginning-of-xact)).....(begi
2b5c0 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 62 61 nning-of-line).....(re-search-ba
2b5e0 63 6b 77 61 72 64 20 22 5e 5b 5b 3a 67 72 61 70 68 3a 5d 5d 22 20 6e 69 6c 20 74 29 29 29 0a 0a ckward."^[[:graph:]]".nil.t)))..
2b600 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 62 65 67 69 6e 6e 69 6e 67 (defun.ledger-navigate-beginning
2b620 2d 6f 66 2d 78 61 63 74 20 28 29 0a 20 20 22 4d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 74 68 65 -of-xact.()..."Move.point.to.the
2b640 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 78 61 63 74 2e 22 .beginning.of.the.current.xact."
2b660 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 3b 3b 20 6e 65 65 64 20 74 6f 20 73 74 ...(interactive)...;;.need.to.st
2b680 61 72 74 20 61 74 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 61 20 6c 69 6e 65 20 69 art.at.the.beginning.of.a.line.i
2b6a0 6e 20 63 61 73 65 20 77 65 20 61 72 65 20 69 6e 20 74 68 65 20 66 69 72 73 74 20 6c 69 6e 65 20 n.case.we.are.in.the.first.line.
2b6c0 6f 66 20 61 6e 20 78 61 63 74 20 61 6c 72 65 61 64 79 2e 0a 20 20 28 62 65 67 69 6e 6e 69 6e 67 of.an.xact.already....(beginning
2b6e0 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 28 6c 65 74 20 28 28 73 72 65 67 20 28 63 6f 6e 63 61 74 20 -of-line)...(let.((sreg.(concat.
2b700 22 5e 5b 3d 7e 5b 3a 64 69 67 69 74 3a 5d 5d 22 29 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 "^[=~[:digit:]]"))).....(unless.
2b720 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 73 72 65 67 29 0a 20 20 20 20 20 20 28 72 65 2d 73 65 61 72 (looking-at.sreg).......(re-sear
2b740 63 68 2d 62 61 63 6b 77 61 72 64 20 73 72 65 67 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 28 62 ch-backward.sreg.nil.t).......(b
2b760 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 29 29 0a 20 20 28 70 6f 69 6e 74 29 29 0a 0a eginning-of-line)))...(point))..
2b780 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 65 6e 64 2d 6f 66 2d 78 61 (defun.ledger-navigate-end-of-xa
2b7a0 63 74 20 28 29 0a 20 20 22 4d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 65 6e 64 20 6f 66 20 78 61 ct.()..."Move.point.to.end.of.xa
2b7c0 63 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 64 67 65 72 2d 6e ct."...(interactive)...(ledger-n
2b7e0 61 76 69 67 61 74 65 2d 6e 65 78 74 2d 78 61 63 74 2d 6f 72 2d 64 69 72 65 63 74 69 76 65 29 0a avigate-next-xact-or-directive).
2b800 20 20 28 72 65 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 20 22 2e 24 22 29 0a 20 20 28 65 ..(re-search-backward.".$")...(e
2b820 6e 64 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 28 70 6f 69 6e 74 29 29 0a 0a 28 64 65 66 75 6e 20 6c nd-of-line)...(point))..(defun.l
2b840 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 74 6f 2d 6c 69 6e 65 20 28 6c 69 6e 65 2d 6e 75 6d edger-navigate-to-line.(line-num
2b860 62 65 72 29 0a 20 20 22 52 61 70 69 64 6c 79 20 6d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 6c 69 ber)..."Rapidly.move.point.to.li
2b880 6e 65 20 4c 49 4e 45 2d 4e 55 4d 42 45 52 2e 22 0a 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 ne.LINE-NUMBER."...(goto-char.(p
2b8a0 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 28 31 2d 20 6c oint-min))...(forward-line.(1-.l
2b8c0 69 6e 65 2d 6e 75 6d 62 65 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6e 61 76 ine-number)))..(defun.ledger-nav
2b8e0 69 67 61 74 65 2d 66 69 6e 64 2d 78 61 63 74 2d 65 78 74 65 6e 74 73 20 28 70 6f 73 29 0a 20 20 igate-find-xact-extents.(pos)...
2b900 22 52 65 74 75 72 6e 20 6c 69 73 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 70 6f 69 6e 74 20 66 6f "Return.list.containing.point.fo
2b920 72 20 62 65 67 69 6e 6e 69 6e 67 20 61 6e 64 20 65 6e 64 20 6f 66 20 78 61 63 74 20 63 6f 6e 74 r.beginning.and.end.of.xact.cont
2b940 61 69 6e 69 6e 67 20 50 4f 53 2e 0a 52 65 71 75 69 72 65 73 20 65 6d 70 74 79 20 6c 69 6e 65 20 aining.POS..Requires.empty.line.
2b960 73 65 70 61 72 61 74 69 6e 67 20 78 61 63 74 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 separating.xacts."...(interactiv
2b980 65 20 22 64 22 29 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 67 6f e."d")...(save-excursion.....(go
2b9a0 74 6f 2d 63 68 61 72 20 70 6f 73 29 0a 20 20 20 20 28 6c 69 73 74 20 28 6c 65 64 67 65 72 2d 6e to-char.pos).....(list.(ledger-n
2b9c0 61 76 69 67 61 74 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 78 61 63 74 29 0a 20 20 20 20 20 avigate-beginning-of-xact)......
2b9e0 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 65 6e 64 2d 6f 66 2d 78 61 63 .....(ledger-navigate-end-of-xac
2ba00 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 73 6b t))))..(defun.ledger-navigate-sk
2ba20 69 70 2d 6c 69 6e 65 73 2d 62 61 63 6b 77 61 72 64 73 20 28 72 65 29 0a 20 20 22 4d 6f 76 65 20 ip-lines-backwards.(re)..."Move.
2ba40 62 61 63 6b 77 61 72 64 73 20 69 66 20 6e 65 63 65 73 73 61 72 79 20 75 6e 74 69 6c 20 74 68 65 backwards.if.necessary.until.the
2ba60 20 6c 69 6e 65 20 62 65 67 69 6e 6e 69 6e 67 20 64 6f 65 73 20 6e 6f 74 20 6d 61 74 63 68 20 52 .line.beginning.does.not.match.R
2ba80 45 2e 22 0a 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 28 77 68 69 E."...(beginning-of-line)...(whi
2baa0 6c 65 20 28 61 6e 64 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 2d 70 20 72 65 29 0a 20 20 20 20 20 20 le.(and.(looking-at-p.re).......
2bac0 20 20 20 20 20 20 20 20 28 7a 65 72 6f 70 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 2d 31 29 ........(zerop.(forward-line.-1)
2bae0 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 73 6b 69 ))))..(defun.ledger-navigate-ski
2bb00 70 2d 6c 69 6e 65 73 2d 66 6f 72 77 61 72 64 73 20 28 72 65 29 0a 20 20 22 4d 6f 76 65 20 66 6f p-lines-forwards.(re)..."Move.fo
2bb20 72 77 61 72 64 73 20 69 66 20 6e 65 63 65 73 73 61 72 79 20 75 6e 74 69 6c 20 74 68 65 20 6c 69 rwards.if.necessary.until.the.li
2bb40 6e 65 20 62 65 67 69 6e 6e 69 6e 67 20 64 6f 65 73 20 6e 6f 74 20 6d 61 74 63 68 20 52 45 2e 22 ne.beginning.does.not.match.RE."
2bb60 0a 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 28 77 68 69 6c 65 20 ...(beginning-of-line)...(while.
2bb80 28 61 6e 64 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 2d 70 20 72 65 29 0a 20 20 20 20 20 20 20 20 20 (and.(looking-at-p.re)..........
2bba0 20 20 20 20 20 28 7a 65 72 6f 70 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 29 29 29 29 .....(zerop.(forward-line.1)))))
2bbc0 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 66 69 6e 64 2d 64 69 ..(defun.ledger-navigate-find-di
2bbe0 72 65 63 74 69 76 65 2d 65 78 74 65 6e 74 73 20 28 70 6f 73 29 0a 20 20 22 52 65 74 75 72 6e 20 rective-extents.(pos)..."Return.
2bc00 74 68 65 20 65 78 74 65 6e 74 73 20 6f 66 20 74 68 65 20 64 69 72 65 63 74 69 76 65 20 61 74 20 the.extents.of.the.directive.at.
2bc20 50 4f 53 2e 22 0a 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 6f 73 29 0a 20 20 28 6c 65 74 20 28 POS."...(goto-char.pos)...(let.(
2bc40 28 62 65 67 69 6e 20 28 70 72 6f 67 6e 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 73 (begin.(progn.(ledger-navigate-s
2bc60 6b 69 70 2d 6c 69 6e 65 73 2d 62 61 63 6b 77 61 72 64 73 20 22 5b 20 5c 74 5d 5c 5c 7c 65 6e 64 kip-lines-backwards."[.\t]\\|end
2bc80 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c 28 3f 3a 63 6f 6d 6d 65 6e 74 5c 5c 7c 74 65 73 74 5c [[:blank:]]+\\(?:comment\\|test\
2bca0 5c 29 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e \)").......................(poin
2bcc0 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 65 6e 64 20 28 70 72 6f 67 6e 20 28 66 6f 72 77 61 72 t))).........(end.(progn.(forwar
2bce0 64 2d 6c 69 6e 65 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c d-line.1).....................(l
2bd00 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 73 6b 69 70 2d 6c 69 6e 65 73 2d 66 6f 72 77 61 72 edger-navigate-skip-lines-forwar
2bd20 64 73 20 22 5b 20 5c 74 5d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ds."[.\t]").....................
2bd40 28 31 2d 20 28 70 6f 69 6e 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6d 6d 65 6e 74 2d (1-.(point)))).........(comment-
2bd60 72 65 20 22 20 2a 3b 22 29 29 0a 20 20 20 20 3b 3b 20 68 61 6e 64 6c 65 20 62 6c 6f 63 6b 20 63 re.".*;")).....;;.handle.block.c
2bd80 6f 6d 6d 65 6e 74 73 20 68 65 72 65 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 62 65 67 69 omments.here.....(goto-char.begi
2bda0 6e 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 63 n).....(cond......((looking-at.c
2bdc0 6f 6d 6d 65 6e 74 2d 72 65 29 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 omment-re).......(ledger-navigat
2bde0 65 2d 73 6b 69 70 2d 6c 69 6e 65 73 2d 62 61 63 6b 77 61 72 64 73 20 63 6f 6d 6d 65 6e 74 2d 72 e-skip-lines-backwards.comment-r
2be00 65 29 0a 20 20 20 20 20 20 3b 3b 20 57 65 20 61 72 65 20 65 69 74 68 65 72 20 61 74 20 74 68 65 e).......;;.We.are.either.at.the
2be20 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 62 75 66 66 65 72 2c 20 6f 72 20 77 65 20 .beginning.of.the.buffer,.or.we.
2be40 66 6f 75 6e 64 0a 20 20 20 20 20 20 3b 3b 20 61 20 6c 69 6e 65 20 6f 75 74 73 69 64 65 20 74 68 found.......;;.a.line.outside.th
2be60 65 20 63 6f 6d 6d 65 6e 74 2c 20 6f 72 20 62 6f 74 68 2e 20 20 49 66 20 77 65 20 61 72 65 20 6f e.comment,.or.both...If.we.are.o
2be80 75 74 73 69 64 65 0a 20 20 20 20 20 20 3b 3b 20 74 68 65 20 63 6f 6d 6d 65 6e 74 20 74 68 65 6e utside.......;;.the.comment.then
2bea0 20 77 65 20 6e 65 65 64 20 74 6f 20 6d 6f 76 65 20 66 6f 72 77 61 72 64 20 61 20 6c 69 6e 65 2e .we.need.to.move.forward.a.line.
2bec0 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 63 6f 6d 6d 65 .......(unless.(looking-at.comme
2bee0 6e 74 2d 72 65 29 0a 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 0a nt-re).........(forward-line.1).
2bf00 20 20 20 20 20 20 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 29 0a 20 20 20 ........(beginning-of-line))....
2bf20 20 20 20 28 73 65 74 71 20 62 65 67 69 6e 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 28 67 ...(setq.begin.(point)).......(g
2bf40 6f 74 6f 2d 63 68 61 72 20 70 6f 73 29 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 oto-char.pos).......(ledger-navi
2bf60 67 61 74 65 2d 73 6b 69 70 2d 6c 69 6e 65 73 2d 66 6f 72 77 61 72 64 73 20 63 6f 6d 6d 65 6e 74 gate-skip-lines-forwards.comment
2bf80 2d 72 65 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 65 6e 64 20 28 70 6f 69 6e 74 29 29 29 0a 20 -re).......(setq.end.(point)))..
2bfa0 20 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 28 3f 3a 63 6f 6d 6d 65 6e 74 5c 5c ....((looking-at."\\(?:comment\\
2bfc0 7c 74 65 73 74 5c 5c 29 5c 5c 3e 22 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 65 6e 64 20 28 6f |test\\)\\>").......(setq.end.(o
2bfe0 72 20 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 r.(save-match-data..............
2c000 20 20 20 20 20 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5e 65 6e .........(re-search-forward."^en
2c020 64 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c 28 3f 3a 63 6f 6d 6d 65 6e 74 5c 5c 7c 74 65 73 74 d[[:blank:]]+\\(?:comment\\|test
2c040 5c 5c 29 5c 5c 5f 3e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 \\)\\_>")).....................(
2c060 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 29 0a 20 20 20 20 28 6c 69 73 74 20 62 65 67 69 6e 20 65 point-max))))).....(list.begin.e
2c080 6e 64 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 62 6c nd)))..(defun.ledger-navigate-bl
2c0a0 6f 63 6b 2d 63 6f 6d 6d 65 6e 74 20 28 70 6f 73 29 0a 20 20 22 4d 6f 76 65 20 70 61 73 74 20 74 ock-comment.(pos)..."Move.past.t
2c0c0 68 65 20 62 6c 6f 63 6b 20 63 6f 6d 6d 65 6e 74 20 61 74 20 50 4f 53 2c 20 61 6e 64 20 72 65 74 he.block.comment.at.POS,.and.ret
2c0e0 75 72 6e 20 69 74 73 20 65 78 74 65 6e 74 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 urn.its.extents."...(interactive
2c100 20 22 64 22 29 0a 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 6f 73 29 0a 20 20 28 6c 65 74 20 28 ."d")...(goto-char.pos)...(let.(
2c120 28 62 65 67 69 6e 20 28 70 72 6f 67 6e 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 (begin.(progn.(beginning-of-line
2c140 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 29 ).......................(point))
2c160 29 0a 20 20 20 20 20 20 20 20 28 65 6e 64 20 28 70 72 6f 67 6e 20 28 65 6e 64 2d 6f 66 2d 6c 69 ).........(end.(progn.(end-of-li
2c180 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 29 ne).....................(point))
2c1a0 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6d 6d 65 6e 74 2d 72 65 20 22 20 2a 3b 22 29 29 0a 20 20 ).........(comment-re.".*;"))...
2c1c0 20 20 3b 3b 20 68 61 6e 64 6c 65 20 62 6c 6f 63 6b 20 63 6f 6d 6d 65 6e 74 73 20 68 65 72 65 0a ..;;.handle.block.comments.here.
2c1e0 20 20 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 28 77 68 65 ....(beginning-of-line).....(whe
2c200 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 63 6f 6d 6d 65 6e 74 2d 72 65 29 0a 20 20 20 20 20 20 n.(looking-at.comment-re).......
2c220 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 73 6b 69 70 2d 6c 69 6e 65 73 2d 62 61 63 6b (ledger-navigate-skip-lines-back
2c240 77 61 72 64 73 20 63 6f 6d 6d 65 6e 74 2d 72 65 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 62 65 wards.comment-re).......(setq.be
2c260 67 69 6e 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 6f gin.(point)).......(goto-char.po
2c280 73 29 0a 20 20 20 20 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 s).......(beginning-of-line)....
2c2a0 20 20 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 73 6b 69 70 2d 6c 69 6e 65 73 2d 66 ...(ledger-navigate-skip-lines-f
2c2c0 6f 72 77 61 72 64 73 20 63 6f 6d 6d 65 6e 74 2d 72 65 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 orwards.comment-re).......(setq.
2c2e0 65 6e 64 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 28 6c 69 73 74 20 62 65 67 69 6e 20 65 6e end.(point))).....(list.begin.en
2c300 64 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 66 69 d)))...(defun.ledger-navigate-fi
2c320 6e 64 2d 65 6c 65 6d 65 6e 74 2d 65 78 74 65 6e 74 73 20 28 70 6f 73 29 0a 20 20 22 52 65 74 75 nd-element-extents.(pos)..."Retu
2c340 72 6e 20 6c 69 73 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 62 65 67 69 6e 6e 69 6e 67 20 61 6e 64 rn.list.containing.beginning.and
2c360 20 65 6e 64 20 6f 66 20 74 68 65 20 65 6e 74 69 74 79 20 73 75 72 72 6f 75 6e 64 69 6e 67 20 50 .end.of.the.entity.surrounding.P
2c380 4f 53 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 64 22 29 0a 20 20 28 73 61 76 65 OS."...(interactive."d")...(save
2c3a0 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 6f 73 29 0a 20 -excursion.....(goto-char.pos)..
2c3c0 20 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 28 6c 65 64 67 ...(beginning-of-line).....(ledg
2c3e0 65 72 2d 6e 61 76 69 67 61 74 65 2d 73 6b 69 70 2d 6c 69 6e 65 73 2d 62 61 63 6b 77 61 72 64 73 er-navigate-skip-lines-backwards
2c400 20 22 5b 20 5c 74 5d 5c 5c 7c 65 6e 64 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c 28 3f 3a 63 6f ."[.\t]\\|end[[:blank:]]+\\(?:co
2c420 6d 6d 65 6e 74 5c 5c 7c 74 65 73 74 5c 5c 29 5c 5c 5f 3e 22 29 0a 20 20 20 20 28 69 66 20 28 6c mment\\|test\\)\\_>").....(if.(l
2c440 6f 6f 6b 69 6e 67 2d 61 74 20 22 5b 3d 7e 30 2d 39 5c 5c 5b 5d 22 29 0a 20 20 20 20 20 20 20 20 ooking-at."[=~0-9\\[]").........
2c460 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 66 69 6e 64 2d 78 61 63 74 2d 65 78 74 65 6e (ledger-navigate-find-xact-exten
2c480 74 73 20 70 6f 73 29 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 66 ts.pos).......(ledger-navigate-f
2c4a0 69 6e 64 2d 64 69 72 65 63 74 69 76 65 2d 65 78 74 65 6e 74 73 20 70 6f 73 29 29 29 29 0a 0a 28 ind-directive-extents.pos))))..(
2c4c0 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 6e 65 78 74 2d 75 6e 63 6c 65 defun.ledger-navigate-next-uncle
2c4e0 61 72 65 64 20 28 29 0a 20 20 22 4d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 74 68 65 20 6e 65 78 ared.()..."Move.point.to.the.nex
2c500 74 20 75 6e 63 6c 65 61 72 65 64 20 74 72 61 6e 73 61 63 74 69 6f 6e 2e 22 0a 20 20 28 69 6e 74 t.uncleared.transaction."...(int
2c520 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 6c 65 eractive)...(when.(looking-at.le
2c540 64 67 65 72 2d 70 61 79 65 65 2d 75 6e 63 6c 65 61 72 65 64 2d 72 65 67 65 78 29 0a 20 20 20 20 dger-payee-uncleared-regex).....
2c560 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 29 29 0a 20 20 28 69 66 20 28 72 65 2d 73 65 61 72 63 68 (forward-line))...(if.(re-search
2c580 2d 66 6f 72 77 61 72 64 20 6c 65 64 67 65 72 2d 70 61 79 65 65 2d 75 6e 63 6c 65 61 72 65 64 2d -forward.ledger-payee-uncleared-
2c5a0 72 65 67 65 78 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 28 70 72 6f 67 6e 20 28 62 65 67 69 6e regex.nil.t).......(progn.(begin
2c5c0 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e ning-of-line)..............(poin
2c5e0 74 29 29 0a 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 20 6e 65 78 74 20 75 6e 63 t)).....(user-error."No.next.unc
2c600 6c 65 61 72 65 64 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 leared.transactions")))..(defun.
2c620 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 70 72 65 76 69 6f 75 73 2d 75 6e 63 6c 65 61 72 ledger-navigate-previous-unclear
2c640 65 64 20 28 29 0a 20 20 22 4d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 74 68 65 20 70 72 65 76 69 ed.()..."Move.point.to.the.previ
2c660 6f 75 73 20 75 6e 63 6c 65 61 72 65 64 20 74 72 61 6e 73 61 63 74 69 6f 6e 2e 22 0a 20 20 28 69 ous.uncleared.transaction."...(i
2c680 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e 20 28 65 71 75 61 6c 20 28 63 61 72 20 nteractive)...(when.(equal.(car.
2c6a0 28 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 2d 61 74 2d 70 6f 69 6e 74 29 29 20 27 61 63 63 74 (ledger-context-at-point)).'acct
2c6c0 2d 74 72 61 6e 73 61 63 74 69 6f 6e 29 0a 20 20 20 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 -transaction).....(ledger-naviga
2c6e0 74 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 78 61 63 74 29 29 0a 20 20 28 69 66 20 28 72 65 te-beginning-of-xact))...(if.(re
2c700 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 20 6c 65 64 67 65 72 2d 70 61 79 65 65 2d 75 6e -search-backward.ledger-payee-un
2c720 63 6c 65 61 72 65 64 2d 72 65 67 65 78 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 28 70 72 6f 67 cleared-regex.nil.t).......(prog
2c740 6e 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 n.(beginning-of-line)...........
2c760 20 20 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 20 ...(point)).....(user-error."No.
2c780 70 72 65 76 69 6f 75 73 20 75 6e 63 6c 65 61 72 65 64 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 22 previous.uncleared.transactions"
2c7a0 29 29 29 0a 0a 0a 28 70 72 6f 76 69 64 65 20 27 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 29 )))...(provide.'ledger-navigate)
2c7c0 0a 0a 3b 3b 3b 20 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2e 65 6c 20 65 6e 64 73 20 68 65 ..;;;.ledger-navigate.el.ends.he
2c7e0 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 re..............................
2c800 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 33 32 36 2e 32 30 30 32 2f 6c 65 64 67 65 72 ledger-mode-20240326.2002/ledger
2c820 2d 6f 63 63 75 72 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -occur.el.......................
2c840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2c860 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
2c880 30 30 31 35 33 36 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 30 36 36 00 20 30 00 00 00 0015361.00000000000.016066..0...
2c8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2c8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2c8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2c900 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
2c920 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
2c940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2c960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2c980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2c9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2c9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2c9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2ca00 3b 3b 3b 20 6c 65 64 67 65 72 2d 6f 63 63 75 72 2e 65 6c 20 2d 2d 2d 20 48 65 6c 70 65 72 20 63 ;;;.ledger-occur.el.---.Helper.c
2ca20 6f 64 65 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 74 68 65 20 22 6c 65 64 67 65 72 22 20 63 6f ode.for.use.with.the."ledger".co
2ca40 6d 6d 61 6e 64 2d 6c 69 6e 65 20 74 6f 6f 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e mmand-line.tool..-*-.lexical-bin
2ca60 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 ding:.t;.-*-..;;.Copyright.(C).2
2ca80 30 30 33 2d 32 30 31 36 20 4a 6f 68 6e 20 57 69 65 67 6c 65 79 20 28 6a 6f 68 6e 77 20 41 54 20 003-2016.John.Wiegley.(johnw.AT.
2caa0 67 6e 75 20 44 4f 54 20 6f 72 67 29 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 6e 6f gnu.DOT.org)..;;.This.file.is.no
2cac0 74 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 54 68 69 73 20 69 73 t.part.of.GNU.Emacs...;;.This.is
2cae0 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 .free.software;.you.can.redistri
2cb00 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 20 75 6e 64 65 72 0a 3b bute.it.and/or.modify.it.under.;
2cb20 3b 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 ;.the.terms.of.the.GNU.General.P
2cb40 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 ublic.License.as.published.by.th
2cb60 65 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 e.Free.;;.Software.Foundation;.e
2cb80 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 32 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 ither.version.2,.or.(at.your.opt
2cba0 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 0a 3b 3b 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b ion).any.later.;;.version..;;.;;
2cbc0 20 54 68 69 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 .This.is.distributed.in.the.hope
2cbe0 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 .that.it.will.be.useful,.but.WIT
2cc00 48 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 HOUT.;;.ANY.WARRANTY;.without.ev
2cc20 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 en.the.implied.warranty.of.MERCH
2cc40 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 0a 3b 3b 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 ANTABILITY.or.;;.FITNESS.FOR.A.P
2cc60 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 ARTICULAR.PURPOSE...See.the.GNU.
2cc80 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 66 6f 72 20 6d 6f General.Public.License.;;.for.mo
2cca0 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 re.details..;;.;;.You.should.hav
2ccc0 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e e.received.a.copy.of.the.GNU.Gen
2cce0 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 eral.Public.License.;;.along.wit
2cd00 68 20 47 4e 55 20 45 6d 61 63 73 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e h.GNU.Emacs;.see.the.file.COPYIN
2cd20 47 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 G...If.not,.write.to.the.;;.Free
2cd40 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 .Software.Foundation,.Inc.,.51.F
2cd60 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 ranklin.Street,.Fifth.Floor,.Bos
2cd80 74 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 20 55 53 41 2e 0a 0a 3b 3b 3b 20 ton,.;;.MA.02110-1301.USA...;;;.
2cda0 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 20 50 72 6f 76 69 64 65 20 62 75 66 66 65 72 20 6e 61 Commentary:.;;.Provide.buffer.na
2cdc0 72 72 6f 77 69 6e 67 20 74 6f 20 6c 65 64 67 65 72 20 6d 6f 64 65 2e 20 20 41 64 61 70 74 65 64 rrowing.to.ledger.mode...Adapted
2cde0 20 66 72 6f 6d 20 6f 72 69 67 69 6e 61 6c 20 6c 6f 63 63 75 72 0a 3b 3b 20 6d 6f 64 65 20 62 79 .from.original.loccur.;;.mode.by
2ce00 20 41 6c 65 78 65 79 20 56 65 72 65 74 65 6e 6e 69 6b 6f 76 20 3c 61 6c 65 78 65 79 20 64 6f 74 .Alexey.Veretennikov.<alexey.dot
2ce20 20 76 65 72 65 74 65 6e 6e 69 6b 6f 76 20 61 74 20 67 6d 61 69 6c 20 64 6f 74 0a 3b 3b 20 63 6f .veretennikov.at.gmail.dot.;;.co
2ce40 6d 3e 0a 3b 3b 0a 3b 3b 20 41 64 61 70 74 65 64 20 74 6f 20 6c 65 64 67 65 72 20 6d 6f 64 65 20 m>.;;.;;.Adapted.to.ledger.mode.
2ce60 62 79 20 43 72 61 69 67 20 45 61 72 6c 73 20 3c 65 6e 64 65 72 77 77 20 61 74 20 67 6d 61 69 6c by.Craig.Earls.<enderww.at.gmail
2ce80 20 64 6f 74 0a 3b 3b 20 63 6f 6d 3e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 .dot.;;.com>..;;;.Code:..(requir
2cea0 65 20 27 63 6c 2d 6c 69 62 29 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 6e 61 76 69 e.'cl-lib).(require.'ledger-navi
2cec0 67 61 74 65 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d 6f 76 gate)..(defconst.ledger-occur-ov
2cee0 65 72 6c 61 79 2d 70 72 6f 70 65 72 74 79 2d 6e 61 6d 65 20 27 6c 65 64 67 65 72 2d 6f 63 63 75 erlay-property-name.'ledger-occu
2cf00 72 2d 63 75 73 74 6f 6d 2d 62 75 66 66 65 72 2d 67 72 65 70 29 0a 0a 28 64 65 66 63 75 73 74 6f r-custom-buffer-grep)..(defcusto
2cf20 6d 20 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d 75 73 65 2d 66 61 63 65 2d 73 68 6f 77 6e 20 74 0a m.ledger-occur-use-face-shown.t.
2cf40 20 20 22 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 75 73 65 20 61 20 63 75 73 74 6f 6d 20 66 61 63 65 .."If.non-nil,.use.a.custom.face
2cf60 20 66 6f 72 20 78 61 63 74 73 20 73 68 6f 77 6e 20 69 6e 20 60 6c 65 64 67 65 72 2d 6f 63 63 75 .for.xacts.shown.in.`ledger-occu
2cf80 72 27 20 6d 6f 64 65 2e 0a 54 68 69 73 20 75 73 65 73 20 60 6c 65 64 67 65 72 2d 6f 63 63 75 72 r'.mode..This.uses.`ledger-occur
2cfa0 2d 78 61 63 74 2d 66 61 63 65 27 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 -xact-face'."...:type.'boolean..
2cfc0 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 29 0a 28 6d 61 6b 65 2d 76 61 72 69 61 62 6c 65 2d .:group.'ledger).(make-variable-
2cfe0 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 27 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d 75 73 65 2d 66 buffer-local.'ledger-occur-use-f
2d000 61 63 65 2d 73 68 6f 77 6e 29 0a 0a 0a 28 64 65 66 76 61 72 20 6c 65 64 67 65 72 2d 6f 63 63 75 ace-shown)...(defvar.ledger-occu
2d020 72 2d 68 69 73 74 6f 72 79 20 6e 69 6c 0a 20 20 22 48 69 73 74 6f 72 79 20 6f 66 20 70 72 65 76 r-history.nil..."History.of.prev
2d040 69 6f 75 73 6c 79 20 73 65 61 72 63 68 65 64 20 65 78 70 72 65 73 73 69 6f 6e 73 20 66 6f 72 20 iously.searched.expressions.for.
2d060 74 68 65 20 70 72 6f 6d 70 74 2e 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6c 65 64 the.prompt.")..(defvar-local.led
2d080 67 65 72 2d 6f 63 63 75 72 2d 63 75 72 72 65 6e 74 2d 72 65 67 65 78 20 6e 69 6c 0a 20 20 22 50 ger-occur-current-regex.nil..."P
2d0a0 61 74 74 65 72 6e 20 63 75 72 72 65 6e 74 6c 79 20 61 70 70 6c 69 65 64 20 74 6f 20 6e 61 72 72 attern.currently.applied.to.narr
2d0c0 6f 77 20 74 68 65 20 62 75 66 66 65 72 2e 22 29 0a 0a 28 64 65 66 76 61 72 20 6c 65 64 67 65 72 ow.the.buffer.")..(defvar.ledger
2d0e0 2d 6f 63 63 75 72 2d 6d 6f 64 65 2d 6d 61 70 0a 20 20 28 6c 65 74 20 28 28 6d 61 70 20 28 6d 61 -occur-mode-map...(let.((map.(ma
2d100 6b 65 2d 73 70 61 72 73 65 2d 6b 65 79 6d 61 70 29 29 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d ke-sparse-keymap))).....(define-
2d120 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 67 22 29 20 23 27 6c 65 64 67 65 72 key.map.(kbd."C-c.C-g").#'ledger
2d140 2d 6f 63 63 75 72 2d 72 65 66 72 65 73 68 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 -occur-refresh).....(define-key.
2d160 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 66 22 29 20 23 27 6c 65 64 67 65 72 2d 6f 63 63 map.(kbd."C-c.C-f").#'ledger-occ
2d180 75 72 2d 6d 6f 64 65 29 0a 20 20 20 20 6d 61 70 29 0a 20 20 22 4b 65 79 6d 61 70 20 75 73 65 64 ur-mode).....map)..."Keymap.used
2d1a0 20 62 79 20 60 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d 6d 6f 64 65 27 2e 22 29 0a 0a 28 64 65 66 .by.`ledger-occur-mode'.")..(def
2d1c0 69 6e 65 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 20 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d 6d 6f 64 65 ine-minor-mode.ledger-occur-mode
2d1e0 0a 20 20 22 41 20 6d 69 6e 6f 72 20 6d 6f 64 65 20 77 68 69 63 68 20 64 69 73 70 6c 61 79 20 6f ..."A.minor.mode.which.display.o
2d200 6e 6c 79 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 6d 61 74 63 68 69 6e 67 20 61 20 70 61 74 74 nly.transactions.matching.a.patt
2d220 65 72 6e 2e 0a 54 68 65 20 70 61 74 74 65 72 6e 20 69 73 20 67 69 76 65 6e 20 62 79 20 60 6c 65 ern..The.pattern.is.given.by.`le
2d240 64 67 65 72 2d 6f 63 63 75 72 2d 63 75 72 72 65 6e 74 2d 72 65 67 65 78 27 2e 22 0a 20 20 3a 69 dger-occur-current-regex'."...:i
2d260 6e 69 74 2d 76 61 6c 75 65 20 6e 69 6c 0a 20 20 3a 6c 69 67 68 74 65 72 20 28 3a 65 76 61 6c 20 nit-value.nil...:lighter.(:eval.
2d280 28 66 6f 72 6d 61 74 20 22 20 4c 65 64 67 65 72 2d 4e 61 72 72 6f 77 28 25 73 29 22 20 6c 65 64 (format.".Ledger-Narrow(%s)".led
2d2a0 67 65 72 2d 6f 63 63 75 72 2d 63 75 72 72 65 6e 74 2d 72 65 67 65 78 29 29 0a 20 20 3a 6b 65 79 ger-occur-current-regex))...:key
2d2c0 6d 61 70 20 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d 6d 6f 64 65 2d 6d 61 70 0a 20 20 28 69 66 20 map.ledger-occur-mode-map...(if.
2d2e0 28 61 6e 64 20 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d 63 75 72 72 65 6e 74 2d 72 65 67 65 78 20 (and.ledger-occur-current-regex.
2d300 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 28 70 72 6f 67 6e 20 ledger-occur-mode).......(progn.
2d320 28 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d 72 65 66 72 65 73 68 29 0a 20 20 20 20 20 20 20 20 20 (ledger-occur-refresh)..........
2d340 20 20 20 20 3b 3b 20 43 6c 65 61 72 20 6f 76 65 72 6c 61 79 73 20 61 66 74 65 72 20 72 65 76 65 ....;;.Clear.overlays.after.reve
2d360 72 74 2d 62 75 66 66 65 72 20 61 6e 64 20 73 69 6d 69 6c 61 72 20 63 6f 6d 6d 61 6e 64 73 2e 0a rt-buffer.and.similar.commands..
2d380 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 63 68 61 6e 67 65 2d 6d .............(add-hook.'change-m
2d3a0 61 6a 6f 72 2d 6d 6f 64 65 2d 68 6f 6f 6b 20 23 27 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d 72 65 ajor-mode-hook.#'ledger-occur-re
2d3c0 6d 6f 76 65 2d 6f 76 65 72 6c 61 79 73 20 6e 69 6c 20 74 29 29 0a 20 20 20 20 28 6c 65 64 67 65 move-overlays.nil.t)).....(ledge
2d3e0 72 2d 6f 63 63 75 72 2d 72 65 6d 6f 76 65 2d 6f 76 65 72 6c 61 79 73 29 0a 20 20 20 20 28 6d 65 r-occur-remove-overlays).....(me
2d400 73 73 61 67 65 20 22 53 68 6f 77 69 6e 67 20 61 6c 6c 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 22 ssage."Showing.all.transactions"
2d420 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d 72 65 66 72 65 73 68 )))..(defun.ledger-occur-refresh
2d440 20 28 29 0a 20 20 22 52 65 2d 61 70 70 6c 79 20 74 68 65 20 63 75 72 72 65 6e 74 20 6e 61 72 72 .()..."Re-apply.the.current.narr
2d460 6f 77 69 6e 67 20 65 78 70 72 65 73 73 69 6f 6e 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 owing.expression."...(interactiv
2d480 65 29 0a 20 20 28 6c 65 74 20 28 28 6d 61 74 63 68 65 73 20 28 6c 65 64 67 65 72 2d 6f 63 63 75 e)...(let.((matches.(ledger-occu
2d4a0 72 2d 63 6f 6d 70 72 65 73 73 2d 6d 61 74 63 68 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 r-compress-matches..............
2d4c0 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d 66 69 6e 64 2d 6d 61 74 63 68 65 73 20 .....(ledger-occur-find-matches.
2d4e0 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d 63 75 72 72 65 6e 74 2d 72 65 67 65 78 29 29 29 29 0a 20 ledger-occur-current-regex))))..
2d500 20 20 20 28 69 66 20 6d 61 74 63 68 65 73 0a 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6f ...(if.matches.........(ledger-o
2d520 63 63 75 72 2d 63 72 65 61 74 65 2d 6f 76 65 72 6c 61 79 73 20 6d 61 74 63 68 65 73 29 0a 20 20 ccur-create-overlays.matches)...
2d540 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 4e 6f 20 6d 61 74 63 68 65 73 20 66 6f 75 6e 64 20 66 ....(message."No.matches.found.f
2d560 6f 72 20 27 25 73 27 22 20 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d 63 75 72 72 65 6e 74 2d 72 65 or.'%s'".ledger-occur-current-re
2d580 67 65 78 29 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d 6d 6f 64 65 20 2d 31 gex).......(ledger-occur-mode.-1
2d5a0 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6f 63 63 75 72 20 28 72 65 67 65 78 ))))..(defun.ledger-occur.(regex
2d5c0 29 0a 20 20 22 53 68 6f 77 20 6f 6e 6c 79 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 69 6e 20 74 )..."Show.only.transactions.in.t
2d5e0 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 77 68 69 63 68 20 6d 61 74 63 68 20 52 45 he.current.buffer.which.match.RE
2d600 47 45 58 2e 0a 0a 54 68 69 73 20 63 6f 6d 6d 61 6e 64 20 68 69 64 65 73 20 61 6c 6c 20 78 61 63 GEX...This.command.hides.all.xac
2d620 74 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 65 78 63 65 70 74 20 74 t.in.the.current.buffer.except.t
2d640 68 6f 73 65 0a 6d 61 74 63 68 69 6e 67 20 52 45 47 45 58 2e 20 20 49 66 20 52 45 47 45 58 20 69 hose.matching.REGEX...If.REGEX.i
2d660 73 20 6e 69 6c 20 6f 72 20 65 6d 70 74 79 2c 20 74 75 72 6e 20 6f 66 66 20 61 6e 79 20 6e 61 72 s.nil.or.empty,.turn.off.any.nar
2d680 72 6f 77 69 6e 67 0a 63 75 72 72 65 6e 74 6c 79 20 61 63 74 69 76 65 2e 22 0a 20 20 28 69 6e 74 rowing.currently.active."...(int
2d6a0 65 72 61 63 74 69 76 65 0a 20 20 20 28 6c 69 73 74 20 28 72 65 61 64 2d 72 65 67 65 78 70 20 22 eractive....(list.(read-regexp."
2d6c0 52 65 67 65 78 70 22 20 28 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d 70 72 6f 6d 70 74 29 20 27 6c Regexp".(ledger-occur-prompt).'l
2d6e0 65 64 67 65 72 2d 6f 63 63 75 72 2d 68 69 73 74 6f 72 79 29 29 29 0a 20 20 28 69 66 20 28 6f 72 edger-occur-history)))...(if.(or
2d700 20 28 6e 75 6c 6c 20 72 65 67 65 78 29 0a 20 20 20 20 20 20 20 20 20 20 28 7a 65 72 6f 70 20 28 .(null.regex)...........(zerop.(
2d720 6c 65 6e 67 74 68 20 72 65 67 65 78 29 29 29 20 20 3b 20 65 6d 70 74 79 20 72 65 67 65 78 2c 20 length.regex)))..;.empty.regex,.
2d740 6f 72 20 61 6c 72 65 61 64 79 20 68 61 76 65 20 6e 61 72 72 6f 77 65 64 2c 20 63 6c 65 61 72 20 or.already.have.narrowed,.clear.
2d760 6e 61 72 72 6f 77 69 6e 67 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d 6d 6f narrowing.......(ledger-occur-mo
2d780 64 65 20 2d 31 29 0a 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d 63 75 de.-1).....(setq.ledger-occur-cu
2d7a0 72 72 65 6e 74 2d 72 65 67 65 78 20 72 65 67 65 78 29 0a 20 20 20 20 28 6c 65 64 67 65 72 2d 6f rrent-regex.regex).....(ledger-o
2d7c0 63 63 75 72 2d 6d 6f 64 65 20 31 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6f 63 ccur-mode.1)))..(defun.ledger-oc
2d7e0 63 75 72 2d 70 72 6f 6d 70 74 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 64 65 66 61 cur-prompt.()..."Return.the.defa
2d800 75 6c 74 20 76 61 6c 75 65 20 6f 66 20 74 68 65 20 70 72 6f 6d 70 74 2e 0a 0a 44 65 66 61 75 6c ult.value.of.the.prompt...Defaul
2d820 74 20 76 61 6c 75 65 20 66 6f 72 20 70 72 6f 6d 70 74 20 69 73 20 74 68 65 20 61 63 74 69 76 65 t.value.for.prompt.is.the.active
2d840 20 72 65 67 69 6f 6e 2c 20 69 66 20 69 74 20 69 73 20 6f 6e 65 20 6c 69 6e 65 0a 6c 6f 6e 67 2c .region,.if.it.is.one.line.long,
2d860 20 6f 74 68 65 72 77 69 73 65 20 69 74 20 69 73 20 74 68 65 20 77 6f 72 64 20 61 74 20 70 6f 69 .otherwise.it.is.the.word.at.poi
2d880 6e 74 2e 22 0a 20 20 28 69 66 20 28 75 73 65 2d 72 65 67 69 6f 6e 2d 70 29 0a 20 20 20 20 20 20 nt."...(if.(use-region-p).......
2d8a0 28 6c 65 74 20 28 28 70 6f 73 31 20 28 72 65 67 69 6f 6e 2d 62 65 67 69 6e 6e 69 6e 67 29 29 0a (let.((pos1.(region-beginning)).
2d8c0 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 73 32 20 28 72 65 67 69 6f 6e 2d 65 6e 64 29 29 29 ............(pos2.(region-end)))
2d8e0 0a 20 20 20 20 20 20 20 20 3b 3b 20 43 68 65 63 6b 20 69 66 20 74 68 65 20 73 74 61 72 74 20 61 .........;;.Check.if.the.start.a
2d900 6e 64 20 74 68 65 20 6f 66 20 61 6e 20 61 63 74 69 76 65 20 72 65 67 69 6f 6e 20 69 73 20 6f 6e nd.the.of.an.active.region.is.on
2d920 0a 20 20 20 20 20 20 20 20 3b 3b 20 74 68 65 20 73 61 6d 65 20 6c 69 6e 65 0a 20 20 20 20 20 20 .........;;.the.same.line.......
2d940 20 20 28 69 66 20 28 3d 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 20 70 6f 73 ..(if.(=.(line-number-at-pos.pos
2d960 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 1)................(line-number-a
2d980 74 2d 70 6f 73 20 70 6f 73 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 t-pos.pos2)).............(buffer
2d9a0 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 70 6f 73 31 20 70 6f -substring-no-properties.pos1.po
2d9c0 73 32 29 29 29 0a 20 20 20 20 28 63 75 72 72 65 6e 74 2d 77 6f 72 64 29 29 29 0a 0a 0a 28 64 65 s2))).....(current-word)))...(de
2d9e0 66 75 6e 20 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d 6d 61 6b 65 2d 76 69 73 69 62 6c 65 2d 6f 76 fun.ledger-occur-make-visible-ov
2da00 65 72 6c 61 79 20 28 62 65 67 20 65 6e 64 29 0a 20 20 22 4d 61 6b 65 20 61 6e 20 6f 76 65 72 6c erlay.(beg.end)..."Make.an.overl
2da20 61 79 20 66 6f 72 20 61 20 76 69 73 69 62 6c 65 20 70 6f 72 74 69 6f 6e 20 6f 66 20 74 68 65 20 ay.for.a.visible.portion.of.the.
2da40 62 75 66 66 65 72 2c 20 66 72 6f 6d 20 42 45 47 20 74 6f 20 45 4e 44 2e 22 0a 20 20 28 6c 65 74 buffer,.from.BEG.to.END."...(let
2da60 20 28 28 6f 76 6c 20 28 6d 61 6b 65 2d 6f 76 65 72 6c 61 79 20 62 65 67 20 65 6e 64 29 29 29 0a .((ovl.(make-overlay.beg.end))).
2da80 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 6c 20 6c 65 64 67 65 72 2d 6f 63 63 75 ....(overlay-put.ovl.ledger-occu
2daa0 72 2d 6f 76 65 72 6c 61 79 2d 70 72 6f 70 65 72 74 79 2d 6e 61 6d 65 20 74 29 0a 20 20 20 20 28 r-overlay-property-name.t).....(
2dac0 77 68 65 6e 20 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d 75 73 65 2d 66 61 63 65 2d 73 68 6f 77 6e when.ledger-occur-use-face-shown
2dae0 0a 20 20 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 6c 20 27 66 6f 6e 74 2d 6c 6f .......(overlay-put.ovl.'font-lo
2db00 63 6b 2d 66 61 63 65 20 27 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d 78 61 63 74 2d 66 61 63 65 29 ck-face.'ledger-occur-xact-face)
2db20 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d 6d 61 6b 65 2d 69 6e )))..(defun.ledger-occur-make-in
2db40 76 69 73 69 62 6c 65 2d 6f 76 65 72 6c 61 79 20 28 62 65 67 20 65 6e 64 29 0a 20 20 22 4d 61 6b visible-overlay.(beg.end)..."Mak
2db60 65 20 61 6e 20 6f 76 65 72 6c 61 79 20 66 6f 72 20 61 6e 20 69 6e 76 69 73 69 62 6c 65 20 70 6f e.an.overlay.for.an.invisible.po
2db80 72 74 69 6f 6e 20 6f 66 20 74 68 65 20 62 75 66 66 65 72 2c 20 66 72 6f 6d 20 42 45 47 20 74 6f rtion.of.the.buffer,.from.BEG.to
2dba0 20 45 4e 44 2e 22 0a 20 20 28 6c 65 74 20 28 28 6f 76 6c 20 28 6d 61 6b 65 2d 6f 76 65 72 6c 61 .END."...(let.((ovl.(make-overla
2dbc0 79 20 62 65 67 20 65 6e 64 29 29 29 0a 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 y.beg.end))).....(overlay-put.ov
2dbe0 6c 20 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d 6f 76 65 72 6c 61 79 2d 70 72 6f 70 65 72 74 79 2d l.ledger-occur-overlay-property-
2dc00 6e 61 6d 65 20 74 29 0a 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 75 74 20 6f 76 6c 20 27 69 6e name.t).....(overlay-put.ovl.'in
2dc20 76 69 73 69 62 6c 65 20 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6f 63 63 75 visible.t)))..(defun.ledger-occu
2dc40 72 2d 63 72 65 61 74 65 2d 6f 76 65 72 6c 61 79 73 20 28 6f 76 6c 2d 62 6f 75 6e 64 73 29 0a 20 r-create-overlays.(ovl-bounds)..
2dc60 20 22 43 72 65 61 74 65 20 74 68 65 20 6f 76 65 72 6c 61 79 73 20 66 6f 72 20 74 68 65 20 76 69 ."Create.the.overlays.for.the.vi
2dc80 73 69 62 6c 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 2e 0a 41 72 67 75 6d 65 6e 74 20 4f 56 4c sible.transactions..Argument.OVL
2dca0 2d 42 4f 55 4e 44 53 20 63 6f 6e 74 61 69 6e 73 20 62 6f 75 6e 64 73 20 66 6f 72 20 74 68 65 20 -BOUNDS.contains.bounds.for.the.
2dcc0 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 74 6f 20 62 65 20 6c 65 66 74 20 76 69 73 69 62 6c 65 2e transactions.to.be.left.visible.
2dce0 22 0a 20 20 28 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d 72 65 6d 6f 76 65 2d 6f 76 65 72 6c 61 79 "...(ledger-occur-remove-overlay
2dd00 73 29 0a 20 20 28 6c 65 74 20 28 28 65 6e 64 2d 6f 66 2d 6c 61 73 74 2d 76 69 73 69 62 6c 65 20 s)...(let.((end-of-last-visible.
2dd20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 29 0a 20 20 20 20 28 70 63 61 73 65 2d 64 6f 6c 69 73 74 20 (point-min))).....(pcase-dolist.
2dd40 28 60 28 2c 62 65 67 20 2c 65 6e 64 29 20 6f 76 6c 2d 62 6f 75 6e 64 73 29 0a 20 20 20 20 20 20 (`(,beg.,end).ovl-bounds).......
2dd60 3b 3b 20 6b 65 65 70 20 6e 65 77 6c 69 6e 65 20 62 65 66 6f 72 65 20 78 61 63 74 20 76 69 73 69 ;;.keep.newline.before.xact.visi
2dd80 62 6c 65 2c 20 62 75 74 20 64 6f 20 6e 6f 74 20 68 69 67 68 6c 69 67 68 74 20 69 74 20 77 69 74 ble,.but.do.not.highlight.it.wit
2dda0 68 0a 20 20 20 20 20 20 3b 3b 20 60 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d 78 61 63 74 2d 66 61 h.......;;.`ledger-occur-xact-fa
2ddc0 63 65 27 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d 6d 61 6b 65 2d 69 6e 76 ce'.......(ledger-occur-make-inv
2dde0 69 73 69 62 6c 65 2d 6f 76 65 72 6c 61 79 20 65 6e 64 2d 6f 66 2d 6c 61 73 74 2d 76 69 73 69 62 isible-overlay.end-of-last-visib
2de00 6c 65 20 28 31 2d 20 62 65 67 29 29 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6f 63 63 75 72 le.(1-.beg)).......(ledger-occur
2de20 2d 6d 61 6b 65 2d 76 69 73 69 62 6c 65 2d 6f 76 65 72 6c 61 79 20 62 65 67 20 65 6e 64 29 0a 20 -make-visible-overlay.beg.end)..
2de40 20 20 20 20 20 3b 3b 20 6b 65 65 70 20 6e 65 77 6c 69 6e 65 20 61 66 74 65 72 20 78 61 63 74 20 .....;;.keep.newline.after.xact.
2de60 76 69 73 69 62 6c 65 0a 20 20 20 20 20 20 28 73 65 74 71 20 65 6e 64 2d 6f 66 2d 6c 61 73 74 2d visible.......(setq.end-of-last-
2de80 76 69 73 69 62 6c 65 20 28 31 2b 20 65 6e 64 29 29 29 0a 20 20 20 20 28 6c 65 64 67 65 72 2d 6f visible.(1+.end))).....(ledger-o
2dea0 63 63 75 72 2d 6d 61 6b 65 2d 69 6e 76 69 73 69 62 6c 65 2d 6f 76 65 72 6c 61 79 20 65 6e 64 2d ccur-make-invisible-overlay.end-
2dec0 6f 66 2d 6c 61 73 74 2d 76 69 73 69 62 6c 65 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 0a 0a of-last-visible.(point-max))))..
2dee0 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d 72 65 6d 6f 76 65 2d 6f 76 65 72 6c (defun.ledger-occur-remove-overl
2df00 61 79 73 20 28 29 0a 20 20 22 52 65 6d 6f 76 65 20 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e ays.()..."Remove.the.transaction
2df20 20 68 69 64 69 6e 67 20 6f 76 65 72 6c 61 79 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 .hiding.overlays."...(interactiv
2df40 65 29 0a 20 20 28 72 65 6d 6f 76 65 2d 6f 76 65 72 6c 61 79 73 20 28 70 6f 69 6e 74 2d 6d 69 6e e)...(remove-overlays.(point-min
2df60 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 2d 6d 61 78 29 )....................(point-max)
2df80 20 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d 6f 76 65 72 6c 61 79 2d 70 72 6f 70 65 72 74 79 2d 6e .ledger-occur-overlay-property-n
2dfa0 61 6d 65 20 74 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d 66 69 6e ame.t))..(defun.ledger-occur-fin
2dfc0 64 2d 6d 61 74 63 68 65 73 20 28 72 65 67 65 78 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 d-matches.(regex)..."Return.a.li
2dfe0 73 74 20 6f 66 20 62 6f 75 6e 64 73 20 66 6f 72 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 6d 61 st.of.bounds.for.transactions.ma
2e000 74 63 68 69 6e 67 20 52 45 47 45 58 2e 22 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e tching.REGEX."...(save-excursion
2e020 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 .....(goto-char.(point-min))....
2e040 20 3b 3b 20 53 65 74 20 69 6e 69 74 69 61 6c 20 76 61 6c 75 65 73 20 66 6f 72 20 76 61 72 69 61 .;;.Set.initial.values.for.varia
2e060 62 6c 65 73 0a 20 20 20 20 28 6c 65 74 20 28 6c 69 6e 65 73 29 0a 20 20 20 20 20 20 3b 3b 20 53 bles.....(let.(lines).......;;.S
2e080 65 61 72 63 68 20 6c 6f 6f 70 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 6e 6f 74 20 28 65 6f earch.loop.......(while.(not.(eo
2e0a0 62 70 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 69 66 20 73 6f 6d 65 74 68 69 6e 67 20 66 6f 75 bp)).........;;.if.something.fou
2e0c0 6e 64 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 65 6e 64 70 6f 69 6e 74 20 nd.........(when-let.((endpoint.
2e0e0 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 72 65 67 65 78 20 6e 69 6c 20 27 65 6e (re-search-forward.regex.nil.'en
2e100 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 6f 75 6e 64 73 20 28 d))....................(bounds.(
2e120 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 66 69 6e 64 2d 65 6c 65 6d 65 6e 74 2d 65 78 74 ledger-navigate-find-element-ext
2e140 65 6e 74 73 20 65 6e 64 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 ents.endpoint)))...........(push
2e160 20 62 6f 75 6e 64 73 20 6c 69 6e 65 73 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6d 6f 76 65 .bounds.lines)...........;;.move
2e180 20 74 6f 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 78 61 63 74 2c 20 6e 6f 20 6e 65 65 64 .to.the.end.of.the.xact,.no.need
2e1a0 20 74 6f 20 73 65 61 72 63 68 20 69 6e 73 69 64 65 20 69 74 20 6d 6f 72 65 0a 20 20 20 20 20 20 .to.search.inside.it.more.......
2e1c0 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 63 61 64 72 20 62 6f 75 6e 64 73 29 29 29 29 0a ....(goto-char.(cadr.bounds)))).
2e1e0 20 20 20 20 20 20 28 6e 72 65 76 65 72 73 65 20 6c 69 6e 65 73 29 29 29 29 0a 0a 28 64 65 66 75 ......(nreverse.lines))))..(defu
2e200 6e 20 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d 63 6f 6d 70 72 65 73 73 2d 6d 61 74 63 68 65 73 20 n.ledger-occur-compress-matches.
2e220 28 62 75 66 66 65 72 2d 6d 61 74 63 68 65 73 29 0a 20 20 22 49 64 65 6e 74 69 66 79 20 73 65 71 (buffer-matches)..."Identify.seq
2e240 75 65 6e 74 69 61 6c 20 78 61 63 74 73 20 74 6f 20 72 65 64 75 63 65 20 6e 75 6d 62 65 72 20 6f uential.xacts.to.reduce.number.o
2e260 66 20 6f 76 65 72 6c 61 79 73 20 72 65 71 75 69 72 65 64 2e 0a 0a 42 55 46 46 45 52 2d 4d 41 54 f.overlays.required...BUFFER-MAT
2e280 43 48 45 53 20 73 68 6f 75 6c 64 20 62 65 20 61 20 6c 69 73 74 20 6f 66 20 28 42 45 47 20 45 4e CHES.should.be.a.list.of.(BEG.EN
2e2a0 44 29 20 6c 69 73 74 73 2e 22 0a 20 20 28 69 66 20 62 75 66 66 65 72 2d 6d 61 74 63 68 65 73 0a D).lists."...(if.buffer-matches.
2e2c0 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 6f 69 6e 74 73 20 28 6c 69 73 74 29 29 0a 20 20 20 20 ......(let.((points.(list)).....
2e2e0 20 20 20 20 20 20 20 20 28 63 75 72 72 65 6e 74 2d 62 65 67 69 6e 6e 69 6e 67 20 28 63 61 61 72 ........(current-beginning.(caar
2e300 20 62 75 66 66 65 72 2d 6d 61 74 63 68 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 .buffer-matches)).............(c
2e320 75 72 72 65 6e 74 2d 65 6e 64 20 28 63 6c 2d 63 61 64 61 72 20 62 75 66 66 65 72 2d 6d 61 74 63 urrent-end.(cl-cadar.buffer-matc
2e340 68 65 73 29 29 29 0a 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 6d 61 74 63 68 20 28 63 hes))).........(dolist.(match.(c
2e360 64 72 20 62 75 66 66 65 72 2d 6d 61 74 63 68 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 dr.buffer-matches))...........(i
2e380 66 20 28 3c 20 28 2d 20 28 63 61 72 20 6d 61 74 63 68 29 20 63 75 72 72 65 6e 74 2d 65 6e 64 29 f.(<.(-.(car.match).current-end)
2e3a0 20 32 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 75 72 72 65 6e 74 2d .2)...............(setq.current-
2e3c0 65 6e 64 20 28 63 61 64 72 20 6d 61 74 63 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 end.(cadr.match)).............(p
2e3e0 75 73 68 20 28 6c 69 73 74 20 63 75 72 72 65 6e 74 2d 62 65 67 69 6e 6e 69 6e 67 20 63 75 72 72 ush.(list.current-beginning.curr
2e400 65 6e 74 2d 65 6e 64 29 20 70 6f 69 6e 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 ent-end).points).............(se
2e420 74 71 20 63 75 72 72 65 6e 74 2d 62 65 67 69 6e 6e 69 6e 67 20 28 63 61 72 20 6d 61 74 63 68 29 tq.current-beginning.(car.match)
2e440 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 75 72 72 65 6e 74 2d 65 6e 64 20 ).............(setq.current-end.
2e460 28 63 61 64 72 20 6d 61 74 63 68 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 6e 72 65 76 65 72 73 (cadr.match)))).........(nrevers
2e480 65 20 28 70 75 73 68 20 28 6c 69 73 74 20 63 75 72 72 65 6e 74 2d 62 65 67 69 6e 6e 69 6e 67 20 e.(push.(list.current-beginning.
2e4a0 63 75 72 72 65 6e 74 2d 65 6e 64 29 20 70 6f 69 6e 74 73 29 29 29 29 29 0a 0a 28 70 72 6f 76 69 current-end).points)))))..(provi
2e4c0 64 65 20 27 6c 65 64 67 65 72 2d 6f 63 63 75 72 29 0a 0a 3b 3b 3b 20 6c 65 64 67 65 72 2d 6f 63 de.'ledger-occur)..;;;.ledger-oc
2e4e0 63 75 72 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 cur.el.ends.here................
2e500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e600 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 33 32 36 2e 32 30 30 32 2f 6c 65 64 67 65 72 ledger-mode-20240326.2002/ledger
2e620 2d 70 6f 73 74 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -post.el........................
2e640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e660 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
2e680 30 30 31 37 32 36 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 37 34 31 00 20 30 00 00 00 0017261.00000000000.015741..0...
2e6a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e6e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e700 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
2e720 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
2e740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2e800 3b 3b 3b 20 6c 65 64 67 65 72 2d 70 6f 73 74 2e 65 6c 20 2d 2d 2d 20 48 65 6c 70 65 72 20 63 6f ;;;.ledger-post.el.---.Helper.co
2e820 64 65 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 74 68 65 20 22 6c 65 64 67 65 72 22 20 63 6f 6d de.for.use.with.the."ledger".com
2e840 6d 61 6e 64 2d 6c 69 6e 65 20 74 6f 6f 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 mand-line.tool..-*-.lexical-bind
2e860 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 ing:.t;.-*-..;;.Copyright.(C).20
2e880 30 33 2d 32 30 31 36 20 4a 6f 68 6e 20 57 69 65 67 6c 65 79 20 28 6a 6f 68 6e 77 20 41 54 20 67 03-2016.John.Wiegley.(johnw.AT.g
2e8a0 6e 75 20 44 4f 54 20 6f 72 67 29 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 6e 6f 74 nu.DOT.org)..;;.This.file.is.not
2e8c0 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 54 68 69 73 20 69 73 20 .part.of.GNU.Emacs...;;.This.is.
2e8e0 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 free.software;.you.can.redistrib
2e900 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 20 75 6e 64 65 72 0a 3b 3b ute.it.and/or.modify.it.under.;;
2e920 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 .the.terms.of.the.GNU.General.Pu
2e940 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 blic.License.as.published.by.the
2e960 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 .Free.;;.Software.Foundation;.ei
2e980 74 68 65 72 20 76 65 72 73 69 6f 6e 20 32 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 ther.version.2,.or.(at.your.opti
2e9a0 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 0a 3b 3b 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 on).any.later.;;.version..;;.;;.
2e9c0 54 68 69 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 This.is.distributed.in.the.hope.
2e9e0 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 that.it.will.be.useful,.but.WITH
2ea00 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 OUT.;;.ANY.WARRANTY;.without.eve
2ea20 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 n.the.implied.warranty.of.MERCHA
2ea40 4e 54 41 42 49 4c 49 54 59 20 6f 72 0a 3b 3b 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 NTABILITY.or.;;.FITNESS.FOR.A.PA
2ea60 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 RTICULAR.PURPOSE...See.the.GNU.G
2ea80 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 66 6f 72 20 6d 6f 72 eneral.Public.License.;;.for.mor
2eaa0 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 e.details..;;.;;.You.should.have
2eac0 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 .received.a.copy.of.the.GNU.Gene
2eae0 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 ral.Public.License.;;.along.with
2eb00 20 47 4e 55 20 45 6d 61 63 73 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 .GNU.Emacs;.see.the.file.COPYING
2eb20 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 20 ...If.not,.write.to.the.;;.Free.
2eb40 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 Software.Foundation,.Inc.,.51.Fr
2eb60 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 anklin.Street,.Fifth.Floor,.Bost
2eb80 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 20 55 53 41 2e 0a 0a 0a 3b 3b 3b 20 on,.;;.MA.02110-1301.USA....;;;.
2eba0 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 20 55 74 69 6c 69 74 79 20 66 75 6e 63 74 69 6f 6e 73 Commentary:.;;.Utility.functions
2ebc0 20 66 6f 72 20 64 65 61 6c 69 6e 67 20 77 69 74 68 20 70 6f 73 74 69 6e 67 73 2e 0a 0a 28 72 65 .for.dealing.with.postings...(re
2ebe0 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 72 65 67 65 78 29 0a 28 72 65 71 75 69 72 65 20 27 6c quire.'ledger-regex).(require.'l
2ec00 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 29 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 edger-navigate)..(declare-functi
2ec20 6f 6e 20 63 61 6c 63 2d 72 65 6e 75 6d 62 65 72 2d 73 74 61 63 6b 20 22 63 61 6c 63 22 20 28 29 on.calc-renumber-stack."calc".()
2ec40 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6c 65 64 67 65 72 2d 73 74 72 69 6e ).(declare-function.ledger-strin
2ec60 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 22 6c 65 64 67 65 72 2d 63 6f 6d 6d 6f 64 69 74 69 65 73 22 g-to-number."ledger-commodities"
2ec80 20 28 73 74 72 20 26 6f 70 74 69 6f 6e 61 6c 20 64 65 63 69 6d 61 6c 2d 63 6f 6d 6d 61 29 29 0a .(str.&optional.decimal-comma)).
2eca0 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 64 65 66 67 72 6f 75 70 20 6c 65 64 67 65 72 2d 70 6f 73 .;;;.Code:..(defgroup.ledger-pos
2ecc0 74 20 6e 69 6c 0a 20 20 22 4f 70 74 69 6f 6e 73 20 66 6f 72 20 63 6f 6e 74 72 6f 6c 6c 69 6e 67 t.nil..."Options.for.controlling
2ece0 20 68 6f 77 20 4c 65 64 67 65 72 2d 6d 6f 64 65 20 64 65 61 6c 73 20 77 69 74 68 20 70 6f 73 74 .how.Ledger-mode.deals.with.post
2ed00 69 6e 67 73 20 61 6e 64 20 63 6f 6d 70 6c 65 74 69 6f 6e 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c ings.and.completion"...:group.'l
2ed20 65 64 67 65 72 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 edger)..(defcustom.ledger-post-a
2ed40 63 63 6f 75 6e 74 2d 61 6c 69 67 6e 6d 65 6e 74 2d 63 6f 6c 75 6d 6e 20 34 0a 20 20 22 54 68 65 ccount-alignment-column.4..."The
2ed60 20 63 6f 6c 75 6d 6e 20 4c 65 64 67 65 72 2d 6d 6f 64 65 20 61 74 74 65 6d 70 74 73 20 74 6f 20 .column.Ledger-mode.attempts.to.
2ed80 61 6c 69 67 6e 20 61 63 63 6f 75 6e 74 73 20 74 6f 2e 22 0a 20 20 3a 74 79 70 65 20 27 69 6e 74 align.accounts.to."...:type.'int
2eda0 65 67 65 72 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 70 6f 73 74 0a 20 20 3a 73 61 eger...:group.'ledger-post...:sa
2edc0 66 65 20 27 69 6e 74 65 67 65 72 70 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 fe.'integerp)..(defcustom.ledger
2ede0 2d 70 6f 73 74 2d 61 6d 6f 75 6e 74 2d 61 6c 69 67 6e 6d 65 6e 74 2d 63 6f 6c 75 6d 6e 20 35 32 -post-amount-alignment-column.52
2ee00 0a 20 20 22 54 68 65 20 63 6f 6c 75 6d 6e 20 4c 65 64 67 65 72 2d 6d 6f 64 65 20 61 74 74 65 6d ..."The.column.Ledger-mode.attem
2ee20 70 74 73 20 74 6f 20 61 6c 69 67 6e 20 61 6d 6f 75 6e 74 73 20 74 6f 2e 22 0a 20 20 3a 74 79 70 pts.to.align.amounts.to."...:typ
2ee40 65 20 27 69 6e 74 65 67 65 72 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 70 6f 73 74 e.'integer...:group.'ledger-post
2ee60 0a 20 20 3a 73 61 66 65 20 27 69 6e 74 65 67 65 72 70 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 ...:safe.'integerp)..(defcustom.
2ee80 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 6d 6f 75 6e 74 2d 61 6c 69 67 6e 6d 65 6e 74 2d 61 74 20 ledger-post-amount-alignment-at.
2eea0 3a 65 6e 64 0a 20 20 22 50 6f 73 69 74 69 6f 6e 20 61 74 20 77 68 69 63 68 20 74 68 65 20 61 6d :end..."Position.at.which.the.am
2eec0 6f 75 6e 74 20 69 73 20 61 6c 69 67 6e 65 64 2e 0a 0a 43 61 6e 20 62 65 20 3a 65 6e 64 20 74 6f ount.is.aligned...Can.be.:end.to
2eee0 20 61 6c 69 67 6e 20 6f 6e 20 74 68 65 20 6c 61 73 74 20 6e 75 6d 62 65 72 20 6f 66 20 74 68 65 .align.on.the.last.number.of.the
2ef00 20 61 6d 6f 75 6e 74 20 28 63 61 6e 20 62 65 0a 66 6f 6c 6c 6f 77 65 64 20 62 79 20 75 6e 61 6c .amount.(can.be.followed.by.unal
2ef20 69 67 6e 65 64 20 63 6f 6d 6d 6f 64 69 74 79 29 20 6f 72 20 3a 64 65 63 69 6d 61 6c 20 74 6f 20 igned.commodity).or.:decimal.to.
2ef40 61 6c 69 67 6e 20 61 74 20 74 68 65 0a 64 65 63 69 6d 61 6c 20 73 65 70 61 72 61 74 6f 72 2e 22 align.at.the.decimal.separator."
2ef60 0a 20 20 3a 74 79 70 65 20 27 28 72 61 64 69 6f 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 61 6c ...:type.'(radio.(const.:tag."al
2ef80 69 67 6e 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20 61 6d 6f 75 6e 74 22 20 3a 65 6e 64 29 0a ign.at.the.end.of.amount".:end).
2efa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 61 6c 69 ................(const.:tag."ali
2efc0 67 6e 20 61 74 20 74 68 65 20 64 65 63 69 6d 61 6c 20 73 65 70 61 72 61 74 6f 72 22 20 3a 64 65 gn.at.the.decimal.separator".:de
2efe0 63 69 6d 61 6c 29 29 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 70 6f 73 74 0a 20 20 cimal))...:group.'ledger-post...
2f000 3a 73 61 66 65 20 28 6c 61 6d 62 64 61 20 28 78 29 20 28 6d 65 6d 71 20 78 20 27 28 3a 65 6e 64 :safe.(lambda.(x).(memq.x.'(:end
2f020 20 3a 64 65 63 69 6d 61 6c 29 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 .:decimal))))..(defcustom.ledger
2f040 2d 70 6f 73 74 2d 61 75 74 6f 2d 61 6c 69 67 6e 20 74 0a 20 20 22 57 68 65 6e 20 6e 6f 6e 2d 6e -post-auto-align.t..."When.non-n
2f060 69 6c 2c 20 72 65 61 6c 69 67 6e 20 70 6f 73 74 20 61 6d 6f 75 6e 74 73 20 77 68 65 6e 20 69 6e il,.realign.post.amounts.when.in
2f080 64 65 6e 74 69 6e 67 20 6f 72 20 63 6f 6d 70 6c 65 74 69 6e 67 2e 22 0a 20 20 3a 74 79 70 65 20 denting.or.completing."...:type.
2f0a0 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 70 6f 73 74 0a 20 'boolean...:group.'ledger-post..
2f0c0 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 6c 65 64 67 65 72 2d 6d 6f 64 65 20 .:package-version.'(ledger-mode.
2f0e0 2e 20 22 34 2e 30 2e 30 22 29 0a 20 20 3a 73 61 66 65 20 27 62 6f 6f 6c 65 61 6e 70 29 0a 0a 28 .."4.0.0")...:safe.'booleanp)..(
2f100 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6e 65 78 74 2d 61 6d 6f 75 6e 74 20 28 26 6f 70 74 69 6f defun.ledger-next-amount.(&optio
2f120 6e 61 6c 20 65 6e 64 29 0a 20 20 22 4d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 74 68 65 20 6e 65 nal.end)..."Move.point.to.the.ne
2f140 78 74 20 61 6d 6f 75 6e 74 2c 20 61 73 20 6c 6f 6e 67 20 61 73 20 69 74 20 69 73 20 6e 6f 74 20 xt.amount,.as.long.as.it.is.not.
2f160 70 61 73 74 20 45 4e 44 2e 0a 52 65 74 75 72 6e 20 74 68 65 20 77 69 64 74 68 20 6f 66 20 74 68 past.END..Return.the.width.of.th
2f180 65 20 61 6d 6f 75 6e 74 20 66 69 65 6c 64 20 61 73 20 61 6e 20 69 6e 74 65 67 65 72 20 61 6e 64 e.amount.field.as.an.integer.and
2f1a0 20 6c 65 61 76 65 0a 70 6f 69 6e 74 20 61 74 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 .leave.point.at.beginning.of.the
2f1c0 20 63 6f 6d 6d 6f 64 69 74 79 2e 22 0a 20 20 3b 3b 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c .commodity."...;;(beginning-of-l
2f1e0 69 6e 65 29 0a 20 20 28 6c 65 74 20 28 28 63 61 73 65 2d 66 6f 6c 64 2d 73 65 61 72 63 68 20 6e ine)...(let.((case-fold-search.n
2f200 69 6c 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 il)).....(when.(re-search-forwar
2f220 64 20 6c 65 64 67 65 72 2d 61 6d 6f 75 6e 74 2d 72 65 67 65 78 20 65 6e 64 20 74 29 0a 20 20 20 d.ledger-amount-regex.end.t)....
2f240 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 ...(goto-char.(match-beginning.0
2f260 29 29 0a 20 20 20 20 20 20 28 73 6b 69 70 2d 73 79 6e 74 61 78 2d 66 6f 72 77 61 72 64 20 22 20 )).......(skip-syntax-forward.".
2f280 22 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 28 28 65 71 20 6c 65 64 67 65 ").......(cond........((eq.ledge
2f2a0 72 2d 70 6f 73 74 2d 61 6d 6f 75 6e 74 2d 61 6c 69 67 6e 6d 65 6e 74 2d 61 74 20 3a 65 6e 64 29 r-post-amount-alignment-at.:end)
2f2c0 0a 20 20 20 20 20 20 20 20 28 2d 20 28 6f 72 20 28 6d 61 74 63 68 2d 65 6e 64 20 34 29 20 28 6d .........(-.(or.(match-end.4).(m
2f2e0 61 74 63 68 2d 65 6e 64 20 33 29 29 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 28 28 atch-end.3)).(point)))........((
2f300 65 71 20 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 6d 6f 75 6e 74 2d 61 6c 69 67 6e 6d 65 6e 74 2d eq.ledger-post-amount-alignment-
2f320 61 74 20 3a 64 65 63 69 6d 61 6c 29 0a 20 20 20 20 20 20 20 20 28 2d 20 28 6d 61 74 63 68 2d 65 at.:decimal).........(-.(match-e
2f340 6e 64 20 33 29 20 28 70 6f 69 6e 74 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 nd.3).(point)))))))..(defun.ledg
2f360 65 72 2d 6e 65 78 74 2d 61 63 63 6f 75 6e 74 20 28 26 6f 70 74 69 6f 6e 61 6c 20 65 6e 64 29 0a er-next-account.(&optional.end).
2f380 20 20 22 4d 6f 76 65 20 74 6f 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 .."Move.to.the.beginning.of.the.
2f3a0 70 6f 73 74 69 6e 67 2c 20 6f 72 20 73 74 61 74 75 73 20 6d 61 72 6b 65 72 2e 0a 52 65 74 75 72 posting,.or.status.marker..Retur
2f3c0 6e 20 74 68 65 20 63 6f 6c 75 6d 6e 20 6f 66 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 n.the.column.of.the.beginning.of
2f3e0 20 74 68 65 20 61 63 63 6f 75 6e 74 20 61 6e 64 20 6c 65 61 76 65 20 70 6f 69 6e 74 0a 61 74 20 .the.account.and.leave.point.at.
2f400 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 61 63 63 6f 75 6e 74 2e 0a 4c 6f 6f 6b 73 20 6f 6e 6c 79 beginning.of.account..Looks.only
2f420 20 61 73 20 66 61 72 20 61 73 20 45 4e 44 2c 20 69 66 20 73 75 70 70 6c 69 65 64 2c 20 6f 74 68 .as.far.as.END,.if.supplied,.oth
2f440 65 72 77 69 73 65 20 60 70 6f 69 6e 74 2d 6d 61 78 27 2e 22 0a 20 20 28 6c 65 74 20 28 28 65 6e erwise.`point-max'."...(let.((en
2f460 64 20 28 6f 72 20 65 6e 64 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 0a 20 20 20 20 28 69 66 d.(or.end.(point-max)))).....(if
2f480 20 28 3e 20 65 6e 64 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 .(>.end.(point)).........(when.(
2f4a0 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 re-search-forward.ledger-account
2f4c0 2d 61 6e 79 2d 73 74 61 74 75 73 2d 72 65 67 65 78 20 28 31 2b 20 65 6e 64 29 20 74 29 0a 20 20 -any-status-regex.(1+.end).t)...
2f4e0 20 20 20 20 20 20 20 20 3b 3b 20 74 68 65 20 31 2b 20 69 73 20 74 6f 20 6d 61 6b 65 20 73 75 72 ........;;.the.1+.is.to.make.sur
2f500 65 20 77 65 20 63 61 6e 20 63 61 74 63 68 20 74 68 65 20 6e 65 77 6c 69 6e 65 0a 20 20 20 20 20 e.we.can.catch.the.newline......
2f520 20 20 20 20 20 28 69 66 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 31 29 0a 20 20 20 .....(if.(match-beginning.1)....
2f540 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 2d 62 65 67 ...........(goto-char.(match-beg
2f560 69 6e 6e 69 6e 67 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 inning.1)).............(goto-cha
2f580 72 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 32 29 29 29 0a 20 20 20 20 20 20 20 20 r.(match-beginning.2))).........
2f5a0 20 20 28 63 75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c ..(current-column)))))..(defun.l
2f5c0 65 64 67 65 72 2d 70 6f 73 74 2d 61 6c 69 67 6e 2d 78 61 63 74 20 28 70 6f 73 29 0a 20 20 22 41 edger-post-align-xact.(pos)..."A
2f5e0 6c 69 67 6e 20 61 6c 6c 20 74 68 65 20 70 6f 73 74 69 6e 67 20 69 6e 20 74 68 65 20 78 61 63 74 lign.all.the.posting.in.the.xact
2f600 20 61 74 20 50 4f 53 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 64 22 29 0a 20 20 .at.POS."...(interactive."d")...
2f620 28 6c 65 74 20 28 28 62 6f 75 6e 64 73 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 66 (let.((bounds.(ledger-navigate-f
2f640 69 6e 64 2d 78 61 63 74 2d 65 78 74 65 6e 74 73 20 70 6f 73 29 29 29 0a 20 20 20 20 28 6c 65 64 ind-xact-extents.pos))).....(led
2f660 67 65 72 2d 70 6f 73 74 2d 61 6c 69 67 6e 2d 70 6f 73 74 69 6e 67 73 20 28 63 61 72 20 62 6f 75 ger-post-align-postings.(car.bou
2f680 6e 64 73 29 20 28 63 61 64 72 20 62 6f 75 6e 64 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 nds).(cadr.bounds))))..(defun.le
2f6a0 64 67 65 72 2d 70 6f 73 74 2d 61 6c 69 67 6e 2d 70 6f 73 74 69 6e 67 73 20 28 62 65 67 20 65 6e dger-post-align-postings.(beg.en
2f6c0 64 29 0a 20 20 22 41 6c 69 67 6e 20 61 6c 6c 20 61 63 63 6f 75 6e 74 73 20 61 6e 64 20 61 6d 6f d)..."Align.all.accounts.and.amo
2f6e0 75 6e 74 73 20 62 65 74 77 65 65 6e 20 42 45 47 20 61 6e 64 20 45 4e 44 2e 0a 54 68 65 20 63 75 unts.between.BEG.and.END..The.cu
2f700 72 72 65 6e 74 20 72 65 67 69 6f 6e 20 69 73 20 75 73 65 64 2c 20 6f 72 2c 20 69 66 20 6e 6f 20 rrent.region.is.used,.or,.if.no.
2f720 72 65 67 69 6f 6e 2c 20 74 68 65 20 63 75 72 72 65 6e 74 20 6c 69 6e 65 2e 22 0a 20 20 28 69 6e region,.the.current.line."...(in
2f740 74 65 72 61 63 74 69 76 65 20 22 72 22 29 0a 20 20 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 74 teractive."r")...(save-match-dat
2f760 61 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 6c 65 74 a.....(save-excursion.......(let
2f780 20 28 28 69 6e 68 69 62 69 74 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 2d 68 6f 6f 6b 73 20 74 29 .((inhibit-modification-hooks.t)
2f7a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 45 78 74 65 6e 64 20 72 65 67 69 6f 6e 20 74 6f .............;;.Extend.region.to
2f7c0 20 77 68 6f 6c 65 20 6c 69 6e 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 62 65 67 20 28 73 .whole.lines.............(beg.(s
2f7e0 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 20 28 67 6f 74 6f 2d 63 68 61 72 20 62 65 67 29 20 28 6c ave-excursion.(goto-char.beg).(l
2f800 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 29 29 0a 20 20 20 20 20 20 ine-beginning-position))).......
2f820 20 20 20 20 20 20 28 65 6e 64 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 20 28 67 6f 74 6f ......(end.(save-excursion.(goto
2f840 2d 63 68 61 72 20 65 6e 64 29 20 28 6d 6f 76 65 2d 65 6e 64 2d 6f 66 2d 6c 69 6e 65 20 31 29 20 -char.end).(move-end-of-line.1).
2f860 28 70 6f 69 6e 74 2d 6d 61 72 6b 65 72 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 75 6e 74 61 62 (point-marker)))).........(untab
2f880 69 66 79 20 62 65 67 20 65 6e 64 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 ify.beg.end).........(goto-char.
2f8a0 62 65 67 29 0a 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 3c 20 28 70 6f 69 6e 74 29 20 65 beg).........(while.(<.(point).e
2f8c0 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 2d nd)...........(when.(looking-at-
2f8e0 70 20 22 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 66 69 78 20 73 70 61 63 65 73 p.".").............;;.fix.spaces
2f900 20 61 74 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 6c 69 6e 65 3a 0a 20 20 20 20 20 20 20 20 20 .at.beginning.of.line:..........
2f920 20 20 20 28 6a 75 73 74 2d 6f 6e 65 2d 73 70 61 63 65 20 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 ...(just-one-space.ledger-post-a
2f940 63 63 6f 75 6e 74 2d 61 6c 69 67 6e 6d 65 6e 74 2d 63 6f 6c 75 6d 6e 29 0a 20 20 20 20 20 20 20 ccount-alignment-column)........
2f960 20 20 20 20 20 3b 3b 20 66 69 78 20 73 70 61 63 65 73 20 62 65 66 6f 72 65 20 61 6d 6f 75 6e 74 .....;;.fix.spaces.before.amount
2f980 20 69 66 20 61 6e 79 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 72 65 2d 73 .if.any:.............(when.(re-s
2f9a0 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5c 74 5c 5c 7c 20 20 5c 5c 7c 20 5c 74 22 20 28 6c earch-forward."\t\\|..\\|.\t".(l
2f9c0 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 ine-end-position).t)............
2f9e0 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 ...(goto-char.(match-beginning.0
2fa00 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 61 63 63 74 2d 65 6e 64 ))...............(let.((acct-end
2fa20 2d 63 6f 6c 75 6d 6e 20 28 63 75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 29 0a 20 20 20 20 20 20 -column.(current-column)).......
2fa40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6d 74 2d 77 69 64 74 68 20 28 6c 65 64 67 65 72 ..............(amt-width.(ledger
2fa60 2d 6e 65 78 74 2d 61 6d 6f 75 6e 74 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 -next-amount.(line-end-position)
2fa80 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 6d 74 2d 61 64 6a 75 73 )).....................amt-adjus
2faa0 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 61 6d 74 2d 77 69 64 t).................(when.amt-wid
2fac0 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 2f 3d 20 30 20 28 th...................(if.(/=.0.(
2fae0 73 65 74 71 20 61 6d 74 2d 61 64 6a 75 73 74 20 28 2d 20 28 69 66 20 28 3e 20 28 2d 20 6c 65 64 setq.amt-adjust.(-.(if.(>.(-.led
2fb00 67 65 72 2d 70 6f 73 74 2d 61 6d 6f 75 6e 74 2d 61 6c 69 67 6e 6d 65 6e 74 2d 63 6f 6c 75 6d 6e ger-post-amount-alignment-column
2fb20 20 61 6d 74 2d 77 69 64 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .amt-width).....................
2fb40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2fb60 20 20 20 28 2b 20 32 20 61 63 63 74 2d 65 6e 64 2d 63 6f 6c 75 6d 6e 29 29 0a 20 20 20 20 20 20 ...(+.2.acct-end-column)).......
2fb80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2fba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 6d 6f 75 6e 74 ..............ledger-post-amount
2fbc0 2d 61 6c 69 67 6e 6d 65 6e 74 2d 63 6f 6c 75 6d 6e 20 3b 3b 77 65 20 68 61 76 65 20 72 6f 6f 6d -alignment-column.;;we.have.room
2fbe0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2fc00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2b 20 61 63 63 74 2d 65 6e 64 2d 63 ...................(+.acct-end-c
2fc20 6f 6c 75 6d 6e 20 32 20 61 6d 74 2d 77 69 64 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 olumn.2.amt-width)).............
2fc40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2fc60 20 20 20 20 61 6d 74 2d 77 69 64 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....amt-width...................
2fc80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 ..............................(c
2fca0 75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 urrent-column))))...............
2fcc0 20 20 20 20 20 20 20 20 28 69 66 20 28 3e 20 61 6d 74 2d 61 64 6a 75 73 74 20 30 29 0a 20 20 20 ........(if.(>.amt-adjust.0)....
2fce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 .......................(insert.(
2fd00 6d 61 6b 65 2d 73 74 72 69 6e 67 20 61 6d 74 2d 61 64 6a 75 73 74 20 3f 20 29 29 0a 20 20 20 20 make-string.amt-adjust.?.)).....
2fd20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 63 68 61 72 ....................(delete-char
2fd40 20 61 6d 74 2d 61 64 6a 75 73 74 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f .amt-adjust)))))))...........(fo
2fd60 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 rward-line.1))))))..(defun.ledge
2fd80 72 2d 69 6e 64 65 6e 74 2d 6c 69 6e 65 20 28 29 0a 20 20 22 49 6e 64 65 6e 74 20 74 68 65 20 63 r-indent-line.()..."Indent.the.c
2fda0 75 72 72 65 6e 74 20 6c 69 6e 65 2e 22 0a 20 20 3b 3b 20 45 6e 73 75 72 65 20 69 6e 64 65 6e 74 urrent.line."...;;.Ensure.indent
2fdc0 20 69 66 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 6c 69 6e 65 20 77 61 73 20 69 6e 64 65 6e 74 .if.the.previous.line.was.indent
2fde0 65 64 0a 20 20 28 6c 65 74 20 28 28 69 6e 64 65 6e 74 2d 6c 65 76 65 6c 20 28 73 61 76 65 2d 65 ed...(let.((indent-level.(save-e
2fe00 78 63 75 72 73 69 6f 6e 20 28 69 66 20 28 61 6e 64 20 28 7a 65 72 6f 70 20 28 66 6f 72 77 61 72 xcursion.(if.(and.(zerop.(forwar
2fe20 64 2d 6c 69 6e 65 20 2d 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 d-line.-1)).....................
2fe40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 6d 71 ...........................(memq
2fe60 20 28 6c 65 64 67 65 72 2d 74 68 69 6e 67 2d 61 74 2d 70 6f 69 6e 74 29 20 27 28 74 72 61 6e 73 .(ledger-thing-at-point).'(trans
2fe80 61 63 74 69 6f 6e 20 70 6f 73 74 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 action.posting)))...............
2fea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 64 67 ............................ledg
2fec0 65 72 2d 70 6f 73 74 2d 61 63 63 6f 75 6e 74 2d 61 6c 69 67 6e 6d 65 6e 74 2d 63 6f 6c 75 6d 6e er-post-account-alignment-column
2fee0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2ff00 20 20 20 20 20 20 20 20 20 30 29 29 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 3d 20 28 63 .........0)))).....(unless.(=.(c
2ff20 75 72 72 65 6e 74 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 29 20 69 6e 64 65 6e 74 2d 6c 65 76 65 6c urrent-indentation).indent-level
2ff40 29 0a 20 20 20 20 20 20 28 62 61 63 6b 2d 74 6f 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 29 0a 20 20 ).......(back-to-indentation)...
2ff60 20 20 20 20 28 64 65 6c 65 74 65 2d 68 6f 72 69 7a 6f 6e 74 61 6c 2d 73 70 61 63 65 20 74 29 0a ....(delete-horizontal-space.t).
2ff80 20 20 20 20 20 20 28 69 6e 64 65 6e 74 2d 74 6f 20 69 6e 64 65 6e 74 2d 6c 65 76 65 6c 29 29 29 ......(indent-to.indent-level)))
2ffa0 0a 20 20 28 77 68 65 6e 20 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 75 74 6f 2d 61 6c 69 67 6e 0a ...(when.ledger-post-auto-align.
2ffc0 20 20 20 20 28 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 6c 69 67 6e 2d 70 6f 73 74 69 6e 67 73 20 ....(ledger-post-align-postings.
2ffe0 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 20 28 6c 69 6e 65 2d (line-beginning-position).(line-
30000 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d end-position))))..(defun.ledger-
30020 70 6f 73 74 2d 61 6c 69 67 6e 2d 64 77 69 6d 20 28 29 0a 20 20 22 41 6c 69 67 6e 20 61 6c 6c 20 post-align-dwim.()..."Align.all.
30040 74 68 65 20 70 6f 73 74 69 6e 67 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 78 61 63 74 20 the.posting.of.the.current.xact.
30060 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 72 65 67 69 6f 6e 2e 0a 0a 49 66 20 74 68 65 20 70 or.the.current.region...If.the.p
30080 6f 69 6e 74 20 69 73 20 69 6e 20 61 20 63 6f 6d 6d 65 6e 74 2c 20 66 69 6c 6c 20 74 68 65 20 63 oint.is.in.a.comment,.fill.the.c
300a0 6f 6d 6d 65 6e 74 20 70 61 72 61 67 72 61 70 68 20 61 73 0a 72 65 67 75 6c 61 72 20 74 65 78 74 omment.paragraph.as.regular.text
300c0 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 ."...(interactive)...(cond....((
300e0 6e 74 68 20 34 20 28 73 79 6e 74 61 78 2d 70 70 73 73 29 29 0a 20 20 20 20 28 63 61 6c 6c 2d 69 nth.4.(syntax-ppss)).....(call-i
30100 6e 74 65 72 61 63 74 69 76 65 6c 79 20 27 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 6c 69 67 6e 2d nteractively.'ledger-post-align-
30120 70 6f 73 74 69 6e 67 73 29 0a 20 20 20 20 28 66 69 6c 6c 2d 70 61 72 61 67 72 61 70 68 29 29 0a postings).....(fill-paragraph)).
30140 20 20 20 28 28 75 73 65 2d 72 65 67 69 6f 6e 2d 70 29 20 28 63 61 6c 6c 2d 69 6e 74 65 72 61 63 ...((use-region-p).(call-interac
30160 74 69 76 65 6c 79 20 27 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 6c 69 67 6e 2d 70 6f 73 74 69 6e tively.'ledger-post-align-postin
30180 67 73 29 29 0a 20 20 20 28 74 20 28 63 61 6c 6c 2d 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 27 gs))....(t.(call-interactively.'
301a0 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 6c 69 67 6e 2d 78 61 63 74 29 29 29 29 0a 0a 28 64 65 66 ledger-post-align-xact))))..(def
301c0 75 6e 20 6c 65 64 67 65 72 2d 70 6f 73 74 2d 65 64 69 74 2d 61 6d 6f 75 6e 74 20 28 29 0a 20 20 un.ledger-post-edit-amount.()...
301e0 22 43 61 6c 6c 20 60 63 61 6c 63 27 20 61 6e 64 20 70 75 73 68 20 74 68 65 20 61 6d 6f 75 6e 74 "Call.`calc'.and.push.the.amount
30200 20 69 6e 20 74 68 65 20 70 6f 73 74 69 6e 67 20 74 6f 20 74 68 65 20 74 6f 70 20 6f 66 20 73 74 .in.the.posting.to.the.top.of.st
30220 61 63 6b 2c 20 69 66 20 61 6e 79 2e 0a 0a 49 6e 20 74 68 65 20 63 61 6c 63 20 62 75 66 66 65 72 ack,.if.any...In.the.calc.buffer
30240 2c 20 70 72 65 73 73 20 79 20 74 6f 20 75 73 65 20 74 68 65 20 74 6f 70 20 76 61 6c 75 65 20 69 ,.press.y.to.use.the.top.value.i
30260 6e 20 74 68 65 20 73 74 61 63 6b 20 61 73 0a 74 68 65 20 61 6d 6f 75 6e 74 20 61 6e 64 20 72 65 n.the.stack.as.the.amount.and.re
30280 74 75 72 6e 20 74 6f 20 6c 65 64 67 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 turn.to.ledger."...(interactive)
302a0 0a 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 28 77 68 65 6e 20 28 ...(beginning-of-line)...(when.(
302c0 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 6c 65 64 67 65 72 2d 70 6f 73 74 2d 6c 69 re-search-forward.ledger-post-li
302e0 6e 65 2d 72 65 67 65 78 70 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 20 74 29 ne-regexp.(line-end-position).t)
30300 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 2d 65 6e 64 20 6c 65 64 67 65 .....(goto-char.(match-end.ledge
30320 72 2d 72 65 67 65 78 2d 70 6f 73 74 2d 6c 69 6e 65 2d 67 72 6f 75 70 2d 61 63 63 6f 75 6e 74 29 r-regex-post-line-group-account)
30340 29 20 3b 3b 20 67 6f 20 74 6f 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 61 63 63 6f 75 6e ).;;.go.to.the.end.of.the.accoun
30360 74 0a 20 20 20 20 3b 3b 20 64 65 74 65 72 6d 69 6e 65 20 69 66 20 74 68 65 72 65 20 69 73 20 61 t.....;;.determine.if.there.is.a
30380 6e 20 61 6d 6f 75 6e 74 20 74 6f 20 65 64 69 74 0a 20 20 20 20 28 69 66 20 28 72 65 2d 73 65 61 n.amount.to.edit.....(if.(re-sea
303a0 72 63 68 2d 66 6f 72 77 61 72 64 20 6c 65 64 67 65 72 2d 61 6d 6f 75 6e 74 2d 72 65 67 65 78 70 rch-forward.ledger-amount-regexp
303c0 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 20 74 29 0a 20 20 20 20 20 20 20 20 .(line-end-position).t).........
303e0 28 6c 65 74 20 28 28 76 61 6c 2d 73 74 72 69 6e 67 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 (let.((val-string.(match-string.
30400 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 0)))...........(goto-char.(match
30420 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 -beginning.0))...........(delete
30440 2d 72 65 67 69 6f 6e 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 20 28 6d 61 74 -region.(match-beginning.0).(mat
30460 63 68 2d 65 6e 64 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 2d 6d 61 72 6b 20 ch-end.0))...........(push-mark.
30480 28 70 6f 69 6e 74 29 20 27 6e 6f 6d 73 67 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 61 6c 63 29 (point).'nomsg)...........(calc)
304a0 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 65 64 69 74 20 74 68 65 20 61 6d 6f 75 6e 74 2c 20 66 ...........;;.edit.the.amount,.f
304c0 69 72 73 74 20 72 65 6d 6f 76 69 6e 67 20 74 68 6f 75 73 61 6e 64 73 20 73 65 70 61 72 61 74 6f irst.removing.thousands.separato
304e0 72 73 20 61 6e 64 20 63 6f 6e 76 65 72 74 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 64 rs.and.converting...........;;.d
30500 65 63 69 6d 61 6c 20 63 6f 6d 6d 61 73 20 74 6f 20 63 61 6c 63 27 73 20 69 6e 70 75 74 20 66 6f ecimal.commas.to.calc's.input.fo
30520 72 6d 61 74 0a 20 20 20 20 20 20 20 20 20 20 28 63 61 6c 63 2d 65 76 61 6c 20 28 6e 75 6d 62 65 rmat...........(calc-eval.(numbe
30540 72 2d 74 6f 2d 73 74 72 69 6e 67 20 28 6c 65 64 67 65 72 2d 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 r-to-string.(ledger-string-to-nu
30560 6d 62 65 72 20 76 61 6c 2d 73 74 72 69 6e 67 29 29 20 27 70 75 73 68 29 0a 20 20 20 20 20 20 20 mber.val-string)).'push)........
30580 20 20 20 28 63 61 6c 63 2d 72 65 6e 75 6d 62 65 72 2d 73 74 61 63 6b 29 29 0a 20 20 20 20 20 20 ...(calc-renumber-stack)).......
305a0 3b 3b 20 6d 61 6b 65 20 73 75 72 65 20 74 68 65 72 65 20 61 72 65 20 74 77 6f 20 73 70 61 63 65 ;;.make.sure.there.are.two.space
305c0 73 20 61 66 74 65 72 20 74 68 65 20 61 63 63 6f 75 6e 74 20 6e 61 6d 65 20 61 6e 64 20 67 6f 20 s.after.the.account.name.and.go.
305e0 74 6f 20 63 61 6c 63 0a 20 20 20 20 20 20 28 69 66 20 28 73 65 61 72 63 68 2d 62 61 63 6b 77 61 to.calc.......(if.(search-backwa
30600 72 64 20 22 20 20 22 20 28 2d 20 28 70 6f 69 6e 74 29 20 33 29 20 74 29 0a 20 20 20 20 20 20 20 rd."..".(-.(point).3).t)........
30620 20 20 20 28 65 6e 64 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 ...(end-of-line).........(insert
30640 20 22 20 20 22 29 29 0a 20 20 20 20 20 20 28 70 75 73 68 2d 6d 61 72 6b 20 28 70 6f 69 6e 74 29 ."..")).......(push-mark.(point)
30660 20 27 6e 6f 6d 73 67 29 0a 20 20 20 20 20 20 28 63 61 6c 63 29 29 29 29 0a 0a 28 70 72 6f 76 69 .'nomsg).......(calc))))..(provi
30680 64 65 20 27 6c 65 64 67 65 72 2d 70 6f 73 74 29 0a 0a 0a 0a 3b 3b 3b 20 6c 65 64 67 65 72 2d 70 de.'ledger-post)....;;;.ledger-p
306a0 6f 73 74 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ost.el.ends.here................
306c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
306e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
30700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
30720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
30740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
30760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
30780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
307a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
307c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
307e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
30800 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 33 32 36 2e 32 30 30 32 2f 6c 65 64 67 65 72 ledger-mode-20240326.2002/ledger
30820 2d 72 65 63 6f 6e 63 69 6c 65 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -reconcile.el...................
30840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
30860 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
30880 30 30 37 30 33 30 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 37 31 31 00 20 30 00 00 00 0070301.00000000000.016711..0...
308a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
308c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
308e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
30900 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
30920 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
30940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
30960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
30980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
309a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
309c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
309e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
30a00 3b 3b 3b 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2e 65 6c 20 2d 2d 2d 20 48 65 6c 70 ;;;.ledger-reconcile.el.---.Help
30a20 65 72 20 63 6f 64 65 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 74 68 65 20 22 6c 65 64 67 65 72 er.code.for.use.with.the."ledger
30a40 22 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 74 6f 6f 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c ".command-line.tool..-*-.lexical
30a60 2d 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 -binding:.t;.-*-..;;.Copyright.(
30a80 43 29 20 32 30 30 33 2d 32 30 31 36 20 4a 6f 68 6e 20 57 69 65 67 6c 65 79 20 28 6a 6f 68 6e 77 C).2003-2016.John.Wiegley.(johnw
30aa0 20 41 54 20 67 6e 75 20 44 4f 54 20 6f 72 67 29 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 .AT.gnu.DOT.org)..;;.This.file.i
30ac0 73 20 6e 6f 74 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 54 68 69 s.not.part.of.GNU.Emacs...;;.Thi
30ae0 73 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 s.is.free.software;.you.can.redi
30b00 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 20 75 6e 64 stribute.it.and/or.modify.it.und
30b20 65 72 0a 3b 3b 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 er.;;.the.terms.of.the.GNU.Gener
30b40 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 al.Public.License.as.published.b
30b60 79 20 74 68 65 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f y.the.Free.;;.Software.Foundatio
30b80 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 32 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 n;.either.version.2,.or.(at.your
30ba0 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 0a 3b 3b 20 76 65 72 73 69 6f 6e 2e 0a 3b .option).any.later.;;.version..;
30bc0 3b 0a 3b 3b 20 54 68 69 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 ;.;;.This.is.distributed.in.the.
30be0 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 hope.that.it.will.be.useful,.but
30c00 20 57 49 54 48 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 .WITHOUT.;;.ANY.WARRANTY;.withou
30c20 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d t.even.the.implied.warranty.of.M
30c40 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 0a 3b 3b 20 46 49 54 4e 45 53 53 20 46 4f 52 ERCHANTABILITY.or.;;.FITNESS.FOR
30c60 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 .A.PARTICULAR.PURPOSE...See.the.
30c80 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 66 6f GNU.General.Public.License.;;.fo
30ca0 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 r.more.details..;;.;;.You.should
30cc0 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 .have.received.a.copy.of.the.GNU
30ce0 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 .General.Public.License.;;.along
30d00 20 77 69 74 68 20 47 4e 55 20 45 6d 61 63 73 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f .with.GNU.Emacs;.see.the.file.CO
30d20 50 59 49 4e 47 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 PYING...If.not,.write.to.the.;;.
30d40 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 Free.Software.Foundation,.Inc.,.
30d60 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 51.Franklin.Street,.Fifth.Floor,
30d80 20 42 6f 73 74 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 20 55 53 41 2e 0a 0a .Boston,.;;.MA.02110-1301.USA...
30da0 3b 3b 20 52 65 63 6f 6e 63 69 6c 65 20 6d 6f 64 65 0a 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 ;;.Reconcile.mode...;;;.Commenta
30dc0 72 79 3a 0a 3b 3b 20 43 6f 64 65 20 74 6f 20 68 61 6e 64 6c 65 20 72 65 63 6f 6e 63 69 6c 69 6e ry:.;;.Code.to.handle.reconcilin
30de0 67 20 4c 65 64 67 65 72 20 66 69 6c 65 73 20 77 69 74 68 20 6f 75 74 73 69 64 65 20 73 6f 75 72 g.Ledger.files.with.outside.sour
30e00 63 65 73 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 65 61 73 79 6d 65 ces..;;;.Code:..(require.'easyme
30e20 6e 75 29 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 69 6e 69 74 29 0a 0a 28 72 65 71 nu).(require.'ledger-init)..(req
30e40 75 69 72 65 20 27 6c 65 64 67 65 72 2d 78 61 63 74 29 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 uire.'ledger-xact).(require.'led
30e60 67 65 72 2d 6f 63 63 75 72 29 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 63 6f 6d 6d ger-occur).(require.'ledger-comm
30e80 6f 64 69 74 69 65 73 29 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 65 78 65 63 29 0a odities).(require.'ledger-exec).
30ea0 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 29 0a 28 72 65 71 75 (require.'ledger-navigate).(requ
30ec0 69 72 65 20 27 6c 65 64 67 65 72 2d 73 74 61 74 65 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 ire.'ledger-state).(declare-func
30ee0 74 69 6f 6e 20 6c 65 64 67 65 72 2d 69 6e 73 65 72 74 2d 65 66 66 65 63 74 69 76 65 2d 64 61 74 tion.ledger-insert-effective-dat
30f00 65 20 22 6c 65 64 67 65 72 2d 6d 6f 64 65 22 20 28 26 6f 70 74 69 6f 6e 61 6c 20 64 61 74 65 29 e."ledger-mode".(&optional.date)
30f20 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6c 65 64 67 65 72 2d 72 65 61 64 2d ).(declare-function.ledger-read-
30f40 61 63 63 6f 75 6e 74 2d 77 69 74 68 2d 70 72 6f 6d 70 74 20 22 6c 65 64 67 65 72 2d 6d 6f 64 65 account-with-prompt."ledger-mode
30f60 22 20 28 70 72 6f 6d 70 74 29 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6c 65 ".(prompt)).(declare-function.le
30f80 64 67 65 72 2d 72 65 61 64 2d 64 61 74 65 20 22 6c 65 64 67 65 72 2d 6d 6f 64 65 22 20 28 70 72 dger-read-date."ledger-mode".(pr
30fa0 6f 6d 70 74 29 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6c 65 64 67 65 72 2d 72 65 63 ompt))..(defvar-local.ledger-rec
30fc0 6f 6e 63 69 6c 65 2d 6c 65 64 67 65 72 2d 62 75 66 20 6e 69 6c 0a 20 20 22 42 75 66 66 65 72 20 oncile-ledger-buf.nil..."Buffer.
30fe0 66 72 6f 6d 20 77 68 69 63 68 20 74 68 65 20 63 75 72 72 65 6e 74 20 72 65 63 6f 6e 63 69 6c 65 from.which.the.current.reconcile
31000 20 62 75 66 66 65 72 20 77 61 73 20 63 72 65 61 74 65 64 2e 22 29 0a 0a 28 64 65 66 76 61 72 2d .buffer.was.created.")..(defvar-
31020 6c 6f 63 61 6c 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 61 63 63 6f 75 6e 74 20 6e local.ledger-reconcile-account.n
31040 69 6c 0a 20 20 22 41 63 63 6f 75 6e 74 20 62 65 69 6e 67 20 72 65 63 6f 6e 63 69 6c 65 64 20 69 il..."Account.being.reconciled.i
31060 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 22 29 0a 0a 28 64 65 66 76 61 72 n.the.current.buffer.")..(defvar
31080 2d 6c 6f 63 61 6c 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 74 61 72 67 65 74 20 6e -local.ledger-reconcile-target.n
310a0 69 6c 0a 20 20 22 54 61 72 67 65 74 20 61 6d 6f 75 6e 74 20 66 6f 72 20 74 68 69 73 20 72 65 63 il..."Target.amount.for.this.rec
310c0 6f 6e 63 69 6c 69 61 74 69 6f 6e 20 70 72 6f 63 65 73 73 2e 22 29 0a 0a 28 64 65 66 67 72 6f 75 onciliation.process.")..(defgrou
310e0 70 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 20 6e 69 6c 0a 20 20 22 4f 70 74 69 6f 6e p.ledger-reconcile.nil..."Option
31100 73 20 66 6f 72 20 4c 65 64 67 65 72 2d 6d 6f 64 65 20 72 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e s.for.Ledger-mode.reconciliation
31120 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 29 0a 0a 28 64 65 66 69 6e 65 2d 6f 62 73 "...:group.'ledger)..(define-obs
31140 6f 6c 65 74 65 2d 76 61 72 69 61 62 6c 65 2d 61 6c 69 61 73 0a 20 20 27 6c 65 64 67 65 72 2d 72 olete-variable-alias...'ledger-r
31160 65 63 6f 6e 2d 62 75 66 66 65 72 2d 6e 61 6d 65 0a 20 20 27 6c 65 64 67 65 72 2d 72 65 63 6f 6e econ-buffer-name...'ledger-recon
31180 63 69 6c 65 2d 62 75 66 66 65 72 2d 6e 61 6d 65 0a 20 20 22 32 30 32 33 2d 31 32 2d 31 35 22 29 cile-buffer-name..."2023-12-15")
311a0 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 62 75 ..(defcustom.ledger-reconcile-bu
311c0 66 66 65 72 2d 6e 61 6d 65 20 22 2a 52 65 63 6f 6e 63 69 6c 65 2a 22 0a 20 20 22 4e 61 6d 65 20 ffer-name."*Reconcile*"..."Name.
311e0 74 6f 20 75 73 65 20 66 6f 72 20 72 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 20 62 75 66 66 65 72 to.use.for.reconciliation.buffer
31200 2e 22 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 ."...:type.'string...:group.'led
31220 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 ger-reconcile)..(defcustom.ledge
31240 72 2d 6e 61 72 72 6f 77 2d 6f 6e 2d 72 65 63 6f 6e 63 69 6c 65 20 74 0a 20 20 22 49 66 20 74 2c r-narrow-on-reconcile.t..."If.t,
31260 20 73 68 6f 77 20 6f 6e 6c 79 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 6d 61 74 63 68 69 6e 67 .show.only.transactions.matching
31280 20 74 68 65 20 72 65 63 6f 6e 63 69 6c 65 20 72 65 67 65 78 20 69 6e 20 74 68 65 20 6d 61 69 6e .the.reconcile.regex.in.the.main
312a0 20 62 75 66 66 65 72 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 .buffer."...:type.'boolean...:gr
312c0 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 29 0a 0a 28 64 65 66 63 75 73 74 oup.'ledger-reconcile)..(defcust
312e0 6f 6d 20 6c 65 64 67 65 72 2d 62 75 66 66 65 72 2d 74 72 61 63 6b 73 2d 72 65 63 6f 6e 63 69 6c om.ledger-buffer-tracks-reconcil
31300 65 2d 62 75 66 66 65 72 20 74 0a 20 20 22 49 66 20 74 2c 20 6d 6f 76 65 20 70 6f 69 6e 74 20 69 e-buffer.t..."If.t,.move.point.i
31320 6e 20 74 68 65 20 6c 65 64 67 65 72 20 62 75 66 66 65 72 20 77 68 65 6e 20 69 74 20 6d 6f 76 65 n.the.ledger.buffer.when.it.move
31340 73 20 69 6e 20 74 68 65 20 72 65 63 6f 6e 63 69 6c 65 20 62 75 66 66 65 72 2e 0a 57 68 65 6e 20 s.in.the.reconcile.buffer..When.
31360 74 68 65 20 63 75 72 73 6f 72 20 69 73 20 6d 6f 76 65 64 20 74 6f 20 61 20 6e 65 77 20 74 72 61 the.cursor.is.moved.to.a.new.tra
31380 6e 73 61 63 74 69 6f 6e 20 69 6e 20 74 68 65 20 72 65 63 6f 6e 63 69 6c 65 0a 62 75 66 66 65 72 nsaction.in.the.reconcile.buffer
313a0 20 74 68 65 6e 20 74 68 61 74 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 77 69 6c 6c 20 62 65 20 73 .then.that.transaction.will.be.s
313c0 68 6f 77 6e 20 69 6e 20 69 74 73 20 73 6f 75 72 63 65 20 62 75 66 66 65 72 2e 22 0a 20 20 3a 74 hown.in.its.source.buffer."...:t
313e0 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 65 ype.'boolean...:group.'ledger-re
31400 63 6f 6e 63 69 6c 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 72 65 63 6f concile)..(defcustom.ledger-reco
31420 6e 63 69 6c 65 2d 66 6f 72 63 65 2d 77 69 6e 64 6f 77 2d 62 6f 74 74 6f 6d 20 6e 69 6c 0a 20 20 ncile-force-window-bottom.nil...
31440 22 49 66 20 74 2c 20 73 68 6f 77 20 74 68 65 20 72 65 63 6f 6e 63 69 6c 65 20 77 69 6e 64 6f 77 "If.t,.show.the.reconcile.window
31460 20 62 65 6c 6f 77 20 74 68 65 20 72 65 67 69 73 74 65 72 20 77 69 6e 64 6f 77 20 61 6e 64 20 72 .below.the.register.window.and.r
31480 65 73 69 7a 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 esize."...:type.'boolean...:grou
314a0 70 20 27 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d p.'ledger-reconcile)..(defcustom
314c0 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 74 6f 67 67 6c 65 2d 74 6f 2d 70 65 6e 64 .ledger-reconcile-toggle-to-pend
314e0 69 6e 67 20 74 0a 20 20 22 49 66 20 74 2c 20 74 68 65 6e 20 74 6f 67 67 6c 65 20 62 65 74 77 65 ing.t..."If.t,.then.toggle.betwe
31500 65 6e 20 75 6e 63 6c 65 61 72 65 64 20 61 6e 64 20 70 65 6e 64 69 6e 67 2e 0a 72 65 63 6f 6e 63 en.uncleared.and.pending..reconc
31520 69 6c 65 2d 66 69 6e 69 73 68 20 77 69 6c 6c 20 6d 61 72 6b 20 61 6c 6c 20 70 65 6e 64 69 6e 67 ile-finish.will.mark.all.pending
31540 20 70 6f 73 74 69 6e 67 20 63 6c 65 61 72 65 64 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c .posting.cleared."...:type.'bool
31560 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 29 0a ean...:group.'ledger-reconcile).
31580 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 64 65 66 .(defcustom.ledger-reconcile-def
315a0 61 75 6c 74 2d 64 61 74 65 2d 66 6f 72 6d 61 74 20 6c 65 64 67 65 72 2d 64 65 66 61 75 6c 74 2d ault-date-format.ledger-default-
315c0 64 61 74 65 2d 66 6f 72 6d 61 74 0a 20 20 22 44 61 74 65 20 66 6f 72 6d 61 74 20 66 6f 72 20 74 date-format..."Date.format.for.t
315e0 68 65 20 72 65 63 6f 6e 63 69 6c 65 20 62 75 66 66 65 72 2e 0a 44 65 66 61 75 6c 74 20 69 73 20 he.reconcile.buffer..Default.is.
31600 60 6c 65 64 67 65 72 2d 64 65 66 61 75 6c 74 2d 64 61 74 65 2d 66 6f 72 6d 61 74 27 2e 22 0a 20 `ledger-default-date-format'."..
31620 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d .:type.'string...:group.'ledger-
31640 72 65 63 6f 6e 63 69 6c 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 72 65 reconcile)..(defcustom.ledger-re
31660 63 6f 6e 63 69 6c 65 2d 74 61 72 67 65 74 2d 70 72 6f 6d 70 74 2d 73 74 72 69 6e 67 20 22 54 61 concile-target-prompt-string."Ta
31680 72 67 65 74 20 61 6d 6f 75 6e 74 20 66 6f 72 20 72 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 20 22 rget.amount.for.reconciliation."
316a0 0a 20 20 22 50 72 6f 6d 70 74 20 66 6f 72 20 72 65 63 6f 6e 63 69 6c 65 20 74 61 72 67 65 74 2e ..."Prompt.for.reconcile.target.
316c0 22 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 "...:type.'string...:group.'ledg
316e0 65 72 2d 72 65 63 6f 6e 63 69 6c 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 er-reconcile)..(defcustom.ledger
31700 2d 72 65 63 6f 6e 63 69 6c 65 2d 62 75 66 66 65 72 2d 68 65 61 64 65 72 20 22 52 65 63 6f 6e 63 -reconcile-buffer-header."Reconc
31720 69 6c 69 6e 67 20 61 63 63 6f 75 6e 74 20 25 73 5c 6e 5c 6e 22 0a 20 20 22 44 65 66 61 75 6c 74 iling.account.%s\n\n"..."Default
31740 20 68 65 61 64 65 72 20 73 74 72 69 6e 67 20 66 6f 72 20 74 68 65 20 72 65 63 6f 6e 63 69 6c 65 .header.string.for.the.reconcile
31760 20 62 75 66 66 65 72 2e 0a 0a 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 74 68 65 20 6e 61 6d 65 20 6f .buffer...If.non-nil,.the.name.o
31780 66 20 74 68 65 20 61 63 63 6f 75 6e 74 20 62 65 69 6e 67 20 72 65 63 6f 6e 63 69 6c 65 64 20 77 f.the.account.being.reconciled.w
317a0 69 6c 6c 20 62 65 20 73 75 62 73 74 69 74 75 74 65 64 0a 20 20 20 20 20 20 20 20 69 6e 74 6f 20 ill.be.substituted.........into.
317c0 74 68 65 20 27 25 73 27 2e 20 20 49 66 20 6e 69 6c 2c 20 6e 6f 20 68 65 61 64 65 72 20 77 69 6c the.'%s'...If.nil,.no.header.wil
317e0 6c 20 62 65 20 64 69 73 70 6c 61 79 65 64 2e 22 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 l.be.displayed."...:type.'string
31800 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 29 0a 0a 28 64 ...:group.'ledger-reconcile)..(d
31820 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 62 75 66 66 65 72 efcustom.ledger-reconcile-buffer
31840 2d 6c 69 6e 65 2d 66 6f 72 6d 61 74 20 22 25 28 64 61 74 65 29 73 20 25 2d 34 28 63 6f 64 65 29 -line-format."%(date)s.%-4(code)
31860 73 20 25 2d 35 30 28 70 61 79 65 65 29 73 20 25 2d 33 30 28 61 63 63 6f 75 6e 74 29 73 20 25 31 s.%-50(payee)s.%-30(account)s.%1
31880 35 28 61 6d 6f 75 6e 74 29 73 5c 6e 22 0a 20 20 22 46 6f 72 6d 61 74 20 73 74 72 69 6e 67 20 66 5(amount)s\n"..."Format.string.f
318a0 6f 72 20 74 68 65 20 6c 65 64 67 65 72 20 72 65 63 6f 6e 63 69 6c 65 20 70 6f 73 74 69 6e 67 20 or.the.ledger.reconcile.posting.
318c0 66 6f 72 6d 61 74 2e 0a 41 76 61 69 6c 61 62 6c 65 20 66 69 65 6c 64 73 20 61 72 65 20 64 61 74 format..Available.fields.are.dat
318e0 65 2c 20 73 74 61 74 75 73 2c 20 63 6f 64 65 2c 20 70 61 79 65 65 2c 20 61 63 63 6f 75 6e 74 2c e,.status,.code,.payee,.account,
31900 0a 61 6d 6f 75 6e 74 2e 20 20 54 68 65 20 66 6f 72 6d 61 74 20 66 6f 72 20 65 61 63 68 20 66 69 .amount...The.format.for.each.fi
31920 65 6c 64 20 69 73 20 25 57 49 44 54 48 28 46 49 45 4c 44 29 2c 20 57 49 44 54 48 20 63 61 6e 20 eld.is.%WIDTH(FIELD),.WIDTH.can.
31940 62 65 0a 70 72 65 63 65 64 65 64 20 62 79 20 61 20 6d 69 6e 75 73 20 73 69 67 6e 20 77 68 69 63 be.preceded.by.a.minus.sign.whic
31960 68 20 6d 65 61 6e 20 74 6f 20 6c 65 66 74 20 6a 75 73 74 69 66 79 20 61 6e 64 20 70 61 64 20 74 h.mean.to.left.justify.and.pad.t
31980 68 65 0a 66 69 65 6c 64 2e 20 20 57 49 44 54 48 20 69 73 20 74 68 65 20 6d 69 6e 69 6d 75 6d 20 he.field...WIDTH.is.the.minimum.
319a0 6e 75 6d 62 65 72 20 6f 66 20 63 68 61 72 61 63 74 65 72 73 20 74 6f 20 64 69 73 70 6c 61 79 3b number.of.characters.to.display;
319c0 0a 69 66 20 73 74 72 69 6e 67 20 69 73 20 6c 6f 6e 67 65 72 2c 20 69 74 20 69 73 20 6e 6f 74 20 .if.string.is.longer,.it.is.not.
319e0 74 72 75 6e 63 61 74 65 64 20 75 6e 6c 65 73 73 0a 60 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 truncated.unless.`ledger-reconci
31a00 6c 65 2d 62 75 66 66 65 72 2d 70 61 79 65 65 2d 6d 61 78 2d 63 68 61 72 73 27 20 6f 72 0a 60 6c le-buffer-payee-max-chars'.or.`l
31a20 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 62 75 66 66 65 72 2d 61 63 63 6f 75 6e 74 2d 6d edger-reconcile-buffer-account-m
31a40 61 78 2d 63 68 61 72 73 27 20 69 73 20 64 65 66 69 6e 65 64 2e 22 0a 20 20 3a 74 79 70 65 20 27 ax-chars'.is.defined."...:type.'
31a60 73 74 72 69 6e 67 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c string...:group.'ledger-reconcil
31a80 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d e)..(defcustom.ledger-reconcile-
31aa0 62 75 66 66 65 72 2d 70 61 79 65 65 2d 6d 61 78 2d 63 68 61 72 73 20 2d 31 0a 20 20 22 49 66 20 buffer-payee-max-chars.-1..."If.
31ac0 70 6f 73 69 74 69 76 65 2c 20 74 72 75 6e 63 61 74 65 20 70 61 79 65 65 20 6e 61 6d 65 20 72 69 positive,.truncate.payee.name.ri
31ae0 67 68 74 20 73 69 64 65 20 74 6f 20 6d 61 78 20 6e 75 6d 62 65 72 20 6f 66 20 63 68 61 72 61 63 ght.side.to.max.number.of.charac
31b00 74 65 72 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 69 6e 74 65 67 65 72 0a 20 20 3a 67 72 6f 75 70 ters."...:type.'integer...:group
31b20 20 27 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 .'ledger-reconcile)..(defcustom.
31b40 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 62 75 66 66 65 72 2d 61 63 63 6f 75 6e 74 2d ledger-reconcile-buffer-account-
31b60 6d 61 78 2d 63 68 61 72 73 20 2d 31 0a 20 20 22 49 66 20 70 6f 73 69 74 69 76 65 2c 20 74 72 75 max-chars.-1..."If.positive,.tru
31b80 6e 63 61 74 65 20 61 63 63 6f 75 6e 74 20 6e 61 6d 65 20 6c 65 66 74 20 73 69 64 65 20 74 6f 20 ncate.account.name.left.side.to.
31ba0 6d 61 78 20 6e 75 6d 62 65 72 20 6f 66 20 63 68 61 72 61 63 74 65 72 73 2e 22 0a 20 20 3a 74 79 max.number.of.characters."...:ty
31bc0 70 65 20 27 69 6e 74 65 67 65 72 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 65 63 pe.'integer...:group.'ledger-rec
31be0 6f 6e 63 69 6c 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e oncile)..(defcustom.ledger-recon
31c00 63 69 6c 65 2d 73 6f 72 74 2d 6b 65 79 20 22 28 30 29 22 0a 20 20 22 4b 65 79 20 66 6f 72 20 73 cile-sort-key."(0)"..."Key.for.s
31c20 6f 72 74 69 6e 67 20 72 65 63 6f 6e 63 69 6c 65 20 62 75 66 66 65 72 2e 0a 0a 50 6f 73 73 69 62 orting.reconcile.buffer...Possib
31c40 6c 65 20 76 61 6c 75 65 73 20 61 72 65 20 5c 22 28 64 61 74 65 29 5c 22 2c 20 5c 22 28 61 6d 6f le.values.are.\"(date)\",.\"(amo
31c60 75 6e 74 29 5c 22 2c 20 5c 22 28 70 61 79 65 65 29 5c 22 20 6f 72 20 5c 22 28 30 29 5c 22 20 66 unt)\",.\"(payee)\".or.\"(0)\".f
31c80 6f 72 0a 6e 6f 20 73 6f 72 74 69 6e 67 2c 20 69 2e 65 2e 20 75 73 69 6e 67 20 6c 65 64 67 65 72 or.no.sorting,.i.e..using.ledger
31ca0 20 66 69 6c 65 20 6f 72 64 65 72 2e 22 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 0a 20 20 .file.order."...:type.'string...
31cc0 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 29 0a 0a 28 64 65 66 63 :group.'ledger-reconcile)..(defc
31ce0 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 69 6e 73 65 72 74 2d 65 66 ustom.ledger-reconcile-insert-ef
31d00 66 65 63 74 69 76 65 2d 64 61 74 65 20 6e 69 6c 0a 20 20 22 49 66 20 74 2c 20 70 72 6f 6d 70 74 fective-date.nil..."If.t,.prompt
31d20 20 66 6f 72 20 65 66 66 65 63 74 69 76 65 20 64 61 74 65 20 77 68 65 6e 20 63 6c 65 61 72 69 6e .for.effective.date.when.clearin
31d40 67 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 2e 0a 0a 49 66 20 74 68 69 73 20 69 73 20 61 20 66 75 g.transactions...If.this.is.a.fu
31d60 6e 63 74 69 6f 6e 2c 20 69 74 20 69 73 20 63 61 6c 6c 65 64 20 77 69 74 68 20 6e 6f 20 61 72 67 nction,.it.is.called.with.no.arg
31d80 75 6d 65 6e 74 73 20 77 69 74 68 20 70 6f 69 6e 74 0a 61 74 20 74 68 65 20 70 6f 73 74 69 6e 67 uments.with.point.at.the.posting
31da0 20 74 6f 20 62 65 20 63 6c 65 61 72 65 64 2e 20 20 54 68 65 20 72 65 74 75 72 6e 20 76 61 6c 75 .to.be.cleared...The.return.valu
31dc0 65 20 69 73 20 74 68 65 6e 20 75 73 65 64 20 61 73 0a 64 65 73 63 72 69 62 65 64 20 61 62 6f 76 e.is.then.used.as.described.abov
31de0 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65 20 62 6f 6f 6c 65 61 6e 20 66 75 6e e."...:type.'(choice.boolean.fun
31e00 63 74 69 6f 6e 29 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c ction)...:group.'ledger-reconcil
31e20 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d e)..(defcustom.ledger-reconcile-
31e40 66 69 6e 69 73 68 2d 66 6f 72 63 65 2d 71 75 69 74 20 6e 69 6c 0a 20 20 22 49 66 20 74 2c 20 77 finish-force-quit.nil..."If.t,.w
31e60 69 6c 6c 20 66 6f 72 63 65 20 63 6c 6f 73 69 6e 67 20 72 65 63 6f 6e 63 69 6c 65 20 77 69 6e 64 ill.force.closing.reconcile.wind
31e80 6f 77 20 61 66 74 65 72 20 5c 5c 5b 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 66 69 6e ow.after.\\[ledger-reconcile-fin
31ea0 69 73 68 5d 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 ish]."...:type.'boolean...:group
31ec0 20 27 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 .'ledger-reconcile)..(defvar-loc
31ee0 61 6c 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 6c 61 73 74 2d 62 61 6c 61 6e 63 65 al.ledger-reconcile-last-balance
31f00 2d 6d 65 73 73 61 67 65 20 6e 69 6c 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6c 65 64 67 -message.nil).(defvar-local.ledg
31f20 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 6c 61 73 74 2d 62 61 6c 61 6e 63 65 2d 65 71 75 61 6c 73 er-reconcile-last-balance-equals
31f40 2d 74 61 72 67 65 74 20 6e 69 6c 29 0a 0a 28 64 65 66 66 61 63 65 20 6c 65 64 67 65 72 2d 72 65 -target.nil)..(defface.ledger-re
31f60 63 6f 6e 63 69 6c 65 2d 6c 61 73 74 2d 62 61 6c 61 6e 63 65 2d 65 71 75 61 6c 73 2d 74 61 72 67 concile-last-balance-equals-targ
31f80 65 74 2d 66 61 63 65 0a 20 20 27 28 28 74 20 3a 69 6e 68 65 72 69 74 20 68 65 61 64 65 72 2d 6c et-face...'((t.:inherit.header-l
31fa0 69 6e 65 20 3a 66 6f 72 65 67 72 6f 75 6e 64 20 22 67 72 65 65 6e 33 22 29 29 0a 20 20 22 46 61 ine.:foreground."green3"))..."Fa
31fc0 63 65 20 75 73 65 64 20 66 6f 72 20 68 65 61 64 65 72 20 6c 69 6e 65 20 77 68 65 6e 20 63 6c 65 ce.used.for.header.line.when.cle
31fe0 61 72 65 64 2d 6f 72 2d 70 65 6e 64 69 6e 67 20 62 61 6c 61 6e 63 65 20 65 71 75 61 6c 73 20 74 ared-or-pending.balance.equals.t
32000 68 65 20 74 61 72 67 65 74 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 65 63 he.target."...:group.'ledger-rec
32020 6f 6e 63 69 6c 65 29 0a 0a 3b 3b 20 73 2d 66 75 6e 63 74 69 6f 6e 73 20 62 65 6c 6f 77 20 61 72 oncile)..;;.s-functions.below.ar
32040 65 20 63 6f 70 69 65 64 20 66 72 6f 6d 20 4d 61 67 6e 61 72 73 27 20 73 2e 65 6c 0a 3b 3b 20 70 e.copied.from.Magnars'.s.el.;;.p
32060 72 65 66 69 78 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 20 69 73 20 61 64 64 65 64 refix.ledger-reconcile-.is.added
32080 20 74 6f 20 6e 6f 74 20 63 6f 6e 66 6c 69 63 74 20 77 69 74 68 20 73 2e 65 6c 0a 28 64 65 66 75 .to.not.conflict.with.s.el.(defu
320a0 6e 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 73 2d 70 61 64 2d 6c 65 66 74 20 28 6c n.ledger-reconcile-s-pad-left.(l
320c0 65 6e 20 70 61 64 64 69 6e 67 20 73 29 0a 20 20 22 49 66 20 53 20 69 73 20 73 68 6f 72 74 65 72 en.padding.s)..."If.S.is.shorter
320e0 20 74 68 61 6e 20 4c 45 4e 2c 20 70 61 64 20 69 74 20 77 69 74 68 20 50 41 44 44 49 4e 47 20 6f .than.LEN,.pad.it.with.PADDING.o
32100 6e 20 74 68 65 20 6c 65 66 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 65 78 74 72 61 20 28 6d 61 78 n.the.left."...(let.((extra.(max
32120 20 30 20 28 2d 20 6c 65 6e 20 28 6c 65 6e 67 74 68 20 73 29 29 29 29 29 0a 20 20 20 20 28 63 6f .0.(-.len.(length.s))))).....(co
32140 6e 63 61 74 20 28 6d 61 6b 65 2d 73 74 72 69 6e 67 20 65 78 74 72 61 20 28 73 74 72 69 6e 67 2d ncat.(make-string.extra.(string-
32160 74 6f 2d 63 68 61 72 20 70 61 64 64 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 73 29 to-char.padding)).............s)
32180 29 29 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 73 2d 70 61 64 )).(defun.ledger-reconcile-s-pad
321a0 2d 72 69 67 68 74 20 28 6c 65 6e 20 70 61 64 64 69 6e 67 20 73 29 0a 20 20 22 49 66 20 53 20 69 -right.(len.padding.s)..."If.S.i
321c0 73 20 73 68 6f 72 74 65 72 20 74 68 61 6e 20 4c 45 4e 2c 20 70 61 64 20 69 74 20 77 69 74 68 20 s.shorter.than.LEN,.pad.it.with.
321e0 50 41 44 44 49 4e 47 20 6f 6e 20 74 68 65 20 72 69 67 68 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 PADDING.on.the.right."...(let.((
32200 65 78 74 72 61 20 28 6d 61 78 20 30 20 28 2d 20 6c 65 6e 20 28 6c 65 6e 67 74 68 20 73 29 29 29 extra.(max.0.(-.len.(length.s)))
32220 29 29 0a 20 20 20 20 28 63 6f 6e 63 61 74 20 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 )).....(concat.s.............(ma
32240 6b 65 2d 73 74 72 69 6e 67 20 65 78 74 72 61 20 28 73 74 72 69 6e 67 2d 74 6f 2d 63 68 61 72 20 ke-string.extra.(string-to-char.
32260 70 61 64 64 69 6e 67 29 29 29 29 29 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e padding))))).(defun.ledger-recon
32280 63 69 6c 65 2d 73 2d 6c 65 66 74 20 28 6c 65 6e 20 73 29 0a 20 20 22 52 65 74 75 72 6e 20 75 70 cile-s-left.(len.s)..."Return.up
322a0 20 74 6f 20 74 68 65 20 4c 45 4e 20 66 69 72 73 74 20 63 68 61 72 73 20 6f 66 20 53 2e 22 0a 20 .to.the.LEN.first.chars.of.S."..
322c0 20 28 69 66 20 28 3e 20 28 6c 65 6e 67 74 68 20 73 29 20 6c 65 6e 29 0a 20 20 20 20 20 20 28 73 .(if.(>.(length.s).len).......(s
322e0 75 62 73 74 72 69 6e 67 20 73 20 30 20 6c 65 6e 29 0a 20 20 20 20 73 29 29 0a 28 64 65 66 75 6e ubstring.s.0.len).....s)).(defun
32300 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 73 2d 72 69 67 68 74 20 28 6c 65 6e 20 73 .ledger-reconcile-s-right.(len.s
32320 29 0a 20 20 22 52 65 74 75 72 6e 20 75 70 20 74 6f 20 74 68 65 20 4c 45 4e 20 6c 61 73 74 20 63 )..."Return.up.to.the.LEN.last.c
32340 68 61 72 73 20 6f 66 20 53 2e 22 0a 20 20 28 6c 65 74 20 28 28 6c 20 28 6c 65 6e 67 74 68 20 73 hars.of.S."...(let.((l.(length.s
32360 29 29 29 0a 20 20 20 20 28 69 66 20 28 3e 20 6c 20 6c 65 6e 29 0a 20 20 20 20 20 20 20 20 28 73 ))).....(if.(>.l.len).........(s
32380 75 62 73 74 72 69 6e 67 20 73 20 28 2d 20 6c 20 6c 65 6e 29 20 6c 29 0a 20 20 20 20 20 20 73 29 ubstring.s.(-.l.len).l).......s)
323a0 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 74 72 75 6e ))..(defun.ledger-reconcile-trun
323c0 63 61 74 65 2d 72 69 67 68 74 20 28 73 74 72 20 6c 65 6e 29 0a 20 20 22 54 72 75 6e 63 61 74 65 cate-right.(str.len)..."Truncate
323e0 20 53 54 52 20 72 69 67 68 74 20 73 69 64 65 20 77 69 74 68 20 6d 61 78 20 4c 45 4e 20 63 68 61 .STR.right.side.with.max.LEN.cha
32400 72 61 63 74 65 72 73 2c 20 61 6e 64 20 70 61 64 20 77 69 74 68 20 27 e2 80 a6 27 20 69 66 20 74 racters,.and.pad.with.'...'.if.t
32420 72 75 6e 63 61 74 65 64 2e 22 0a 20 20 28 69 66 20 28 61 6e 64 20 28 3e 3d 20 6c 65 6e 20 30 29 runcated."...(if.(and.(>=.len.0)
32440 20 28 3e 20 28 6c 65 6e 67 74 68 20 73 74 72 29 20 6c 65 6e 29 29 0a 20 20 20 20 20 20 28 6c 65 .(>.(length.str).len)).......(le
32460 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 73 2d 70 61 64 2d 72 69 67 68 74 20 6c 65 6e 20 22 dger-reconcile-s-pad-right.len."
32480 e2 80 a6 22 20 28 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 73 2d 6c 65 66 74 20 28 2d ...".(ledger-reconcile-s-left.(-
324a0 20 6c 65 6e 20 31 29 20 73 74 72 29 29 0a 20 20 20 20 73 74 72 29 29 0a 0a 28 64 65 66 75 6e 20 .len.1).str)).....str))..(defun.
324c0 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 74 72 75 6e 63 61 74 65 2d 6c 65 66 74 20 28 ledger-reconcile-truncate-left.(
324e0 73 74 72 20 6c 65 6e 29 0a 20 20 22 54 72 75 6e 63 61 74 65 20 53 54 52 20 6c 65 66 74 20 73 69 str.len)..."Truncate.STR.left.si
32500 64 65 20 77 69 74 68 20 6d 61 78 20 4c 45 4e 20 63 68 61 72 61 63 74 65 72 73 2c 20 61 6e 64 20 de.with.max.LEN.characters,.and.
32520 70 61 64 20 77 69 74 68 20 27 e2 80 a6 27 20 69 66 20 74 72 75 6e 63 61 74 65 64 2e 22 0a 20 20 pad.with.'...'.if.truncated."...
32540 28 69 66 20 28 61 6e 64 20 28 3e 3d 20 6c 65 6e 20 30 29 20 28 3e 20 28 6c 65 6e 67 74 68 20 73 (if.(and.(>=.len.0).(>.(length.s
32560 74 72 29 20 6c 65 6e 29 29 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c tr).len)).......(ledger-reconcil
32580 65 2d 73 2d 70 61 64 2d 6c 65 66 74 20 6c 65 6e 20 22 e2 80 a6 22 20 28 6c 65 64 67 65 72 2d 72 e-s-pad-left.len."...".(ledger-r
325a0 65 63 6f 6e 63 69 6c 65 2d 73 2d 72 69 67 68 74 20 28 2d 20 6c 65 6e 20 31 29 20 73 74 72 29 29 econcile-s-right.(-.len.1).str))
325c0 0a 20 20 20 20 73 74 72 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 .....str))..(defun.ledger-reconc
325e0 69 6c 65 2d 67 65 74 2d 63 6c 65 61 72 65 64 2d 6f 72 2d 70 65 6e 64 69 6e 67 2d 62 61 6c 61 6e ile-get-cleared-or-pending-balan
32600 63 65 20 28 62 75 66 66 65 72 20 61 63 63 6f 75 6e 74 29 0a 20 20 22 55 73 65 20 42 55 46 46 45 ce.(buffer.account)..."Use.BUFFE
32620 52 20 74 6f 20 43 61 6c 63 75 6c 61 74 65 20 74 68 65 20 63 6c 65 61 72 65 64 20 6f 72 20 70 65 R.to.Calculate.the.cleared.or.pe
32640 6e 64 69 6e 67 20 62 61 6c 61 6e 63 65 20 6f 66 20 74 68 65 20 41 43 43 4f 55 4e 54 2e 22 0a 0a nding.balance.of.the.ACCOUNT."..
32660 20 20 3b 3b 20 74 68 65 73 65 20 76 61 72 73 20 61 72 65 20 62 75 66 66 65 72 20 6c 6f 63 61 6c ..;;.these.vars.are.buffer.local
32680 2c 20 6e 65 65 64 20 74 6f 20 68 6f 6c 64 20 74 68 65 6d 20 66 6f 72 20 75 73 65 20 69 6e 20 74 ,.need.to.hold.them.for.use.in.t
326a0 68 65 0a 20 20 3b 3b 20 74 65 6d 70 20 62 75 66 66 65 72 20 62 65 6c 6f 77 0a 0a 20 20 28 77 69 he...;;.temp.buffer.below....(wi
326c0 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 3b 3b 20 6e 6f 74 65 20 74 68 61 74 20 th-temp-buffer.....;;.note.that.
326e0 69 6e 20 74 68 65 20 6c 69 6e 65 20 62 65 6c 6f 77 2c 20 74 68 65 20 2d 2d 66 6f 72 6d 61 74 20 in.the.line.below,.the.--format.
32700 6f 70 74 69 6f 6e 20 69 73 0a 20 20 20 20 3b 3b 20 73 65 70 61 72 61 74 65 64 20 66 72 6f 6d 20 option.is.....;;.separated.from.
32720 74 68 65 20 61 63 74 75 61 6c 20 66 6f 72 6d 61 74 20 73 74 72 69 6e 67 2e 20 20 65 6d 61 63 73 the.actual.format.string...emacs
32740 20 64 6f 65 73 20 6e 6f 74 0a 20 20 20 20 3b 3b 20 73 70 6c 69 74 20 61 72 67 75 6d 65 6e 74 73 .does.not.....;;.split.arguments
32760 20 6c 69 6b 65 20 74 68 65 20 73 68 65 6c 6c 20 64 6f 65 73 2c 20 73 6f 20 79 6f 75 20 6e 65 65 .like.the.shell.does,.so.you.nee
32780 64 20 74 6f 0a 20 20 20 20 3b 3b 20 73 70 65 63 69 66 79 20 74 68 65 20 69 6e 64 69 76 69 64 75 d.to.....;;.specify.the.individu
327a0 61 6c 20 66 69 65 6c 64 73 20 69 6e 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 2e 0a 20 al.fields.in.the.command.line...
327c0 20 20 20 28 6c 65 64 67 65 72 2d 65 78 65 63 2d 6c 65 64 67 65 72 20 62 75 66 66 65 72 20 28 63 ...(ledger-exec-ledger.buffer.(c
327e0 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 urrent-buffer)..................
32800 20 20 20 20 20 20 20 22 62 61 6c 61 6e 63 65 22 20 22 2d 2d 72 65 61 6c 22 20 22 2d 2d 6c 69 6d ......."balance"."--real"."--lim
32820 69 74 22 20 22 63 6c 65 61 72 65 64 20 6f 72 20 70 65 6e 64 69 6e 67 22 20 22 2d 2d 65 6d 70 74 it"."cleared.or.pending"."--empt
32840 79 22 20 22 2d 2d 63 6f 6c 6c 61 70 73 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 y"."--collapse".................
32860 20 20 20 20 20 20 20 20 22 2d 2d 66 6f 72 6d 61 74 22 20 22 25 28 73 63 72 75 62 28 64 69 73 70 ........"--format"."%(scrub(disp
32880 6c 61 79 5f 74 6f 74 61 6c 29 29 22 20 61 63 63 6f 75 6e 74 29 0a 20 20 20 20 28 6c 65 64 67 65 lay_total))".account).....(ledge
328a0 72 2d 73 70 6c 69 74 2d 63 6f 6d 6d 6f 64 69 74 79 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 28 62 r-split-commodity-string......(b
328c0 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 28 70 uffer-substring-no-properties.(p
328e0 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 29 0a 0a 28 64 65 66 75 oint-min).(point-max)))))..(defu
32900 6e 20 6c 65 64 67 65 72 2d 64 69 73 70 6c 61 79 2d 62 61 6c 61 6e 63 65 20 28 29 0a 20 20 22 44 n.ledger-display-balance.()..."D
32920 69 73 70 6c 61 79 20 74 68 65 20 63 6c 65 61 72 65 64 2d 6f 72 2d 70 65 6e 64 69 6e 67 20 62 61 isplay.the.cleared-or-pending.ba
32940 6c 61 6e 63 65 2e 0a 41 6e 64 20 63 61 6c 63 75 6c 61 74 65 20 74 68 65 20 74 61 72 67 65 74 2d lance..And.calculate.the.target-
32960 64 65 6c 74 61 20 6f 66 20 74 68 65 20 61 63 63 6f 75 6e 74 20 62 65 69 6e 67 20 72 65 63 6f 6e delta.of.the.account.being.recon
32980 63 69 6c 65 64 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e 2d ciled."...(interactive)...(when-
329a0 6c 65 74 20 28 70 65 6e 64 69 6e 67 20 28 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 67 let.(pending.(ledger-reconcile-g
329c0 65 74 2d 63 6c 65 61 72 65 64 2d 6f 72 2d 70 65 6e 64 69 6e 67 2d 62 61 6c 61 6e 63 65 20 6c 65 et-cleared-or-pending-balance.le
329e0 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 6c 65 64 67 65 72 2d 62 75 66 20 6c 65 64 67 65 72 dger-reconcile-ledger-buf.ledger
32a00 2d 72 65 63 6f 6e 63 69 6c 65 2d 61 63 63 6f 75 6e 74 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 -reconcile-account)).....(let.((
32a20 6d 65 73 73 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 66 2d 6c 65 74 20 28 64 69 66 66 message............(if-let.(diff
32a40 20 28 61 6e 64 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 74 61 72 67 65 74 20 28 6c .(and.ledger-reconcile-target.(l
32a60 65 64 67 65 72 2d 73 75 62 74 72 61 63 74 2d 63 6f 6d 6d 6f 64 69 74 79 20 6c 65 64 67 65 72 2d edger-subtract-commodity.ledger-
32a80 72 65 63 6f 6e 63 69 6c 65 2d 74 61 72 67 65 74 20 70 65 6e 64 69 6e 67 29 29 29 0a 20 20 20 20 reconcile-target.pending))).....
32aa0 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...........(progn...............
32ac0 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 6c 61 73 74 2d 62 ...(setq.ledger-reconcile-last-b
32ae0 61 6c 61 6e 63 65 2d 65 71 75 61 6c 73 2d 74 61 72 67 65 74 20 28 7a 65 72 6f 70 20 28 63 61 72 alance-equals-target.(zerop.(car
32b00 20 64 69 66 66 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 .diff)))..................(forma
32b20 74 2d 6d 65 73 73 61 67 65 20 22 43 6c 65 61 72 65 64 20 61 6e 64 20 50 65 6e 64 69 6e 67 20 62 t-message."Cleared.and.Pending.b
32b40 61 6c 61 6e 63 65 3a 20 25 73 2c 20 20 20 44 69 66 66 65 72 65 6e 63 65 20 66 72 6f 6d 20 74 61 alance:.%s,...Difference.from.ta
32b60 72 67 65 74 3a 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rget:.%s".......................
32b80 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 63 6f 6d 6d 6f 64 69 74 79 2d 74 6f 2d ...........(ledger-commodity-to-
32ba0 73 74 72 69 6e 67 20 70 65 6e 64 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 string.pending).................
32bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 63 6f 6d 6d 6f 64 69 .................(ledger-commodi
32be0 74 79 2d 74 6f 2d 73 74 72 69 6e 67 20 64 69 66 66 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 ty-to-string.diff)))............
32c00 20 20 28 66 6f 72 6d 61 74 2d 6d 65 73 73 61 67 65 20 22 50 65 6e 64 69 6e 67 20 62 61 6c 61 6e ..(format-message."Pending.balan
32c20 63 65 3a 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ce:.%s".........................
32c40 20 20 20 20 20 28 6c 65 64 67 65 72 2d 63 6f 6d 6d 6f 64 69 74 79 2d 74 6f 2d 73 74 72 69 6e 67 .....(ledger-commodity-to-string
32c60 20 70 65 6e 64 69 6e 67 29 29 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 .pending))))).......(setq.ledger
32c80 2d 72 65 63 6f 6e 63 69 6c 65 2d 6c 61 73 74 2d 62 61 6c 61 6e 63 65 2d 6d 65 73 73 61 67 65 20 -reconcile-last-balance-message.
32ca0 6d 65 73 73 61 67 65 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 25 73 22 20 6d 65 73 message).......(message."%s".mes
32cc0 73 61 67 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 69 73 2d 73 74 64 69 6e sage))))..(defun.ledger-is-stdin
32ce0 20 28 66 69 6c 65 29 0a 20 20 22 54 72 75 65 20 69 66 20 6c 65 64 67 65 72 20 46 49 4c 45 20 69 .(file)..."True.if.ledger.FILE.i
32d00 73 20 73 74 61 6e 64 61 72 64 20 69 6e 70 75 74 2e 22 0a 20 20 28 6f 72 0a 20 20 20 28 65 71 75 s.standard.input."...(or....(equ
32d20 61 6c 20 66 69 6c 65 20 22 22 29 0a 20 20 20 28 65 71 75 61 6c 20 66 69 6c 65 20 22 3c 73 74 64 al.file."")....(equal.file."<std
32d40 69 6e 3e 22 29 0a 20 20 20 28 65 71 75 61 6c 20 66 69 6c 65 20 22 2f 64 65 76 2f 73 74 64 69 6e in>")....(equal.file."/dev/stdin
32d60 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 67 65 ")))..(defun.ledger-reconcile-ge
32d80 74 2d 62 75 66 66 65 72 20 28 77 68 65 72 65 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 62 75 66 t-buffer.(where)..."Return.a.buf
32da0 66 65 72 20 66 72 6f 6d 20 57 48 45 52 45 20 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 69 fer.from.WHERE.the.transaction.i
32dc0 73 2e 22 0a 20 20 28 69 66 20 28 62 75 66 66 65 72 70 20 28 63 61 72 20 77 68 65 72 65 29 29 0a s."...(if.(bufferp.(car.where)).
32de0 20 20 20 20 20 20 28 63 61 72 20 77 68 65 72 65 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 46 75 ......(car.where).....(error."Fu
32e00 6e 63 74 69 6f 6e 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 67 65 74 2d 62 75 66 66 nction.ledger-reconcile-get-buff
32e20 65 72 3a 20 42 75 66 66 65 72 20 6e 6f 74 20 73 65 74 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c er:.Buffer.not.set")))..(defun.l
32e40 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 69 6e 73 65 72 74 2d 65 66 66 65 63 74 69 76 65 edger-reconcile-insert-effective
32e60 2d 64 61 74 65 20 28 29 0a 20 20 22 50 72 6f 6d 70 74 20 66 6f 72 20 61 6e 20 65 66 66 65 63 74 -date.()..."Prompt.for.an.effect
32e80 69 76 65 20 64 61 74 65 20 61 6e 64 20 69 6e 73 65 72 74 20 69 74 20 61 74 20 70 6f 69 6e 74 2c ive.date.and.insert.it.at.point,
32ea0 20 69 66 20 65 6e 61 62 6c 65 64 2e 0a 0a 49 66 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 76 61 .if.enabled...If.the.value.of.va
32ec0 72 69 61 62 6c 65 20 60 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 69 6e 73 65 72 74 2d riable.`ledger-reconcile-insert-
32ee0 65 66 66 65 63 74 69 76 65 2d 64 61 74 65 27 0a 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 2c 20 69 effective-date'.is.a.function,.i
32f00 74 20 69 73 20 63 61 6c 6c 65 64 20 77 69 74 68 20 74 68 65 20 70 6f 69 6e 74 20 77 68 65 72 65 t.is.called.with.the.point.where
32f20 20 74 68 65 20 65 66 66 65 63 74 69 76 65 0a 64 61 74 65 20 77 6f 75 6c 64 20 62 65 20 69 6e 73 .the.effective.date.would.be.ins
32f40 65 72 74 65 64 2e 20 20 49 66 20 69 74 20 72 65 74 75 72 6e 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 70 erted...If.it.returns.non-nil,.p
32f60 72 6f 6d 70 74 20 66 6f 72 20 61 6e 0a 65 66 66 65 63 74 69 76 65 20 64 61 74 65 20 61 6e 64 20 rompt.for.an.effective.date.and.
32f80 69 6e 73 65 72 74 20 69 74 20 61 74 20 70 6f 69 6e 74 2e 20 20 49 66 20 69 74 20 69 73 20 6e 6f insert.it.at.point...If.it.is.no
32fa0 74 20 61 20 66 75 6e 63 74 69 6f 6e 2c 0a 64 6f 20 74 68 65 20 73 61 6d 65 20 69 66 20 69 74 73 t.a.function,.do.the.same.if.its
32fc0 20 76 61 6c 75 65 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2e 22 0a 20 20 28 77 68 65 6e 20 28 69 66 20 .value.is.non-nil."...(when.(if.
32fe0 28 66 75 6e 63 74 69 6f 6e 70 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 69 6e 73 65 (functionp.ledger-reconcile-inse
33000 72 74 2d 65 66 66 65 63 74 69 76 65 2d 64 61 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 rt-effective-date).............(
33020 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 20 28 66 75 6e 63 61 6c 6c 20 6c 65 64 67 65 72 2d 72 save-excursion.(funcall.ledger-r
33040 65 63 6f 6e 63 69 6c 65 2d 69 6e 73 65 72 74 2d 65 66 66 65 63 74 69 76 65 2d 64 61 74 65 29 29 econcile-insert-effective-date))
33060 0a 20 20 20 20 20 20 20 20 20 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 69 6e 73 65 ...........ledger-reconcile-inse
33080 72 74 2d 65 66 66 65 63 74 69 76 65 2d 64 61 74 65 29 0a 20 20 20 20 28 6c 65 64 67 65 72 2d 69 rt-effective-date).....(ledger-i
330a0 6e 73 65 72 74 2d 65 66 66 65 63 74 69 76 65 2d 64 61 74 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 nsert-effective-date)))..(defun.
330c0 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 74 6f 67 67 6c 65 20 28 29 0a 20 20 22 54 6f ledger-reconcile-toggle.()..."To
330e0 67 67 6c 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 72 61 6e 73 61 63 74 69 6f 6e 2c 20 61 6e ggle.the.current.transaction,.an
33100 64 20 6d 61 72 6b 20 74 68 65 20 72 65 63 6f 6e 63 69 6c 65 20 77 69 6e 64 6f 77 2e 22 0a 20 20 d.mark.the.reconcile.window."...
33120 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 (interactive)...(beginning-of-li
33140 6e 65 29 0a 20 20 28 6c 65 74 20 28 28 77 68 65 72 65 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f ne)...(let.((where.(get-text-pro
33160 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 77 68 65 72 65 29 29 0a 20 20 20 20 20 20 20 20 28 perty.(point).'where)).........(
33180 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 0a 20 20 20 20 20 20 20 20 73 74 61 inhibit-read-only.t).........sta
331a0 74 75 73 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 tus).....(when.(ledger-reconcile
331c0 2d 67 65 74 2d 62 75 66 66 65 72 20 77 68 65 72 65 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d 63 -get-buffer.where).......(with-c
331e0 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d urrent-buffer.(ledger-reconcile-
33200 67 65 74 2d 62 75 66 66 65 72 20 77 68 65 72 65 29 0a 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 get-buffer.where).........(ledge
33220 72 2d 6e 61 76 69 67 61 74 65 2d 74 6f 2d 6c 69 6e 65 20 28 63 64 72 20 77 68 65 72 65 29 29 0a r-navigate-to-line.(cdr.where)).
33240 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 63 68 61 72 29 0a 20 20 20 20 20 20 20 20 28 ........(forward-char).........(
33260 73 65 74 71 20 73 74 61 74 75 73 20 28 6c 65 64 67 65 72 2d 74 6f 67 67 6c 65 2d 63 75 72 72 65 setq.status.(ledger-toggle-curre
33280 6e 74 20 28 69 66 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 74 6f 67 67 6c 65 2d 74 nt.(if.ledger-reconcile-toggle-t
332a0 6f 2d 70 65 6e 64 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 o-pending.......................
332c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 70 65 6e 64 69 ..........................'pendi
332e0 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ng..............................
33300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 63 6c 65 61 72 65 64 29 29 29 0a 20 20 20 .................'cleared)))....
33320 20 20 20 20 20 3b 3b 20 41 73 6b 20 66 6f 72 20 65 66 66 65 63 74 69 76 65 20 64 61 74 65 20 26 .....;;.Ask.for.effective.date.&
33340 20 69 6e 73 65 72 74 20 69 74 2c 20 69 66 20 65 6e 61 62 6c 65 64 0a 20 20 20 20 20 20 20 20 28 .insert.it,.if.enabled.........(
33360 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 69 6e 73 65 72 74 2d 65 66 66 65 63 74 69 76 ledger-reconcile-insert-effectiv
33380 65 2d 64 61 74 65 29 29 0a 20 20 20 20 20 20 3b 3b 20 72 65 6d 6f 76 65 20 74 68 65 20 65 78 69 e-date)).......;;.remove.the.exi
333a0 73 74 69 6e 67 20 66 61 63 65 20 61 6e 64 20 61 64 64 20 74 68 65 20 6e 65 77 20 66 61 63 65 0a sting.face.and.add.the.new.face.
333c0 20 20 20 20 20 20 28 72 65 6d 6f 76 65 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 69 65 73 20 28 6c ......(remove-text-properties.(l
333e0 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 ine-beginning-position).........
33400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 2d 65 6e 64 2d ......................(line-end-
33420 70 6f 73 69 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 position).......................
33440 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 61 63 65 29 29 0a ........(list.'font-lock-face)).
33460 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 65 71 20 73 74 61 74 75 73 20 27 70 65 6e 64 69 6e 67 ......(cond.((eq.status.'pending
33480 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 64 64 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 )..............(add-text-propert
334a0 69 65 73 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 0a 20 20 ies.(line-beginning-position)...
334c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
334e0 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 (line-end-position).............
33500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 27 66 6f 6e ......................(list.'fon
33520 74 2d 6c 6f 63 6b 2d 66 61 63 65 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 72 65 63 6f 6e 63 69 t-lock-face.'ledger-font-reconci
33540 6c 65 72 2d 70 65 6e 64 69 6e 67 2d 66 61 63 65 20 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 ler-pending-face.)))............
33560 20 28 28 65 71 20 73 74 61 74 75 73 20 27 63 6c 65 61 72 65 64 29 0a 20 20 20 20 20 20 20 20 20 .((eq.status.'cleared)..........
33580 20 20 20 20 28 61 64 64 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 69 65 73 20 28 6c 69 6e 65 2d 62 ....(add-text-properties.(line-b
335a0 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 eginning-position)..............
335c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 .....................(line-end-p
335e0 6f 73 69 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 osition)........................
33600 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 61 63 65 ...........(list.'font-lock-face
33620 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 72 65 63 6f 6e 63 69 6c 65 72 2d 63 6c 65 61 72 65 64 .'ledger-font-reconciler-cleared
33640 2d 66 61 63 65 20 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 -face.))).............(t........
33660 20 20 20 20 20 20 28 61 64 64 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 69 65 73 20 28 6c 69 6e 65 ......(add-text-properties.(line
33680 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 -beginning-position)............
336a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 2d 65 6e 64 .......................(line-end
336c0 2d 70 6f 73 69 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -position)......................
336e0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 61 .............(list.'font-lock-fa
33700 63 65 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 72 65 63 6f 6e 63 69 6c 65 72 2d 75 6e 63 6c 65 ce.'ledger-font-reconciler-uncle
33720 61 72 65 64 2d 66 61 63 65 20 29 29 29 29 29 0a 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e ared-face.))))).....(forward-lin
33740 65 29 0a 20 20 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 28 e).....(beginning-of-line).....(
33760 6c 65 64 67 65 72 2d 64 69 73 70 6c 61 79 2d 62 61 6c 61 6e 63 65 29 29 29 0a 0a 28 64 65 66 75 ledger-display-balance)))..(defu
33780 6e 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 72 65 66 72 65 73 68 20 28 29 0a 20 20 n.ledger-reconcile-refresh.()...
337a0 22 46 6f 72 63 65 20 74 68 65 20 72 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 20 77 69 6e 64 6f 77 "Force.the.reconciliation.window
337c0 20 74 6f 20 72 65 66 72 65 73 68 2e 0a 52 65 74 75 72 6e 20 74 68 65 20 6e 75 6d 62 65 72 20 6f .to.refresh..Return.the.number.o
337e0 66 20 75 6e 63 6c 65 61 72 65 64 20 78 61 63 74 73 20 66 6f 75 6e 64 2e 22 0a 20 20 28 69 6e 74 f.uncleared.xacts.found."...(int
33800 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 69 6e 68 69 62 69 74 2d 72 65 61 64 2d eractive)...(let.((inhibit-read-
33820 6f 6e 6c 79 20 74 29 0a 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 28 63 6f 75 6e 74 2d 6c 69 6e only.t).........(line.(count-lin
33840 65 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 29 29 29 29 0a 20 20 20 20 28 65 es.(point-min).(point)))).....(e
33860 72 61 73 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 28 70 72 6f 67 31 0a 20 20 20 20 20 20 20 20 rase-buffer).....(prog1.........
33880 28 6c 65 64 67 65 72 2d 64 6f 2d 72 65 63 6f 6e 63 69 6c 65 20 6c 65 64 67 65 72 2d 72 65 63 6f (ledger-do-reconcile.ledger-reco
338a0 6e 63 69 6c 65 2d 73 6f 72 74 2d 6b 65 79 29 0a 20 20 20 20 20 20 28 73 65 74 2d 62 75 66 66 65 ncile-sort-key).......(set-buffe
338c0 72 2d 6d 6f 64 69 66 69 65 64 2d 70 20 74 29 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 r-modified-p.t).......(ledger-re
338e0 63 6f 6e 63 69 6c 65 2d 65 6e 73 75 72 65 2d 78 61 63 74 73 2d 76 69 73 69 62 6c 65 29 0a 20 20 concile-ensure-xacts-visible)...
33900 20 20 20 20 28 6c 65 64 67 65 72 2d 64 69 73 70 6c 61 79 2d 62 61 6c 61 6e 63 65 29 0a 20 20 20 ....(ledger-display-balance)....
33920 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 ...(goto-char.(point-min))......
33940 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 6c 69 6e 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 .(forward-line.line))))..(defun.
33960 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 72 65 66 72 65 73 68 2d 61 66 74 65 72 2d 73 ledger-reconcile-refresh-after-s
33980 61 76 65 20 28 29 0a 20 20 22 52 65 66 72 65 73 68 20 74 68 65 20 72 65 63 6f 6e 63 69 6c 65 20 ave.()..."Refresh.the.reconcile.
339a0 77 69 6e 64 6f 77 20 61 66 74 65 72 20 74 68 65 20 6c 65 64 67 65 72 20 62 75 66 66 65 72 20 69 window.after.the.ledger.buffer.i
339c0 73 20 73 61 76 65 64 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 75 72 62 75 66 77 69 6e 20 28 67 65 s.saved."...(let.((curbufwin.(ge
339e0 74 2d 62 75 66 66 65 72 2d 77 69 6e 64 6f 77 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 t-buffer-window.(current-buffer)
33a00 29 29 0a 20 20 20 20 20 20 20 20 28 63 75 72 70 6f 69 6e 74 20 28 70 6f 69 6e 74 29 29 0a 20 20 )).........(curpoint.(point))...
33a20 20 20 20 20 20 20 28 72 65 63 6f 6e 63 69 6c 65 2d 62 75 66 20 28 67 65 74 2d 62 75 66 66 65 72 ......(reconcile-buf.(get-buffer
33a40 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 29 .ledger-reconcile-buffer-name)))
33a60 0a 20 20 20 20 28 77 68 65 6e 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 72 65 63 6f 6e 63 .....(when.(buffer-live-p.reconc
33a80 69 6c 65 2d 62 75 66 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 ile-buf).......(with-current-buf
33aa0 66 65 72 20 72 65 63 6f 6e 63 69 6c 65 2d 62 75 66 0a 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 fer.reconcile-buf.........(ledge
33ac0 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 72 65 66 72 65 73 68 29 0a 20 20 20 20 20 20 20 20 28 73 65 r-reconcile-refresh).........(se
33ae0 74 2d 62 75 66 66 65 72 2d 6d 6f 64 69 66 69 65 64 2d 70 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 t-buffer-modified-p.nil)).......
33b00 28 77 68 65 6e 20 63 75 72 62 75 66 77 69 6e 0a 20 20 20 20 20 20 20 20 28 73 65 6c 65 63 74 2d (when.curbufwin.........(select-
33b20 77 69 6e 64 6f 77 20 63 75 72 62 75 66 77 69 6e 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d window.curbufwin).........(goto-
33b40 63 68 61 72 20 63 75 72 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 28 72 65 63 65 6e 74 65 72 char.curpoint).........(recenter
33b60 29 0a 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 68 69 67 68 6c 69 67 68 74 2d 78 61 63 74 ).........(ledger-highlight-xact
33b80 2d 75 6e 64 65 72 2d 70 6f 69 6e 74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 -under-point)))))..(defun.ledger
33ba0 2d 72 65 63 6f 6e 63 69 6c 65 2d 61 64 64 20 28 64 61 74 65 20 78 61 63 74 29 0a 20 20 22 55 73 -reconcile-add.(date.xact)..."Us
33bc0 65 20 6c 65 64 67 65 72 20 78 61 63 74 20 74 6f 20 61 64 64 20 61 20 6e 65 77 20 74 72 61 6e 73 e.ledger.xact.to.add.a.new.trans
33be0 61 63 74 69 6f 6e 2e 0a 0a 57 68 65 6e 20 63 61 6c 6c 65 64 20 69 6e 74 65 72 61 63 74 69 76 65 action...When.called.interactive
33c00 6c 79 2c 20 70 72 6f 6d 70 74 20 66 6f 72 20 44 41 54 45 2c 20 74 68 65 6e 20 58 41 43 54 2e 22 ly,.prompt.for.DATE,.then.XACT."
33c20 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 28 6c 69 73 74 20 28 6c 65 64 67 65 72 ...(interactive....(list.(ledger
33c40 2d 72 65 61 64 2d 64 61 74 65 20 22 44 61 74 65 3a 20 22 29 0a 20 20 20 20 20 20 20 20 20 28 72 -read-date."Date:.")..........(r
33c60 65 61 64 2d 73 74 72 69 6e 67 20 22 54 72 61 6e 73 61 63 74 69 6f 6e 3a 20 22 20 6e 69 6c 20 27 ead-string."Transaction:.".nil.'
33c80 6c 65 64 67 65 72 2d 6d 69 6e 69 62 75 66 66 65 72 2d 68 69 73 74 6f 72 79 29 29 29 0a 20 20 28 ledger-minibuffer-history)))...(
33ca0 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e with-current-buffer.ledger-recon
33cc0 63 69 6c 65 2d 6c 65 64 67 65 72 2d 62 75 66 0a 20 20 20 20 28 6c 65 64 67 65 72 2d 61 64 64 2d cile-ledger-buf.....(ledger-add-
33ce0 74 72 61 6e 73 61 63 74 69 6f 6e 20 28 63 6f 6e 63 61 74 20 64 61 74 65 20 22 20 22 20 78 61 63 transaction.(concat.date.".".xac
33d00 74 29 29 29 0a 20 20 28 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 72 65 66 72 65 73 68 t)))...(ledger-reconcile-refresh
33d20 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 64 65 6c 65 ))..(defun.ledger-reconcile-dele
33d40 74 65 20 28 29 0a 20 20 22 44 65 6c 65 74 65 20 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 te.()..."Delete.the.transactions
33d60 20 70 6f 69 6e 74 65 64 20 74 6f 20 69 6e 20 74 68 65 20 72 65 63 6f 6e 63 69 6c 65 20 77 69 6e .pointed.to.in.the.reconcile.win
33d80 64 6f 77 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 77 dow."...(interactive)...(let.((w
33da0 68 65 72 65 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 here.(get-text-property.(point).
33dc0 27 77 68 65 72 65 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6c 65 64 67 65 72 2d 72 65 63 6f 'where))).....(when.(ledger-reco
33de0 6e 63 69 6c 65 2d 67 65 74 2d 62 75 66 66 65 72 20 77 68 65 72 65 29 0a 20 20 20 20 20 20 28 77 ncile-get-buffer.where).......(w
33e00 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 6c 65 64 67 65 72 2d 72 65 63 6f 6e ith-current-buffer.(ledger-recon
33e20 63 69 6c 65 2d 67 65 74 2d 62 75 66 66 65 72 20 77 68 65 72 65 29 0a 20 20 20 20 20 20 20 20 28 cile-get-buffer.where).........(
33e40 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 74 6f 2d 6c 69 6e 65 20 28 63 64 72 20 77 68 65 ledger-navigate-to-line.(cdr.whe
33e60 72 65 29 29 0a 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 64 65 6c 65 74 65 2d 63 75 72 72 re)).........(ledger-delete-curr
33e80 65 6e 74 2d 74 72 61 6e 73 61 63 74 69 6f 6e 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 ent-transaction.(point))).......
33ea0 28 6c 65 74 20 28 28 69 6e 68 69 62 69 74 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 29 0a 20 20 20 (let.((inhibit-read-only.t))....
33ec0 20 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e .....(delete-region.(line-beginn
33ee0 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ing-position)...................
33f00 20 20 20 20 20 28 6d 69 6e 20 28 31 2b 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e .....(min.(1+.(line-end-position
33f20 29 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 2d 62 75 )).(point-max))).........(set-bu
33f40 66 66 65 72 2d 6d 6f 64 69 66 69 65 64 2d 70 20 74 29 29 0a 20 20 20 20 20 20 28 6c 65 64 67 65 ffer-modified-p.t)).......(ledge
33f60 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 72 65 66 72 65 73 68 29 0a 20 20 20 20 20 20 28 6c 65 64 67 r-reconcile-refresh).......(ledg
33f80 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 76 69 73 69 74 20 74 29 29 29 29 0a 0a 28 64 65 66 75 6e er-reconcile-visit.t))))..(defun
33fa0 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 76 69 73 69 74 20 28 26 6f 70 74 69 6f 6e .ledger-reconcile-visit.(&option
33fc0 61 6c 20 63 6f 6d 65 2d 62 61 63 6b 29 0a 20 20 22 52 65 63 65 6e 74 65 72 20 6c 65 64 67 65 72 al.come-back)..."Recenter.ledger
33fe0 20 62 75 66 66 65 72 20 6f 6e 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 61 6e 64 20 43 4f 4d 45 2d .buffer.on.transaction.and.COME-
34000 42 41 43 4b 20 69 66 20 6e 6f 6e 2d 6e 69 6c 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 BACK.if.non-nil."...(interactive
34020 29 0a 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 28 6c 65 74 2a 20 )...(beginning-of-line)...(let*.
34040 28 28 77 68 65 72 65 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 31 2b 20 28 ((where.(get-text-property.(1+.(
34060 70 6f 69 6e 74 29 29 20 27 77 68 65 72 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 61 72 67 65 point)).'where))..........(targe
34080 74 2d 62 75 66 66 65 72 20 28 69 66 20 77 68 65 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 t-buffer.(if.where..............
340a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 ...............(ledger-reconcile
340c0 2d 67 65 74 2d 62 75 66 66 65 72 20 77 68 65 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 -get-buffer.where)..............
340e0 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 75 72 .............nil))..........(cur
34100 2d 77 69 6e 20 28 67 65 74 2d 62 75 66 66 65 72 2d 77 69 6e 64 6f 77 20 28 67 65 74 2d 62 75 66 -win.(get-buffer-window.(get-buf
34120 66 65 72 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 62 75 66 66 65 72 2d 6e 61 6d 65 fer.ledger-reconcile-buffer-name
34140 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 74 61 72 67 65 74 2d 62 75 66 66 65 72 0a 20 20 20 )))).....(when.target-buffer....
34160 20 20 20 28 73 77 69 74 63 68 2d 74 6f 2d 62 75 66 66 65 72 2d 6f 74 68 65 72 2d 77 69 6e 64 6f ...(switch-to-buffer-other-windo
34180 77 20 74 61 72 67 65 74 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6e w.target-buffer).......(ledger-n
341a0 61 76 69 67 61 74 65 2d 74 6f 2d 6c 69 6e 65 20 28 63 64 72 20 77 68 65 72 65 29 29 0a 20 20 20 avigate-to-line.(cdr.where))....
341c0 20 20 20 28 66 6f 72 77 61 72 64 2d 63 68 61 72 29 0a 20 20 20 20 20 20 28 72 65 63 65 6e 74 65 ...(forward-char).......(recente
341e0 72 29 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 68 69 67 68 6c 69 67 68 74 2d 78 61 63 74 2d r).......(ledger-highlight-xact-
34200 75 6e 64 65 72 2d 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 63 68 61 72 under-point).......(forward-char
34220 20 2d 31 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 63 6f 6d 65 2d 62 61 63 6b 20 .-1).......(when.(and.come-back.
34240 63 75 72 2d 77 69 6e 29 0a 20 20 20 20 20 20 20 20 28 73 65 6c 65 63 74 2d 77 69 6e 64 6f 77 20 cur-win).........(select-window.
34260 63 75 72 2d 77 69 6e 29 0a 20 20 20 20 20 20 20 20 28 67 65 74 2d 62 75 66 66 65 72 20 6c 65 64 cur-win).........(get-buffer.led
34280 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 29 29 29 0a 0a ger-reconcile-buffer-name)))))..
342a0 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 73 61 76 65 20 28 29 .(defun.ledger-reconcile-save.()
342c0 0a 20 20 22 53 61 76 65 20 74 68 65 20 6c 65 64 67 65 72 20 62 75 66 66 65 72 2e 22 0a 20 20 28 ..."Save.the.ledger.buffer."...(
342e0 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 69 74 68 2d 73 65 6c 65 63 74 65 64 2d 77 69 interactive)...(with-selected-wi
34300 6e 64 6f 77 20 28 73 65 6c 65 63 74 65 64 2d 77 69 6e 64 6f 77 29 20 3b 20 72 65 73 74 6f 72 69 ndow.(selected-window).;.restori
34320 6e 67 20 77 69 6e 64 6f 77 20 69 73 20 6e 65 65 64 65 64 20 62 65 63 61 75 73 65 20 61 66 74 65 ng.window.is.needed.because.afte
34340 72 2d 73 61 76 65 2d 68 6f 6f 6b 20 77 69 6c 6c 20 6d 6f 64 69 66 79 20 77 69 6e 64 6f 77 20 61 r-save-hook.will.modify.window.a
34360 6e 64 20 62 75 66 66 65 72 73 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 nd.buffers.....(with-current-buf
34380 66 65 72 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 6c 65 64 67 65 72 2d 62 75 66 0a fer.ledger-reconcile-ledger-buf.
343a0 20 20 20 20 20 20 28 62 61 73 69 63 2d 73 61 76 65 2d 62 75 66 66 65 72 29 29 29 29 0a 0a 0a 28 ......(basic-save-buffer))))...(
343c0 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 66 69 6e 69 73 68 20 28 29 defun.ledger-reconcile-finish.()
343e0 0a 20 20 22 4d 61 72 6b 20 61 6c 6c 20 70 65 6e 64 69 6e 67 20 70 6f 73 74 69 6e 67 20 6f 72 20 ..."Mark.all.pending.posting.or.
34400 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 61 73 20 63 6c 65 61 72 65 64 2e 0a 44 65 70 65 6e 64 73 transactions.as.cleared..Depends
34420 20 6f 6e 20 6c 65 64 67 65 72 2d 63 6c 65 61 72 2d 77 68 6f 6c 65 2d 74 72 61 6e 73 61 63 74 69 .on.ledger-clear-whole-transacti
34440 6f 6e 73 2c 20 73 61 76 65 20 74 68 65 20 62 75 66 66 65 72 73 20 61 6e 64 0a 65 78 69 74 20 72 ons,.save.the.buffers.and.exit.r
34460 65 63 6f 6e 63 69 6c 65 20 6d 6f 64 65 20 69 66 20 60 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 econcile.mode.if.`ledger-reconci
34480 6c 65 2d 66 69 6e 69 73 68 2d 66 6f 72 63 65 2d 71 75 69 74 27 22 0a 20 20 28 69 6e 74 65 72 61 le-finish-force-quit'"...(intera
344a0 63 74 69 76 65 29 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 67 6f ctive)...(save-excursion.....(go
344c0 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 to-char.(point-min)).....(while.
344e0 28 6e 6f 74 20 28 65 6f 62 70 29 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 77 68 65 72 65 20 (not.(eobp)).......(let.((where.
34500 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 77 68 65 72 (get-text-property.(point).'wher
34520 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 61 63 65 20 20 28 67 65 74 2d 74 65 78 74 e)).............(face..(get-text
34540 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 61 63 -property.(point).'font-lock-fac
34560 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 65 71 20 66 61 63 65 20 27 6c 65 64 67 65 e))).........(if.(eq.face.'ledge
34580 72 2d 66 6f 6e 74 2d 72 65 63 6f 6e 63 69 6c 65 72 2d 70 65 6e 64 69 6e 67 2d 66 61 63 65 29 0a r-font-reconciler-pending-face).
345a0 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 ............(with-current-buffer
345c0 20 28 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 67 65 74 2d 62 75 66 66 65 72 20 77 68 .(ledger-reconcile-get-buffer.wh
345e0 65 72 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 ere)...............(ledger-navig
34600 61 74 65 2d 74 6f 2d 6c 69 6e 65 20 28 63 64 72 20 77 68 65 72 65 29 29 0a 20 20 20 20 20 20 20 ate-to-line.(cdr.where))........
34620 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 74 6f 67 67 6c 65 2d 63 75 72 72 65 6e 74 20 27 63 .......(ledger-toggle-current.'c
34640 6c 65 61 72 65 64 29 29 29 29 0a 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 leared)))).......(forward-line.1
34660 29 29 29 0a 20 20 28 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 73 61 76 65 29 0a 20 20 )))...(ledger-reconcile-save)...
34680 28 77 68 65 6e 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 66 69 6e 69 73 68 2d 66 6f (when.ledger-reconcile-finish-fo
346a0 72 63 65 2d 71 75 69 74 0a 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 71 rce-quit.....(ledger-reconcile-q
346c0 75 69 74 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 uit)))...(defun.ledger-reconcile
346e0 2d 71 75 69 74 20 28 29 0a 20 20 22 51 75 69 74 20 74 68 65 20 72 65 63 6f 6e 63 69 6c 65 20 77 -quit.()..."Quit.the.reconcile.w
34700 69 6e 64 6f 77 20 77 69 74 68 6f 75 74 20 73 61 76 69 6e 67 20 6c 65 64 67 65 72 20 62 75 66 66 indow.without.saving.ledger.buff
34720 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 72 65 er."...(interactive)...(let.((re
34740 63 6f 6e 63 69 6c 65 2d 62 75 66 20 28 67 65 74 2d 62 75 66 66 65 72 20 6c 65 64 67 65 72 2d 72 concile-buf.(get-buffer.ledger-r
34760 65 63 6f 6e 63 69 6c 65 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 62 econcile-buffer-name)).........b
34780 75 66 29 0a 20 20 20 20 28 69 66 20 72 65 63 6f 6e 63 69 6c 65 2d 62 75 66 0a 20 20 20 20 20 20 uf).....(if.reconcile-buf.......
347a0 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 72 65 63 6f 6e 63 69 6c 65 ..(with-current-buffer.reconcile
347c0 2d 62 75 66 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 -buf...........(ledger-reconcile
347e0 2d 71 75 69 74 2d 63 6c 65 61 6e 75 70 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 62 -quit-cleanup)...........(setq.b
34800 75 66 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 6c 65 64 67 65 72 2d 62 75 66 29 0a uf.ledger-reconcile-ledger-buf).
34820 20 20 20 20 20 20 20 20 20 20 3b 3b 20 4d 61 6b 65 20 73 75 72 65 20 79 6f 75 20 64 65 6c 65 74 ..........;;.Make.sure.you.delet
34840 65 20 74 68 65 20 77 69 6e 64 6f 77 20 62 65 66 6f 72 65 20 79 6f 75 20 64 65 6c 65 74 65 20 74 e.the.window.before.you.delete.t
34860 68 65 20 62 75 66 66 65 72 2c 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6f 74 68 65 72 77 69 73 he.buffer,...........;;.otherwis
34880 65 2c 20 6d 61 64 6e 65 73 73 20 65 6e 73 75 65 73 0a 20 20 20 20 20 20 20 20 20 20 28 64 65 6c e,.madness.ensues...........(del
348a0 65 74 65 2d 77 69 6e 64 6f 77 20 28 67 65 74 2d 62 75 66 66 65 72 2d 77 69 6e 64 6f 77 20 72 65 ete-window.(get-buffer-window.re
348c0 63 6f 6e 63 69 6c 65 2d 62 75 66 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 concile-buf))...........(kill-bu
348e0 66 66 65 72 20 72 65 63 6f 6e 63 69 6c 65 2d 62 75 66 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 ffer.reconcile-buf)...........(s
34900 65 74 2d 77 69 6e 64 6f 77 2d 62 75 66 66 65 72 20 28 73 65 6c 65 63 74 65 64 2d 77 69 6e 64 6f et-window-buffer.(selected-windo
34920 77 29 20 62 75 66 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e w).buf)))))..(defun.ledger-recon
34940 63 69 6c 65 2d 71 75 69 74 2d 63 6c 65 61 6e 75 70 20 28 29 0a 20 20 22 43 6c 65 61 6e 75 70 20 cile-quit-cleanup.()..."Cleanup.
34960 61 6c 6c 20 68 6f 6f 6b 73 20 65 73 74 61 62 6c 69 73 68 65 64 20 62 79 20 72 65 63 6f 6e 63 69 all.hooks.established.by.reconci
34980 6c 65 20 6d 6f 64 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 le.mode."...(interactive)...(let
349a0 20 28 28 62 75 66 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 6c 65 64 67 65 72 2d 62 .((buf.ledger-reconcile-ledger-b
349c0 75 66 29 29 0a 20 20 20 20 28 69 66 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 62 75 66 29 uf)).....(if.(buffer-live-p.buf)
349e0 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 .........(with-current-buffer.bu
34a00 66 0a 20 20 20 20 20 20 20 20 20 20 28 72 65 6d 6f 76 65 2d 68 6f 6f 6b 20 27 61 66 74 65 72 2d f...........(remove-hook.'after-
34a20 73 61 76 65 2d 68 6f 6f 6b 20 27 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 72 65 66 72 save-hook.'ledger-reconcile-refr
34a40 65 73 68 2d 61 66 74 65 72 2d 73 61 76 65 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 esh-after-save.t)...........(whe
34a60 6e 20 6c 65 64 67 65 72 2d 6e 61 72 72 6f 77 2d 6f 6e 2d 72 65 63 6f 6e 63 69 6c 65 0a 20 20 20 n.ledger-narrow-on-reconcile....
34a80 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d 6d 6f 64 65 20 2d 31 29 0a .........(ledger-occur-mode.-1).
34aa0 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 68 69 67 68 6c 69 67 68 74 2d 78 61 ............(ledger-highlight-xa
34ac0 63 74 2d 75 6e 64 65 72 2d 70 6f 69 6e 74 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 ct-under-point))))))..(defun.led
34ae0 67 65 72 2d 6d 61 72 6b 65 72 2d 77 68 65 72 65 2d 78 61 63 74 2d 69 73 20 28 65 6d 61 63 73 2d ger-marker-where-xact-is.(emacs-
34b00 78 61 63 74 20 70 6f 73 74 69 6e 67 29 0a 20 20 22 46 69 6e 64 20 74 68 65 20 70 6f 73 69 74 69 xact.posting)..."Find.the.positi
34b20 6f 6e 20 6f 66 20 74 68 65 20 45 4d 41 43 53 2d 58 41 43 54 20 69 6e 20 74 68 65 20 60 6c 65 64 on.of.the.EMACS-XACT.in.the.`led
34b40 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 6c 65 64 67 65 72 2d 62 75 66 27 2e 0a 50 4f 53 54 49 ger-reconcile-ledger-buf'..POSTI
34b60 4e 47 20 69 73 20 75 73 65 64 20 69 6e 20 60 6c 65 64 67 65 72 2d 63 6c 65 61 72 2d 77 68 6f 6c NG.is.used.in.`ledger-clear-whol
34b80 65 2d 74 72 61 6e 73 61 63 74 69 6f 6e 73 27 20 69 73 20 6e 69 6c 2e 22 0a 20 20 28 6c 65 74 20 e-transactions'.is.nil."...(let.
34ba0 28 28 62 75 66 20 28 69 66 20 28 6c 65 64 67 65 72 2d 69 73 2d 73 74 64 69 6e 20 28 6e 74 68 20 ((buf.(if.(ledger-is-stdin.(nth.
34bc0 30 20 65 6d 61 63 73 2d 78 61 63 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0.emacs-xact))..................
34be0 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 6c 65 64 67 65 72 2d 62 75 66 0a 20 20 20 20 ledger-reconcile-ledger-buf.....
34c00 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6e 64 2d 66 69 6c 65 2d 6e 6f 73 65 6c 65 63 74 20 28 ...........(find-file-noselect.(
34c20 6e 74 68 20 30 20 65 6d 61 63 73 2d 78 61 63 74 29 29 29 29 29 0a 20 20 20 20 28 63 6f 6e 73 0a nth.0.emacs-xact))))).....(cons.
34c40 20 20 20 20 20 62 75 66 0a 20 20 20 20 20 28 69 66 20 28 6f 72 20 6c 65 64 67 65 72 2d 63 6c 65 .....buf......(if.(or.ledger-cle
34c60 61 72 2d 77 68 6f 6c 65 2d 74 72 61 6e 73 61 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 20 ar-whole-transactions...........
34c80 20 20 20 3b 3b 20 54 68 65 20 70 6f 73 74 69 6e 67 20 6d 69 67 68 74 20 6e 6f 74 20 62 65 20 70 ...;;.The.posting.might.not.be.p
34ca0 61 72 74 20 6f 66 20 74 68 65 20 6c 65 64 67 65 72 20 62 75 66 66 65 72 2e 20 54 68 69 73 20 63 art.of.the.ledger.buffer..This.c
34cc0 61 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 68 61 70 70 65 6e 20 69 66 20 74 68 65 an..............;;.happen.if.the
34ce0 20 61 63 63 6f 75 6e 74 20 74 6f 20 72 65 63 6f 6e 63 69 6c 65 20 69 73 20 74 68 65 20 64 65 66 .account.to.reconcile.is.the.def
34d00 61 75 6c 74 20 61 63 63 6f 75 6e 74 2e 20 49 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b ault.account..In..............;;
34d20 20 74 68 61 74 20 63 61 73 65 2c 20 77 65 20 6a 75 73 74 20 62 65 68 61 76 65 20 61 73 20 69 66 .that.case,.we.just.behave.as.if
34d40 20 6c 65 64 67 65 72 2d 63 6c 65 61 72 2d 77 68 6f 6c 65 2d 74 72 61 6e 73 61 63 74 69 6f 6e 73 .ledger-clear-whole-transactions
34d60 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 77 61 73 20 74 75 72 6e 65 64 20 6f 6e 2e 20 ..............;;.was.turned.on..
34d80 53 65 65 20 23 35 38 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 2e 0a 20 20 20 20 20 20 20 20 20 See.#58.for.more.info...........
34da0 20 20 20 20 28 3d 20 2d 31 20 28 6e 74 68 20 30 20 70 6f 73 74 69 6e 67 29 29 29 0a 20 20 20 20 ....(=.-1.(nth.0.posting))).....
34dc0 20 20 20 20 20 28 6e 74 68 20 31 20 65 6d 61 63 73 2d 78 61 63 74 29 20 20 3b 3b 20 72 65 74 75 .....(nth.1.emacs-xact)..;;.retu
34de0 72 6e 20 6c 69 6e 65 2d 6e 6f 20 6f 66 20 78 61 63 74 0a 20 20 20 20 20 20 20 28 6e 74 68 20 30 rn.line-no.of.xact........(nth.0
34e00 20 70 6f 73 74 69 6e 67 29 29 29 29 29 20 3b 3b 20 72 65 74 75 72 6e 20 6c 69 6e 65 2d 6e 6f 20 .posting))))).;;.return.line-no.
34e20 6f 66 20 70 6f 73 74 69 6e 67 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 of.posting..(defun.ledger-reconc
34e40 69 6c 65 2d 63 6f 6d 70 69 6c 65 2d 66 6f 72 6d 61 74 2d 73 74 72 69 6e 67 20 28 66 73 74 72 29 ile-compile-format-string.(fstr)
34e60 0a 20 20 22 52 65 74 75 72 6e 20 61 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 69 6d 70 6c 65 ..."Return.a.function.that.imple
34e80 6d 65 6e 74 73 20 74 68 65 20 66 6f 72 6d 61 74 20 73 74 72 69 6e 67 20 69 6e 20 46 53 54 52 2e ments.the.format.string.in.FSTR.
34ea0 22 0a 20 20 28 6c 65 74 20 28 66 69 65 6c 64 73 0a 20 20 20 20 20 20 20 20 28 73 74 61 72 74 20 "...(let.(fields.........(start.
34ec0 30 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 28 5c 0)).....(while.(string-match."(\
34ee0 5c 28 2e 2a 3f 5c 5c 29 29 22 20 66 73 74 72 20 73 74 61 72 74 29 0a 20 20 20 20 20 20 28 73 65 \(.*?\\))".fstr.start).......(se
34f00 74 71 20 66 69 65 6c 64 73 20 28 63 6f 6e 73 20 28 69 6e 74 65 72 6e 20 28 6d 61 74 63 68 2d 73 tq.fields.(cons.(intern.(match-s
34f20 74 72 69 6e 67 20 31 20 66 73 74 72 29 29 20 66 69 65 6c 64 73 29 29 0a 20 20 20 20 20 20 28 73 tring.1.fstr)).fields)).......(s
34f40 65 74 71 20 73 74 61 72 74 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 29 0a 20 20 20 20 28 73 etq.start.(match-end.0))).....(s
34f60 65 74 71 20 66 69 65 6c 64 73 20 28 63 6c 2d 6c 69 73 74 2a 20 27 66 6f 72 6d 61 74 20 28 72 65 etq.fields.(cl-list*.'format.(re
34f80 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 20 22 28 2e 2a 3f 29 22 20 22 place-regexp-in-string."(.*?)"."
34fa0 22 20 66 73 74 72 29 20 28 6e 72 65 76 65 72 73 65 20 66 69 65 6c 64 73 29 29 29 0a 20 20 20 20 ".fstr).(nreverse.fields))).....
34fc0 60 28 6c 61 6d 62 64 61 20 28 64 61 74 65 20 63 6f 64 65 20 73 74 61 74 75 73 20 70 61 79 65 65 `(lambda.(date.code.status.payee
34fe0 20 61 63 63 6f 75 6e 74 20 61 6d 6f 75 6e 74 29 0a 20 20 20 20 20 20 20 2c 66 69 65 6c 64 73 29 .account.amount)........,fields)
35000 29 29 0a 0a 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 66 6f ))....(defun.ledger-reconcile-fo
35020 72 6d 61 74 2d 70 6f 73 74 69 6e 67 20 28 62 65 67 20 77 68 65 72 65 20 66 6d 74 20 64 61 74 65 rmat-posting.(beg.where.fmt.date
35040 20 63 6f 64 65 20 73 74 61 74 75 73 20 70 61 79 65 65 20 61 63 63 6f 75 6e 74 20 61 6d 6f 75 6e .code.status.payee.account.amoun
35060 74 29 0a 20 20 22 46 6f 72 6d 61 74 20 70 6f 73 74 69 6e 67 20 66 6f 72 20 74 68 65 20 72 65 63 t)..."Format.posting.for.the.rec
35080 6f 6e 63 69 6c 65 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 6e 73 65 72 74 20 28 66 75 6e 63 61 oncile.buffer."...(insert.(funca
350a0 6c 6c 20 66 6d 74 20 64 61 74 65 20 63 6f 64 65 20 73 74 61 74 75 73 20 70 61 79 65 65 20 61 63 ll.fmt.date.code.status.payee.ac
350c0 63 6f 75 6e 74 20 61 6d 6f 75 6e 74 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 count.amount))..................
350e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 53 65 74 20 66 61 ........................;.Set.fa
35100 63 65 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 63 6c 65 61 72 65 64 20 73 74 61 74 75 73 0a 20 ce.depending.on.cleared.status..
35120 20 28 69 66 20 73 74 61 74 75 73 0a 20 20 20 20 20 20 28 69 66 20 28 65 71 20 73 74 61 74 75 73 .(if.status.......(if.(eq.status
35140 20 27 70 65 6e 64 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 2d 74 65 78 74 2d 70 .'pending)...........(set-text-p
35160 72 6f 70 65 72 74 69 65 73 20 62 65 67 20 28 31 2d 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 roperties.beg.(1-.(point))......
35180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 ..........................(list.
351a0 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 61 63 65 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 72 65 63 'font-lock-face.'ledger-font-rec
351c0 6f 6e 63 69 6c 65 72 2d 70 65 6e 64 69 6e 67 2d 66 61 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 onciler-pending-face............
351e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 77 68 65 72 65 ..........................'where
35200 20 77 68 65 72 65 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 .where)).........(set-text-prope
35220 72 74 69 65 73 20 62 65 67 20 28 31 2d 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 rties.beg.(1-.(point))..........
35240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 27 66 6f 6e 74 2d ....................(list.'font-
35260 6c 6f 63 6b 2d 66 61 63 65 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 72 65 63 6f 6e 63 69 6c 65 lock-face.'ledger-font-reconcile
35280 72 2d 63 6c 65 61 72 65 64 2d 66 61 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 r-cleared-face..................
352a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 77 68 65 72 65 20 77 68 65 72 65 29 29 ..................'where.where))
352c0 29 0a 20 20 20 20 28 73 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 69 65 73 20 62 65 67 20 28 ).....(set-text-properties.beg.(
352e0 31 2d 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 1-.(point)).....................
35300 20 20 20 20 20 28 6c 69 73 74 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 61 63 65 20 27 6c 65 64 67 .....(list.'font-lock-face.'ledg
35320 65 72 2d 66 6f 6e 74 2d 72 65 63 6f 6e 63 69 6c 65 72 2d 75 6e 63 6c 65 61 72 65 64 2d 66 61 63 er-font-reconciler-uncleared-fac
35340 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e...............................
35360 20 27 77 68 65 72 65 20 77 68 65 72 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 .'where.where))))..(defun.ledger
35380 2d 72 65 63 6f 6e 63 69 6c 65 2d 66 6f 72 6d 61 74 2d 78 61 63 74 20 28 78 61 63 74 20 66 6d 74 -reconcile-format-xact.(xact.fmt
353a0 29 0a 20 20 22 46 6f 72 6d 61 74 20 58 41 43 54 20 75 73 69 6e 67 20 46 4d 54 2e 22 0a 20 20 28 )..."Format.XACT.using.FMT."...(
353c0 64 6f 6c 69 73 74 20 28 70 6f 73 74 69 6e 67 20 28 6e 74 68 63 64 72 20 35 20 78 61 63 74 29 29 dolist.(posting.(nthcdr.5.xact))
353e0 0a 20 20 20 20 28 6c 65 74 20 28 28 62 65 67 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 .....(let.((beg.(point))........
35400 20 20 20 28 77 68 65 72 65 20 28 6c 65 64 67 65 72 2d 6d 61 72 6b 65 72 2d 77 68 65 72 65 2d 78 ...(where.(ledger-marker-where-x
35420 61 63 74 2d 69 73 20 78 61 63 74 20 70 6f 73 74 69 6e 67 29 29 29 0a 20 20 20 20 20 20 28 6c 65 act-is.xact.posting))).......(le
35440 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 66 6f 72 6d 61 74 2d 70 6f 73 74 69 6e 67 20 62 65 dger-reconcile-format-posting.be
35460 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 g...............................
35480 20 20 20 20 20 20 20 20 20 77 68 65 72 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .........where..................
354a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6d 74 0a 20 20 20 20 20 20 ......................fmt.......
354c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
354e0 20 28 6c 65 64 67 65 72 2d 66 6f 72 6d 61 74 2d 64 61 74 65 20 28 6e 74 68 20 32 20 78 61 63 74 .(ledger-format-date.(nth.2.xact
35500 29 29 20 20 3b 20 64 61 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ))..;.date......................
35520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6e 74 68 20 33 20 78 61 63 ..................(if.(nth.3.xac
35540 74 29 20 28 6e 74 68 20 33 20 78 61 63 74 29 20 22 22 29 20 20 3b 20 63 6f 64 65 0a 20 20 20 20 t).(nth.3.xact)."")..;.code.....
35560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
35580 20 20 20 28 6e 74 68 20 33 20 70 6f 73 74 69 6e 67 29 20 20 3b 20 73 74 61 74 75 73 0a 20 20 20 ...(nth.3.posting)..;.status....
355a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
355c0 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 74 72 75 6e 63 61 74 65 2d 72 ....(ledger-reconcile-truncate-r
355e0 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ight............................
35600 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 74 68 20 34 20 78 61 63 74 29 20 20 3b 20 70 61 79 .............(nth.4.xact)..;.pay
35620 65 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ee..............................
35640 20 20 20 20 20 20 20 20 20 20 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 62 75 66 66 ...........ledger-reconcile-buff
35660 65 72 2d 70 61 79 65 65 2d 6d 61 78 2d 63 68 61 72 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 er-payee-max-chars).............
35680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 ...........................(ledg
356a0 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 74 72 75 6e 63 61 74 65 2d 6c 65 66 74 0a 20 20 20 20 20 er-reconcile-truncate-left......
356c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
356e0 20 20 20 28 6e 74 68 20 31 20 70 6f 73 74 69 6e 67 29 20 20 3b 20 61 63 63 6f 75 6e 74 0a 20 20 ...(nth.1.posting)..;.account...
35700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
35720 20 20 20 20 20 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 62 75 66 66 65 72 2d 61 63 ......ledger-reconcile-buffer-ac
35740 63 6f 75 6e 74 2d 6d 61 78 2d 63 68 61 72 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 count-max-chars)................
35760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 74 68 20 32 20 70 ........................(nth.2.p
35780 6f 73 74 69 6e 67 29 29 29 29 29 20 20 3b 20 61 6d 6f 75 6e 74 0a 0a 28 64 65 66 75 6e 20 6c 65 osting)))))..;.amount..(defun.le
357a0 64 67 65 72 2d 64 6f 2d 72 65 63 6f 6e 63 69 6c 65 20 28 26 6f 70 74 69 6f 6e 61 6c 20 73 6f 72 dger-do-reconcile.(&optional.sor
357c0 74 29 0a 20 20 22 53 4f 52 54 20 74 68 65 20 75 6e 63 6c 65 61 72 65 64 20 74 72 61 6e 73 61 63 t)..."SORT.the.uncleared.transac
357e0 74 69 6f 6e 73 20 69 6e 20 74 68 65 20 61 63 63 6f 75 6e 74 2e 0a 54 68 65 20 73 6f 72 74 65 64 tions.in.the.account..The.sorted
35800 20 72 65 73 75 6c 74 73 20 61 72 65 20 64 69 73 70 6c 61 79 65 64 20 69 6e 20 69 6e 20 74 68 65 .results.are.displayed.in.in.the
35820 20 2a 52 65 63 6f 6e 63 69 6c 65 2a 20 62 75 66 66 65 72 2e 0a 52 65 74 75 72 6e 20 61 20 63 6f .*Reconcile*.buffer..Return.a.co
35840 75 6e 74 20 6f 66 20 74 68 65 20 75 6e 63 6c 65 61 72 65 64 20 74 72 61 6e 73 61 63 74 69 6f 6e unt.of.the.uncleared.transaction
35860 73 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 62 75 66 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 s."...(let*.((buf.ledger-reconci
35880 6c 65 2d 6c 65 64 67 65 72 2d 62 75 66 29 0a 20 20 20 20 20 20 20 20 20 28 61 63 63 6f 75 6e 74 le-ledger-buf)..........(account
358a0 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 61 63 63 6f 75 6e 74 29 0a 20 20 20 20 20 .ledger-reconcile-account)......
358c0 20 20 20 20 28 73 6f 72 74 2d 62 79 20 28 69 66 20 73 6f 72 74 0a 20 20 20 20 20 20 20 20 20 20 ....(sort-by.(if.sort...........
358e0 20 20 20 20 20 20 20 20 20 20 20 20 73 6f 72 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ............sort................
35900 20 20 20 20 20 22 28 64 61 74 65 29 22 29 29 0a 20 20 20 20 20 20 20 20 20 28 78 61 63 74 73 0a ....."(date)"))..........(xacts.
35920 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 ..........(with-temp-buffer.....
35940 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 65 78 65 63 2d 6c 65 64 67 65 72 20 62 75 66 20 ........(ledger-exec-ledger.buf.
35960 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (current-buffer)................
35980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 2d 75 6e 63 6c 65 61 72 65 64 22 20 22 ................."--uncleared"."
359a0 2d 2d 72 65 61 6c 22 20 22 65 6d 61 63 73 22 20 22 2d 2d 73 6f 72 74 22 20 73 6f 72 74 2d 62 79 --real"."emacs"."--sort".sort-by
359c0 20 61 63 63 6f 75 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 .account).............(goto-char
359e0 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 .(point-min)).............(when.
35a00 28 61 6e 64 20 28 6e 6f 74 20 28 65 6f 62 70 29 29 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 28 (and.(not.(eobp)).(looking-at."(
35a20 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 61 64 20 28 63 75 72 72 65 6e 74 "))...............(read.(current
35a40 2d 62 75 66 66 65 72 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 66 6d 74 20 28 6c 65 64 67 -buffer)))))..........(fmt.(ledg
35a60 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 63 6f 6d 70 69 6c 65 2d 66 6f 72 6d 61 74 2d 73 74 72 69 er-reconcile-compile-format-stri
35a80 6e 67 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 62 75 66 66 65 72 2d 6c 69 6e 65 2d ng.ledger-reconcile-buffer-line-
35aa0 66 6f 72 6d 61 74 29 29 29 0a 20 20 20 20 28 69 66 20 28 6e 75 6c 6c 20 78 61 63 74 73 29 0a 20 format))).....(if.(null.xacts)..
35ac0 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 63 6f 6e 63 61 74 20 22 54 68 65 72 65 20 61 72 .......(insert.(concat."There.ar
35ae0 65 20 6e 6f 20 75 6e 63 6c 65 61 72 65 64 20 65 6e 74 72 69 65 73 20 66 6f 72 20 22 20 61 63 63 e.no.uncleared.entries.for.".acc
35b00 6f 75 6e 74 29 29 0a 20 20 20 20 20 20 28 69 66 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c ount)).......(if.ledger-reconcil
35b20 65 2d 62 75 66 66 65 72 2d 68 65 61 64 65 72 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 e-buffer-header...........(inser
35b40 74 20 28 66 6f 72 6d 61 74 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 62 75 66 66 65 t.(format.ledger-reconcile-buffe
35b60 72 2d 68 65 61 64 65 72 20 61 63 63 6f 75 6e 74 29 29 29 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 r-header.account))).......(dolis
35b80 74 20 28 78 61 63 74 20 78 61 63 74 73 29 0a 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 t.(xact.xacts).........(ledger-r
35ba0 65 63 6f 6e 63 69 6c 65 2d 66 6f 72 6d 61 74 2d 78 61 63 74 20 78 61 63 74 20 66 6d 74 29 29 0a econcile-format-xact.xact.fmt)).
35bc0 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 ......(goto-char.(point-max))...
35be0 20 20 20 20 28 64 65 6c 65 74 65 2d 63 68 61 72 20 2d 31 29 29 20 3b 67 65 74 73 20 72 69 64 20 ....(delete-char.-1)).;gets.rid.
35c00 6f 66 20 74 68 65 20 65 78 74 72 61 20 6c 69 6e 65 20 66 65 65 64 20 61 74 20 74 68 65 20 62 6f of.the.extra.line.feed.at.the.bo
35c20 74 74 6f 6d 20 6f 66 20 74 68 65 20 6c 69 73 74 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 ttom.of.the.list.....(goto-char.
35c40 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 28 73 65 74 2d 62 75 66 66 65 72 2d 6d 6f 64 (point-min)).....(set-buffer-mod
35c60 69 66 69 65 64 2d 70 20 6e 69 6c 29 0a 20 20 20 20 28 73 65 74 71 20 62 75 66 66 65 72 2d 72 65 ified-p.nil).....(setq.buffer-re
35c80 61 64 2d 6f 6e 6c 79 20 74 29 0a 0a 20 20 20 20 28 6c 65 6e 67 74 68 20 78 61 63 74 73 29 29 29 ad-only.t)......(length.xacts)))
35ca0 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 65 6e 73 75 72 65 ..(defun.ledger-reconcile-ensure
35cc0 2d 78 61 63 74 73 2d 76 69 73 69 62 6c 65 20 28 29 0a 20 20 22 45 6e 73 75 72 65 20 74 68 65 20 -xacts-visible.()..."Ensure.the.
35ce0 6c 61 73 74 20 6f 66 20 74 68 65 20 76 69 73 69 62 6c 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 last.of.the.visible.transactions
35d00 20 69 6e 20 74 68 65 20 6c 65 64 67 65 72 20 62 75 66 66 65 72 20 69 73 20 76 69 73 69 62 6c 65 .in.the.ledger.buffer.is.visible
35d20 2e 0a 54 68 69 73 20 69 73 20 61 63 68 69 65 76 65 64 20 62 79 20 70 6c 61 63 69 6e 67 20 74 68 ..This.is.achieved.by.placing.th
35d40 61 74 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 61 74 20 74 68 65 20 62 6f 74 74 6f 6d 20 6f 66 20 at.transaction.at.the.bottom.of.
35d60 74 68 65 20 6d 61 69 6e 20 77 69 6e 64 6f 77 2e 0a 54 68 65 20 6b 65 79 20 74 6f 20 74 68 69 73 the.main.window..The.key.to.this
35d80 20 69 73 20 74 6f 20 65 6e 73 75 72 65 20 74 68 65 20 77 69 6e 64 6f 77 20 69 73 20 73 65 6c 65 .is.to.ensure.the.window.is.sele
35da0 63 74 65 64 20 77 68 65 6e 20 74 68 65 20 62 75 66 66 65 72 20 70 6f 69 6e 74 20 69 73 0a 6d 6f cted.when.the.buffer.point.is.mo
35dc0 76 65 64 20 61 6e 64 20 72 65 63 65 6e 74 65 72 65 64 2e 20 20 49 66 20 74 68 65 79 20 61 72 65 ved.and.recentered...If.they.are
35de0 6e 27 74 20 73 74 72 61 6e 67 65 20 74 68 69 6e 67 73 20 68 61 70 70 65 6e 2e 22 0a 20 20 28 6c n't.strange.things.happen."...(l
35e00 65 74 20 28 28 72 65 63 6f 6e 63 69 6c 65 2d 77 69 6e 64 6f 77 20 28 67 65 74 2d 62 75 66 66 65 et.((reconcile-window.(get-buffe
35e20 72 2d 77 69 6e 64 6f 77 20 28 67 65 74 2d 62 75 66 66 65 72 20 6c 65 64 67 65 72 2d 72 65 63 6f r-window.(get-buffer.ledger-reco
35e40 6e 63 69 6c 65 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 ncile-buffer-name)))).....(when.
35e60 72 65 63 6f 6e 63 69 6c 65 2d 77 69 6e 64 6f 77 0a 20 20 20 20 20 20 28 66 69 74 2d 77 69 6e 64 reconcile-window.......(fit-wind
35e80 6f 77 2d 74 6f 2d 62 75 66 66 65 72 20 72 65 63 6f 6e 63 69 6c 65 2d 77 69 6e 64 6f 77 29 0a 20 ow-to-buffer.reconcile-window)..
35ea0 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 6c 65 64 67 65 72 .....(with-current-buffer.ledger
35ec0 2d 72 65 63 6f 6e 63 69 6c 65 2d 6c 65 64 67 65 72 2d 62 75 66 0a 20 20 20 20 20 20 20 20 28 61 -reconcile-ledger-buf.........(a
35ee0 64 64 2d 68 6f 6f 6b 20 27 6b 69 6c 6c 2d 62 75 66 66 65 72 2d 68 6f 6f 6b 20 27 6c 65 64 67 65 dd-hook.'kill-buffer-hook.'ledge
35f00 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 71 75 69 74 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 r-reconcile-quit.nil.t).........
35f20 28 69 66 20 28 67 65 74 2d 62 75 66 66 65 72 2d 77 69 6e 64 6f 77 20 6c 65 64 67 65 72 2d 72 65 (if.(get-buffer-window.ledger-re
35f40 63 6f 6e 63 69 6c 65 2d 6c 65 64 67 65 72 2d 62 75 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 concile-ledger-buf).............
35f60 28 73 65 6c 65 63 74 2d 77 69 6e 64 6f 77 20 28 67 65 74 2d 62 75 66 66 65 72 2d 77 69 6e 64 6f (select-window.(get-buffer-windo
35f80 77 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 6c 65 64 67 65 72 2d 62 75 66 29 29 29 w.ledger-reconcile-ledger-buf)))
35fa0 0a 20 20 20 20 20 20 20 20 28 72 65 63 65 6e 74 65 72 29 29 0a 20 20 20 20 20 20 28 73 65 6c 65 .........(recenter)).......(sele
35fc0 63 74 2d 77 69 6e 64 6f 77 20 72 65 63 6f 6e 63 69 6c 65 2d 77 69 6e 64 6f 77 29 0a 20 20 20 20 ct-window.reconcile-window).....
35fe0 20 20 28 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 76 69 73 69 74 20 74 29 29 0a 20 20 ..(ledger-reconcile-visit.t))...
36000 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 6c 65 64 67 65 72 2d 72 65 ..(with-current-buffer.ledger-re
36020 63 6f 6e 63 69 6c 65 2d 6c 65 64 67 65 72 2d 62 75 66 0a 20 20 20 20 20 20 28 77 68 65 6e 20 6c concile-ledger-buf.......(when.l
36040 65 64 67 65 72 2d 6f 63 63 75 72 2d 6d 6f 64 65 0a 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 edger-occur-mode.........(ledger
36060 2d 6f 63 63 75 72 2d 72 65 66 72 65 73 68 29 29 29 0a 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 -occur-refresh))).....(add-hook.
36080 27 70 6f 73 74 2d 63 6f 6d 6d 61 6e 64 2d 68 6f 6f 6b 20 27 6c 65 64 67 65 72 2d 72 65 63 6f 6e 'post-command-hook.'ledger-recon
360a0 63 69 6c 65 2d 74 72 61 63 6b 2d 78 61 63 74 20 6e 69 6c 20 74 29 29 29 0a 0a 28 64 65 66 75 6e cile-track-xact.nil.t)))..(defun
360c0 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 74 72 61 63 6b 2d 78 61 63 74 20 28 29 0a .ledger-reconcile-track-xact.().
360e0 20 20 22 52 65 63 65 6e 74 65 72 20 74 68 65 20 6c 65 64 67 65 72 20 62 75 66 66 65 72 20 6f 6e .."Recenter.the.ledger.buffer.on
36100 20 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 61 74 20 70 6f 69 6e 74 20 69 6e 20 74 68 65 .the.transaction.at.point.in.the
36120 20 72 65 63 6f 6e 63 69 6c 65 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 66 20 28 61 6e 64 20 6c .reconcile.buffer."...(if.(and.l
36140 65 64 67 65 72 2d 62 75 66 66 65 72 2d 74 72 61 63 6b 73 2d 72 65 63 6f 6e 63 69 6c 65 2d 62 75 edger-buffer-tracks-reconcile-bu
36160 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 6d 62 65 72 20 74 68 69 73 2d 63 6f 6d ffer............(member.this-com
36180 6d 61 6e 64 20 28 6c 69 73 74 20 27 6e 65 78 74 2d 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 20 20 mand.(list.'next-line...........
361a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 70 72 65 ............................'pre
361c0 76 69 6f 75 73 2d 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 vious-line......................
361e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6d 6f 75 73 65 2d 73 65 74 2d 70 6f 69 6e .................'mouse-set-poin
36200 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t...............................
36220 20 20 20 20 20 20 20 20 27 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 74 6f 67 67 6c 65 ........'ledger-reconcile-toggle
36240 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36260 20 20 20 20 20 20 20 27 65 6e 64 2d 6f 66 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 .......'end-of-buffer...........
36280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 62 65 67 ............................'beg
362a0 69 6e 6e 69 6e 67 2d 6f 66 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 20 20 28 73 61 76 65 2d inning-of-buffer))).......(save-
362c0 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 excursion.........(ledger-reconc
362e0 69 6c 65 2d 76 69 73 69 74 20 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 ile-visit.t))))..(defun.ledger-r
36300 65 63 6f 6e 63 69 6c 65 2d 6f 70 65 6e 2d 77 69 6e 64 6f 77 73 20 28 62 75 66 20 72 62 75 66 29 econcile-open-windows.(buf.rbuf)
36320 0a 20 20 22 45 6e 73 75 72 65 20 74 68 61 74 20 74 68 65 20 6c 65 64 67 65 72 20 62 75 66 66 65 ..."Ensure.that.the.ledger.buffe
36340 72 20 42 55 46 20 69 73 20 73 70 6c 69 74 20 62 79 20 52 42 55 46 2e 22 0a 20 20 28 69 66 20 6c r.BUF.is.split.by.RBUF."...(if.l
36360 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 66 6f 72 63 65 2d 77 69 6e 64 6f 77 2d 62 6f 74 edger-reconcile-force-window-bot
36380 74 6f 6d 0a 20 20 20 20 20 20 3b 3b 63 72 65 61 74 65 20 74 68 65 20 2a 52 65 63 6f 6e 63 69 6c tom.......;;create.the.*Reconcil
363a0 65 2a 20 77 69 6e 64 6f 77 20 64 69 72 65 63 74 6c 79 20 62 65 6c 6f 77 20 74 68 65 20 6c 65 64 e*.window.directly.below.the.led
363c0 67 65 72 20 62 75 66 66 65 72 2e 0a 20 20 20 20 20 20 28 73 65 74 2d 77 69 6e 64 6f 77 2d 62 75 ger.buffer........(set-window-bu
363e0 66 66 65 72 20 28 73 70 6c 69 74 2d 77 69 6e 64 6f 77 20 28 67 65 74 2d 62 75 66 66 65 72 2d 77 ffer.(split-window.(get-buffer-w
36400 69 6e 64 6f 77 20 62 75 66 29 20 6e 69 6c 20 6e 69 6c 29 20 72 62 75 66 29 0a 20 20 20 20 28 70 indow.buf).nil.nil).rbuf).....(p
36420 6f 70 2d 74 6f 2d 62 75 66 66 65 72 20 72 62 75 66 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 op-to-buffer.rbuf)))..(defun.led
36440 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 63 68 65 63 6b 2d 76 61 6c 69 64 2d 61 63 63 6f 75 6e ger-reconcile-check-valid-accoun
36460 74 20 28 61 63 63 6f 75 6e 74 29 0a 20 20 22 43 68 65 63 6b 20 74 6f 20 73 65 65 20 69 66 20 41 t.(account)..."Check.to.see.if.A
36480 43 43 4f 55 4e 54 20 65 78 69 73 74 73 20 69 6e 20 74 68 65 20 6c 65 64 67 65 72 20 66 69 6c 65 CCOUNT.exists.in.the.ledger.file
364a0 2e 22 0a 20 20 28 69 66 20 28 3e 20 28 6c 65 6e 67 74 68 20 61 63 63 6f 75 6e 74 29 20 30 29 0a ."...(if.(>.(length.account).0).
364c0 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 67 ......(save-excursion.........(g
364e0 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 28 73 oto-char.(point-min)).........(s
36500 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 61 63 63 6f 75 6e 74 20 6e 69 6c 20 74 29 29 29 29 0a earch-forward.account.nil.t)))).
36520 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 20 28 26 6f 70 74 69 6f .(defun.ledger-reconcile.(&optio
36540 6e 61 6c 20 61 63 63 6f 75 6e 74 20 74 61 72 67 65 74 29 0a 20 20 22 53 74 61 72 74 20 72 65 63 nal.account.target)..."Start.rec
36560 6f 6e 63 69 6c 69 6e 67 2c 20 70 72 6f 6d 70 74 20 66 6f 72 20 41 43 43 4f 55 4e 54 2e 0a 0a 49 onciling,.prompt.for.ACCOUNT...I
36580 66 20 54 41 52 47 45 54 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 69 74 20 69 73 20 75 73 65 64 20 f.TARGET.is.non-nil,.it.is.used.
365a0 61 73 20 74 68 65 20 69 6e 69 74 69 61 6c 20 74 61 72 67 65 74 20 66 6f 72 0a 72 65 63 6f 6e 63 as.the.initial.target.for.reconc
365c0 69 6c 69 61 74 69 6f 6e 2c 20 6f 74 68 65 72 77 69 73 65 20 70 72 6f 6d 70 74 20 66 6f 72 20 54 iliation,.otherwise.prompt.for.T
365e0 41 52 47 45 54 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 ARGET."...(interactive)...(let.(
36600 28 61 63 63 6f 75 6e 74 20 28 6f 72 20 61 63 63 6f 75 6e 74 20 28 6c 65 64 67 65 72 2d 72 65 61 (account.(or.account.(ledger-rea
36620 64 2d 61 63 63 6f 75 6e 74 2d 77 69 74 68 2d 70 72 6f 6d 70 74 20 22 41 63 63 6f 75 6e 74 20 74 d-account-with-prompt."Account.t
36640 6f 20 72 65 63 6f 6e 63 69 6c 65 22 29 29 29 0a 20 20 20 20 20 20 20 20 28 62 75 66 20 28 63 75 o.reconcile"))).........(buf.(cu
36660 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 28 72 62 75 66 20 28 67 65 rrent-buffer)).........(rbuf.(ge
36680 74 2d 62 75 66 66 65 72 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 62 75 66 66 65 72 t-buffer.ledger-reconcile-buffer
366a0 2d 6e 61 6d 65 29 29 29 0a 0a 20 20 20 20 28 77 68 65 6e 20 28 6c 65 64 67 65 72 2d 72 65 63 6f -name)))......(when.(ledger-reco
366c0 6e 63 69 6c 65 2d 63 68 65 63 6b 2d 76 61 6c 69 64 2d 61 63 63 6f 75 6e 74 20 61 63 63 6f 75 6e ncile-check-valid-account.accoun
366e0 74 29 0a 20 20 20 20 20 20 28 69 66 20 72 62 75 66 20 3b 3b 20 2a 52 65 63 6f 6e 63 69 6c 65 2a t).......(if.rbuf.;;.*Reconcile*
36700 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 73 0a 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d .already.exists...........(with-
36720 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 72 62 75 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 current-buffer.rbuf.............
36740 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 61 63 63 6f 75 6e 74 20 61 (setq.ledger-reconcile-account.a
36760 63 63 6f 75 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 ccount).............(when.(not.(
36780 65 71 20 62 75 66 20 72 62 75 66 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 63 eq.buf.rbuf))...............;;.c
367a0 61 6c 6c 65 64 20 66 72 6f 6d 20 73 6f 6d 65 20 6f 74 68 65 72 20 6c 65 64 67 65 72 2d 6d 6f 64 alled.from.some.other.ledger-mod
367c0 65 20 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 e.buffer...............(ledger-r
367e0 65 63 6f 6e 63 69 6c 65 2d 71 75 69 74 2d 63 6c 65 61 6e 75 70 29 0a 20 20 20 20 20 20 20 20 20 econcile-quit-cleanup)..........
36800 20 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 6c 65 64 67 .....(setq.ledger-reconcile-ledg
36820 65 72 2d 62 75 66 20 62 75 66 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 er-buf.buf))..............(unles
36840 73 20 28 67 65 74 2d 62 75 66 66 65 72 2d 77 69 6e 64 6f 77 20 72 62 75 66 29 0a 20 20 20 20 20 s.(get-buffer-window.rbuf)......
36860 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 6f 70 65 6e 2d .........(ledger-reconcile-open-
36880 77 69 6e 64 6f 77 73 20 62 75 66 20 72 62 75 66 29 29 29 0a 0a 20 20 20 20 20 20 20 20 3b 3b 20 windows.buf.rbuf)))..........;;.
368a0 6e 6f 20 72 65 63 6f 6e 63 69 6c 65 2d 62 75 66 66 65 72 2c 20 73 74 61 72 74 69 6e 67 20 66 72 no.reconcile-buffer,.starting.fr
368c0 6f 6d 20 73 63 72 61 74 63 68 2e 0a 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 om.scratch...........(with-curre
368e0 6e 74 2d 62 75 66 66 65 72 20 28 73 65 74 71 20 72 62 75 66 0a 20 20 20 20 20 20 20 20 20 20 20 nt-buffer.(setq.rbuf............
36900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 62 75 66 ........................(get-buf
36920 66 65 72 2d 63 72 65 61 74 65 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 62 75 66 66 fer-create.ledger-reconcile-buff
36940 65 72 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 63 6f er-name))...........(ledger-reco
36960 6e 63 69 6c 65 2d 6f 70 65 6e 2d 77 69 6e 64 6f 77 73 20 62 75 66 20 72 62 75 66 29 0a 20 20 20 ncile-open-windows.buf.rbuf)....
36980 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 6d 6f 64 65 29 0a 20 .......(ledger-reconcile-mode)..
369a0 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d .........(setq.ledger-reconcile-
369c0 6c 65 64 67 65 72 2d 62 75 66 20 62 75 66 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 ledger-buf.buf)...........(setq.
369e0 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 61 63 63 6f 75 6e 74 20 61 63 63 6f 75 6e 74 ledger-reconcile-account.account
36a00 29 29 29 0a 0a 20 20 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 61 66 74 65 72 2d 73 61 76 65 )))........(add-hook.'after-save
36a20 2d 68 6f 6f 6b 20 27 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 72 65 66 72 65 73 68 2d -hook.'ledger-reconcile-refresh-
36a40 61 66 74 65 72 2d 73 61 76 65 20 6e 69 6c 20 74 29 0a 0a 20 20 20 20 20 20 3b 3b 20 4e 61 72 72 after-save.nil.t)........;;.Narr
36a60 6f 77 20 74 68 65 20 6c 65 64 67 65 72 20 62 75 66 66 65 72 0a 20 20 20 20 20 20 28 69 66 20 6c ow.the.ledger.buffer.......(if.l
36a80 65 64 67 65 72 2d 6e 61 72 72 6f 77 2d 6f 6e 2d 72 65 63 6f 6e 63 69 6c 65 0a 20 20 20 20 20 20 edger-narrow-on-reconcile.......
36aa0 20 20 20 20 28 6c 65 64 67 65 72 2d 6f 63 63 75 72 20 28 72 65 67 65 78 70 2d 71 75 6f 74 65 20 ....(ledger-occur.(regexp-quote.
36ac0 61 63 63 6f 75 6e 74 29 29 29 0a 0a 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 account)))........(setq.ledger-r
36ae0 65 63 6f 6e 63 69 6c 65 2d 6c 61 73 74 2d 62 61 6c 61 6e 63 65 2d 6d 65 73 73 61 67 65 20 6e 69 econcile-last-balance-message.ni
36b00 6c 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d l).......(setq.ledger-reconcile-
36b20 6c 61 73 74 2d 62 61 6c 61 6e 63 65 2d 65 71 75 61 6c 73 2d 74 61 72 67 65 74 20 6e 69 6c 29 0a last-balance-equals-target.nil).
36b40 0a 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 72 62 75 66 .......(with-current-buffer.rbuf
36b60 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 3e 20 28 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c .........(if.(>.(ledger-reconcil
36b80 65 2d 72 65 66 72 65 73 68 29 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 e-refresh).0).............(ledge
36ba0 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 63 68 61 6e 67 65 2d 74 61 72 67 65 74 20 74 61 72 67 65 74 r-reconcile-change-target.target
36bc0 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 64 69 73 70 6c 61 79 2d 62 61 6c 61 )...........(ledger-display-bala
36be0 6e 63 65 29 29 29 29 29 29 0a 0a 28 64 65 66 76 61 72 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 nce))))))..(defvar.ledger-reconc
36c00 69 6c 65 2d 6d 6f 64 65 2d 61 62 62 72 65 76 2d 74 61 62 6c 65 29 0a 0a 28 64 65 66 75 6e 20 6c ile-mode-abbrev-table)..(defun.l
36c20 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 63 68 61 6e 67 65 2d 74 61 72 67 65 74 20 28 26 edger-reconcile-change-target.(&
36c40 6f 70 74 69 6f 6e 61 6c 20 74 61 72 67 65 74 29 0a 20 20 22 43 68 61 6e 67 65 20 74 68 65 20 54 optional.target)..."Change.the.T
36c60 41 52 47 45 54 20 61 6d 6f 75 6e 74 20 66 6f 72 20 74 68 65 20 72 65 63 6f 6e 63 69 6c 69 61 74 ARGET.amount.for.the.reconciliat
36c80 69 6f 6e 20 70 72 6f 63 65 73 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 ion.process."...(interactive)...
36ca0 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 74 61 72 67 65 74 20 28 6f (setq.ledger-reconcile-target.(o
36cc0 72 20 74 61 72 67 65 74 20 28 6c 65 64 67 65 72 2d 72 65 61 64 2d 63 6f 6d 6d 6f 64 69 74 79 2d r.target.(ledger-read-commodity-
36ce0 73 74 72 69 6e 67 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 74 61 72 67 65 74 2d 70 string.ledger-reconcile-target-p
36d00 72 6f 6d 70 74 2d 73 74 72 69 6e 67 29 29 29 0a 20 20 28 6c 65 64 67 65 72 2d 64 69 73 70 6c 61 rompt-string)))...(ledger-displa
36d20 79 2d 62 61 6c 61 6e 63 65 29 29 0a 0a 28 64 65 66 6d 61 63 72 6f 20 6c 65 64 67 65 72 2d 72 65 y-balance))..(defmacro.ledger-re
36d40 63 6f 6e 63 69 6c 65 2d 63 68 61 6e 67 65 2d 73 6f 72 74 2d 6b 65 79 2d 61 6e 64 2d 72 65 66 72 concile-change-sort-key-and-refr
36d60 65 73 68 20 28 73 6f 72 74 2d 62 79 29 0a 20 20 22 53 65 74 20 74 68 65 20 73 6f 72 74 2d 6b 65 esh.(sort-by)..."Set.the.sort-ke
36d80 79 20 74 6f 20 53 4f 52 54 2d 42 59 2e 22 0a 20 20 60 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 y.to.SORT-BY."...`(lambda.()....
36da0 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 0a 20 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 ..(interactive).......(setq.ledg
36dc0 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 73 6f 72 74 2d 6b 65 79 20 2c 73 6f 72 74 2d 62 79 29 0a er-reconcile-sort-key.,sort-by).
36de0 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 72 65 66 72 65 73 68 29 29 .....(ledger-reconcile-refresh))
36e00 29 0a 0a 28 64 65 66 76 61 72 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 6d 6f 64 65 )..(defvar.ledger-reconcile-mode
36e20 2d 6d 61 70 0a 20 20 28 6c 65 74 20 28 28 6d 61 70 20 28 6d 61 6b 65 2d 73 70 61 72 73 65 2d 6b -map...(let.((map.(make-sparse-k
36e40 65 79 6d 61 70 29 29 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 eymap))).....(define-key.map.(kb
36e60 64 20 22 43 2d 6d 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 76 69 73 69 d."C-m").#'ledger-reconcile-visi
36e80 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 3c 72 65 t).....(define-key.map.(kbd."<re
36ea0 74 75 72 6e 3e 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 76 69 73 69 74 turn>").#'ledger-reconcile-visit
36ec0 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 78 20 ).....(define-key.map.(kbd."C-x.
36ee0 43 2d 73 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 73 61 76 65 29 0a 20 C-s").#'ledger-reconcile-save)..
36f00 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 6c 22 29 20 23 ...(define-key.map.(kbd."C-l").#
36f20 27 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 72 65 66 72 65 73 68 29 0a 20 20 20 20 28 'ledger-reconcile-refresh).....(
36f40 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 63 22 29 20 23 define-key.map.(kbd."C-c.C-c").#
36f60 27 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 66 69 6e 69 73 68 29 0a 20 20 20 20 28 64 'ledger-reconcile-finish).....(d
36f80 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 53 50 43 22 29 20 23 27 6c 65 64 67 efine-key.map.(kbd."SPC").#'ledg
36fa0 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 74 6f 67 67 6c 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 er-reconcile-toggle).....(define
36fc0 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 61 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 63 6f -key.map.(kbd."a").#'ledger-reco
36fe0 6e 63 69 6c 65 2d 61 64 64 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 ncile-add).....(define-key.map.(
37000 6b 62 64 20 22 64 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 64 65 6c 65 kbd."d").#'ledger-reconcile-dele
37020 74 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 67 22 te).....(define-key.map.(kbd."g"
37040 29 20 23 27 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 29 3b 0a 20 20 20 20 28 64 65 66 69 ).#'ledger-reconcile);.....(defi
37060 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 6e 22 29 20 23 27 6e 65 78 74 2d 6c 69 6e 65 ne-key.map.(kbd."n").#'next-line
37080 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 70 22 29 20 ).....(define-key.map.(kbd."p").
370a0 23 27 70 72 65 76 69 6f 75 73 2d 6c 69 6e 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 #'previous-line).....(define-key
370c0 20 6d 61 70 20 28 6b 62 64 20 22 74 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c .map.(kbd."t").#'ledger-reconcil
370e0 65 2d 63 68 61 6e 67 65 2d 74 61 72 67 65 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 e-change-target).....(define-key
37100 20 6d 61 70 20 28 6b 62 64 20 22 73 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c .map.(kbd."s").#'ledger-reconcil
37120 65 2d 73 61 76 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 e-save).....(define-key.map.(kbd
37140 20 22 71 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 71 75 69 74 29 0a 20 ."q").#'ledger-reconcile-quit)..
37160 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 62 22 29 20 23 27 6c ...(define-key.map.(kbd."b").#'l
37180 65 64 67 65 72 2d 64 69 73 70 6c 61 79 2d 62 61 6c 61 6e 63 65 29 0a 20 20 20 20 28 64 65 66 69 edger-display-balance).....(defi
371a0 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 42 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 ne-key.map.(kbd."B").#'ledger-re
371c0 63 6f 6e 63 69 6c 65 2d 64 69 73 70 6c 61 79 2d 62 61 6c 61 6e 63 65 2d 69 6e 2d 68 65 61 64 65 concile-display-balance-in-heade
371e0 72 2d 6d 6f 64 65 29 0a 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 r-mode)......(define-key.map.(kb
37200 64 20 22 43 2d 63 20 43 2d 6f 22 29 20 28 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 63 d."C-c.C-o").(ledger-reconcile-c
37220 68 61 6e 67 65 2d 73 6f 72 74 2d 6b 65 79 2d 61 6e 64 2d 72 65 66 72 65 73 68 20 22 28 30 29 22 hange-sort-key-and-refresh."(0)"
37240 29 29 0a 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d ))......(define-key.map.(kbd."C-
37260 63 20 43 2d 61 22 29 20 28 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 63 68 61 6e 67 65 c.C-a").(ledger-reconcile-change
37280 2d 73 6f 72 74 2d 6b 65 79 2d 61 6e 64 2d 72 65 66 72 65 73 68 20 22 28 61 6d 6f 75 6e 74 29 22 -sort-key-and-refresh."(amount)"
372a0 29 29 0a 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d ))......(define-key.map.(kbd."C-
372c0 63 20 43 2d 64 22 29 20 28 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 63 68 61 6e 67 65 c.C-d").(ledger-reconcile-change
372e0 2d 73 6f 72 74 2d 6b 65 79 2d 61 6e 64 2d 72 65 66 72 65 73 68 20 22 28 64 61 74 65 29 22 29 29 -sort-key-and-refresh."(date)"))
37300 0a 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 ......(define-key.map.(kbd."C-c.
37320 43 2d 70 22 29 20 28 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 63 68 61 6e 67 65 2d 73 C-p").(ledger-reconcile-change-s
37340 6f 72 74 2d 6b 65 79 2d 61 6e 64 2d 72 65 66 72 65 73 68 20 22 28 70 61 79 65 65 29 22 29 29 0a ort-key-and-refresh."(payee)")).
37360 20 20 20 20 6d 61 70 29 0a 20 20 22 4b 65 79 6d 61 70 20 66 6f 72 20 60 6c 65 64 67 65 72 2d 72 ....map)..."Keymap.for.`ledger-r
37380 65 63 6f 6e 63 69 6c 65 2d 6d 6f 64 65 27 2e 22 29 0a 0a 28 65 61 73 79 2d 6d 65 6e 75 2d 64 65 econcile-mode'.")..(easy-menu-de
373a0 66 69 6e 65 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 6d 6f 64 65 2d 6d 65 6e 75 20 fine.ledger-reconcile-mode-menu.
373c0 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 6d 6f 64 65 2d 6d 61 70 0a 20 20 22 4c 65 64 ledger-reconcile-mode-map..."Led
373e0 67 65 72 20 72 65 63 6f 6e 63 69 6c 65 20 6d 65 6e 75 22 0a 20 20 60 28 22 52 65 63 6f 6e 63 69 ger.reconcile.menu"...`("Reconci
37400 6c 65 22 0a 20 20 20 20 5b 22 53 61 76 65 22 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 le".....["Save".ledger-reconcile
37420 2d 73 61 76 65 5d 0a 20 20 20 20 5b 22 52 65 66 72 65 73 68 22 20 6c 65 64 67 65 72 2d 72 65 63 -save].....["Refresh".ledger-rec
37440 6f 6e 63 69 6c 65 2d 72 65 66 72 65 73 68 5d 0a 20 20 20 20 5b 22 46 69 6e 69 73 68 22 20 6c 65 oncile-refresh].....["Finish".le
37460 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 66 69 6e 69 73 68 5d 0a 20 20 20 20 22 2d 2d 2d 22 dger-reconcile-finish]....."---"
37480 0a 20 20 20 20 5b 22 52 65 63 6f 6e 63 69 6c 65 20 4e 65 77 20 41 63 63 6f 75 6e 74 22 20 6c 65 .....["Reconcile.New.Account".le
374a0 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 5d 0a 20 20 20 20 22 2d 2d 2d 22 0a 20 20 20 20 5b 22 dger-reconcile]....."---".....["
374c0 43 68 61 6e 67 65 20 54 61 72 67 65 74 20 42 61 6c 61 6e 63 65 22 20 6c 65 64 67 65 72 2d 72 65 Change.Target.Balance".ledger-re
374e0 63 6f 6e 63 69 6c 65 2d 63 68 61 6e 67 65 2d 74 61 72 67 65 74 5d 0a 20 20 20 20 5b 22 53 68 6f concile-change-target].....["Sho
37500 77 20 43 6c 65 61 72 65 64 20 42 61 6c 61 6e 63 65 22 20 6c 65 64 67 65 72 2d 64 69 73 70 6c 61 w.Cleared.Balance".ledger-displa
37520 79 2d 62 61 6c 61 6e 63 65 5d 0a 20 20 20 20 22 2d 2d 2d 22 0a 20 20 20 20 5b 22 53 6f 72 74 20 y-balance]....."---".....["Sort.
37540 62 79 20 70 61 79 65 65 22 20 2c 28 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 63 68 61 by.payee".,(ledger-reconcile-cha
37560 6e 67 65 2d 73 6f 72 74 2d 6b 65 79 2d 61 6e 64 2d 72 65 66 72 65 73 68 20 22 28 70 61 79 65 65 nge-sort-key-and-refresh."(payee
37580 29 22 29 5d 0a 20 20 20 20 5b 22 53 6f 72 74 20 62 79 20 64 61 74 65 22 20 2c 28 6c 65 64 67 65 )")].....["Sort.by.date".,(ledge
375a0 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 63 68 61 6e 67 65 2d 73 6f 72 74 2d 6b 65 79 2d 61 6e 64 2d r-reconcile-change-sort-key-and-
375c0 72 65 66 72 65 73 68 20 22 28 64 61 74 65 29 22 29 5d 0a 20 20 20 20 5b 22 53 6f 72 74 20 62 79 refresh."(date)")].....["Sort.by
375e0 20 61 6d 6f 75 6e 74 22 20 2c 28 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 63 68 61 6e .amount".,(ledger-reconcile-chan
37600 67 65 2d 73 6f 72 74 2d 6b 65 79 2d 61 6e 64 2d 72 65 66 72 65 73 68 20 22 28 61 6d 6f 75 6e 74 ge-sort-key-and-refresh."(amount
37620 29 22 29 5d 0a 20 20 20 20 5b 22 53 6f 72 74 20 62 79 20 66 69 6c 65 20 6f 72 64 65 72 22 20 2c )")].....["Sort.by.file.order".,
37640 28 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 63 68 61 6e 67 65 2d 73 6f 72 74 2d 6b 65 (ledger-reconcile-change-sort-ke
37660 79 2d 61 6e 64 2d 72 65 66 72 65 73 68 20 22 28 30 29 22 29 5d 0a 20 20 20 20 22 2d 2d 2d 22 0a y-and-refresh."(0)")]....."---".
37680 20 20 20 20 5b 22 54 6f 67 67 6c 65 20 45 6e 74 72 79 22 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e ....["Toggle.Entry".ledger-recon
376a0 63 69 6c 65 2d 74 6f 67 67 6c 65 5d 0a 20 20 20 20 5b 22 41 64 64 20 45 6e 74 72 79 22 20 6c 65 cile-toggle].....["Add.Entry".le
376c0 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 61 64 64 5d 0a 20 20 20 20 5b 22 44 65 6c 65 74 65 dger-reconcile-add].....["Delete
376e0 20 45 6e 74 72 79 22 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 64 65 6c 65 74 65 5d .Entry".ledger-reconcile-delete]
37700 0a 20 20 20 20 22 2d 2d 2d 22 0a 20 20 20 20 5b 22 4e 65 78 74 20 45 6e 74 72 79 22 20 6e 65 78 ....."---".....["Next.Entry".nex
37720 74 2d 6c 69 6e 65 5d 0a 20 20 20 20 5b 22 56 69 73 69 74 20 53 6f 75 72 63 65 22 20 6c 65 64 67 t-line].....["Visit.Source".ledg
37740 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 76 69 73 69 74 5d 0a 20 20 20 20 5b 22 50 72 65 76 69 6f er-reconcile-visit].....["Previo
37760 75 73 20 45 6e 74 72 79 22 20 70 72 65 76 69 6f 75 73 2d 6c 69 6e 65 5d 0a 20 20 20 20 22 2d 2d us.Entry".previous-line]....."--
37780 2d 22 0a 20 20 20 20 5b 22 51 75 69 74 22 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d -".....["Quit".ledger-reconcile-
377a0 71 75 69 74 5d 0a 20 20 20 20 29 29 0a 0a 28 64 65 66 69 6e 65 2d 64 65 72 69 76 65 64 2d 6d 6f quit].....))..(define-derived-mo
377c0 64 65 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 6d 6f 64 65 20 74 65 78 74 2d 6d 6f de.ledger-reconcile-mode.text-mo
377e0 64 65 20 22 52 65 63 6f 6e 63 69 6c 65 22 0a 20 20 22 41 20 6d 6f 64 65 20 66 6f 72 20 72 65 63 de."Reconcile"..."A.mode.for.rec
37800 6f 6e 63 69 6c 69 6e 67 20 6c 65 64 67 65 72 20 65 6e 74 72 69 65 73 2e 22 29 0a 0a 28 64 65 66 onciling.ledger.entries.")..(def
37820 69 6e 65 2d 6d 69 6e 6f 72 2d 6d 6f 64 65 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d ine-minor-mode.ledger-reconcile-
37840 64 69 73 70 6c 61 79 2d 62 61 6c 61 6e 63 65 2d 69 6e 2d 68 65 61 64 65 72 2d 6d 6f 64 65 0a 20 display-balance-in-header-mode..
37860 20 22 57 68 65 6e 20 65 6e 61 62 6c 65 64 2c 20 64 69 73 70 6c 61 79 20 74 68 65 20 63 6c 65 61 ."When.enabled,.display.the.clea
37880 72 65 64 2d 6f 72 2d 70 65 6e 64 69 6e 67 20 62 61 6c 61 6e 63 65 20 69 6e 20 74 68 65 20 68 65 red-or-pending.balance.in.the.he
378a0 61 64 65 72 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c ader."...:group.'ledger-reconcil
378c0 65 0a 20 20 28 69 66 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 64 69 73 70 6c 61 79 e...(if.ledger-reconcile-display
378e0 2d 62 61 6c 61 6e 63 65 2d 69 6e 2d 68 65 61 64 65 72 2d 6d 6f 64 65 0a 20 20 20 20 20 20 28 73 -balance-in-header-mode.......(s
37900 65 74 71 20 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6f 72 6d 61 74 20 27 28 6c 65 64 67 65 72 2d etq.header-line-format.'(ledger-
37920 72 65 63 6f 6e 63 69 6c 65 2d 6c 61 73 74 2d 62 61 6c 61 6e 63 65 2d 65 71 75 61 6c 73 2d 74 61 reconcile-last-balance-equals-ta
37940 72 67 65 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rget............................
37960 20 20 20 20 20 20 28 3a 70 72 6f 70 65 72 74 69 7a 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ......(:propertize..............
37980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 64 67 65 72 2d 72 65 63 6f .....................ledger-reco
379a0 6e 63 69 6c 65 2d 6c 61 73 74 2d 62 61 6c 61 6e 63 65 2d 6d 65 73 73 61 67 65 0a 20 20 20 20 20 ncile-last-balance-message......
379c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 61 63 .............................fac
379e0 65 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 6c 61 73 74 2d 62 61 6c 61 6e 63 65 2d e.ledger-reconcile-last-balance-
37a00 65 71 75 61 6c 73 2d 74 61 72 67 65 74 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 equals-target-face).............
37a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 64 67 65 72 2d 72 65 63 6f .....................ledger-reco
37a40 6e 63 69 6c 65 2d 6c 61 73 74 2d 62 61 6c 61 6e 63 65 2d 6d 65 73 73 61 67 65 29 29 0a 20 20 20 ncile-last-balance-message))....
37a60 20 28 73 65 74 71 20 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6f 72 6d 61 74 20 6e 69 6c 29 29 29 .(setq.header-line-format.nil)))
37a80 0a 0a 28 70 72 6f 76 69 64 65 20 27 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 29 0a 0a 3b ..(provide.'ledger-reconcile)..;
37aa0 3b 3b 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 ;;.ledger-reconcile.el.ends.here
37ac0 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37c00 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 33 32 36 2e 32 30 30 32 2f 6c 65 64 67 65 72 ledger-mode-20240326.2002/ledger
37c20 2d 72 65 67 65 78 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -regex.el.......................
37c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37c60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
37c80 30 30 33 33 30 36 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 30 37 30 00 20 30 00 00 00 0033067.00000000000.016070..0...
37ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37d00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
37d20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
37d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37e00 3b 3b 3b 20 6c 65 64 67 65 72 2d 72 65 67 65 78 2e 65 6c 20 2d 2d 2d 20 48 65 6c 70 65 72 20 63 ;;;.ledger-regex.el.---.Helper.c
37e20 6f 64 65 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 74 68 65 20 22 6c 65 64 67 65 72 22 20 63 6f ode.for.use.with.the."ledger".co
37e40 6d 6d 61 6e 64 2d 6c 69 6e 65 20 74 6f 6f 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e mmand-line.tool..-*-.lexical-bin
37e60 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 ding:.t;.-*-..;;.Copyright.(C).2
37e80 30 30 33 2d 32 30 31 36 20 4a 6f 68 6e 20 57 69 65 67 6c 65 79 20 28 6a 6f 68 6e 77 20 41 54 20 003-2016.John.Wiegley.(johnw.AT.
37ea0 67 6e 75 20 44 4f 54 20 6f 72 67 29 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 6e 6f gnu.DOT.org)..;;.This.file.is.no
37ec0 74 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 54 68 69 73 20 69 73 t.part.of.GNU.Emacs...;;.This.is
37ee0 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 .free.software;.you.can.redistri
37f00 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 20 75 6e 64 65 72 0a 3b bute.it.and/or.modify.it.under.;
37f20 3b 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 ;.the.terms.of.the.GNU.General.P
37f40 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 ublic.License.as.published.by.th
37f60 65 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 e.Free.;;.Software.Foundation;.e
37f80 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 32 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 ither.version.2,.or.(at.your.opt
37fa0 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 0a 3b 3b 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b ion).any.later.;;.version..;;.;;
37fc0 20 54 68 69 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 .This.is.distributed.in.the.hope
37fe0 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 .that.it.will.be.useful,.but.WIT
38000 48 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 HOUT.;;.ANY.WARRANTY;.without.ev
38020 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 en.the.implied.warranty.of.MERCH
38040 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 0a 3b 3b 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 ANTABILITY.or.;;.FITNESS.FOR.A.P
38060 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 ARTICULAR.PURPOSE...See.the.GNU.
38080 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 66 6f 72 20 6d 6f General.Public.License.;;.for.mo
380a0 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 re.details..;;.;;.You.should.hav
380c0 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e e.received.a.copy.of.the.GNU.Gen
380e0 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 eral.Public.License.;;.along.wit
38100 68 20 47 4e 55 20 45 6d 61 63 73 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e h.GNU.Emacs;.see.the.file.COPYIN
38120 47 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 G...If.not,.write.to.the.;;.Free
38140 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 .Software.Foundation,.Inc.,.51.F
38160 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 ranklin.Street,.Fifth.Floor,.Bos
38180 74 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 20 55 53 41 2e 0a 0a 0a 3b 3b 3b ton,.;;.MA.02110-1301.USA....;;;
381a0 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 20 52 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 .Commentary:.;;.Regular.expressi
381c0 6f 6e 73 20 75 73 65 64 20 62 79 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 0a 0a 3b 3b 3b 20 43 6f ons.used.by.ledger-mode...;;;.Co
381e0 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 72 78 29 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d de:..(require.'rx).(require.'cl-
38200 6c 69 62 29 0a 0a 28 64 65 66 76 61 72 20 6c 65 64 67 65 72 2d 69 73 6f 2d 64 61 74 65 2d 72 65 lib)..(defvar.ledger-iso-date-re
38220 67 65 78 70 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6c 65 64 67 65 72 2d 61 6d 6f 75 6e 74 2d 64 gexp)..(defconst.ledger-amount-d
38240 65 63 69 6d 61 6c 2d 63 6f 6d 6d 61 2d 72 65 67 65 78 0a 20 20 22 2d 3f 5c 5c 28 3f 3a 5b 31 2d ecimal-comma-regex..."-?\\(?:[1-
38260 39 5d 5b 30 2d 39 2e 5d 5c 5c 7c 30 5c 5c 29 2a 5b 2c 5d 3f 5b 30 2d 39 5d 2a 22 29 0a 0a 28 64 9][0-9.]\\|0\\)*[,]?[0-9]*")..(d
38280 65 66 63 6f 6e 73 74 20 6c 65 64 67 65 72 2d 61 6d 6f 75 6e 74 2d 64 65 63 69 6d 61 6c 2d 70 65 efconst.ledger-amount-decimal-pe
382a0 72 69 6f 64 2d 72 65 67 65 78 0a 20 20 22 2d 3f 5c 5c 28 3f 3a 5b 31 2d 39 5d 5b 30 2d 39 2c 5d riod-regex..."-?\\(?:[1-9][0-9,]
382c0 2a 5c 5c 7c 30 5c 5c 29 5b 2e 5d 3f 5b 30 2d 39 5d 2a 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 *\\|0\\)[.]?[0-9]*")..(defconst.
382e0 6c 65 64 67 65 72 2d 6f 74 68 65 72 2d 65 6e 74 72 69 65 73 2d 72 65 67 65 78 0a 20 20 22 5c 5c ledger-other-entries-regex..."\\
38300 28 5e 5b 7e 3d 41 2d 5a 61 2d 7a 5d 2e 2b 5c 5c 29 2b 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 (^[~=A-Za-z].+\\)+")..(defconst.
38320 6c 65 64 67 65 72 2d 63 6f 6d 6d 65 6e 74 2d 72 65 67 65 78 0a 20 20 22 5e 5b 3b 23 7c 5c 5c 2a ledger-comment-regex..."^[;#|\\*
38340 25 5d 2e 2a 5c 5c 7c 5b 20 5c 74 5d 2b 3b 2e 2a 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6c 65 %].*\\|[.\t]+;.*")..(defconst.le
38360 64 67 65 72 2d 6d 75 6c 74 69 6c 69 6e 65 2d 63 6f 6d 6d 65 6e 74 2d 73 74 61 72 74 2d 72 65 67 dger-multiline-comment-start-reg
38380 65 78 0a 20 20 22 5e 21 63 6f 6d 6d 65 6e 74 24 22 29 0a 28 64 65 66 63 6f 6e 73 74 20 6c 65 64 ex..."^!comment$").(defconst.led
383a0 67 65 72 2d 6d 75 6c 74 69 6c 69 6e 65 2d 63 6f 6d 6d 65 6e 74 2d 65 6e 64 2d 72 65 67 65 78 0a ger-multiline-comment-end-regex.
383c0 20 20 22 5e 21 65 6e 64 5f 63 6f 6d 6d 65 6e 74 24 22 29 0a 28 64 65 66 63 6f 6e 73 74 20 6c 65 .."^!end_comment$").(defconst.le
383e0 64 67 65 72 2d 6d 75 6c 74 69 6c 69 6e 65 2d 63 6f 6d 6d 65 6e 74 2d 72 65 67 65 78 0a 20 20 22 dger-multiline-comment-regex..."
38400 5e 21 63 6f 6d 6d 65 6e 74 5c 6e 5c 5c 28 2e 2a 5c 6e 5c 5c 29 2a 3f 21 65 6e 64 5f 63 6f 6d 6d ^!comment\n\\(.*\n\\)*?!end_comm
38420 65 6e 74 24 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6c 65 64 67 65 72 2d 70 61 79 65 65 2d 61 ent$")..(defconst.ledger-payee-a
38440 6e 79 2d 73 74 61 74 75 73 2d 72 65 67 65 78 0a 20 20 22 5e 5b 30 2d 39 5d 2b 5b 2d 2f 5d 5b 2d ny-status-regex..."^[0-9]+[-/][-
38460 2f 2e 3d 30 2d 39 5d 2b 5c 5c 28 3f 3a 5c 5c 73 2d 2b 5c 5c 2a 5c 5c 29 3f 5c 5c 28 3f 3a 5c 5c /.=0-9]+\\(?:\\s-+\\*\\)?\\(?:\\
38480 73 2d 2b 28 2e 2a 3f 29 5c 5c 29 3f 5c 5c 73 2d 2b 5c 5c 28 2e 2b 3f 5c 5c 29 5c 5c 73 2d 2a 5c s-+(.*?)\\)?\\s-+\\(.+?\\)\\s-*\
384a0 5c 28 3f 3a 3b 5c 5c 7c 24 5c 5c 29 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6c 65 64 67 65 72 \(?:;\\|$\\)")..(defconst.ledger
384c0 2d 70 61 79 65 65 2d 70 65 6e 64 69 6e 67 2d 72 65 67 65 78 0a 20 20 22 5e 5b 30 2d 39 5d 2b 5b -payee-pending-regex..."^[0-9]+[
384e0 2d 2f 5d 5b 2d 2f 2e 3d 30 2d 39 5d 2b 5c 5c 73 2d 21 5c 5c 73 2d 2b 5c 5c 28 28 5b 5e 29 5d 2b -/][-/.=0-9]+\\s-!\\s-+\\(([^)]+
38500 29 5c 5c 73 2d 2b 5c 5c 29 3f 5c 5c 28 5b 5e 2a 5d 2e 2b 3f 5c 5c 29 5c 5c 73 2d 2a 5c 5c 28 3b )\\s-+\\)?\\([^*].+?\\)\\s-*\\(;
38520 5c 5c 7c 24 5c 5c 29 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6c 65 64 67 65 72 2d 70 61 79 65 \\|$\\)")..(defconst.ledger-paye
38540 65 2d 63 6c 65 61 72 65 64 2d 72 65 67 65 78 0a 20 20 22 5e 5b 30 2d 39 5d 2b 5b 2d 2f 5d 5b 2d e-cleared-regex..."^[0-9]+[-/][-
38560 2f 2e 3d 30 2d 39 5d 2b 5c 5c 73 2d 5c 5c 2a 5c 5c 73 2d 2b 5c 5c 28 28 5b 5e 29 5d 2b 29 5c 5c /.=0-9]+\\s-\\*\\s-+\\(([^)]+)\\
38580 73 2d 2b 5c 5c 29 3f 5c 5c 28 5b 5e 2a 5d 2e 2b 3f 5c 5c 29 5c 5c 73 2d 2a 5c 5c 28 3b 5c 5c 7c s-+\\)?\\([^*].+?\\)\\s-*\\(;\\|
385a0 24 5c 5c 29 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6c 65 64 67 65 72 2d 70 61 79 65 65 2d 75 $\\)")..(defconst.ledger-payee-u
385c0 6e 63 6c 65 61 72 65 64 2d 72 65 67 65 78 0a 20 20 22 5e 5b 30 2d 39 5d 2b 5b 2d 2f 5d 5b 2d 2f ncleared-regex..."^[0-9]+[-/][-/
385e0 2e 3d 30 2d 39 5d 2b 5c 5c 73 2d 2b 5c 5c 28 28 5b 5e 29 5d 2b 29 5c 5c 73 2d 2b 5c 5c 29 3f 5c .=0-9]+\\s-+\\(([^)]+)\\s-+\\)?\
38600 5c 28 5b 5e 2a 5d 2e 2b 3f 5c 5c 29 5c 5c 73 2d 2a 5c 5c 28 3b 5c 5c 7c 24 5c 5c 29 22 29 0a 0a \([^*].+?\\)\\s-*\\(;\\|$\\)")..
38620 28 64 65 66 63 6f 6e 73 74 20 6c 65 64 67 65 72 2d 70 61 79 65 65 2d 64 69 72 65 63 74 69 76 65 (defconst.ledger-payee-directive
38640 2d 72 65 67 65 78 0a 20 20 28 63 6f 6e 63 61 74 20 22 5e 70 61 79 65 65 5b 20 5c 74 5d 2b 5c 5c -regex...(concat."^payee[.\t]+\\
38660 28 2e 2a 3f 5c 5c 29 5b 20 5c 74 5d 2a 24 22 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6c 65 64 (.*?\\)[.\t]*$"))..(defconst.led
38680 67 65 72 2d 70 61 79 65 65 2d 6e 61 6d 65 2d 6f 72 2d 64 69 72 65 63 74 69 76 65 2d 72 65 67 65 ger-payee-name-or-directive-rege
386a0 78 0a 20 20 28 66 6f 72 6d 61 74 20 22 5c 5c 28 3f 3a 25 73 5c 5c 7c 25 73 5c 5c 29 22 20 6c 65 x...(format."\\(?:%s\\|%s\\)".le
386c0 64 67 65 72 2d 70 61 79 65 65 2d 61 6e 79 2d 73 74 61 74 75 73 2d 72 65 67 65 78 20 6c 65 64 67 dger-payee-any-status-regex.ledg
386e0 65 72 2d 70 61 79 65 65 2d 64 69 72 65 63 74 69 76 65 2d 72 65 67 65 78 29 29 0a 0a 28 64 65 66 er-payee-directive-regex))..(def
38700 63 6f 6e 73 74 20 6c 65 64 67 65 72 2d 69 6e 69 74 2d 73 74 72 69 6e 67 2d 72 65 67 65 78 0a 20 const.ledger-init-string-regex..
38720 20 22 5e 2d 2d 2e 2b 3f 5c 5c 28 24 5c 5c 7c 5b 20 5d 5c 5c 29 22 29 0a 0a 28 64 65 66 63 6f 6e ."^--.+?\\($\\|[.]\\)")..(defcon
38740 73 74 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 2d 6e 61 6d 65 2d 72 65 67 65 78 0a 20 20 22 st.ledger-account-name-regex..."
38760 5c 5c 28 3f 31 3a 5b 5e 5d 5b 28 29 3b 20 5c 74 5c 72 5c 6e 5d 2b 5c 5c 28 3f 3a 20 5b 5e 5d 5b \\(?1:[^][();.\t\r\n]+\\(?:.[^][
38780 28 29 3b 20 5c 74 5c 72 5c 6e 5d 2b 5c 5c 29 2a 5c 5c 29 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 ();.\t\r\n]+\\)*\\)")..(defconst
387a0 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 2d 64 69 72 65 63 74 69 76 65 2d 72 65 67 65 78 0a .ledger-account-directive-regex.
387c0 20 20 28 63 6f 6e 63 61 74 20 22 5e 61 63 63 6f 75 6e 74 5b 20 5c 74 5d 2b 22 20 6c 65 64 67 65 ..(concat."^account[.\t]+".ledge
387e0 72 2d 61 63 63 6f 75 6e 74 2d 6e 61 6d 65 2d 72 65 67 65 78 29 29 0a 0a 28 64 65 66 63 6f 6e 73 r-account-name-regex))..(defcons
38800 74 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 2d 6e 61 6d 65 2d 6d 61 79 62 65 2d 76 69 72 74 t.ledger-account-name-maybe-virt
38820 75 61 6c 2d 72 65 67 65 78 0a 20 20 28 63 6f 6e 63 61 74 20 22 5b 5b 28 5d 3f 22 20 6c 65 64 67 ual-regex...(concat."[[(]?".ledg
38840 65 72 2d 61 63 63 6f 75 6e 74 2d 6e 61 6d 65 2d 72 65 67 65 78 20 22 5b 5d 29 5d 3f 22 29 29 0a er-account-name-regex."[])]?")).
38860 0a 28 64 65 66 63 6f 6e 73 74 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 2d 61 6e 79 2d 73 74 .(defconst.ledger-account-any-st
38880 61 74 75 73 2d 72 65 67 65 78 0a 20 20 28 63 6f 6e 63 61 74 20 22 5e 5b 20 5c 74 5d 2b 5c 5c 28 atus-regex...(concat."^[.\t]+\\(
388a0 3f 3a 5b 21 2a 5d 5b 20 5c 74 5d 2a 5c 5c 29 3f 22 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 ?:[!*][.\t]*\\)?".ledger-account
388c0 2d 6e 61 6d 65 2d 6d 61 79 62 65 2d 76 69 72 74 75 61 6c 2d 72 65 67 65 78 29 29 0a 0a 3b 3b 20 -name-maybe-virtual-regex))..;;.
388e0 54 68 69 73 20 77 6f 75 6c 64 20 69 6e 63 6f 72 72 65 63 74 6c 79 20 6d 61 74 63 68 20 22 61 63 This.would.incorrectly.match."ac
38900 63 6f 75 6e 74 20 28 66 6f 6f 29 22 2c 20 62 75 74 20 77 72 69 74 69 6e 67 20 74 68 65 20 72 65 count.(foo)",.but.writing.the.re
38920 67 65 78 70 20 74 68 69 73 20 77 61 79 0a 3b 3b 20 61 6c 6c 6f 77 73 20 75 73 20 74 6f 20 68 61 gexp.this.way.;;.allows.us.to.ha
38940 76 65 20 6a 75 73 74 20 6f 6e 65 20 6d 61 74 63 68 20 72 65 73 75 6c 74 0a 28 64 65 66 63 6f 6e ve.just.one.match.result.(defcon
38960 73 74 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 2d 6e 61 6d 65 2d 6f 72 2d 64 69 72 65 63 74 st.ledger-account-name-or-direct
38980 69 76 65 2d 72 65 67 65 78 0a 20 20 28 66 6f 72 6d 61 74 20 22 5c 5c 28 3f 3a 25 73 5c 5c 7c 25 ive-regex...(format."\\(?:%s\\|%
389a0 73 5c 5c 29 22 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 2d 61 6e 79 2d 73 74 61 74 75 73 2d s\\)".ledger-account-any-status-
389c0 72 65 67 65 78 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 2d 64 69 72 65 63 74 69 76 65 2d 72 regex.ledger-account-directive-r
389e0 65 67 65 78 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 egex))..(defconst.ledger-account
38a00 2d 70 65 6e 64 69 6e 67 2d 72 65 67 65 78 0a 20 20 28 63 6f 6e 63 61 74 20 22 5c 5c 28 5e 5b 20 -pending-regex...(concat."\\(^[.
38a20 5c 74 5d 2b 5c 5c 29 21 22 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 2d 6e 61 6d 65 2d 6d 61 \t]+\\)!".ledger-account-name-ma
38a40 79 62 65 2d 76 69 72 74 75 61 6c 2d 72 65 67 65 78 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6c ybe-virtual-regex))..(defconst.l
38a60 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 2d 63 6c 65 61 72 65 64 2d 72 65 67 65 78 0a 20 20 28 63 edger-account-cleared-regex...(c
38a80 6f 6e 63 61 74 20 22 5c 5c 28 5e 5b 20 5c 74 5d 2b 5c 5c 29 2a 22 20 6c 65 64 67 65 72 2d 61 63 oncat."\\(^[.\t]+\\)*".ledger-ac
38aa0 63 6f 75 6e 74 2d 6e 61 6d 65 2d 6d 61 79 62 65 2d 76 69 72 74 75 61 6c 2d 72 65 67 65 78 29 29 count-name-maybe-virtual-regex))
38ac0 0a 0a 28 64 65 66 6d 61 63 72 6f 20 6c 65 64 67 65 72 2d 64 65 66 69 6e 65 2d 72 65 67 65 78 70 ..(defmacro.ledger-define-regexp
38ae0 20 28 6e 61 6d 65 20 72 65 67 65 78 20 64 6f 63 73 20 26 72 65 73 74 20 61 72 67 73 29 0a 20 20 .(name.regex.docs.&rest.args)...
38b00 22 53 69 6d 70 6c 69 66 79 20 74 68 65 20 63 72 65 61 74 69 6f 6e 20 6f 66 20 61 20 4c 65 64 67 "Simplify.the.creation.of.a.Ledg
38b20 65 72 20 72 65 67 65 78 20 61 6e 64 20 68 65 6c 70 65 72 20 66 75 6e 63 74 69 6f 6e 73 2e 22 0a er.regex.and.helper.functions.".
38b40 20 20 28 6c 65 74 2a 20 28 28 72 65 67 65 78 20 28 65 76 61 6c 20 72 65 67 65 78 29 29 0a 20 20 ..(let*.((regex.(eval.regex))...
38b60 20 20 20 20 20 20 20 28 67 72 6f 75 70 2d 63 6f 75 6e 74 20 28 72 65 67 65 78 70 2d 6f 70 74 2d .......(group-count.(regexp-opt-
38b80 64 65 70 74 68 20 72 65 67 65 78 29 29 0a 20 20 20 20 20 20 20 20 20 28 64 65 66 73 0a 20 20 20 depth.regex))..........(defs....
38ba0 20 20 20 20 20 20 20 20 28 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 60 28 64 65 66 63 ........(list.............`(defc
38bc0 6f 6e 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 28 69 6e 74 65 72 6e 20 28 63 6f onst................,(intern.(co
38be0 6e 63 61 74 20 22 6c 65 64 67 65 72 2d 22 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6e 61 6d 65 ncat."ledger-".(symbol-name.name
38c00 29 20 22 2d 72 65 67 65 78 70 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 72 65 )."-regexp"))................,re
38c20 67 65 78 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 64 6f 63 73 29 0a 20 20 20 20 20 20 gex................,docs).......
38c40 20 20 20 20 20 20 60 28 64 65 66 63 6f 6e 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......`(defconst................
38c60 2c 28 69 6e 74 65 72 6e 20 28 63 6f 6e 63 61 74 20 22 6c 65 64 67 65 72 2d 72 65 67 65 78 2d 22 ,(intern.(concat."ledger-regex-"
38c80 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .(symbol-name.name).............
38ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 67 72 6f 75 70 2d 2d 63 6f 75 ...................."-group--cou
38cc0 6e 74 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 67 72 6f 75 70 2d 63 6f 75 6e nt"))................,group-coun
38ce0 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 61 64 64 65 6e 64 20 30 29 20 6c 61 73 74 2d 67 72 t)))..........(addend.0).last-gr
38d00 6f 75 70 29 0a 20 20 20 20 28 69 66 20 28 6e 75 6c 6c 20 61 72 67 73 29 0a 20 20 20 20 20 20 20 oup).....(if.(null.args)........
38d20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 63 6c 2d 70 6c 75 73 .(progn...........(when.(cl-plus
38d40 70 20 67 72 6f 75 70 2d 63 6f 75 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 63 6f 6e p.group-count).............(ncon
38d60 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 66 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 c..............defs.............
38d80 20 28 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 64 65 66 63 6f 6e 73 74 0a .(list...............`(defconst.
38da0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 28 69 6e 74 65 72 6e 0a 20 20 20 20 20 20 .................,(intern.......
38dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 6c 65 64 67 65 72 2d 72 65 67 .............(concat."ledger-reg
38de0 65 78 2d 22 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6e 61 6d 65 29 20 22 2d 67 72 6f 75 70 22 ex-".(symbol-name.name)."-group"
38e00 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 31 29 29 29 0a 20 20 20 20 20 20 20 ))..................1)))........
38e20 20 20 20 20 20 28 6e 63 6f 6e 63 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 66 73 0a 20 20 .....(nconc..............defs...
38e40 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 ...........(list...............`
38e60 28 64 65 66 6d 61 63 72 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 28 69 (defmacro....................,(i
38e80 6e 74 65 72 6e 20 28 63 6f 6e 63 61 74 20 22 6c 65 64 67 65 72 2d 72 65 67 65 78 2d 22 20 28 73 ntern.(concat."ledger-regex-".(s
38ea0 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6e 61 6d 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ymbol-name.name)))..............
38ec0 20 20 20 20 20 20 28 26 6f 70 74 69 6f 6e 61 6c 20 73 74 72 69 6e 67 29 0a 20 20 20 20 20 20 20 ......(&optional.string)........
38ee0 20 20 20 20 20 20 20 20 20 20 2c 28 66 6f 72 6d 61 74 20 22 52 65 74 75 72 6e 20 74 68 65 20 6d ..........,(format."Return.the.m
38f00 61 74 63 68 20 73 74 72 69 6e 67 20 66 6f 72 20 74 68 65 20 25 73 22 20 6e 61 6d 65 29 0a 20 20 atch.string.for.the.%s".name)...
38f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 0a 20 20 20 ...............(match-string....
38f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 28 69 6e 74 65 72 6e 20 28 63 6f 6e 63 61 74 20 ...............,(intern.(concat.
38f60 22 6c 65 64 67 65 72 2d 72 65 67 65 78 2d 22 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6e 61 6d "ledger-regex-".(symbol-name.nam
38f80 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e)..............................
38fa0 20 20 20 20 20 20 22 2d 67 72 6f 75 70 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......"-group"))................
38fc0 20 20 20 73 74 72 69 6e 67 29 29 29 29 29 29 0a 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 61 72 ...string))))))........(while.ar
38fe0 67 73 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 61 72 67 20 76 61 72 20 67 72 6f 75 70 69 6e gs.........(let.(arg.var.groupin
39000 67 20 74 61 72 67 65 74 20 66 6f 72 63 65 2d 69 6e 63 72 65 6d 65 6e 74 29 0a 20 20 20 20 20 20 g.target.force-increment).......
39020 20 20 20 20 28 73 65 74 71 20 61 72 67 20 28 70 6f 70 20 61 72 67 73 29 29 0a 0a 20 20 20 20 20 ....(setq.arg.(pop.args)).......
39040 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 61 72 67 20 3a 73 65 70 61 72 61 74 65 29 0a 20 20 .....(when.(eq.arg.:separate)...
39060 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 61 72 67 20 28 70 6f 70 20 61 72 67 73 29 29 0a ..........(setq.arg.(pop.args)).
39080 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 66 6f 72 63 65 2d 69 6e 63 72 65 6d 65 6e ............(setq.force-incremen
390a0 74 20 74 29 29 0a 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 79 6d 62 6f 6c 70 20 61 72 t.t))............(if.(symbolp.ar
390c0 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 76 61 72 20 61 72 67 20 74 g)...............(setq.var.arg.t
390e0 61 72 67 65 74 20 61 72 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 61 73 73 65 72 arget.arg).............(cl-asser
39100 74 20 28 6c 69 73 74 70 20 61 72 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 t.(listp.arg)).............(if.(
39120 3d 20 32 20 28 6c 65 6e 67 74 68 20 61 72 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 =.2.(length.arg))...............
39140 20 20 28 73 65 74 71 20 76 61 72 20 28 63 61 72 20 61 72 67 29 0a 20 20 20 20 20 20 20 20 20 20 ..(setq.var.(car.arg)...........
39160 20 20 20 20 20 20 20 20 20 20 20 20 74 61 72 67 65 74 20 28 63 61 64 72 20 61 72 67 29 29 0a 20 ............target.(cadr.arg))..
39180 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 76 61 72 20 28 63 61 72 20 61 72 67 29 .............(setq.var.(car.arg)
391a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 67 72 6f 75 70 69 6e 67 20 28 63 .....................grouping.(c
391c0 61 64 72 20 61 72 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 61 72 adr.arg).....................tar
391e0 67 65 74 20 28 63 6c 2d 63 61 64 64 72 20 61 72 67 29 29 29 29 0a 0a 20 20 20 20 20 20 20 20 20 get.(cl-caddr.arg))))...........
39200 20 28 69 66 20 28 61 6e 64 20 6c 61 73 74 2d 67 72 6f 75 70 0a 20 20 20 20 20 20 20 20 20 20 20 .(if.(and.last-group............
39220 20 20 20 20 20 20 20 20 28 6f 72 20 28 6e 6f 74 20 28 65 71 20 6c 61 73 74 2d 67 72 6f 75 70 20 ........(or.(not.(eq.last-group.
39240 28 6f 72 20 67 72 6f 75 70 69 6e 67 20 74 61 72 67 65 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 (or.grouping.target)))..........
39260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 63 65 2d 69 6e 63 72 65 6d 65 6e 74 29 29 0a ..............force-increment)).
39280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 69 6e 63 66 20 61 64 64 65 6e 64 0a 20 20 ..............(cl-incf.addend...
392a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 2d 76 61 6c .....................(symbol-val
392c0 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 74 65 ue.........................(inte
392e0 72 6e 2d 73 6f 66 74 20 28 63 6f 6e 63 61 74 20 22 6c 65 64 67 65 72 2d 72 65 67 65 78 2d 22 0a rn-soft.(concat."ledger-regex-".
39300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39320 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6c 61 73 74 2d 67 .............(symbol-name.last-g
39340 72 6f 75 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 roup)...........................
39360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 67 72 6f 75 70 2d 2d 63 6f 75 6e ..................."-group--coun
39380 74 22 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6e 63 6f 6e 63 0a 20 20 20 20 20 20 20 t")))))...........(nconc........
393a0 20 20 20 20 64 65 66 73 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 0a 20 20 20 20 20 20 ....defs............(list.......
393c0 20 20 20 20 20 20 60 28 64 65 66 63 6f 6e 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......`(defconst................
393e0 2c 28 69 6e 74 65 72 6e 20 28 63 6f 6e 63 61 74 20 22 6c 65 64 67 65 72 2d 72 65 67 65 78 2d 22 ,(intern.(concat."ledger-regex-"
39400 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .(symbol-name.name).............
39420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 67 72 6f 75 70 2d 22 20 28 73 ...................."-group-".(s
39440 79 6d 62 6f 6c 2d 6e 61 6d 65 20 76 61 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ymbol-name.var)))...............
39460 20 2c 28 2b 20 61 64 64 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 .,(+.addend....................(
39480 73 79 6d 62 6f 6c 2d 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 symbol-value....................
394a0 20 28 69 6e 74 65 72 6e 2d 73 6f 66 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(intern-soft...................
394c0 20 20 20 28 69 66 20 67 72 6f 75 70 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...(if.grouping.................
394e0 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 6c 65 64 67 65 72 2d 72 65 67 65 78 2d 22 .........(concat."ledger-regex-"
39500 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 67 72 6f 75 70 69 6e 67 29 0a 20 20 20 20 20 20 20 20 .(symbol-name.grouping).........
39520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 67 72 6f 75 70 ........................."-group
39540 2d 22 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 74 61 72 67 65 74 29 29 0a 20 20 20 20 20 20 20 -".(symbol-name.target))........
39560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 6c 65 64 67 65 72 2d ................(concat."ledger-
39580 72 65 67 65 78 2d 22 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 74 61 72 67 65 74 29 0a 20 20 20 regex-".(symbol-name.target)....
395a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 67 72 ............................"-gr
395c0 6f 75 70 22 29 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6e 63 6f 6e 63 0a 20 20 oup"))))))))...........(nconc...
395e0 20 20 20 20 20 20 20 20 20 64 65 66 73 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 0a 20 .........defs............(list..
39600 20 20 20 20 20 20 20 20 20 20 20 60 28 64 65 66 6d 61 63 72 6f 0a 20 20 20 20 20 20 20 20 20 20 ...........`(defmacro...........
39620 20 20 20 20 20 20 20 2c 28 69 6e 74 65 72 6e 20 28 63 6f 6e 63 61 74 20 22 6c 65 64 67 65 72 2d .......,(intern.(concat."ledger-
39640 72 65 67 65 78 2d 22 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6e 61 6d 65 29 0a 20 20 20 20 20 regex-".(symbol-name.name)......
39660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 22 ............................."-"
39680 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 76 61 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 .(symbol-name.var)))............
396a0 20 20 20 20 20 20 28 26 6f 70 74 69 6f 6e 61 6c 20 73 74 72 69 6e 67 29 0a 20 20 20 20 20 20 20 ......(&optional.string)........
396c0 20 20 20 20 20 20 20 20 2c 28 66 6f 72 6d 61 74 20 22 52 65 74 75 72 6e 20 74 68 65 20 73 75 62 ........,(format."Return.the.sub
396e0 2d 67 72 6f 75 70 20 6d 61 74 63 68 20 66 6f 72 20 74 68 65 20 25 73 20 25 73 2e 22 0a 20 20 20 -group.match.for.the.%s.%s."....
39700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 61 6d 65 20 76 61 72 29 0a 20 .....................name.var)..
39720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 0a 20 20 20 20 ..............(match-string.....
39740 20 20 20 20 20 20 20 20 20 20 20 20 2c 28 69 6e 74 65 72 6e 20 28 63 6f 6e 63 61 74 20 22 6c 65 ............,(intern.(concat."le
39760 64 67 65 72 2d 72 65 67 65 78 2d 22 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 6e 61 6d 65 29 0a dger-regex-".(symbol-name.name).
39780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
397a0 20 22 2d 67 72 6f 75 70 2d 22 20 28 73 79 6d 62 6f 6c 2d 6e 61 6d 65 20 76 61 72 29 29 29 0a 20 ."-group-".(symbol-name.var)))..
397c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 72 69 6e 67 29 29 29 29 0a 0a 20 20 20 20 20 ...............string)))).......
397e0 20 20 20 20 20 28 73 65 74 71 20 6c 61 73 74 2d 67 72 6f 75 70 20 28 6f 72 20 67 72 6f 75 70 69 .....(setq.last-group.(or.groupi
39800 6e 67 20 74 61 72 67 65 74 29 29 29 29 29 0a 0a 20 20 20 20 28 63 6f 6e 73 20 27 65 76 61 6c 2d ng.target)))))......(cons.'eval-
39820 61 6e 64 2d 63 6f 6d 70 69 6c 65 20 64 65 66 73 29 29 29 0a 0a 28 70 75 74 20 27 6c 65 64 67 65 and-compile.defs)))..(put.'ledge
39840 72 2d 64 65 66 69 6e 65 2d 72 65 67 65 78 70 20 27 6c 69 73 70 2d 69 6e 64 65 6e 74 2d 66 75 6e r-define-regexp.'lisp-indent-fun
39860 63 74 69 6f 6e 20 31 29 0a 0a 28 6c 65 64 67 65 72 2d 64 65 66 69 6e 65 2d 72 65 67 65 78 70 20 ction.1)..(ledger-define-regexp.
39880 69 73 6f 2d 64 61 74 65 0a 20 20 28 6c 65 74 20 28 28 73 65 70 20 27 28 6f 72 20 3f 2d 20 3f 2f iso-date...(let.((sep.'(or.?-.?/
398a0 29 29 29 0a 20 20 20 20 28 72 78 20 28 67 72 6f 75 70 0a 20 20 20 20 20 20 20 20 20 28 61 6e 64 ))).....(rx.(group..........(and
398c0 20 28 67 72 6f 75 70 20 28 3d 20 34 20 6e 75 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .(group.(=.4.num))..............
398e0 20 28 65 76 61 6c 20 73 65 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 72 6f 75 70 .(eval.sep)...............(group
39900 20 28 61 6e 64 20 6e 75 6d 20 28 3f 20 6e 75 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .(and.num.(?.num))).............
39920 20 20 28 65 76 61 6c 20 73 65 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 72 6f 75 ..(eval.sep)...............(grou
39940 70 20 28 61 6e 64 20 6e 75 6d 20 28 3f 20 6e 75 6d 29 29 29 29 29 29 29 0a 20 20 22 4d 61 74 63 p.(and.num.(?.num)))))))..."Matc
39960 68 20 61 20 73 69 6e 67 6c 65 20 64 61 74 65 2c 20 69 6e 20 69 74 73 20 5c 22 77 72 69 74 74 65 h.a.single.date,.in.its.\"writte
39980 6e 5c 22 20 66 6f 72 6d 2e 22 29 0a 0a 28 6c 65 64 67 65 72 2d 64 65 66 69 6e 65 2d 72 65 67 65 n\".form.")..(ledger-define-rege
399a0 78 70 20 66 75 6c 6c 2d 64 61 74 65 0a 20 20 28 6d 61 63 72 6f 65 78 70 61 6e 64 0a 20 20 20 60 xp.full-date...(macroexpand....`
399c0 28 72 78 20 28 61 6e 64 20 28 72 65 67 65 78 70 20 2c 6c 65 64 67 65 72 2d 69 73 6f 2d 64 61 74 (rx.(and.(regexp.,ledger-iso-dat
399e0 65 2d 72 65 67 65 78 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 20 28 61 6e 64 20 3f e-regexp)..............(?.(and.?
39a00 3d 20 28 72 65 67 65 78 70 20 2c 6c 65 64 67 65 72 2d 69 73 6f 2d 64 61 74 65 2d 72 65 67 65 78 =.(regexp.,ledger-iso-date-regex
39a20 70 29 29 29 29 29 29 0a 20 20 22 4d 61 74 63 68 20 61 20 63 6f 6d 70 6f 75 6e 64 20 64 61 74 65 p))))))..."Match.a.compound.date
39a40 2c 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 41 43 54 55 41 4c 3d 45 46 46 45 43 54 49 56 45 22 0a ,.of.the.form.ACTUAL=EFFECTIVE".
39a60 20 20 28 61 63 74 75 61 6c 20 69 73 6f 2d 64 61 74 65 29 0a 20 20 3a 73 65 70 61 72 61 74 65 0a ..(actual.iso-date)...:separate.
39a80 20 20 28 65 66 66 65 63 74 69 76 65 20 69 73 6f 2d 64 61 74 65 29 29 0a 0a 28 6c 65 64 67 65 72 ..(effective.iso-date))..(ledger
39aa0 2d 64 65 66 69 6e 65 2d 72 65 67 65 78 70 20 73 74 61 74 65 0a 20 20 28 72 78 20 28 67 72 6f 75 -define-regexp.state...(rx.(grou
39ac0 70 20 28 61 6e 79 20 3f 21 20 3f 2a 29 29 29 0a 20 20 22 4d 61 74 63 68 20 61 20 74 72 61 6e 73 p.(any.?!.?*)))..."Match.a.trans
39ae0 61 63 74 69 6f 6e 20 6f 72 20 70 6f 73 74 69 6e 67 27 73 20 5c 22 73 74 61 74 65 5c 22 20 63 68 action.or.posting's.\"state\".ch
39b00 61 72 61 63 74 65 72 2e 22 29 0a 0a 28 6c 65 64 67 65 72 2d 64 65 66 69 6e 65 2d 72 65 67 65 78 aracter.")..(ledger-define-regex
39b20 70 20 63 6f 64 65 0a 20 20 28 72 78 20 28 61 6e 64 20 3f 5c 28 20 28 67 72 6f 75 70 20 28 2b 3f p.code...(rx.(and.?\(.(group.(+?
39b40 20 28 6e 6f 74 20 28 61 6e 79 20 3f 5c 29 29 29 29 29 20 3f 5c 29 29 29 0a 20 20 22 4d 61 74 63 .(not.(any.?\))))).?\)))..."Matc
39b60 68 20 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 63 6f 64 65 2e 22 29 0a 0a 28 6c 65 64 67 h.the.transaction.code.")..(ledg
39b80 65 72 2d 64 65 66 69 6e 65 2d 72 65 67 65 78 70 20 6c 6f 6e 67 2d 73 70 61 63 65 0a 20 20 28 72 er-define-regexp.long-space...(r
39ba0 78 20 28 61 6e 64 20 28 2a 3f 20 62 6c 61 6e 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 x.(and.(*?.blank)............(or
39bc0 20 28 61 6e 64 20 3f 20 20 28 6f 72 20 3f 20 20 3f 5c 74 29 29 20 3f 5c 74 29 29 29 0a 20 20 22 .(and.?..(or.?..?\t)).?\t)))..."
39be0 4d 61 74 63 68 20 61 20 5c 22 6c 6f 6e 67 20 73 70 61 63 65 5c 22 2e 22 29 0a 0a 28 6c 65 64 67 Match.a.\"long.space\".")..(ledg
39c00 65 72 2d 64 65 66 69 6e 65 2d 72 65 67 65 78 70 20 6e 6f 74 65 0a 20 20 28 72 78 20 28 67 72 6f er-define-regexp.note...(rx.(gro
39c20 75 70 20 28 2b 20 6e 6f 6e 6c 29 29 29 0a 20 20 22 22 29 0a 0a 28 6c 65 64 67 65 72 2d 64 65 66 up.(+.nonl)))..."")..(ledger-def
39c40 69 6e 65 2d 72 65 67 65 78 70 20 65 6e 64 2d 6e 6f 74 65 0a 20 20 28 6d 61 63 72 6f 65 78 70 61 ine-regexp.end-note...(macroexpa
39c60 6e 64 0a 20 20 20 60 28 72 78 20 28 61 6e 64 20 28 72 65 67 65 78 70 20 2c 6c 65 64 67 65 72 2d nd....`(rx.(and.(regexp.,ledger-
39c80 6c 6f 6e 67 2d 73 70 61 63 65 2d 72 65 67 65 78 70 29 20 3f 5c 3b 0a 20 20 20 20 20 20 20 20 20 long-space-regexp).?\;..........
39ca0 20 20 20 20 28 72 65 67 65 78 70 20 2c 6c 65 64 67 65 72 2d 6e 6f 74 65 2d 72 65 67 65 78 70 29 ....(regexp.,ledger-note-regexp)
39cc0 29 29 29 0a 20 20 22 22 29 0a 0a 28 6c 65 64 67 65 72 2d 64 65 66 69 6e 65 2d 72 65 67 65 78 70 )))..."")..(ledger-define-regexp
39ce0 20 66 75 6c 6c 2d 6e 6f 74 65 0a 20 20 28 6d 61 63 72 6f 65 78 70 61 6e 64 0a 20 20 20 60 28 72 .full-note...(macroexpand....`(r
39d00 78 20 28 61 6e 64 20 6c 69 6e 65 2d 73 74 61 72 74 20 28 2b 20 62 6c 61 6e 6b 29 0a 20 20 20 20 x.(and.line-start.(+.blank).....
39d20 20 20 20 20 20 20 20 20 20 3f 5c 3b 20 28 72 65 67 65 78 70 20 2c 6c 65 64 67 65 72 2d 6e 6f 74 .........?\;.(regexp.,ledger-not
39d40 65 2d 72 65 67 65 78 70 29 29 29 29 0a 20 20 22 22 29 0a 0a 28 6c 65 64 67 65 72 2d 64 65 66 69 e-regexp))))..."")..(ledger-defi
39d60 6e 65 2d 72 65 67 65 78 70 20 78 61 63 74 2d 6c 69 6e 65 0a 20 20 28 6d 61 63 72 6f 65 78 70 61 ne-regexp.xact-line...(macroexpa
39d80 6e 64 0a 20 20 20 60 28 72 78 20 28 61 6e 64 20 6c 69 6e 65 2d 73 74 61 72 74 0a 20 20 20 20 20 nd....`(rx.(and.line-start......
39da0 20 20 20 20 20 20 20 20 28 72 65 67 65 78 70 20 2c 6c 65 64 67 65 72 2d 66 75 6c 6c 2d 64 61 74 ........(regexp.,ledger-full-dat
39dc0 65 2d 72 65 67 65 78 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 20 28 61 6e 64 20 28 e-regexp)..............(?.(and.(
39de0 2b 20 62 6c 61 6e 6b 29 20 28 72 65 67 65 78 70 20 2c 6c 65 64 67 65 72 2d 73 74 61 74 65 2d 72 +.blank).(regexp.,ledger-state-r
39e00 65 67 65 78 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 20 28 61 6e 64 20 28 2b egexp)))..............(?.(and.(+
39e20 20 62 6c 61 6e 6b 29 20 28 72 65 67 65 78 70 20 2c 6c 65 64 67 65 72 2d 63 6f 64 65 2d 72 65 67 .blank).(regexp.,ledger-code-reg
39e40 65 78 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2b 20 62 6c 61 6e 6b 29 20 28 2b exp)))..............(+.blank).(+
39e60 3f 20 6e 6f 6e 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 20 28 72 65 67 65 78 70 20 ?.nonl)..............(?.(regexp.
39e80 2c 6c 65 64 67 65 72 2d 65 6e 64 2d 6e 6f 74 65 2d 72 65 67 65 78 70 29 29 0a 20 20 20 20 20 20 ,ledger-end-note-regexp)).......
39ea0 20 20 20 20 20 20 20 6c 69 6e 65 2d 65 6e 64 29 29 29 0a 20 20 22 4d 61 74 63 68 20 61 20 74 72 .......line-end)))..."Match.a.tr
39ec0 61 6e 73 61 63 74 69 6f 6e 27 73 20 66 69 72 73 74 20 6c 69 6e 65 20 28 61 6e 64 20 6f 70 74 69 ansaction's.first.line.(and.opti
39ee0 6f 6e 61 6c 20 6e 6f 74 65 73 29 2e 22 0a 20 20 28 61 63 74 75 61 6c 2d 64 61 74 65 20 66 75 6c onal.notes)."...(actual-date.ful
39f00 6c 2d 64 61 74 65 20 61 63 74 75 61 6c 29 0a 20 20 28 65 66 66 65 63 74 69 76 65 2d 64 61 74 65 l-date.actual)...(effective-date
39f20 20 66 75 6c 6c 2d 64 61 74 65 20 65 66 66 65 63 74 69 76 65 29 0a 20 20 73 74 61 74 65 0a 20 20 .full-date.effective)...state...
39f40 63 6f 64 65 0a 20 20 28 6e 6f 74 65 20 65 6e 64 2d 6e 6f 74 65 29 29 0a 0a 28 6c 65 64 67 65 72 code...(note.end-note))..(ledger
39f60 2d 64 65 66 69 6e 65 2d 72 65 67 65 78 70 20 61 63 63 6f 75 6e 74 0a 20 20 28 72 78 20 28 67 72 -define-regexp.account...(rx.(gr
39f80 6f 75 70 20 28 61 6e 64 20 28 6e 6f 74 20 28 61 6e 79 20 62 6c 61 6e 6b 20 3f 5c 5b 20 3f 5c 28 oup.(and.(not.(any.blank.?\[.?\(
39fa0 20 3f 3a 20 3f 5c 3b 29 29 20 28 2a 3f 20 6e 6f 6e 6c 29 29 29 29 0a 20 20 22 22 29 0a 0a 28 6c .?:.?\;)).(*?.nonl))))..."")..(l
39fc0 65 64 67 65 72 2d 64 65 66 69 6e 65 2d 72 65 67 65 78 70 20 61 63 63 6f 75 6e 74 2d 6b 69 6e 64 edger-define-regexp.account-kind
39fe0 0a 20 20 28 72 78 20 28 67 72 6f 75 70 20 28 3f 20 28 61 6e 79 20 3f 5c 5b 20 3f 5c 28 29 29 29 ...(rx.(group.(?.(any.?\[.?\()))
3a000 29 0a 20 20 22 22 29 0a 0a 28 6c 65 64 67 65 72 2d 64 65 66 69 6e 65 2d 72 65 67 65 78 70 20 66 )..."")..(ledger-define-regexp.f
3a020 75 6c 6c 2d 61 63 63 6f 75 6e 74 0a 20 20 28 6d 61 63 72 6f 65 78 70 61 6e 64 0a 20 20 20 60 28 ull-account...(macroexpand....`(
3a040 72 78 20 28 61 6e 64 20 28 72 65 67 65 78 70 20 2c 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 2d rx.(and.(regexp.,ledger-account-
3a060 6b 69 6e 64 2d 72 65 67 65 78 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 67 65 78 kind-regexp)..............(regex
3a080 70 20 2c 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 2d 72 65 67 65 78 70 29 0a 20 20 20 20 20 20 p.,ledger-account-regexp).......
3a0a0 20 20 20 20 20 20 20 28 3f 20 28 61 6e 79 20 3f 5c 5d 20 3f 5c 29 29 29 29 29 29 0a 20 20 22 22 .......(?.(any.?\].?\))))))...""
3a0c0 0a 20 20 28 6b 69 6e 64 20 61 63 63 6f 75 6e 74 2d 6b 69 6e 64 29 0a 20 20 28 6e 61 6d 65 20 61 ...(kind.account-kind)...(name.a
3a0e0 63 63 6f 75 6e 74 29 29 0a 0a 28 6c 65 64 67 65 72 2d 64 65 66 69 6e 65 2d 72 65 67 65 78 70 20 ccount))..(ledger-define-regexp.
3a100 63 6f 6d 6d 6f 64 69 74 79 2d 6e 6f 2d 67 72 6f 75 70 0a 20 20 28 72 78 20 28 6f 72 20 28 61 6e commodity-no-group...(rx.(or.(an
3a120 64 20 3f 5c 22 20 28 2b 20 28 6e 6f 74 20 28 61 6e 79 20 3f 5c 22 29 29 29 20 3f 5c 22 29 0a 20 d.?\".(+.(not.(any.?\"))).?\")..
3a140 20 20 20 20 20 20 20 20 20 28 2b 20 28 6e 6f 74 20 28 61 6e 79 20 62 6c 61 6e 6b 20 3f 5c 6e 0a .........(+.(not.(any.blank.?\n.
3a160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 69 67 69 74 0a 20 20 20 .......................digit....
3a180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3f 2d 20 3f 5c 5b 20 3f 5c 5d 0a 20 ....................?-.?\[.?\]..
3a1a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3f 2e 20 3f 2c 20 3f 5c 3b 20 ......................?..?,.?\;.
3a1c0 3f 2b 20 3f 2a 20 3f 2f 20 3f 5e 20 3f 3f 20 3f 3a 20 3f 26 20 3f 7c 20 3f 21 20 3f 3d 0a 20 20 ?+.?*.?/.?^.??.?:.?&.?|.?!.?=...
3a1e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3f 5c 3c 20 3f 5c 3e 20 3f 5c 7b .....................?\<.?\>.?\{
3a200 20 3f 5c 7d 20 3f 5c 28 20 3f 5c 29 20 3f 40 29 29 29 29 29 0a 20 20 22 22 29 0a 0a 28 6c 65 64 .?\}.?\(.?\).?@)))))..."")..(led
3a220 67 65 72 2d 64 65 66 69 6e 65 2d 72 65 67 65 78 70 20 63 6f 6d 6d 6f 64 69 74 79 0a 20 20 28 6d ger-define-regexp.commodity...(m
3a240 61 63 72 6f 65 78 70 61 6e 64 0a 20 20 20 60 28 72 78 20 28 67 72 6f 75 70 20 28 72 65 67 65 78 acroexpand....`(rx.(group.(regex
3a260 70 20 2c 6c 65 64 67 65 72 2d 63 6f 6d 6d 6f 64 69 74 79 2d 6e 6f 2d 67 72 6f 75 70 2d 72 65 67 p.,ledger-commodity-no-group-reg
3a280 65 78 70 29 29 29 29 0a 20 20 22 22 29 0a 0a 28 6c 65 64 67 65 72 2d 64 65 66 69 6e 65 2d 72 65 exp))))..."")..(ledger-define-re
3a2a0 67 65 78 70 20 61 6d 6f 75 6e 74 2d 6e 6f 2d 67 72 6f 75 70 0a 20 20 28 72 78 20 28 61 6e 64 20 gexp.amount-no-group...(rx.(and.
3a2c0 28 3f 20 3f 2d 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 2b 20 64 69 67 69 74 29 0a 20 20 20 20 (?.?-)............(+.digit).....
3a2e0 20 20 20 20 20 20 20 28 2a 20 28 61 6e 64 20 28 61 6e 79 20 3f 2e 20 3f 2c 29 20 28 2b 20 64 69 .......(*.(and.(any.?..?,).(+.di
3a300 67 69 74 29 29 29 29 29 0a 20 20 22 22 29 0a 0a 28 6c 65 64 67 65 72 2d 64 65 66 69 6e 65 2d 72 git)))))..."")..(ledger-define-r
3a320 65 67 65 78 70 20 61 6d 6f 75 6e 74 0a 20 20 28 6d 61 63 72 6f 65 78 70 61 6e 64 0a 20 20 20 60 egexp.amount...(macroexpand....`
3a340 28 72 78 20 28 67 72 6f 75 70 20 28 72 65 67 65 78 70 20 2c 6c 65 64 67 65 72 2d 61 6d 6f 75 6e (rx.(group.(regexp.,ledger-amoun
3a360 74 2d 6e 6f 2d 67 72 6f 75 70 2d 72 65 67 65 78 70 29 29 29 29 0a 20 20 22 22 29 0a 0a 28 6c 65 t-no-group-regexp))))..."")..(le
3a380 64 67 65 72 2d 64 65 66 69 6e 65 2d 72 65 67 65 78 70 20 63 6f 6d 6d 6f 64 69 74 69 7a 65 64 2d dger-define-regexp.commoditized-
3a3a0 61 6d 6f 75 6e 74 0a 20 20 28 6d 61 63 72 6f 65 78 70 61 6e 64 0a 20 20 20 60 28 72 78 20 28 67 amount...(macroexpand....`(rx.(g
3a3c0 72 6f 75 70 0a 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 61 6e 64 20 28 72 65 67 65 78 70 20 2c roup..........(or.(and.(regexp.,
3a3e0 6c 65 64 67 65 72 2d 63 6f 6d 6d 6f 64 69 74 79 2d 6e 6f 2d 67 72 6f 75 70 2d 72 65 67 65 78 70 ledger-commodity-no-group-regexp
3a400 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2a 3f 20 62 6c 61 6e 6b 29 0a 20 )...................(*?.blank)..
3a420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 67 65 78 70 20 2c 6c 65 64 67 65 72 .................(regexp.,ledger
3a440 2d 61 6d 6f 75 6e 74 2d 6e 6f 2d 67 72 6f 75 70 2d 72 65 67 65 78 70 29 29 0a 20 20 20 20 20 20 -amount-no-group-regexp)).......
3a460 20 20 20 20 20 20 20 28 61 6e 64 20 28 72 65 67 65 78 70 20 2c 6c 65 64 67 65 72 2d 61 6d 6f 75 .......(and.(regexp.,ledger-amou
3a480 6e 74 2d 6e 6f 2d 67 72 6f 75 70 2d 72 65 67 65 78 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 nt-no-group-regexp).............
3a4a0 20 20 20 20 20 20 28 2a 3f 20 62 6c 61 6e 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......(*?.blank)................
3a4c0 20 20 20 28 72 65 67 65 78 70 20 2c 6c 65 64 67 65 72 2d 63 6f 6d 6d 6f 64 69 74 79 2d 6e 6f 2d ...(regexp.,ledger-commodity-no-
3a4e0 67 72 6f 75 70 2d 72 65 67 65 78 70 29 29 29 29 29 29 0a 20 20 22 22 29 0a 0a 28 6c 65 64 67 65 group-regexp))))))..."")..(ledge
3a500 72 2d 64 65 66 69 6e 65 2d 72 65 67 65 78 70 20 63 6f 6d 6d 6f 64 69 74 79 2d 61 6e 6e 6f 74 61 r-define-regexp.commodity-annota
3a520 74 69 6f 6e 73 0a 20 20 28 6d 61 63 72 6f 65 78 70 61 6e 64 0a 20 20 20 60 28 72 78 20 28 2a 20 tions...(macroexpand....`(rx.(*.
3a540 28 2b 20 62 6c 61 6e 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 28 61 6e 64 20 3f 5c (+.blank)............(or.(and.?\
3a560 7b 20 28 72 65 67 65 78 70 20 2c 6c 65 64 67 65 72 2d 63 6f 6d 6d 6f 64 69 74 69 7a 65 64 2d 61 {.(regexp.,ledger-commoditized-a
3a580 6d 6f 75 6e 74 2d 72 65 67 65 78 70 29 20 3f 5c 7d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 mount-regexp).?\})..............
3a5a0 20 20 28 61 6e 64 20 3f 5c 5b 20 28 72 65 67 65 78 70 20 2c 6c 65 64 67 65 72 2d 69 73 6f 2d 64 ..(and.?\[.(regexp.,ledger-iso-d
3a5c0 61 74 65 2d 72 65 67 65 78 70 29 20 3f 5c 5d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ate-regexp).?\])................
3a5e0 28 61 6e 64 20 3f 5c 28 20 28 6e 6f 74 20 28 61 6e 79 20 3f 5c 29 29 29 20 3f 5c 29 29 29 29 29 (and.?\(.(not.(any.?\))).?\)))))
3a600 29 0a 20 20 22 22 0a 20 20 63 6f 6d 6d 6f 64 69 74 69 7a 65 64 2d 61 6d 6f 75 6e 74 0a 20 20 69 )...""...commoditized-amount...i
3a620 73 6f 2d 64 61 74 65 29 0a 0a 28 6c 65 64 67 65 72 2d 64 65 66 69 6e 65 2d 72 65 67 65 78 70 20 so-date)..(ledger-define-regexp.
3a640 63 6f 73 74 0a 20 20 28 6d 61 63 72 6f 65 78 70 61 6e 64 0a 20 20 20 60 28 72 78 20 28 61 6e 64 cost...(macroexpand....`(rx.(and
3a660 20 28 6f 72 20 22 40 22 20 22 40 40 22 29 20 28 2b 20 62 6c 61 6e 6b 29 0a 20 20 20 20 20 20 20 .(or."@"."@@").(+.blank)........
3a680 20 20 20 20 20 20 28 72 65 67 65 78 70 20 2c 6c 65 64 67 65 72 2d 63 6f 6d 6d 6f 64 69 74 69 7a ......(regexp.,ledger-commoditiz
3a6a0 65 64 2d 61 6d 6f 75 6e 74 2d 72 65 67 65 78 70 29 29 29 29 0a 20 20 22 22 29 0a 0a 28 6c 65 64 ed-amount-regexp))))..."")..(led
3a6c0 67 65 72 2d 64 65 66 69 6e 65 2d 72 65 67 65 78 70 20 62 61 6c 61 6e 63 65 2d 61 73 73 65 72 74 ger-define-regexp.balance-assert
3a6e0 69 6f 6e 0a 20 20 28 6d 61 63 72 6f 65 78 70 61 6e 64 0a 20 20 20 60 28 72 78 20 28 61 6e 64 20 ion...(macroexpand....`(rx.(and.
3a700 3f 3d 20 28 2b 20 62 6c 61 6e 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 67 65 78 ?=.(+.blank)..............(regex
3a720 70 20 2c 6c 65 64 67 65 72 2d 63 6f 6d 6d 6f 64 69 74 69 7a 65 64 2d 61 6d 6f 75 6e 74 2d 72 65 p.,ledger-commoditized-amount-re
3a740 67 65 78 70 29 29 29 29 0a 20 20 22 22 29 0a 0a 28 6c 65 64 67 65 72 2d 64 65 66 69 6e 65 2d 72 gexp))))..."")..(ledger-define-r
3a760 65 67 65 78 70 20 66 75 6c 6c 2d 61 6d 6f 75 6e 74 0a 20 20 28 72 78 20 28 67 72 6f 75 70 20 28 egexp.full-amount...(rx.(group.(
3a780 2b 3f 20 28 6e 6f 74 20 28 61 6e 79 20 3f 5c 3b 29 29 29 29 29 0a 20 20 22 22 29 0a 0a 28 6c 65 +?.(not.(any.?\;)))))..."")..(le
3a7a0 64 67 65 72 2d 64 65 66 69 6e 65 2d 72 65 67 65 78 70 20 70 6f 73 74 2d 6c 69 6e 65 0a 20 20 28 dger-define-regexp.post-line...(
3a7c0 6d 61 63 72 6f 65 78 70 61 6e 64 0a 20 20 20 60 28 72 78 20 28 61 6e 64 20 6c 69 6e 65 2d 73 74 macroexpand....`(rx.(and.line-st
3a7e0 61 72 74 20 28 2b 20 62 6c 61 6e 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 20 28 61 art.(+.blank)..............(?.(a
3a800 6e 64 20 28 72 65 67 65 78 70 20 2c 6c 65 64 67 65 72 2d 73 74 61 74 65 2d 72 65 67 65 78 70 29 nd.(regexp.,ledger-state-regexp)
3a820 20 28 2a 20 62 6c 61 6e 6b 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 67 65 78 .(*.blank)))..............(regex
3a840 70 20 2c 6c 65 64 67 65 72 2d 66 75 6c 6c 2d 61 63 63 6f 75 6e 74 2d 72 65 67 65 78 70 29 0a 20 p.,ledger-full-account-regexp)..
3a860 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 20 28 61 6e 64 20 28 72 65 67 65 78 70 20 2c 6c 65 64 ............(?.(and.(regexp.,led
3a880 67 65 72 2d 6c 6f 6e 67 2d 73 70 61 63 65 2d 72 65 67 65 78 70 29 0a 20 20 20 20 20 20 20 20 20 ger-long-space-regexp)..........
3a8a0 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 67 65 78 70 20 2c 6c 65 64 67 65 72 2d 66 75 6c 6c ............(regexp.,ledger-full
3a8c0 2d 61 6d 6f 75 6e 74 2d 72 65 67 65 78 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 -amount-regexp)))..............(
3a8e0 3f 20 28 72 65 67 65 78 70 20 2c 6c 65 64 67 65 72 2d 65 6e 64 2d 6e 6f 74 65 2d 72 65 67 65 78 ?.(regexp.,ledger-end-note-regex
3a900 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 69 6e 65 2d 65 6e 64 29 29 29 0a 20 20 22 p))..............line-end)))..."
3a920 22 0a 20 20 73 74 61 74 65 0a 20 20 28 61 63 63 6f 75 6e 74 2d 6b 69 6e 64 20 66 75 6c 6c 2d 61 "...state...(account-kind.full-a
3a940 63 63 6f 75 6e 74 20 6b 69 6e 64 29 0a 20 20 28 61 63 63 6f 75 6e 74 20 66 75 6c 6c 2d 61 63 63 ccount.kind)...(account.full-acc
3a960 6f 75 6e 74 20 6e 61 6d 65 29 0a 20 20 28 61 6d 6f 75 6e 74 20 66 75 6c 6c 2d 61 6d 6f 75 6e 74 ount.name)...(amount.full-amount
3a980 29 0a 20 20 28 6e 6f 74 65 20 65 6e 64 2d 6e 6f 74 65 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 )...(note.end-note))..(defconst.
3a9a0 6c 65 64 67 65 72 2d 61 6d 6f 75 6e 74 2d 72 65 67 65 78 0a 20 20 28 63 6f 6e 63 61 74 20 22 5c ledger-amount-regex...(concat."\
3a9c0 5c 28 20 20 5c 5c 7c 5c 74 5c 5c 7c 20 5c 74 5c 5c 29 5b 20 5c 74 5d 2a 5b 2d 2b 3d 5d 3f 20 2a \(..\\|\t\\|.\t\\)[.\t]*[-+=]?.*
3a9e0 22 0a 20 20 20 20 20 20 20 20 20 20 22 5c 5c 28 3f 3a 22 20 6c 65 64 67 65 72 2d 63 6f 6d 6d 6f "..........."\\(?:".ledger-commo
3aa00 64 69 74 79 2d 72 65 67 65 78 70 20 22 20 2a 5c 5c 29 3f 22 0a 20 20 20 20 20 20 20 20 20 20 3b dity-regexp.".*\\)?"...........;
3aa20 3b 20 57 65 20 65 69 74 68 65 72 20 6d 61 74 63 68 20 6a 75 73 74 20 61 20 6e 75 6d 62 65 72 20 ;.We.either.match.just.a.number.
3aa40 61 66 74 65 72 20 74 68 65 20 63 6f 6d 6d 6f 64 69 74 79 20 77 69 74 68 20 6e 6f 0a 20 20 20 20 after.the.commodity.with.no.....
3aa60 20 20 20 20 20 20 3b 3b 20 64 65 63 69 6d 61 6c 20 6f 72 20 74 68 6f 75 73 61 6e 64 20 73 65 70 ......;;.decimal.or.thousand.sep
3aa80 61 72 61 74 6f 72 73 20 6f 72 20 61 20 6e 75 6d 62 65 72 20 77 69 74 68 20 74 68 6f 75 73 61 6e arators.or.a.number.with.thousan
3aaa0 64 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 73 65 70 61 72 61 74 6f 72 73 2e 20 20 49 66 20 77 d...........;;.separators...If.w
3aac0 65 20 68 61 76 65 20 61 20 64 65 63 69 6d 61 6c 20 70 61 72 74 20 73 74 61 72 74 69 6e 67 20 77 e.have.a.decimal.part.starting.w
3aae0 69 74 68 20 60 2c 27 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6f 72 20 60 2e 27 2c 20 62 65 63 ith.`,'...........;;.or.`.',.bec
3ab00 61 75 73 65 20 74 68 65 20 6d 61 74 63 68 20 69 73 20 6e 6f 6e 2d 67 72 65 65 64 79 2c 20 69 74 ause.the.match.is.non-greedy,.it
3ab20 20 6d 75 73 74 20 6c 65 61 76 65 20 61 74 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6c 65 61 73 .must.leave.at...........;;.leas
3ab40 74 20 6f 6e 65 20 6f 66 20 74 68 6f 73 65 20 73 79 6d 62 6f 6c 73 20 66 6f 72 20 74 68 65 20 66 t.one.of.those.symbols.for.the.f
3ab60 6f 6c 6c 6f 77 69 6e 67 20 63 61 70 74 75 72 65 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 67 72 ollowing.capture...........;;.gr
3ab80 6f 75 70 2c 20 77 68 69 63 68 20 74 68 65 6e 20 66 69 6e 69 73 68 65 73 20 74 68 65 20 64 65 63 oup,.which.then.finishes.the.dec
3aba0 69 6d 61 6c 20 70 61 72 74 2e 0a 20 20 20 20 20 20 20 20 20 20 22 5c 5c 28 5b 2d 2b 3d 5d 3f 20 imal.part............"\\([-+=]?.
3abc0 2a 5c 5c 28 3f 3a 5b 30 2d 39 5d 2b 5c 5c 7c 5b 30 2d 39 2c 2e 5d 2b 3f 5c 5c 29 5c 5c 29 22 0a *\\(?:[0-9]+\\|[0-9,.]+?\\)\\)".
3abe0 20 20 20 20 20 20 20 20 20 20 22 5c 5c 28 5b 2c 2e 5d 5b 30 2d 39 29 5d 2b 5c 5c 29 3f 22 0a 20 .........."\\([,.][0-9)]+\\)?"..
3ac00 20 20 20 20 20 20 20 20 20 22 5c 5c 28 3f 3a 20 2a 22 20 6c 65 64 67 65 72 2d 63 6f 6d 6d 6f 64 ........."\\(?:.*".ledger-commod
3ac20 69 74 79 2d 72 65 67 65 78 70 20 22 5c 5c 29 3f 22 0a 20 20 20 20 20 20 20 20 20 20 22 5c 5c 28 ity-regexp."\\)?"..........."\\(
3ac40 5b 20 5c 74 5d 2a 5b 40 3d 7b 5d 40 3f 5b 5e 5c 6e 3b 5d 2b 3f 5c 5c 29 3f 22 0a 20 20 20 20 20 [.\t]*[@={]@?[^\n;]+?\\)?"......
3ac60 20 20 20 20 20 22 5c 5c 28 5b 20 5c 74 5d 2b 3b 2e 2b 3f 5c 5c 7c 5b 20 5c 74 5d 2a 5c 5c 29 3f ....."\\([.\t]+;.+?\\|[.\t]*\\)?
3ac80 24 22 29 29 0a 0a 28 6c 65 64 67 65 72 2d 64 65 66 69 6e 65 2d 72 65 67 65 78 70 20 79 65 61 72 $"))..(ledger-define-regexp.year
3aca0 0a 20 20 28 72 78 20 28 67 72 6f 75 70 20 28 2b 20 28 61 6e 79 20 22 30 2d 39 22 29 29 29 29 0a ...(rx.(group.(+.(any."0-9")))).
3acc0 20 20 22 22 29 0a 0a 28 6c 65 64 67 65 72 2d 64 65 66 69 6e 65 2d 72 65 67 65 78 70 20 70 61 79 .."")..(ledger-define-regexp.pay
3ace0 65 65 0a 20 20 28 72 78 20 28 67 72 6f 75 70 20 28 2b 3f 20 6e 6f 6e 6c 29 29 29 0a 20 20 22 22 ee...(rx.(group.(+?.nonl)))...""
3ad00 29 0a 0a 28 6c 65 64 67 65 72 2d 64 65 66 69 6e 65 2d 72 65 67 65 78 70 20 69 74 65 72 61 74 65 )..(ledger-define-regexp.iterate
3ad20 0a 20 20 28 6d 61 63 72 6f 65 78 70 61 6e 64 20 60 28 72 78 20 20 28 6f 72 20 28 61 6e 64 20 28 ...(macroexpand.`(rx..(or.(and.(
3ad40 6f 72 20 22 59 22 20 22 79 65 61 72 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 or."Y"."year")..................
3ad60 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2b 20 28 73 79 6e 74 61 78 20 3f 2d 29 29 0a 20 20 20 .............(+.(syntax.?-))....
3ad80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 67 65 ...........................(rege
3ada0 78 70 20 2c 6c 65 64 67 65 72 2d 79 65 61 72 2d 72 65 67 65 78 70 29 29 0a 20 20 20 20 20 20 20 xp.,ledger-year-regexp))........
3adc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 72 65 67 65 78 70 20 2c ..................(and.(regexp.,
3ade0 6c 65 64 67 65 72 2d 66 75 6c 6c 2d 64 61 74 65 2d 72 65 67 65 78 70 29 0a 20 20 20 20 20 20 20 ledger-full-date-regexp)........
3ae00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 20 28 61 6e 64 20 28 .......................(?.(and.(
3ae20 2b 20 62 6c 61 6e 6b 29 20 28 72 65 67 65 78 70 20 2c 6c 65 64 67 65 72 2d 73 74 61 74 65 2d 72 +.blank).(regexp.,ledger-state-r
3ae40 65 67 65 78 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 egexp)))........................
3ae60 20 20 20 20 20 20 20 28 3f 20 28 61 6e 64 20 28 2b 20 62 6c 61 6e 6b 29 20 28 72 65 67 65 78 70 .......(?.(and.(+.blank).(regexp
3ae80 20 2c 6c 65 64 67 65 72 2d 63 6f 64 65 2d 72 65 67 65 78 70 29 29 29 0a 20 20 20 20 20 20 20 20 .,ledger-code-regexp))).........
3aea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2b 20 62 6c 61 6e 6b 29 0a ......................(+.blank).
3aec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 ..............................(r
3aee0 65 67 65 78 70 20 2c 6c 65 64 67 65 72 2d 70 61 79 65 65 2d 72 65 67 65 78 70 29 0a 20 20 20 20 egexp.,ledger-payee-regexp).....
3af00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 20 28 72 65 ..........................(?.(re
3af20 67 65 78 70 20 2c 6c 65 64 67 65 72 2d 65 6e 64 2d 6e 6f 74 65 2d 72 65 67 65 78 70 29 29 29 29 gexp.,ledger-end-note-regexp))))
3af40 29 29 0a 20 20 22 22 0a 20 20 79 65 61 72 0a 20 20 28 61 63 74 75 61 6c 2d 64 61 74 65 20 66 75 ))...""...year...(actual-date.fu
3af60 6c 6c 2d 64 61 74 65 20 61 63 74 75 61 6c 29 0a 20 20 28 65 66 66 65 63 74 69 76 65 2d 64 61 74 ll-date.actual)...(effective-dat
3af80 65 20 66 75 6c 6c 2d 64 61 74 65 20 65 66 66 65 63 74 69 76 65 29 0a 20 20 73 74 61 74 65 0a 20 e.full-date.effective)...state..
3afa0 20 63 6f 64 65 0a 20 20 70 61 79 65 65 0a 20 20 28 6e 6f 74 65 20 65 6e 64 2d 6e 6f 74 65 29 29 .code...payee...(note.end-note))
3afc0 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6c 65 64 67 65 72 2d 69 6e 63 6f 6d 70 6c 65 74 65 2d 64 61 ..(defconst.ledger-incomplete-da
3afe0 74 65 2d 72 65 67 65 78 70 0a 20 20 22 5c 5c 28 3f 3a 5c 5c 28 5b 30 2d 39 5d 5c 5c 7b 31 2c 32 te-regexp..."\\(?:\\([0-9]\\{1,2
3b000 5c 5c 7d 5c 5c 29 5b 2d 2f 5d 5c 5c 29 3f 5c 5c 28 5b 30 2d 39 5d 5c 5c 7b 31 2c 32 5c 5c 7d 5c \\}\\)[-/]\\)?\\([0-9]\\{1,2\\}\
3b020 5c 29 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6c 65 64 67 65 72 2d 78 61 63 74 2d 73 74 61 72 \)")..(defconst.ledger-xact-star
3b040 74 2d 72 65 67 65 78 0a 20 20 28 63 6f 6e 63 61 74 20 22 5e 22 20 6c 65 64 67 65 72 2d 69 73 6f t-regex...(concat."^".ledger-iso
3b060 2d 64 61 74 65 2d 72 65 67 65 78 70 20 20 3b 3b 20 73 75 62 65 78 70 20 31 0a 20 20 20 20 20 20 -date-regexp..;;.subexp.1.......
3b080 20 20 20 20 22 5c 5c 28 3d 22 20 6c 65 64 67 65 72 2d 69 73 6f 2d 64 61 74 65 2d 72 65 67 65 78 ...."\\(=".ledger-iso-date-regex
3b0a0 70 20 22 5c 5c 29 3f 22 0a 20 20 20 20 20 20 20 20 20 20 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 p."\\)?"...........))..(defconst
3b0c0 20 6c 65 64 67 65 72 2d 78 61 63 74 2d 61 66 74 65 72 2d 64 61 74 65 2d 72 65 67 65 78 0a 20 20 .ledger-xact-after-date-regex...
3b0e0 28 63 6f 6e 63 61 74 20 22 5c 5c 28 3f 3a 5b 20 5c 74 5d 2b 5c 5c 28 5b 2a 21 5d 5c 5c 29 5c 5c (concat."\\(?:[.\t]+\\([*!]\\)\\
3b100 29 3f 22 20 20 3b 3b 20 6d 61 72 6b 2c 20 73 75 62 65 78 70 20 31 0a 20 20 20 20 20 20 20 20 20 )?"..;;.mark,.subexp.1..........
3b120 20 22 5c 5c 28 3f 3a 5b 20 5c 74 5d 2b 5c 5c 28 28 2e 2a 3f 29 5c 5c 29 5c 5c 29 3f 22 20 20 3b ."\\(?:[.\t]+\\((.*?)\\)\\)?"..;
3b140 3b 20 63 6f 64 65 2c 20 73 75 62 65 78 70 20 32 0a 20 20 20 20 20 20 20 20 20 20 22 5c 5c 28 3f ;.code,.subexp.2..........."\\(?
3b160 3a 5b 20 5c 74 5d 2b 5c 5c 28 2e 2b 3f 5c 5c 29 5c 5c 29 3f 22 20 20 20 3b 3b 20 64 65 73 63 2c :[.\t]+\\(.+?\\)\\)?"...;;.desc,
3b180 20 73 75 62 65 78 70 20 33 0a 20 20 20 20 20 20 20 20 20 20 22 5c 5c 28 3f 3a 5c 5c 28 3f 3a 5c .subexp.3..........."\\(?:\\(?:\
3b1a0 74 5c 5c 7c 5b 20 5c 74 5d 5c 5c 7b 32 2c 5c 5c 7d 5c 5c 29 5c 5c 28 3b 5b 5e 5c 6e 5d 2a 5c 5c t\\|[.\t]\\{2,\\}\\)\\(;[^\n]*\\
3b1c0 29 5c 5c 29 3f 24 22 20 3b 3b 20 63 6f 6d 6d 65 6e 74 2c 20 73 75 62 65 78 70 20 34 0a 20 20 20 )\\)?$".;;.comment,.subexp.4....
3b1e0 20 20 20 20 20 20 20 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6c 65 64 67 65 72 2d 70 6f 73 74 .......))..(defconst.ledger-post
3b200 69 6e 67 2d 72 65 67 65 78 0a 20 20 28 63 6f 6e 63 61 74 20 22 5e 5b 5b 3a 62 6c 61 6e 6b 3a 5d ing-regex...(concat."^[[:blank:]
3b220 5d 2b 22 20 3b 20 69 6e 69 74 69 61 6c 20 77 68 69 74 65 20 73 70 61 63 65 0a 20 20 20 20 20 20 ]+".;.initial.white.space.......
3b240 20 20 20 20 3b 3b 20 73 74 61 74 65 20 61 6e 64 20 61 63 63 6f 75 6e 74 2c 20 73 75 62 65 78 70 ....;;.state.and.account,.subexp
3b260 20 31 0a 20 20 20 20 20 20 20 20 20 20 22 5c 5c 28 5c 5c 28 5b 2a 21 5d 5c 5c 29 3f 22 20 20 20 .1..........."\\(\\([*!]\\)?"...
3b280 20 20 20 20 20 20 20 20 20 3b 20 73 74 61 74 65 2c 20 20 20 73 75 62 65 78 70 20 32 0a 20 20 20 .........;.state,...subexp.2....
3b2a0 20 20 20 20 20 20 20 22 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2a 5c 5c 28 2e 2a 3f 5c 5c 29 5c 5c 29 ......."[[:blank:]]*\\(.*?\\)\\)
3b2c0 3f 22 20 3b 20 61 63 63 6f 75 6e 74 2c 20 73 75 62 65 78 70 20 33 0a 20 20 20 20 20 20 20 20 20 ?".;.account,.subexp.3..........
3b2e0 20 22 5c 5c 28 3f 3a 5c 5c 28 3f 3a 5c 74 5c 5c 7c 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 5c 5c 7b 32 ."\\(?:\\(?:\t\\|[[:blank:]]\\{2
3b300 2c 5c 5c 7d 5c 5c 29 22 0a 20 20 20 20 20 20 20 20 20 20 22 5c 5c 28 5b 5e 3b 5c 6e 5d 2a 3f 5c ,\\}\\)"..........."\\([^;\n]*?\
3b320 5c 29 5c 5c 29 3f 22 20 20 20 20 20 20 20 20 3b 20 61 6d 6f 75 6e 74 2c 20 20 73 75 62 65 78 70 \)\\)?"........;.amount,..subexp
3b340 20 34 0a 20 20 20 20 20 20 20 20 20 20 22 5c 5c 28 3f 3a 5c 5c 28 3f 3a 5c 74 5c 5c 7c 5b 5b 3a .4..........."\\(?:\\(?:\t\\|[[:
3b360 62 6c 61 6e 6b 3a 5d 5d 5c 5c 7b 32 2c 5c 5c 7d 5c 5c 29 22 0a 20 20 20 20 20 20 20 20 20 20 22 blank:]]\\{2,\\}\\)"..........."
3b380 5c 5c 28 3b 2e 2a 5c 5c 29 5c 5c 29 3f 24 22 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 63 6f 6d \\(;.*\\)\\)?$"............;.com
3b3a0 6d 65 6e 74 2c 20 73 75 62 65 78 70 20 35 0a 20 20 20 20 20 20 20 20 20 20 29 29 0a 0a 0a 0a 28 ment,.subexp.5...........))....(
3b3c0 64 65 66 63 6f 6e 73 74 20 6c 65 64 67 65 72 2d 64 69 72 65 63 74 69 76 65 2d 73 74 61 72 74 2d defconst.ledger-directive-start-
3b3e0 72 65 67 65 78 0a 20 20 22 5b 3d 7e 3b 23 25 7c 5c 5c 2a 5b 41 2d 5a 61 2d 7a 5d 22 29 0a 0a 0a regex..."[=~;#%|\\*[A-Za-z]")...
3b400 28 70 72 6f 76 69 64 65 20 27 6c 65 64 67 65 72 2d 72 65 67 65 78 29 0a 0a 3b 3b 3b 20 6c 65 64 (provide.'ledger-regex)..;;;.led
3b420 67 65 72 2d 72 65 67 65 78 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 ger-regex.el.ends.here..........
3b440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b600 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 33 32 36 2e 32 30 30 32 2f 6c 65 64 67 65 72 ledger-mode-20240326.2002/ledger
3b620 2d 72 65 70 6f 72 74 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -report.el......................
3b640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b660 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
3b680 30 30 36 35 32 31 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 32 37 30 00 20 30 00 00 00 0065214.00000000000.016270..0...
3b6a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b6e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b700 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
3b720 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
3b740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b800 3b 3b 3b 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2e 65 6c 20 2d 2d 2d 20 48 65 6c 70 65 72 20 ;;;.ledger-report.el.---.Helper.
3b820 63 6f 64 65 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 74 68 65 20 22 6c 65 64 67 65 72 22 20 63 code.for.use.with.the."ledger".c
3b840 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 74 6f 6f 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 ommand-line.tool..-*-.lexical-bi
3b860 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 nding:.t;.-*-..;;.Copyright.(C).
3b880 32 30 30 33 2d 32 30 31 36 20 4a 6f 68 6e 20 57 69 65 67 6c 65 79 20 28 6a 6f 68 6e 77 20 41 54 2003-2016.John.Wiegley.(johnw.AT
3b8a0 20 67 6e 75 20 44 4f 54 20 6f 72 67 29 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 6e .gnu.DOT.org)..;;.This.file.is.n
3b8c0 6f 74 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 54 68 69 73 20 69 ot.part.of.GNU.Emacs...;;.This.i
3b8e0 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 s.free.software;.you.can.redistr
3b900 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 20 75 6e 64 65 72 0a ibute.it.and/or.modify.it.under.
3b920 3b 3b 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 ;;.the.terms.of.the.GNU.General.
3b940 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 Public.License.as.published.by.t
3b960 68 65 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 he.Free.;;.Software.Foundation;.
3b980 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 32 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 either.version.2,.or.(at.your.op
3b9a0 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 0a 3b 3b 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b tion).any.later.;;.version..;;.;
3b9c0 3b 20 54 68 69 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 ;.This.is.distributed.in.the.hop
3b9e0 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 e.that.it.will.be.useful,.but.WI
3ba00 54 48 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 THOUT.;;.ANY.WARRANTY;.without.e
3ba20 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 ven.the.implied.warranty.of.MERC
3ba40 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 0a 3b 3b 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 HANTABILITY.or.;;.FITNESS.FOR.A.
3ba60 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 PARTICULAR.PURPOSE...See.the.GNU
3ba80 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 66 6f 72 20 6d .General.Public.License.;;.for.m
3baa0 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 ore.details..;;.;;.You.should.ha
3bac0 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 ve.received.a.copy.of.the.GNU.Ge
3bae0 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 neral.Public.License.;;.along.wi
3bb00 74 68 20 47 4e 55 20 45 6d 61 63 73 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 th.GNU.Emacs;.see.the.file.COPYI
3bb20 4e 47 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 NG...If.not,.write.to.the.;;.Fre
3bb40 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 e.Software.Foundation,.Inc.,.51.
3bb60 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f Franklin.Street,.Fifth.Floor,.Bo
3bb80 73 74 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 20 55 53 41 2e 0a 0a 0a 3b 3b ston,.;;.MA.02110-1301.USA....;;
3bba0 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 20 20 50 72 6f 76 69 64 65 20 66 61 63 69 6c 69 ;.Commentary:.;;..Provide.facili
3bbc0 74 69 65 73 20 66 6f 72 20 72 75 6e 6e 69 6e 67 20 61 6e 64 20 73 61 76 69 6e 67 20 72 65 70 6f ties.for.running.and.saving.repo
3bbe0 72 74 73 20 69 6e 20 45 6d 61 63 73 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 rts.in.Emacs..;;;.Code:..(requir
3bc00 65 20 27 6c 65 64 67 65 72 2d 78 61 63 74 29 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 e.'ledger-xact).(require.'ledger
3bc20 2d 6e 61 76 69 67 61 74 65 29 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 63 6f 6d 6d -navigate).(require.'ledger-comm
3bc40 6f 64 69 74 69 65 73 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6c 65 64 67 65 odities).(declare-function.ledge
3bc60 72 2d 72 65 61 64 2d 73 74 72 69 6e 67 2d 77 69 74 68 2d 64 65 66 61 75 6c 74 20 22 6c 65 64 67 r-read-string-with-default."ledg
3bc80 65 72 2d 6d 6f 64 65 22 20 28 70 72 6f 6d 70 74 20 64 65 66 61 75 6c 74 29 29 0a 28 64 65 63 6c er-mode".(prompt.default)).(decl
3bca0 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6c 65 64 67 65 72 2d 72 65 61 64 2d 61 63 63 6f 75 6e 74 are-function.ledger-read-account
3bcc0 2d 77 69 74 68 2d 70 72 6f 6d 70 74 20 22 6c 65 64 67 65 72 2d 6d 6f 64 65 22 20 28 70 72 6f 6d -with-prompt."ledger-mode".(prom
3bce0 70 74 29 29 0a 0a 28 72 65 71 75 69 72 65 20 27 65 61 73 79 6d 65 6e 75 29 0a 28 72 65 71 75 69 pt))..(require.'easymenu).(requi
3bd00 72 65 20 27 61 6e 73 69 2d 63 6f 6c 6f 72 29 0a 28 72 65 71 75 69 72 65 20 27 66 6f 6e 74 2d 6c re.'ansi-color).(require.'font-l
3bd20 6f 63 6b 29 0a 28 65 76 61 6c 2d 77 68 65 6e 2d 63 6f 6d 70 69 6c 65 0a 20 20 28 72 65 71 75 69 ock).(eval-when-compile...(requi
3bd40 72 65 20 27 72 78 29 0a 20 20 28 72 65 71 75 69 72 65 20 27 73 75 62 72 2d 78 29 29 0a 0a 28 64 re.'rx)...(require.'subr-x))..(d
3bd60 65 66 67 72 6f 75 70 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 20 6e 69 6c 0a 20 20 22 43 75 73 efgroup.ledger-report.nil..."Cus
3bd80 74 6f 6d 69 7a 61 74 69 6f 6e 20 6f 70 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 52 65 70 6f 72 74 tomization.option.for.the.Report
3bda0 20 62 75 66 66 65 72 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 29 0a 0a 28 64 65 .buffer."...:group.'ledger)..(de
3bdc0 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 0a 20 20 27 28 28 22 62 61 6c fcustom.ledger-reports...'(("bal
3bde0 22 20 22 25 28 62 69 6e 61 72 79 29 20 2d 66 20 25 28 6c 65 64 67 65 72 2d 66 69 6c 65 29 20 62 "."%(binary).-f.%(ledger-file).b
3be00 61 6c 22 29 0a 20 20 20 20 28 22 72 65 67 22 20 22 25 28 62 69 6e 61 72 79 29 20 2d 66 20 25 28 al").....("reg"."%(binary).-f.%(
3be20 6c 65 64 67 65 72 2d 66 69 6c 65 29 20 72 65 67 22 29 0a 20 20 20 20 28 22 70 61 79 65 65 22 20 ledger-file).reg").....("payee".
3be40 22 25 28 62 69 6e 61 72 79 29 20 2d 66 20 25 28 6c 65 64 67 65 72 2d 66 69 6c 65 29 20 72 65 67 "%(binary).-f.%(ledger-file).reg
3be60 20 40 25 28 70 61 79 65 65 29 22 29 0a 20 20 20 20 28 22 61 63 63 6f 75 6e 74 22 20 22 25 28 62 .@%(payee)").....("account"."%(b
3be80 69 6e 61 72 79 29 20 2d 66 20 25 28 6c 65 64 67 65 72 2d 66 69 6c 65 29 20 72 65 67 20 25 28 61 inary).-f.%(ledger-file).reg.%(a
3bea0 63 63 6f 75 6e 74 29 22 29 29 0a 20 20 22 44 65 66 69 6e 69 74 69 6f 6e 20 6f 66 20 72 65 70 6f ccount)"))..."Definition.of.repo
3bec0 72 74 73 20 74 6f 20 72 75 6e 2e 0a 0a 45 61 63 68 20 65 6c 65 6d 65 6e 74 20 68 61 73 20 74 68 rts.to.run...Each.element.has.th
3bee0 65 20 66 6f 72 6d 20 28 4e 41 4d 45 20 43 4d 44 4c 49 4e 45 29 2e 20 20 54 68 65 20 63 6f 6d 6d e.form.(NAME.CMDLINE)...The.comm
3bf00 61 6e 64 20 6c 69 6e 65 20 63 61 6e 0a 63 6f 6e 74 61 69 6e 20 66 6f 72 6d 61 74 20 73 70 65 63 and.line.can.contain.format.spec
3bf20 69 66 69 65 72 73 20 74 68 61 74 20 61 72 65 20 72 65 70 6c 61 63 65 64 20 77 69 74 68 20 63 6f ifiers.that.are.replaced.with.co
3bf40 6e 74 65 78 74 20 73 65 6e 73 69 74 69 76 65 0a 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 20 20 46 6f ntext.sensitive.information...Fo
3bf60 72 6d 61 74 20 73 70 65 63 69 66 69 65 72 73 20 68 61 76 65 20 74 68 65 20 66 6f 72 6d 61 74 20 rmat.specifiers.have.the.format.
3bf80 27 25 28 3c 6e 61 6d 65 3e 29 27 20 77 68 65 72 65 0a 3c 6e 61 6d 65 3e 20 69 73 20 61 6e 20 69 '%(<name>)'.where.<name>.is.an.i
3bfa0 64 65 6e 74 69 66 69 65 72 20 66 6f 72 20 74 68 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 74 6f dentifier.for.the.information.to
3bfc0 20 62 65 20 72 65 70 6c 61 63 65 64 2e 20 20 54 68 65 0a 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 .be.replaced...The.`ledger-repor
3bfe0 74 2d 66 6f 72 6d 61 74 2d 73 70 65 63 69 66 69 65 72 73 27 20 61 6c 69 73 74 20 76 61 72 69 61 t-format-specifiers'.alist.varia
3c000 62 6c 65 20 63 6f 6e 74 61 69 6e 73 20 61 20 6d 61 70 70 69 6e 67 0a 66 72 6f 6d 20 66 6f 72 6d ble.contains.a.mapping.from.form
3c020 61 74 20 73 70 65 63 69 66 69 65 72 20 69 64 65 6e 74 69 66 69 65 72 20 74 6f 20 61 20 4c 69 73 at.specifier.identifier.to.a.Lis
3c040 70 20 66 75 6e 63 74 69 6f 6e 20 74 68 61 74 20 69 6d 70 6c 65 6d 65 6e 74 73 0a 74 68 65 20 73 p.function.that.implements.the.s
3c060 75 62 73 74 69 74 75 74 69 6f 6e 2e 20 20 53 65 65 20 74 68 65 20 64 6f 63 75 6d 65 6e 74 61 74 ubstitution...See.the.documentat
3c080 69 6f 6e 20 6f 66 20 74 68 65 20 69 6e 64 69 76 69 64 75 61 6c 20 66 75 6e 63 74 69 6f 6e 73 0a ion.of.the.individual.functions.
3c0a0 69 6e 20 74 68 61 74 20 76 61 72 69 61 62 6c 65 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d in.that.variable.for.more.inform
3c0c0 61 74 69 6f 6e 20 6f 6e 20 74 68 65 20 62 65 68 61 76 69 6f 72 20 6f 66 20 65 61 63 68 0a 73 70 ation.on.the.behavior.of.each.sp
3c0e0 65 63 69 66 69 65 72 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 72 65 70 65 61 74 20 28 6c 69 73 74 ecifier."...:type.'(repeat.(list
3c100 20 28 73 74 72 69 6e 67 20 3a 74 61 67 20 22 52 65 70 6f 72 74 20 4e 61 6d 65 22 29 0a 20 20 20 .(string.:tag."Report.Name")....
3c120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 20 3a 74 61 67 ....................(string.:tag
3c140 20 22 43 6f 6d 6d 61 6e 64 20 4c 69 6e 65 22 29 29 29 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 ."Command.Line")))...:group.'led
3c160 67 65 72 2d 72 65 70 6f 72 74 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 72 ger-report)..(defcustom.ledger-r
3c180 65 70 6f 72 74 2d 66 6f 72 6d 61 74 2d 73 70 65 63 69 66 69 65 72 73 0a 20 20 27 28 28 22 6c 65 eport-format-specifiers...'(("le
3c1a0 64 67 65 72 2d 66 69 6c 65 22 20 2e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6c 65 64 67 65 dger-file"...ledger-report-ledge
3c1c0 72 2d 66 69 6c 65 2d 66 6f 72 6d 61 74 2d 73 70 65 63 69 66 69 65 72 29 0a 20 20 20 20 28 22 62 r-file-format-specifier).....("b
3c1e0 69 6e 61 72 79 22 20 2e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 62 69 6e 61 72 79 2d 66 6f inary"...ledger-report-binary-fo
3c200 72 6d 61 74 2d 73 70 65 63 69 66 69 65 72 29 0a 20 20 20 20 28 22 70 61 79 65 65 22 20 2e 20 6c rmat-specifier).....("payee"...l
3c220 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 70 61 79 65 65 2d 66 6f 72 6d 61 74 2d 73 70 65 63 69 66 edger-report-payee-format-specif
3c240 69 65 72 29 0a 20 20 20 20 28 22 61 63 63 6f 75 6e 74 22 20 2e 20 6c 65 64 67 65 72 2d 72 65 70 ier).....("account"...ledger-rep
3c260 6f 72 74 2d 61 63 63 6f 75 6e 74 2d 66 6f 72 6d 61 74 2d 73 70 65 63 69 66 69 65 72 29 0a 20 20 ort-account-format-specifier)...
3c280 20 20 28 22 6d 6f 6e 74 68 22 20 2e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6d 6f 6e 74 68 ..("month"...ledger-report-month
3c2a0 2d 66 6f 72 6d 61 74 2d 73 70 65 63 69 66 69 65 72 29 0a 20 20 20 20 28 22 74 61 67 6e 61 6d 65 -format-specifier).....("tagname
3c2c0 22 20 2e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 74 61 67 6e 61 6d 65 2d 66 6f 72 6d 61 74 "...ledger-report-tagname-format
3c2e0 2d 73 70 65 63 69 66 69 65 72 29 0a 20 20 20 20 28 22 74 61 67 76 61 6c 75 65 22 20 2e 20 6c 65 -specifier).....("tagvalue"...le
3c300 64 67 65 72 2d 72 65 70 6f 72 74 2d 74 61 67 76 61 6c 75 65 2d 66 6f 72 6d 61 74 2d 73 70 65 63 dger-report-tagvalue-format-spec
3c320 69 66 69 65 72 29 29 0a 20 20 22 41 6e 20 61 6c 69 73 74 20 6d 61 70 70 69 6e 67 20 6c 65 64 67 ifier))..."An.alist.mapping.ledg
3c340 65 72 20 72 65 70 6f 72 74 20 66 6f 72 6d 61 74 20 73 70 65 63 69 66 69 65 72 73 20 74 6f 20 69 er.report.format.specifiers.to.i
3c360 6d 70 6c 65 6d 65 6e 74 69 6e 67 20 66 75 6e 63 74 69 6f 6e 73 2e 0a 0a 54 68 65 20 66 75 6e 63 mplementing.functions...The.func
3c380 74 69 6f 6e 20 69 73 20 63 61 6c 6c 65 64 20 77 69 74 68 20 6e 6f 20 70 61 72 61 6d 65 74 65 72 tion.is.called.with.no.parameter
3c3a0 73 20 61 6e 64 20 65 78 70 65 63 74 65 64 20 74 6f 20 72 65 74 75 72 6e 0a 61 20 73 74 72 69 6e s.and.expected.to.return.a.strin
3c3c0 67 2c 20 6f 72 20 61 20 6c 69 73 74 20 6f 66 20 73 74 72 69 6e 67 73 2c 20 74 68 61 74 20 73 68 g,.or.a.list.of.strings,.that.sh
3c3e0 6f 75 6c 64 20 72 65 70 6c 61 63 65 20 74 68 65 20 66 6f 72 6d 61 74 20 73 70 65 63 69 66 69 65 ould.replace.the.format.specifie
3c400 72 2e 0a 53 69 6e 67 6c 65 20 73 74 72 69 6e 67 73 20 61 72 65 20 71 75 6f 74 65 64 20 77 69 74 r..Single.strings.are.quoted.wit
3c420 68 20 60 73 68 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 27 3b 20 6c 69 73 74 73 20 h.`shell-quote-argument';.lists.
3c440 6f 66 20 73 74 72 69 6e 67 73 20 61 72 65 0a 73 69 6d 70 6c 79 20 63 6f 6e 63 61 74 65 6e 61 74 of.strings.are.simply.concatenat
3c460 65 64 20 28 6e 6f 20 71 75 6f 74 69 6e 67 29 2e 22 0a 20 20 3a 74 79 70 65 20 27 61 6c 69 73 74 ed.(no.quoting)."...:type.'alist
3c480 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 0a 0a 28 64 65 66 63 ...:group.'ledger-report)..(defc
3c4a0 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 61 75 74 6f 2d 72 65 66 72 65 73 68 ustom.ledger-report-auto-refresh
3c4c0 20 74 0a 20 20 22 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 .t..."If.non-nil,.automatically.
3c4e0 72 65 72 75 6e 20 74 68 65 20 72 65 70 6f 72 74 20 77 68 65 6e 20 74 68 65 20 6c 65 64 67 65 72 rerun.the.report.when.the.ledger
3c500 20 62 75 66 66 65 72 20 69 73 20 73 61 76 65 64 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c .buffer.is.saved."...:type.'bool
3c520 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 0a 0a 28 64 ean...:group.'ledger-report)..(d
3c540 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 61 75 74 6f 2d 72 65 66 72 efcustom.ledger-report-auto-refr
3c560 65 73 68 2d 73 74 69 63 6b 79 2d 63 75 72 73 6f 72 20 6e 69 6c 0a 20 20 22 49 66 20 6e 6f 6e 2d esh-sticky-cursor.nil..."If.non-
3c580 6e 69 6c 2c 20 6b 65 65 70 20 63 75 72 73 6f 72 27 73 20 72 65 6c 61 74 69 76 65 20 70 6f 73 69 nil,.keep.cursor's.relative.posi
3c5a0 74 69 6f 6e 20 61 66 74 65 72 20 61 75 74 6f 2d 72 65 66 72 65 73 68 2e 22 0a 20 20 3a 74 79 70 tion.after.auto-refresh."...:typ
3c5c0 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 65 70 6f e.'boolean...:group.'ledger-repo
3c5e0 72 74 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6c 69 rt)..(defcustom.ledger-report-li
3c600 6e 6b 73 2d 69 6e 2d 72 65 67 69 73 74 65 72 20 74 0a 20 20 22 49 66 20 6e 6f 6e 2d 6e 69 6c 2c nks-in-register.t..."If.non-nil,
3c620 20 6c 69 6e 6b 20 65 6e 74 72 69 65 73 20 69 6e 20 5c 22 72 65 67 69 73 74 65 72 5c 22 20 72 65 .link.entries.in.\"register\".re
3c640 70 6f 72 74 73 20 74 6f 20 65 6e 74 72 69 65 73 20 69 6e 20 74 68 65 20 6c 65 64 67 65 72 20 62 ports.to.entries.in.the.ledger.b
3c660 75 66 66 65 72 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 uffer."...:type.'boolean...:grou
3c680 70 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 p.'ledger-report)..(defcustom.le
3c6a0 64 67 65 72 2d 72 65 70 6f 72 74 2d 75 73 65 2d 6e 61 74 69 76 65 2d 68 69 67 68 6c 69 67 68 74 dger-report-use-native-highlight
3c6c0 69 6e 67 20 74 0a 20 20 22 57 68 65 6e 20 6e 6f 6e 2d 6e 69 6c 2c 20 75 73 65 20 6c 65 64 67 65 ing.t..."When.non-nil,.use.ledge
3c6e0 72 27 73 20 6e 61 74 69 76 65 20 68 69 67 68 6c 69 67 68 74 69 6e 67 20 69 6e 20 72 65 70 6f 72 r's.native.highlighting.in.repor
3c700 74 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 70 61 63 6b 61 67 65 ts."...:type.'boolean...:package
3c720 2d 76 65 72 73 69 6f 6e 20 27 28 6c 65 64 67 65 72 2d 6d 6f 64 65 20 2e 20 22 34 2e 30 2e 30 22 -version.'(ledger-mode..."4.0.0"
3c740 29 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 0a 0a 28 64 65 66 )...:group.'ledger-report)..(def
3c760 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 74 69 76 65 2d 68 69 67 68 custom.ledger-report-native-high
3c780 6c 69 67 68 74 69 6e 67 2d 61 72 67 75 6d 65 6e 74 73 20 27 28 22 2d 2d 63 6f 6c 6f 72 22 20 22 lighting-arguments.'("--color"."
3c7a0 2d 2d 66 6f 72 63 65 2d 63 6f 6c 6f 72 22 29 0a 20 20 22 4c 69 73 74 20 6f 66 20 6c 65 64 67 65 --force-color")..."List.of.ledge
3c7c0 72 20 61 72 67 73 20 6e 65 65 64 65 64 20 62 79 20 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d r.args.needed.by.`ledger-report-
3c7e0 75 73 65 2d 6e 61 74 69 76 65 2d 68 69 67 68 6c 69 67 68 74 69 6e 67 27 2e 0a 0a 49 66 20 79 6f use-native-highlighting'...If.yo
3c800 75 20 61 72 65 20 75 73 69 6e 67 20 68 6c 65 64 67 65 72 20 69 6e 73 74 65 61 64 20 6f 66 20 6c u.are.using.hledger.instead.of.l
3c820 65 64 67 65 72 2c 20 79 6f 75 20 6d 69 67 68 74 20 77 61 6e 74 20 74 6f 20 73 65 74 0a 74 68 69 edger,.you.might.want.to.set.thi
3c840 73 20 76 61 72 69 61 62 6c 65 20 74 6f 20 60 28 5c 22 2d 2d 63 6f 6c 6f 72 3d 61 6c 77 61 79 73 s.variable.to.`(\"--color=always
3c860 5c 22 29 27 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 72 65 70 65 61 74 20 73 74 72 69 6e 67 29 0a \")'."...:type.'(repeat.string).
3c880 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 0a 0a 28 64 65 66 63 75 ..:group.'ledger-report)..(defcu
3c8a0 73 74 6f 6d 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 61 75 74 6f 2d 77 69 64 74 68 20 74 0a stom.ledger-report-auto-width.t.
3c8c0 20 20 22 57 68 65 6e 20 6e 6f 6e 2d 6e 69 6c 2c 20 74 65 6c 6c 20 6c 65 64 67 65 72 20 61 62 6f .."When.non-nil,.tell.ledger.abo
3c8e0 75 74 20 74 68 65 20 77 69 64 74 68 20 6f 66 20 74 68 65 20 72 65 70 6f 72 74 20 77 69 6e 64 6f ut.the.width.of.the.report.windo
3c900 77 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 70 61 63 6b 61 67 65 2d w."...:type.'boolean...:package-
3c920 76 65 72 73 69 6f 6e 20 27 28 6c 65 64 67 65 72 2d 6d 6f 64 65 20 2e 20 22 34 2e 30 2e 30 22 29 version.'(ledger-mode..."4.0.0")
3c940 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 0a 0a 28 64 65 66 63 ...:group.'ledger-report)..(defc
3c960 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 75 73 65 2d 68 65 61 64 65 72 2d 6c ustom.ledger-report-use-header-l
3c980 69 6e 65 20 6e 69 6c 0a 20 20 22 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 69 6e 64 69 63 61 74 65 20 ine.nil..."If.non-nil,.indicate.
3c9a0 72 65 70 6f 72 74 20 6e 61 6d 65 2f 63 6f 6d 6d 61 6e 64 20 69 6e 20 74 68 65 20 60 68 65 61 64 report.name/command.in.the.`head
3c9c0 65 72 2d 6c 69 6e 65 27 2e 0a 54 68 65 20 72 65 70 6f 72 74 20 6e 61 6d 65 2f 63 6f 6d 6d 61 6e er-line'..The.report.name/comman
3c9e0 64 20 77 6f 6e 27 74 20 62 65 20 70 72 69 6e 74 65 64 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 d.won't.be.printed.in.the.buffer
3ca00 2e 20 20 53 65 65 0a 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 68 65 61 64 65 72 2d 6c 69 6e ...See.`ledger-report-header-lin
3ca20 65 2d 66 6e 27 20 66 6f 72 20 68 6f 77 20 74 6f 20 63 75 73 74 6f 6d 69 7a 65 20 74 68 65 0a 69 e-fn'.for.how.to.customize.the.i
3ca40 6e 66 6f 72 6d 61 74 69 6f 6e 20 72 65 70 6f 72 74 65 64 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 nformation.reported."...:type.'b
3ca60 6f 6f 6c 65 61 6e 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 6c 65 64 67 oolean...:package-version.'(ledg
3ca80 65 72 2d 6d 6f 64 65 20 2e 20 22 34 2e 30 2e 30 22 29 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 er-mode..."4.0.0")...:group.'led
3caa0 67 65 72 2d 72 65 70 6f 72 74 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 72 ger-report)..(defcustom.ledger-r
3cac0 65 70 6f 72 74 2d 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6e 20 23 27 6c 65 64 67 65 72 2d 72 65 eport-header-line-fn.#'ledger-re
3cae0 70 6f 72 74 2d 2d 68 65 61 64 65 72 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 22 45 76 61 6c 75 61 74 port--header-function..."Evaluat
3cb00 65 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 6e 20 74 68 65 20 60 68 65 61 64 65 72 2d 6c e.this.function.in.the.`header-l
3cb20 69 6e 65 27 20 6f 66 20 74 68 65 20 72 65 70 6f 72 74 20 62 75 66 66 65 72 2e 0a 60 6c 65 64 67 ine'.of.the.report.buffer..`ledg
3cb40 65 72 2d 72 65 70 6f 72 74 2d 75 73 65 2d 68 65 61 64 65 72 2d 6c 69 6e 65 27 20 6d 75 73 74 20 er-report-use-header-line'.must.
3cb60 62 65 20 6e 6f 6e 2d 6e 69 6c 20 66 6f 72 20 74 68 69 73 20 74 6f 20 68 61 76 65 20 61 6e 79 20 be.non-nil.for.this.to.have.any.
3cb80 65 66 66 65 63 74 2e 22 0a 20 20 3a 74 79 70 65 20 27 66 75 6e 63 74 69 6f 6e 0a 20 20 3a 70 61 effect."...:type.'function...:pa
3cba0 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 6c 65 64 67 65 72 2d 6d 6f 64 65 20 2e 20 22 34 ckage-version.'(ledger-mode..."4
3cbc0 2e 30 2e 30 22 29 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 0a .0.0")...:group.'ledger-report).
3cbe0 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 73 69 7a 65 .(defcustom.ledger-report-resize
3cc00 2d 77 69 6e 64 6f 77 20 74 0a 20 20 22 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 72 65 73 69 7a 65 20 -window.t..."If.non-nil,.resize.
3cc20 74 68 65 20 72 65 70 6f 72 74 20 77 69 6e 64 6f 77 2e 0a 43 61 6c 6c 73 20 60 73 68 72 69 6e 6b the.report.window..Calls.`shrink
3cc40 2d 77 69 6e 64 6f 77 2d 69 66 2d 6c 61 72 67 65 72 2d 74 68 61 6e 2d 62 75 66 66 65 72 27 2e 22 -window-if-larger-than-buffer'."
3cc60 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 ...:type.'boolean...:package-ver
3cc80 73 69 6f 6e 20 27 28 6c 65 64 67 65 72 2d 6d 6f 64 65 20 2e 20 22 34 2e 30 2e 30 22 29 0a 20 20 sion.'(ledger-mode..."4.0.0")...
3cca0 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 0a 0a 28 64 65 66 63 75 73 74 :group.'ledger-report)..(defcust
3ccc0 6f 6d 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 75 73 65 2d 73 74 72 69 63 74 20 6e 69 6c 0a om.ledger-report-use-strict.nil.
3cce0 20 20 22 57 68 65 6e 20 6e 6f 6e 2d 6e 69 6c 2c 20 60 6c 65 64 67 65 72 2d 6d 6f 64 65 27 20 77 .."When.non-nil,.`ledger-mode'.w
3cd00 69 6c 6c 20 75 73 65 20 2d 2d 73 74 72 69 63 74 20 77 68 65 6e 20 72 75 6e 6e 69 6e 67 20 72 65 ill.use.--strict.when.running.re
3cd20 70 6f 72 74 73 3f 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 70 61 63 6b ports?"...:type.'boolean...:pack
3cd40 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 6c 65 64 67 65 72 2d 6d 6f 64 65 20 2e 20 22 34 2e 30 age-version.'(ledger-mode..."4.0
3cd60 2e 30 22 29 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 0a 0a 28 .0")...:group.'ledger-report)..(
3cd80 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 61 66 74 65 72 2d 72 65 defcustom.ledger-report-after-re
3cda0 70 6f 72 74 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 48 6f 6f 6b 20 72 75 6e 20 61 66 74 65 72 20 port-hook.nil..."Hook.run.after.
3cdc0 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 27 20 68 61 73 20 63 72 65 61 74 65 64 20 74 68 65 20 `ledger-report'.has.created.the.
3cde0 62 75 66 66 65 72 20 61 6e 64 20 72 65 70 6f 72 74 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f buffer.and.report."...:type.'boo
3ce00 6c 65 61 6e 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 6c 65 64 67 65 72 lean...:package-version.'(ledger
3ce20 2d 6d 6f 64 65 20 2e 20 22 34 2e 30 2e 30 22 29 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 -mode..."4.0.0")...:group.'ledge
3ce40 72 2d 72 65 70 6f 72 74 29 0a 0a 28 64 65 66 76 61 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 r-report)..(defvar.ledger-report
3ce60 2d 62 75 66 66 65 72 2d 6e 61 6d 65 20 22 2a 4c 65 64 67 65 72 20 52 65 70 6f 72 74 2a 22 29 0a -buffer-name."*Ledger.Report*").
3ce80 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d .(defvar-local.ledger-report-nam
3cea0 65 20 6e 69 6c 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6c 65 64 67 65 72 2d 72 65 70 6f e.nil).(defvar-local.ledger-repo
3cec0 72 74 2d 63 6d 64 20 6e 69 6c 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6c 65 64 67 65 72 rt-cmd.nil).(defvar-local.ledger
3cee0 2d 72 65 70 6f 72 74 2d 73 61 76 65 64 20 6e 69 6c 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c -report-saved.nil).(defvar-local
3cf00 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 75 72 72 65 6e 74 2d 6d 6f 6e 74 68 20 6e 69 6c .ledger-report-current-month.nil
3cf20 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 69 73 ).(defvar-local.ledger-report-is
3cf40 2d 72 65 76 65 72 73 65 64 20 6e 69 6c 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6c 65 64 -reversed.nil).(defvar-local.led
3cf60 67 65 72 2d 72 65 70 6f 72 74 2d 63 75 72 73 6f 72 2d 6c 69 6e 65 2d 6e 75 6d 62 65 72 20 6e 69 ger-report-cursor-line-number.ni
3cf80 6c 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6c l).(defvar-local.ledger-report-l
3cfa0 65 64 67 65 72 2d 62 75 66 20 6e 69 6c 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6c 65 64 edger-buf.nil).(defvar-local.led
3cfc0 67 65 72 2d 6d 61 73 74 65 72 2d 66 69 6c 65 20 6e 69 6c 0a 20 20 22 54 68 65 20 6d 61 73 74 65 ger-master-file.nil..."The.maste
3cfe0 72 20 66 69 6c 65 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 0a 53 r.file.for.the.current.buffer..S
3d000 65 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 66 75 6e 63 74 69 6f ee.documentation.for.the.functio
3d020 6e 20 60 6c 65 64 67 65 72 2d 6d 61 73 74 65 72 2d 66 69 6c 65 27 22 29 0a 0a 28 64 65 66 76 61 n.`ledger-master-file'")..(defva
3d040 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 2d 70 72 6f 6d 70 74 2d 68 69 73 74 r.ledger-report-name-prompt-hist
3d060 6f 72 79 20 6e 69 6c 29 0a 28 64 65 66 76 61 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 ory.nil).(defvar.ledger-report-c
3d080 6d 64 2d 70 72 6f 6d 70 74 2d 68 69 73 74 6f 72 79 20 6e 69 6c 29 0a 28 64 65 66 76 61 72 20 6c md-prompt-history.nil).(defvar.l
3d0a0 65 64 67 65 72 2d 6d 69 6e 69 62 75 66 66 65 72 2d 68 69 73 74 6f 72 79 20 6e 69 6c 29 0a 28 64 edger-minibuffer-history.nil).(d
3d0c0 65 66 76 61 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6d 6f 64 65 2d 61 62 62 72 65 76 2d efvar.ledger-report-mode-abbrev-
3d0e0 74 61 62 6c 65 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 76 table)..(defun.ledger-report-rev
3d100 65 72 73 65 2d 72 65 70 6f 72 74 20 28 29 0a 20 20 22 52 65 76 65 72 73 65 20 74 68 65 20 6f 72 erse-report.()..."Reverse.the.or
3d120 64 65 72 20 6f 66 20 74 68 65 20 72 65 70 6f 72 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 der.of.the.report."...(interacti
3d140 76 65 29 0a 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 76 65 72 73 65 2d 6c 69 6e ve)...(ledger-report-reverse-lin
3d160 65 73 29 0a 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 69 73 2d 72 65 76 es)...(setq.ledger-report-is-rev
3d180 65 72 73 65 64 20 28 6e 6f 74 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 69 73 2d 72 65 76 65 ersed.(not.ledger-report-is-reve
3d1a0 72 73 65 64 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 rsed)))..(defun.ledger-report-re
3d1c0 76 65 72 73 65 2d 6c 69 6e 65 73 20 28 29 0a 20 20 22 52 65 76 65 72 73 65 20 74 68 65 20 6c 69 verse-lines.()..."Reverse.the.li
3d1e0 6e 65 73 20 69 6e 20 74 68 65 20 6c 65 64 67 65 72 20 72 65 70 6f 72 74 20 62 75 66 66 65 72 2e nes.in.the.ledger.report.buffer.
3d200 22 0a 20 20 28 77 69 74 68 2d 73 69 6c 65 6e 74 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 0a 20 "...(with-silent-modifications..
3d220 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 28 ...(goto-char.(point-min)).....(
3d240 75 6e 6c 65 73 73 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 75 73 65 2d 68 65 61 64 65 72 2d unless.ledger-report-use-header-
3d260 6c 69 6e 65 0a 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 70 61 72 61 67 72 61 70 68 29 0a 20 line.......(forward-paragraph)..
3d280 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 29 29 0a 20 20 20 20 28 73 61 76 65 2d 65 .....(forward-line)).....(save-e
3d2a0 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 72 65 76 65 72 73 65 2d 72 65 67 69 6f 6e 20 28 xcursion.......(reverse-region.(
3d2c0 70 6f 69 6e 74 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c point).(point-max)))))..(defun.l
3d2e0 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6d 61 79 62 65 2d 73 68 72 69 6e 6b 2d 77 69 6e 64 6f 77 edger-report-maybe-shrink-window
3d300 20 28 29 0a 20 20 22 53 68 72 69 6e 6b 20 77 69 6e 64 6f 77 20 69 66 20 60 6c 65 64 67 65 72 2d .()..."Shrink.window.if.`ledger-
3d320 72 65 70 6f 72 74 2d 72 65 73 69 7a 65 2d 77 69 6e 64 6f 77 27 20 69 73 20 6e 6f 6e 2d 6e 69 6c report-resize-window'.is.non-nil
3d340 2e 22 0a 20 20 28 77 68 65 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 73 69 7a 65 2d ."...(when.ledger-report-resize-
3d360 77 69 6e 64 6f 77 0a 20 20 20 20 28 73 68 72 69 6e 6b 2d 77 69 6e 64 6f 77 2d 69 66 2d 6c 61 72 window.....(shrink-window-if-lar
3d380 67 65 72 2d 74 68 61 6e 2d 62 75 66 66 65 72 29 29 29 0a 0a 28 64 65 66 76 61 72 20 6c 65 64 67 ger-than-buffer)))..(defvar.ledg
3d3a0 65 72 2d 72 65 70 6f 72 74 2d 6d 6f 64 65 2d 6d 61 70 0a 20 20 28 6c 65 74 20 28 28 6d 61 70 20 er-report-mode-map...(let.((map.
3d3c0 28 6d 61 6b 65 2d 73 70 61 72 73 65 2d 6b 65 79 6d 61 70 29 29 29 0a 20 20 20 20 28 64 65 66 69 (make-sparse-keymap))).....(defi
3d3e0 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 72 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 ne-key.map.(kbd."r").#'ledger-re
3d400 70 6f 72 74 2d 72 65 64 6f 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 port-redo).....(define-key.map.(
3d420 6b 62 64 20 22 52 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 76 65 72 73 65 kbd."R").#'ledger-report-reverse
3d440 2d 72 65 70 6f 72 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 -report).....(define-key.map.(kb
3d460 64 20 22 73 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 73 61 76 65 29 0a 20 20 20 d."s").#'ledger-report-save)....
3d480 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 53 22 29 20 23 27 6c 65 64 .(define-key.map.(kbd."S").#'led
3d4a0 67 65 72 2d 72 65 70 6f 72 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 ger-report).....(define-key.map.
3d4c0 28 6b 62 64 20 22 65 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 65 64 69 74 2d 72 (kbd."e").#'ledger-report-edit-r
3d4e0 65 70 6f 72 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 eport).....(define-key.map.(kbd.
3d500 22 45 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 65 64 69 74 2d 72 65 70 6f 72 74 "E").#'ledger-report-edit-report
3d520 73 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 71 22 29 s).....(define-key.map.(kbd."q")
3d540 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 71 75 69 74 29 0a 20 20 20 20 28 64 65 66 69 .#'ledger-report-quit).....(defi
3d560 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 6c 20 43 2d 72 22 29 20 23 ne-key.map.(kbd."C-c.C-l.C-r").#
3d580 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 64 6f 29 0a 20 20 20 20 28 64 65 66 69 6e 65 'ledger-report-redo).....(define
3d5a0 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 6c 20 43 2d 53 2d 73 22 29 20 23 -key.map.(kbd."C-c.C-l.C-S-s").#
3d5c0 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 73 61 76 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 'ledger-report-save).....(define
3d5e0 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 6c 20 43 2d 65 22 29 20 23 27 6c -key.map.(kbd."C-c.C-l.C-e").#'l
3d600 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 65 64 69 74 2d 72 65 70 6f 72 74 29 0a 20 20 20 20 28 64 edger-report-edit-report).....(d
3d620 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 6f 20 43 2d 72 22 efine-key.map.(kbd."C-c.C-o.C-r"
3d640 29 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b ).#'ledger-report).....(define-k
3d660 65 79 20 6d 61 70 20 28 6b 62 64 20 22 4d 2d 70 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f ey.map.(kbd."M-p").#'ledger-repo
3d680 72 74 2d 70 72 65 76 69 6f 75 73 2d 6d 6f 6e 74 68 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b rt-previous-month).....(define-k
3d6a0 65 79 20 6d 61 70 20 28 6b 62 64 20 22 4d 2d 6e 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f ey.map.(kbd."M-n").#'ledger-repo
3d6c0 72 74 2d 6e 65 78 74 2d 6d 6f 6e 74 68 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d rt-next-month).....(define-key.m
3d6e0 61 70 20 28 6b 62 64 20 22 24 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 74 6f 67 ap.(kbd."$").#'ledger-report-tog
3d700 67 6c 65 2d 64 65 66 61 75 6c 74 2d 63 6f 6d 6d 6f 64 69 74 79 29 0a 20 20 20 20 6d 61 70 29 0a gle-default-commodity).....map).
3d720 20 20 22 4b 65 79 6d 61 70 20 66 6f 72 20 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6d 6f 64 .."Keymap.for.`ledger-report-mod
3d740 65 27 2e 22 29 0a 0a 28 65 61 73 79 2d 6d 65 6e 75 2d 64 65 66 69 6e 65 20 6c 65 64 67 65 72 2d e'.")..(easy-menu-define.ledger-
3d760 72 65 70 6f 72 74 2d 6d 6f 64 65 2d 6d 65 6e 75 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6d report-mode-menu.ledger-report-m
3d780 6f 64 65 2d 6d 61 70 0a 20 20 22 4c 65 64 67 65 72 20 72 65 70 6f 72 74 20 6d 65 6e 75 2e 22 0a ode-map..."Ledger.report.menu.".
3d7a0 20 20 27 28 22 52 65 70 6f 72 74 73 22 0a 20 20 20 20 5b 22 53 65 6c 65 63 74 20 52 65 70 6f 72 ..'("Reports".....["Select.Repor
3d7c0 74 22 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 5d 0a 20 20 20 20 5b 22 53 61 76 65 20 52 65 70 t".ledger-report].....["Save.Rep
3d7e0 6f 72 74 22 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 73 61 76 65 5d 0a 20 20 20 20 5b 22 45 ort".ledger-report-save].....["E
3d800 64 69 74 20 43 75 72 72 65 6e 74 20 52 65 70 6f 72 74 22 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 dit.Current.Report".ledger-repor
3d820 74 2d 65 64 69 74 2d 72 65 70 6f 72 74 5d 0a 20 20 20 20 5b 22 45 64 69 74 20 41 6c 6c 20 52 65 t-edit-report].....["Edit.All.Re
3d840 70 6f 72 74 73 22 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 65 64 69 74 2d 72 65 70 6f 72 74 ports".ledger-report-edit-report
3d860 73 5d 0a 20 20 20 20 5b 22 52 65 2d 72 75 6e 20 52 65 70 6f 72 74 22 20 6c 65 64 67 65 72 2d 72 s].....["Re-run.Report".ledger-r
3d880 65 70 6f 72 74 2d 72 65 64 6f 5d 0a 20 20 20 20 22 2d 2d 2d 22 0a 20 20 20 20 5b 22 52 65 76 65 eport-redo]....."---".....["Reve
3d8a0 72 73 65 20 72 65 70 6f 72 74 20 6f 72 64 65 72 22 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d rse.report.order".ledger-report-
3d8c0 72 65 76 65 72 73 65 2d 72 65 70 6f 72 74 5d 0a 20 20 20 20 22 2d 2d 2d 22 0a 20 20 20 20 5b 22 reverse-report]....."---".....["
3d8e0 53 63 72 6f 6c 6c 20 55 70 22 20 73 63 72 6f 6c 6c 2d 75 70 5d 0a 20 20 20 20 5b 22 56 69 73 69 Scroll.Up".scroll-up].....["Visi
3d900 74 20 53 6f 75 72 63 65 22 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 76 69 73 69 74 2d 73 6f t.Source".ledger-report-visit-so
3d920 75 72 63 65 5d 0a 20 20 20 20 5b 22 53 63 72 6f 6c 6c 20 44 6f 77 6e 22 20 73 63 72 6f 6c 6c 2d urce].....["Scroll.Down".scroll-
3d940 64 6f 77 6e 5d 0a 20 20 20 20 22 2d 2d 2d 22 0a 20 20 20 20 5b 22 51 75 69 74 22 20 6c 65 64 67 down]....."---".....["Quit".ledg
3d960 65 72 2d 72 65 70 6f 72 74 2d 71 75 69 74 5d 0a 20 20 20 20 29 29 0a 0a 28 64 65 66 69 6e 65 2d er-report-quit].....))..(define-
3d980 64 65 72 69 76 65 64 2d 6d 6f 64 65 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6d 6f 64 65 20 derived-mode.ledger-report-mode.
3d9a0 73 70 65 63 69 61 6c 2d 6d 6f 64 65 20 22 4c 65 64 67 65 72 2d 52 65 70 6f 72 74 22 0a 20 20 22 special-mode."Ledger-Report"..."
3d9c0 41 20 6d 6f 64 65 20 66 6f 72 20 76 69 65 77 69 6e 67 20 6c 65 64 67 65 72 20 72 65 70 6f 72 74 A.mode.for.viewing.ledger.report
3d9e0 73 2e 22 0a 20 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 72 65 76 65 72 74 2d 62 75 66 66 65 72 2d s."...(setq-local.revert-buffer-
3da00 66 75 6e 63 74 69 6f 6e 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 64 6f 29 0a 20 function.#'ledger-report-redo)..
3da20 20 28 68 61 63 6b 2d 64 69 72 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 73 2d 6e 6f 6e 2d 66 .(hack-dir-local-variables-non-f
3da40 69 6c 65 2d 62 75 66 66 65 72 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6c 65 64 67 65 72 2d 72 ile-buffer))..(defconst.ledger-r
3da60 65 70 6f 72 74 2d 2d 65 78 74 72 61 2d 61 72 67 73 2d 6d 61 72 6b 65 72 20 22 5b 5b 6c 65 64 67 eport--extra-args-marker."[[ledg
3da80 65 72 2d 6d 6f 64 65 2d 66 6c 61 67 73 5d 5d 22 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 er-mode-flags]]")..(defun.ledger
3daa0 2d 72 65 70 6f 72 74 2d 62 69 6e 61 72 79 2d 66 6f 72 6d 61 74 2d 73 70 65 63 69 66 69 65 72 20 -report-binary-format-specifier.
3dac0 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 70 61 74 68 20 74 6f 20 6c 65 64 67 65 72 2c ()..."Return.the.path.to.ledger,
3dae0 20 70 6c 75 73 20 61 20 6d 61 72 6b 65 72 20 66 6f 72 20 65 78 74 72 61 20 61 72 67 75 6d 65 6e .plus.a.marker.for.extra.argumen
3db00 74 73 2e 22 0a 20 20 28 6c 69 73 74 20 28 73 68 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 ts."...(list.(shell-quote-argume
3db20 6e 74 20 6c 65 64 67 65 72 2d 62 69 6e 61 72 79 2d 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 6c nt.ledger-binary-path).........l
3db40 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 65 78 74 72 61 2d 61 72 67 73 2d 6d 61 72 6b 65 72 29 edger-report--extra-args-marker)
3db60 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 74 61 67 6e 61 6d 65 2d )..(defun.ledger-report-tagname-
3db80 66 6f 72 6d 61 74 2d 73 70 65 63 69 66 69 65 72 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 format-specifier.()..."Return.a.
3dba0 76 61 6c 69 64 20 6d 65 74 61 2d 64 61 74 61 20 74 61 67 20 6e 61 6d 65 2e 22 0a 20 20 3b 3b 20 valid.meta-data.tag.name."...;;.
3dbc0 49 74 20 69 73 20 69 6e 74 65 6e 64 65 64 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 73 68 6f 75 6c 64 It.is.intended.completion.should
3dbe0 20 62 65 20 61 76 61 69 6c 61 62 6c 65 20 6f 6e 20 65 78 69 73 74 69 6e 67 20 74 61 67 0a 20 20 .be.available.on.existing.tag...
3dc00 3b 3b 20 6e 61 6d 65 73 2c 20 62 75 74 20 69 74 20 72 65 6d 61 69 6e 73 20 74 6f 20 62 65 20 69 ;;.names,.but.it.remains.to.be.i
3dc20 6d 70 6c 65 6d 65 6e 74 65 64 2e 0a 20 20 28 6c 65 64 67 65 72 2d 72 65 61 64 2d 73 74 72 69 6e mplemented....(ledger-read-strin
3dc40 67 2d 77 69 74 68 2d 64 65 66 61 75 6c 74 20 22 54 61 67 20 4e 61 6d 65 22 20 6e 69 6c 29 29 0a g-with-default."Tag.Name".nil)).
3dc60 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 74 61 67 76 61 6c 75 65 2d 66 .(defun.ledger-report-tagvalue-f
3dc80 6f 72 6d 61 74 2d 73 70 65 63 69 66 69 65 72 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 76 ormat-specifier.()..."Return.a.v
3dca0 61 6c 69 64 20 6d 65 74 61 2d 64 61 74 61 20 74 61 67 20 6e 61 6d 65 2e 22 0a 20 20 3b 3b 20 49 alid.meta-data.tag.name."...;;.I
3dcc0 74 20 69 73 20 69 6e 74 65 6e 64 65 64 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 73 68 6f 75 6c 64 20 t.is.intended.completion.should.
3dce0 62 65 20 61 76 61 69 6c 61 62 6c 65 20 6f 6e 20 65 78 69 73 74 69 6e 67 20 74 61 67 0a 20 20 3b be.available.on.existing.tag...;
3dd00 3b 20 76 61 6c 75 65 73 2c 20 62 75 74 20 69 74 20 72 65 6d 61 69 6e 73 20 74 6f 20 62 65 20 69 ;.values,.but.it.remains.to.be.i
3dd20 6d 70 6c 65 6d 65 6e 74 65 64 2e 0a 20 20 28 6c 65 64 67 65 72 2d 72 65 61 64 2d 73 74 72 69 6e mplemented....(ledger-read-strin
3dd40 67 2d 77 69 74 68 2d 64 65 66 61 75 6c 74 20 22 54 61 67 20 56 61 6c 75 65 22 20 6e 69 6c 29 29 g-with-default."Tag.Value".nil))
3dd60 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 61 64 2d 6e 61 6d 65 ..(defun.ledger-report-read-name
3dd80 20 28 29 0a 20 20 22 52 65 61 64 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 61 20 6c 65 64 67 65 72 .()..."Read.the.name.of.a.ledger
3dda0 20 72 65 70 6f 72 74 20 74 6f 20 75 73 65 2c 20 77 69 74 68 20 63 6f 6d 70 6c 65 74 69 6f 6e 2e .report.to.use,.with.completion.
3ddc0 0a 0a 54 68 65 20 65 6d 70 74 79 20 73 74 72 69 6e 67 20 61 6e 64 20 75 6e 6b 6e 6f 77 6e 20 6e ..The.empty.string.and.unknown.n
3dde0 61 6d 65 73 20 61 72 65 20 61 6c 6c 6f 77 65 64 2e 22 0a 20 20 28 63 6f 6d 70 6c 65 74 69 6e 67 ames.are.allowed."...(completing
3de00 2d 72 65 61 64 20 22 52 65 70 6f 72 74 20 6e 61 6d 65 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 -read."Report.name:."...........
3de20 20 20 20 20 20 20 20 20 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 20 6e 69 6c 20 6e 69 6c 20 .........ledger-reports.nil.nil.
3de40 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6c 65 64 67 65 72 2d 72 nil....................'ledger-r
3de60 65 70 6f 72 74 2d 6e 61 6d 65 2d 70 72 6f 6d 70 74 2d 68 69 73 74 6f 72 79 20 6e 69 6c 29 29 0a eport-name-prompt-history.nil)).
3de80 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 20 28 72 65 70 6f 72 74 2d 6e 61 .(defun.ledger-report.(report-na
3dea0 6d 65 20 65 64 69 74 29 0a 20 20 22 52 75 6e 20 61 20 75 73 65 72 2d 73 70 65 63 69 66 69 65 64 me.edit)..."Run.a.user-specified
3dec0 20 72 65 70 6f 72 74 20 66 72 6f 6d 20 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 27 2e 0a 0a .report.from.`ledger-reports'...
3dee0 50 72 6f 6d 70 74 73 20 74 68 65 20 75 73 65 72 20 66 6f 72 20 74 68 65 20 52 45 50 4f 52 54 2d Prompts.the.user.for.the.REPORT-
3df00 4e 41 4d 45 20 6f 66 20 74 68 65 20 72 65 70 6f 72 74 20 74 6f 20 72 75 6e 20 6f 72 0a 45 44 49 NAME.of.the.report.to.run.or.EDI
3df20 54 2e 20 20 49 66 20 6e 6f 20 6e 61 6d 65 20 69 73 20 65 6e 74 65 72 65 64 2c 20 74 68 65 20 75 T...If.no.name.is.entered,.the.u
3df40 73 65 72 20 77 69 6c 6c 20 62 65 20 70 72 6f 6d 70 74 65 64 20 66 6f 72 20 61 0a 63 6f 6d 6d 61 ser.will.be.prompted.for.a.comma
3df60 6e 64 20 6c 69 6e 65 20 74 6f 20 72 75 6e 2e 20 20 54 68 65 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e nd.line.to.run...The.command.lin
3df80 65 20 73 70 65 63 69 66 69 65 64 20 6f 72 20 61 73 73 6f 63 69 61 74 65 64 0a 77 69 74 68 20 74 e.specified.or.associated.with.t
3dfa0 68 65 20 73 65 6c 65 63 74 65 64 20 72 65 70 6f 72 74 20 6e 61 6d 65 20 69 73 20 72 75 6e 20 61 he.selected.report.name.is.run.a
3dfc0 6e 64 20 74 68 65 20 6f 75 74 70 75 74 20 69 73 20 6d 61 64 65 0a 61 76 61 69 6c 61 62 6c 65 20 nd.the.output.is.made.available.
3dfe0 69 6e 20 61 6e 6f 74 68 65 72 20 62 75 66 66 65 72 20 66 6f 72 20 76 69 65 77 69 6e 67 2e 20 20 in.another.buffer.for.viewing...
3e000 49 66 20 61 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 20 69 73 0a 67 69 76 65 6e 20 61 6e If.a.prefix.argument.is.given.an
3e020 64 20 74 68 65 20 75 73 65 72 20 73 65 6c 65 63 74 73 20 61 20 76 61 6c 69 64 20 72 65 70 6f 72 d.the.user.selects.a.valid.repor
3e040 74 20 6e 61 6d 65 2c 20 74 68 65 20 75 73 65 72 20 69 73 0a 70 72 6f 6d 70 74 65 64 20 77 69 74 t.name,.the.user.is.prompted.wit
3e060 68 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 h.the.corresponding.command.line
3e080 20 66 6f 72 20 65 64 69 74 69 6e 67 20 62 65 66 6f 72 65 0a 74 68 65 20 63 6f 6d 6d 61 6e 64 20 .for.editing.before.the.command.
3e0a0 69 73 20 72 75 6e 2e 0a 0a 54 68 65 20 6f 75 74 70 75 74 20 62 75 66 66 65 72 20 77 69 6c 6c 20 is.run...The.output.buffer.will.
3e0c0 62 65 20 69 6e 20 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6d 6f 64 65 27 2c 20 77 68 69 63 be.in.`ledger-report-mode',.whic
3e0e0 68 20 64 65 66 69 6e 65 73 0a 63 6f 6d 6d 61 6e 64 73 20 66 6f 72 20 73 61 76 69 6e 67 20 61 20 h.defines.commands.for.saving.a.
3e100 6e 65 77 20 6e 61 6d 65 64 20 72 65 70 6f 72 74 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 63 6f new.named.report.based.on.the.co
3e120 6d 6d 61 6e 64 20 6c 69 6e 65 0a 75 73 65 64 20 74 6f 20 67 65 6e 65 72 61 74 65 20 74 68 65 20 mmand.line.used.to.generate.the.
3e140 62 75 66 66 65 72 2c 20 6e 61 76 69 67 61 74 69 6e 67 20 74 68 65 20 62 75 66 66 65 72 2c 20 65 buffer,.navigating.the.buffer,.e
3e160 74 63 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 28 70 72 6f 67 6e 0a 20 20 tc."...(interactive....(progn...
3e180 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 62 75 66 66 65 72 2d 6d 6f 64 69 66 69 65 64 2d 70 ...(when.(and.(buffer-modified-p
3e1a0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 79 2d 6f 72 2d 6e 2d 70 20 22 42 75 66 ).................(y-or-n-p."Buf
3e1c0 66 65 72 20 6d 6f 64 69 66 69 65 64 2c 20 73 61 76 65 20 69 74 3f 20 22 29 29 0a 20 20 20 20 20 fer.modified,.save.it?."))......
3e1e0 20 20 28 73 61 76 65 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 28 6c 65 74 20 28 28 72 6e 61 ..(save-buffer))......(let.((rna
3e200 6d 65 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 61 64 2d 6e 61 6d 65 29 29 0a 20 20 me.(ledger-report-read-name))...
3e220 20 20 20 20 20 20 20 20 20 28 65 64 69 74 20 28 6e 6f 74 20 28 6e 75 6c 6c 20 63 75 72 72 65 6e .........(edit.(not.(null.curren
3e240 74 2d 70 72 65 66 69 78 2d 61 72 67 29 29 29 29 0a 20 20 20 20 20 20 20 28 6c 69 73 74 20 72 6e t-prefix-arg))))........(list.rn
3e260 61 6d 65 20 65 64 69 74 29 29 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 66 69 6c 65 20 28 6c 65 64 ame.edit))))...(let*.((file.(led
3e280 67 65 72 2d 6d 61 73 74 65 72 2d 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 62 75 66 20 ger-master-file))..........(buf.
3e2a0 28 66 69 6e 64 2d 66 69 6c 65 2d 6e 6f 73 65 6c 65 63 74 20 66 69 6c 65 29 29 29 0a 20 20 20 20 (find-file-noselect.file))).....
3e2c0 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 28 70 6f (with-current-buffer.........(po
3e2e0 70 2d 74 6f 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 6c p-to-buffer.(get-buffer-create.l
3e300 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 edger-report-buffer-name))......
3e320 20 28 77 69 74 68 2d 73 69 6c 65 6e 74 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 0a 20 20 20 20 .(with-silent-modifications.....
3e340 20 20 20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 28 6c 65 64 67 ....(erase-buffer).........(ledg
3e360 65 72 2d 72 65 70 6f 72 74 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 er-report-mode).........(setq.le
3e380 64 67 65 72 2d 72 65 70 6f 72 74 2d 73 61 76 65 64 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 dger-report-saved.nil).........(
3e3a0 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6c 65 64 67 65 72 2d 62 75 66 20 62 75 setq.ledger-report-ledger-buf.bu
3e3c0 66 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e f).........(setq.ledger-report-n
3e3e0 61 6d 65 20 72 65 70 6f 72 74 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c ame.report-name).........(setq.l
3e400 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 69 73 2d 72 65 76 65 72 73 65 64 20 6e 69 6c 29 0a 20 20 edger-report-is-reversed.nil)...
3e420 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 75 72 72 65 6e ......(setq.ledger-report-curren
3e440 74 2d 6d 6f 6e 74 68 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 t-month.nil).........(setq.ledge
3e460 72 2d 6d 61 73 74 65 72 2d 66 69 6c 65 20 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 28 6c 65 64 r-master-file.file).........(led
3e480 67 65 72 2d 64 6f 2d 72 65 70 6f 72 74 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 ger-do-report.(ledger-report-cmd
3e4a0 20 72 65 70 6f 72 74 2d 6e 61 6d 65 20 65 64 69 74 29 29 29 0a 20 20 20 20 20 20 28 6c 65 64 67 .report-name.edit))).......(ledg
3e4c0 65 72 2d 72 65 70 6f 72 74 2d 6d 61 79 62 65 2d 73 68 72 69 6e 6b 2d 77 69 6e 64 6f 77 29 0a 20 er-report-maybe-shrink-window)..
3e4e0 20 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 61 .....(run-hooks.'ledger-report-a
3e500 66 74 65 72 2d 72 65 70 6f 72 74 2d 68 6f 6f 6b 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 fter-report-hook).......(message
3e520 20 28 73 75 62 73 74 69 74 75 74 65 2d 63 6f 6d 6d 61 6e 64 2d 6b 65 79 73 20 28 63 6f 6e 63 61 .(substitute-command-keys.(conca
3e540 74 20 22 5c 5c 5b 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 71 75 69 74 5d 20 74 6f 20 71 75 69 t."\\[ledger-report-quit].to.qui
3e560 74 3b 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 t;."............................
3e580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 5b 6c 65 64 67 65 72 2d ....................."\\[ledger-
3e5a0 72 65 70 6f 72 74 2d 72 65 64 6f 5d 20 74 6f 20 72 65 64 6f 3b 20 22 0a 20 20 20 20 20 20 20 20 report-redo].to.redo;.".........
3e5c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3e5e0 20 20 20 20 20 20 20 20 22 5c 5c 5b 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 65 64 69 74 2d 72 ........"\\[ledger-report-edit-r
3e600 65 70 6f 72 74 5d 20 74 6f 20 65 64 69 74 3b 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 eport].to.edit;."...............
3e620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3e640 20 20 22 5c 5c 5b 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 73 61 76 65 5d 20 74 6f 20 73 61 76 .."\\[ledger-report-save].to.sav
3e660 65 3b 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e;."............................
3e680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 5b 73 63 72 6f 6c 6c 2d ....................."\\[scroll-
3e6a0 75 70 2d 63 6f 6d 6d 61 6e 64 5d 20 61 6e 64 20 5c 5c 5b 73 63 72 6f 6c 6c 2d 64 6f 77 6e 2d 63 up-command].and.\\[scroll-down-c
3e6c0 6f 6d 6d 61 6e 64 5d 20 74 6f 20 73 63 72 6f 6c 6c 22 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e ommand].to.scroll"))))))..(defun
3e6e0 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 68 65 61 64 65 72 2d 66 75 6e 63 74 69 6f 6e 20 .ledger-report--header-function.
3e700 28 29 0a 20 20 22 43 6f 6d 70 75 74 65 20 74 68 65 20 73 74 72 69 6e 67 20 74 6f 20 62 65 20 75 ()..."Compute.the.string.to.be.u
3e720 73 65 64 20 61 73 20 74 68 65 20 68 65 61 64 65 72 20 69 6e 20 74 68 65 20 60 6c 65 64 67 65 72 sed.as.the.header.in.the.`ledger
3e740 2d 72 65 70 6f 72 74 27 20 62 75 66 66 65 72 2e 22 0a 20 20 28 66 6f 72 6d 61 74 20 22 4c 65 64 -report'.buffer."...(format."Led
3e760 67 65 72 20 52 65 70 6f 72 74 3a 20 25 73 20 2d 2d 20 42 75 66 66 65 72 3a 20 25 73 20 2d 2d 20 ger.Report:.%s.--.Buffer:.%s.--.
3e780 43 6f 6d 6d 61 6e 64 3a 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 Command:.%s"...........(properti
3e7a0 7a 65 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 20 27 66 61 63 65 20 27 66 6f 6e ze.ledger-report-name.'face.'fon
3e7c0 74 2d 6c 6f 63 6b 2d 63 6f 6e 73 74 61 6e 74 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 t-lock-constant-face)...........
3e7e0 28 70 72 6f 70 65 72 74 69 7a 65 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 20 6c 65 64 67 65 72 2d (propertize.(buffer-name.ledger-
3e800 72 65 70 6f 72 74 2d 6c 65 64 67 65 72 2d 62 75 66 29 20 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c report-ledger-buf).'face.'font-l
3e820 6f 63 6b 2d 73 74 72 69 6e 67 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 ock-string-face)...........(prop
3e840 65 72 74 69 7a 65 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 20 27 66 61 63 65 20 27 ertize.ledger-report-cmd.'face.'
3e860 66 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6d 6d 65 6e 74 2d 66 61 63 65 29 29 29 0a 0a 28 64 65 66 75 font-lock-comment-face)))..(defu
3e880 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 2d 65 78 69 73 74 73 20 28 6e 61 6d n.ledger-report-name-exists.(nam
3e8a0 65 29 0a 20 20 22 43 68 65 63 6b 20 74 6f 20 73 65 65 20 69 66 20 74 68 65 20 67 69 76 65 6e 20 e)..."Check.to.see.if.the.given.
3e8c0 72 65 70 6f 72 74 20 4e 41 4d 45 20 65 78 69 73 74 73 2e 0a 0a 49 66 20 65 78 69 73 74 73 2c 20 report.NAME.exists...If.exists,.
3e8e0 72 65 74 75 72 6e 73 20 74 68 65 20 6f 62 6a 65 63 74 20 6e 61 6d 69 6e 67 20 74 68 65 20 72 65 returns.the.object.naming.the.re
3e900 70 6f 72 74 2c 20 6f 74 68 65 72 77 69 73 65 0a 72 65 74 75 72 6e 73 20 6e 69 6c 2e 22 0a 20 20 port,.otherwise.returns.nil."...
3e920 28 75 6e 6c 65 73 73 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 6e 61 6d 65 29 0a 20 20 (unless.(string-empty-p.name)...
3e940 20 20 28 63 61 72 20 28 61 73 73 6f 63 20 6e 61 6d 65 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 ..(car.(assoc.name.ledger-report
3e960 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 2d 61 64 64 s))))..(defun.ledger-reports-add
3e980 20 28 6e 61 6d 65 20 63 6d 64 29 0a 20 20 22 41 64 64 20 61 20 6e 65 77 20 72 65 70 6f 72 74 20 .(name.cmd)..."Add.a.new.report.
3e9a0 4e 41 4d 45 20 61 6e 64 20 43 4d 44 20 74 6f 20 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 27 NAME.and.CMD.to.`ledger-reports'
3e9c0 2e 22 0a 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 20 28 63 6f 6e 73 20 ."...(setq.ledger-reports.(cons.
3e9e0 28 6c 69 73 74 20 6e 61 6d 65 20 63 6d 64 29 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 29 29 (list.name.cmd).ledger-reports))
3ea00 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 2d 63 75 73 74 6f 6d 2d )..(defun.ledger-reports-custom-
3ea20 73 61 76 65 20 28 29 0a 20 20 22 53 61 76 65 20 74 68 65 20 60 6c 65 64 67 65 72 2d 72 65 70 6f save.()..."Save.the.`ledger-repo
3ea40 72 74 73 27 20 76 61 72 69 61 62 6c 65 20 75 73 69 6e 67 20 74 68 65 20 63 75 73 74 6f 6d 69 7a rts'.variable.using.the.customiz
3ea60 65 20 66 72 61 6d 65 77 6f 72 6b 2e 22 0a 20 20 28 63 75 73 74 6f 6d 69 7a 65 2d 73 61 76 65 2d e.framework."...(customize-save-
3ea80 76 61 72 69 61 62 6c 65 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 20 6c 65 64 67 65 72 2d variable.'ledger-reports.ledger-
3eaa0 72 65 70 6f 72 74 73 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d reports))..(defun.ledger-report-
3eac0 72 65 61 64 2d 63 6f 6d 6d 61 6e 64 20 28 72 65 70 6f 72 74 2d 63 6d 64 29 0a 20 20 22 52 65 61 read-command.(report-cmd)..."Rea
3eae0 64 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 74 6f 20 63 72 65 61 74 65 20 61 20 72 d.the.command.line.to.create.a.r
3eb00 65 70 6f 72 74 20 66 72 6f 6d 20 52 45 50 4f 52 54 2d 43 4d 44 2e 22 0a 20 20 28 72 65 61 64 2d eport.from.REPORT-CMD."...(read-
3eb20 66 72 6f 6d 2d 6d 69 6e 69 62 75 66 66 65 72 20 22 52 65 70 6f 72 74 20 63 6f 6d 6d 61 6e 64 20 from-minibuffer."Report.command.
3eb40 6c 69 6e 65 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 line:.".........................
3eb60 28 69 66 20 28 6e 75 6c 6c 20 72 65 70 6f 72 74 2d 63 6d 64 29 20 22 6c 65 64 67 65 72 20 22 20 (if.(null.report-cmd)."ledger.".
3eb80 72 65 70 6f 72 74 2d 63 6d 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 report-cmd).....................
3eba0 20 20 20 20 6e 69 6c 20 6e 69 6c 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 2d 70 ....nil.nil.'ledger-report-cmd-p
3ebc0 72 6f 6d 70 74 2d 68 69 73 74 6f 72 79 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 rompt-history))..(defun.ledger-r
3ebe0 65 70 6f 72 74 2d 6c 65 64 67 65 72 2d 66 69 6c 65 2d 66 6f 72 6d 61 74 2d 73 70 65 63 69 66 69 eport-ledger-file-format-specifi
3ec00 65 72 20 28 29 0a 20 20 22 53 75 62 73 74 69 74 75 74 65 20 74 68 65 20 66 75 6c 6c 20 70 61 74 er.()..."Substitute.the.full.pat
3ec20 68 20 74 6f 20 6d 61 73 74 65 72 20 6f 72 20 63 75 72 72 65 6e 74 20 6c 65 64 67 65 72 20 66 69 h.to.master.or.current.ledger.fi
3ec40 6c 65 2e 0a 0a 54 68 65 20 6d 61 73 74 65 72 20 66 69 6c 65 20 6e 61 6d 65 20 69 73 20 64 65 74 le...The.master.file.name.is.det
3ec60 65 72 6d 69 6e 65 64 20 62 79 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 0a 60 6c 65 64 67 65 72 2d ermined.by.the.function.`ledger-
3ec80 6d 61 73 74 65 72 2d 66 69 6c 65 27 2c 20 77 68 69 63 68 20 64 65 70 65 6e 64 73 20 6f 6e 20 74 master-file',.which.depends.on.t
3eca0 68 65 20 76 61 72 69 61 62 6c 65 20 6f 66 20 74 68 65 20 73 61 6d 65 0a 6e 61 6d 65 2e 20 20 49 he.variable.of.the.same.name...I
3ecc0 66 20 69 74 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 69 74 20 69 73 20 75 73 65 64 2c 20 6f 74 68 f.it.is.non-nil,.it.is.used,.oth
3ece0 65 72 77 69 73 65 20 74 68 65 20 63 75 72 72 65 6e 74 0a 62 75 66 66 65 72 27 73 20 66 69 6c 65 erwise.the.current.buffer's.file
3ed00 20 69 73 20 75 73 65 64 2e 22 0a 20 20 28 6c 65 64 67 65 72 2d 6d 61 73 74 65 72 2d 66 69 6c 65 .is.used."...(ledger-master-file
3ed20 29 29 0a 0a 3b 3b 20 47 65 6e 65 72 61 6c 20 68 65 6c 70 65 72 20 66 75 6e 63 74 69 6f 6e 73 0a ))..;;.General.helper.functions.
3ed40 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6d 61 73 74 65 72 2d 66 69 6c 65 20 28 29 0a 20 20 .(defun.ledger-master-file.()...
3ed60 22 52 65 74 75 72 6e 20 74 68 65 20 6d 61 73 74 65 72 20 66 69 6c 65 20 66 6f 72 20 61 20 6c 65 "Return.the.master.file.for.a.le
3ed80 64 67 65 72 20 66 69 6c 65 2e 0a 0a 54 68 65 20 6d 61 73 74 65 72 20 66 69 6c 65 20 69 73 20 65 dger.file...The.master.file.is.e
3eda0 69 74 68 65 72 20 74 68 65 20 66 69 6c 65 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 6c ither.the.file.for.the.current.l
3edc0 65 64 67 65 72 20 62 75 66 66 65 72 0a 6f 72 20 74 68 65 20 66 69 6c 65 20 73 70 65 63 69 66 69 edger.buffer.or.the.file.specifi
3ede0 65 64 20 62 79 20 74 68 65 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 0a ed.by.the.buffer-local.variable.
3ee00 60 6c 65 64 67 65 72 2d 6d 61 73 74 65 72 2d 66 69 6c 65 27 2e 20 20 54 79 70 69 63 61 6c 6c 79 `ledger-master-file'...Typically
3ee20 20 74 68 69 73 20 76 61 72 69 61 62 6c 65 20 77 6f 75 6c 64 20 62 65 20 73 65 74 20 69 6e 20 61 .this.variable.would.be.set.in.a
3ee40 0a 66 69 6c 65 20 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 20 63 6f 6d 6d 65 6e 74 20 62 6c 6f .file.local.variable.comment.blo
3ee60 63 6b 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20 61 20 6c 65 64 67 65 72 20 66 69 6c 65 0a 77 ck.at.the.end.of.a.ledger.file.w
3ee80 68 69 63 68 20 69 73 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 73 6f 6d 65 20 6f 74 68 65 72 20 66 hich.is.included.in.some.other.f
3eea0 69 6c 65 2e 22 0a 20 20 28 69 66 20 6c 65 64 67 65 72 2d 6d 61 73 74 65 72 2d 66 69 6c 65 0a 20 ile."...(if.ledger-master-file..
3eec0 20 20 20 20 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 6c 65 64 67 65 72 2d 6d 61 .....(expand-file-name.ledger-ma
3eee0 73 74 65 72 2d 66 69 6c 65 29 0a 20 20 20 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 ster-file).....(buffer-file-name
3ef00 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 70 61 79 65 65 2d )))..(defun.ledger-report-payee-
3ef20 66 6f 72 6d 61 74 2d 73 70 65 63 69 66 69 65 72 20 28 29 0a 20 20 22 53 75 62 73 74 69 74 75 74 format-specifier.()..."Substitut
3ef40 65 20 61 20 70 61 79 65 65 20 6e 61 6d 65 2e 0a 0a 54 68 65 20 75 73 65 72 20 69 73 20 70 72 6f e.a.payee.name...The.user.is.pro
3ef60 6d 70 74 65 64 20 74 6f 20 65 6e 74 65 72 20 61 20 70 61 79 65 65 20 61 6e 64 20 74 68 61 74 20 mpted.to.enter.a.payee.and.that.
3ef80 69 73 20 73 75 62 73 74 69 74 75 74 65 64 2e 0a 49 66 20 70 6f 69 6e 74 20 69 73 20 69 6e 20 61 is.substituted..If.point.is.in.a
3efa0 6e 20 78 61 63 74 2c 20 74 68 65 20 70 61 79 65 65 20 66 6f 72 20 74 68 61 74 20 78 61 63 74 20 n.xact,.the.payee.for.that.xact.
3efc0 69 73 20 75 73 65 64 20 61 73 20 74 68 65 0a 64 65 66 61 75 6c 74 2e 22 0a 20 20 3b 3b 20 49 74 is.used.as.the.default."...;;.It
3efe0 20 69 73 20 69 6e 74 65 6e 64 65 64 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 73 68 6f 75 6c 64 20 62 .is.intended.completion.should.b
3f000 65 20 61 76 61 69 6c 61 62 6c 65 20 6f 6e 20 65 78 69 73 74 69 6e 67 0a 20 20 3b 3b 20 70 61 79 e.available.on.existing...;;.pay
3f020 65 65 73 2c 20 62 75 74 20 74 68 65 20 6c 69 73 74 20 6f 66 20 70 6f 73 73 69 62 6c 65 20 63 6f ees,.but.the.list.of.possible.co
3f040 6d 70 6c 65 74 69 6f 6e 73 20 6e 65 65 64 73 20 74 6f 20 62 65 0a 20 20 3b 3b 20 64 65 76 65 6c mpletions.needs.to.be...;;.devel
3f060 6f 70 65 64 20 74 6f 20 61 6c 6c 6f 77 20 74 68 69 73 2e 0a 20 20 28 69 66 2d 6c 65 74 20 28 28 oped.to.allow.this....(if-let.((
3f080 70 61 79 65 65 20 28 6c 65 64 67 65 72 2d 78 61 63 74 2d 70 61 79 65 65 29 29 29 0a 20 20 20 20 payee.(ledger-xact-payee))).....
3f0a0 20 20 28 6c 65 64 67 65 72 2d 72 65 61 64 2d 73 74 72 69 6e 67 2d 77 69 74 68 2d 64 65 66 61 75 ..(ledger-read-string-with-defau
3f0c0 6c 74 20 22 50 61 79 65 65 22 20 28 72 65 67 65 78 70 2d 71 75 6f 74 65 20 70 61 79 65 65 29 29 lt."Payee".(regexp-quote.payee))
3f0e0 0a 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 61 64 2d 73 74 72 69 6e 67 2d 77 69 74 68 2d 64 65 .....(ledger-read-string-with-de
3f100 66 61 75 6c 74 20 22 50 61 79 65 65 22 20 6e 69 6c 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 fault."Payee".nil)))..(defun.led
3f120 67 65 72 2d 72 65 70 6f 72 74 2d 61 63 63 6f 75 6e 74 2d 66 6f 72 6d 61 74 2d 73 70 65 63 69 66 ger-report-account-format-specif
3f140 69 65 72 20 28 29 0a 20 20 22 53 75 62 73 74 69 74 75 74 65 20 61 6e 20 61 63 63 6f 75 6e 74 20 ier.()..."Substitute.an.account.
3f160 6e 61 6d 65 2e 0a 0a 54 68 65 20 75 73 65 72 20 69 73 20 70 72 6f 6d 70 74 65 64 20 74 6f 20 65 name...The.user.is.prompted.to.e
3f180 6e 74 65 72 20 61 6e 20 61 63 63 6f 75 6e 74 20 6e 61 6d 65 2c 20 77 68 69 63 68 20 63 61 6e 20 nter.an.account.name,.which.can.
3f1a0 62 65 20 61 6e 79 0a 72 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 69 6f 6e 20 69 64 65 6e 74 69 be.any.regular.expression.identi
3f1c0 66 79 69 6e 67 20 61 6e 20 61 63 63 6f 75 6e 74 2e 20 20 49 66 20 70 6f 69 6e 74 20 69 73 20 6f fying.an.account...If.point.is.o
3f1e0 6e 20 61 6e 0a 61 63 63 6f 75 6e 74 20 70 6f 73 74 69 6e 67 20 6c 69 6e 65 20 66 6f 72 20 61 6e n.an.account.posting.line.for.an
3f200 20 78 61 63 74 2c 20 74 68 65 20 66 75 6c 6c 20 61 63 63 6f 75 6e 74 20 6e 61 6d 65 20 6f 6e 20 .xact,.the.full.account.name.on.
3f220 74 68 61 74 0a 6c 69 6e 65 20 69 73 20 74 68 65 20 64 65 66 61 75 6c 74 2e 22 0a 20 20 28 6c 65 that.line.is.the.default."...(le
3f240 64 67 65 72 2d 72 65 61 64 2d 61 63 63 6f 75 6e 74 2d 77 69 74 68 2d 70 72 6f 6d 70 74 20 22 41 dger-read-account-with-prompt."A
3f260 63 63 6f 75 6e 74 22 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d ccount"))..(defun.ledger-report-
3f280 2d 63 75 72 72 65 6e 74 2d 6d 6f 6e 74 68 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 63 75 72 72 -current-month.()..."Return.curr
3f2a0 65 6e 74 20 6d 6f 6e 74 68 20 61 73 20 28 59 45 41 52 20 2e 20 4d 4f 4e 54 48 2d 49 4e 44 45 58 ent.month.as.(YEAR...MONTH-INDEX
3f2c0 29 2e 0a 0a 4d 4f 4e 54 48 2d 49 4e 44 45 58 20 72 61 6e 67 65 73 20 66 72 6f 6d 20 31 20 28 4a )...MONTH-INDEX.ranges.from.1.(J
3f2e0 61 6e 75 61 72 79 29 20 74 6f 20 31 32 20 28 44 65 63 65 6d 62 65 72 29 20 61 6e 64 20 59 45 41 anuary).to.12.(December).and.YEA
3f300 52 20 69 73 0a 61 20 6e 75 6d 62 65 72 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 74 69 6d 65 2d 70 R.is.a.number."...(let*.((time-p
3f320 61 72 74 73 20 28 64 65 63 6f 64 65 2d 74 69 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 79 65 arts.(decode-time))..........(ye
3f340 61 72 20 28 6e 74 68 20 35 20 74 69 6d 65 2d 70 61 72 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 ar.(nth.5.time-parts))..........
3f360 28 6d 6f 6e 74 68 2d 69 6e 64 65 78 20 28 6e 74 68 20 34 20 74 69 6d 65 2d 70 61 72 74 73 29 29 (month-index.(nth.4.time-parts))
3f380 29 0a 20 20 20 20 28 63 6f 6e 73 20 79 65 61 72 20 6d 6f 6e 74 68 2d 69 6e 64 65 78 29 29 29 0a ).....(cons.year.month-index))).
3f3a0 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 6e 6f 72 6d 61 6c 69 7a 65 .(defun.ledger-report--normalize
3f3c0 2d 6d 6f 6e 74 68 20 28 6d 6f 6e 74 68 29 0a 20 20 22 52 65 74 75 72 6e 20 28 59 45 41 52 20 2e -month.(month)..."Return.(YEAR..
3f3e0 20 4e 45 57 2d 4d 4f 4e 54 48 29 20 77 68 65 72 65 20 4e 45 57 2d 4d 4f 4e 54 48 20 69 73 20 62 .NEW-MONTH).where.NEW-MONTH.is.b
3f400 65 74 77 65 65 6e 20 31 20 61 6e 64 20 31 32 2e 0a 0a 4d 4f 4e 54 48 20 69 73 20 6f 66 20 74 68 etween.1.and.12...MONTH.is.of.th
3f420 65 20 66 6f 72 6d 20 28 59 45 41 52 20 2e 20 49 4e 44 45 58 29 20 77 68 65 72 65 20 49 4e 44 45 e.form.(YEAR...INDEX).where.INDE
3f440 58 20 69 73 20 61 6e 20 69 6e 74 65 67 65 72 2e 0a 54 68 65 20 70 75 72 70 6f 73 65 20 6f 66 20 X.is.an.integer..The.purpose.of.
3f460 74 68 69 73 20 6d 65 74 68 6f 64 20 69 73 20 74 68 65 6e 20 74 6f 20 63 6f 6e 76 65 72 74 20 61 this.method.is.then.to.convert.a
3f480 6e 79 20 79 65 61 72 2f 6d 6f 6e 74 68 20 70 61 69 72 0a 74 6f 20 61 20 6d 65 61 6e 69 6e 67 66 ny.year/month.pair.to.a.meaningf
3f4a0 75 6c 20 64 61 74 65 2c 20 65 2e 67 2e 2c 20 66 72 6f 6d 20 28 32 30 31 38 20 2e 20 2d 32 29 20 ul.date,.e.g.,.from.(2018...-2).
3f4c0 74 6f 20 28 32 30 31 37 20 2e 20 31 30 29 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6d 6f 6e 74 68 to.(2017...10)."...(let*.((month
3f4e0 2d 69 6e 64 65 78 20 28 63 64 72 20 6d 6f 6e 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 28 79 65 -index.(cdr.month))..........(ye
3f500 61 72 2d 73 68 69 66 74 20 20 28 2f 20 28 31 2d 20 6d 6f 6e 74 68 2d 69 6e 64 65 78 29 20 31 32 ar-shift..(/.(1-.month-index).12
3f520 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 3c 3d 20 6d 6f 6e 74 68 2d 69 6e 64 65 78 20 30 29 ))).....(when.(<=.month-index.0)
3f540 0a 20 20 20 20 20 20 28 73 65 74 71 20 79 65 61 72 2d 73 68 69 66 74 20 28 31 2d 20 79 65 61 72 .......(setq.year-shift.(1-.year
3f560 2d 73 68 69 66 74 29 29 29 0a 20 20 20 20 28 63 6f 6e 73 20 28 2b 20 28 63 61 72 20 6d 6f 6e 74 -shift))).....(cons.(+.(car.mont
3f580 68 29 20 79 65 61 72 2d 73 68 69 66 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 31 2b 20 28 6d 6f h).year-shift)...........(1+.(mo
3f5a0 64 20 28 31 2d 20 6d 6f 6e 74 68 2d 69 6e 64 65 78 29 20 31 32 29 29 29 29 29 0a 0a 28 64 65 66 d.(1-.month-index).12)))))..(def
3f5c0 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 73 68 69 66 74 2d 6d 6f 6e 74 68 20 28 6d un.ledger-report--shift-month.(m
3f5e0 6f 6e 74 68 20 73 68 69 66 74 29 0a 20 20 22 52 65 74 75 72 6e 20 28 59 45 41 52 20 2e 20 4e 45 onth.shift)..."Return.(YEAR...NE
3f600 57 2d 4d 4f 4e 54 48 29 20 77 68 65 72 65 20 4e 45 57 2d 4d 4f 4e 54 48 20 69 73 20 4d 4f 4e 54 W-MONTH).where.NEW-MONTH.is.MONT
3f620 48 2b 53 48 49 46 54 2e 0a 0a 4d 4f 4e 54 48 20 69 73 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 28 H+SHIFT...MONTH.is.of.the.form.(
3f640 59 45 41 52 20 2e 20 49 4e 44 45 58 29 20 77 68 65 72 65 20 49 4e 44 45 58 20 72 61 6e 67 65 73 YEAR...INDEX).where.INDEX.ranges
3f660 20 66 72 6f 6d 0a 31 20 28 4a 61 6e 75 61 72 79 29 20 74 6f 20 31 32 20 28 44 65 63 65 6d 62 65 .from.1.(January).to.12.(Decembe
3f680 72 29 20 61 6e 64 20 59 45 41 52 20 69 73 20 61 20 6e 75 6d 62 65 72 2e 22 0a 20 20 28 6c 65 74 r).and.YEAR.is.a.number."...(let
3f6a0 2a 20 28 28 79 65 61 72 20 28 63 61 72 20 6d 6f 6e 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 28 *.((year.(car.month))..........(
3f6c0 6e 65 77 2d 6d 6f 6e 74 68 20 28 2b 20 28 63 64 72 20 6d 6f 6e 74 68 29 20 73 68 69 66 74 29 29 new-month.(+.(cdr.month).shift))
3f6e0 29 0a 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 6e 6f 72 6d 61 6c 69 7a 65 2d ).....(ledger-report--normalize-
3f700 6d 6f 6e 74 68 20 28 63 6f 6e 73 20 79 65 61 72 20 6e 65 77 2d 6d 6f 6e 74 68 29 29 29 29 0a 0a month.(cons.year.new-month))))..
3f720 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6d 6f 6e 74 68 2d 66 6f 72 6d 61 (defun.ledger-report-month-forma
3f740 74 2d 73 70 65 63 69 66 69 65 72 20 28 29 0a 20 20 22 53 75 62 73 74 69 74 75 74 65 20 63 75 72 t-specifier.()..."Substitute.cur
3f760 72 65 6e 74 20 6d 6f 6e 74 68 2e 22 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 rent.month."...(with-current-buf
3f780 66 65 72 20 28 6f 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 62 75 66 66 65 72 2d 6e 61 6d fer.(or.ledger-report-buffer-nam
3f7a0 65 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 e.(current-buffer)).....(let*.((
3f7c0 6d 6f 6e 74 68 20 28 6f 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 75 72 72 65 6e 74 2d month.(or.ledger-report-current-
3f7e0 6d 6f 6e 74 68 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 63 75 72 72 65 6e 74 2d 6d 6f month.(ledger-report--current-mo
3f800 6e 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 79 65 61 72 20 28 63 61 72 20 6d 6f 6e nth)))............(year.(car.mon
3f820 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 6f 6e 74 68 2d 69 6e 64 65 78 20 28 63 64 th))............(month-index.(cd
3f840 72 20 6d 6f 6e 74 68 29 29 29 0a 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 2d 25 73 22 r.month))).......(format."%s-%s"
3f860 20 79 65 61 72 20 6d 6f 6e 74 68 2d 69 6e 64 65 78 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 .year.month-index))))..(defun.le
3f880 64 67 65 72 2d 72 65 70 6f 72 74 2d 65 78 70 61 6e 64 2d 66 6f 72 6d 61 74 2d 73 70 65 63 69 66 dger-report-expand-format-specif
3f8a0 69 65 72 73 20 28 72 65 70 6f 72 74 2d 63 6d 64 29 0a 20 20 22 45 78 70 61 6e 64 20 66 6f 72 6d iers.(report-cmd)..."Expand.form
3f8c0 61 74 20 73 70 65 63 69 66 69 65 72 73 20 69 6e 20 52 45 50 4f 52 54 2d 43 4d 44 20 77 69 74 68 at.specifiers.in.REPORT-CMD.with
3f8e0 20 74 68 69 6e 67 20 75 6e 64 65 72 20 70 6f 69 6e 74 2e 22 0a 20 20 28 73 61 76 65 2d 6d 61 74 .thing.under.point."...(save-mat
3f900 63 68 2d 64 61 74 61 0a 20 20 20 20 28 6c 65 74 20 28 28 65 78 70 61 6e 64 65 64 2d 63 6d 64 20 ch-data.....(let.((expanded-cmd.
3f920 72 65 70 6f 72 74 2d 63 6d 64 29 29 0a 20 20 20 20 20 20 28 73 65 74 2d 6d 61 74 63 68 2d 64 61 report-cmd)).......(set-match-da
3f940 74 61 20 28 6c 69 73 74 20 30 20 30 29 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 73 74 72 ta.(list.0.0)).......(while.(str
3f960 69 6e 67 2d 6d 61 74 63 68 20 22 25 28 5c 5c 28 5b 5e 29 5d 2a 5c 5c 29 29 22 20 65 78 70 61 6e ing-match."%(\\([^)]*\\))".expan
3f980 64 65 64 2d 63 6d 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ded-cmd.........................
3f9a0 20 20 20 28 69 66 20 28 3e 20 28 6c 65 6e 67 74 68 20 65 78 70 61 6e 64 65 64 2d 63 6d 64 29 20 ...(if.(>.(length.expanded-cmd).
3f9c0 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (match-end.0))..................
3f9e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 0a 20 20 20 20 ..............(match-end.0).....
3fa00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 31 2d 20 28 6c 65 .........................(1-.(le
3fa20 6e 67 74 68 20 65 78 70 61 6e 64 65 64 2d 63 6d 64 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 6c ngth.expanded-cmd)))).........(l
3fa40 65 74 2a 20 28 28 73 70 65 63 69 66 69 65 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 20 et*.((specifier.(match-string.1.
3fa60 65 78 70 61 6e 64 65 64 2d 63 6d 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 expanded-cmd))................(f
3fa80 20 28 63 64 72 20 28 61 73 73 6f 63 20 73 70 65 63 69 66 69 65 72 20 6c 65 64 67 65 72 2d 72 65 .(cdr.(assoc.specifier.ledger-re
3faa0 70 6f 72 74 2d 66 6f 72 6d 61 74 2d 73 70 65 63 69 66 69 65 72 73 29 29 29 29 0a 20 20 20 20 20 port-format-specifiers))))......
3fac0 20 20 20 20 20 28 69 66 20 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 .....(if.f...............(let*.(
3fae0 28 61 72 67 20 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 (arg.(save-match-data...........
3fb00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d ..................(with-current-
3fb20 62 75 66 66 65 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6c 65 64 67 65 72 2d 62 75 66 0a buffer.ledger-report-ledger-buf.
3fb40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 ..............................(f
3fb60 75 6e 63 61 6c 6c 20 66 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 uncall.f))))....................
3fb80 20 20 28 71 75 6f 74 65 64 20 28 69 66 20 28 6c 69 73 74 70 20 61 72 67 29 0a 20 20 20 20 20 20 ..(quoted.(if.(listp.arg).......
3fba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 ...........................(mapc
3fbc0 6f 6e 63 61 74 20 23 27 69 64 65 6e 74 69 74 79 20 61 72 67 20 22 20 22 29 0a 20 20 20 20 20 20 oncat.#'identity.arg.".").......
3fbe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 6d .........................(save-m
3fc00 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 atch-data.......................
3fc20 20 20 20 20 20 20 20 20 20 20 20 28 73 68 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 ...........(shell-quote-argument
3fc40 20 61 72 67 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 .arg))))).................(setq.
3fc60 65 78 70 61 6e 64 65 64 2d 63 6d 64 20 28 72 65 70 6c 61 63 65 2d 6d 61 74 63 68 20 71 75 6f 74 expanded-cmd.(replace-match.quot
3fc80 65 64 20 74 20 74 20 65 78 70 61 6e 64 65 64 2d 63 6d 64 29 29 29 29 29 29 0a 20 20 20 20 20 20 ed.t.t.expanded-cmd)))))).......
3fca0 65 78 70 61 6e 64 65 64 2d 63 6d 64 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 expanded-cmd)))..(defun.ledger-r
3fcc0 65 70 6f 72 74 2d 2d 63 6d 64 2d 6e 65 65 64 73 2d 6c 69 6e 6b 73 2d 70 20 28 63 6d 64 29 0a 20 eport--cmd-needs-links-p.(cmd)..
3fce0 20 22 43 68 65 63 6b 20 6c 69 6e 6b 73 20 73 68 6f 75 6c 64 20 62 65 20 61 64 64 65 64 20 74 6f ."Check.links.should.be.added.to
3fd00 20 74 68 65 20 72 65 70 6f 72 74 20 70 72 6f 64 75 63 65 64 20 62 79 20 43 4d 44 2e 22 0a 20 20 .the.report.produced.by.CMD."...
3fd20 3b 3b 20 2d 2d 73 75 62 74 6f 74 61 6c 20 72 65 70 6f 72 74 73 20 64 6f 20 6e 6f 74 20 70 72 6f ;;.--subtotal.reports.do.not.pro
3fd40 64 75 63 65 20 69 64 65 6e 74 69 66 69 61 62 6c 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 2c 20 duce.identifiable.transactions,.
3fd60 73 6f 0a 20 20 3b 3b 20 64 6f 6e 27 74 20 70 72 65 70 65 6e 64 20 6c 6f 63 61 74 69 6f 6e 20 69 so...;;.don't.prepend.location.i
3fd80 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 6f 72 20 74 68 65 6d 0a 20 20 28 61 6e 64 20 28 73 74 72 69 nformation.for.them...(and.(stri
3fda0 6e 67 2d 6d 61 74 63 68 20 22 5c 5c 3c 72 65 67 5c 5c 28 69 73 74 65 72 5c 5c 29 3f 5c 5c 3e 22 ng-match."\\<reg\\(ister\\)?\\>"
3fdc0 20 63 6d 64 29 0a 20 20 20 20 20 20 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6c 69 6e 6b 73 .cmd)........ledger-report-links
3fde0 2d 69 6e 2d 72 65 67 69 73 74 65 72 0a 20 20 20 20 20 20 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 -in-register........(not.(string
3fe00 2d 6d 61 74 63 68 20 22 2d 2d 73 75 62 74 6f 74 61 6c 22 20 63 6d 64 29 29 29 29 0a 0a 28 64 65 -match."--subtotal".cmd))))..(de
3fe20 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 63 6f 6d 70 75 74 65 2d 65 78 74 72 61 fun.ledger-report--compute-extra
3fe40 2d 61 72 67 73 20 28 72 65 70 6f 72 74 2d 63 6d 64 29 0a 20 20 22 43 6f 6d 70 75 74 65 20 65 78 -args.(report-cmd)..."Compute.ex
3fe60 74 72 61 20 61 72 67 73 20 74 6f 20 61 64 64 20 74 6f 20 52 45 50 4f 52 54 2d 43 4d 44 2e 22 0a tra.args.to.add.to.REPORT-CMD.".
3fe80 20 20 60 28 2c 40 28 77 68 65 6e 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 63 6d 64 2d ..`(,@(when.(ledger-report--cmd-
3fea0 6e 65 65 64 73 2d 6c 69 6e 6b 73 2d 70 20 72 65 70 6f 72 74 2d 63 6d 64 29 0a 20 20 20 20 20 20 needs-links-p.report-cmd).......
3fec0 20 20 27 28 22 2d 2d 70 72 65 70 65 6e 64 2d 66 6f 72 6d 61 74 3d 25 28 66 69 6c 65 6e 61 6d 65 ..'("--prepend-format=%(filename
3fee0 29 3a 25 28 62 65 67 5f 6c 69 6e 65 29 3a 22 29 29 0a 20 20 20 20 2c 40 28 77 68 65 6e 20 6c 65 ):%(beg_line):")).....,@(when.le
3ff00 64 67 65 72 2d 72 65 70 6f 72 74 2d 61 75 74 6f 2d 77 69 64 74 68 0a 20 20 20 20 20 20 20 20 60 dger-report-auto-width.........`
3ff20 28 22 2d 2d 63 6f 6c 75 6d 6e 73 22 20 2c 28 66 6f 72 6d 61 74 20 22 25 64 22 20 28 77 69 6e 64 ("--columns".,(format."%d".(wind
3ff40 6f 77 2d 6d 61 78 2d 63 68 61 72 73 2d 70 65 72 2d 6c 69 6e 65 29 29 29 29 0a 20 20 20 20 2c 40 ow-max-chars-per-line)))).....,@
3ff60 28 77 68 65 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 75 73 65 2d 6e 61 74 69 76 65 2d 68 (when.ledger-report-use-native-h
3ff80 69 67 68 6c 69 67 68 74 69 6e 67 0a 20 20 20 20 20 20 20 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 ighlighting.........ledger-repor
3ffa0 74 2d 6e 61 74 69 76 65 2d 68 69 67 68 6c 69 67 68 74 69 6e 67 2d 61 72 67 75 6d 65 6e 74 73 29 t-native-highlighting-arguments)
3ffc0 0a 20 20 20 20 2c 40 28 77 68 65 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 75 73 65 2d 73 .....,@(when.ledger-report-use-s
3ffe0 74 72 69 63 74 0a 20 20 20 20 20 20 20 20 27 28 22 2d 2d 73 74 72 69 63 74 22 29 29 29 29 0a 0a trict.........'("--strict"))))..
40000 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 20 28 72 65 70 6f 72 74 (defun.ledger-report-cmd.(report
40020 2d 6e 61 6d 65 20 65 64 69 74 29 0a 20 20 22 47 65 74 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 6c -name.edit)..."Get.the.command.l
40040 69 6e 65 20 74 6f 20 72 75 6e 20 74 68 65 20 72 65 70 6f 72 74 20 6e 61 6d 65 20 52 45 50 4f 52 ine.to.run.the.report.name.REPOR
40060 54 2d 4e 41 4d 45 2e 0a 4f 70 74 69 6f 6e 61 6c 6c 79 20 45 44 49 54 20 74 68 65 20 63 6f 6d 6d T-NAME..Optionally.EDIT.the.comm
40080 61 6e 64 2e 22 0a 20 20 28 6c 65 74 20 28 28 72 65 70 6f 72 74 2d 63 6d 64 20 28 63 61 72 20 28 and."...(let.((report-cmd.(car.(
400a0 63 64 72 20 28 61 73 73 6f 63 20 72 65 70 6f 72 74 2d 6e 61 6d 65 20 6c 65 64 67 65 72 2d 72 65 cdr.(assoc.report-name.ledger-re
400c0 70 6f 72 74 73 29 29 29 29 29 0a 20 20 20 20 3b 3b 20 6c 6f 67 69 63 20 66 6f 72 20 73 75 62 73 ports))))).....;;.logic.for.subs
400e0 74 69 74 75 74 69 6f 6e 20 67 6f 65 73 20 68 65 72 65 0a 20 20 20 20 28 77 68 65 6e 20 28 6f 72 titution.goes.here.....(when.(or
40100 20 28 6e 75 6c 6c 20 72 65 70 6f 72 74 2d 63 6d 64 29 20 65 64 69 74 29 0a 20 20 20 20 20 20 28 .(null.report-cmd).edit).......(
40120 73 65 74 71 20 72 65 70 6f 72 74 2d 63 6d 64 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 setq.report-cmd.(ledger-report-r
40140 65 61 64 2d 63 6f 6d 6d 61 6e 64 20 72 65 70 6f 72 74 2d 63 6d 64 29 29 0a 20 20 20 20 20 20 28 ead-command.report-cmd)).......(
40160 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 73 61 76 65 64 20 6e 69 6c 29 29 20 3b setq.ledger-report-saved.nil)).;
40180 3b 20 74 68 69 73 20 69 73 20 61 20 6e 65 77 20 72 65 70 6f 72 74 2c 20 6f 72 20 65 64 69 74 65 ;.this.is.a.new.report,.or.edite
401a0 64 20 72 65 70 6f 72 74 0a 20 20 20 20 28 73 65 74 71 20 72 65 70 6f 72 74 2d 63 6d 64 20 28 6c d.report.....(setq.report-cmd.(l
401c0 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 65 78 70 61 6e 64 2d 66 6f 72 6d 61 74 2d 73 70 65 63 69 edger-report-expand-format-speci
401e0 66 69 65 72 73 20 72 65 70 6f 72 74 2d 63 6d 64 29 29 0a 20 20 20 20 28 73 65 74 71 20 6c 65 64 fiers.report-cmd)).....(setq.led
40200 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 20 72 65 70 6f 72 74 2d 63 6d 64 29 0a 20 20 20 20 28 ger-report-cmd.report-cmd).....(
40220 6f 72 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 72 65 70 6f 72 74 2d 6e 61 6d 65 29 0a or.(string-empty-p.report-name).
40240 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 2d 65 78 69 73 ........(ledger-report-name-exis
40260 74 73 20 72 65 70 6f 72 74 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 ts.report-name).........(progn..
40280 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 2d 61 64 64 20 72 65 70 .........(ledger-reports-add.rep
402a0 6f 72 74 2d 6e 61 6d 65 20 72 65 70 6f 72 74 2d 63 6d 64 29 0a 20 20 20 20 20 20 20 20 20 20 28 ort-name.report-cmd)...........(
402c0 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 2d 63 75 73 74 6f 6d 2d 73 61 76 65 29 29 29 0a 20 20 ledger-reports-custom-save)))...
402e0 20 20 72 65 70 6f 72 74 2d 63 6d 64 29 29 0a 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 6f 6e 2d 74 ..report-cmd))..(define-button-t
40300 79 70 65 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 67 69 73 74 65 72 2d 65 6e 74 72 ype.'ledger-report-register-entr
40320 79 0a 20 20 27 66 6f 6c 6c 6f 77 2d 6c 69 6e 6b 20 74 0a 20 20 27 66 61 63 65 20 6e 69 6c 20 3b y...'follow-link.t...'face.nil.;
40340 3b 20 4f 74 68 65 72 77 69 73 65 20 6d 61 6b 65 2d 74 65 78 74 2d 62 75 74 74 6f 6e 20 72 65 70 ;.Otherwise.make-text-button.rep
40360 6c 61 63 65 73 20 4c 65 64 67 65 72 27 73 20 6e 61 74 69 76 65 20 68 69 67 68 6c 69 67 68 74 69 laces.Ledger's.native.highlighti
40380 6e 67 0a 20 20 27 61 63 74 69 6f 6e 20 28 6c 61 6d 62 64 61 20 28 5f 62 75 74 74 6f 6e 29 20 28 ng...'action.(lambda.(_button).(
403a0 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 76 69 73 69 74 2d 73 6f 75 72 63 65 29 29 29 0a 0a 28 ledger-report-visit-source)))..(
403c0 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 63 68 61 6e 67 65 2d 6d 6f 6e 74 defun.ledger-report--change-mont
403e0 68 20 28 73 68 69 66 74 29 0a 20 20 22 52 65 62 75 69 6c 64 20 72 65 70 6f 72 74 20 77 69 74 68 h.(shift)..."Rebuild.report.with
40400 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 66 72 6f 6d 20 63 75 72 72 65 6e 74 20 6d 6f 6e 74 68 .transactions.from.current.month
40420 20 2b 20 53 48 49 46 54 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 63 75 72 72 65 6e 74 2d 6d 6f 6e .+.SHIFT."...(let*.((current-mon
40440 74 68 20 28 6f 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 75 72 72 65 6e 74 2d 6d 6f 6e th.(or.ledger-report-current-mon
40460 74 68 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 63 75 72 72 65 6e 74 2d 6d 6f 6e 74 68 th.(ledger-report--current-month
40480 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 72 65 76 69 6f 75 73 2d 6d 6f 6e 74 68 20 28 6c 65 )))..........(previous-month.(le
404a0 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 73 68 69 66 74 2d 6d 6f 6e 74 68 20 63 75 72 72 65 6e 74 dger-report--shift-month.current
404c0 2d 6d 6f 6e 74 68 20 73 68 69 66 74 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 -month.shift))).....(setq.ledger
404e0 2d 72 65 70 6f 72 74 2d 63 75 72 72 65 6e 74 2d 6d 6f 6e 74 68 20 70 72 65 76 69 6f 75 73 2d 6d -report-current-month.previous-m
40500 6f 6e 74 68 29 0a 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 20 6c 65 64 onth).....(ledger-report-cmd.led
40520 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 20 6e 69 6c 29 0a 20 20 20 20 28 6c 65 64 67 65 72 ger-report-name.nil).....(ledger
40540 2d 72 65 70 6f 72 74 2d 72 65 64 6f 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 -report-redo)))..(defun.ledger-r
40560 65 70 6f 72 74 2d 2d 61 64 64 2d 6c 69 6e 6b 73 20 28 29 0a 20 20 22 52 65 70 6c 61 63 65 20 66 eport--add-links.()..."Replace.f
40580 69 6c 65 20 61 6e 64 20 6c 69 6e 65 20 61 6e 6e 6f 74 61 74 69 6f 6e 73 20 77 69 74 68 20 62 75 ile.and.line.annotations.with.bu
405a0 74 74 6f 6e 73 2e 22 0a 20 20 28 77 68 69 6c 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 ttons."...(while.(re-search-forw
405c0 61 72 64 20 22 5e 5c 5c 28 5c 5c 28 3f 3a 2f 5c 5c 7c 5b 61 2d 7a 41 2d 5a 5d 3a 5b 5c 5c 2f 5d ard."^\\(\\(?:/\\|[a-zA-Z]:[\\/]
405e0 5c 5c 29 5b 5e 3a 5d 2b 5c 5c 29 3f 3a 5c 5c 28 5b 30 2d 39 5d 2b 5c 5c 29 3f 3a 22 20 6e 69 6c \\)[^:]+\\)?:\\([0-9]+\\)?:".nil
40600 20 74 29 0a 20 20 20 20 28 6c 65 74 20 28 28 66 69 6c 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e .t).....(let.((file.(match-strin
40620 67 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 28 73 74 72 69 6e 67 2d 74 6f g.1))...........(line.(string-to
40640 2d 6e 75 6d 62 65 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32 29 29 29 29 0a 20 20 20 20 -number.(match-string.2)))).....
40660 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e ..(delete-region.(match-beginnin
40680 67 20 30 29 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 g.0).(match-end.0)).......(when.
406a0 28 61 6e 64 20 66 69 6c 65 20 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 28 61 64 64 2d 74 65 78 (and.file.line).........(add-tex
406c0 74 2d 70 72 6f 70 65 72 74 69 65 73 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 t-properties.(line-beginning-pos
406e0 69 74 69 6f 6e 29 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 0a 20 20 20 20 20 ition).(line-end-position)......
40700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 27 6c ........................(list.'l
40720 65 64 67 65 72 2d 73 6f 75 72 63 65 20 28 63 6f 6e 73 20 66 69 6c 65 20 6c 69 6e 65 29 29 29 0a edger-source.(cons.file.line))).
40740 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 74 65 78 74 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 ........(make-text-button.......
40760 20 20 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 20 28 6c 69 ...(line-beginning-position).(li
40780 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 27 74 79 70 65 20 ne-end-position)..........'type.
407a0 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 67 69 73 74 65 72 2d 65 6e 74 72 79 0a 20 20 'ledger-report-register-entry...
407c0 20 20 20 20 20 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 28 66 6f 72 6d 61 74 20 22 6d 6f 75 73 65 .......'help-echo.(format."mouse
407e0 2d 32 2c 20 52 45 54 3a 20 56 69 73 69 74 20 25 73 3a 25 64 22 20 66 69 6c 65 20 6c 69 6e 65 29 -2,.RET:.Visit.%s:%d".file.line)
40800 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 41 70 70 65 6e 64 69 6e 67 20 74 68 65 20 66 61 63 65 20 ).........;;.Appending.the.face.
40820 70 72 65 73 65 72 76 65 73 20 4c 65 64 67 65 72 27 73 20 6e 61 74 69 76 65 20 68 69 67 68 6c 69 preserves.Ledger's.native.highli
40840 67 68 74 69 6e 67 0a 20 20 20 20 20 20 20 20 28 66 6f 6e 74 2d 6c 6f 63 6b 2d 61 70 70 65 6e 64 ghting.........(font-lock-append
40860 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 -text-property.(line-beginning-p
40880 6f 73 69 74 69 6f 6e 29 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 0a 20 20 20 osition).(line-end-position)....
408a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
408c0 20 20 20 20 20 27 66 61 63 65 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 72 65 70 6f 72 74 2d 63 .....'face.'ledger-font-report-c
408e0 6c 69 63 6b 61 62 6c 65 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 28 65 6e 64 2d 6f 66 2d 6c lickable-face).........(end-of-l
40900 69 6e 65 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d ine)))))..(defun.ledger-report--
40920 63 6f 6d 70 75 74 65 2d 68 65 61 64 65 72 2d 6c 69 6e 65 20 28 63 6d 64 29 0a 20 20 22 43 61 6c compute-header-line.(cmd)..."Cal
40940 6c 20 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6e 27 l.`ledger-report-header-line-fn'
40960 20 77 69 74 68 20 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 27 20 62 6f 75 6e 64 20 .with.`ledger-report-cmd'.bound.
40980 74 6f 20 43 4d 44 2e 22 0a 20 20 28 6c 65 74 20 28 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d to.CMD."...(let.((ledger-report-
409a0 63 6d 64 20 63 6d 64 29 29 0a 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 6c 65 64 67 65 72 2d 72 65 cmd.cmd)).....(funcall.ledger-re
409c0 70 6f 72 74 2d 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6e 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c port-header-line-fn)))..(defun.l
409e0 65 64 67 65 72 2d 64 6f 2d 72 65 70 6f 72 74 20 28 63 6d 64 29 0a 20 20 22 52 75 6e 20 61 20 72 edger-do-report.(cmd)..."Run.a.r
40a00 65 70 6f 72 74 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 43 4d 44 2e 0a 43 4d 44 20 6d 61 79 20 eport.command.line.CMD..CMD.may.
40a20 63 6f 6e 74 61 69 6e 20 61 20 28 73 68 65 6c 6c 2d 71 75 6f 74 65 64 29 20 76 65 72 73 69 6f 6e contain.a.(shell-quoted).version
40a40 20 6f 66 0a 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 65 78 74 72 61 2d 61 72 67 73 2d 6d .of.`ledger-report--extra-args-m
40a60 61 72 6b 65 72 27 2c 20 77 68 69 63 68 20 77 69 6c 6c 20 62 65 20 72 65 70 6c 61 63 65 64 20 62 arker',.which.will.be.replaced.b
40a80 79 0a 61 72 67 75 6d 65 6e 74 73 20 72 65 74 75 72 6e 65 64 20 62 79 20 60 6c 65 64 67 65 72 2d y.arguments.returned.by.`ledger-
40aa0 72 65 70 6f 72 74 2d 2d 63 6f 6d 70 75 74 65 2d 65 78 74 72 61 2d 61 72 67 73 27 2e 22 0a 20 20 report--compute-extra-args'."...
40ac0 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 28 6c 65 74 2a 20 (goto-char.(point-min))...(let*.
40ae0 28 28 6d 61 72 6b 65 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 65 78 74 72 61 2d 61 72 ((marker.ledger-report--extra-ar
40b00 67 73 2d 6d 61 72 6b 65 72 29 0a 20 20 20 20 20 20 20 20 20 28 6d 61 72 6b 65 72 2d 72 65 20 28 gs-marker)..........(marker-re.(
40b20 63 6f 6e 63 61 74 20 22 20 2a 22 20 28 72 65 67 65 78 70 2d 71 75 6f 74 65 20 6d 61 72 6b 65 72 concat.".*".(regexp-quote.marker
40b40 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 61 72 67 73 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 )))..........(args.(ledger-repor
40b60 74 2d 2d 63 6f 6d 70 75 74 65 2d 65 78 74 72 61 2d 61 72 67 73 20 63 6d 64 29 29 0a 20 20 20 20 t--compute-extra-args.cmd)).....
40b80 20 20 20 20 20 28 61 72 67 73 2d 73 74 72 20 28 63 6f 6e 63 61 74 20 22 20 22 20 28 6d 61 70 63 .....(args-str.(concat.".".(mapc
40ba0 6f 6e 63 61 74 20 23 27 73 68 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 20 61 72 67 oncat.#'shell-quote-argument.arg
40bc0 73 20 22 20 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 6c 65 61 6e 2d 63 6d 64 20 28 72 65 s.".")))..........(clean-cmd.(re
40be0 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 20 6d 61 72 6b 65 72 2d 72 65 place-regexp-in-string.marker-re
40c00 20 22 22 20 63 6d 64 20 74 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 72 65 61 6c 2d 63 6d 64 ."".cmd.t.t))..........(real-cmd
40c20 20 28 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 20 6d 61 72 6b 65 .(replace-regexp-in-string.marke
40c40 72 2d 72 65 20 61 72 67 73 2d 73 74 72 20 63 6d 64 20 74 20 74 29 29 29 0a 20 20 20 20 28 73 65 r-re.args-str.cmd.t.t))).....(se
40c60 74 71 20 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 20 20 20 20 tq.header-line-format...........
40c80 28 61 6e 64 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 75 73 65 2d 68 65 61 64 65 72 2d 6c 69 (and.ledger-report-use-header-li
40ca0 6e 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 3a 65 76 61 6c 20 28 6c 65 64 67 65 ne................`(:eval.(ledge
40cc0 72 2d 72 65 70 6f 72 74 2d 2d 63 6f 6d 70 75 74 65 2d 68 65 61 64 65 72 2d 6c 69 6e 65 20 2c 63 r-report--compute-header-line.,c
40ce0 6c 65 61 6e 2d 63 6d 64 29 29 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 6c 65 64 67 65 72 2d lean-cmd)))).....(unless.ledger-
40d00 72 65 70 6f 72 74 2d 75 73 65 2d 68 65 61 64 65 72 2d 6c 69 6e 65 0a 20 20 20 20 20 20 28 69 6e report-use-header-line.......(in
40d20 73 65 72 74 20 28 66 6f 72 6d 61 74 20 22 52 65 70 6f 72 74 3a 20 25 73 5c 6e 22 20 6c 65 64 67 sert.(format."Report:.%s\n".ledg
40d40 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 er-report-name)...............(f
40d60 6f 72 6d 61 74 20 22 43 6f 6d 6d 61 6e 64 3a 20 25 73 5c 6e 22 20 63 6c 65 61 6e 2d 63 6d 64 29 ormat."Command:.%s\n".clean-cmd)
40d80 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 73 74 72 69 6e 67 20 28 2d 20 28 ...............(make-string.(-.(
40da0 77 69 6e 64 6f 77 2d 77 69 64 74 68 29 20 31 29 20 3f 3d 29 0a 20 20 20 20 20 20 20 20 20 20 20 window-width).1).?=)............
40dc0 20 20 20 22 5c 6e 5c 6e 22 29 29 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 72 65 70 6f 72 74 20 28 ..."\n\n")).....(let*.((report.(
40de0 73 68 65 6c 6c 2d 63 6f 6d 6d 61 6e 64 2d 74 6f 2d 73 74 72 69 6e 67 20 72 65 61 6c 2d 63 6d 64 shell-command-to-string.real-cmd
40e00 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 75 73 ))).......(when.ledger-report-us
40e20 65 2d 6e 61 74 69 76 65 2d 68 69 67 68 6c 69 67 68 74 69 6e 67 0a 20 20 20 20 20 20 20 20 28 73 e-native-highlighting.........(s
40e40 65 74 71 20 72 65 70 6f 72 74 20 28 61 6e 73 69 2d 63 6f 6c 6f 72 2d 61 70 70 6c 79 20 72 65 70 etq.report.(ansi-color-apply.rep
40e60 6f 72 74 29 29 29 0a 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 ort))).......(save-excursion....
40e80 20 20 20 20 20 28 69 6e 73 65 72 74 20 72 65 70 6f 72 74 29 29 0a 20 20 20 20 20 20 28 77 68 65 .....(insert.report)).......(whe
40ea0 6e 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 63 6d 64 2d 6e 65 65 64 73 2d 6c 69 6e 6b n.(ledger-report--cmd-needs-link
40ec0 73 2d 70 20 63 6d 64 29 0a 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e s-p.cmd).........(save-excursion
40ee0 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 61 64 64 2d 6c ...........(ledger-report--add-l
40f00 69 6e 6b 73 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 inks))))))..(defun.ledger-report
40f20 2d 76 69 73 69 74 2d 73 6f 75 72 63 65 20 28 29 0a 20 20 22 56 69 73 69 74 20 74 68 65 20 74 72 -visit-source.()..."Visit.the.tr
40f40 61 6e 73 61 63 74 69 6f 6e 20 75 6e 64 65 72 20 70 6f 69 6e 74 20 69 6e 20 74 68 65 20 72 65 70 ansaction.under.point.in.the.rep
40f60 6f 72 74 20 77 69 6e 64 6f 77 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 ort.window."...(interactive)...(
40f80 6c 65 74 2a 20 28 28 70 72 6f 70 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 let*.((prop.(get-text-property.(
40fa0 70 6f 69 6e 74 29 20 27 6c 65 64 67 65 72 2d 73 6f 75 72 63 65 29 29 0a 20 20 20 20 20 20 20 20 point).'ledger-source)).........
40fc0 20 28 66 69 6c 65 20 28 63 61 72 20 70 72 6f 70 29 29 0a 20 20 20 20 20 20 20 20 20 28 6c 69 6e .(file.(car.prop))..........(lin
40fe0 65 20 28 63 64 72 20 70 72 6f 70 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 66 69 e.(cdr.prop))).....(when.(and.fi
41000 6c 65 20 6c 69 6e 65 29 0a 20 20 20 20 20 20 28 66 69 6e 64 2d 66 69 6c 65 2d 6f 74 68 65 72 2d le.line).......(find-file-other-
41020 77 69 6e 64 6f 77 20 66 69 6c 65 29 0a 20 20 20 20 20 20 28 77 69 64 65 6e 29 0a 20 20 20 20 20 window.file).......(widen)......
41040 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 28 .(goto-char.(point-min)).......(
41060 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 28 31 2d 20 6c 69 6e 65 29 29 0a 20 20 20 20 20 20 28 6c forward-line.(1-.line)).......(l
41080 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 78 61 63 74 edger-navigate-beginning-of-xact
410a0 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 67 6f 74 6f 20 ))))..(defun.ledger-report-goto.
410c0 28 29 0a 20 20 22 47 6f 74 6f 20 74 68 65 20 6c 65 64 67 65 72 20 72 65 70 6f 72 74 20 62 75 66 ()..."Goto.the.ledger.report.buf
410e0 66 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 72 fer."...(interactive)...(let.((r
41100 62 75 66 20 28 67 65 74 2d 62 75 66 66 65 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 62 75 buf.(get-buffer.ledger-report-bu
41120 66 66 65 72 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 28 69 66 20 28 6e 6f 74 20 72 62 75 66 29 0a ffer-name))).....(if.(not.rbuf).
41140 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 54 68 65 72 65 20 69 73 20 6e 6f 20 6c 65 64 67 ........(error."There.is.no.ledg
41160 65 72 20 72 65 70 6f 72 74 20 62 75 66 66 65 72 22 29 29 0a 20 20 20 20 28 70 6f 70 2d 74 6f 2d er.report.buffer")).....(pop-to-
41180 62 75 66 66 65 72 20 72 62 75 66 29 0a 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d buffer.rbuf).....(ledger-report-
411a0 6d 61 79 62 65 2d 73 68 72 69 6e 6b 2d 77 69 6e 64 6f 77 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c maybe-shrink-window)))..(defun.l
411c0 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 64 6f 20 28 26 6f 70 74 69 6f 6e 61 6c 20 5f 69 67 edger-report-redo.(&optional._ig
411e0 6e 6f 72 65 2d 61 75 74 6f 20 5f 6e 6f 63 6f 6e 66 69 72 6d 29 0a 20 20 22 52 65 64 6f 20 74 68 nore-auto._noconfirm)..."Redo.th
41200 65 20 72 65 70 6f 72 74 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 6c 65 64 67 65 72 20 72 e.report.in.the.current.ledger.r
41220 65 70 6f 72 74 20 62 75 66 66 65 72 2e 0a 49 47 4e 4f 52 45 2d 41 55 54 4f 20 61 6e 64 20 4e 4f eport.buffer..IGNORE-AUTO.and.NO
41240 43 4f 4e 46 49 52 4d 20 61 72 65 20 66 6f 72 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69 CONFIRM.are.for.compatibility.wi
41260 74 68 0a 60 72 65 76 65 72 74 2d 62 75 66 66 65 72 2d 66 75 6e 63 74 69 6f 6e 27 20 61 6e 64 20 th.`revert-buffer-function'.and.
41280 61 72 65 20 63 75 72 72 65 6e 74 6c 79 20 69 67 6e 6f 72 65 64 2e 22 0a 20 20 28 69 6e 74 65 72 are.currently.ignored."...(inter
412a0 61 63 74 69 76 65 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 6f 72 20 28 64 65 72 69 76 65 64 2d 6d active)...(unless.(or.(derived-m
412c0 6f 64 65 2d 70 20 27 6c 65 64 67 65 72 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ode-p.'ledger-mode).............
412e0 20 20 28 64 65 72 69 76 65 64 2d 6d 6f 64 65 2d 70 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 ..(derived-mode-p.'ledger-report
41300 2d 6d 6f 64 65 29 29 0a 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 74 20 69 6e 20 -mode)).....(user-error."Not.in.
41320 61 20 6c 65 64 67 65 72 2d 6d 6f 64 65 20 6f 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6d a.ledger-mode.or.ledger-report-m
41340 6f 64 65 20 62 75 66 66 65 72 22 29 29 0a 20 20 28 6c 65 74 20 28 28 63 75 72 2d 62 75 66 20 28 ode.buffer"))...(let.((cur-buf.(
41360 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 current-buffer))).....(when.(and
41380 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 61 75 74 6f 2d 72 65 66 72 65 73 68 0a 20 20 20 20 .ledger-report-auto-refresh.....
413a0 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 62 75 66 66 65 72 20 6c 65 64 67 65 72 2d 72 65 ...........(get-buffer.ledger-re
413c0 70 6f 72 74 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 28 70 6f 70 2d 74 6f port-buffer-name)).......(pop-to
413e0 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 -buffer.(get-buffer.ledger-repor
41400 74 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 t-buffer-name)).......(ledger-re
41420 70 6f 72 74 2d 6d 61 79 62 65 2d 73 68 72 69 6e 6b 2d 77 69 6e 64 6f 77 29 0a 20 20 20 20 20 20 port-maybe-shrink-window).......
41440 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 75 72 73 6f 72 2d 6c 69 6e 65 2d (setq.ledger-report-cursor-line-
41460 6e 75 6d 62 65 72 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 29 29 0a 20 20 20 number.(line-number-at-pos))....
41480 20 20 20 28 77 69 74 68 2d 73 69 6c 65 6e 74 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 0a 20 20 ...(with-silent-modifications...
414a0 20 20 20 20 20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 28 6c 65 ......(erase-buffer).........(le
414c0 64 67 65 72 2d 64 6f 2d 72 65 70 6f 72 74 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 dger-do-report.ledger-report-cmd
414e0 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 69 73 ).........(when.ledger-report-is
41500 2d 72 65 76 65 72 73 65 64 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f -reversed...........(ledger-repo
41520 72 74 2d 72 65 76 65 72 73 65 2d 6c 69 6e 65 73 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e rt-reverse-lines)).........(when
41540 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 61 75 74 6f 2d 72 65 66 72 65 73 68 2d 73 74 69 63 .ledger-report-auto-refresh-stic
41560 6b 79 2d 63 75 72 73 6f 72 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e ky-cursor...........(forward-lin
41580 65 20 28 2d 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 75 72 73 6f 72 2d 6c 69 6e 65 2d 6e e.(-.ledger-report-cursor-line-n
415a0 75 6d 62 65 72 20 35 29 29 29 29 0a 20 20 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 6c 65 umber.5)))).......(run-hooks.'le
415c0 64 67 65 72 2d 72 65 70 6f 72 74 2d 61 66 74 65 72 2d 72 65 70 6f 72 74 2d 68 6f 6f 6b 29 0a 20 dger-report-after-report-hook)..
415e0 20 20 20 20 20 28 70 6f 70 2d 74 6f 2d 62 75 66 66 65 72 20 63 75 72 2d 62 75 66 29 29 29 29 0a .....(pop-to-buffer.cur-buf)))).
41600 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 71 75 69 74 20 28 29 0a 20 20 .(defun.ledger-report-quit.()...
41620 22 51 75 69 74 20 74 68 65 20 6c 65 64 67 65 72 20 72 65 70 6f 72 74 20 62 75 66 66 65 72 20 61 "Quit.the.ledger.report.buffer.a
41640 6e 64 20 6b 69 6c 6c 20 69 74 73 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 nd.kill.its.buffer."...(interact
41660 69 76 65 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 28 67 ive)...(unless.(buffer-live-p.(g
41680 65 74 2d 62 75 66 66 65 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 62 75 66 66 65 72 2d 6e et-buffer.ledger-report-buffer-n
416a0 61 6d 65 29 29 0a 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 20 6c 65 64 67 65 72 ame)).....(user-error."No.ledger
416c0 20 72 65 70 6f 72 74 20 62 75 66 66 65 72 22 29 29 0a 20 20 28 71 75 69 74 2d 77 69 6e 64 6f 77 .report.buffer"))...(quit-window
416e0 73 2d 6f 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 62 75 66 66 65 72 2d 6e 61 6d 65 20 27 s-on.ledger-report-buffer-name.'
41700 6b 69 6c 6c 29 29 0a 0a 28 64 65 66 69 6e 65 2d 6f 62 73 6f 6c 65 74 65 2d 66 75 6e 63 74 69 6f kill))..(define-obsolete-functio
41720 6e 2d 61 6c 69 61 73 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6b 69 6c 6c 20 23 27 6c 65 n-alias.'ledger-report-kill.#'le
41740 64 67 65 72 2d 72 65 70 6f 72 74 2d 71 75 69 74 20 22 32 30 31 38 2d 30 33 2d 31 38 22 29 0a 0a dger-report-quit."2018-03-18")..
41760 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 65 64 69 74 2d 72 65 70 6f 72 74 (defun.ledger-report-edit-report
41780 73 20 28 29 0a 20 20 22 45 64 69 74 20 74 68 65 20 64 65 66 69 6e 65 64 20 6c 65 64 67 65 72 20 s.()..."Edit.the.defined.ledger.
417a0 72 65 70 6f 72 74 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 63 75 73 reports."...(interactive)...(cus
417c0 74 6f 6d 69 7a 65 2d 76 61 72 69 61 62 6c 65 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 29 tomize-variable.'ledger-reports)
417e0 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 65 64 69 74 2d 72 65 70 )..(defun.ledger-report-edit-rep
41800 6f 72 74 20 28 29 0a 20 20 22 45 64 69 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 72 65 70 6f 72 ort.()..."Edit.the.current.repor
41820 74 20 63 6f 6d 6d 61 6e 64 20 69 6e 20 74 68 65 20 6d 69 6e 69 20 62 75 66 66 65 72 20 61 6e 64 t.command.in.the.mini.buffer.and
41840 20 72 65 2d 72 75 6e 20 74 68 65 20 72 65 70 6f 72 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 .re-run.the.report."...(interact
41860 69 76 65 29 0a 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 20 28 ive)...(setq.ledger-report-cmd.(
41880 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 61 64 2d 63 6f 6d 6d 61 6e 64 20 6c 65 64 67 65 ledger-report-read-command.ledge
418a0 72 2d 72 65 70 6f 72 74 2d 63 6d 64 29 29 0a 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d r-report-cmd))...(ledger-report-
418c0 72 65 64 6f 29 29 0a 0a 28 64 65 66 69 6e 65 2d 6f 62 73 6f 6c 65 74 65 2d 66 75 6e 63 74 69 6f redo))..(define-obsolete-functio
418e0 6e 2d 61 6c 69 61 73 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 73 65 6c 65 63 74 2d 72 65 n-alias.'ledger-report-select-re
41900 70 6f 72 74 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 20 22 6c 65 64 67 65 72 20 34 2e 30 port.#'ledger-report."ledger.4.0
41920 2e 30 22 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 61 64 2d .0")..(defun.ledger-report-read-
41940 6e 65 77 2d 6e 61 6d 65 20 28 29 0a 20 20 22 52 65 61 64 20 74 68 65 20 6e 61 6d 65 20 66 6f 72 new-name.()..."Read.the.name.for
41960 20 61 20 6e 65 77 20 72 65 70 6f 72 74 20 66 72 6f 6d 20 74 68 65 20 6d 69 6e 69 62 75 66 66 65 .a.new.report.from.the.minibuffe
41980 72 2e 22 0a 20 20 28 6c 65 74 20 28 28 6e 61 6d 65 20 22 22 29 29 0a 20 20 20 20 28 77 68 69 6c r."...(let.((name."")).....(whil
419a0 65 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 28 73 e.(string-empty-p.name).......(s
419c0 65 74 71 20 6e 61 6d 65 20 28 72 65 61 64 2d 66 72 6f 6d 2d 6d 69 6e 69 62 75 66 66 65 72 20 22 etq.name.(read-from-minibuffer."
419e0 52 65 70 6f 72 74 20 6e 61 6d 65 3a 20 22 20 6e 69 6c 20 6e 69 6c 20 6e 69 6c 0a 20 20 20 20 20 Report.name:.".nil.nil.nil......
41a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
41a20 20 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 2d 70 72 6f 6d 70 74 2d 68 69 73 ..'ledger-report-name-prompt-his
41a40 74 6f 72 79 29 29 29 0a 20 20 20 20 6e 61 6d 65 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 tory))).....name))..(defun.ledge
41a60 72 2d 72 65 70 6f 72 74 2d 73 61 76 65 20 28 29 0a 20 20 22 53 61 76 65 20 74 68 65 20 63 75 72 r-report-save.()..."Save.the.cur
41a80 72 65 6e 74 20 72 65 70 6f 72 74 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 61 73 20 61 20 6e 61 rent.report.command.line.as.a.na
41aa0 6d 65 64 20 72 65 70 6f 72 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 med.report."...(interactive)...(
41ac0 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 67 6f 74 6f 29 0a 20 20 28 77 68 65 6e 20 28 73 74 72 ledger-report-goto)...(when.(str
41ae0 69 6e 67 2d 65 6d 70 74 79 2d 70 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 29 0a ing-empty-p.ledger-report-name).
41b00 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 20 28 6c 65 ....(setq.ledger-report-name.(le
41b20 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 61 64 2d 6e 65 77 2d 6e 61 6d 65 29 29 29 0a 0a 20 20 dger-report-read-new-name)))....
41b40 28 77 68 65 6e 2d 6c 65 74 20 28 28 65 78 69 73 74 69 6e 67 2d 6e 61 6d 65 20 28 6c 65 64 67 65 (when-let.((existing-name.(ledge
41b60 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 2d 65 78 69 73 74 73 20 6c 65 64 67 65 72 2d 72 65 70 6f r-report-name-exists.ledger-repo
41b80 72 74 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 79 2d 6f 72 2d 6e 2d 70 20 rt-name))).....(cond.((y-or-n-p.
41ba0 28 66 6f 72 6d 61 74 20 22 4f 76 65 72 77 72 69 74 65 20 65 78 69 73 74 69 6e 67 20 72 65 70 6f (format."Overwrite.existing.repo
41bc0 72 74 20 6e 61 6d 65 64 20 27 25 73 27 3f 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rt.named.'%s'?."................
41be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 ..............ledger-report-name
41c00 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 65 71 75 61 6c 0a ))............(if.(string-equal.
41c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d ................ledger-report-cm
41c40 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 28 63 64 72 20 28 61 73 73 d.................(car.(cdr.(ass
41c60 71 20 65 78 69 73 74 69 6e 67 2d 6e 61 6d 65 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 29 29 q.existing-name.ledger-reports))
41c80 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 4e 6f 74 68 ))................(message."Noth
41ca0 69 6e 67 20 74 6f 20 73 61 76 65 2e 20 43 75 72 72 65 6e 74 20 63 6f 6d 6d 61 6e 64 20 69 73 20 ing.to.save..Current.command.is.
41cc0 69 64 65 6e 74 69 63 61 6c 20 74 6f 20 65 78 69 73 74 69 6e 67 20 73 61 76 65 64 20 6f 6e 65 22 identical.to.existing.saved.one"
41ce0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 70 6f )..............(setq.ledger-repo
41d00 72 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 73 73 71 2d 64 65 6c rts....................(assq-del
41d20 65 74 65 2d 61 6c 6c 20 65 78 69 73 74 69 6e 67 2d 6e 61 6d 65 20 6c 65 64 67 65 72 2d 72 65 70 ete-all.existing-name.ledger-rep
41d40 6f 72 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f orts))..............(ledger-repo
41d60 72 74 73 2d 61 64 64 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 20 6c 65 64 67 65 rts-add.ledger-report-name.ledge
41d80 72 2d 72 65 70 6f 72 74 2d 63 6d 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 r-report-cmd)..............(ledg
41da0 65 72 2d 72 65 70 6f 72 74 73 2d 63 75 73 74 6f 6d 2d 73 61 76 65 29 29 29 0a 20 20 20 20 20 20 er-reports-custom-save))).......
41dc0 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 ....(t............(setq.ledger-r
41de0 65 70 6f 72 74 2d 6e 61 6d 65 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 61 64 2d 6e eport-name.(ledger-report-read-n
41e00 65 77 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 70 ew-name))............(ledger-rep
41e20 6f 72 74 73 2d 61 64 64 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 20 6c 65 64 67 orts-add.ledger-report-name.ledg
41e40 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 er-report-cmd)............(ledge
41e60 72 2d 72 65 70 6f 72 74 73 2d 63 75 73 74 6f 6d 2d 73 61 76 65 29 29 29 29 29 0a 0a 28 64 65 66 r-reports-custom-save)))))..(def
41e80 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 70 72 65 76 69 6f 75 73 2d 6d 6f 6e 74 68 20 un.ledger-report-previous-month.
41ea0 28 29 0a 20 20 22 52 65 62 75 69 6c 64 20 72 65 70 6f 72 74 20 77 69 74 68 20 74 72 61 6e 73 61 ()..."Rebuild.report.with.transa
41ec0 63 74 69 6f 6e 73 20 66 72 6f 6d 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 6d 6f 6e 74 68 2e 22 ctions.from.the.previous.month."
41ee0 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 ...(interactive)...(ledger-repor
41f00 74 2d 2d 63 68 61 6e 67 65 2d 6d 6f 6e 74 68 20 2d 31 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 t--change-month.-1))..(defun.led
41f20 67 65 72 2d 72 65 70 6f 72 74 2d 6e 65 78 74 2d 6d 6f 6e 74 68 20 28 29 0a 20 20 22 52 65 62 75 ger-report-next-month.()..."Rebu
41f40 69 6c 64 20 72 65 70 6f 72 74 20 77 69 74 68 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 66 72 6f ild.report.with.transactions.fro
41f60 6d 20 74 68 65 20 6e 65 78 74 20 6d 6f 6e 74 68 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 m.the.next.month."...(interactiv
41f80 65 29 0a 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 63 68 61 6e 67 65 2d 6d 6f 6e 74 e)...(ledger-report--change-mont
41fa0 68 20 31 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 74 6f 67 67 h.1))..(defun.ledger-report-togg
41fc0 6c 65 2d 64 65 66 61 75 6c 74 2d 63 6f 6d 6d 6f 64 69 74 79 20 28 29 0a 20 20 22 54 6f 67 67 6c le-default-commodity.()..."Toggl
41fe0 65 20 65 78 63 68 61 6e 67 65 20 6f 66 20 72 65 70 6f 72 74 65 64 20 61 6d 6f 75 6e 74 73 20 74 e.exchange.of.reported.amounts.t
42000 6f 20 60 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 64 65 66 61 75 6c 74 2d 63 6f 6d 6d o.`ledger-reconcile-default-comm
42020 6f 64 69 74 79 27 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 75 6e 6c 65 odity'."...(interactive)...(unle
42040 73 73 20 28 64 65 72 69 76 65 64 2d 6d 6f 64 65 2d 70 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 ss.(derived-mode-p.'ledger-repor
42060 74 2d 6d 6f 64 65 29 0a 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 74 20 61 20 6c t-mode).....(user-error."Not.a.l
42080 65 64 67 65 72 20 72 65 70 6f 72 74 20 62 75 66 66 65 72 22 29 29 0a 20 20 28 73 61 76 65 2d 6d edger.report.buffer"))...(save-m
420a0 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 0a atch-data.....(if.(string-match.
420c0 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 72 78 20 28 6f 72 20 22 2d 2d 65 78 63 68 .........(concat.(rx.(or."--exch
420e0 61 6e 67 65 22 20 22 2d 58 22 29 20 28 31 2b 20 73 70 61 63 65 29 29 0a 20 20 20 20 20 20 20 20 ange"."-X").(1+.space)).........
42100 20 20 20 20 20 20 20 20 20 28 72 65 67 65 78 70 2d 71 75 6f 74 65 20 6c 65 64 67 65 72 2d 72 65 .........(regexp-quote.ledger-re
42120 63 6f 6e 63 69 6c 65 2d 64 65 66 61 75 6c 74 2d 63 6f 6d 6d 6f 64 69 74 79 29 29 0a 20 20 20 20 concile-default-commodity)).....
42140 20 20 20 20 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 29 0a 20 20 20 20 20 20 20 20 .....ledger-report-cmd).........
42160 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 20 28 72 65 70 6c 61 63 65 (setq.ledger-report-cmd.(replace
42180 2d 6d 61 74 63 68 20 22 22 20 6e 69 6c 20 6e 69 6c 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d -match."".nil.nil.ledger-report-
421a0 63 6d 64 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d cmd)).......(setq.ledger-report-
421c0 63 6d 64 20 28 63 6f 6e 63 61 74 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 0a 20 20 cmd.(concat.ledger-report-cmd...
421e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
42200 20 20 20 20 22 20 2d 2d 65 78 63 68 61 6e 67 65 20 22 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 ....".--exchange.".ledger-reconc
42220 69 6c 65 2d 64 65 66 61 75 6c 74 2d 63 6f 6d 6d 6f 64 69 74 79 29 29 29 29 0a 20 20 28 6c 65 64 ile-default-commodity))))...(led
42240 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 64 6f 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 6c 65 64 ger-report-redo))..(provide.'led
42260 67 65 72 2d 72 65 70 6f 72 74 29 0a 0a 3b 3b 3b 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2e 65 ger-report)..;;;.ledger-report.e
42280 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 l.ends.here.....................
422a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
422c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
422e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
423a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
423c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
423e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42400 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 33 32 36 2e 32 30 30 32 2f 6c 65 64 67 65 72 ledger-mode-20240326.2002/ledger
42420 2d 73 63 68 65 64 75 6c 65 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -schedule.el....................
42440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42460 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
42480 30 30 33 34 37 36 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 35 35 33 00 20 30 00 00 00 0034760.00000000000.016553..0...
424a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
424c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
424e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42500 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
42520 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
42540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
425a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
425c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
425e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42600 3b 3b 3b 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2e 65 6c 20 2d 2d 2d 20 48 65 6c 70 65 ;;;.ledger-schedule.el.---.Helpe
42620 72 20 63 6f 64 65 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 74 68 65 20 22 6c 65 64 67 65 72 22 r.code.for.use.with.the."ledger"
42640 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 74 6f 6f 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d .command-line.tool..-*-.lexical-
42660 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 binding:.t;.-*-..;;.Copyright.(C
42680 29 20 32 30 31 33 20 43 72 61 69 67 20 45 61 72 6c 73 20 28 65 6e 64 65 72 77 38 38 20 61 74 20 ).2013.Craig.Earls.(enderw88.at.
426a0 67 6d 61 69 6c 20 64 6f 74 20 63 6f 6d 29 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 gmail.dot.com)..;;.This.file.is.
426c0 6e 6f 74 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 54 68 69 73 20 not.part.of.GNU.Emacs...;;.This.
426e0 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 is.free.software;.you.can.redist
42700 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 0a 3b 3b 20 75 6e ribute.it.and/or.modify.it.;;.un
42720 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c der.the.terms.of.the.GNU.General
42740 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a .Public.License.as.published.by.
42760 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b ;;.the.Free.Software.Foundation;
42780 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 32 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f .either.version.2,.or.(at.your.o
427a0 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a ption).;;.any.later.version..;;.
427c0 3b 3b 20 54 68 69 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f ;;.This.is.distributed.in.the.ho
427e0 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 pe.that.it.will.be.useful,.but.W
42800 49 54 48 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 ITHOUT.;;.ANY.WARRANTY;.without.
42820 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 even.the.implied.warranty.of.MER
42840 43 48 41 4e 54 41 42 49 4c 49 54 59 0a 3b 3b 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 CHANTABILITY.;;.or.FITNESS.FOR.A
42860 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e .PARTICULAR.PURPOSE...See.the.GN
42880 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 0a 3b 3b 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 U.General.Public.;;.License.for.
428a0 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 more.details..;;.;;.You.should.h
428c0 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 ave.received.a.copy.of.the.GNU.G
428e0 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 eneral.Public.License.;;.along.w
42900 69 74 68 20 47 4e 55 20 45 6d 61 63 73 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 ith.GNU.Emacs;.see.the.file.COPY
42920 49 4e 47 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 ING...If.not,.write.to.the.;;.Fr
42940 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 ee.Software.Foundation,.Inc.,.51
42960 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 .Franklin.Street,.Fifth.Floor,.B
42980 6f 73 74 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 20 55 53 41 2e 0a 0a 3b 3b oston,.;;.MA.02110-1301.USA...;;
429a0 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 6d 6f 64 75 6c 65 20 ;.Commentary:.;;.;;.This.module.
429c0 70 72 6f 76 69 64 65 73 20 66 6f 72 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 61 64 64 69 6e provides.for.automatically.addin
429e0 67 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 74 6f 20 61 0a 3b 3b 20 6c 65 64 67 65 72 20 62 75 g.transactions.to.a.;;.ledger.bu
42a00 66 66 65 72 20 6f 6e 20 61 20 70 65 72 69 6f 64 69 63 20 62 61 73 69 73 2e 20 20 52 65 63 75 72 ffer.on.a.periodic.basis...Recur
42a20 72 65 6e 63 65 20 65 78 70 72 65 73 73 69 6f 6e 73 20 61 72 65 0a 3b 3b 20 69 6e 73 70 69 72 65 rence.expressions.are.;;.inspire
42a40 64 20 62 79 20 4d 61 72 74 69 6e 20 46 6f 77 6c 65 72 27 73 20 22 52 65 63 75 72 72 69 6e 67 20 d.by.Martin.Fowler's."Recurring.
42a60 45 76 65 6e 74 73 20 66 6f 72 20 43 61 6c 65 6e 64 61 72 73 22 2c 0a 3b 3b 20 6d 61 72 74 69 6e Events.for.Calendars",.;;.martin
42a80 66 6f 77 6c 65 72 2e 63 6f 6d 2f 61 70 73 75 70 70 2f 72 65 63 75 72 72 69 6e 67 2e 70 64 66 0a fowler.com/apsupp/recurring.pdf.
42aa0 0a 3b 3b 20 75 73 65 20 28 66 73 65 74 20 27 56 41 52 4e 41 4d 45 20 28 6d 61 63 72 6f 20 61 72 .;;.use.(fset.'VARNAME.(macro.ar
42ac0 67 73 29 29 20 74 6f 20 70 75 74 20 74 68 65 20 6d 61 63 72 6f 20 64 65 66 69 6e 69 74 69 6f 6e gs)).to.put.the.macro.definition
42ae0 20 69 6e 20 74 68 65 0a 3b 3b 20 66 75 6e 63 74 69 6f 6e 20 73 6c 6f 74 20 6f 66 20 74 68 65 20 .in.the.;;.function.slot.of.the.
42b00 73 79 6d 62 6f 6c 20 56 41 52 4e 41 4d 45 2e 20 20 54 68 65 6e 20 75 73 65 20 56 41 52 4e 41 4d symbol.VARNAME...Then.use.VARNAM
42b20 45 20 61 73 20 74 68 65 0a 3b 3b 20 66 75 6e 63 74 69 6f 6e 20 77 69 74 68 6f 75 74 20 68 61 76 E.as.the.;;.function.without.hav
42b40 65 20 74 6f 20 75 73 65 20 66 75 6e 63 61 6c 6c 2e 0a 0a 0a 28 72 65 71 75 69 72 65 20 27 6c 65 e.to.use.funcall....(require.'le
42b60 64 67 65 72 2d 69 6e 69 74 29 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 0a 0a 28 64 dger-init).(require.'cl-lib)..(d
42b80 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6c 65 64 67 65 72 2d 6d 6f 64 65 20 22 6c 65 64 eclare-function.ledger-mode."led
42ba0 67 65 72 2d 6d 6f 64 65 22 29 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 64 65 66 67 72 6f 75 70 20 ger-mode").;;;.Code:..(defgroup.
42bc0 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 20 6e 69 6c 0a 20 20 22 53 75 70 70 6f 72 74 20 66 ledger-schedule.nil..."Support.f
42be0 6f 72 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 72 65 63 6f 6d 6d 65 6e 64 61 74 69 6f 6e 20 or.automatically.recommendation.
42c00 74 72 61 6e 73 61 63 74 69 6f 6e 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 29 transactions."...:group.'ledger)
42c20 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 62 75 66 ..(defcustom.ledger-schedule-buf
42c40 66 65 72 2d 6e 61 6d 65 20 22 2a 4c 65 64 67 65 72 20 53 63 68 65 64 75 6c 65 2a 22 0a 20 20 22 fer-name."*Ledger.Schedule*"..."
42c60 4e 61 6d 65 20 66 6f 72 20 74 68 65 20 73 63 68 65 64 75 6c 65 20 62 75 66 66 65 72 2e 22 0a 20 Name.for.the.schedule.buffer."..
42c80 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d .:type.'string...:group.'ledger-
42ca0 73 63 68 65 64 75 6c 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 73 63 68 schedule)..(defcustom.ledger-sch
42cc0 65 64 75 6c 65 2d 6c 6f 6f 6b 2d 62 61 63 6b 77 61 72 64 20 37 0a 20 20 22 4e 75 6d 62 65 72 20 edule-look-backward.7..."Number.
42ce0 6f 66 20 64 61 79 73 20 74 6f 20 6c 6f 6f 6b 20 62 61 63 6b 20 69 6e 20 74 69 6d 65 20 66 6f 72 of.days.to.look.back.in.time.for
42d00 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 69 6e 74 65 67 65 72 .transactions."...:type.'integer
42d20 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 29 0a 0a 28 64 65 ...:group.'ledger-schedule)..(de
42d40 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 6c 6f 6f 6b 2d 66 6f 72 fcustom.ledger-schedule-look-for
42d60 77 61 72 64 20 31 34 0a 20 20 22 4e 75 6d 62 65 72 20 6f 66 20 64 61 79 73 20 61 75 74 6f 20 6c ward.14..."Number.of.days.auto.l
42d80 6f 6f 6b 20 66 6f 72 77 61 72 64 20 74 6f 20 72 65 63 6f 6d 6d 65 6e 64 20 74 72 61 6e 73 61 63 ook.forward.to.recommend.transac
42da0 74 69 6f 6e 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 69 6e 74 65 67 65 72 0a 20 20 3a 67 72 6f 75 tions."...:type.'integer...:grou
42dc0 70 20 27 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 p.'ledger-schedule)..(defcustom.
42de0 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 66 69 6c 65 20 22 7e 2f 6c 65 64 67 65 72 2d 73 ledger-schedule-file."~/ledger-s
42e00 63 68 65 64 75 6c 65 2e 6c 65 64 67 65 72 22 0a 20 20 22 46 69 6c 65 20 74 6f 20 66 69 6e 64 20 chedule.ledger"..."File.to.find.
42e20 73 63 68 65 64 75 6c 65 64 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 2e 22 0a 20 20 3a 74 79 70 65 scheduled.transactions."...:type
42e40 20 27 66 69 6c 65 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 .'file...:group.'ledger-schedule
42e60 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 77 65 )..(defcustom.ledger-schedule-we
42e80 65 6b 2d 64 61 79 73 20 27 28 28 22 4d 6f 22 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ek-days.'(("Mo".1)..............
42ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 54 75 22 20 ..........................("Tu".
42ec0 32 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2)..............................
42ee0 20 20 20 20 20 20 20 20 20 20 28 22 57 65 22 20 33 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..........("We".3)..............
42f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 54 68 22 20 ..........................("Th".
42f20 34 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4)..............................
42f40 20 20 20 20 20 20 20 20 20 20 28 22 46 72 22 20 35 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..........("Fr".5)..............
42f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 53 61 22 20 ..........................("Sa".
42f80 36 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6)..............................
42fa0 20 20 20 20 20 20 20 20 20 20 28 22 53 75 22 20 30 29 29 0a 20 20 22 4c 69 73 74 20 6f 66 20 77 ..........("Su".0))..."List.of.w
42fc0 65 65 6b 64 61 79 20 61 62 62 72 65 76 69 61 74 69 6f 6e 73 2e 0a 54 68 65 72 65 20 6d 75 73 74 eekday.abbreviations..There.must
42fe0 20 62 65 20 65 78 61 63 74 6c 79 20 73 65 76 65 6e 20 65 6e 74 72 69 65 73 20 65 61 63 68 20 77 .be.exactly.seven.entries.each.w
43000 69 74 68 20 61 20 74 77 6f 20 63 68 61 72 61 63 74 65 72 0a 61 62 62 72 65 76 69 61 74 69 6f 6e ith.a.two.character.abbreviation
43020 20 66 6f 72 20 61 20 64 61 79 20 61 6e 64 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 74 68 61 .for.a.day.and.the.number.of.tha
43040 74 20 64 61 79 20 69 6e 20 74 68 65 20 77 65 65 6b 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 61 6c t.day.in.the.week."...:type.'(al
43060 69 73 74 20 3a 76 61 6c 75 65 2d 74 79 70 65 20 28 67 72 6f 75 70 20 69 6e 74 65 67 65 72 29 29 ist.:value-type.(group.integer))
43080 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 29 0a 0a 28 64 65 ...:group.'ledger-schedule)..(de
430a0 66 73 75 62 73 74 20 6c 65 64 67 65 72 2d 62 65 74 77 65 65 6e 20 28 76 61 6c 20 6c 6f 77 20 68 fsubst.ledger-between.(val.low.h
430c0 69 67 68 29 0a 20 20 22 52 65 74 75 72 6e 20 54 52 55 45 20 69 66 20 56 41 4c 20 3e 3d 20 4c 4f igh)..."Return.TRUE.if.VAL.>=.LO
430e0 57 20 61 6e 64 20 3c 3d 20 48 49 47 48 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 6f 62 73 6f W.and.<=.HIGH."...(declare.(obso
43100 6c 65 74 65 20 3c 3d 20 22 4c 65 64 67 65 72 2d 6d 6f 64 65 20 76 34 2e 30 2e 31 22 29 29 0a 20 lete.<=."Ledger-mode.v4.0.1"))..
43120 20 28 3c 3d 20 6c 6f 77 20 76 61 6c 20 68 69 67 68 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 .(<=.low.val.high))..(defun.ledg
43140 65 72 2d 73 63 68 65 64 75 6c 65 2d 64 61 79 73 2d 69 6e 2d 6d 6f 6e 74 68 20 28 6d 6f 6e 74 68 er-schedule-days-in-month.(month
43160 20 79 65 61 72 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 75 6d 62 65 72 20 6f 66 20 64 61 79 73 20 .year)..."Return.number.of.days.
43180 69 6e 20 74 68 65 20 4d 4f 4e 54 48 2c 20 4d 4f 4e 54 48 20 69 73 20 66 72 6f 6d 20 31 20 74 6f in.the.MONTH,.MONTH.is.from.1.to
431a0 20 31 32 2e 0a 49 66 20 59 45 41 52 20 69 73 20 6e 69 6c 2c 20 61 73 73 75 6d 65 20 69 74 20 69 .12..If.YEAR.is.nil,.assume.it.i
431c0 73 20 6e 6f 74 20 61 20 6c 65 61 70 20 79 65 61 72 22 0a 20 20 28 69 66 20 28 3c 3d 20 31 20 6d s.not.a.leap.year"...(if.(<=.1.m
431e0 6f 6e 74 68 20 31 32 29 0a 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 79 65 61 72 20 28 64 61 onth.12).......(if.(and.year.(da
43200 74 65 2d 6c 65 61 70 2d 79 65 61 72 2d 70 20 79 65 61 72 29 20 28 3d 20 32 20 6d 6f 6e 74 68 29 te-leap-year-p.year).(=.2.month)
43220 29 0a 20 20 20 20 20 20 20 20 20 20 32 39 0a 20 20 20 20 20 20 20 20 28 6e 74 68 20 28 31 2d 20 )...........29.........(nth.(1-.
43240 6d 6f 6e 74 68 29 20 27 28 33 31 20 32 38 20 33 31 20 33 30 20 33 31 20 33 30 20 33 31 20 33 31 month).'(31.28.31.30.31.30.31.31
43260 20 33 30 20 33 31 20 33 30 20 33 31 29 29 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 4d 6f 6e 74 .30.31.30.31))).....(error."Mont
43280 68 20 6f 75 74 20 6f 66 20 72 61 6e 67 65 2c 20 4d 4f 4e 54 48 3d 25 53 22 20 6d 6f 6e 74 68 29 h.out.of.range,.MONTH=%S".month)
432a0 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 65 6e 63 6f 64 ))..(defun.ledger-schedule-encod
432c0 65 2d 64 61 79 2d 6f 66 2d 77 65 65 6b 20 28 64 61 79 2d 73 74 72 69 6e 67 29 0a 20 20 22 52 65 e-day-of-week.(day-string)..."Re
432e0 74 75 72 6e 20 74 68 65 20 6e 75 6d 65 72 69 63 61 6c 20 64 61 79 20 6f 66 20 77 65 65 6b 20 63 turn.the.numerical.day.of.week.c
43300 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 44 41 59 2d 53 54 52 49 4e 47 2e 22 0a 20 20 28 orresponding.to.DAY-STRING."...(
43320 63 61 64 72 20 28 61 73 73 6f 63 20 64 61 79 2d 73 74 72 69 6e 67 20 6c 65 64 67 65 72 2d 73 63 cadr.(assoc.day-string.ledger-sc
43340 68 65 64 75 6c 65 2d 77 65 65 6b 2d 64 61 79 73 29 29 29 0a 0a 3b 3b 20 4d 61 63 72 6f 73 20 74 hedule-week-days)))..;;.Macros.t
43360 6f 20 68 61 6e 64 6c 65 20 64 61 74 65 20 65 78 70 72 65 73 73 69 6f 6e 73 0a 0a 28 64 65 66 75 o.handle.date.expressions..(defu
43380 6e 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 63 6f 6e 73 74 72 61 69 6e 2d 64 61 79 2d n.ledger-schedule-constrain-day-
433a0 69 6e 2d 6d 6f 6e 74 68 20 28 63 6f 75 6e 74 20 64 61 79 2d 6f 66 2d 77 65 65 6b 29 0a 20 20 22 in-month.(count.day-of-week)..."
433c0 52 65 74 75 72 6e 20 61 20 66 6f 72 6d 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 54 52 55 45 20 Return.a.form.that.returns.TRUE.
433e0 66 6f 72 20 74 68 65 20 20 74 68 65 20 43 4f 55 4e 54 20 44 41 59 2d 4f 46 2d 57 45 45 4b 2e 0a for.the..the.COUNT.DAY-OF-WEEK..
43400 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 72 65 74 75 72 6e 20 74 72 75 65 20 69 66 20 64 61 74 65 For.example,.return.true.if.date
43420 20 69 73 20 74 68 65 20 33 72 64 20 54 68 75 72 73 64 61 79 20 6f 66 20 74 68 65 0a 6d 6f 6e 74 .is.the.3rd.Thursday.of.the.mont
43440 68 2e 20 20 4e 65 67 61 74 69 76 65 20 43 4f 55 4e 54 20 73 74 61 72 74 73 20 66 72 6f 6d 20 74 h...Negative.COUNT.starts.from.t
43460 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 6d 6f 6e 74 68 2e 20 28 45 51 0a 43 4f 55 4e 54 20 30 he.end.of.the.month..(EQ.COUNT.0
43480 29 20 6d 65 61 6e 73 20 45 56 45 52 59 20 64 61 79 2d 6f 66 2d 77 65 65 6b 20 28 65 67 2e 20 65 ).means.EVERY.day-of-week.(eg..e
434a0 76 65 72 79 20 53 61 74 75 72 64 61 79 29 22 0a 20 20 28 69 66 20 28 61 6e 64 20 28 3c 3d 20 2d very.Saturday)"...(if.(and.(<=.-
434c0 36 20 63 6f 75 6e 74 20 36 29 20 28 3c 3d 20 30 20 64 61 79 2d 6f 66 2d 77 65 65 6b 20 36 29 29 6.count.6).(<=.0.day-of-week.6))
434e0 0a 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 7a 65 72 6f 70 20 63 6f 75 6e 74 29 20 3b 3b 20 52 .......(cond.((zerop.count).;;.R
43500 65 74 75 72 6e 20 74 72 75 65 20 69 66 20 64 61 79 2d 6f 66 2d 77 65 65 6b 20 6d 61 74 63 68 65 eturn.true.if.day-of-week.matche
43520 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 65 71 20 28 6e 74 68 20 36 20 28 64 65 63 6f s..............`(eq.(nth.6.(deco
43540 64 65 2d 74 69 6d 65 20 64 61 74 65 29 29 20 2c 64 61 79 2d 6f 66 2d 77 65 65 6b 29 29 0a 20 20 de-time.date)).,day-of-week))...
43560 20 20 20 20 20 20 20 20 20 20 28 28 3e 20 63 6f 75 6e 74 20 30 29 20 3b 3b 20 50 6f 73 69 74 69 ..........((>.count.0).;;.Positi
43580 76 65 20 63 6f 75 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 64 65 63 ve.count..............(let.((dec
435a0 6f 64 65 64 20 28 63 6c 2d 67 65 6e 73 79 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 oded.(cl-gensym)))..............
435c0 20 20 60 28 6c 65 74 20 28 28 2c 64 65 63 6f 64 65 64 20 28 64 65 63 6f 64 65 2d 74 69 6d 65 20 ..`(let.((,decoded.(decode-time.
435e0 64 61 74 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 date)))...................(and.(
43600 65 71 20 28 6e 74 68 20 36 20 2c 64 65 63 6f 64 65 64 29 20 2c 64 61 79 2d 6f 66 2d 77 65 65 6b eq.(nth.6.,decoded).,day-of-week
43620 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3c 3d 20 2c 28 2a )........................(<=.,(*
43640 20 28 31 2d 20 63 6f 75 6e 74 29 20 37 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(1-.count).7)..................
43660 20 20 20 20 20 20 20 20 20 20 28 6e 74 68 20 33 20 2c 64 65 63 6f 64 65 64 29 0a 20 20 20 20 20 ..........(nth.3.,decoded)......
43680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 28 2a 20 63 6f 75 6e 74 20 ......................,(*.count.
436a0 37 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 3c 20 63 6f 75 6e 74 20 30 29 7)))))).............((<.count.0)
436c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 64 61 79 73 2d 69 6e 2d 6d 6f 6e ..............(let.((days-in-mon
436e0 74 68 20 28 63 6c 2d 67 65 6e 73 79 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 th.(cl-gensym)).................
43700 20 20 20 28 64 65 63 6f 64 65 64 20 28 63 6c 2d 67 65 6e 73 79 6d 29 29 29 0a 20 20 20 20 20 20 ...(decoded.(cl-gensym))).......
43720 20 20 20 20 20 20 20 20 20 60 28 6c 65 74 2a 20 28 28 2c 64 65 63 6f 64 65 64 20 28 64 65 63 6f .........`(let*.((,decoded.(deco
43740 64 65 2d 74 69 6d 65 20 64 61 74 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 de-time.date))..................
43760 20 20 20 20 20 20 28 2c 64 61 79 73 2d 69 6e 2d 6d 6f 6e 74 68 20 28 6c 65 64 67 65 72 2d 73 63 ......(,days-in-month.(ledger-sc
43780 68 65 64 75 6c 65 2d 64 61 79 73 2d 69 6e 2d 6d 6f 6e 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 hedule-days-in-month............
437a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 74 .............................(nt
437c0 68 20 34 20 2c 64 65 63 6f 64 65 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 h.4.,decoded)...................
437e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 74 68 20 35 20 2c 64 65 ......................(nth.5.,de
43800 63 6f 64 65 64 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 coded))))...................(and
43820 20 28 65 71 20 28 6e 74 68 20 36 20 2c 64 65 63 6f 64 65 64 29 20 2c 64 61 79 2d 6f 66 2d 77 65 .(eq.(nth.6.,decoded).,day-of-we
43840 65 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3c 3d 20 28 ek)........................(<=.(
43860 2b 20 2c 64 61 79 73 2d 69 6e 2d 6d 6f 6e 74 68 20 2c 28 2a 20 63 6f 75 6e 74 20 37 29 29 0a 20 +.,days-in-month.,(*.count.7))..
43880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 74 68 20 33 ..........................(nth.3
438a0 20 2c 64 65 63 6f 64 65 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .,decoded)......................
438c0 20 20 20 20 20 20 28 2b 20 2c 64 61 79 73 2d 69 6e 2d 6d 6f 6e 74 68 20 2c 28 2a 20 28 31 2b 20 ......(+.,days-in-month.,(*.(1+.
438e0 63 6f 75 6e 74 29 20 37 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 count).7))))))).............(t..
43900 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 43 4f 55 4e 54 20 6f 75 74 20 6f 66 ............(error."COUNT.out.of
43920 20 72 61 6e 67 65 2c 20 43 4f 55 4e 54 3d 25 53 22 20 63 6f 75 6e 74 29 29 29 0a 20 20 20 20 28 .range,.COUNT=%S".count))).....(
43940 65 72 72 6f 72 20 22 49 6e 76 61 6c 69 64 20 61 72 67 75 6d 65 6e 74 20 74 6f 20 6c 65 64 67 65 error."Invalid.argument.to.ledge
43960 72 2d 73 63 68 65 64 75 6c 65 2d 64 61 79 2d 69 6e 2d 6d 6f 6e 74 68 2d 6d 61 63 72 6f 20 25 53 r-schedule-day-in-month-macro.%S
43980 20 25 53 22 0a 20 20 20 20 20 20 20 20 20 20 20 63 6f 75 6e 74 0a 20 20 20 20 20 20 20 20 20 20 .%S"............count...........
439a0 20 64 61 79 2d 6f 66 2d 77 65 65 6b 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 73 .day-of-week)))..(defun.ledger-s
439c0 63 68 65 64 75 6c 65 2d 63 6f 6e 73 74 72 61 69 6e 2d 65 76 65 72 79 2d 63 6f 75 6e 74 2d 64 61 chedule-constrain-every-count-da
439e0 79 20 28 64 61 79 2d 6f 66 2d 77 65 65 6b 20 73 6b 69 70 20 73 74 61 72 74 2d 64 61 74 65 29 0a y.(day-of-week.skip.start-date).
43a00 20 20 22 52 65 74 75 72 6e 20 61 20 66 6f 72 6d 20 74 68 61 74 20 69 73 20 74 72 75 65 20 66 6f .."Return.a.form.that.is.true.fo
43a20 72 20 65 76 65 72 79 20 44 41 59 2d 4f 46 2d 57 45 45 4b 2e 0a 53 6b 69 70 73 20 53 4b 49 50 2c r.every.DAY-OF-WEEK..Skips.SKIP,
43a40 20 61 6e 64 20 73 74 61 72 74 73 20 6f 6e 20 53 54 41 52 54 2d 44 41 54 45 2e 0a 46 6f 72 20 65 .and.starts.on.START-DATE..For.e
43a60 78 61 6d 70 6c 65 20 65 76 65 72 79 20 73 65 63 6f 6e 64 20 46 72 69 64 61 79 2c 20 72 65 67 61 xample.every.second.Friday,.rega
43a80 72 64 6c 65 73 73 20 6f 66 20 6d 6f 6e 74 68 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 74 61 72 74 rdless.of.month."...(let.((start
43aa0 2d 64 61 79 20 28 6e 74 68 20 36 20 28 64 65 63 6f 64 65 2d 74 69 6d 65 20 73 74 61 72 74 2d 64 -day.(nth.6.(decode-time.start-d
43ac0 61 74 65 29 29 29 29 0a 20 20 20 20 28 69 66 20 28 65 71 20 73 74 61 72 74 2d 64 61 79 20 64 61 ate)))).....(if.(eq.start-day.da
43ae0 79 2d 6f 66 2d 77 65 65 6b 29 20 20 3b 3b 20 67 6f 6f 64 2c 20 63 61 6e 20 70 72 6f 63 65 65 64 y-of-week)..;;.good,.can.proceed
43b00 0a 20 20 20 20 20 20 20 20 60 28 7a 65 72 6f 70 20 28 6d 6f 64 20 28 2d 20 28 74 69 6d 65 2d 74 .........`(zerop.(mod.(-.(time-t
43b20 6f 2d 64 61 79 73 20 64 61 74 65 29 20 2c 28 74 69 6d 65 2d 74 6f 2d 64 61 79 73 20 73 74 61 72 o-days.date).,(time-to-days.star
43b40 74 2d 64 61 74 65 29 29 20 2c 28 2a 20 73 6b 69 70 20 37 29 29 29 0a 20 20 20 20 20 20 28 65 72 t-date)).,(*.skip.7))).......(er
43b60 72 6f 72 20 22 53 54 41 52 54 2d 44 41 54 45 20 64 61 79 20 6f 66 20 77 65 65 6b 20 64 6f 65 73 ror."START-DATE.day.of.week.does
43b80 6e 27 74 20 6d 61 74 63 68 20 44 41 59 2d 4f 46 2d 57 45 45 4b 22 29 29 29 29 0a 0a 28 64 65 66 n't.match.DAY-OF-WEEK"))))..(def
43ba0 75 6e 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 63 6f 6e 73 74 72 61 69 6e 2d 64 61 74 un.ledger-schedule-constrain-dat
43bc0 65 2d 72 61 6e 67 65 20 28 6d 6f 6e 74 68 31 20 64 61 79 31 20 6d 6f 6e 74 68 32 20 64 61 79 32 e-range.(month1.day1.month2.day2
43be0 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 66 6f 72 6d 20 6f 66 20 44 41 54 45 20 74 68 61 74 20 )..."Return.a.form.of.DATE.that.
43c00 69 73 20 74 72 75 65 20 69 66 20 44 41 54 45 20 66 61 6c 6c 73 20 62 65 74 77 65 65 6e 20 74 77 is.true.if.DATE.falls.between.tw
43c20 6f 20 64 61 74 65 73 2e 0a 54 68 65 20 64 61 74 65 73 20 61 72 65 20 67 69 76 65 6e 20 62 79 20 o.dates..The.dates.are.given.by.
43c40 74 68 65 20 70 61 69 72 73 20 4d 4f 4e 54 48 31 20 44 41 59 31 20 61 6e 64 20 4d 4f 4e 54 48 32 the.pairs.MONTH1.DAY1.and.MONTH2
43c60 20 44 41 59 32 2e 22 0a 20 20 28 6c 65 74 20 28 28 64 65 63 6f 64 65 64 20 28 63 6c 2d 67 65 6e .DAY2."...(let.((decoded.(cl-gen
43c80 73 79 6d 29 29 0a 20 20 20 20 20 20 20 20 28 74 61 72 67 65 74 2d 6d 6f 6e 74 68 20 28 63 6c 2d sym)).........(target-month.(cl-
43ca0 67 65 6e 73 79 6d 29 29 0a 20 20 20 20 20 20 20 20 28 74 61 72 67 65 74 2d 64 61 79 20 28 63 6c gensym)).........(target-day.(cl
43cc0 2d 67 65 6e 73 79 6d 29 29 29 0a 20 20 20 20 60 28 6c 65 74 2a 20 28 28 2c 64 65 63 6f 64 65 64 -gensym))).....`(let*.((,decoded
43ce0 20 28 64 65 63 6f 64 65 2d 74 69 6d 65 20 64 61 74 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 .(decode-time.date))............
43d00 20 28 2c 74 61 72 67 65 74 2d 6d 6f 6e 74 68 20 28 6e 74 68 20 34 20 64 65 63 6f 64 65 64 29 29 .(,target-month.(nth.4.decoded))
43d20 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 2c 74 61 72 67 65 74 2d 64 61 79 20 28 6e 74 68 20 33 .............(,target-day.(nth.3
43d40 20 64 65 63 6f 64 65 64 29 29 29 0a 20 20 20 20 20 20 20 28 61 6e 64 20 28 61 6e 64 20 28 3e 20 .decoded)))........(and.(and.(>.
43d60 2c 74 61 72 67 65 74 2d 6d 6f 6e 74 68 20 2c 6d 6f 6e 74 68 31 29 0a 20 20 20 20 20 20 20 20 20 ,target-month.,month1)..........
43d80 20 20 20 20 20 20 20 20 28 3c 20 2c 74 61 72 67 65 74 2d 6d 6f 6e 74 68 20 2c 6d 6f 6e 74 68 32 ........(<.,target-month.,month2
43da0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 3e 20 2c 74 61 72 67 65 74 2d 64 )).............(and.(>.,target-d
43dc0 61 79 20 2c 64 61 79 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3c 20 2c 74 ay.,day1)..................(<.,t
43de0 61 72 67 65 74 2d 64 61 79 20 2c 64 61 79 32 29 29 29 29 29 29 0a 0a 0a 0a 28 64 65 66 75 6e 20 arget-day.,day2))))))....(defun.
43e00 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 73 63 61 6e 2d 74 72 61 6e 73 61 63 74 69 6f 6e ledger-schedule-scan-transaction
43e20 73 20 28 73 63 68 65 64 75 6c 65 2d 66 69 6c 65 29 0a 20 20 22 53 63 61 6e 20 53 43 48 45 44 55 s.(schedule-file)..."Scan.SCHEDU
43e40 4c 45 2d 46 49 4c 45 20 61 6e 64 20 72 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 74 72 61 LE-FILE.and.return.a.list.of.tra
43e60 6e 73 61 63 74 69 6f 6e 73 20 77 69 74 68 20 64 61 74 65 20 70 72 65 64 69 63 61 74 65 73 2e 0a nsactions.with.date.predicates..
43e80 54 68 65 20 63 61 72 20 6f 66 20 65 61 63 68 20 69 74 65 6d 20 69 73 20 61 20 66 75 6e 63 74 69 The.car.of.each.item.is.a.functi
43ea0 6f 6e 20 6f 66 20 64 61 74 65 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 74 72 75 65 20 69 66 0a on.of.date.that.returns.true.if.
43ec0 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 73 68 6f 75 6c 64 20 62 65 20 6c 6f 67 67 65 64 the.transaction.should.be.logged
43ee0 20 66 6f 72 20 74 68 61 74 20 64 61 79 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 .for.that.day."...(interactive."
43f00 66 46 69 6c 65 20 6e 61 6d 65 3a 20 22 29 0a 20 20 28 6c 65 74 20 28 28 78 61 63 74 2d 6c 69 73 fFile.name:.")...(let.((xact-lis
43f20 74 20 28 6c 69 73 74 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 t.(list))).....(with-current-buf
43f40 66 65 72 0a 20 20 20 20 20 20 20 20 28 66 69 6e 64 2d 66 69 6c 65 2d 6e 6f 73 65 6c 65 63 74 20 fer.........(find-file-noselect.
43f60 73 63 68 65 64 75 6c 65 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 schedule-file).......(goto-char.
43f80 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 2d 73 65 (point-min)).......(while.(re-se
43fa0 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5e 5c 5c 5b 5c 5c 28 2e 2a 5c 5c 29 5c 5c 5d 20 22 20 arch-forward."^\\[\\(.*\\)\\].".
43fc0 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 64 61 74 65 2d 64 65 73 63 72 nil.t).........(let.((date-descr
43fe0 69 70 74 6f 72 20 22 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 72 61 6e 73 61 63 iptor."")...............(transac
44000 74 69 6f 6e 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 78 61 63 74 2d 73 74 tion.nil)...............(xact-st
44020 61 72 74 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 art.(match-end.0)))...........(s
44040 65 74 71 20 64 61 74 65 2d 64 65 73 63 72 69 70 74 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 etq.date-descriptor.............
44060 20 20 20 20 28 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 72 65 61 64 2d 64 65 73 63 72 69 ....(ledger-schedule-read-descri
44080 70 74 6f 72 2d 74 72 65 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 ptor-tree..................(buff
440a0 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 er-substring-no-properties......
440c0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 .............(match-beginning.0)
440e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 ...................(match-end.0)
44100 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 70 61 72 61 67 72 61 70 68 )))...........(forward-paragraph
44120 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 28 6c )...........(setq.transaction.(l
44140 69 73 74 20 64 61 74 65 2d 64 65 73 63 72 69 70 74 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 ist.date-descriptor.............
44160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 ......................(buffer-su
44180 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 bstring-no-properties...........
441a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 78 61 63 74 2d 73 74 .........................xact-st
441c0 61 72 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 art.............................
441e0 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 .......(point))))...........(set
44200 71 20 78 61 63 74 2d 6c 69 73 74 20 28 63 6f 6e 73 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 78 61 q.xact-list.(cons.transaction.xa
44220 63 74 2d 6c 69 73 74 29 29 29 29 0a 20 20 20 20 20 20 78 61 63 74 2d 6c 69 73 74 29 29 29 0a 0a ct-list)))).......xact-list)))..
44240 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 72 65 61 64 2d 64 65 73 63 (defun.ledger-schedule-read-desc
44260 72 69 70 74 6f 72 2d 74 72 65 65 20 28 64 65 73 63 72 69 70 74 6f 72 2d 73 74 72 69 6e 67 29 0a riptor-tree.(descriptor-string).
44280 20 20 22 52 65 61 64 20 44 45 53 43 52 49 50 54 4f 52 2d 53 54 52 49 4e 47 20 61 6e 64 20 72 65 .."Read.DESCRIPTOR-STRING.and.re
442a0 74 75 72 6e 20 61 20 66 6f 72 6d 20 74 68 61 74 20 65 76 61 6c 75 61 74 65 73 20 64 61 74 65 73 turn.a.form.that.evaluates.dates
442c0 2e 22 0a 20 20 28 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 74 72 61 6e 73 66 6f 72 6d 2d ."...(ledger-schedule-transform-
442e0 61 75 74 6f 2d 74 72 65 65 0a 20 20 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 0a 20 20 20 20 28 auto-tree....(split-string.....(
44300 73 75 62 73 74 72 69 6e 67 20 64 65 73 63 72 69 70 74 6f 72 2d 73 74 72 69 6e 67 20 31 20 28 73 substring.descriptor-string.1.(s
44320 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5d 22 20 64 65 73 63 72 69 70 74 6f 72 2d 73 74 72 69 6e tring-match."]".descriptor-strin
44340 67 29 29 20 22 20 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 g)).".")))..(defun.ledger-schedu
44360 6c 65 2d 74 72 61 6e 73 66 6f 72 6d 2d 61 75 74 6f 2d 74 72 65 65 20 28 64 65 73 63 72 69 70 74 le-transform-auto-tree.(descript
44380 6f 72 2d 73 74 72 69 6e 67 2d 6c 69 73 74 29 0a 20 20 22 54 61 6b 65 20 44 45 53 43 52 49 50 54 or-string-list)..."Take.DESCRIPT
443a0 4f 52 2d 53 54 52 49 4e 47 2d 4c 49 53 54 2c 20 61 6e 64 20 72 65 74 75 72 6e 20 61 20 73 74 72 OR-STRING-LIST,.and.return.a.str
443c0 69 6e 67 20 77 69 74 68 20 61 20 6c 61 6d 62 64 61 20 66 75 6e 63 74 69 6f 6e 20 6f 66 20 64 61 ing.with.a.lambda.function.of.da
443e0 74 65 2e 22 0a 20 20 3b 3b 20 75 73 65 20 66 75 6e 63 61 6c 6c 20 74 6f 20 75 73 65 20 74 68 65 te."...;;.use.funcall.to.use.the
44400 20 6c 61 6d 62 64 61 20 66 75 6e 63 74 69 6f 6e 20 73 70 69 74 20 6f 75 74 20 68 65 72 65 0a 20 .lambda.function.spit.out.here..
44420 20 28 69 66 20 28 63 6f 6e 73 70 20 64 65 73 63 72 69 70 74 6f 72 2d 73 74 72 69 6e 67 2d 6c 69 .(if.(consp.descriptor-string-li
44440 73 74 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 72 65 73 75 6c 74 29 0a 20 20 20 20 20 20 20 20 st).......(let.(result).........
44460 28 77 68 69 6c 65 20 28 63 6f 6e 73 70 20 64 65 73 63 72 69 70 74 6f 72 2d 73 74 72 69 6e 67 2d (while.(consp.descriptor-string-
44480 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6e 65 77 63 61 72 20 28 63 list)...........(let.((newcar.(c
444a0 61 72 20 64 65 73 63 72 69 70 74 6f 72 2d 73 74 72 69 6e 67 2d 6c 69 73 74 29 29 29 0a 20 20 20 ar.descriptor-string-list)))....
444c0 20 20 20 20 20 20 20 20 20 28 69 66 20 28 63 6f 6e 73 70 20 6e 65 77 63 61 72 29 0a 20 20 20 20 .........(if.(consp.newcar).....
444e0 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6e 65 77 63 61 72 20 28 6c 65 64 67 65 72 ............(setq.newcar.(ledger
44500 2d 73 63 68 65 64 75 6c 65 2d 74 72 61 6e 73 66 6f 72 6d 2d 61 75 74 6f 2d 74 72 65 65 20 28 63 -schedule-transform-auto-tree.(c
44520 61 72 20 64 65 73 63 72 69 70 74 6f 72 2d 73 74 72 69 6e 67 2d 6c 69 73 74 29 29 29 29 0a 20 20 ar.descriptor-string-list))))...
44540 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6e 65 77 63 61 72 20 6d 61 79 20 62 65 20 61 20 63 6f 6e ..........;;.newcar.may.be.a.con
44560 73 20 6e 6f 77 2c 20 61 66 74 65 72 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 74 72 61 s.now,.after.ledger-schedule-tra
44580 6e 73 66 72 6f 6d 2d 61 75 74 6f 2d 74 72 65 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 nsfrom-auto-tree.............(if
445a0 20 28 63 6f 6e 73 70 20 6e 65 77 63 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(consp.newcar).................
445c0 28 70 75 73 68 20 6e 65 77 63 61 72 20 72 65 73 75 6c 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 (push.newcar.result)............
445e0 20 20 20 3b 3b 20 74 68 69 73 20 69 73 20 77 68 65 72 65 20 77 65 20 61 63 74 75 61 6c 6c 79 20 ...;;.this.is.where.we.actually.
44600 74 75 72 6e 20 74 68 65 20 73 74 72 69 6e 67 20 64 65 73 63 72 69 70 74 6f 72 20 69 6e 74 6f 20 turn.the.string.descriptor.into.
44620 75 73 65 66 75 6c 20 6c 69 73 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 useful.lisp...............(push.
44640 28 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 63 6f 6d 70 69 6c 65 2d 63 6f 6e 73 74 72 61 (ledger-schedule-compile-constra
44660 69 6e 74 73 20 6e 65 77 63 61 72 29 20 72 65 73 75 6c 74 29 29 20 29 0a 20 20 20 20 20 20 20 20 ints.newcar).result)).).........
44680 20 20 28 73 65 74 71 20 64 65 73 63 72 69 70 74 6f 72 2d 73 74 72 69 6e 67 2d 6c 69 73 74 20 28 ..(setq.descriptor-string-list.(
446a0 63 64 72 20 64 65 73 63 72 69 70 74 6f 72 2d 73 74 72 69 6e 67 2d 6c 69 73 74 29 29 29 0a 0a 20 cdr.descriptor-string-list)))...
446c0 20 20 20 20 20 20 20 3b 3b 20 74 69 65 20 75 70 20 61 6c 6c 20 74 68 65 20 63 6c 61 75 73 65 73 .......;;.tie.up.all.the.clauses
446e0 20 69 6e 20 61 20 62 69 67 20 6f 72 20 6c 61 6d 62 64 61 2c 20 61 6e 64 20 72 65 74 75 72 6e 0a .in.a.big.or.lambda,.and.return.
44700 20 20 20 20 20 20 20 20 3b 3b 20 74 68 65 20 6c 61 6d 62 64 61 20 66 75 6e 63 74 69 6f 6e 20 61 ........;;.the.lambda.function.a
44720 73 20 6c 69 73 74 20 74 6f 20 62 65 20 65 78 65 63 75 74 65 64 20 62 79 20 66 75 6e 63 61 6c 6c s.list.to.be.executed.by.funcall
44740 0a 20 20 20 20 20 20 20 20 60 28 6c 61 6d 62 64 61 20 28 64 61 74 65 29 0a 20 20 20 20 20 20 20 .........`(lambda.(date)........
44760 20 20 20 20 2c 28 6e 63 6f 6e 63 20 28 6c 69 73 74 20 27 6f 72 29 20 28 6e 72 65 76 65 72 73 65 ....,(nconc.(list.'or).(nreverse
44780 20 72 65 73 75 6c 74 29 20 64 65 73 63 72 69 70 74 6f 72 2d 73 74 72 69 6e 67 2d 6c 69 73 74 29 .result).descriptor-string-list)
447a0 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 63 6f 6d ))))..(defun.ledger-schedule-com
447c0 70 69 6c 65 2d 63 6f 6e 73 74 72 61 69 6e 74 73 20 28 64 65 73 63 72 69 70 74 6f 72 2d 73 74 72 pile-constraints.(descriptor-str
447e0 69 6e 67 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 77 69 74 68 20 74 68 65 20 79 ing)..."Return.a.list.with.the.y
44800 65 61 72 2c 20 6d 6f 6e 74 68 20 61 6e 64 20 64 61 79 20 66 69 65 6c 64 73 20 73 70 6c 69 74 2e ear,.month.and.day.fields.split.
44820 22 0a 20 20 28 6c 65 74 20 28 28 66 69 65 6c 64 73 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 "...(let.((fields.(split-string.
44840 64 65 73 63 72 69 70 74 6f 72 2d 73 74 72 69 6e 67 20 22 5b 2f 5c 5c 2d 5d 22 20 74 29 29 29 0a descriptor-string."[/\\-]".t))).
44860 20 20 20 20 28 6c 69 73 74 20 27 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 ....(list.'and...........(ledger
44880 2d 73 63 68 65 64 75 6c 65 2d 63 6f 6e 73 74 72 61 69 6e 2d 64 61 79 20 28 6e 74 68 20 30 20 66 -schedule-constrain-day.(nth.0.f
448a0 69 65 6c 64 73 29 20 28 6e 74 68 20 31 20 66 69 65 6c 64 73 29 20 28 6e 74 68 20 32 20 66 69 65 ields).(nth.1.fields).(nth.2.fie
448c0 6c 64 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 lds))...........(ledger-schedule
448e0 2d 63 6f 6e 73 74 72 61 69 6e 2d 79 65 61 72 20 28 6e 74 68 20 30 20 66 69 65 6c 64 73 29 20 28 -constrain-year.(nth.0.fields).(
44900 6e 74 68 20 31 20 66 69 65 6c 64 73 29 20 28 6e 74 68 20 32 20 66 69 65 6c 64 73 29 29 0a 20 20 nth.1.fields).(nth.2.fields))...
44920 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 63 6f 6e 73 74 72 61 ........(ledger-schedule-constra
44940 69 6e 2d 6d 6f 6e 74 68 20 28 6e 74 68 20 30 20 66 69 65 6c 64 73 29 20 28 6e 74 68 20 31 20 66 in-month.(nth.0.fields).(nth.1.f
44960 69 65 6c 64 73 29 20 28 6e 74 68 20 32 20 66 69 65 6c 64 73 29 29 29 29 29 0a 0a 28 64 65 66 75 ields).(nth.2.fields)))))..(defu
44980 6e 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 63 6f 6e 73 74 72 61 69 6e 2d 79 65 61 72 n.ledger-schedule-constrain-year
449a0 20 28 79 65 61 72 2d 64 65 73 63 20 6d 6f 6e 74 68 2d 64 65 73 63 20 64 61 79 2d 64 65 73 63 29 .(year-desc.month-desc.day-desc)
449c0 0a 20 20 22 52 65 74 75 72 6e 20 61 20 66 6f 72 6d 20 74 68 61 74 20 63 6f 6e 73 74 72 61 69 6e ..."Return.a.form.that.constrain
449e0 73 20 74 68 65 20 79 65 61 72 2e 0a 0a 59 45 41 52 2d 44 45 53 43 2c 20 4d 4f 4e 54 48 2d 44 45 s.the.year...YEAR-DESC,.MONTH-DE
44a00 53 43 2c 20 61 6e 64 20 44 41 59 2d 44 45 53 43 20 61 72 65 20 74 68 65 20 73 74 72 69 6e 67 20 SC,.and.DAY-DESC.are.the.string.
44a20 70 6f 72 74 69 6f 6e 73 20 6f 66 20 74 68 65 0a 64 61 74 65 20 64 65 73 63 72 69 70 74 6f 72 2e portions.of.the.date.descriptor.
44a40 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5b 41 2d "...(cond....((string-match."[A-
44a60 5a 61 2d 7a 5d 22 20 64 61 79 2d 64 65 73 63 29 20 74 29 20 3b 20 74 68 65 72 65 20 69 73 20 61 Za-z]".day-desc).t).;.there.is.a
44a80 6e 20 61 64 76 61 6e 63 65 64 20 64 61 79 20 64 65 73 63 72 69 70 74 6f 72 20 77 68 69 63 68 20 n.advanced.day.descriptor.which.
44aa0 6f 76 65 72 72 69 64 65 73 20 74 68 65 20 79 65 61 72 0a 20 20 20 28 28 73 74 72 69 6e 67 3d 20 overrides.the.year....((string=.
44ac0 79 65 61 72 2d 64 65 73 63 20 22 2a 22 29 20 74 29 0a 20 20 20 28 28 2f 3d 20 30 20 28 73 74 72 year-desc."*").t)....((/=.0.(str
44ae0 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 79 65 61 72 2d 64 65 73 63 29 29 0a 20 20 20 20 60 28 ing-to-number.year-desc)).....`(
44b00 6d 65 6d 71 20 28 6e 74 68 20 35 20 28 64 65 63 6f 64 65 2d 74 69 6d 65 20 64 61 74 65 29 29 20 memq.(nth.5.(decode-time.date)).
44b20 27 2c 28 6d 61 70 63 61 72 20 27 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 73 70 6c ',(mapcar.'string-to-number.(spl
44b40 69 74 2d 73 74 72 69 6e 67 20 79 65 61 72 2d 64 65 73 63 20 22 2c 22 29 29 29 29 0a 20 20 20 28 it-string.year-desc.","))))....(
44b60 74 0a 20 20 20 20 28 65 72 72 6f 72 20 22 49 6d 70 72 6f 70 65 72 6c 79 20 73 70 65 63 69 66 69 t.....(error."Improperly.specifi
44b80 65 64 20 79 65 61 72 20 63 6f 6e 73 74 72 61 69 6e 74 3a 20 25 73 20 25 73 20 25 73 22 20 79 65 ed.year.constraint:.%s.%s.%s".ye
44ba0 61 72 2d 64 65 73 63 20 6d 6f 6e 74 68 2d 64 65 73 63 20 64 61 79 2d 64 65 73 63 29 29 29 29 0a ar-desc.month-desc.day-desc)))).
44bc0 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 63 6f 6e 73 74 72 61 69 .(defun.ledger-schedule-constrai
44be0 6e 2d 6d 6f 6e 74 68 20 28 79 65 61 72 2d 64 65 73 63 20 6d 6f 6e 74 68 2d 64 65 73 63 20 64 61 n-month.(year-desc.month-desc.da
44c00 79 2d 64 65 73 63 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 66 6f 72 6d 20 74 68 61 74 20 63 6f y-desc)..."Return.a.form.that.co
44c20 6e 73 74 72 61 69 6e 73 20 74 68 65 20 6d 6f 6e 74 68 2e 0a 0a 59 45 41 52 2d 44 45 53 43 2c 20 nstrains.the.month...YEAR-DESC,.
44c40 4d 4f 4e 54 48 2d 44 45 53 43 2c 20 61 6e 64 20 44 41 59 2d 44 45 53 43 20 61 72 65 20 74 68 65 MONTH-DESC,.and.DAY-DESC.are.the
44c60 20 73 74 72 69 6e 67 20 70 6f 72 74 69 6f 6e 73 20 6f 66 20 74 68 65 0a 64 61 74 65 20 64 65 73 .string.portions.of.the.date.des
44c80 63 72 69 70 74 6f 72 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 73 74 72 69 6e 67 2d 6d 61 criptor."...(cond....((string-ma
44ca0 74 63 68 20 22 5b 41 2d 5a 61 2d 7a 5d 22 20 64 61 79 2d 64 65 73 63 29 20 74 29 20 3b 20 74 68 tch."[A-Za-z]".day-desc).t).;.th
44cc0 65 72 65 20 69 73 20 61 6e 20 61 64 76 61 6e 63 65 64 20 64 61 79 20 64 65 73 63 72 69 70 74 6f ere.is.an.advanced.day.descripto
44ce0 72 20 77 68 69 63 68 20 6f 76 65 72 72 69 64 65 73 20 74 68 65 20 6d 6f 6e 74 68 0a 20 20 20 28 r.which.overrides.the.month....(
44d00 28 73 74 72 69 6e 67 3d 20 6d 6f 6e 74 68 2d 64 65 73 63 20 22 2a 22 29 0a 20 20 20 20 74 29 20 (string=.month-desc."*").....t).
44d20 20 3b 3b 20 61 6c 77 61 79 73 20 6d 61 74 63 68 0a 20 20 20 28 28 73 74 72 69 6e 67 3d 20 6d 6f .;;.always.match....((string=.mo
44d40 6e 74 68 2d 64 65 73 63 20 22 45 22 29 20 20 3b 3b 20 45 76 65 6e 0a 20 20 20 20 60 28 63 6c 2d nth-desc."E")..;;.Even.....`(cl-
44d60 65 76 65 6e 70 20 28 6e 74 68 20 34 20 28 64 65 63 6f 64 65 2d 74 69 6d 65 20 64 61 74 65 29 29 evenp.(nth.4.(decode-time.date))
44d80 29 29 0a 20 20 20 28 28 73 74 72 69 6e 67 3d 20 6d 6f 6e 74 68 2d 64 65 73 63 20 22 4f 22 29 20 ))....((string=.month-desc."O").
44da0 20 3b 3b 20 4f 64 64 0a 20 20 20 20 60 28 63 6c 2d 6f 64 64 70 20 28 6e 74 68 20 34 20 28 64 65 .;;.Odd.....`(cl-oddp.(nth.4.(de
44dc0 63 6f 64 65 2d 74 69 6d 65 20 64 61 74 65 29 29 29 29 0a 20 20 20 28 28 2f 3d 20 30 20 28 73 74 code-time.date))))....((/=.0.(st
44de0 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 6d 6f 6e 74 68 2d 64 65 73 63 29 29 20 3b 3b 20 53 ring-to-number.month-desc)).;;.S
44e00 74 61 72 74 73 20 77 69 74 68 20 6e 75 6d 62 65 72 0a 20 20 20 20 60 28 6d 65 6d 71 20 28 6e 74 tarts.with.number.....`(memq.(nt
44e20 68 20 34 20 28 64 65 63 6f 64 65 2d 74 69 6d 65 20 64 61 74 65 29 29 20 27 2c 28 6d 61 70 63 61 h.4.(decode-time.date)).',(mapca
44e40 72 20 27 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 73 70 6c 69 74 2d 73 74 72 69 6e r.'string-to-number.(split-strin
44e60 67 20 6d 6f 6e 74 68 2d 64 65 73 63 20 22 2c 22 29 29 29 29 0a 20 20 20 28 74 0a 20 20 20 20 28 g.month-desc.","))))....(t.....(
44e80 65 72 72 6f 72 20 22 49 6d 70 72 6f 70 65 72 6c 79 20 73 70 65 63 69 66 69 65 64 20 6d 6f 6e 74 error."Improperly.specified.mont
44ea0 68 20 63 6f 6e 73 74 72 61 69 6e 74 3a 20 25 73 20 25 73 20 25 73 22 20 79 65 61 72 2d 64 65 73 h.constraint:.%s.%s.%s".year-des
44ec0 63 20 6d 6f 6e 74 68 2d 64 65 73 63 20 64 61 79 2d 64 65 73 63 29 29 29 29 0a 0a 28 64 65 66 75 c.month-desc.day-desc))))..(defu
44ee0 6e 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 63 6f 6e 73 74 72 61 69 6e 2d 64 61 79 20 n.ledger-schedule-constrain-day.
44f00 28 79 65 61 72 2d 64 65 73 63 20 6d 6f 6e 74 68 2d 64 65 73 63 20 64 61 79 2d 64 65 73 63 29 0a (year-desc.month-desc.day-desc).
44f20 20 20 22 52 65 74 75 72 6e 20 61 20 66 6f 72 6d 20 74 68 61 74 20 63 6f 6e 73 74 72 61 69 6e 73 .."Return.a.form.that.constrains
44f40 20 74 68 65 20 64 61 79 2e 0a 0a 59 45 41 52 2d 44 45 53 43 2c 20 4d 4f 4e 54 48 2d 44 45 53 43 .the.day...YEAR-DESC,.MONTH-DESC
44f60 2c 20 61 6e 64 20 44 41 59 2d 44 45 53 43 20 61 72 65 20 74 68 65 20 73 74 72 69 6e 67 20 70 6f ,.and.DAY-DESC.are.the.string.po
44f80 72 74 69 6f 6e 73 20 6f 66 20 74 68 65 0a 64 61 74 65 20 64 65 73 63 72 69 70 74 6f 72 2e 22 0a rtions.of.the.date.descriptor.".
44fa0 20 20 28 63 6f 6e 64 20 28 28 73 74 72 69 6e 67 3d 20 64 61 79 2d 64 65 73 63 20 22 2a 22 29 0a ..(cond.((string=.day-desc."*").
44fc0 20 20 20 20 20 20 20 20 20 74 29 0a 20 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 3d 20 64 61 .........t).........((string=.da
44fe0 79 2d 64 65 73 63 20 22 4c 22 29 0a 20 20 20 20 20 20 20 20 20 60 28 3d 20 28 6e 74 68 20 33 20 y-desc."L")..........`(=.(nth.3.
45000 28 64 65 63 6f 64 65 2d 74 69 6d 65 20 64 61 74 65 29 29 20 28 6c 65 64 67 65 72 2d 73 63 68 65 (decode-time.date)).(ledger-sche
45020 64 75 6c 65 2d 64 61 79 73 2d 69 6e 2d 6d 6f 6e 74 68 20 28 6e 74 68 20 34 20 28 64 65 63 6f 64 dule-days-in-month.(nth.4.(decod
45040 65 2d 74 69 6d 65 20 64 61 74 65 29 29 20 28 6e 74 68 20 35 20 28 64 65 63 6f 64 65 2d 74 69 6d e-time.date)).(nth.5.(decode-tim
45060 65 20 64 61 74 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 2d 6d 61 74 e.date))))).........((string-mat
45080 63 68 20 22 5b 41 2d 5a 61 2d 7a 5d 22 20 64 61 79 2d 64 65 73 63 29 20 20 3b 3b 20 54 68 65 72 ch."[A-Za-z]".day-desc)..;;.Ther
450a0 65 20 69 73 20 73 6f 6d 65 74 68 69 6e 67 20 6f 74 68 65 72 20 74 68 61 6e 20 64 69 67 69 74 73 e.is.something.other.than.digits
450c0 20 61 6e 64 20 63 6f 6d 6d 61 73 0a 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 73 63 68 .and.commas..........(ledger-sch
450e0 65 64 75 6c 65 2d 70 61 72 73 65 2d 63 6f 6d 70 6c 65 78 2d 64 61 74 65 20 79 65 61 72 2d 64 65 edule-parse-complex-date.year-de
45100 73 63 20 6d 6f 6e 74 68 2d 64 65 73 63 20 64 61 79 2d 64 65 73 63 29 29 0a 20 20 20 20 20 20 20 sc.month-desc.day-desc))........
45120 20 28 28 2f 3d 20 30 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 64 61 79 2d 64 65 .((/=.0.(string-to-number.day-de
45140 73 63 29 29 0a 20 20 20 20 20 20 20 20 20 60 28 6d 65 6d 71 20 28 6e 74 68 20 33 20 28 64 65 63 sc))..........`(memq.(nth.3.(dec
45160 6f 64 65 2d 74 69 6d 65 20 64 61 74 65 29 29 20 27 2c 28 6d 61 70 63 61 72 20 27 73 74 72 69 6e ode-time.date)).',(mapcar.'strin
45180 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 64 61 79 2d 64 65 g-to-number.(split-string.day-de
451a0 73 63 20 22 2c 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 28 sc.",")))).........(t..........(
451c0 65 72 72 6f 72 20 22 49 6d 70 72 6f 70 65 72 6c 79 20 73 70 65 63 69 66 69 65 64 20 64 61 79 20 error."Improperly.specified.day.
451e0 63 6f 6e 73 74 72 61 69 6e 74 3a 20 25 73 20 25 73 20 25 73 22 20 79 65 61 72 2d 64 65 73 63 20 constraint:.%s.%s.%s".year-desc.
45200 6d 6f 6e 74 68 2d 64 65 73 63 20 64 61 79 2d 64 65 73 63 29 29 29 29 0a 0a 0a 0a 28 64 65 66 75 month-desc.day-desc))))....(defu
45220 6e 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 70 61 72 73 65 2d 63 6f 6d 70 6c 65 78 2d n.ledger-schedule-parse-complex-
45240 64 61 74 65 20 28 79 65 61 72 2d 64 65 73 63 20 6d 6f 6e 74 68 2d 64 65 73 63 20 64 61 79 2d 64 date.(year-desc.month-desc.day-d
45260 65 73 63 29 0a 20 20 22 50 61 72 73 65 20 64 61 79 20 64 65 73 63 72 69 70 74 6f 72 73 20 74 68 esc)..."Parse.day.descriptors.th
45280 61 74 20 68 61 76 65 20 72 65 70 65 61 74 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 79 65 61 72 73 at.have.repeats."...(let.((years
452a0 20 28 6d 61 70 63 61 72 20 27 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 73 70 6c 69 .(mapcar.'string-to-number.(spli
452c0 74 2d 73 74 72 69 6e 67 20 79 65 61 72 2d 64 65 73 63 20 22 2c 22 29 29 29 0a 20 20 20 20 20 20 t-string.year-desc.","))).......
452e0 20 20 28 6d 6f 6e 74 68 73 20 28 6d 61 70 63 61 72 20 27 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d ..(months.(mapcar.'string-to-num
45300 62 65 72 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 6d 6f 6e 74 68 2d 64 65 73 63 20 22 2c 22 ber.(split-string.month-desc.","
45320 29 29 29 0a 20 20 20 20 20 20 20 20 28 64 61 79 2d 70 61 72 74 73 20 28 73 70 6c 69 74 2d 73 74 ))).........(day-parts.(split-st
45340 72 69 6e 67 20 64 61 79 2d 64 65 73 63 20 22 5c 5c 2b 22 29 29 0a 20 20 20 20 20 20 20 20 28 65 ring.day-desc."\\+")).........(e
45360 76 65 72 79 2d 6e 74 68 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5c 5c 2b 22 20 64 61 79 very-nth.(string-match."\\+".day
45380 2d 64 65 73 63 29 29 29 0a 20 20 20 20 28 69 66 20 65 76 65 72 79 2d 6e 74 68 0a 20 20 20 20 20 -desc))).....(if.every-nth......
453a0 20 20 20 28 6c 65 74 20 28 28 62 61 73 65 2d 64 61 79 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 ...(let.((base-day.(string-to-nu
453c0 6d 62 65 72 20 28 63 61 72 20 64 61 79 2d 70 61 72 74 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 mber.(car.day-parts)))..........
453e0 20 20 20 20 20 28 69 6e 63 72 65 6d 65 6e 74 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 .....(increment.(string-to-numbe
45400 72 20 28 73 75 62 73 74 72 69 6e 67 20 28 63 61 64 72 20 64 61 79 2d 70 61 72 74 73 29 20 30 0a r.(substring.(cadr.day-parts).0.
45420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
45440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 6d 61 ......................(string-ma
45460 74 63 68 20 22 5b 41 2d 5a 61 2d 7a 5d 22 20 28 63 61 64 72 20 64 61 79 2d 70 61 72 74 73 29 29 tch."[A-Za-z]".(cadr.day-parts))
45480 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 61 79 2d 6f 66 2d 77 65 65 6b 20 28 )))...............(day-of-week.(
454a0 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 65 6e 63 6f 64 65 2d 64 61 79 2d 6f 66 2d 77 65 ledger-schedule-encode-day-of-we
454c0 65 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ek.............................(
454e0 73 75 62 73 74 72 69 6e 67 20 28 63 61 64 72 20 64 61 79 2d 70 61 72 74 73 29 20 28 73 74 72 69 substring.(cadr.day-parts).(stri
45500 6e 67 2d 6d 61 74 63 68 20 22 5b 41 2d 5a 61 2d 7a 5d 22 20 28 63 61 64 72 20 64 61 79 2d 70 61 ng-match."[A-Za-z]".(cadr.day-pa
45520 72 74 73 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 73 63 68 65 rts))))))...........(ledger-sche
45540 64 75 6c 65 2d 63 6f 6e 73 74 72 61 69 6e 2d 65 76 65 72 79 2d 63 6f 75 6e 74 2d 64 61 79 20 64 dule-constrain-every-count-day.d
45560 61 79 2d 6f 66 2d 77 65 65 6b 20 69 6e 63 72 65 6d 65 6e 74 20 28 65 6e 63 6f 64 65 2d 74 69 6d ay-of-week.increment.(encode-tim
45580 65 20 30 20 30 20 30 20 62 61 73 65 2d 64 61 79 20 28 63 61 72 20 6d 6f 6e 74 68 73 29 20 28 63 e.0.0.0.base-day.(car.months).(c
455a0 61 72 20 79 65 61 72 73 29 29 29 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 6f 75 6e 74 20 ar.years)))).......(let.((count.
455c0 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 73 75 62 73 74 72 69 6e 67 20 28 63 61 (string-to-number.(substring.(ca
455e0 72 20 64 61 79 2d 70 61 72 74 73 29 20 30 20 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 r.day-parts).0.1))).............
45600 28 64 61 79 2d 6f 66 2d 77 65 65 6b 20 28 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 65 6e (day-of-week.(ledger-schedule-en
45620 63 6f 64 65 2d 64 61 79 2d 6f 66 2d 77 65 65 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 code-day-of-week................
45640 20 20 20 20 20 20 20 20 20 20 20 28 73 75 62 73 74 72 69 6e 67 20 28 63 61 72 20 64 61 79 2d 70 ...........(substring.(car.day-p
45660 61 72 74 73 29 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5b 41 2d 5a 61 2d 7a 5d 22 20 28 arts).(string-match."[A-Za-z]".(
45680 63 61 72 20 64 61 79 2d 70 61 72 74 73 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 6c 65 64 car.day-parts)))))).........(led
456a0 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 63 6f 6e 73 74 72 61 69 6e 2d 64 61 79 2d 69 6e 2d 6d 6f ger-schedule-constrain-day-in-mo
456c0 6e 74 68 20 63 6f 75 6e 74 20 64 61 79 2d 6f 66 2d 77 65 65 6b 29 29 29 29 29 0a 0a 28 64 65 66 nth.count.day-of-week)))))..(def
456e0 75 6e 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 6c 69 73 74 2d 75 70 63 6f 6d 69 6e 67 un.ledger-schedule-list-upcoming
45700 2d 78 61 63 74 73 20 28 63 61 6e 64 69 64 61 74 65 2d 69 74 65 6d 73 20 65 61 72 6c 79 20 68 6f -xacts.(candidate-items.early.ho
45720 72 69 7a 6f 6e 29 0a 20 20 22 53 65 61 72 63 68 20 43 41 4e 44 49 44 41 54 45 2d 49 54 45 4d 53 rizon)..."Search.CANDIDATE-ITEMS
45740 20 66 6f 72 20 78 61 63 74 73 20 74 68 61 74 20 6f 63 63 75 72 20 77 69 74 68 69 6e 20 74 68 65 .for.xacts.that.occur.within.the
45760 20 67 69 76 65 6e 20 70 65 72 69 6f 64 2e 0a 54 68 65 20 70 65 72 69 6f 64 20 72 75 6e 73 20 66 .given.period..The.period.runs.f
45780 72 6f 6d 20 28 74 6f 64 61 79 20 2d 20 45 41 52 4c 59 29 20 74 6f 20 28 74 6f 64 61 79 20 2b 20 rom.(today.-.EARLY).to.(today.+.
457a0 48 4f 52 49 5a 4f 4e 29 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 74 61 72 74 2d 64 61 74 65 20 28 HORIZON)."...(let.((start-date.(
457c0 74 69 6d 65 2d 73 75 62 74 72 61 63 74 20 28 63 75 72 72 65 6e 74 2d 74 69 6d 65 29 20 28 64 61 time-subtract.(current-time).(da
457e0 79 73 2d 74 6f 2d 74 69 6d 65 20 65 61 72 6c 79 29 29 29 0a 20 20 20 20 20 20 20 20 74 65 73 74 ys-to-time.early))).........test
45800 2d 64 61 74 65 20 69 74 65 6d 73 29 0a 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 64 61 -date.items).....(cl-loop.for.da
45820 79 20 66 72 6f 6d 20 30 20 74 6f 20 28 2b 20 65 61 72 6c 79 20 68 6f 72 69 7a 6f 6e 29 20 62 79 y.from.0.to.(+.early.horizon).by
45840 20 31 20 64 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 65 73 74 2d 64 61 .1.do..............(setq.test-da
45860 74 65 20 28 74 69 6d 65 2d 61 64 64 20 73 74 61 72 74 2d 64 61 74 65 20 28 64 61 79 73 2d 74 6f te.(time-add.start-date.(days-to
45880 2d 74 69 6d 65 20 64 61 79 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 -time.day)))..............(dolis
458a0 74 20 28 63 61 6e 64 69 64 61 74 65 20 63 61 6e 64 69 64 61 74 65 2d 69 74 65 6d 73 20 69 74 65 t.(candidate.candidate-items.ite
458c0 6d 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 66 75 6e 63 61 6c 6c 20 ms)................(if.(funcall.
458e0 28 63 61 72 20 63 61 6e 64 69 64 61 74 65 29 20 74 65 73 74 2d 64 61 74 65 29 0a 20 20 20 20 20 (car.candidate).test-date)......
45900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 69 74 65 6d 73 20 28 61 70 70 65 6e ..............(setq.items.(appen
45920 64 20 69 74 65 6d 73 20 28 6c 69 73 74 20 28 6c 69 73 74 20 74 65 73 74 2d 64 61 74 65 20 28 63 d.items.(list.(list.test-date.(c
45940 61 64 72 20 63 61 6e 64 69 64 61 74 65 29 29 29 29 29 29 29 29 0a 20 20 20 20 69 74 65 6d 73 29 adr.candidate)))))))).....items)
45960 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 63 72 65 61 74 65 )..(defun.ledger-schedule-create
45980 2d 61 75 74 6f 2d 62 75 66 66 65 72 20 28 63 61 6e 64 69 64 61 74 65 2d 69 74 65 6d 73 20 65 61 -auto-buffer.(candidate-items.ea
459a0 72 6c 79 20 68 6f 72 69 7a 6f 6e 29 0a 20 20 22 46 6f 72 6d 61 74 20 43 41 4e 44 49 44 41 54 45 rly.horizon)..."Format.CANDIDATE
459c0 2d 49 54 45 4d 53 20 66 6f 72 20 64 69 73 70 6c 61 79 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 61 -ITEMS.for.display."...(let.((ca
459e0 6e 64 69 64 61 74 65 73 20 28 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 6c 69 73 74 2d 75 ndidates.(ledger-schedule-list-u
45a00 70 63 6f 6d 69 6e 67 2d 78 61 63 74 73 20 63 61 6e 64 69 64 61 74 65 2d 69 74 65 6d 73 20 65 61 pcoming-xacts.candidate-items.ea
45a20 72 6c 79 20 68 6f 72 69 7a 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 28 73 63 68 65 64 75 6c 65 2d rly.horizon)).........(schedule-
45a40 62 75 66 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 6c 65 64 67 65 72 2d 73 63 buf.(get-buffer-create.ledger-sc
45a60 68 65 64 75 6c 65 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d hedule-buffer-name))).....(with-
45a80 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 73 63 68 65 64 75 6c 65 2d 62 75 66 0a 20 20 20 20 current-buffer.schedule-buf.....
45aa0 20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 ..(erase-buffer).......(dolist.(
45ac0 63 61 6e 64 69 64 61 74 65 20 63 61 6e 64 69 64 61 74 65 73 29 0a 20 20 20 20 20 20 20 20 28 69 candidate.candidates).........(i
45ae0 6e 73 65 72 74 20 28 6c 65 64 67 65 72 2d 66 6f 72 6d 61 74 2d 64 61 74 65 20 28 63 61 72 20 63 nsert.(ledger-format-date.(car.c
45b00 61 6e 64 69 64 61 74 65 29 20 29 20 22 20 22 20 28 63 61 64 72 20 63 61 6e 64 69 64 61 74 65 29 andidate).).".".(cadr.candidate)
45b20 20 22 5c 6e 22 29 29 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6d 6f 64 65 29 29 0a 20 20 20 ."\n")).......(ledger-mode))....
45b40 20 28 6c 65 6e 67 74 68 20 63 61 6e 64 69 64 61 74 65 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c .(length.candidates)))..(defun.l
45b60 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 75 70 63 6f 6d 69 6e 67 20 28 66 69 6c 65 20 6c 6f edger-schedule-upcoming.(file.lo
45b80 6f 6b 2d 62 61 63 6b 77 61 72 64 20 6c 6f 6f 6b 2d 66 6f 72 77 61 72 64 29 0a 20 20 22 47 65 6e ok-backward.look-forward)..."Gen
45ba0 65 72 61 74 65 20 75 70 63 6f 6d 69 6e 67 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 2e 0a 0a 46 49 erate.upcoming.transactions...FI
45bc0 4c 45 20 69 73 20 74 68 65 20 66 69 6c 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 73 63 LE.is.the.file.containing.the.sc
45be0 68 65 64 75 6c 65 64 20 74 72 61 6e 73 61 63 74 69 6f 6e 2c 0a 64 65 66 61 75 6c 74 20 74 6f 20 heduled.transaction,.default.to.
45c00 60 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 66 69 6c 65 27 2e 0a 4c 4f 4f 4b 2d 42 41 43 `ledger-schedule-file'..LOOK-BAC
45c20 4b 57 41 52 44 20 69 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 64 61 79 73 20 69 6e 20 74 KWARD.is.the.number.of.days.in.t
45c40 68 65 20 70 61 73 74 20 74 6f 20 6c 6f 6f 6b 20 61 74 0a 64 65 66 61 75 6c 74 20 74 6f 20 60 6c he.past.to.look.at.default.to.`l
45c60 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 6c 6f 6f 6b 2d 62 61 63 6b 77 61 72 64 27 0a 4c 4f edger-schedule-look-backward'.LO
45c80 4f 4b 2d 46 4f 52 57 41 52 44 20 69 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 64 61 79 73 OK-FORWARD.is.the.number.of.days
45ca0 20 69 6e 20 74 68 65 20 66 75 74 75 72 65 20 74 6f 20 6c 6f 6f 6b 20 61 74 0a 64 65 66 61 75 6c .in.the.future.to.look.at.defaul
45cc0 74 20 74 6f 20 60 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 6c 6f 6f 6b 2d 66 6f 72 77 61 t.to.`ledger-schedule-look-forwa
45ce0 72 64 27 0a 0a 55 73 65 20 61 20 70 72 65 66 69 78 20 61 72 67 20 74 6f 20 63 68 61 6e 67 65 20 rd'..Use.a.prefix.arg.to.change.
45d00 74 68 65 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 the.default.value"...(interactiv
45d20 65 20 28 69 66 20 63 75 72 72 65 6e 74 2d 70 72 65 66 69 78 2d 61 72 67 0a 20 20 20 20 20 20 20 e.(if.current-prefix-arg........
45d40 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 72 65 61 64 2d 66 69 6c 65 2d 6e 61 6d ............(list.(read-file-nam
45d60 65 20 22 53 63 68 65 64 75 6c 65 20 46 69 6c 65 3a 20 22 20 28 29 20 6c 65 64 67 65 72 2d 73 63 e."Schedule.File:.".().ledger-sc
45d80 68 65 64 75 6c 65 2d 66 69 6c 65 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 hedule-file.t)..................
45da0 20 20 20 20 20 20 20 20 28 72 65 61 64 2d 6e 75 6d 62 65 72 20 22 4c 6f 6f 6b 20 62 61 63 6b 77 ........(read-number."Look.backw
45dc0 61 72 64 3a 20 22 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 6c 6f 6f 6b 2d 62 61 63 6b ard:.".ledger-schedule-look-back
45de0 77 61 72 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ward)..........................(
45e00 72 65 61 64 2d 6e 75 6d 62 65 72 20 22 4c 6f 6f 6b 20 66 6f 72 77 61 72 64 3a 20 22 20 6c 65 64 read-number."Look.forward:.".led
45e20 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 6c 6f 6f 6b 2d 66 6f 72 77 61 72 64 29 29 0a 20 20 20 20 ger-schedule-look-forward)).....
45e40 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 .............(list.ledger-schedu
45e60 6c 65 2d 66 69 6c 65 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 6c 6f 6f 6b 2d 62 61 63 le-file.ledger-schedule-look-bac
45e80 6b 77 61 72 64 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 6c 6f 6f 6b 2d 66 6f 72 77 61 kward.ledger-schedule-look-forwa
45ea0 72 64 29 29 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 61 6e 64 20 66 69 6c 65 20 28 66 69 6c 65 2d rd)))...(unless.(and.file.(file-
45ec0 65 78 69 73 74 73 2d 70 20 66 69 6c 65 29 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 43 6f 75 6c exists-p.file)).....(error."Coul
45ee0 64 20 6e 6f 74 20 66 69 6e 64 20 6c 65 64 67 65 72 20 73 63 68 65 64 75 6c 65 20 66 69 6c 65 20 d.not.find.ledger.schedule.file.
45f00 61 74 20 25 73 22 20 66 69 6c 65 29 29 0a 20 20 28 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 at.%s".file))...(ledger-schedule
45f20 2d 63 72 65 61 74 65 2d 61 75 74 6f 2d 62 75 66 66 65 72 0a 20 20 20 28 6c 65 64 67 65 72 2d 73 -create-auto-buffer....(ledger-s
45f40 63 68 65 64 75 6c 65 2d 73 63 61 6e 2d 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 66 69 6c 65 29 0a chedule-scan-transactions.file).
45f60 20 20 20 6c 6f 6f 6b 2d 62 61 63 6b 77 61 72 64 0a 20 20 20 6c 6f 6f 6b 2d 66 6f 72 77 61 72 64 ...look-backward....look-forward
45f80 29 0a 20 20 28 70 6f 70 2d 74 6f 2d 62 75 66 66 65 72 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 )...(pop-to-buffer.ledger-schedu
45fa0 6c 65 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 0a 0a 0a 28 70 72 6f 76 69 64 65 20 27 6c 65 64 le-buffer-name))...(provide.'led
45fc0 67 65 72 2d 73 63 68 65 64 75 6c 65 29 0a 0a 3b 3b 3b 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 ger-schedule)..;;;.ledger-schedu
45fe0 6c 65 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 le.el.ends.here.................
46000 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 33 32 36 2e 32 30 30 32 2f 6c 65 64 67 65 72 ledger-mode-20240326.2002/ledger
46020 2d 73 6f 72 74 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -sort.el........................
46040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46060 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
46080 30 30 30 37 36 31 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 37 34 31 00 20 30 00 00 00 0007611.00000000000.015741..0...
460a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
460c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
460e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46100 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
46120 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
46140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
461a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
461c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
461e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46200 3b 3b 3b 20 6c 65 64 67 65 72 2d 73 6f 72 74 2e 65 6c 20 2d 2d 2d 20 48 65 6c 70 65 72 20 63 6f ;;;.ledger-sort.el.---.Helper.co
46220 64 65 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 74 68 65 20 22 6c 65 64 67 65 72 22 20 63 6f 6d de.for.use.with.the."ledger".com
46240 6d 61 6e 64 2d 6c 69 6e 65 20 74 6f 6f 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 mand-line.tool..-*-.lexical-bind
46260 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 ing:.t;.-*-..;;.Copyright.(C).20
46280 30 33 2d 32 30 31 36 20 4a 6f 68 6e 20 57 69 65 67 6c 65 79 20 28 6a 6f 68 6e 77 20 41 54 20 67 03-2016.John.Wiegley.(johnw.AT.g
462a0 6e 75 20 44 4f 54 20 6f 72 67 29 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 6e 6f 74 nu.DOT.org)..;;.This.file.is.not
462c0 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 54 68 69 73 20 69 73 20 .part.of.GNU.Emacs...;;.This.is.
462e0 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 free.software;.you.can.redistrib
46300 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 20 75 6e 64 65 72 0a 3b 3b ute.it.and/or.modify.it.under.;;
46320 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 .the.terms.of.the.GNU.General.Pu
46340 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 blic.License.as.published.by.the
46360 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 .Free.;;.Software.Foundation;.ei
46380 74 68 65 72 20 76 65 72 73 69 6f 6e 20 32 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 ther.version.2,.or.(at.your.opti
463a0 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 0a 3b 3b 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 on).any.later.;;.version..;;.;;.
463c0 54 68 69 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 This.is.distributed.in.the.hope.
463e0 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 that.it.will.be.useful,.but.WITH
46400 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 OUT.;;.ANY.WARRANTY;.without.eve
46420 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 n.the.implied.warranty.of.MERCHA
46440 4e 54 41 42 49 4c 49 54 59 20 6f 72 0a 3b 3b 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 NTABILITY.or.;;.FITNESS.FOR.A.PA
46460 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 RTICULAR.PURPOSE...See.the.GNU.G
46480 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 66 6f 72 20 6d 6f 72 eneral.Public.License.;;.for.mor
464a0 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 e.details..;;.;;.You.should.have
464c0 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 .received.a.copy.of.the.GNU.Gene
464e0 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 ral.Public.License.;;.along.with
46500 20 47 4e 55 20 45 6d 61 63 73 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 .GNU.Emacs;.see.the.file.COPYING
46520 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 20 ...If.not,.write.to.the.;;.Free.
46540 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 Software.Foundation,.Inc.,.51.Fr
46560 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 anklin.Street,.Fifth.Floor,.Bost
46580 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 20 55 53 41 2e 0a 0a 0a 0a 3b 3b 3b on,.;;.MA.02110-1301.USA.....;;;
465a0 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 28 72 65 71 75 .Commentary:.;;..;;;.Code:.(requ
465c0 69 72 65 20 27 6c 65 64 67 65 72 2d 72 65 67 65 78 29 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 ire.'ledger-regex).(require.'led
465e0 67 65 72 2d 6e 61 76 69 67 61 74 65 29 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 78 ger-navigate).(require.'ledger-x
46600 61 63 74 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 73 6f 72 74 2d 66 69 6e 64 2d 73 74 act)..(defun.ledger-sort-find-st
46620 61 72 74 20 28 29 0a 20 20 22 46 69 6e 64 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 art.()..."Find.the.beginning.of.
46640 61 20 73 6f 72 74 20 72 65 67 69 6f 6e 2e 22 0a 20 20 28 77 68 65 6e 20 28 72 65 2d 73 65 61 72 a.sort.region."...(when.(re-sear
46660 63 68 2d 66 6f 72 77 61 72 64 20 22 3b 2e 2a 4c 65 64 67 65 72 2d 6d 6f 64 65 3a 2e 2a 53 74 61 ch-forward.";.*Ledger-mode:.*Sta
46680 72 74 20 73 6f 72 74 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 rt.sort".nil.t).....(match-end.0
466a0 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 73 6f 72 74 2d 66 69 6e 64 2d 65 6e 64 )))..(defun.ledger-sort-find-end
466c0 20 28 29 0a 20 20 22 46 69 6e 64 20 74 68 65 20 65 6e 64 20 6f 66 20 61 20 73 6f 72 74 20 72 65 .()..."Find.the.end.of.a.sort.re
466e0 67 69 6f 6e 2e 22 0a 20 20 28 77 68 65 6e 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 gion."...(when.(re-search-forwar
46700 64 20 22 3b 2e 2a 4c 65 64 67 65 72 2d 6d 6f 64 65 3a 2e 2a 45 6e 64 20 73 6f 72 74 22 20 6e 69 d.";.*Ledger-mode:.*End.sort".ni
46720 6c 20 74 29 0a 20 20 20 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 29 0a 0a 28 64 65 66 75 6e l.t).....(match-end.0)))..(defun
46740 20 6c 65 64 67 65 72 2d 73 6f 72 74 2d 69 6e 73 65 72 74 2d 73 74 61 72 74 2d 6d 61 72 6b 20 28 .ledger-sort-insert-start-mark.(
46760 29 0a 20 20 22 49 6e 73 65 72 74 20 61 20 6d 61 72 6b 65 72 20 74 6f 20 73 74 61 72 74 20 61 20 )..."Insert.a.marker.to.start.a.
46780 73 6f 72 74 20 72 65 67 69 6f 6e 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 sort.region."...(interactive)...
467a0 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 (save-excursion.....(goto-char.(
467c0 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 6c 65 64 67 65 72 2d 73 6f point-min)).....(when.(ledger-so
467e0 72 74 2d 66 69 6e 64 2d 73 74 61 72 74 29 0a 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 rt-find-start).......(delete-reg
46800 69 6f 6e 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 20 28 6d 61 74 63 68 2d 65 ion.(match-beginning.0).(match-e
46820 6e 64 20 30 29 29 29 29 0a 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 nd.0))))...(beginning-of-line)..
46840 20 28 69 6e 73 65 72 74 20 22 5c 6e 3b 20 4c 65 64 67 65 72 2d 6d 6f 64 65 3a 20 53 74 61 72 74 .(insert."\n;.Ledger-mode:.Start
46860 20 73 6f 72 74 5c 6e 5c 6e 22 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 73 6f 72 74 .sort\n\n"))..(defun.ledger-sort
46880 2d 69 6e 73 65 72 74 2d 65 6e 64 2d 6d 61 72 6b 20 28 29 0a 20 20 22 49 6e 73 65 72 74 20 61 20 -insert-end-mark.()..."Insert.a.
468a0 6d 61 72 6b 65 72 20 74 6f 20 65 6e 64 20 61 20 73 6f 72 74 20 72 65 67 69 6f 6e 2e 22 0a 20 20 marker.to.end.a.sort.region."...
468c0 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a (interactive)...(save-excursion.
468e0 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 ....(goto-char.(point-min)).....
46900 28 77 68 65 6e 20 28 6c 65 64 67 65 72 2d 73 6f 72 74 2d 66 69 6e 64 2d 65 6e 64 29 0a 20 20 20 (when.(ledger-sort-find-end)....
46920 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 ...(delete-region.(match-beginni
46940 6e 67 20 30 29 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 29 29 0a 20 20 28 62 65 67 69 6e 6e ng.0).(match-end.0))))...(beginn
46960 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 3b 20 4c 65 64 67 ing-of-line)...(insert."\n;.Ledg
46980 65 72 2d 6d 6f 64 65 3a 20 45 6e 64 20 73 6f 72 74 5c 6e 5c 6e 22 29 29 0a 0a 28 64 65 66 75 6e er-mode:.End.sort\n\n"))..(defun
469a0 20 6c 65 64 67 65 72 2d 73 6f 72 74 2d 73 74 61 72 74 6b 65 79 20 28 29 0a 20 20 22 52 65 74 75 .ledger-sort-startkey.()..."Retu
469c0 72 6e 20 61 20 6e 75 6d 65 72 69 63 20 73 6f 72 74 20 6b 65 79 20 62 61 73 65 64 20 6f 6e 20 74 rn.a.numeric.sort.key.based.on.t
469e0 68 65 20 64 61 74 65 20 6f 66 20 74 68 65 20 78 61 63 74 20 62 65 67 69 6e 6e 69 6e 67 20 61 74 he.date.of.the.xact.beginning.at
46a00 20 70 6f 69 6e 74 2e 22 0a 20 20 3b 3b 20 43 61 6e 20 75 73 65 20 60 74 69 6d 65 2d 63 6f 6e 76 .point."...;;.Can.use.`time-conv
46a20 65 72 74 27 20 74 6f 20 72 65 74 75 72 6e 20 61 6e 20 69 6e 74 65 67 65 72 20 69 6e 73 74 65 61 ert'.to.return.an.integer.instea
46a40 64 20 6f 66 20 61 20 66 6c 6f 61 74 69 6e 67 2d 70 6f 69 6e 74 0a 20 20 3b 3b 20 6e 75 6d 62 65 d.of.a.floating-point...;;.numbe
46a60 72 2c 20 73 74 61 72 74 69 6e 67 20 69 6e 20 45 6d 61 63 73 20 32 37 2e 0a 20 20 28 66 6c 6f 61 r,.starting.in.Emacs.27....(floa
46a80 74 2d 74 69 6d 65 0a 20 20 20 28 6c 65 64 67 65 72 2d 70 61 72 73 65 2d 69 73 6f 2d 64 61 74 65 t-time....(ledger-parse-iso-date
46aa0 0a 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 .....(buffer-substring-no-proper
46ac0 74 69 65 73 20 28 70 6f 69 6e 74 29 20 28 2b 20 31 30 20 28 70 6f 69 6e 74 29 29 29 29 29 29 0a ties.(point).(+.10.(point)))))).
46ae0 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 73 6f 72 74 2d 72 65 67 69 6f 6e 20 28 62 65 67 20 .(defun.ledger-sort-region.(beg.
46b00 65 6e 64 29 0a 20 20 22 53 6f 72 74 20 74 68 65 20 72 65 67 69 6f 6e 20 66 72 6f 6d 20 42 45 47 end)..."Sort.the.region.from.BEG
46b20 20 74 6f 20 45 4e 44 20 69 6e 20 63 68 72 6f 6e 6f 6c 6f 67 69 63 61 6c 20 6f 72 64 65 72 2e 22 .to.END.in.chronological.order."
46b40 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 72 22 29 20 3b 3b 20 6c 6f 61 64 20 62 65 67 ...(interactive."r").;;.load.beg
46b60 20 61 6e 64 20 65 6e 64 20 66 72 6f 6d 20 70 6f 69 6e 74 20 61 6e 64 20 6d 61 72 6b 0a 20 20 3b .and.end.from.point.and.mark...;
46b80 3b 20 61 75 74 6f 6d 61 67 69 63 61 6c 6c 79 0a 20 20 28 6c 65 74 2a 20 28 28 62 6f 75 6e 64 73 ;.automagically...(let*.((bounds
46ba0 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 66 69 6e 64 2d 78 61 63 74 2d 65 78 74 65 .(ledger-navigate-find-xact-exte
46bc0 6e 74 73 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 2d 64 65 nts.(point)))..........(point-de
46be0 6c 74 61 20 28 2d 20 28 70 6f 69 6e 74 29 20 28 63 61 72 20 62 6f 75 6e 64 73 29 29 29 0a 20 20 lta.(-.(point).(car.bounds)))...
46c00 20 20 20 20 20 20 20 28 74 61 72 67 65 74 2d 78 61 63 74 20 28 62 75 66 66 65 72 2d 73 75 62 73 .......(target-xact.(buffer-subs
46c20 74 72 69 6e 67 20 28 63 61 72 20 62 6f 75 6e 64 73 29 20 28 63 61 64 72 20 62 6f 75 6e 64 73 29 tring.(car.bounds).(cadr.bounds)
46c40 29 29 0a 20 20 20 20 20 20 20 20 20 28 69 6e 68 69 62 69 74 2d 6d 6f 64 69 66 69 63 61 74 69 6f ))..........(inhibit-modificatio
46c60 6e 2d 68 6f 6f 6b 73 20 74 29 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a n-hooks.t)).....(save-excursion.
46c80 20 20 20 20 20 20 28 73 61 76 65 2d 72 65 73 74 72 69 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 ......(save-restriction.........
46ca0 28 67 6f 74 6f 2d 63 68 61 72 20 62 65 67 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 6d 61 6b 65 20 (goto-char.beg).........;;.make.
46cc0 73 75 72 65 20 62 65 67 20 6f 66 20 72 65 67 69 6f 6e 20 69 73 20 61 74 20 74 68 65 20 62 65 67 sure.beg.of.region.is.at.the.beg
46ce0 69 6e 6e 69 6e 67 20 6f 66 20 61 20 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 28 62 65 67 69 6e 6e inning.of.a.line.........(beginn
46d00 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 6d 61 6b 65 20 73 75 72 ing-of-line).........;;.make.sur
46d20 65 20 70 6f 69 6e 74 20 69 73 20 61 74 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 61 e.point.is.at.the.beginning.of.a
46d40 20 78 61 63 74 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6c 6f 6f 6b 69 6e 67 2d 61 .xact.........(unless.(looking-a
46d60 74 20 6c 65 64 67 65 72 2d 70 61 79 65 65 2d 61 6e 79 2d 73 74 61 74 75 73 2d 72 65 67 65 78 29 t.ledger-payee-any-status-regex)
46d80 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 6e 65 78 74 ...........(ledger-navigate-next
46da0 2d 78 61 63 74 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 62 65 67 20 28 70 6f 69 6e 74 -xact)).........(setq.beg.(point
46dc0 29 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 65 6e 64 29 0a 20 20 20 20 20 )).........(goto-char.end)......
46de0 20 20 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 6e 65 78 74 2d 78 61 63 74 29 0a 20 ...(ledger-navigate-next-xact)..
46e00 20 20 20 20 20 20 20 3b 3b 20 6d 61 6b 65 20 73 75 72 65 20 65 6e 64 20 6f 66 20 72 65 67 69 6f .......;;.make.sure.end.of.regio
46e20 6e 20 69 73 20 61 74 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 6e 65 78 74 20 72 65 n.is.at.the.beginning.of.next.re
46e40 63 6f 72 64 0a 20 20 20 20 20 20 20 20 3b 3b 20 61 66 74 65 72 20 74 68 65 20 72 65 67 69 6f 6e cord.........;;.after.the.region
46e60 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65 6e 64 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 .........(setq.end.(point)).....
46e80 20 20 20 20 28 6e 61 72 72 6f 77 2d 74 6f 2d 72 65 67 69 6f 6e 20 62 65 67 20 65 6e 64 29 0a 20 ....(narrow-to-region.beg.end)..
46ea0 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 62 65 67 29 0a 0a 20 20 20 20 20 20 20 20 .......(goto-char.beg)..........
46ec0 28 6c 65 74 20 28 28 69 6e 68 69 62 69 74 2d 66 69 65 6c 64 2d 74 65 78 74 2d 6d 6f 74 69 6f 6e (let.((inhibit-field-text-motion
46ee0 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 6f 72 74 2d 73 75 62 72 0a 20 20 20 20 20 20 .t))...........(sort-subr.......
46f00 20 20 20 20 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 23 27 6c 65 64 67 65 72 2d 6e 61 76 .....nil............#'ledger-nav
46f20 69 67 61 74 65 2d 6e 65 78 74 2d 78 61 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 23 27 6c 65 64 igate-next-xact............#'led
46f40 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 65 6e 64 2d 6f 66 2d 78 61 63 74 0a 20 20 20 20 20 20 20 ger-navigate-end-of-xact........
46f60 20 20 20 20 23 27 6c 65 64 67 65 72 2d 73 6f 72 74 2d 73 74 61 72 74 6b 65 79 29 29 29 29 0a 0a ....#'ledger-sort-startkey))))..
46f80 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 ....(goto-char.(point-min)).....
46fa0 28 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 74 61 72 67 65 74 2d 78 61 63 74 29 0a 20 20 20 (search-forward.target-xact)....
46fc0 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 2b 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 .(goto-char.(+.(match-beginning.
46fe0 30 29 20 70 6f 69 6e 74 2d 64 65 6c 74 61 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 0).point-delta))))..(defun.ledge
47000 72 2d 73 6f 72 74 2d 62 75 66 66 65 72 20 28 29 0a 20 20 22 53 6f 72 74 20 74 68 65 20 65 6e 74 r-sort-buffer.()..."Sort.the.ent
47020 69 72 65 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 ire.buffer."...(interactive)...(
47040 6c 65 74 20 28 73 6f 72 74 2d 73 74 61 72 74 20 73 6f 72 74 2d 65 6e 64 29 0a 20 20 20 20 28 73 let.(sort-start.sort-end).....(s
47060 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 ave-excursion.......(goto-char.(
47080 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 73 6f 72 74 2d 73 74 61 point-min)).......(setq.sort-sta
470a0 72 74 20 28 6c 65 64 67 65 72 2d 73 6f 72 74 2d 66 69 6e 64 2d 73 74 61 72 74 29 0a 20 20 20 20 rt.(ledger-sort-find-start).....
470c0 20 20 20 20 20 20 20 20 73 6f 72 74 2d 65 6e 64 20 28 6c 65 64 67 65 72 2d 73 6f 72 74 2d 66 69 ........sort-end.(ledger-sort-fi
470e0 6e 64 2d 65 6e 64 29 29 29 0a 20 20 20 20 28 6c 65 64 67 65 72 2d 73 6f 72 74 2d 72 65 67 69 6f nd-end))).....(ledger-sort-regio
47100 6e 20 28 6f 72 20 73 6f 72 74 2d 73 74 61 72 74 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 n.(or.sort-start.(point-min))...
47120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 72 20 73 6f 72 74 2d 65 ......................(or.sort-e
47140 6e 64 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 6c 65 nd.(point-max)))))..(provide.'le
47160 64 67 65 72 2d 73 6f 72 74 29 0a 0a 3b 3b 3b 20 6c 65 64 67 65 72 2d 73 6f 72 74 2e 65 6c 20 65 dger-sort)..;;;.ledger-sort.el.e
47180 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 nds.here........................
471a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
471c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
471e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47200 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 33 32 36 2e 32 30 30 32 2f 6c 65 64 67 65 72 ledger-mode-20240326.2002/ledger
47220 2d 73 74 61 74 65 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -state.el.......................
47240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47260 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
47280 30 30 32 33 30 37 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 30 37 36 00 20 30 00 00 00 0023077.00000000000.016076..0...
472a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
472c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
472e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47300 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
47320 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
47340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
473a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
473c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
473e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
47400 3b 3b 3b 20 6c 65 64 67 65 72 2d 73 74 61 74 65 2e 65 6c 20 2d 2d 2d 20 48 65 6c 70 65 72 20 63 ;;;.ledger-state.el.---.Helper.c
47420 6f 64 65 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 74 68 65 20 22 6c 65 64 67 65 72 22 20 63 6f ode.for.use.with.the."ledger".co
47440 6d 6d 61 6e 64 2d 6c 69 6e 65 20 74 6f 6f 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e mmand-line.tool..-*-.lexical-bin
47460 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 ding:.t;.-*-..;;.Copyright.(C).2
47480 30 30 33 2d 32 30 31 36 20 4a 6f 68 6e 20 57 69 65 67 6c 65 79 20 28 6a 6f 68 6e 77 20 41 54 20 003-2016.John.Wiegley.(johnw.AT.
474a0 67 6e 75 20 44 4f 54 20 6f 72 67 29 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 6e 6f gnu.DOT.org)..;;.This.file.is.no
474c0 74 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 54 68 69 73 20 69 73 t.part.of.GNU.Emacs...;;.This.is
474e0 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 .free.software;.you.can.redistri
47500 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 20 75 6e 64 65 72 0a 3b bute.it.and/or.modify.it.under.;
47520 3b 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 ;.the.terms.of.the.GNU.General.P
47540 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 ublic.License.as.published.by.th
47560 65 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 e.Free.;;.Software.Foundation;.e
47580 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 32 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 ither.version.2,.or.(at.your.opt
475a0 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 0a 3b 3b 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b ion).any.later.;;.version..;;.;;
475c0 20 54 68 69 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 .This.is.distributed.in.the.hope
475e0 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 .that.it.will.be.useful,.but.WIT
47600 48 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 HOUT.;;.ANY.WARRANTY;.without.ev
47620 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 en.the.implied.warranty.of.MERCH
47640 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 0a 3b 3b 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 ANTABILITY.or.;;.FITNESS.FOR.A.P
47660 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 ARTICULAR.PURPOSE...See.the.GNU.
47680 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 66 6f 72 20 6d 6f General.Public.License.;;.for.mo
476a0 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 re.details..;;.;;.You.should.hav
476c0 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e e.received.a.copy.of.the.GNU.Gen
476e0 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 eral.Public.License.;;.along.wit
47700 68 20 47 4e 55 20 45 6d 61 63 73 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e h.GNU.Emacs;.see.the.file.COPYIN
47720 47 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 G...If.not,.write.to.the.;;.Free
47740 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 .Software.Foundation,.Inc.,.51.F
47760 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 ranklin.Street,.Fifth.Floor,.Bos
47780 74 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 20 55 53 41 2e 0a 0a 0a 3b 3b 3b ton,.;;.MA.02110-1301.USA....;;;
477a0 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 20 55 74 69 6c 69 74 69 65 73 20 66 6f 72 20 64 65 .Commentary:.;;.Utilities.for.de
477c0 61 6c 69 6e 67 20 77 69 74 68 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 61 6e 64 20 70 6f 73 74 69 aling.with.transaction.and.posti
477e0 6e 67 20 73 74 61 74 75 73 2e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 28 72 65 71 75 69 72 65 20 27 ng.status...;;;.Code:.(require.'
47800 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 29 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 ledger-navigate).(require.'ledge
47820 72 2d 63 6f 6e 74 65 78 74 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 63 6c r-context)..(defcustom.ledger-cl
47840 65 61 72 2d 77 68 6f 6c 65 2d 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 6e 69 6c 0a 20 20 22 49 66 ear-whole-transactions.nil..."If
47860 20 6e 6f 6e 2d 6e 69 6c 2c 20 63 6c 65 61 72 20 77 68 6f 6c 65 20 74 72 61 6e 73 61 63 74 69 6f .non-nil,.clear.whole.transactio
47880 6e 73 2c 20 6e 6f 74 20 69 6e 64 69 76 69 64 75 61 6c 20 70 6f 73 74 69 6e 67 73 2e 22 0a 20 20 ns,.not.individual.postings."...
478a0 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 29 :type.'boolean...:group.'ledger)
478c0 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 74 72 61 6e 73 61 63 74 69 6f 6e 2d 73 74 61 74 ..(defun.ledger-transaction-stat
478e0 65 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 73 74 61 74 65 20 6f 66 20 74 68 65 20 e.()..."Return.the.state.of.the.
47900 74 72 61 6e 73 61 63 74 69 6f 6e 20 61 74 20 70 6f 69 6e 74 2e 22 0a 20 20 28 73 61 76 65 2d 65 transaction.at.point."...(save-e
47920 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 28 6c 6f 6f 6b 69 6e 67 2d xcursion.....(when.(or.(looking-
47940 61 74 20 22 5e 5b 30 2d 39 5d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 2d 73 at."^[0-9]")...............(re-s
47960 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 20 22 5e 5b 30 2d 39 5d 22 20 6e 69 6c 20 74 29 29 0a earch-backward."^[0-9]".nil.t)).
47980 20 20 20 20 20 20 28 73 6b 69 70 2d 63 68 61 72 73 2d 66 6f 72 77 61 72 64 20 22 30 2d 39 2e 2f ......(skip-chars-forward."0-9./
479a0 3d 5c 5c 2d 22 29 0a 20 20 20 20 20 20 28 73 6b 69 70 2d 73 79 6e 74 61 78 2d 66 6f 72 77 61 72 =\\-").......(skip-syntax-forwar
479c0 64 20 22 20 22 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 d.".").......(cond.((looking-at.
479e0 22 21 5c 5c 73 2d 2a 22 29 20 27 70 65 6e 64 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 "!\\s-*").'pending).............
47a00 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 2a 5c 5c 73 2d 2a 22 29 20 27 63 6c 65 61 72 65 ((looking-at."\\*\\s-*").'cleare
47a20 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 74 20 6e 69 6c 29 29 29 29 29 0a 0a 28 64 65 66 d).............(t.nil)))))..(def
47a40 75 6e 20 6c 65 64 67 65 72 2d 70 6f 73 74 69 6e 67 2d 73 74 61 74 65 20 28 29 0a 20 20 22 52 65 un.ledger-posting-state.()..."Re
47a60 74 75 72 6e 20 74 68 65 20 73 74 61 74 65 20 6f 66 20 74 68 65 20 70 6f 73 74 69 6e 67 2e 22 0a turn.the.state.of.the.posting.".
47a80 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 ..(save-excursion.....(goto-char
47aa0 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 29 0a 20 20 20 20 .(line-beginning-position)).....
47ac0 28 73 6b 69 70 2d 73 79 6e 74 61 78 2d 66 6f 72 77 61 72 64 20 22 20 22 29 0a 20 20 20 20 28 63 (skip-syntax-forward.".").....(c
47ae0 6f 6e 64 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 21 5c 5c 73 2d 2a 22 29 20 27 70 65 6e 64 ond.((looking-at."!\\s-*").'pend
47b00 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 2a ing)...........((looking-at."\\*
47b20 5c 5c 73 2d 2a 22 29 20 27 63 6c 65 61 72 65 64 29 0a 20 20 20 20 20 20 20 20 20 20 28 74 20 28 \\s-*").'cleared)...........(t.(
47b40 6c 65 64 67 65 72 2d 74 72 61 6e 73 61 63 74 69 6f 6e 2d 73 74 61 74 65 29 29 29 29 29 0a 0a 28 ledger-transaction-state)))))..(
47b60 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 63 68 61 72 2d 66 72 6f 6d 2d 73 74 61 74 65 20 28 73 74 defun.ledger-char-from-state.(st
47b80 61 74 65 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 63 68 61 72 20 72 65 70 72 65 73 65 6e ate)..."Return.the.char.represen
47ba0 74 61 74 69 6f 6e 20 6f 66 20 53 54 41 54 45 2e 22 0a 20 20 28 69 66 20 73 74 61 74 65 0a 20 20 tation.of.STATE."...(if.state...
47bc0 20 20 20 20 28 69 66 20 28 65 71 20 73 74 61 74 65 20 27 70 65 6e 64 69 6e 67 29 0a 20 20 20 20 ....(if.(eq.state.'pending).....
47be0 20 20 20 20 20 20 22 21 22 0a 20 20 20 20 20 20 20 20 22 2a 22 29 0a 20 20 20 20 22 22 29 29 0a ......"!"........."*")....."")).
47c00 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 73 74 61 74 65 2d 66 72 6f 6d 2d 63 68 61 72 20 28 .(defun.ledger-state-from-char.(
47c20 73 74 61 74 65 2d 63 68 61 72 29 0a 20 20 22 47 65 74 20 73 74 61 74 65 20 66 72 6f 6d 20 53 54 state-char)..."Get.state.from.ST
47c40 41 54 45 2d 43 48 41 52 2e 22 0a 20 20 28 63 6f 6e 64 20 28 28 65 71 6c 20 73 74 61 74 65 2d 63 ATE-CHAR."...(cond.((eql.state-c
47c60 68 61 72 20 3f 5c 21 29 20 27 70 65 6e 64 69 6e 67 29 0a 20 20 20 20 20 20 20 20 28 28 65 71 6c har.?\!).'pending).........((eql
47c80 20 73 74 61 74 65 2d 63 68 61 72 20 3f 5c 2a 29 20 27 63 6c 65 61 72 65 64 29 0a 20 20 20 20 20 .state-char.?\*).'cleared)......
47ca0 20 20 20 28 28 65 71 6c 20 73 74 61 74 65 2d 63 68 61 72 20 3f 5c 3b 29 20 27 63 6f 6d 6d 65 6e ...((eql.state-char.?\;).'commen
47cc0 74 29 0a 20 20 20 20 20 20 20 20 28 74 20 6e 69 6c 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 6c 65 t).........(t.nil)))...(defun.le
47ce0 64 67 65 72 2d 73 74 61 74 65 2d 66 72 6f 6d 2d 73 74 72 69 6e 67 20 28 73 74 61 74 65 2d 73 74 dger-state-from-string.(state-st
47d00 72 69 6e 67 29 0a 20 20 22 47 65 74 20 73 74 61 74 65 20 66 72 6f 6d 20 53 54 41 54 45 2d 53 54 ring)..."Get.state.from.STATE-ST
47d20 52 49 4e 47 2e 22 0a 20 20 28 77 68 65 6e 20 73 74 61 74 65 2d 73 74 72 69 6e 67 0a 20 20 20 20 RING."...(when.state-string.....
47d40 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 21 22 20 73 74 (cond......((string-match."!".st
47d60 61 74 65 2d 73 74 72 69 6e 67 29 20 27 70 65 6e 64 69 6e 67 29 0a 20 20 20 20 20 28 28 73 74 72 ate-string).'pending)......((str
47d80 69 6e 67 2d 6d 61 74 63 68 20 22 5c 5c 2a 22 20 73 74 61 74 65 2d 73 74 72 69 6e 67 29 20 27 63 ing-match."\\*".state-string).'c
47da0 6c 65 61 72 65 64 29 0a 20 20 20 20 20 28 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 3b 22 20 leared)......((string-match.";".
47dc0 73 74 61 74 65 2d 73 74 72 69 6e 67 29 20 27 63 6f 6d 6d 65 6e 74 29 0a 20 20 20 20 20 28 74 20 state-string).'comment)......(t.
47de0 6e 69 6c 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 74 6f 67 67 6c 65 2d 63 75 nil))))..(defun.ledger-toggle-cu
47e00 72 72 65 6e 74 2d 70 6f 73 74 69 6e 67 20 28 26 6f 70 74 69 6f 6e 61 6c 20 73 74 79 6c 65 29 0a rrent-posting.(&optional.style).
47e20 20 20 22 54 6f 67 67 6c 65 20 74 68 65 20 63 6c 65 61 72 65 64 20 73 74 61 74 75 73 20 6f 66 20 .."Toggle.the.cleared.status.of.
47e40 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 75 6e 64 65 72 20 70 6f 69 6e 74 2e 0a 4f 70 74 the.transaction.under.point..Opt
47e60 69 6f 6e 61 6c 20 61 72 67 75 6d 65 6e 74 20 53 54 59 4c 45 20 6d 61 79 20 62 65 20 60 70 65 6e ional.argument.STYLE.may.be.`pen
47e80 64 69 6e 67 27 20 6f 72 20 60 63 6c 65 61 72 65 64 27 2c 20 64 65 70 65 6e 64 69 6e 67 0a 6f 6e ding'.or.`cleared',.depending.on
47ea0 20 77 68 69 63 68 20 74 79 70 65 20 6f 66 20 73 74 61 74 75 73 20 74 68 65 20 63 61 6c 6c 65 72 .which.type.of.status.the.caller
47ec0 20 77 69 73 68 65 73 20 74 6f 20 69 6e 64 69 63 61 74 65 20 28 64 65 66 61 75 6c 74 20 69 73 0a .wishes.to.indicate.(default.is.
47ee0 60 63 6c 65 61 72 65 64 27 29 2e 20 20 52 65 74 75 72 6e 73 20 74 68 65 20 6e 65 77 20 73 74 61 `cleared')...Returns.the.new.sta
47f00 74 75 73 20 61 73 20 60 70 65 6e 64 69 6e 67 27 20 60 63 6c 65 61 72 65 64 27 20 6f 72 20 6e 69 tus.as.`pending'.`cleared'.or.ni
47f20 6c 2e 0a 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 73 20 72 61 74 68 65 72 20 63 6f 6d 70 6c l..This.function.is.rather.compl
47f40 69 63 61 74 65 64 20 62 65 63 61 75 73 65 20 69 74 20 6d 75 73 74 20 70 72 65 73 65 72 76 65 20 icated.because.it.must.preserve.
47f60 62 6f 74 68 0a 74 68 65 20 6f 76 65 72 61 6c 6c 20 66 6f 72 6d 61 74 74 69 6e 67 20 6f 66 20 74 both.the.overall.formatting.of.t
47f80 68 65 20 6c 65 64 67 65 72 20 78 61 63 74 2c 20 61 73 20 77 65 6c 6c 20 61 73 20 65 6e 73 75 72 he.ledger.xact,.as.well.as.ensur
47fa0 69 6e 67 0a 74 68 61 74 20 74 68 65 20 6d 6f 73 74 20 6d 69 6e 69 6d 61 6c 20 64 69 73 70 6c 61 ing.that.the.most.minimal.displa
47fc0 79 20 66 6f 72 6d 61 74 20 69 73 20 75 73 65 64 2e 20 20 54 68 69 73 20 63 6f 75 6c 64 20 62 65 y.format.is.used...This.could.be
47fe0 0a 61 63 68 69 65 76 65 64 20 6d 6f 72 65 20 63 65 72 74 61 69 6e 6c 79 20 62 79 20 70 61 73 73 .achieved.more.certainly.by.pass
48000 69 6e 67 20 74 68 65 20 78 61 63 74 20 74 6f 20 6c 65 64 67 65 72 20 66 6f 72 0a 66 6f 72 6d 61 ing.the.xact.to.ledger.for.forma
48020 74 74 69 6e 67 2c 20 62 75 74 20 64 6f 69 6e 67 20 73 6f 20 63 61 75 73 65 73 20 69 6e 6c 69 6e tting,.but.doing.so.causes.inlin
48040 65 20 6d 61 74 68 20 65 78 70 72 65 73 73 69 6f 6e 73 20 74 6f 20 62 65 0a 64 72 6f 70 70 65 64 e.math.expressions.to.be.dropped
48060 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 62 6f 75 6e ."...(interactive)...(let.((boun
48080 64 73 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 66 69 6e 64 2d 78 61 63 74 2d 65 78 ds.(ledger-navigate-find-xact-ex
480a0 74 65 6e 74 73 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 6e 65 77 2d 73 74 61 74 tents.(point))).........new-stat
480c0 75 73 20 63 75 72 2d 73 74 61 74 75 73 29 0a 20 20 20 20 3b 3b 20 55 6e 63 6f 6d 70 61 63 74 20 us.cur-status).....;;.Uncompact.
480e0 74 68 65 20 78 61 63 74 2c 20 74 6f 20 6d 61 6b 65 20 69 74 20 65 61 73 69 65 72 20 74 6f 20 74 the.xact,.to.make.it.easier.to.t
48100 6f 67 67 6c 65 20 74 68 65 0a 20 20 20 20 3b 3b 20 74 72 61 6e 73 61 63 74 69 6f 6e 0a 20 20 20 oggle.the.....;;.transaction....
48120 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 20 20 3b 3b 20 74 68 69 73 20 65 78 63 75 72 73 .(save-excursion..;;.this.excurs
48140 69 6f 6e 20 63 68 65 63 6b 73 20 73 74 61 74 65 20 6f 66 20 65 6e 74 69 72 65 0a 20 20 20 20 20 ion.checks.state.of.entire......
48160 20 3b 3b 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 61 6e 64 20 75 6e 63 6c 65 61 72 73 20 69 66 20 .;;.transaction.and.unclears.if.
48180 6d 61 72 6b 65 64 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 63 61 72 20 62 6f 75 marked.......(goto-char.(car.bou
481a0 6e 64 73 29 29 20 20 3b 3b 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 78 61 63 74 0a 20 20 20 20 nds))..;;.beginning.of.xact.....
481c0 20 20 28 73 6b 69 70 2d 63 68 61 72 73 2d 66 6f 72 77 61 72 64 20 22 30 2d 39 2e 2f 3d 5c 5c 2d ..(skip-chars-forward."0-9./=\\-
481e0 22 29 20 3b 3b 20 73 6b 69 70 20 74 68 65 20 64 61 74 65 0a 20 20 20 20 20 20 28 73 6b 69 70 2d ").;;.skip.the.date.......(skip-
48200 63 68 61 72 73 2d 66 6f 72 77 61 72 64 20 22 20 5c 74 22 29 20 3b 3b 20 73 6b 69 70 20 74 68 65 chars-forward.".\t").;;.skip.the
48220 20 77 68 69 74 65 20 73 70 61 63 65 20 61 66 74 65 72 20 74 68 65 20 64 61 74 65 0a 20 20 20 20 .white.space.after.the.date.....
48240 20 20 28 73 65 74 71 20 63 75 72 2d 73 74 61 74 75 73 20 28 61 6e 64 20 28 6d 65 6d 62 65 72 20 ..(setq.cur-status.(and.(member.
48260 28 63 68 61 72 2d 61 66 74 65 72 29 20 27 28 3f 5c 2a 20 3f 5c 21 29 29 0a 20 20 20 20 20 20 20 (char-after).'(?\*.?\!))........
48280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 73 74 61 .....................(ledger-sta
482a0 74 65 2d 66 72 6f 6d 2d 63 68 61 72 20 28 63 68 61 72 2d 61 66 74 65 72 29 29 29 29 0a 20 20 20 te-from-char.(char-after))))....
482c0 20 20 20 3b 3b 69 66 20 63 75 72 2d 73 74 61 74 75 73 20 69 66 20 21 2c 20 6f 72 20 2a 20 74 68 ...;;if.cur-status.if.!,.or.*.th
482e0 65 6e 20 64 65 6c 65 74 65 20 74 68 65 20 6d 61 72 6b 65 72 0a 20 20 20 20 20 20 28 77 68 65 6e en.delete.the.marker.......(when
48300 20 63 75 72 2d 73 74 61 74 75 73 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 68 65 72 65 20 .cur-status.........(let.((here.
48320 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 6b 69 70 2d 63 68 61 72 73 2d (point)))...........(skip-chars-
48340 66 6f 72 77 61 72 64 20 22 2a 21 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 forward."*!.")...........(let.((
48360 77 69 64 74 68 20 28 2d 20 28 70 6f 69 6e 74 29 20 68 65 72 65 29 29 29 0a 20 20 20 20 20 20 20 width.(-.(point).here)))........
48380 20 20 20 20 20 28 77 68 65 6e 20 28 3e 20 77 69 64 74 68 20 30 29 0a 20 20 20 20 20 20 20 20 20 .....(when.(>.width.0)..........
483a0 20 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 68 65 72 65 20 28 70 6f 69 6e 74 29 .....(delete-region.here.(point)
483c0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 65 61 72 63 68 2d 66 6f 72 77 )...............(if.(search-forw
483e0 61 72 64 20 22 20 20 22 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 20 74 29 0a ard."..".(line-end-position).t).
48400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 6d 61 6b 65 2d ..................(insert.(make-
48420 73 74 72 69 6e 67 20 77 69 64 74 68 20 3f 20 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 66 string.width.?.)))))).........(f
48440 6f 72 77 61 72 64 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 53 68 69 66 74 20 74 68 orward-line).........;;.Shift.th
48460 65 20 63 6c 65 61 72 65 64 2f 70 65 6e 64 69 6e 67 20 73 74 61 74 75 73 20 74 6f 20 74 68 65 20 e.cleared/pending.status.to.the.
48480 70 6f 73 74 69 6e 67 73 0a 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 6c 6f 6f 6b 69 6e 67 postings.........(while.(looking
484a0 2d 61 74 20 22 5b 20 5c 74 5d 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 6b 69 70 2d 63 68 61 -at."[.\t]")...........(skip-cha
484c0 72 73 2d 66 6f 72 77 61 72 64 20 22 20 5c 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 rs-forward.".\t")...........(whe
484e0 6e 20 28 6e 6f 74 20 28 65 71 20 28 6c 65 64 67 65 72 2d 73 74 61 74 65 2d 66 72 6f 6d 2d 63 68 n.(not.(eq.(ledger-state-from-ch
48500 61 72 20 28 63 68 61 72 2d 61 66 74 65 72 29 29 20 27 63 6f 6d 6d 65 6e 74 29 29 0a 20 20 20 20 ar.(char-after)).'comment)).....
48520 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 6c 65 64 67 65 72 2d 63 68 61 72 2d 66 72 6f ........(insert.(ledger-char-fro
48540 6d 2d 73 74 61 74 65 20 63 75 72 2d 73 74 61 74 75 73 29 20 22 20 22 29 0a 20 20 20 20 20 20 20 m-state.cur-status).".")........
48560 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 20 .....(if.(and.(search-forward.".
48580 20 22 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 20 74 29 0a 20 20 20 20 20 20 .".(line-end-position).t).......
485a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 20 20 22 29 ...............(looking-at."..")
485c0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 63 68 61 72 20 32 ).................(delete-char.2
485e0 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 29 29 0a 20 20 )))...........(forward-line))...
48600 20 20 20 20 20 20 28 73 65 74 71 20 6e 65 77 2d 73 74 61 74 75 73 20 6e 69 6c 29 29 29 0a 0a 20 ......(setq.new-status.nil)))...
48620 20 20 20 3b 3b 74 68 69 73 20 65 78 63 75 72 73 69 6f 6e 20 74 6f 67 67 6c 65 73 20 74 68 65 20 ...;;this.excursion.toggles.the.
48640 70 6f 73 74 69 6e 67 20 73 74 61 74 75 73 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 posting.status.....(save-excursi
48660 6f 6e 0a 20 20 20 20 20 20 28 73 65 74 71 20 69 6e 68 69 62 69 74 2d 6d 6f 64 69 66 69 63 61 74 on.......(setq.inhibit-modificat
48680 69 6f 6e 2d 68 6f 6f 6b 73 20 74 29 0a 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 ion-hooks.t)........(goto-char.(
486a0 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 line-beginning-position)).......
486c0 28 77 68 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5b 20 5c 74 5d 22 29 0a 20 20 20 20 20 (when.(looking-at."[.\t]")......
486e0 20 20 20 28 73 6b 69 70 2d 63 68 61 72 73 2d 66 6f 72 77 61 72 64 20 22 20 5c 74 22 29 0a 20 20 ...(skip-chars-forward.".\t")...
48700 20 20 20 20 20 20 28 6c 65 74 20 28 28 68 65 72 65 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 ......(let.((here.(point))......
48720 20 20 20 20 20 20 20 20 20 28 63 75 72 2d 73 74 61 74 75 73 20 28 6c 65 64 67 65 72 2d 73 74 61 .........(cur-status.(ledger-sta
48740 74 65 2d 66 72 6f 6d 2d 63 68 61 72 20 28 63 68 61 72 2d 61 66 74 65 72 29 29 29 29 0a 20 20 20 te-from-char.(char-after))))....
48760 20 20 20 20 20 20 20 28 73 6b 69 70 2d 63 68 61 72 73 2d 66 6f 72 77 61 72 64 20 22 2a 21 20 22 .......(skip-chars-forward."*!."
48780 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 77 69 64 74 68 20 28 2d 20 28 70 6f 69 )...........(let.((width.(-.(poi
487a0 6e 74 29 20 68 65 72 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 3e nt).here))).............(when.(>
487c0 20 77 69 64 74 68 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d .width.0)...............(delete-
487e0 72 65 67 69 6f 6e 20 68 65 72 65 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 region.here.(point))............
48800 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ...(save-excursion..............
48820 20 20 20 28 69 66 20 28 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 20 20 22 20 28 6c 69 6e ...(if.(search-forward."..".(lin
48840 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 e-end-position).t)..............
48860 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 6d 61 6b 65 2d 73 74 72 69 6e 67 20 77 69 64 74 .......(insert.(make-string.widt
48880 68 20 3f 20 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 69 6e 73 65 72 h.?.))))))...........(let.(inser
488a0 74 65 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 63 75 72 2d 73 74 61 74 75 73 0a ted).............(if.cur-status.
488c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 73 74 79 6c 65 20 28 ................(if.(and.style.(
488e0 65 71 20 73 74 79 6c 65 20 27 63 6c 65 61 72 65 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 eq.style.'cleared)).............
48900 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........(progn..................
48920 20 20 20 20 20 28 69 6e 73 65 72 74 20 20 22 2a 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .....(insert.."*.").............
48940 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 69 6e 73 65 72 74 65 64 20 27 63 6c 65 61 72 65 ..........(setq.inserted.'cleare
48960 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 73 74 79 6c d)))...............(if.(and.styl
48980 65 20 28 65 71 20 73 74 79 6c 65 20 27 70 65 6e 64 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20 e.(eq.style.'pending))..........
489a0 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .........(progn.................
489c0 20 20 20 20 28 69 6e 73 65 72 74 20 20 22 21 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ....(insert.."!.")..............
489e0 20 20 20 20 20 20 20 28 73 65 74 71 20 69 6e 73 65 72 74 65 64 20 27 70 65 6e 64 69 6e 67 29 29 .......(setq.inserted.'pending))
48a00 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 .................(progn.........
48a20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 20 22 2a 20 22 29 0a 20 20 20 20 20 20 20 ..........(insert.."*.")........
48a40 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 69 6e 73 65 72 74 65 64 20 27 63 6c 65 61 72 ...........(setq.inserted.'clear
48a60 65 64 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 69 6e 73 65 ed)))).............(if.(and.inse
48a80 72 74 65 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 2d 73 65 rted......................(re-se
48aa0 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5c 5c 28 5c 74 5c 5c 7c 20 5b 20 5c 74 5d 5c 5c 29 22 arch-forward."\\(\t\\|.[.\t]\\)"
48ac0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
48ae0 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 20 74 29 29 .........(line-end-position).t))
48b00 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 .................(cond..........
48b20 20 20 20 20 20 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 74 22 29 0a 20 20 20 20 20 ........((looking-at."\t")......
48b40 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 63 68 61 72 20 31 29 29 0a 20 20 .............(delete-char.1))...
48b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 20 5b 20 ...............((looking-at.".[.
48b80 5c 74 5d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d \t]")...................(delete-
48ba0 63 68 61 72 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6c 6f 6f 6b char.2))..................((look
48bc0 69 6e 67 2d 61 74 20 22 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 ing-at.".")...................(d
48be0 65 6c 65 74 65 2d 63 68 61 72 20 31 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 elete-char.1)))).............(se
48c00 74 71 20 6e 65 77 2d 73 74 61 74 75 73 20 69 6e 73 65 72 74 65 64 29 29 29 29 0a 20 20 20 20 20 tq.new-status.inserted))))......
48c20 20 28 73 65 74 71 20 69 6e 68 69 62 69 74 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 2d 68 6f 6f 6b .(setq.inhibit-modification-hook
48c40 73 20 6e 69 6c 29 29 0a 0a 20 20 20 20 3b 3b 20 54 68 69 73 20 65 78 63 75 72 73 69 6f 6e 20 63 s.nil))......;;.This.excursion.c
48c60 6c 65 61 6e 73 20 75 70 20 74 68 65 20 78 61 63 74 20 73 6f 20 74 68 61 74 20 69 74 20 64 69 73 leans.up.the.xact.so.that.it.dis
48c80 70 6c 61 79 73 0a 20 20 20 20 3b 3b 20 6d 69 6e 69 6d 61 6c 6c 79 2e 20 20 54 68 69 73 20 6d 65 plays.....;;.minimally...This.me
48ca0 61 6e 73 20 74 68 61 74 20 69 66 20 61 6c 6c 20 70 6f 73 74 73 20 61 72 65 20 63 6c 65 61 72 65 ans.that.if.all.posts.are.cleare
48cc0 64 2c 20 72 65 6d 6f 76 65 0a 20 20 20 20 3b 3b 20 74 68 65 20 6d 61 72 6b 73 20 61 6e 64 20 63 d,.remove.....;;.the.marks.and.c
48ce0 6c 65 61 72 20 74 68 65 20 65 6e 74 69 72 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 2e 0a 20 20 20 lear.the.entire.transaction.....
48d00 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 .(save-excursion.......(goto-cha
48d20 72 20 28 63 61 72 20 62 6f 75 6e 64 73 29 29 0a 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c r.(car.bounds)).......(forward-l
48d40 69 6e 65 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 69 72 73 74 20 74 29 0a 20 20 20 20 20 ine).......(let.((first.t)......
48d60 20 20 20 20 20 20 20 28 73 74 61 74 65 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 .......(state.nil).............(
48d80 68 65 74 65 72 6f 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 61 6e 64 hetero.nil)).........(while.(and
48da0 20 28 6e 6f 74 20 68 65 74 65 72 6f 29 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5b 20 5c 74 5d .(not.hetero).(looking-at."[.\t]
48dc0 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 6b 69 70 2d 63 68 61 72 73 2d 66 6f 72 77 61 72 "))...........(skip-chars-forwar
48de0 64 20 22 20 5c 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 75 72 2d 73 74 d.".\t")...........(let.((cur-st
48e00 61 74 75 73 20 28 6c 65 64 67 65 72 2d 73 74 61 74 65 2d 66 72 6f 6d 2d 63 68 61 72 20 28 63 68 atus.(ledger-state-from-char.(ch
48e20 61 72 2d 61 66 74 65 72 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6e 6f ar-after)))).............(if.(no
48e40 74 20 28 65 71 20 63 75 72 2d 73 74 61 74 75 73 20 27 63 6f 6d 6d 65 6e 74 29 29 0a 20 20 20 20 t.(eq.cur-status.'comment)).....
48e60 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 66 69 72 73 74 0a 20 20 20 20 20 20 20 20 20 20 ............(if.first...........
48e80 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 74 61 74 65 20 63 75 72 2d 73 74 61 74 75 73 ..........(setq.state.cur-status
48ea0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 72 73 74 ...........................first
48ec0 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 6e 6f 74 .nil)...................(if.(not
48ee0 20 28 65 71 20 73 74 61 74 65 20 63 75 72 2d 73 74 61 74 75 73 29 29 0a 20 20 20 20 20 20 20 20 .(eq.state.cur-status)).........
48f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 68 65 74 65 72 6f 20 74 29 29 29 29 ..............(setq.hetero.t))))
48f20 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 29 29 0a 20 20 20 20 )...........(forward-line)).....
48f40 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 6e 6f 74 20 68 65 74 65 72 6f 29 20 28 6e 6f 74 ....(when.(and.(not.hetero).(not
48f60 20 28 65 71 20 73 74 61 74 65 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 .(eq.state.nil)))...........(got
48f80 6f 2d 63 68 61 72 20 28 63 61 72 20 62 6f 75 6e 64 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 o-char.(car.bounds))...........(
48fa0 66 6f 72 77 61 72 64 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 forward-line)...........(while.(
48fc0 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5b 20 5c 74 5d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 looking-at."[.\t]").............
48fe0 28 73 6b 69 70 2d 63 68 61 72 73 2d 66 6f 72 77 61 72 64 20 22 20 5c 74 22 29 0a 20 20 20 20 20 (skip-chars-forward.".\t")......
49000 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 68 65 72 65 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 .......(let.((here.(point)))....
49020 20 20 20 20 20 20 20 20 20 20 20 28 73 6b 69 70 2d 63 68 61 72 73 2d 66 6f 72 77 61 72 64 20 22 ...........(skip-chars-forward."
49040 2a 21 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 77 69 64 74 68 *!.")...............(let.((width
49060 20 28 2d 20 28 70 6f 69 6e 74 29 20 68 65 72 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .(-.(point).here))).............
49080 20 20 20 20 28 77 68 65 6e 20 28 3e 20 77 69 64 74 68 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 ....(when.(>.width.0)...........
490a0 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 68 65 72 65 20 28 70 6f 69 ........(delete-region.here.(poi
490c0 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 72 65 2d 73 nt))...................(if.(re-s
490e0 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5c 5c 28 5c 74 5c 5c 7c 20 5b 20 5c 74 5d 5c 5c 29 earch-forward."\\(\t\\|.[.\t]\\)
49100 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "...............................
49120 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 20 74 ...........(line-end-position).t
49140 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 ).......................(insert.
49160 28 6d 61 6b 65 2d 73 74 72 69 6e 67 20 77 69 64 74 68 20 3f 20 29 29 29 29 29 29 0a 20 20 20 20 (make-string.width.?.)))))).....
49180 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 29 29 0a 20 20 20 20 20 20 20 20 ........(forward-line)).........
491a0 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 63 61 72 20 62 6f 75 6e 64 73 29 29 0a 20 20 20 20 20 ..(goto-char.(car.bounds))......
491c0 20 20 20 20 20 28 73 6b 69 70 2d 63 68 61 72 73 2d 66 6f 72 77 61 72 64 20 22 30 2d 39 2e 2f 3d .....(skip-chars-forward."0-9./=
491e0 5c 5c 2d 22 29 20 3b 3b 20 53 6b 69 70 20 74 68 65 20 64 61 74 65 0a 20 20 20 20 20 20 20 20 20 \\-").;;.Skip.the.date..........
49200 20 28 73 6b 69 70 2d 63 68 61 72 73 2d 66 6f 72 77 61 72 64 20 22 20 5c 74 22 29 20 3b 3b 20 53 .(skip-chars-forward.".\t").;;.S
49220 6b 69 70 20 74 68 65 20 77 68 69 74 65 20 73 70 61 63 65 0a 20 20 20 20 20 20 20 20 20 20 28 69 kip.the.white.space...........(i
49240 6e 73 65 72 74 20 28 6c 65 64 67 65 72 2d 63 68 61 72 2d 66 72 6f 6d 2d 73 74 61 74 65 20 73 74 nsert.(ledger-char-from-state.st
49260 61 74 65 29 20 22 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6e 65 77 2d 73 74 ate).".")...........(setq.new-st
49280 61 74 75 73 20 73 74 61 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 72 65 2d 73 65 atus.state)...........(if.(re-se
492a0 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5c 5c 28 5c 74 5c 5c 7c 20 5b 20 5c 74 5d 5c 5c 29 22 arch-forward."\\(\t\\|.[.\t]\\)"
492c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
492e0 20 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 20 74 29 0a 20 20 20 20 20 20 20 ..(line-end-position).t)........
49300 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 28 6c 6f .......(cond................((lo
49320 6f 6b 69 6e 67 2d 61 74 20 22 5c 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 oking-at."\t").................(
49340 64 65 6c 65 74 65 2d 63 68 61 72 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 delete-char.1))................(
49360 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 20 5b 20 5c 74 5d 22 29 0a 20 20 20 20 20 20 20 20 20 20 (looking-at.".[.\t]")...........
49380 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 63 68 61 72 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 ......(delete-char.2))..........
493a0 20 20 20 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 20 22 29 0a 20 20 20 20 20 20 20 20 ......((looking-at.".").........
493c0 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 63 68 61 72 20 31 29 29 29 29 29 29 29 0a 20 20 ........(delete-char.1)))))))...
493e0 20 20 6e 65 77 2d 73 74 61 74 75 73 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 74 6f ..new-status))..(defun.ledger-to
49400 67 67 6c 65 2d 63 75 72 72 65 6e 74 20 28 26 6f 70 74 69 6f 6e 61 6c 20 73 74 79 6c 65 29 0a 20 ggle-current.(&optional.style)..
49420 20 22 54 6f 67 67 6c 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 74 68 69 6e 67 20 61 74 20 70 6f ."Toggle.the.current.thing.at.po
49440 69 6e 74 20 77 69 74 68 20 6f 70 74 69 6f 6e 61 6c 20 53 54 59 4c 45 2e 22 0a 20 20 28 69 6e 74 int.with.optional.STYLE."...(int
49460 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 74 68 69 6e 67 20 28 6c 65 64 67 65 72 eractive)...(let.((thing.(ledger
49480 2d 74 68 69 6e 67 2d 61 74 2d 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 28 69 66 20 28 6f 72 20 28 -thing-at-point))).....(if.(or.(
494a0 61 6e 64 20 6c 65 64 67 65 72 2d 63 6c 65 61 72 2d 77 68 6f 6c 65 2d 74 72 61 6e 73 61 63 74 69 and.ledger-clear-whole-transacti
494c0 6f 6e 73 20 28 65 71 20 27 70 6f 73 74 69 6e 67 20 74 68 69 6e 67 29 29 0a 20 20 20 20 20 20 20 ons.(eq.'posting.thing))........
494e0 20 20 20 20 20 28 65 71 20 27 74 72 61 6e 73 61 63 74 69 6f 6e 20 74 68 69 6e 67 29 29 0a 20 20 .....(eq.'transaction.thing))...
49500 20 20 20 20 20 20 28 6c 65 74 20 28 28 65 6e 64 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e ......(let.((end.(save-excursion
49520 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 65 6e 64 2d 6f 66 2d 78 61 63 74 29 20 28 .(ledger-navigate-end-of-xact).(
49540 70 6f 69 6e 74 2d 6d 61 72 6b 65 72 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 63 6c point-marker))))...........;;.cl
49560 65 61 72 20 73 74 61 74 65 20 6d 61 72 6b 69 6e 67 73 20 6f 6e 20 70 6f 73 74 69 6e 67 73 0a 20 ear.state.markings.on.postings..
49580 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 .........(save-excursion........
495a0 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .....(forward-line).............
495c0 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 (beginning-of-line).............
495e0 28 77 68 69 6c 65 20 28 3c 20 28 70 6f 69 6e 74 29 20 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 (while.(<.(point).end)..........
49600 20 20 20 20 20 28 77 68 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 73 2d 2b 5b 2a 21 .....(when.(looking-at."\\s-+[*!
49620 5d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 74 6f 67 67 ]").................(ledger-togg
49640 6c 65 2d 63 75 72 72 65 6e 74 2d 70 6f 73 74 69 6e 67 20 73 74 79 6c 65 29 29 0a 20 20 20 20 20 le-current-posting.style))......
49660 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 29 29 29 0a 20 20 20 20 20 20 .........(forward-line))).......
49680 20 20 20 20 28 73 65 74 2d 6d 61 72 6b 65 72 20 65 6e 64 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 ....(set-marker.end.nil)........
496a0 20 20 20 28 6c 65 64 67 65 72 2d 74 6f 67 67 6c 65 2d 63 75 72 72 65 6e 74 2d 74 72 61 6e 73 61 ...(ledger-toggle-current-transa
496c0 63 74 69 6f 6e 20 73 74 79 6c 65 29 29 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 74 6f 67 67 ction.style)).......(ledger-togg
496e0 6c 65 2d 63 75 72 72 65 6e 74 2d 70 6f 73 74 69 6e 67 20 73 74 79 6c 65 29 29 29 29 0a 0a 28 64 le-current-posting.style))))..(d
49700 65 66 75 6e 20 6c 65 64 67 65 72 2d 74 6f 67 67 6c 65 2d 63 75 72 72 65 6e 74 2d 74 72 61 6e 73 efun.ledger-toggle-current-trans
49720 61 63 74 69 6f 6e 20 28 26 6f 70 74 69 6f 6e 61 6c 20 73 74 79 6c 65 29 0a 20 20 22 54 6f 67 67 action.(&optional.style)..."Togg
49740 6c 65 20 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 61 74 20 70 6f 69 6e 74 20 75 73 69 6e le.the.transaction.at.point.usin
49760 67 20 6f 70 74 69 6f 6e 61 6c 20 53 54 59 4c 45 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 g.optional.STYLE."...(interactiv
49780 65 29 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 77 68 65 6e 20 28 e)...(save-excursion.....(when.(
497a0 6f 72 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5e 5b 30 2d 39 5d 22 29 0a 20 20 20 20 20 20 20 or.(looking-at."^[0-9]")........
497c0 20 20 20 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 20 22 5e 5b 30 2d .......(re-search-backward."^[0-
497e0 39 5d 22 20 6e 69 6c 20 74 29 29 0a 20 20 20 20 20 20 28 73 6b 69 70 2d 63 68 61 72 73 2d 66 6f 9]".nil.t)).......(skip-chars-fo
49800 72 77 61 72 64 20 22 30 2d 39 2e 2f 3d 5c 5c 2d 22 29 0a 20 20 20 20 20 20 28 64 65 6c 65 74 65 rward."0-9./=\\-").......(delete
49820 2d 68 6f 72 69 7a 6f 6e 74 61 6c 2d 73 70 61 63 65 29 0a 20 20 20 20 20 20 28 69 66 20 28 6f 72 -horizontal-space).......(if.(or
49840 20 28 65 71 20 28 6c 65 64 67 65 72 2d 73 74 61 74 65 2d 66 72 6f 6d 2d 63 68 61 72 20 28 63 68 .(eq.(ledger-state-from-char.(ch
49860 61 72 2d 61 66 74 65 72 29 29 20 27 70 65 6e 64 69 6e 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 ar-after)).'pending)............
49880 20 20 20 28 65 71 20 28 6c 65 64 67 65 72 2d 73 74 61 74 65 2d 66 72 6f 6d 2d 63 68 61 72 20 28 ...(eq.(ledger-state-from-char.(
498a0 63 68 61 72 2d 61 66 74 65 72 29 29 20 27 63 6c 65 61 72 65 64 29 29 0a 20 20 20 20 20 20 20 20 char-after)).'cleared)).........
498c0 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 63 68 61 ..(progn.............(delete-cha
498e0 72 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 73 74 79 6c r.1).............(when.(and.styl
49900 65 20 28 65 71 20 73 74 79 6c 65 20 27 63 6c 65 61 72 65 64 29 29 0a 20 20 20 20 20 20 20 20 20 e.(eq.style.'cleared))..........
49920 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 20 2a 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 .....(insert.".*")..............
49940 20 27 63 6c 65 61 72 65 64 29 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 73 74 79 .'cleared)).........(if.(and.sty
49960 6c 65 20 28 65 71 20 73 74 79 6c 65 20 27 70 65 6e 64 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 le.(eq.style.'pending)).........
49980 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 ....(progn...............(insert
499a0 20 22 20 21 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 70 65 6e 64 69 6e 67 29 0a .".!.")...............'pending).
499c0 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e ..........(progn.............(in
499e0 73 65 72 74 20 22 20 2a 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 27 63 6c 65 61 72 65 64 sert.".*.").............'cleared
49a00 29 29 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 6c 65 64 67 65 72 2d 73 74 61 74 65 29 0a ))))))..(provide.'ledger-state).
49a20 0a 3b 3b 3b 20 6c 65 64 67 65 72 2d 73 74 61 74 65 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 .;;;.ledger-state.el.ends.here..
49a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49c00 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 33 32 36 2e 32 30 30 32 2f 6c 65 64 67 65 72 ledger-mode-20240326.2002/ledger
49c20 2d 74 65 73 74 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -test.el........................
49c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49c60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
49c80 30 30 31 31 34 36 35 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 37 33 33 00 20 30 00 00 00 0011465.00000000000.015733..0...
49ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49d00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
49d20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
49d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49e00 3b 3b 3b 20 6c 65 64 67 65 72 2d 74 65 73 74 2e 65 6c 20 2d 2d 2d 20 48 65 6c 70 65 72 20 63 6f ;;;.ledger-test.el.---.Helper.co
49e20 64 65 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 74 68 65 20 22 6c 65 64 67 65 72 22 20 63 6f 6d de.for.use.with.the."ledger".com
49e40 6d 61 6e 64 2d 6c 69 6e 65 20 74 6f 6f 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 mand-line.tool..-*-.lexical-bind
49e60 69 6e 67 3a 20 74 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 30 ing:.t.-*-..;;.Copyright.(C).200
49e80 33 2d 32 30 31 36 20 4a 6f 68 6e 20 57 69 65 67 6c 65 79 20 28 6a 6f 68 6e 77 20 41 54 20 67 6e 3-2016.John.Wiegley.(johnw.AT.gn
49ea0 75 20 44 4f 54 20 6f 72 67 29 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 6e 6f 74 20 u.DOT.org)..;;.This.file.is.not.
49ec0 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 54 68 69 73 20 69 73 20 66 part.of.GNU.Emacs...;;.This.is.f
49ee0 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 ree.software;.you.can.redistribu
49f00 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 20 75 6e 64 65 72 0a 3b 3b 20 te.it.and/or.modify.it.under.;;.
49f20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 the.terms.of.the.GNU.General.Pub
49f40 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 20 lic.License.as.published.by.the.
49f60 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 Free.;;.Software.Foundation;.eit
49f80 68 65 72 20 76 65 72 73 69 6f 6e 20 32 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f her.version.2,.or.(at.your.optio
49fa0 6e 29 20 61 6e 79 20 6c 61 74 65 72 0a 3b 3b 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 54 n).any.later.;;.version..;;.;;.T
49fc0 68 69 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 his.is.distributed.in.the.hope.t
49fe0 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 4f hat.it.will.be.useful,.but.WITHO
4a000 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e UT.;;.ANY.WARRANTY;.without.even
4a020 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 4e .the.implied.warranty.of.MERCHAN
4a040 54 41 42 49 4c 49 54 59 20 6f 72 0a 3b 3b 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 TABILITY.or.;;.FITNESS.FOR.A.PAR
4a060 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 65 TICULAR.PURPOSE...See.the.GNU.Ge
4a080 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 66 6f 72 20 6d 6f 72 65 neral.Public.License.;;.for.more
4a0a0 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 .details..;;.;;.You.should.have.
4a0c0 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 received.a.copy.of.the.GNU.Gener
4a0e0 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 al.Public.License.;;.along.with.
4a100 47 4e 55 20 45 6d 61 63 73 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e GNU.Emacs;.see.the.file.COPYING.
4a120 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 20 53 ..If.not,.write.to.the.;;.Free.S
4a140 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 oftware.Foundation,.Inc.,.51.Fra
4a160 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 6f nklin.Street,.Fifth.Floor,.Bosto
4a180 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f n,.;;.MA.02110-1301.USA...;;;.Co
4a1a0 6d 6d 65 6e 74 61 72 79 3a 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 64 65 63 6c 61 72 65 2d 66 mmentary:..;;;.Code:..(declare-f
4a1c0 75 6e 63 74 69 6f 6e 20 6c 65 64 67 65 72 2d 6d 6f 64 65 20 22 6c 65 64 67 65 72 2d 6d 6f 64 65 unction.ledger-mode."ledger-mode
4a1e0 22 29 20 3b 20 54 4f 44 4f 3a 20 66 69 78 20 74 68 69 73 20 63 79 63 6c 69 63 20 64 65 70 65 6e ").;.TODO:.fix.this.cyclic.depen
4a200 64 65 6e 63 79 0a 28 72 65 71 75 69 72 65 20 27 6f 72 67 29 0a 28 72 65 71 75 69 72 65 20 27 6f dency.(require.'org).(require.'o
4a220 75 74 6c 69 6e 65 29 0a 0a 28 64 65 66 67 72 6f 75 70 20 6c 65 64 67 65 72 2d 74 65 73 74 20 6e utline)..(defgroup.ledger-test.n
4a240 69 6c 0a 20 20 22 44 65 66 69 6e 69 74 69 6f 6e 73 20 66 6f 72 20 74 68 65 20 4c 65 64 67 65 72 il..."Definitions.for.the.Ledger
4a260 20 74 65 73 74 69 6e 67 20 66 72 61 6d 65 77 6f 72 6b 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 .testing.framework"...:group.'le
4a280 64 67 65 72 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 73 6f 75 72 63 65 2d dger)..(defcustom.ledger-source-
4a2a0 64 69 72 65 63 74 6f 72 79 20 22 7e 2f 6c 65 64 67 65 72 2f 22 0a 20 20 22 44 69 72 65 63 74 6f directory."~/ledger/"..."Directo
4a2c0 72 79 20 77 68 65 72 65 20 74 68 65 20 4c 65 64 67 65 72 20 73 6f 75 72 63 65 73 20 61 72 65 20 ry.where.the.Ledger.sources.are.
4a2e0 6c 6f 63 61 74 65 64 2e 22 0a 20 20 3a 74 79 70 65 20 27 64 69 72 65 63 74 6f 72 79 0a 20 20 3a located."...:type.'directory...:
4a300 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 74 65 73 74 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 group.'ledger-test)..(defcustom.
4a320 6c 65 64 67 65 72 2d 74 65 73 74 2d 62 69 6e 61 72 79 20 22 2f 50 72 6f 64 75 63 74 73 2f 6c 65 ledger-test-binary."/Products/le
4a340 64 67 65 72 2f 64 65 62 75 67 2f 6c 65 64 67 65 72 22 0a 20 20 22 44 69 72 65 63 74 6f 72 79 20 dger/debug/ledger"..."Directory.
4a360 77 68 65 72 65 20 74 68 65 20 4c 65 64 67 65 72 20 64 65 62 75 67 20 62 69 6e 61 72 79 20 69 73 where.the.Ledger.debug.binary.is
4a380 20 6c 6f 63 61 74 65 64 2e 22 0a 20 20 3a 74 79 70 65 20 27 66 69 6c 65 0a 20 20 3a 67 72 6f 75 .located."...:type.'file...:grou
4a3a0 70 20 27 6c 65 64 67 65 72 2d 74 65 73 74 29 0a 0a 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b p.'ledger-test)..;;;;;;;;;;;;;;;
4a3c0 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
4a3e0 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 3b 0a ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.
4a400 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 63 72 65 61 74 65 2d 74 65 73 74 20 28 29 0a 20 20 .(defun.ledger-create-test.()...
4a420 22 43 72 65 61 74 65 20 61 20 72 65 67 72 65 73 73 69 6f 6e 20 74 65 73 74 2e 22 0a 20 20 28 69 "Create.a.regression.test."...(i
4a440 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 73 61 76 65 2d 72 65 73 74 72 69 63 74 69 6f 6e 0a nteractive)...(save-restriction.
4a460 20 20 20 20 28 6f 72 67 2d 6e 61 72 72 6f 77 2d 74 6f 2d 73 75 62 74 72 65 65 29 0a 20 20 20 20 ....(org-narrow-to-subtree).....
4a480 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 6c 65 74 20 28 74 65 78 74 (save-excursion.......(let.(text
4a4a0 20 62 65 67 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d .beg).........(goto-char.(point-
4a4c0 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 0a 20 min)).........(forward-line.1)..
4a4e0 20 20 20 20 20 20 20 28 73 65 74 71 20 62 65 67 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 .......(setq.beg.(point)).......
4a500 20 20 28 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 3a 50 52 4f 50 45 52 54 49 45 53 3a 22 ..(search-forward.":PROPERTIES:"
4a520 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6c 69 6e 65 2d 62 65 67 69 6e ).........(goto-char.(line-begin
4a540 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 65 ning-position)).........(setq.te
4a560 78 74 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 xt.(buffer-substring-no-properti
4a580 65 73 20 62 65 67 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 es.beg.(point))).........(goto-c
4a5a0 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 28 72 65 2d 73 65 61 har.(point-min)).........(re-sea
4a5c0 72 63 68 2d 66 6f 72 77 61 72 64 20 22 3a 49 44 3a 5c 5c 73 2d 2b 5c 5c 28 5b 5e 2d 5d 2b 5c 5c rch-forward.":ID:\\s-+\\([^-]+\\
4a5e0 29 22 29 0a 20 20 20 20 20 20 20 20 28 66 69 6e 64 2d 66 69 6c 65 2d 6f 74 68 65 72 2d 77 69 6e )").........(find-file-other-win
4a600 64 6f 77 0a 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 7e 2f 73 72 63 2f 6c 65 64 67 dow..........(format."~/src/ledg
4a620 65 72 2f 74 65 73 74 2f 72 65 67 72 65 73 73 2f 25 73 2e 74 65 73 74 22 20 28 6d 61 74 63 68 2d er/test/regress/%s.test".(match-
4a640 73 74 72 69 6e 67 20 31 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 69 74 2d 66 6f 72 20 30 29 0a string.1))).........(sit-for.0).
4a660 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 74 65 78 74 29 0a 20 20 20 20 20 20 20 20 28 67 ........(insert.text).........(g
4a680 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 28 77 oto-char.(point-min)).........(w
4a6a0 68 69 6c 65 20 28 6e 6f 74 20 28 65 6f 62 70 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 hile.(not.(eobp))...........(got
4a6c0 6f 2d 63 68 61 72 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 o-char.(line-beginning-position)
4a6e0 29 0a 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 63 68 61 72 20 33 29 0a 20 20 20 20 )...........(delete-char.3).....
4a700 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 29 29 29 29 29 0a 0a 28 64 65 ......(forward-line.1))))))..(de
4a720 66 75 6e 20 6c 65 64 67 65 72 2d 74 65 73 74 2d 6f 72 67 2d 6e 61 72 72 6f 77 2d 74 6f 2d 65 6e fun.ledger-test-org-narrow-to-en
4a740 74 72 79 20 28 29 0a 20 20 28 6f 75 74 6c 69 6e 65 2d 62 61 63 6b 2d 74 6f 2d 68 65 61 64 69 6e try.()...(outline-back-to-headin
4a760 67 29 0a 20 20 28 6e 61 72 72 6f 77 2d 74 6f 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 29 20 28 g)...(narrow-to-region.(point).(
4a780 70 72 6f 67 6e 20 28 6f 75 74 6c 69 6e 65 2d 6e 65 78 74 2d 68 65 61 64 69 6e 67 29 20 28 70 6f progn.(outline-next-heading).(po
4a7a0 69 6e 74 29 29 29 0a 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 int)))...(goto-char.(point-min))
4a7c0 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 74 65 73 74 2d 63 72 65 61 74 65 20 28 29 0a )..(defun.ledger-test-create.().
4a7e0 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 75 75 69 64 20 28 6f ..(interactive)...(let.((uuid.(o
4a800 72 67 2d 65 6e 74 72 79 2d 67 65 74 20 28 70 6f 69 6e 74 29 20 22 49 44 22 29 29 29 0a 20 20 20 rg-entry-get.(point)."ID")))....
4a820 20 28 77 68 65 6e 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5c 5c 60 5c 5c 28 5b 5e 2d 5d .(when.(string-match."\\`\\([^-]
4a840 2b 5c 5c 29 2d 22 20 75 75 69 64 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 72 65 66 69 78 +\\)-".uuid).......(let.((prefix
4a860 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 20 75 75 69 64 29 29 0a 20 20 20 20 20 20 20 20 .(match-string.1.uuid)).........
4a880 20 20 20 20 69 6e 70 75 74 20 6f 75 74 70 75 74 29 0a 20 20 20 20 20 20 20 20 28 73 61 76 65 2d ....input.output).........(save-
4a8a0 72 65 73 74 72 69 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 74 65 restriction...........(ledger-te
4a8c0 73 74 2d 6f 72 67 2d 6e 61 72 72 6f 77 2d 74 6f 2d 65 6e 74 72 79 29 0a 20 20 20 20 20 20 20 20 st-org-narrow-to-entry).........
4a8e0 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 ..(goto-char.(point-min)).......
4a900 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 23 ....(while.(re-search-forward."#
4a920 5c 5c 2b 62 65 67 69 6e 5f 73 72 63 20 6c 65 64 67 65 72 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 \\+begin_src.ledger".nil.t).....
4a940 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 ........(goto-char.(match-end.0)
4a960 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 0a 20 ).............(forward-line.1)..
4a980 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 62 65 67 20 28 70 6f 69 6e 74 29 29 29 0a ...........(let.((beg.(point))).
4a9a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 ..............(re-search-forward
4a9c0 20 22 23 5c 5c 2b 65 6e 64 5f 73 72 63 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 ."#\\+end_src")...............(s
4a9e0 65 74 71 20 69 6e 70 75 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 etq.input.....................(c
4aa00 6f 6e 63 61 74 20 28 6f 72 20 69 6e 70 75 74 20 22 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 oncat.(or.input."").............
4aa20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e ................(buffer-substrin
4aa40 67 20 62 65 67 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 29 29 29 29 0a 20 g.beg.(match-beginning.0))))))..
4aa60 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 .........(goto-char.(point-min))
4aa80 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 ...........(while.(re-search-for
4aaa0 77 61 72 64 20 22 3a 4f 55 54 50 55 54 3a 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 ward.":OUTPUT:".nil.t)..........
4aac0 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 0a 20 20 20 ...(goto-char.(match-end.0))....
4aae0 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 0a 20 20 20 20 20 20 .........(forward-line.1).......
4ab00 20 20 20 20 20 20 28 6c 65 74 20 28 28 62 65 67 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 ......(let.((beg.(point)))......
4ab20 20 20 20 20 20 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 3a 45 4e .........(re-search-forward.":EN
4ab40 44 3a 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6f 75 74 70 75 74 0a D:")...............(setq.output.
4ab60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 6f 72 20 ....................(concat.(or.
4ab80 6f 75 74 70 75 74 20 22 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 output."")......................
4aba0 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 62 65 67 20 28 6d 61 .......(buffer-substring.beg.(ma
4abc0 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 tch-beginning.0))))))).........(
4abe0 66 69 6e 64 2d 66 69 6c 65 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 0a 20 20 20 20 20 20 20 20 20 find-file-other-window..........
4ac00 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 28 63 6f 6e 63 61 74 20 70 72 65 66 69 78 (expand-file-name.(concat.prefix
4ac20 20 22 2e 74 65 73 74 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .".test").......................
4ac40 20 20 20 20 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 74 65 73 74 2f 72 65 67 .....(expand-file-name."test/reg
4ac60 72 65 73 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ress"...........................
4ac80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 64 67 65 72 2d 73 6f 75 72 63 65 ...................ledger-source
4aca0 2d 64 69 72 65 63 74 6f 72 79 29 29 29 0a 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6d 6f -directory))).........(ledger-mo
4acc0 64 65 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 69 6e 70 75 74 0a 20 20 20 20 20 20 20 20 20 20 de).........(if.input...........
4ace0 20 20 28 69 6e 73 65 72 74 20 69 6e 70 75 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 ..(insert.input)...........(inse
4ad00 72 74 20 22 32 30 31 32 2d 30 33 2d 31 37 20 50 61 79 65 65 5c 6e 22 29 0a 20 20 20 20 20 20 20 rt."2012-03-17.Payee\n")........
4ad20 20 20 20 28 69 6e 73 65 72 74 20 22 20 20 20 20 45 78 70 65 6e 73 65 73 3a 46 6f 6f 64 20 20 20 ...(insert."....Expenses:Food...
4ad40 20 20 20 20 20 20 20 20 20 20 20 20 20 24 32 30 5c 6e 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 .............$20\n")...........(
4ad60 69 6e 73 65 72 74 20 22 20 20 20 20 41 73 73 65 74 73 3a 43 61 73 68 5c 6e 22 29 29 0a 20 20 20 insert."....Assets:Cash\n"))....
4ad80 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 74 65 73 74 20 72 65 67 5c 6e 22 29 0a 20 20 20 .....(insert."\ntest.reg\n")....
4ada0 20 20 20 20 20 28 69 66 20 6f 75 74 70 75 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 .....(if.output.............(ins
4adc0 65 72 74 20 6f 75 74 70 75 74 29 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 65 6e ert.output)).........(insert."en
4ade0 64 20 74 65 73 74 5c 6e 22 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 74 65 d.test\n")))))..(defun.ledger-te
4ae00 73 74 2d 72 75 6e 20 28 29 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 73 61 76 st-run.()...(interactive)...(sav
4ae20 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e e-excursion.....(goto-char.(poin
4ae40 74 2d 6d 69 6e 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 t-min)).....(when.(re-search-for
4ae60 77 61 72 64 20 22 5e 74 65 73 74 20 5c 5c 28 2e 2b 3f 5c 5c 29 5c 5c 28 20 2d 3e 2e 2a 5c 5c 29 ward."^test.\\(.+?\\)\\(.->.*\\)
4ae80 3f 24 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 6f 6d 6d 61 6e 64 20 ?$".nil.t).......(let.((command.
4aea0 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 6c 65 64 67 65 72 2d 74 65 73 74 2d 62 69 (expand-file-name.ledger-test-bi
4aec0 6e 61 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 67 73 20 28 66 6f 72 6d 61 74 nary)).............(args.(format
4aee0 20 22 2d 2d 61 72 67 73 2d 6f 6e 6c 79 20 2d 2d 63 6f 6c 75 6d 6e 73 3d 38 30 20 2d 2d 6e 6f 2d ."--args-only.--columns=80.--no-
4af00 63 6f 6c 6f 72 20 2d 66 20 5c 22 25 73 5c 22 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 color.-f.\"%s\".%s".............
4af20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 20 28 ..............buffer-file-name.(
4af40 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 match-string.1)))).........(setq
4af60 20 61 72 67 73 20 28 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 20 .args.(replace-regexp-in-string.
4af80 22 5c 5c 24 73 6f 75 72 63 65 70 61 74 68 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "\\$sourcepath".................
4afa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 64 .............................led
4afc0 67 65 72 2d 73 6f 75 72 63 65 2d 64 69 72 65 63 74 6f 72 79 20 61 72 67 73 29 29 0a 20 20 20 20 ger-source-directory.args)).....
4afe0 20 20 20 20 28 6b 69 6c 6c 2d 6e 65 77 20 61 72 67 73 29 0a 20 20 20 20 20 20 20 20 28 6d 65 73 ....(kill-new.args).........(mes
4b000 73 61 67 65 20 22 54 65 73 74 69 6e 67 3a 20 6c 65 64 67 65 72 20 25 73 22 20 61 72 67 73 29 0a sage."Testing:.ledger.%s".args).
4b020 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 70 72 65 76 2d 64 69 72 65 63 74 6f 72 79 20 64 65 ........(let.((prev-directory.de
4b040 66 61 75 6c 74 2d 64 69 72 65 63 74 6f 72 79 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 64 20 fault-directory))...........(cd.
4b060 6c 65 64 67 65 72 2d 73 6f 75 72 63 65 2d 64 69 72 65 63 74 6f 72 79 29 0a 20 20 20 20 20 20 20 ledger-source-directory)........
4b080 20 20 20 28 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ...(unwind-protect..............
4b0a0 20 28 61 73 79 6e 63 2d 73 68 65 6c 6c 2d 63 6f 6d 6d 61 6e 64 20 28 66 6f 72 6d 61 74 20 22 5c .(async-shell-command.(format."\
4b0c0 22 25 73 5c 22 20 25 73 22 20 63 6f 6d 6d 61 6e 64 20 61 72 67 73 29 29 0a 20 20 20 20 20 20 20 "%s\".%s".command.args))........
4b0e0 20 20 20 20 20 28 63 64 20 70 72 65 76 2d 64 69 72 65 63 74 6f 72 79 29 29 29 29 29 29 29 0a 0a .....(cd.prev-directory)))))))..
4b100 28 70 72 6f 76 69 64 65 20 27 6c 65 64 67 65 72 2d 74 65 73 74 29 0a 0a 3b 3b 3b 20 6c 65 64 67 (provide.'ledger-test)..;;;.ledg
4b120 65 72 2d 74 65 73 74 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 er-test.el.ends.here............
4b140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b200 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 33 32 36 2e 32 30 30 32 2f 6c 65 64 67 65 72 ledger-mode-20240326.2002/ledger
4b220 2d 74 65 78 69 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -texi.el........................
4b240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b260 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
4b280 30 30 31 35 33 32 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 37 31 37 00 20 30 00 00 00 0015320.00000000000.015717..0...
4b2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b300 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
4b320 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
4b340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4b400 3b 3b 3b 20 6c 65 64 67 65 72 2d 74 65 78 69 2e 65 6c 20 2d 2d 2d 20 48 65 6c 70 65 72 20 63 6f ;;;.ledger-texi.el.---.Helper.co
4b420 64 65 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 74 68 65 20 22 6c 65 64 67 65 72 22 20 63 6f 6d de.for.use.with.the."ledger".com
4b440 6d 61 6e 64 2d 6c 69 6e 65 20 74 6f 6f 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 mand-line.tool..-*-.lexical-bind
4b460 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 ing:.t;.-*-..;;.Copyright.(C).20
4b480 30 33 2d 32 30 31 36 20 4a 6f 68 6e 20 57 69 65 67 6c 65 79 20 28 6a 6f 68 6e 77 20 41 54 20 67 03-2016.John.Wiegley.(johnw.AT.g
4b4a0 6e 75 20 44 4f 54 20 6f 72 67 29 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 6e 6f 74 nu.DOT.org)..;;.This.file.is.not
4b4c0 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 54 68 69 73 20 69 73 20 .part.of.GNU.Emacs...;;.This.is.
4b4e0 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 free.software;.you.can.redistrib
4b500 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 20 75 6e 64 65 72 0a 3b 3b ute.it.and/or.modify.it.under.;;
4b520 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 .the.terms.of.the.GNU.General.Pu
4b540 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 blic.License.as.published.by.the
4b560 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 .Free.;;.Software.Foundation;.ei
4b580 74 68 65 72 20 76 65 72 73 69 6f 6e 20 32 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 ther.version.2,.or.(at.your.opti
4b5a0 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 0a 3b 3b 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 on).any.later.;;.version..;;.;;.
4b5c0 54 68 69 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 This.is.distributed.in.the.hope.
4b5e0 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 that.it.will.be.useful,.but.WITH
4b600 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 OUT.;;.ANY.WARRANTY;.without.eve
4b620 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 n.the.implied.warranty.of.MERCHA
4b640 4e 54 41 42 49 4c 49 54 59 20 6f 72 0a 3b 3b 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 NTABILITY.or.;;.FITNESS.FOR.A.PA
4b660 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 RTICULAR.PURPOSE...See.the.GNU.G
4b680 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 66 6f 72 20 6d 6f 72 eneral.Public.License.;;.for.mor
4b6a0 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 e.details..;;.;;.You.should.have
4b6c0 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 .received.a.copy.of.the.GNU.Gene
4b6e0 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 ral.Public.License.;;.along.with
4b700 20 47 4e 55 20 45 6d 61 63 73 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 .GNU.Emacs;.see.the.file.COPYING
4b720 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 20 ...If.not,.write.to.the.;;.Free.
4b740 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 Software.Foundation,.Inc.,.51.Fr
4b760 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 anklin.Street,.Fifth.Floor,.Bost
4b780 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 on,.;;.MA.02110-1301.USA...;;;.C
4b7a0 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 28 64 65 66 76 61 72 ommentary:.;;..;;;.Code:.(defvar
4b7c0 20 6c 65 64 67 65 72 2d 62 69 6e 61 72 79 2d 70 61 74 68 29 0a 0a 28 64 65 66 67 72 6f 75 70 20 .ledger-binary-path)..(defgroup.
4b7e0 6c 65 64 67 65 72 2d 74 65 78 69 20 6e 69 6c 0a 20 20 22 4f 70 74 69 6f 6e 73 20 66 6f 72 20 77 ledger-texi.nil..."Options.for.w
4b800 6f 72 6b 69 6e 67 20 6f 6e 20 4c 65 64 67 65 72 20 74 65 78 69 20 64 6f 63 75 6d 65 6e 74 61 74 orking.on.Ledger.texi.documentat
4b820 69 6f 6e 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 29 0a 0a 28 64 65 66 63 75 73 74 ion"...:group.'ledger)..(defcust
4b840 6f 6d 20 6c 65 64 67 65 72 2d 74 65 78 69 2d 73 61 6d 70 6c 65 2d 64 6f 63 2d 70 61 74 68 20 22 om.ledger-texi-sample-doc-path."
4b860 7e 2f 6c 65 64 67 65 72 2f 64 6f 63 2f 73 61 6d 70 6c 65 2e 64 61 74 22 0a 20 20 22 4c 6f 63 61 ~/ledger/doc/sample.dat"..."Loca
4b880 74 69 6f 6e 20 66 6f 72 20 73 61 6d 70 6c 65 20 64 61 74 61 20 74 6f 20 62 65 20 75 73 65 64 20 tion.for.sample.data.to.be.used.
4b8a0 69 6e 20 74 65 78 69 20 74 65 73 74 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 66 69 6c 65 0a 20 20 in.texi.tests."...:type.'file...
4b8c0 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 74 65 78 69 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d :group.'ledger-texi)..(defcustom
4b8e0 20 6c 65 64 67 65 72 2d 74 65 78 69 2d 6e 6f 72 6d 61 6c 69 7a 61 74 69 6f 6e 2d 61 72 67 73 20 .ledger-texi-normalization-args.
4b900 22 2d 2d 61 72 67 73 2d 6f 6e 6c 79 20 2d 2d 63 6f 6c 75 6d 6e 73 20 38 30 22 0a 20 20 22 54 65 "--args-only.--columns.80"..."Te
4b920 78 69 20 6e 6f 72 6d 61 6c 69 7a 61 74 69 6f 6e 20 66 6f 72 20 70 72 6f 64 75 63 69 6e 67 20 6c xi.normalization.for.producing.l
4b940 65 64 67 65 72 20 6f 75 74 70 75 74 2e 22 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 0a 20 edger.output."...:type.'string..
4b960 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 74 65 78 69 29 0a 0a 28 64 65 66 75 6e 20 6c 65 .:group.'ledger-texi)..(defun.le
4b980 64 67 65 72 2d 75 70 64 61 74 65 2d 74 65 73 74 20 28 29 0a 20 20 28 69 6e 74 65 72 61 63 74 69 dger-update-test.()...(interacti
4b9a0 76 65 29 0a 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 ve)...(goto-char.(point-min))...
4b9c0 28 6c 65 74 20 28 28 63 6f 6d 6d 61 6e 64 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 (let.((command.(buffer-substring
4b9e0 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 .(point-min).(line-end-position)
4ba00 29 29 29 0a 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5e 3c 3c 3c ))).....(re-search-forward."^<<<
4ba20 5c 6e 22 29 0a 20 20 20 20 28 6c 65 74 20 28 28 62 65 67 20 28 70 6f 69 6e 74 29 29 20 65 6e 64 \n").....(let.((beg.(point)).end
4ba40 29 0a 20 20 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5e 3e 3e 3e ).......(re-search-forward."^>>>
4ba60 22 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 65 6e 64 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e ").......(setq.end.(match-beginn
4ba80 69 6e 67 20 30 29 29 0a 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 0a 20 ing.0)).......(forward-line.1)..
4baa0 20 20 20 20 20 28 6c 65 74 20 28 28 6f 75 74 70 75 74 2d 62 65 67 20 28 70 6f 69 6e 74 29 29 29 .....(let.((output-beg.(point)))
4bac0 0a 20 20 20 20 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5e 3e 3e .........(re-search-forward."^>>
4bae0 3e 22 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 2d 62 65 >").........(goto-char.(match-be
4bb00 67 69 6e 6e 69 6e 67 20 30 29 29 0a 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 ginning.0)).........(delete-regi
4bb20 6f 6e 20 6f 75 74 70 75 74 2d 62 65 67 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 28 on.output-beg.(point)).........(
4bb40 61 70 70 6c 79 20 23 27 63 61 6c 6c 2d 70 72 6f 63 65 73 73 2d 72 65 67 69 6f 6e 0a 20 20 20 20 apply.#'call-process-region.....
4bb60 20 20 20 20 20 20 20 20 20 20 20 62 65 67 20 65 6e 64 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d ...........beg.end.(expand-file-
4bb80 6e 61 6d 65 20 22 7e 2f 50 72 6f 64 75 63 74 73 2f 6c 65 64 67 65 72 2f 64 65 62 75 67 2f 6c 65 name."~/Products/ledger/debug/le
4bba0 64 67 65 72 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 74 20 6e 69 6c 0a dger")................nil.t.nil.
4bbc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 66 22 20 22 2d 22 20 22 2d 2d 61 72 67 73 2d ..............."-f"."-"."--args-
4bbe0 6f 6e 6c 79 22 20 22 2d 2d 63 6f 6c 75 6d 6e 73 3d 38 30 22 20 22 2d 2d 6e 6f 2d 63 6f 6c 6f 72 only"."--columns=80"."--no-color
4bc00 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 63 "................(split-string.c
4bc20 6f 6d 6d 61 6e 64 20 22 20 22 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d ommand."."))))))..(defun.ledger-
4bc40 74 65 78 69 2d 77 72 69 74 65 2d 74 65 73 74 20 28 6e 61 6d 65 20 63 6f 6d 6d 61 6e 64 20 69 6e texi-write-test.(name.command.in
4bc60 70 75 74 20 6f 75 74 70 75 74 20 26 6f 70 74 69 6f 6e 61 6c 20 63 61 74 65 67 6f 72 79 29 0a 20 put.output.&optional.category)..
4bc80 20 28 6c 65 74 20 28 28 62 75 66 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 0a 20 .(let.((buf.(current-buffer)))..
4bca0 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 66 69 6e 64 2d 66 69 ...(with-current-buffer.(find-fi
4bcc0 6c 65 2d 6e 6f 73 65 6c 65 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 le-noselect.....................
4bce0 20 20 20 20 20 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 28 63 6f 6e 63 61 74 20 ......(expand-file-name.(concat.
4bd00 6e 61 6d 65 20 22 2e 74 65 73 74 22 29 20 63 61 74 65 67 6f 72 79 29 29 0a 20 20 20 20 20 20 28 name.".test").category)).......(
4bd20 65 72 61 73 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 61 73 65 2d erase-buffer).......(let.((case-
4bd40 66 6f 6c 64 2d 73 65 61 72 63 68 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 73 fold-search.nil)).........(if.(s
4bd60 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5c 5c 24 4c 45 44 47 45 52 5c 5c 73 2d 2b 22 20 63 6f 6d tring-match."\\$LEDGER\\s-+".com
4bd80 6d 61 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6d 6d 61 6e 64 20 mand).............(setq.command.
4bda0 28 72 65 70 6c 61 63 65 2d 6d 61 74 63 68 20 22 22 20 74 20 74 20 63 6f 6d 6d 61 6e 64 29 29 29 (replace-match."".t.t.command)))
4bdc0 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 20 2d 66 20 .........(if.(string-match.".-f.
4bde0 5c 5c 24 5c 5c 28 5b 2d 61 2d 7a 5d 2b 5c 5c 29 22 20 63 6f 6d 6d 61 6e 64 29 0a 20 20 20 20 20 \\$\\([-a-z]+\\)".command)......
4be00 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6d 6d 61 6e 64 20 28 72 65 70 6c 61 63 65 2d 6d 61 .......(setq.command.(replace-ma
4be20 74 63 68 20 22 22 20 74 20 74 20 63 6f 6d 6d 61 6e 64 29 29 29 29 0a 20 20 20 20 20 20 28 69 6e tch."".t.t.command)))).......(in
4be40 73 65 72 74 20 63 6f 6d 6d 61 6e 64 20 3f 5c 6e 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 sert.command.?\n).......(insert.
4be60 22 3c 3c 3c 22 20 3f 5c 6e 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 69 6e 70 75 74 29 0a "<<<".?\n).......(insert.input).
4be80 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 3e 3e 3e 31 22 20 3f 5c 6e 29 0a 20 20 20 20 20 20 ......(insert.">>>1".?\n).......
4bea0 28 69 6e 73 65 72 74 20 6f 75 74 70 75 74 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 3e (insert.output).......(insert.">
4bec0 3e 3e 32 22 20 3f 5c 6e 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 3d 3d 3d 20 30 22 20 >>2".?\n).......(insert."===.0".
4bee0 3f 5c 6e 29 0a 20 20 20 20 20 20 28 73 61 76 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 28 ?\n).......(save-buffer).......(
4bf00 75 6e 6c 65 73 73 20 28 65 71 20 62 75 66 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 unless.(eq.buf.(current-buffer))
4bf20 0a 20 20 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 .........(kill-buffer.(current-b
4bf40 75 66 66 65 72 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 74 65 78 69 2d uffer))))))..(defun.ledger-texi-
4bf60 75 70 64 61 74 65 2d 74 65 73 74 20 28 29 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 update-test.()...(interactive)..
4bf80 20 28 6c 65 74 20 28 28 64 65 74 61 69 6c 73 20 28 6c 65 64 67 65 72 2d 74 65 78 69 2d 74 65 73 .(let.((details.(ledger-texi-tes
4bfa0 74 2d 64 65 74 61 69 6c 73 29 29 0a 20 20 20 20 20 20 20 20 28 6e 61 6d 65 20 28 66 69 6c 65 2d t-details)).........(name.(file-
4bfc0 6e 61 6d 65 2d 73 61 6e 73 2d 65 78 74 65 6e 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 name-sans-extension.............
4bfe0 20 20 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 79 20 28 62 75 66 66 ...(file-name-nondirectory.(buff
4c000 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 29 29 29 29 29 0a 20 20 20 20 28 6c 65 64 67 65 72 2d 74 65 er-file-name))))).....(ledger-te
4c020 78 69 2d 77 72 69 74 65 2d 74 65 73 74 0a 20 20 20 20 20 6e 61 6d 65 20 28 6e 74 68 20 30 20 64 xi-write-test......name.(nth.0.d
4c040 65 74 61 69 6c 73 29 0a 20 20 20 20 20 28 6e 74 68 20 31 20 64 65 74 61 69 6c 73 29 0a 20 20 20 etails)......(nth.1.details)....
4c060 20 20 28 6c 65 64 67 65 72 2d 74 65 78 69 2d 69 6e 76 6f 6b 65 2d 63 6f 6d 6d 61 6e 64 0a 20 20 ..(ledger-texi-invoke-command...
4c080 20 20 20 20 28 6c 65 64 67 65 72 2d 74 65 78 69 2d 65 78 70 61 6e 64 2d 63 6f 6d 6d 61 6e 64 0a ....(ledger-texi-expand-command.
4c0a0 20 20 20 20 20 20 20 28 6e 74 68 20 30 20 64 65 74 61 69 6c 73 29 0a 20 20 20 20 20 20 20 28 6c .......(nth.0.details)........(l
4c0c0 65 64 67 65 72 2d 74 65 78 69 2d 77 72 69 74 65 2d 74 65 73 74 2d 64 61 74 61 20 6e 61 6d 65 20 edger-texi-write-test-data.name.
4c0e0 28 6e 74 68 20 31 20 64 65 74 61 69 6c 73 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 (nth.1.details)))))))..(defun.le
4c100 64 67 65 72 2d 74 65 78 69 2d 74 65 73 74 2d 64 65 74 61 69 6c 73 20 28 29 0a 20 20 28 67 6f 74 dger-texi-test-details.()...(got
4c120 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 28 6c 65 74 20 28 28 63 6f 6d o-char.(point-min))...(let.((com
4c140 6d 61 6e 64 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 28 70 6f 69 6e 74 29 20 28 mand.(buffer-substring.(point).(
4c160 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 29 0a 20 20 20 20 20 20 20 20 69 6e 70 line-end-position))).........inp
4c180 75 74 20 6f 75 74 70 75 74 29 0a 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 ut.output).....(re-search-forwar
4c1a0 64 20 22 5e 3c 3c 3c 22 29 0a 20 20 20 20 28 6c 65 74 20 28 28 69 6e 70 75 74 2d 62 65 67 20 28 d."^<<<").....(let.((input-beg.(
4c1c0 31 2b 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 29 29 0a 20 20 20 20 20 20 28 72 65 2d 73 65 1+.(match-end.0)))).......(re-se
4c1e0 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5e 3e 3e 3e 31 22 29 0a 20 20 20 20 20 20 28 6c 65 74 arch-forward."^>>>1").......(let
4c200 20 28 28 6f 75 74 70 75 74 2d 62 65 67 20 28 31 2b 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 .((output-beg.(1+.(match-end.0))
4c220 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 69 6e 70 75 74 20 28 62 75 66 66 65 72 2d 73 )).........(setq.input.(buffer-s
4c240 75 62 73 74 72 69 6e 67 20 69 6e 70 75 74 2d 62 65 67 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e ubstring.input-beg.(match-beginn
4c260 69 6e 67 20 30 29 29 29 0a 20 20 20 20 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 ing.0))).........(re-search-forw
4c280 61 72 64 20 22 5e 3e 3e 3e 32 22 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6f 75 74 70 75 ard."^>>>2").........(setq.outpu
4c2a0 74 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 6f 75 74 70 75 74 2d 62 65 67 20 28 t.(buffer-substring.output-beg.(
4c2c0 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 29 0a 20 20 20 20 20 20 20 20 28 6c 69 match-beginning.0))).........(li
4c2e0 73 74 20 63 6f 6d 6d 61 6e 64 20 69 6e 70 75 74 20 6f 75 74 70 75 74 29 29 29 29 29 0a 0a 28 64 st.command.input.output)))))..(d
4c300 65 66 75 6e 20 6c 65 64 67 65 72 2d 74 65 78 69 2d 65 78 70 61 6e 64 2d 63 6f 6d 6d 61 6e 64 20 efun.ledger-texi-expand-command.
4c320 28 63 6f 6d 6d 61 6e 64 20 64 61 74 61 2d 66 69 6c 65 29 0a 20 20 28 69 66 20 28 73 74 72 69 6e (command.data-file)...(if.(strin
4c340 67 2d 6d 61 74 63 68 20 22 5c 5c 24 4c 45 44 47 45 52 22 20 63 6f 6d 6d 61 6e 64 29 0a 20 20 20 g-match."\\$LEDGER".command)....
4c360 20 20 20 28 72 65 70 6c 61 63 65 2d 6d 61 74 63 68 20 28 66 6f 72 6d 61 74 20 22 25 73 20 2d 66 ...(replace-match.(format."%s.-f
4c380 20 5c 22 25 73 5c 22 20 25 73 22 20 6c 65 64 67 65 72 2d 62 69 6e 61 72 79 2d 70 61 74 68 0a 20 .\"%s\".%s".ledger-binary-path..
4c3a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 61 74 61 ............................data
4c3c0 2d 66 69 6c 65 20 6c 65 64 67 65 72 2d 74 65 78 69 2d 6e 6f 72 6d 61 6c 69 7a 61 74 69 6f 6e 2d -file.ledger-texi-normalization-
4c3e0 61 72 67 73 29 20 74 20 74 20 63 6f 6d 6d 61 6e 64 29 0a 20 20 20 20 28 63 6f 6e 63 61 74 20 28 args).t.t.command).....(concat.(
4c400 66 6f 72 6d 61 74 20 22 25 73 20 2d 66 20 5c 22 25 73 5c 22 20 25 73 20 22 20 6c 65 64 67 65 72 format."%s.-f.\"%s\".%s.".ledger
4c420 2d 62 69 6e 61 72 79 2d 70 61 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -binary-path....................
4c440 20 64 61 74 61 2d 66 69 6c 65 20 6c 65 64 67 65 72 2d 74 65 78 69 2d 6e 6f 72 6d 61 6c 69 7a 61 .data-file.ledger-texi-normaliza
4c460 74 69 6f 6e 2d 61 72 67 73 29 20 63 6f 6d 6d 61 6e 64 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 tion-args).command)))..(defun.le
4c480 64 67 65 72 2d 74 65 78 69 2d 69 6e 76 6f 6b 65 2d 63 6f 6d 6d 61 6e 64 20 28 63 6f 6d 6d 61 6e dger-texi-invoke-command.(comman
4c4a0 64 29 0a 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 20 28 73 68 65 6c 6c 2d 63 6f d)...(with-temp-buffer.(shell-co
4c4c0 6d 6d 61 6e 64 20 63 6f 6d 6d 61 6e 64 20 74 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 mmand.command.t.(current-buffer)
4c4e0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3d 20 28 70 6f ).....................(if.(=.(po
4c500 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 int-min).(point-max))...........
4c520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 ..............(progn............
4c540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 2d 6d 61 72 6b 20 6e 69 6c 20 74 29 ...............(push-mark.nil.t)
4c560 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 ...........................(mess
4c580 61 67 65 20 22 43 6f 6d 6d 61 6e 64 20 27 25 73 27 20 79 69 65 6c 64 65 64 20 6e 6f 20 72 65 73 age."Command.'%s'.yielded.no.res
4c5a0 75 6c 74 20 61 74 20 25 64 22 20 63 6f 6d 6d 61 6e 64 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 ult.at.%d".command.(point)).....
4c5c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 69 6e 67 29 29 0a 20 20 ......................(ding))...
4c5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 74 72 69 ....................(buffer-stri
4c600 6e 67 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 74 65 78 69 2d 77 72 69 74 65 ng))))..(defun.ledger-texi-write
4c620 2d 74 65 73 74 2d 64 61 74 61 20 28 6e 61 6d 65 20 69 6e 70 75 74 29 0a 20 20 28 6c 65 74 20 28 -test-data.(name.input)...(let.(
4c640 28 70 61 74 68 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 6e 61 6d 65 20 74 65 6d (path.(expand-file-name.name.tem
4c660 70 6f 72 61 72 79 2d 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 29 29 29 0a 20 20 20 20 28 77 69 porary-file-directory))).....(wi
4c680 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 66 69 6e 64 2d 66 69 6c 65 2d 6e 6f 73 th-current-buffer.(find-file-nos
4c6a0 65 6c 65 63 74 20 70 61 74 68 29 0a 20 20 20 20 20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72 29 elect.path).......(erase-buffer)
4c6c0 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 69 6e 70 75 74 29 0a 20 20 20 20 20 20 28 73 61 76 .......(insert.input).......(sav
4c6e0 65 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 70 61 74 68 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 e-buffer)).....path))..(defun.le
4c700 64 67 65 72 2d 74 65 78 69 2d 75 70 64 61 74 65 2d 65 78 61 6d 70 6c 65 73 20 28 29 0a 20 20 28 dger-texi-update-examples.()...(
4c720 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 interactive)...(save-excursion..
4c740 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 28 ...(goto-char.(point-min)).....(
4c760 77 68 69 6c 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5e 40 63 20 5c 5c while.(re-search-forward."^@c.\\
4c780 28 5c 5c 28 3f 3a 73 6d 5c 5c 29 3f 65 78 5c 5c 29 20 5c 5c 28 5c 5c 53 2d 2b 5c 5c 29 3a 20 5c (\\(?:sm\\)?ex\\).\\(\\S-+\\):.\
4c7a0 5c 28 2e 2a 5c 5c 29 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 73 65 63 \(.*\\)".nil.t).......(let.((sec
4c7c0 74 69 6f 6e 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 tion.(match-string.1))..........
4c7e0 20 20 20 28 65 78 61 6d 70 6c 65 2d 6e 61 6d 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32 ...(example-name.(match-string.2
4c800 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6d 6d 61 6e 64 20 28 6d 61 74 63 68 2d 73 )).............(command.(match-s
4c820 74 72 69 6e 67 20 33 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 64 61 74 61 2d 66 69 6c 65 tring.3)).............(data-file
4c840 20 6c 65 64 67 65 72 2d 74 65 78 69 2d 73 61 6d 70 6c 65 2d 64 6f 63 2d 70 61 74 68 29 29 0a 20 .ledger-texi-sample-doc-path))..
4c860 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 .......(goto-char.(match-end.0))
4c880 0a 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 .........(forward-line).........
4c8a0 28 77 68 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 40 5c 5c 28 5c 5c 28 3f 3a 73 6d 61 6c (when.(looking-at."@\\(\\(?:smal
4c8c0 6c 5c 5c 29 3f 65 78 61 6d 70 6c 65 5c 5c 29 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 l\\)?example\\)")...........(let
4c8e0 20 28 28 62 65 67 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 .((beg.(point))).............(re
4c900 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5e 40 65 6e 64 20 5c 5c 28 5c 5c 28 3f 3a 73 -search-forward."^@end.\\(\\(?:s
4c920 6d 61 6c 6c 5c 5c 29 3f 65 78 61 6d 70 6c 65 5c 5c 29 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 mall\\)?example\\)")............
4c940 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 62 65 67 20 28 31 2b 20 28 70 6f 69 6e 74 29 29 .(delete-region.beg.(1+.(point))
4c960 29 29 29 0a 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6c 65 74 20 28 28 63 61 73 65 2d 66 )))..........(when.(let.((case-f
4c980 6f 6c 64 2d 73 65 61 72 63 68 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 old-search.nil))................
4c9a0 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 20 2d 66 20 5c 5c 24 5c 5c 28 5b 2d 61 2d 7a 5d .(string-match.".-f.\\$\\([-a-z]
4c9c0 2b 5c 5c 29 22 20 63 6f 6d 6d 61 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 +\\)".command))...........(let.(
4c9e0 28 6c 61 62 65 6c 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 20 63 6f 6d 6d 61 6e 64 29 29 (label.(match-string.1.command))
4ca00 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6d 6d 61 6e 64 20 28 72 65 70 ).............(setq.command.(rep
4ca20 6c 61 63 65 2d 6d 61 74 63 68 20 22 22 20 74 20 74 20 63 6f 6d 6d 61 6e 64 29 29 0a 20 20 20 20 lace-match."".t.t.command)).....
4ca40 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 ........(save-excursion.........
4ca60 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 ......(goto-char.(point-min))...
4ca80 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 28 66 6f 72 ............(search-forward.(for
4caa0 6d 61 74 20 22 40 63 20 64 61 74 61 3a 20 25 73 22 20 6c 61 62 65 6c 29 29 0a 20 20 20 20 20 20 mat."@c.data:.%s".label)).......
4cac0 20 20 20 20 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 40 5c 5c 28 ........(re-search-forward."@\\(
4cae0 5c 5c 28 3f 3a 73 6d 61 6c 6c 5c 5c 29 3f 65 78 61 6d 70 6c 65 5c 5c 29 22 29 0a 20 20 20 20 20 \\(?:small\\)?example\\)")......
4cb00 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 .........(forward-line).........
4cb20 20 20 20 20 20 20 28 6c 65 74 20 28 28 62 65 67 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 ......(let.((beg.(point)))......
4cb40 20 20 20 20 20 20 20 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 40 ...........(re-search-forward."@
4cb60 65 6e 64 20 5c 5c 28 5c 5c 28 3f 3a 73 6d 61 6c 6c 5c 5c 29 3f 65 78 61 6d 70 6c 65 5c 5c 29 22 end.\\(\\(?:small\\)?example\\)"
4cb80 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 64 61 74 61 2d 66 69 6c ).................(setq.data-fil
4cba0 65 20 28 6c 65 64 67 65 72 2d 74 65 78 69 2d 77 72 69 74 65 2d 74 65 73 74 2d 64 61 74 61 0a 20 e.(ledger-texi-write-test-data..
4cbc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4cbe0 28 66 6f 72 6d 61 74 20 22 25 73 2e 64 61 74 22 20 6c 61 62 65 6c 29 0a 20 20 20 20 20 20 20 20 (format."%s.dat".label).........
4cc00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 .........................(buffer
4cc20 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 -substring-no-properties........
4cc40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 20 28 ...........................beg.(
4cc60 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 29 29 29 29 29 29 0a 0a 20 20 20 20 20 match-beginning.0)))))))).......
4cc80 20 20 20 28 6c 65 74 20 28 28 73 65 63 74 69 6f 6e 2d 6e 61 6d 65 20 28 69 66 20 28 73 74 72 69 ...(let.((section-name.(if.(stri
4cca0 6e 67 3d 20 73 65 63 74 69 6f 6e 20 22 73 6d 65 78 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ng=.section."smex").............
4ccc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 73 6d 61 6c 6c 65 78 61 6d 70 6c ...................."smallexampl
4cce0 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e"..............................
4cd00 20 22 65 78 61 6d 70 6c 65 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 75 74 70 ."example"))...............(outp
4cd20 75 74 20 28 6c 65 64 67 65 72 2d 74 65 78 69 2d 69 6e 76 6f 6b 65 2d 63 6f 6d 6d 61 6e 64 0a 20 ut.(ledger-texi-invoke-command..
4cd40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 74 65 ......................(ledger-te
4cd60 78 69 2d 65 78 70 61 6e 64 2d 63 6f 6d 6d 61 6e 64 20 63 6f 6d 6d 61 6e 64 20 64 61 74 61 2d 66 xi-expand-command.command.data-f
4cd80 69 6c 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 40 22 20 73 65 ile))))...........(insert."@".se
4cda0 63 74 69 6f 6e 2d 6e 61 6d 65 20 3f 5c 6e 20 6f 75 74 70 75 74 0a 20 20 20 20 20 20 20 20 20 20 ction-name.?\n.output...........
4cdc0 20 20 20 20 20 20 20 20 22 40 65 6e 64 20 22 20 73 65 63 74 69 6f 6e 2d 6e 61 6d 65 20 3f 5c 6e ........"@end.".section-name.?\n
4cde0 29 29 0a 0a 20 20 20 20 20 20 20 20 3b 3b 20 55 70 64 61 74 65 20 74 68 65 20 72 65 67 72 65 73 ))..........;;.Update.the.regres
4ce00 73 69 6f 6e 20 74 65 73 74 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 74 68 69 73 20 65 sion.test.associated.with.this.e
4ce20 78 61 6d 70 6c 65 0a 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 74 65 78 69 2d 77 72 69 74 xample.........(ledger-texi-writ
4ce40 65 2d 74 65 73 74 20 65 78 61 6d 70 6c 65 2d 6e 61 6d 65 20 63 6f 6d 6d 61 6e 64 20 6e 69 6c 20 e-test.example-name.command.nil.
4ce60 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nil.............................
4ce80 20 20 20 20 22 2e 2e 2f 74 65 73 74 2f 6d 61 6e 75 61 6c 22 29 29 29 29 29 0a 0a 28 70 72 6f 76 ...."../test/manual")))))..(prov
4cea0 69 64 65 20 27 6c 65 64 67 65 72 2d 74 65 78 69 29 0a 0a 3b 3b 3b 20 6c 65 64 67 65 72 2d 74 65 ide.'ledger-texi)..;;;.ledger-te
4cec0 78 69 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 xi.el.ends.here.................
4cee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cf00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cf20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cf40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cf60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cf80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cfa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cfc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4cfe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4d000 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 33 32 36 2e 32 30 30 32 2f 6c 65 64 67 65 72 ledger-mode-20240326.2002/ledger
4d020 2d 78 61 63 74 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -xact.el........................
4d040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4d060 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
4d080 30 30 32 31 32 35 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 37 31 30 00 20 30 00 00 00 0021254.00000000000.015710..0...
4d0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4d0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4d0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4d100 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
4d120 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
4d140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4d160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4d180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4d1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4d1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4d1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4d200 3b 3b 3b 20 6c 65 64 67 65 72 2d 78 61 63 74 2e 65 6c 20 2d 2d 2d 20 48 65 6c 70 65 72 20 63 6f ;;;.ledger-xact.el.---.Helper.co
4d220 64 65 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 74 68 65 20 22 6c 65 64 67 65 72 22 20 63 6f 6d de.for.use.with.the."ledger".com
4d240 6d 61 6e 64 2d 6c 69 6e 65 20 74 6f 6f 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 mand-line.tool..-*-.lexical-bind
4d260 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 ing:.t;.-*-..;;.Copyright.(C).20
4d280 30 33 2d 32 30 31 36 20 4a 6f 68 6e 20 57 69 65 67 6c 65 79 20 28 6a 6f 68 6e 77 20 41 54 20 67 03-2016.John.Wiegley.(johnw.AT.g
4d2a0 6e 75 20 44 4f 54 20 6f 72 67 29 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 6e 6f 74 nu.DOT.org)..;;.This.file.is.not
4d2c0 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 54 68 69 73 20 69 73 20 .part.of.GNU.Emacs...;;.This.is.
4d2e0 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 free.software;.you.can.redistrib
4d300 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 20 75 6e 64 65 72 0a 3b 3b ute.it.and/or.modify.it.under.;;
4d320 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 .the.terms.of.the.GNU.General.Pu
4d340 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 blic.License.as.published.by.the
4d360 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 .Free.;;.Software.Foundation;.ei
4d380 74 68 65 72 20 76 65 72 73 69 6f 6e 20 32 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 ther.version.2,.or.(at.your.opti
4d3a0 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 0a 3b 3b 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 on).any.later.;;.version..;;.;;.
4d3c0 54 68 69 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 This.is.distributed.in.the.hope.
4d3e0 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 that.it.will.be.useful,.but.WITH
4d400 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 OUT.;;.ANY.WARRANTY;.without.eve
4d420 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 n.the.implied.warranty.of.MERCHA
4d440 4e 54 41 42 49 4c 49 54 59 20 6f 72 0a 3b 3b 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 NTABILITY.or.;;.FITNESS.FOR.A.PA
4d460 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 RTICULAR.PURPOSE...See.the.GNU.G
4d480 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 66 6f 72 20 6d 6f 72 eneral.Public.License.;;.for.mor
4d4a0 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 e.details..;;.;;.You.should.have
4d4c0 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 .received.a.copy.of.the.GNU.Gene
4d4e0 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 ral.Public.License.;;.along.with
4d500 20 47 4e 55 20 45 6d 61 63 73 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 .GNU.Emacs;.see.the.file.COPYING
4d520 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 20 ...If.not,.write.to.the.;;.Free.
4d540 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 Software.Foundation,.Inc.,.51.Fr
4d560 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 anklin.Street,.Fifth.Floor,.Bost
4d580 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 20 55 53 41 2e 0a 0a 0a 3b 3b 3b 20 on,.;;.MA.02110-1301.USA....;;;.
4d5a0 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 20 55 74 69 6c 69 74 69 65 73 20 66 6f 72 20 72 75 6e Commentary:.;;.Utilities.for.run
4d5c0 6e 69 6e 67 20 6c 65 64 67 65 72 20 73 79 6e 63 68 72 6f 6e 6f 75 73 6c 79 2e 0a 0a 3b 3b 3b 20 ning.ledger.synchronously...;;;.
4d5e0 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 65 73 68 65 6c 6c 29 0a 28 72 65 71 75 69 72 Code:..(require.'eshell).(requir
4d600 65 20 27 6c 65 64 67 65 72 2d 72 65 67 65 78 29 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 e.'ledger-regex).(require.'ledge
4d620 72 2d 6e 61 76 69 67 61 74 65 29 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 65 78 65 r-navigate).(require.'ledger-exe
4d640 63 29 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 70 6f 73 74 29 0a 28 64 65 63 6c 61 c).(require.'ledger-post).(decla
4d660 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6c 65 64 67 65 72 2d 72 65 61 64 2d 64 61 74 65 20 22 6c 65 re-function.ledger-read-date."le
4d680 64 67 65 72 2d 6d 6f 64 65 22 20 28 70 72 6f 6d 70 74 29 29 0a 0a 3b 3b 20 54 4f 44 4f 3a 20 54 dger-mode".(prompt))..;;.TODO:.T
4d6a0 68 69 73 20 66 69 6c 65 20 64 65 70 65 6e 64 73 20 6f 6e 20 63 6f 64 65 20 69 6e 20 6c 65 64 67 his.file.depends.on.code.in.ledg
4d6c0 65 72 2d 6d 6f 64 65 2e 65 6c 2c 20 77 68 69 63 68 20 64 65 70 65 6e 64 73 20 6f 6e 20 74 68 69 er-mode.el,.which.depends.on.thi
4d6e0 73 2e 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 68 69 67 68 6c 69 67 68 74 2d s...(defcustom.ledger-highlight-
4d700 78 61 63 74 2d 75 6e 64 65 72 2d 70 6f 69 6e 74 20 74 0a 20 20 22 49 66 20 74 20 68 69 67 68 6c xact-under-point.t..."If.t.highl
4d720 69 67 68 74 20 78 61 63 74 20 75 6e 64 65 72 20 70 6f 69 6e 74 2e 22 0a 20 20 3a 74 79 70 65 20 ight.xact.under.point."...:type.
4d740 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 29 0a 0a 28 64 65 66 'boolean...:group.'ledger)..(def
4d760 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 61 64 64 2d 74 72 61 6e 73 61 63 74 69 6f 6e 2d 70 72 custom.ledger-add-transaction-pr
4d780 6f 6d 70 74 2d 66 6f 72 2d 74 65 78 74 20 74 0a 20 20 22 57 68 65 6e 20 6e 6f 6e 2d 6e 69 6c 2c ompt-for-text.t..."When.non-nil,
4d7a0 20 75 73 65 20 6c 65 64 67 65 72 20 78 61 63 74 20 74 6f 20 66 6f 72 6d 61 74 20 74 72 61 6e 73 .use.ledger.xact.to.format.trans
4d7c0 61 63 74 69 6f 6e 2e 0a 57 68 65 6e 20 6e 69 6c 2c 20 60 6c 65 64 67 65 72 2d 61 64 64 2d 74 72 action..When.nil,.`ledger-add-tr
4d7e0 61 6e 73 61 63 74 69 6f 6e 27 20 77 69 6c 6c 20 6e 6f 74 20 70 72 6f 6d 70 74 20 74 77 69 63 65 ansaction'.will.not.prompt.twice
4d800 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 ."...:type.'boolean...:package-v
4d820 65 72 73 69 6f 6e 20 27 28 6c 65 64 67 65 72 2d 6d 6f 64 65 20 2e 20 22 34 2e 30 2e 31 22 29 0a ersion.'(ledger-mode..."4.0.1").
4d840 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c ..:group.'ledger)..(defvar-local
4d860 20 6c 65 64 67 65 72 2d 78 61 63 74 2d 68 69 67 68 6c 69 67 68 74 2d 6f 76 65 72 6c 61 79 20 28 .ledger-xact-highlight-overlay.(
4d880 6c 69 73 74 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 68 69 67 68 6c 69 67 68 74 2d list))..(defun.ledger-highlight-
4d8a0 6d 61 6b 65 2d 6f 76 65 72 6c 61 79 20 28 29 0a 20 20 28 6c 65 74 20 28 28 6f 76 6c 20 28 6d 61 make-overlay.()...(let.((ovl.(ma
4d8c0 6b 65 2d 6f 76 65 72 6c 61 79 20 31 20 31 29 29 29 0a 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 ke-overlay.1.1))).....(overlay-p
4d8e0 75 74 20 6f 76 6c 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 61 63 65 20 27 6c 65 64 67 65 72 2d 66 ut.ovl.'font-lock-face.'ledger-f
4d900 6f 6e 74 2d 78 61 63 74 2d 68 69 67 68 6c 69 67 68 74 2d 66 61 63 65 29 0a 20 20 20 20 28 6f 76 ont-xact-highlight-face).....(ov
4d920 65 72 6c 61 79 2d 70 75 74 20 6f 76 6c 20 27 70 72 69 6f 72 69 74 79 20 27 28 6e 69 6c 20 2e 20 erlay-put.ovl.'priority.'(nil...
4d940 39 39 29 29 0a 20 20 20 20 6f 76 6c 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 68 69 99)).....ovl))..(defun.ledger-hi
4d960 67 68 6c 69 67 68 74 2d 78 61 63 74 2d 75 6e 64 65 72 2d 70 6f 69 6e 74 20 28 29 0a 20 20 22 4d ghlight-xact-under-point.()..."M
4d980 6f 76 65 20 74 68 65 20 68 69 67 68 6c 69 67 68 74 20 6f 76 65 72 6c 61 79 20 74 6f 20 74 68 65 ove.the.highlight.overlay.to.the
4d9a0 20 63 75 72 72 65 6e 74 20 74 72 61 6e 73 61 63 74 69 6f 6e 2e 22 0a 20 20 28 77 68 65 6e 20 6c .current.transaction."...(when.l
4d9c0 65 64 67 65 72 2d 68 69 67 68 6c 69 67 68 74 2d 78 61 63 74 2d 75 6e 64 65 72 2d 70 6f 69 6e 74 edger-highlight-xact-under-point
4d9e0 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 6c 65 64 67 65 72 2d 78 61 63 74 2d 68 69 67 68 6c 69 67 .....(unless.ledger-xact-highlig
4da00 68 74 2d 6f 76 65 72 6c 61 79 0a 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 78 61 ht-overlay.......(setq.ledger-xa
4da20 63 74 2d 68 69 67 68 6c 69 67 68 74 2d 6f 76 65 72 6c 61 79 20 28 6c 65 64 67 65 72 2d 68 69 67 ct-highlight-overlay.(ledger-hig
4da40 68 6c 69 67 68 74 2d 6d 61 6b 65 2d 6f 76 65 72 6c 61 79 29 29 29 0a 20 20 20 20 28 6c 65 74 20 hlight-make-overlay))).....(let.
4da60 28 28 65 78 74 73 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 66 69 6e 64 2d 65 6c 65 ((exts.(ledger-navigate-find-ele
4da80 6d 65 6e 74 2d 65 78 74 65 6e 74 73 20 28 70 6f 69 6e 74 29 29 29 29 0a 20 20 20 20 20 20 28 6c ment-extents.(point)))).......(l
4daa0 65 74 20 28 28 62 20 28 63 61 72 20 65 78 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 et.((b.(car.exts)).............(
4dac0 65 20 28 63 61 64 72 20 65 78 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 20 28 70 e.(cadr.exts)).............(p.(p
4dae0 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 3e 20 28 2d 20 65 oint))).........(if.(and.(>.(-.e
4db00 20 62 29 20 31 29 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 6e 6f 74 20 61 6e 20 65 6d 70 74 79 .b).1)............;.not.an.empty
4db20 20 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3c 3d 20 70 20 65 29 20 .line..................(<=.p.e).
4db40 28 3e 3d 20 70 20 62 29 20 20 20 20 20 20 20 20 3b 20 70 6f 69 6e 74 20 69 73 20 77 69 74 68 69 (>=.p.b)........;.point.is.withi
4db60 6e 20 74 68 65 20 62 6f 75 6e 64 61 72 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n.the.boundaries................
4db80 20 20 28 6e 6f 74 20 28 72 65 67 69 6f 6e 2d 61 63 74 69 76 65 2d 70 29 29 29 20 3b 20 6e 6f 20 ..(not.(region-active-p))).;.no.
4dba0 61 63 74 69 76 65 20 72 65 67 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 6f 76 65 2d active.region.............(move-
4dbc0 6f 76 65 72 6c 61 79 20 6c 65 64 67 65 72 2d 78 61 63 74 2d 68 69 67 68 6c 69 67 68 74 2d 6f 76 overlay.ledger-xact-highlight-ov
4dbe0 65 72 6c 61 79 20 62 20 28 2b 20 31 20 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6d 6f 76 65 erlay.b.(+.1.e))...........(move
4dc00 2d 6f 76 65 72 6c 61 79 20 6c 65 64 67 65 72 2d 78 61 63 74 2d 68 69 67 68 6c 69 67 68 74 2d 6f -overlay.ledger-xact-highlight-o
4dc20 76 65 72 6c 61 79 20 31 20 31 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d verlay.1.1))))))..(defun.ledger-
4dc40 78 61 63 74 2d 63 6f 6e 74 65 78 74 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 63 6f xact-context.()..."Return.the.co
4dc60 6e 74 65 78 74 20 6f 66 20 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 63 6f 6e 74 61 69 6e ntext.of.the.transaction.contain
4dc80 69 6e 67 20 70 6f 69 6e 74 20 6f 72 20 6e 69 6c 2e 22 0a 20 20 28 6c 65 74 20 28 28 69 20 30 29 ing.point.or.nil."...(let.((i.0)
4dca0 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 65 71 20 28 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 ).....(while.(eq.(ledger-context
4dcc0 2d 6c 69 6e 65 2d 74 79 70 65 20 28 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 2d 6f 74 68 65 72 -line-type.(ledger-context-other
4dce0 2d 6c 69 6e 65 20 69 29 29 20 27 61 63 63 74 2d 74 72 61 6e 73 61 63 74 69 6f 6e 29 0a 20 20 20 -line.i)).'acct-transaction)....
4dd00 20 20 20 28 73 65 74 71 20 69 20 28 2d 20 69 20 31 29 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 ...(setq.i.(-.i.1))).....(let.((
4dd20 63 6f 6e 74 65 78 74 2d 69 6e 66 6f 20 28 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 2d 6f 74 68 context-info.(ledger-context-oth
4dd40 65 72 2d 6c 69 6e 65 20 69 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 28 6c 65 er-line.i))).......(when.(eq.(le
4dd60 64 67 65 72 2d 63 6f 6e 74 65 78 74 2d 6c 69 6e 65 2d 74 79 70 65 20 63 6f 6e 74 65 78 74 2d 69 dger-context-line-type.context-i
4dd80 6e 66 6f 29 20 27 78 61 63 74 29 0a 20 20 20 20 20 20 20 20 63 6f 6e 74 65 78 74 2d 69 6e 66 6f nfo).'xact).........context-info
4dda0 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 78 61 63 74 2d 70 61 79 65 65 20 28 ))))..(defun.ledger-xact-payee.(
4ddc0 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 70 61 79 65 65 20 6f 66 20 74 68 65 20 74 72 61 )..."Return.the.payee.of.the.tra
4dde0 6e 73 61 63 74 69 6f 6e 20 63 6f 6e 74 61 69 6e 69 6e 67 20 70 6f 69 6e 74 20 6f 72 20 6e 69 6c nsaction.containing.point.or.nil
4de00 2e 22 0a 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 78 61 63 74 2d 63 6f 6e 74 65 78 74 20 28 6c ."...(when-let.((xact-context.(l
4de20 65 64 67 65 72 2d 78 61 63 74 2d 63 6f 6e 74 65 78 74 29 29 29 0a 20 20 20 20 28 6c 65 64 67 65 edger-xact-context))).....(ledge
4de40 72 2d 63 6f 6e 74 65 78 74 2d 66 69 65 6c 64 2d 76 61 6c 75 65 20 78 61 63 74 2d 63 6f 6e 74 65 r-context-field-value.xact-conte
4de60 78 74 20 27 70 61 79 65 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 78 61 63 74 xt.'payee)))..(defun.ledger-xact
4de80 2d 64 61 74 65 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 64 61 74 65 20 6f 66 20 74 -date.()..."Return.the.date.of.t
4dea0 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 63 6f 6e 74 61 69 6e 69 6e 67 20 70 6f 69 6e 74 20 he.transaction.containing.point.
4dec0 6f 72 20 6e 69 6c 2e 22 0a 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 78 61 63 74 2d 63 6f 6e 74 or.nil."...(when-let.((xact-cont
4dee0 65 78 74 20 28 6c 65 64 67 65 72 2d 78 61 63 74 2d 63 6f 6e 74 65 78 74 29 29 29 0a 20 20 20 20 ext.(ledger-xact-context))).....
4df00 28 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 2d 66 69 65 6c 64 2d 76 61 6c 75 65 20 78 61 63 74 (ledger-context-field-value.xact
4df20 2d 63 6f 6e 74 65 78 74 20 27 64 61 74 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 -context.'date)))..(defun.ledger
4df40 2d 78 61 63 74 2d 66 69 6e 64 2d 73 6c 6f 74 20 28 6d 6f 6d 65 6e 74 29 0a 20 20 22 46 69 6e 64 -xact-find-slot.(moment)..."Find
4df60 20 74 68 65 20 72 69 67 68 74 20 70 6c 61 63 65 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 20 66 .the.right.place.in.the.buffer.f
4df80 6f 72 20 61 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 61 74 20 4d 4f 4d 45 4e 54 2e 0a 4d 4f 4d 45 or.a.transaction.at.MOMENT..MOME
4dfa0 4e 54 20 69 73 20 61 6e 20 65 6e 63 6f 64 65 64 20 64 61 74 65 22 0a 20 20 28 6c 65 74 20 28 6c NT.is.an.encoded.date"...(let.(l
4dfc0 61 73 74 2d 78 61 63 74 2d 73 74 61 72 74 29 0a 20 20 20 20 28 63 61 74 63 68 20 27 66 6f 75 6e ast-xact-start).....(catch.'foun
4dfe0 64 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 78 61 63 74 2d 69 74 65 72 61 74 65 2d 74 72 61 d.......(ledger-xact-iterate-tra
4e000 6e 73 61 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 73 74 61 72 74 20 nsactions........(lambda.(start.
4e020 64 61 74 65 20 5f 6d 61 72 6b 20 5f 64 65 73 63 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 74 71 date._mark._desc)..........(setq
4e040 20 6c 61 73 74 2d 78 61 63 74 2d 73 74 61 72 74 20 73 74 61 72 74 29 0a 20 20 20 20 20 20 20 20 .last-xact-start.start).........
4e060 20 28 77 68 65 6e 20 28 74 69 6d 65 2d 6c 65 73 73 2d 70 20 6d 6f 6d 65 6e 74 20 64 61 74 65 29 .(when.(time-less-p.moment.date)
4e080 0a 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 66 6f 75 6e 64 20 74 29 29 29 29 29 ............(throw.'found.t)))))
4e0a0 0a 20 20 20 20 3b 3b 20 49 66 20 77 65 20 61 72 65 20 69 6e 73 65 72 74 69 6e 67 20 61 74 20 74 .....;;.If.we.are.inserting.at.t
4e0c0 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 62 75 66 66 65 72 2c 20 69 6e 73 65 72 74 20 61 6e 20 he.end.of.the.buffer,.insert.an.
4e0e0 65 78 74 72 61 20 6e 65 77 6c 69 6e 65 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 65 6f extra.newline.....(when.(and.(eo
4e100 62 70 29 20 6c 61 73 74 2d 78 61 63 74 2d 73 74 61 72 74 29 0a 20 20 20 20 20 20 28 6c 65 74 20 bp).last-xact-start).......(let.
4e120 28 28 65 6e 64 20 28 63 61 64 72 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 66 69 6e ((end.(cadr.(ledger-navigate-fin
4e140 64 2d 78 61 63 74 2d 65 78 74 65 6e 74 73 20 6c 61 73 74 2d 78 61 63 74 2d 73 74 61 72 74 29 29 d-xact-extents.last-xact-start))
4e160 29 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 65 6e 64 29 0a 20 20 20 20 20 )).........(goto-char.end)......
4e180 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 0a 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 ...(insert."\n").........(forwar
4e1a0 64 2d 6c 69 6e 65 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 78 61 63 74 2d d-line)))))..(defun.ledger-xact-
4e1c0 69 74 65 72 61 74 65 2d 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 28 63 61 6c 6c 62 61 63 6b 29 0a iterate-transactions.(callback).
4e1e0 20 20 22 49 74 65 72 61 74 65 20 74 68 72 6f 75 67 68 20 65 61 63 68 20 74 72 61 6e 73 61 63 74 .."Iterate.through.each.transact
4e200 69 6f 6e 20 63 61 6c 6c 20 43 41 4c 4c 42 41 43 4b 20 66 6f 72 20 65 61 63 68 2e 22 0a 20 20 28 ion.call.CALLBACK.for.each."...(
4e220 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 28 6c 65 74 2a 20 28 goto-char.(point-min))...(let*.(
4e240 28 6e 6f 77 20 28 63 75 72 72 65 6e 74 2d 74 69 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 (now.(current-time))..........(c
4e260 75 72 72 65 6e 74 2d 79 65 61 72 20 28 6e 74 68 20 35 20 28 64 65 63 6f 64 65 2d 74 69 6d 65 20 urrent-year.(nth.5.(decode-time.
4e280 6e 6f 77 29 29 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 6e 6f 74 20 28 65 6f 62 70 29 29 0a now)))).....(while.(not.(eobp)).
4e2a0 20 20 20 20 20 20 28 77 68 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 6c 65 64 67 65 72 2d 69 ......(when.(looking-at.ledger-i
4e2c0 74 65 72 61 74 65 2d 72 65 67 65 78 70 29 0a 20 20 20 20 20 20 20 20 28 69 66 2d 6c 65 74 20 28 terate-regexp).........(if-let.(
4e2e0 28 79 65 61 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 29 29 29 0a 20 20 20 20 20 20 20 (year.(match-string.1)))........
4e300 20 20 20 20 20 28 73 65 74 71 20 63 75 72 72 65 6e 74 2d 79 65 61 72 20 28 73 74 72 69 6e 67 2d .....(setq.current-year.(string-
4e320 74 6f 2d 6e 75 6d 62 65 72 20 79 65 61 72 29 29 20 3b 61 20 59 20 64 69 72 65 63 74 69 76 65 20 to-number.year)).;a.Y.directive.
4e340 77 61 73 20 66 6f 75 6e 64 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 73 74 61 72 74 was.found...........(let.((start
4e360 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 .(match-beginning.0))...........
4e380 20 20 20 20 20 20 28 79 65 61 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 28 2b 20 6c 65 64 ......(year.(match-string.(+.led
4e3a0 67 65 72 2d 72 65 67 65 78 2d 69 74 65 72 61 74 65 2d 67 72 6f 75 70 2d 61 63 74 75 61 6c 2d 64 ger-regex-iterate-group-actual-d
4e3c0 61 74 65 20 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 6f 6e 74 68 20 ate.1))).................(month.
4e3e0 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 (string-to-number.(match-string.
4e400 28 2b 20 6c 65 64 67 65 72 2d 72 65 67 65 78 2d 69 74 65 72 61 74 65 2d 67 72 6f 75 70 2d 61 63 (+.ledger-regex-iterate-group-ac
4e420 74 75 61 6c 2d 64 61 74 65 20 32 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tual-date.2)))).................
4e440 28 64 61 79 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 6d 61 74 63 68 2d 73 74 (day.(string-to-number.(match-st
4e460 72 69 6e 67 20 28 2b 20 6c 65 64 67 65 72 2d 72 65 67 65 78 2d 69 74 65 72 61 74 65 2d 67 72 6f ring.(+.ledger-regex-iterate-gro
4e480 75 70 2d 61 63 74 75 61 6c 2d 64 61 74 65 20 33 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 up-actual-date.3))))............
4e4a0 20 20 20 20 20 28 73 74 61 74 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 6c 65 64 67 65 72 .....(state.(match-string.ledger
4e4c0 2d 72 65 67 65 78 2d 69 74 65 72 61 74 65 2d 67 72 6f 75 70 2d 73 74 61 74 65 29 29 0a 20 20 20 -regex-iterate-group-state))....
4e4e0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 61 79 65 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e .............(payee.(match-strin
4e500 67 20 6c 65 64 67 65 72 2d 72 65 67 65 78 2d 69 74 65 72 61 74 65 2d 67 72 6f 75 70 2d 70 61 79 g.ledger-regex-iterate-group-pay
4e520 65 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 79 65 61 72 20 ee))).............(if.(and.year.
4e540 28 3e 20 28 6c 65 6e 67 74 68 20 79 65 61 72 29 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 (>.(length.year).0))............
4e560 20 20 20 20 20 28 73 65 74 71 20 79 65 61 72 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 .....(setq.year.(string-to-numbe
4e580 72 20 79 65 61 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 63 r.year))).............(funcall.c
4e5a0 61 6c 6c 62 61 63 6b 20 73 74 61 72 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 allback.start...................
4e5c0 20 20 20 28 65 6e 63 6f 64 65 2d 74 69 6d 65 20 30 20 30 20 30 20 64 61 79 20 6d 6f 6e 74 68 0a ...(encode-time.0.0.0.day.month.
4e5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4e600 20 20 28 6f 72 20 79 65 61 72 20 63 75 72 72 65 6e 74 2d 79 65 61 72 29 29 0a 20 20 20 20 20 20 ..(or.year.current-year)).......
4e620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 74 65 20 70 61 79 65 65 29 29 29 29 0a 20 ...............state.payee))))..
4e640 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 29 29 29 29 0a 0a 28 64 65 66 63 75 73 74 .....(forward-line))))..(defcust
4e660 6f 6d 20 6c 65 64 67 65 72 2d 63 6f 70 79 2d 74 72 61 6e 73 61 63 74 69 6f 6e 2d 69 6e 73 65 72 om.ledger-copy-transaction-inser
4e680 74 2d 62 6c 61 6e 6b 2d 6c 69 6e 65 2d 61 66 74 65 72 20 6e 69 6c 0a 20 20 22 57 68 65 6e 20 6e t-blank-line-after.nil..."When.n
4e6a0 6f 6e 2d 6e 69 6c 2c 20 69 6e 73 65 72 74 20 61 20 62 6c 61 6e 6b 20 6c 69 6e 65 20 61 66 74 65 on-nil,.insert.a.blank.line.afte
4e6c0 72 20 60 6c 65 64 67 65 72 2d 63 6f 70 79 2d 74 72 61 6e 73 61 63 74 69 6f 6e 2d 61 74 2d 70 6f r.`ledger-copy-transaction-at-po
4e6e0 69 6e 74 27 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 int'."...:type.'boolean...:group
4e700 20 27 6c 65 64 67 65 72 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 63 6f 70 79 2d 74 72 .'ledger)..(defun.ledger-copy-tr
4e720 61 6e 73 61 63 74 69 6f 6e 2d 61 74 2d 70 6f 69 6e 74 20 28 64 61 74 65 29 0a 20 20 22 41 73 6b ansaction-at-point.(date)..."Ask
4e740 20 66 6f 72 20 61 20 6e 65 77 20 44 41 54 45 20 61 6e 64 20 63 6f 70 79 20 74 68 65 20 74 72 61 .for.a.new.DATE.and.copy.the.tra
4e760 6e 73 61 63 74 69 6f 6e 20 75 6e 64 65 72 20 70 6f 69 6e 74 20 74 6f 20 74 68 61 74 20 64 61 74 nsaction.under.point.to.that.dat
4e780 65 2e 0a 4c 65 61 76 65 20 70 6f 69 6e 74 20 6f 6e 20 74 68 65 20 66 69 72 73 74 20 61 6d 6f 75 e..Leave.point.on.the.first.amou
4e7a0 6e 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 73 74 20 28 6c 65 64 67 65 nt."...(interactive.(list.(ledge
4e7c0 72 2d 72 65 61 64 2d 64 61 74 65 20 22 43 6f 70 79 20 74 6f 20 64 61 74 65 3a 20 22 29 29 29 0a r-read-date."Copy.to.date:."))).
4e7e0 20 20 28 6c 65 74 2a 20 28 28 65 78 74 65 6e 74 73 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 ..(let*.((extents.(ledger-naviga
4e800 74 65 2d 66 69 6e 64 2d 78 61 63 74 2d 65 78 74 65 6e 74 73 20 28 70 6f 69 6e 74 29 29 29 0a 20 te-find-xact-extents.(point)))..
4e820 20 20 20 20 20 20 20 20 28 74 72 61 6e 73 61 63 74 69 6f 6e 20 28 62 75 66 66 65 72 2d 73 75 62 ........(transaction.(buffer-sub
4e840 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 28 63 61 72 20 65 78 74 65 6e 74 string-no-properties.(car.extent
4e860 73 29 20 28 63 61 64 72 20 65 78 74 65 6e 74 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 65 6e s).(cadr.extents)))..........(en
4e880 63 6f 64 65 64 2d 64 61 74 65 20 28 6c 65 64 67 65 72 2d 70 61 72 73 65 2d 69 73 6f 2d 64 61 74 coded-date.(ledger-parse-iso-dat
4e8a0 65 20 64 61 74 65 29 29 29 0a 20 20 20 20 28 70 75 73 68 2d 6d 61 72 6b 29 0a 20 20 20 20 28 6c e.date))).....(push-mark).....(l
4e8c0 65 64 67 65 72 2d 78 61 63 74 2d 66 69 6e 64 2d 73 6c 6f 74 20 65 6e 63 6f 64 65 64 2d 64 61 74 edger-xact-find-slot.encoded-dat
4e8e0 65 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 74 72 61 6e 73 61 63 74 69 6f 6e 0a 20 20 20 20 20 e).....(insert.transaction......
4e900 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 6c 65 64 67 65 72 2d 63 6f 70 79 2d 74 72 61 6e .......(if.(and.ledger-copy-tran
4e920 73 61 63 74 69 6f 6e 2d 69 6e 73 65 72 74 2d 62 6c 61 6e 6b 2d 6c 69 6e 65 2d 61 66 74 65 72 20 saction-insert-blank-line-after.
4e940 28 6e 6f 74 20 28 65 6f 62 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c (not.(eobp)))................."\
4e960 6e 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 22 29 29 0a 20 20 20 20 28 62 n\n"..............."\n")).....(b
4e980 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 20 2d 31 29 0a 20 20 20 20 28 6c 65 64 67 65 72 eginning-of-line.-1).....(ledger
4e9a0 2d 6e 61 76 69 67 61 74 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 78 61 63 74 29 0a 20 20 20 -navigate-beginning-of-xact)....
4e9c0 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 6c 65 64 67 65 72 2d 69 73 6f 2d 64 .(re-search-forward.ledger-iso-d
4e9e0 61 74 65 2d 72 65 67 65 78 70 29 0a 20 20 20 20 28 72 65 70 6c 61 63 65 2d 6d 61 74 63 68 20 64 ate-regexp).....(replace-match.d
4ea00 61 74 65 29 0a 20 20 20 20 28 6c 65 64 67 65 72 2d 6e 65 78 74 2d 61 6d 6f 75 6e 74 29 0a 20 20 ate).....(ledger-next-amount)...
4ea20 20 20 28 69 66 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5b 2d 30 2d 39 5d ..(if.(re-search-forward."[-0-9]
4ea40 22 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 2d 62 65 67 ").........(goto-char.(match-beg
4ea60 69 6e 6e 69 6e 67 20 30 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 64 65 6c inning.0)))))..(defun.ledger-del
4ea80 65 74 65 2d 63 75 72 72 65 6e 74 2d 74 72 61 6e 73 61 63 74 69 6f 6e 20 28 70 6f 73 29 0a 20 20 ete-current-transaction.(pos)...
4eaa0 22 44 65 6c 65 74 65 20 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 73 75 72 72 6f 75 6e 64 "Delete.the.transaction.surround
4eac0 69 6e 67 20 50 4f 53 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 64 22 29 0a 20 20 ing.POS."...(interactive."d")...
4eae0 28 6c 65 74 20 28 28 62 6f 75 6e 64 73 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 66 (let.((bounds.(ledger-navigate-f
4eb00 69 6e 64 2d 78 61 63 74 2d 65 78 74 65 6e 74 73 20 70 6f 73 29 29 29 0a 20 20 20 20 28 64 65 6c ind-xact-extents.pos))).....(del
4eb20 65 74 65 2d 72 65 67 69 6f 6e 20 28 63 61 72 20 62 6f 75 6e 64 73 29 20 28 63 61 64 72 20 62 6f ete-region.(car.bounds).(cadr.bo
4eb40 75 6e 64 73 29 29 29 0a 20 20 28 64 65 6c 65 74 65 2d 62 6c 61 6e 6b 2d 6c 69 6e 65 73 29 29 0a unds)))...(delete-blank-lines)).
4eb60 0a 28 64 65 66 76 61 72 20 6c 65 64 67 65 72 2d 61 64 64 2d 74 72 61 6e 73 61 63 74 69 6f 6e 2d .(defvar.ledger-add-transaction-
4eb80 6c 61 73 74 2d 64 61 74 65 20 6e 69 6c 0a 20 20 22 4c 61 73 74 20 64 61 74 65 20 65 6e 74 65 72 last-date.nil..."Last.date.enter
4eba0 65 64 20 75 73 69 6e 67 20 60 6c 65 64 67 65 72 2d 72 65 61 64 2d 74 72 61 6e 73 61 63 74 69 6f ed.using.`ledger-read-transactio
4ebc0 6e 27 2e 22 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 61 64 2d 74 72 61 6e 73 61 n'.")..(defun.ledger-read-transa
4ebe0 63 74 69 6f 6e 20 28 29 0a 20 20 22 52 65 61 64 20 74 68 65 20 74 65 78 74 20 6f 66 20 61 20 74 ction.()..."Read.the.text.of.a.t
4ec00 72 61 6e 73 61 63 74 69 6f 6e 2c 20 77 68 69 63 68 20 69 73 20 61 74 20 6c 65 61 73 74 20 74 68 ransaction,.which.is.at.least.th
4ec20 65 20 63 75 72 72 65 6e 74 20 64 61 74 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 64 61 74 65 20 28 e.current.date."...(let.((date.(
4ec40 6c 65 64 67 65 72 2d 72 65 61 64 2d 64 61 74 65 20 22 44 61 74 65 3a 20 22 29 29 29 0a 20 20 20 ledger-read-date."Date:.")))....
4ec60 20 28 63 6f 6e 63 61 74 20 64 61 74 65 20 22 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 .(concat.date.".".............(w
4ec80 68 65 6e 20 6c 65 64 67 65 72 2d 61 64 64 2d 74 72 61 6e 73 61 63 74 69 6f 6e 2d 70 72 6f 6d 70 hen.ledger-add-transaction-promp
4eca0 74 2d 66 6f 72 2d 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 61 64 2d 73 t-for-text...............(read-s
4ecc0 74 72 69 6e 67 20 28 63 6f 6e 63 61 74 20 22 78 61 63 74 20 22 20 64 61 74 65 20 22 3a 20 22 29 tring.(concat."xact.".date.":.")
4ece0 20 6e 69 6c 20 27 6c 65 64 67 65 72 2d 6d 69 6e 69 62 75 66 66 65 72 2d 68 69 73 74 6f 72 79 29 .nil.'ledger-minibuffer-history)
4ed00 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 70 61 72 73 65 2d 69 73 6f 2d 64 61 ))))..(defun.ledger-parse-iso-da
4ed20 74 65 20 28 64 61 74 65 29 0a 20 20 22 54 72 79 20 74 6f 20 70 61 72 73 65 20 44 41 54 45 20 75 te.(date)..."Try.to.parse.DATE.u
4ed40 73 69 6e 67 20 60 6c 65 64 67 65 72 2d 69 73 6f 2d 64 61 74 65 2d 72 65 67 65 78 70 27 20 61 6e sing.`ledger-iso-date-regexp'.an
4ed60 64 20 72 65 74 75 72 6e 20 61 20 74 69 6d 65 20 76 61 6c 75 65 20 6f 72 20 6e 69 6c 2e 22 0a 20 d.return.a.time.value.or.nil."..
4ed80 20 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 28 77 68 65 6e 20 28 73 74 72 .(save-match-data.....(when.(str
4eda0 69 6e 67 2d 6d 61 74 63 68 20 6c 65 64 67 65 72 2d 69 73 6f 2d 64 61 74 65 2d 72 65 67 65 78 70 ing-match.ledger-iso-date-regexp
4edc0 20 64 61 74 65 29 0a 20 20 20 20 20 20 28 65 6e 63 6f 64 65 2d 74 69 6d 65 20 30 20 30 20 30 20 .date).......(encode-time.0.0.0.
4ede0 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 (string-to-number.(match-string.
4ee00 34 20 64 61 74 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 4.date))....................(str
4ee20 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 33 20 64 61 ing-to-number.(match-string.3.da
4ee40 74 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d te))....................(string-
4ee60 74 6f 2d 6e 75 6d 62 65 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32 20 64 61 74 65 29 29 to-number.(match-string.2.date))
4ee80 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 61 64 64 2d 74 72 61 6e 73 61 63 74 ))))..(defun.ledger-add-transact
4eea0 69 6f 6e 20 28 74 72 61 6e 73 61 63 74 69 6f 6e 2d 74 65 78 74 20 26 6f 70 74 69 6f 6e 61 6c 20 ion.(transaction-text.&optional.
4eec0 69 6e 73 65 72 74 2d 61 74 2d 70 6f 69 6e 74 29 0a 20 20 22 55 73 65 20 6c 65 64 67 65 72 20 78 insert-at-point)..."Use.ledger.x
4eee0 61 63 74 20 54 52 41 4e 53 41 43 54 49 4f 4e 2d 54 45 58 54 20 74 6f 20 61 64 64 20 61 20 74 72 act.TRANSACTION-TEXT.to.add.a.tr
4ef00 61 6e 73 61 63 74 69 6f 6e 20 74 6f 20 74 68 65 20 62 75 66 66 65 72 2e 0a 49 66 20 49 4e 53 45 ansaction.to.the.buffer..If.INSE
4ef20 52 54 2d 41 54 2d 50 4f 49 4e 54 20 69 73 20 6e 6f 6e 2d 6e 69 6c 20 69 6e 73 65 72 74 20 74 68 RT-AT-POINT.is.non-nil.insert.th
4ef40 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 74 68 65 72 65 2c 0a 6f 74 68 65 72 77 69 73 65 20 63 e.transaction.there,.otherwise.c
4ef60 61 6c 6c 20 60 6c 65 64 67 65 72 2d 78 61 63 74 2d 66 69 6e 64 2d 73 6c 6f 74 27 20 74 6f 20 69 all.`ledger-xact-find-slot'.to.i
4ef80 6e 73 65 72 74 20 69 74 20 61 74 20 74 68 65 0a 63 6f 72 72 65 63 74 20 63 68 72 6f 6e 6f 6c 6f nsert.it.at.the.correct.chronolo
4efa0 67 69 63 61 6c 20 70 6c 61 63 65 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 2e 0a 0a 49 6e 74 65 gical.place.in.the.buffer...Inte
4efc0 72 61 63 74 69 76 65 6c 79 2c 20 74 68 65 20 64 61 74 65 20 69 73 20 72 65 71 75 65 73 74 65 64 ractively,.the.date.is.requested
4efe0 20 76 69 61 20 60 6c 65 64 67 65 72 2d 72 65 61 64 2d 64 61 74 65 27 20 61 6e 64 0a 74 68 65 20 .via.`ledger-read-date'.and.the.
4f000 5c 5c 5b 75 6e 69 76 65 72 73 61 6c 2d 61 72 67 75 6d 65 6e 74 5d 20 65 6e 61 62 6c 65 73 20 49 \\[universal-argument].enables.I
4f020 4e 53 45 52 54 2d 41 54 2d 50 4f 49 4e 54 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 NSERT-AT-POINT."...(interactive.
4f040 28 6c 69 73 74 20 28 6c 65 64 67 65 72 2d 72 65 61 64 2d 74 72 61 6e 73 61 63 74 69 6f 6e 29 20 (list.(ledger-read-transaction).
4f060 63 75 72 72 65 6e 74 2d 70 72 65 66 69 78 2d 61 72 67 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 61 current-prefix-arg))...(let*.((a
4f080 72 67 73 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 rgs.(with-temp-buffer...........
4f0a0 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 74 72 61 6e 73 61 63 74 69 6f 6e 2d 74 65 78 74 29 .......(insert.transaction-text)
4f0c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 73 68 65 6c 6c 2d 70 61 72 73 65 2d ..................(eshell-parse-
4f0e0 61 72 67 75 6d 65 6e 74 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 arguments.(point-min).(point-max
4f100 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 62 75 66 20 28 63 75 72 72 65 ))))..........(ledger-buf.(curre
4f120 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 70 61 72 61 74 6f 72 20 nt-buffer))..........(separator.
4f140 22 5c 6e 22 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 69 6e 73 65 72 74 2d 61 74 2d 70 6f 69 "\n")).....(unless.insert-at-poi
4f160 6e 74 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 64 61 74 65 20 28 63 61 72 20 61 72 67 73 29 nt.......(let*.((date.(car.args)
4f180 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 61 72 73 65 64 2d 64 61 74 65 20 28 6c 65 64 )..............(parsed-date.(led
4f1a0 67 65 72 2d 70 61 72 73 65 2d 69 73 6f 2d 64 61 74 65 20 64 61 74 65 29 29 29 0a 20 20 20 20 20 ger-parse-iso-date.date)))......
4f1c0 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 61 64 64 2d 74 72 61 6e 73 61 63 74 69 6f 6e 2d ...(setq.ledger-add-transaction-
4f1e0 6c 61 73 74 2d 64 61 74 65 20 70 61 72 73 65 64 2d 64 61 74 65 29 0a 20 20 20 20 20 20 20 20 28 last-date.parsed-date).........(
4f200 70 75 73 68 2d 6d 61 72 6b 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f 3a 20 77 68 61 74 push-mark).........;;.TODO:.what
4f220 20 61 62 6f 75 74 20 77 68 65 6e 20 69 74 20 63 61 6e 27 74 20 62 65 20 70 61 72 73 65 64 3f 0a .about.when.it.can't.be.parsed?.
4f240 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 78 61 63 74 2d 66 69 6e 64 2d 73 6c 6f 74 20 28 ........(ledger-xact-find-slot.(
4f260 6f 72 20 70 61 72 73 65 64 2d 64 61 74 65 20 64 61 74 65 29 29 0a 20 20 20 20 20 20 20 20 28 77 or.parsed-date.date)).........(w
4f280 68 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 6e 2a 5c 5c 27 22 29 0a 20 20 20 20 20 20 hen.(looking-at."\n*\\'").......
4f2a0 20 20 20 20 28 73 65 74 71 20 73 65 70 61 72 61 74 6f 72 20 22 22 29 29 29 29 0a 20 20 20 20 28 ....(setq.separator."")))).....(
4f2c0 69 66 20 28 63 64 72 20 61 72 67 73 29 0a 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 if.(cdr.args).........(save-excu
4f2e0 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 0a 20 20 20 20 20 20 20 20 rsion...........(insert.........
4f300 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 ...(with-temp-buffer............
4f320 20 20 28 61 70 70 6c 79 20 23 27 6c 65 64 67 65 72 2d 65 78 65 63 2d 6c 65 64 67 65 72 20 6c 65 ..(apply.#'ledger-exec-ledger.le
4f340 64 67 65 72 2d 62 75 66 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 22 78 61 63 74 22 dger-buf.(current-buffer)."xact"
4f360 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 27 65 76 .....................(mapcar.'ev
4f380 61 6c 20 61 72 67 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 al.args))..............(goto-cha
4f3a0 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 r.(point-min))..............(led
4f3c0 67 65 72 2d 70 6f 73 74 2d 61 6c 69 67 6e 2d 70 6f 73 74 69 6e 67 73 20 28 70 6f 69 6e 74 2d 6d ger-post-align-postings.(point-m
4f3e0 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 in).(point-max))..............(b
4f400 75 66 66 65 72 2d 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 73 65 70 61 72 61 uffer-string))............separa
4f420 74 6f 72 29 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 63 61 72 20 61 72 67 73 29 20 22 tor)).......(insert.(car.args)."
4f440 20 22 29 0a 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 20 28 69 6e 73 65 72 .").......(save-excursion.(inser
4f460 74 20 22 5c 6e 22 20 73 65 70 61 72 61 74 6f 72 29 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 t."\n".separator)))))..(provide.
4f480 27 6c 65 64 67 65 72 2d 78 61 63 74 29 0a 0a 3b 3b 3b 20 6c 65 64 67 65 72 2d 78 61 63 74 2e 65 'ledger-xact)..;;;.ledger-xact.e
4f4a0 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 l.ends.here.....................
4f4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f660 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f6a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f6c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f6e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f800 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fa00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fa20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fa40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fa60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fa80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4faa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fb00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fb20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fb40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fb60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fb80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fbc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fbe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fc00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fc20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fc40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fc60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fc80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fcc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fd00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fd20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fd40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fd60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fd80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fda0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fdc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fde0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fe00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fe20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fe40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fe60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fe80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4fee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ff00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ff20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ff40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ff60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ff80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ffa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ffc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4ffe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................