summaryrefslogtreecommitdiff
path: root/localrepo/ledger-mode-20240408.416.tar
blob: 189e0097f2554c38e2750c607a2c96ba6e5bdfc6 (plain)
ofshex dumpascii
0000 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 30 38 2e 34 31 36 2f 00 00 00 00 00 00 00 ledger-mode-20240408.416/.......
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 31 33 00 20 35 00 00 00 0000000.00000000000.013113..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 34 30 38 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240408.416/ledger-
0220 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 00 texi.el.........................
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 31 35 33 32 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 36 34 37 00 20 30 00 00 00 0015320.00000000000.015647..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 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
0420 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
0440 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
0460 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
0480 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
04a0 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
04c0 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.
04e0 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
0500 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.;;
0520 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
0540 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
0560 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
0580 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
05a0 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..;;.;;.
05c0 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.
05e0 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
0600 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
0620 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
0640 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
0660 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
0680 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
06a0 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
06c0 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
06e0 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
0700 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
0720 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.
0740 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
0760 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
0780 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
07a0 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
07c0 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.
07e0 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
0800 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
0820 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
0840 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."
0860 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
0880 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.
08a0 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...
08c0 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
08e0 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.
0900 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
0920 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
0940 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..
0960 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
0980 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
09a0 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))...
09c0 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
09e0 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)
0a00 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."^<<<
0a20 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
0a40 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."^>>>
0a60 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
0a80 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)..
0aa0 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)))
0ac0 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."^>>
0ae0 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
0b00 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
0b20 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)).........(
0b40 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.....
0b60 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-
0b80 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
0ba0 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.
0bc0 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-
0be0 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
0c00 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
0c20 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-
0c40 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
0c60 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)..
0c80 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)))..
0ca0 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
0cc0 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.....................
0ce0 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.
0d00 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)).......(
0d20 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-
0d40 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
0d60 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
0d80 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.
0da0 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)))
0dc0 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.
0de0 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)......
0e00 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
0e20 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
0e40 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.
0e60 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).
0e80 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).......
0ea0 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.">
0ec0 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".
0ee0 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).......(
0f00 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))
0f20 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
0f40 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-
0f60 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)..
0f80 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
0fa0 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-
0fc0 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.............
0fe0 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
1000 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
1020 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
1040 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)....
1060 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...
1080 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.
10a0 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
10c0 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.
10e0 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
1100 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
1120 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
1140 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).(
1160 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
1180 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
11a0 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.(
11c0 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
11e0 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
1200 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))
1220 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
1240 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
1260 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
1280 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
12a0 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.(
12c0 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
12e0 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
1300 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.
1320 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
1340 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)....
1360 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
1380 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..
13a0 20 20 20 20 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
13c0 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-
13e0 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.(
1400 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
1420 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....................
1440 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
1460 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
1480 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
14a0 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
14c0 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)
14e0 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
1500 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))...........
1520 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............
1540 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)
1560 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
1580 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
15a0 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)).....
15c0 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))...
15e0 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
1600 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
1620 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.(
1640 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
1660 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
1680 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
16a0 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)
16c0 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
16e0 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
1700 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.()...(
1720 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..
1740 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)).....(
1760 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.\\
1780 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-+\\):.\
17a0 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
17c0 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))..........
17e0 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
1800 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
1820 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
1840 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))..
1860 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))
1880 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).........
18a0 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
18c0 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
18e0 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
1900 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
1920 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\\)")............
1940 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))
1960 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
1980 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))................
19a0 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]
19c0 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.(
19e0 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))
1a00 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
1a20 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)).....
1a40 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.........
1a60 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))...
1a80 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
1aa0 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)).......
1ac0 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."@\\(
1ae0 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\\)")......
1b00 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).........
1b20 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)))......
1b40 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."@
1b60 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\\)"
1b80 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
1ba0 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..
1bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1be0 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).........
1c00 20 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
1c20 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........
1c40 20 20 20 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.(
1c60 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)))))))).......
1c80 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
1ca0 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").............
1cc0 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
1ce0 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"..............................
1d00 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
1d20 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..
1d40 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
1d60 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
1d80 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
1da0 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...........
1dc0 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
1de0 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
1e00 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
1e20 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
1e40 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.
1e60 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.............................
1e80 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
1ea0 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
1ec0 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.................
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 34 30 38 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240408.416/ledger-
2020 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 00 check.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 32 33 32 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 37 35 32 00 20 30 00 00 00 0012322.00000000000.015752..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 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
2220 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
2240 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
2260 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
2280 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
22a0 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
22c0 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.
22e0 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
2300 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.;;
2320 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
2340 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
2360 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
2380 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
23a0 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..;;.;;.
23c0 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.
23e0 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
2400 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
2420 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
2440 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
2460 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
2480 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
24a0 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
24c0 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
24e0 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
2500 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
2520 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.
2540 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
2560 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
2580 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
25a0 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
25c0 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
25e0 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.--
2600 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
2620 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
2640 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
2660 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
2680 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
26a0 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...
26c0 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
26e0 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
2700 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
2720 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
2740 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
2760 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
2780 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
27a0 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
27c0 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
27e0 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.
2800 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
2820 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
2840 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
2860 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".....;;
2880 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
28a0 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
28c0 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]...
28e0 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
2900 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
2920 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.
2940 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
2960 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.
2980 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.()..
29a0 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
29c0 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
29e0 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
2a00 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...
2a20 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
2a40 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
2a60 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
2a80 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.
2aa0 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
2ac0 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
2ae0 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,.
2b00 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
2b20 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
2b40 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
2b60 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.-
2b80 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)
2ba0 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)......;
2bc0 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
2be0 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.(
2c00 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."^.*:.\"\\(.*\
2c20 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).
2c40 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.
2c60 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
2c80 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)))).....
2ca0 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
2cc0 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
2ce0 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).....
2d00 20 20 20 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
2d20 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
2d40 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...............
2d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2d80 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
2da0 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..............................
2dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2de0 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)..........
2e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2e20 20 20 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
2e40 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 )...............................
2e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2e80 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
2ea0 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).............................
2ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2ee0 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))))))......
2f00 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-
2f20 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
2f40 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).........................
2f60 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
2f80 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)
2fa0 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.
2fc0 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)))
2fe0 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)...
3000 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
3020 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
3040 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
3060 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
3080 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
30a0 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
30c0 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
30e0 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"))..
3100 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
3120 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
3140 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.()
3160 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
3180 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
31a0 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
31c0 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
31e0 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
3200 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
3220 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
3240 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)..."
3260 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
3280 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
32a0 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
32c0 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
32e0 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-
3300 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
3320 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
3340 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
3360 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
3380 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
33a0 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.
33c0 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")..
33e0 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.........
3400 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)........
3420 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
3440 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)
3460 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
3480 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)))......
34a0 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
34c0 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
34e0 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)))..
3500 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
3520 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
3540 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
3560 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
3580 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).
35a0 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
35c0 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)...
35e0 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
3600 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
3620 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
3640 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
3660 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
3680 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
36a0 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
36c0 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...............
36e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3800 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 30 38 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240408.416/ledger-
3820 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 00 schedule.el.....................
3840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3860 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
3880 30 30 33 34 37 36 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 35 30 33 00 20 30 00 00 00 0034760.00000000000.016503..0...
38a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3900 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...................
3920 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...................
3940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a00 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
3a20 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"
3a40 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-
3a60 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
3a80 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.
3aa0 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.
3ac0 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.
3ae0 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
3b00 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
3b20 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
3b40 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.
3b60 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;
3b80 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
3ba0 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..;;.
3bc0 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
3be0 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
3c00 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.
3c20 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
3c40 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
3c60 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
3c80 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.
3ca0 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
3cc0 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
3ce0 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
3d00 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
3d20 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
3d40 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
3d60 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
3d80 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...;;
3da0 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.
3dc0 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
3de0 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
3e00 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
3e20 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
3e40 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.
3e60 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
3e80 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.
3ea0 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
3ec0 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
3ee0 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.
3f00 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
3f20 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
3f40 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
3f60 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
3f80 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
3fa0 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.
3fc0 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
3fe0 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.
4000 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)
4020 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
4040 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*"..."
4060 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."..
4080 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-
40a0 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
40c0 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.
40e0 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
4100 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
4120 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
4140 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
4160 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
4180 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
41a0 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
41c0 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.
41e0 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
4200 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.
4220 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
4240 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
4260 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
4280 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)..............
42a0 20 20 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".
42c0 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)..............................
42e0 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)..............
4300 20 20 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".
4320 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)..............................
4340 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)..............
4360 20 20 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".
4380 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)..............................
43a0 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
43c0 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
43e0 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
4400 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
4420 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
4440 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
4460 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))
4480 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
44a0 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
44c0 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
44e0 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
4500 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"))..
4520 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
4540 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
4560 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.
4580 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
45a0 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
45c0 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
45e0 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
4600 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)
4620 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-.
4640 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
4660 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
4680 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)
46a0 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
46c0 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
46e0 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
4700 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."...(
4720 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
4740 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
4760 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
4780 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-
47a0 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)..."
47c0 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.
47e0 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..
4800 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
4820 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
4840 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
4860 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
4880 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
48a0 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.(<=.-
48c0 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))
48e0 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
4900 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
4920 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
4940 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))...
4960 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
4980 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
49a0 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)))..............
49c0 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.
49e0 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.(
4a00 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
4a20 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 )........................(<=.,(*
4a40 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)..................
4a60 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)......
4a80 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.
4aa0 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)
4ac0 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
4ae0 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)).................
4b00 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))).......
4b20 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
4b40 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))..................
4b60 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
4b80 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............
4ba0 20 20 20 20 20 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
4bc0 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)...................
4be0 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
4c00 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
4c20 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
4c40 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)........................(<=.(
4c60 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))..
4c80 20 20 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
4ca0 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)......................
4cc0 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+.
4ce0 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..
4d00 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
4d20 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))).....(
4d40 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
4d60 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
4d80 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...........
4da0 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
4dc0 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
4de0 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).
4e00 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
4e20 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,
4e40 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
4e60 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
4e80 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
4ea0 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
4ec0 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
4ee0 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
4f00 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
4f20 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
4f40 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
4f60 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
4f80 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
4fa0 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
4fc0 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
4fe0 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.
5000 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
5020 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.
5040 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
5060 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
5080 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-
50a0 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
50c0 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
50e0 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))............
5100 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))
5120 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
5140 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.(>.
5160 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)..........
5180 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
51a0 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
51c0 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
51e0 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.
5200 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
5220 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
5240 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
5260 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..
5280 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
52a0 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.
52c0 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
52e0 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."
5300 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
5320 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
5340 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.
5360 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.
5380 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
53a0 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."^\\[\\(.*\\)\\].".
53c0 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
53e0 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
5400 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
5420 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
5440 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.............
5460 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
5480 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
54a0 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......
54c0 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)
54e0 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)
5500 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
5520 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
5540 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.............
5560 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
5580 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...........
55a0 20 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
55c0 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.............................
55e0 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
5600 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
5620 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)))..
5640 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
5660 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).
5680 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
56a0 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
56c0 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-
56e0 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.....(
5700 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
5720 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
5740 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
5760 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
5780 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
57a0 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
57c0 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
57e0 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
5800 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..
5820 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
5840 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).........
5860 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-
5880 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
58a0 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)))....
58c0 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).....
58e0 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
5900 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
5920 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))))...
5940 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
5960 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
5980 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
59a0 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).................
59c0 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)............
59e0 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.
5a00 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.
5a20 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.
5a40 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
5a60 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)).).........
5a80 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.(
5aa0 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)))...
5ac0 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
5ae0 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.
5b00 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
5b20 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
5b40 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)........
5b60 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
5b80 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)
5ba0 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
5bc0 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
5be0 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
5c00 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.
5c20 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.
5c40 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))).
5c60 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
5c80 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
5ca0 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
5cc0 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
5ce0 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).(
5d00 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))...
5d20 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
5d40 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
5d60 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
5d80 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
5da0 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)
5dc0 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
5de0 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
5e00 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.
5e20 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.
5e40 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-
5e60 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
5e80 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.
5ea0 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=.
5ec0 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
5ee0 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)).....`(
5f00 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)).
5f20 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
5f40 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.","))))....(
5f60 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
5f80 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
5fa0 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)))).
5fc0 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
5fe0 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
6000 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
6020 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,.
6040 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
6060 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
6080 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
60a0 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
60c0 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
60e0 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....(
6100 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).
6120 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
6140 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-
6160 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))
6180 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").
61a0 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
61c0 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
61e0 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
6200 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
6220 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
6240 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
6260 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.....(
6280 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
62a0 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
62c0 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
62e0 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.
6300 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).
6320 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
6340 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
6360 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
6380 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.".
63a0 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."*").
63c0 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
63e0 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.
6400 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
6420 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
6440 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
6460 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
6480 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
64a0 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
64c0 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
64e0 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
6500 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))........
6520 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
6540 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
6560 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
6580 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
65a0 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..........(
65c0 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.
65e0 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.
6600 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
6620 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-
6640 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
6660 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
6680 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
66a0 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
66c0 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.","))).......
66e0 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
6700 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.","
6720 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
6740 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
6760 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
6780 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......
67a0 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
67c0 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)))..........
67e0 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
6800 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.
6820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6840 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
6860 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))
6880 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.(
68a0 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
68c0 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.............................(
68e0 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
6900 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
6920 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
6940 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
6960 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
6980 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
69a0 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.
69c0 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
69e0 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))).............
6a00 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
6a20 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................
6a40 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
6a60 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]".(
6a80 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
6aa0 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
6ac0 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
6ae0 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
6b00 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
6b20 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
6b40 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
6b60 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
6b80 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.+.
6ba0 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.(
6bc0 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
6be0 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
6c00 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
6c20 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
6c40 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
6c60 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
6c80 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
6ca0 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
6cc0 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.
6ce0 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)......
6d00 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
6d20 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
6d40 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)
6d60 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
6d80 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
6da0 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
6dc0 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
6de0 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
6e00 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
6e20 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-
6e40 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
6e60 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-
6e80 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.....
6ea0 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.(
6ec0 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
6ee0 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
6f00 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)
6f20 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))....
6f40 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
6f60 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
6f80 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
6fa0 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
6fc0 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
6fe0 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.
7000 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
7020 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
7040 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
7060 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
7080 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
70a0 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
70c0 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
70e0 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.
7100 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
7120 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........
7140 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
7160 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
7180 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)..................
71a0 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
71c0 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
71e0 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)..........................(
7200 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
7220 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)).....
7240 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
7260 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
7280 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
72a0 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-
72c0 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
72e0 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.
7300 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
7320 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
7340 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).
7360 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
7380 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
73a0 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
73c0 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
73e0 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.................
7400 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 30 38 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240408.416/ledger-
7420 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 00 exec.el.........................
7440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7460 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
7480 30 30 31 31 37 34 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 36 32 37 00 20 30 00 00 00 0011743.00000000000.015627..0...
74a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
74c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
74e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7500 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...................
7520 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...................
7540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
75a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
75c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
75e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7600 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
7620 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
7640 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
7660 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
7680 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
76a0 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
76c0 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.
76e0 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
7700 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.;;
7720 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
7740 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
7760 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
7780 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
77a0 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..;;.;;.
77c0 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.
77e0 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
7800 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
7820 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
7840 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
7860 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
7880 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
78a0 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
78c0 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
78e0 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
7900 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
7920 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.
7940 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
7960 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
7980 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....;;;.
79a0 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
79c0 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
79e0 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)......
7a00 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
7a20 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
7a40 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
7a60 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
7a80 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.
7aa0 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.
7ac0 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
7ae0 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.
7b00 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
7b20 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
7b40 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..
7b60 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
7b80 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
7ba0 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
7bc0 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..."
7be0 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
7c00 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
7c20 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
7c40 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
7c60 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
7c80 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
7ca0 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)..(
7cc0 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.(
7ce0 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
7d00 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
7d20 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.
7d40 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
7d60 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
7d80 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
7da0 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
7dc0 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)
7de0 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
7e00 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
7e20 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
7e40 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
7e60 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-
7e80 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
7ea0 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
7ec0 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
7ee0 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......
7f00 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)).....
7f20 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).
7f40 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
7f60 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-
7f80 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
7fa0 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.
7fc0 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
7fe0 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
8000 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
8020 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
8040 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.
8060 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
8080 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
80a0 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........
80c0 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.
80e0 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).............
8100 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
8120 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)).............
8140 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
8160 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
8180 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
81a0 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
81c0 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
81e0 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
8200 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
8220 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..................
8240 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
8260 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
8280 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")))..
82a0 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
82c0 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
82e0 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..................
8300 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.'
8320 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
8340 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))..
8360 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-
8380 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..................
83a0 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
83c0 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)..................
83e0 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
8400 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
8420 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"."-")...............
8440 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
8460 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
8480 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)...........................
84a0 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
84c0 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
84e0 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
8500 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.
8520 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
8540 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
8560 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
8580 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
85a0 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).
85c0 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
85e0 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.
8600 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
8620 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
8640 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).(
8660 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")....
8680 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))....
86a0 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)..
86c0 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
86e0 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......................
8700 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
8720 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)...............
8740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
8760 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)))).
8780 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.(
87a0 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
87c0 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))..................(
87e0 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
8800 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))......................
8820 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
8840 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
8860 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.
8880 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.().
88a0 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.
88c0 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
88e0 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
8900 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
8920 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
8940 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))........
8960 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
8980 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.
89a0 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
89c0 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
89e0 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..............................
8a00 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 30 38 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240408.416/ledger-
8a20 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 00 post.el.........................
8a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a60 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
8a80 30 30 31 37 32 36 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 36 37 31 00 20 30 00 00 00 0017261.00000000000.015671..0...
8aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8b00 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...................
8b20 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...................
8b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8c00 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
8c20 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
8c40 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
8c60 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
8c80 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
8ca0 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
8cc0 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.
8ce0 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
8d00 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.;;
8d20 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
8d40 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
8d60 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
8d80 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
8da0 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..;;.;;.
8dc0 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.
8de0 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
8e00 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
8e20 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
8e40 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
8e60 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
8e80 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
8ea0 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
8ec0 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
8ee0 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
8f00 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
8f20 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.
8f40 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
8f60 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
8f80 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....;;;.
8fa0 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
8fc0 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
8fe0 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
9000 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
9020 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".()
9040 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
9060 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"
9080 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)).
90a0 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
90c0 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
90e0 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
9100 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
9120 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
9140 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
9160 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.
9180 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
91a0 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
91c0 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
91e0 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
9200 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
9220 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
9240 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
9260 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.
9280 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.
92a0 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
92c0 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
92e0 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
9300 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
9320 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.
9340 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."
9360 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
9380 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).
93a0 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
93c0 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
93e0 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...
9400 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
9420 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
9440 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
9460 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
9480 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.
94a0 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..
94c0 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.
94e0 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)..(
9500 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
9520 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
9540 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.
9560 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
9580 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
95a0 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
95c0 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
95e0 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
9600 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
9620 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)....
9640 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
9660 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.".
9680 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
96a0 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)
96c0 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
96e0 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)))........((
9700 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-
9720 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
9740 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
9760 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).
9780 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.
97a0 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
97c0 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
97e0 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.
9800 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
9820 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
9840 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
9860 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
9880 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.(
98a0 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
98c0 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)...
98e0 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
9900 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......
9920 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)....
9940 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
9960 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
9980 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))).........
99a0 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
99c0 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
99e0 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
9a00 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")...
9a20 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
9a40 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
9a60 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
9a80 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
9aa0 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
9ac0 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
9ae0 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
9b00 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.
9b20 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
9b40 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
9b60 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
9b80 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)
9ba0 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
9bc0 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
9be0 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
9c00 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))).......
9c20 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
9c40 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).
9c60 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
9c80 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.
9ca0 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
9cc0 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-
9ce0 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
9d00 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:..........
9d20 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
9d40 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)........
9d60 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
9d80 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
9da0 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
9dc0 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)............
9de0 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
9e00 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
9e20 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)).......
9e40 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
9e60 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)
9e80 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
9ea0 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
9ec0 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.(
9ee0 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
9f00 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
9f20 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).....................
9f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
9f60 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)).......
9f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
9fa0 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
9fc0 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
9fe0 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 ................................
a000 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
a020 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)).............
a040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
a060 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...................
a080 20 20 20 20 20 20 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
a0a0 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))))...............
a0c0 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)....
a0e0 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.(
a100 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.?.)).....
a120 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
a140 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
a160 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
a180 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
a1a0 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
a1c0 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
a1e0 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
a200 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
a220 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)).....................
a240 20 20 20 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
a260 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
a280 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)))...............
a2a0 20 20 20 20 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
a2c0 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
a2e0 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 ................................
a300 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
a320 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
a340 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)...
a360 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).
a380 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)))
a3a0 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.
a3c0 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.
a3e0 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-
a400 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-
a420 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.
a440 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.
a460 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
a480 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
a4a0 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
a4c0 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....((
a4e0 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
a500 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-
a520 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)).
a540 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
a560 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
a580 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.'
a5a0 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
a5c0 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.()...
a5e0 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
a600 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
a620 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
a640 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
a660 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
a680 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)
a6a0 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.(
a6c0 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
a6e0 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)
a700 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
a720 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)
a740 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
a760 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
a780 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
a7a0 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
a7c0 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).........
a7e0 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.
a800 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
a820 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
a840 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
a860 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.
a880 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)
a8a0 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
a8c0 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
a8e0 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
a900 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
a920 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
a940 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
a960 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)........
a980 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)).......
a9a0 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
a9c0 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.
a9e0 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
aa00 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)........
aa20 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
aa40 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)
aa60 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
aa80 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
aaa0 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................
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ab20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 30 38 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240408.416/ledger-
ac20 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 00 flymake.el......................
ac40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ac60 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
ac80 30 30 31 35 32 30 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 33 32 35 00 20 30 00 00 00 0015202.00000000000.016325..0...
aca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
acc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ace0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ad00 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...................
ad20 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...................
ad40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ad60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ad80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ada0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
adc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ade0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ae00 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
ae20 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-
ae40 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
ae60 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
ae80 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).
aea0 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
aec0 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
aee0 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
af00 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
af20 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
af40 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
af60 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
af80 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
afa0 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
afc0 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
afe0 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
b000 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
b020 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
b040 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
b060 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
b080 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..;
b0a0 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.
b0c0 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
b0e0 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;.
b100 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
b120 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
b140 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
b160 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
b180 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:.;
b1a0 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.
b1c0 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
b1e0 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
b200 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-
b220 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.;;.
b240 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
b260 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.
b280 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.
b2a0 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:.;;.;;.....(
b2c0 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
b2e0 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:.(
b300 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
b320 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)......
b340 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
b360 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).
b380 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
b3a0 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
b3c0 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.
b3e0 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
b400 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
b420 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
b440 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
b460 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
b480 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
b4a0 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
b4c0 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
b4e0 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.
b500 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
b520 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
b540 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
b560 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
b580 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
b5a0 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
b5c0 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").
b5e0 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
b600 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..."
b620 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.
b640 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
b660 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
b680 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.
b6a0 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
b6c0 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
b6e0 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
b700 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
b720 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
b740 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
b760 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
b780 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
b7a0 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
b7c0 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
b7e0 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
b800 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
b820 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
b840 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...;
b860 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.
b880 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
b8a0 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
b8c0 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
b8e0 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.
b900 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
b920 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).
b940 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
b960 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
b980 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
b9a0 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
b9c0 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
b9e0 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.(
ba00 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
ba20 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.
ba40 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
ba60 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.
ba80 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
baa0 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..
bac0 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......
bae0 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
bb00 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
bb20 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
bb40 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-
bb60 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-
bb80 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....
bba0 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-
bbc0 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.................
bbe0 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
bc00 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
bc20 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").........................
bc40 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
bc60 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").
bc80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
bca0 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
bcc0 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
bce0 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.
bd00 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
bd20 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
bd40 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
bd60 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)).......
bd80 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...........
bda0 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'.
bdc0 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.................;
bde0 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.
be00 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.................;
be20 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
be40 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
be60 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
be80 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))............
bea0 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
bec0 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).............
bee0 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)
bf00 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
bf20 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
bf40 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
bf60 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
bf80 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.....................
bfa0 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
bfc0 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
bfe0 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
c000 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.......
c020 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.
c040 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
c060 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.......................
c080 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
c0a0 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......
c0c0 20 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
c0e0 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
c100 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...........................
c120 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)................
c140 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."
c160 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
c180 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.".(
c1a0 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)).":\
c1c0 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"..............................
c1e0 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
c200 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)
c220 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".).........................
c240 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
c260 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.
c280 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")).............
c2a0 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
c2c0 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
c2e0 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")).....................
c300 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)................
c320 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.
c340 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
c360 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
c380 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 ................................
c3a0 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...............
c3c0 20 20 20 20 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
c3e0 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)))
c400 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
c420 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.......................
c440 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
c460 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........................
c480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
c4a0 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............................
c4c0 20 20 20 20 20 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
c4e0 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 ................................
c500 20 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...
c520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
c540 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)......
c560 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....
c580 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
c5a0 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))).........
c5c0 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.
c5e0 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"...
c600 20 20 20 20 20 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
c620 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
c640 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
c660 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
c680 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.(
c6a0 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))))))))))..;
c6c0 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
c6e0 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
c700 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.
c720 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
c740 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
c760 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
c780 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
c7a0 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
c7c0 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
c7e0 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.'
c800 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
c820 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
c840 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)
c860 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
c880 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...............................
c8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ca00 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 30 38 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240408.416/ledger-
ca20 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 00 navigate.el.....................
ca40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ca60 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
ca80 30 30 31 35 37 34 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 35 30 35 00 20 30 00 00 00 0015743.00000000000.016505..0...
caa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cb00 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...................
cb20 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...................
cb40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cb60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cb80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cbc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cbe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cc00 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
cc20 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
cc40 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
cc60 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)
cc80 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
cca0 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
ccc0 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
cce0 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
cd00 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
cd20 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
cd40 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
cd60 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
cd80 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
cda0 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.
cdc0 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
cde0 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
ce00 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
ce20 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
ce40 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
ce60 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
ce80 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.;;.
cea0 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
cec0 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
cee0 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
cf00 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.
cf20 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.;
cf40 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.
cf60 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
cf80 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.
cfa0 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:
cfc0 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
cfe0 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
d000 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
d020 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
d040 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
d060 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.
d080 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
d0a0 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
d0c0 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
d0e0 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
d100 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
d120 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
d140 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
d160 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
d180 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.(
d1a0 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
d1c0 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..
d1e0 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
d200 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
d220 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.
d240 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
d260 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
d280 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
d2a0 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-
d2c0 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-
d2e0 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.
d300 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
d320 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......
d340 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)..
d360 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-
d380 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.
d3a0 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
d3c0 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.
d3e0 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-
d400 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.
d420 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
d440 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
d460 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
d480 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-
d4a0 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
d4c0 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
d4e0 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.
d500 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."...(
d520 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
d540 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)))).
d560 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
d580 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
d5a0 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
d5c0 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
d5e0 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)))..
d600 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
d620 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
d640 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."
d660 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
d680 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
d6a0 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.
d6c0 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
d6e0 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.
d700 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.
d720 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
d740 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
d760 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))..
d780 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
d7a0 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
d7c0 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
d7e0 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).
d800 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
d820 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
d840 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
d860 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
d880 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
d8a0 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
d8c0 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
d8e0 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)...
d900 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
d920 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
d940 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.
d960 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
d980 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
d9a0 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
d9c0 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)......
d9e0 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
da00 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
da20 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.
da40 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
da60 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
da80 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
daa0 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).......
dac0 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)
dae0 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
db00 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
db20 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
db40 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."
db60 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.
db80 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)..........
dba0 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)))))
dbc0 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
dbe0 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.
dc00 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.
dc20 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.(
dc40 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
dc60 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
dc80 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\
dca0 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
dcc0 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
dce0 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
dd00 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
dd20 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]").....................
dd40 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-
dd60 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
dd80 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
dda0 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
ddc0 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
dde0 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
de00 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
de20 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.
de40 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
de60 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
de80 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
dea0 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.
dec0 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
dee0 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).
df00 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))....
df20 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
df40 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
df60 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
df80 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)))..
dfa0 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\\
dfc0 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
dfe0 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..............
e000 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
e020 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
e040 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 \\)\\_>")).....................(
e060 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
e080 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
e0a0 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
e0c0 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
e0e0 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
e100 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.(
e120 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
e140 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))
e160 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
e180 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))
e1a0 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.".*;"))...
e1c0 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.
e1e0 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
e200 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).......
e220 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
e240 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
e260 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
e280 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)....
e2a0 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
e2c0 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.
e2e0 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
e300 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
e320 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
e340 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
e360 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
e380 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
e3a0 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)..
e3c0 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
e3e0 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
e400 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
e420 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
e440 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\\[]").........
e460 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
e480 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
e4a0 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))))..(
e4c0 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
e4e0 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
e500 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
e520 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
e540 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).....
e560 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
e580 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-
e5a0 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
e5c0 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
e5e0 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
e600 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.
e620 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
e640 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
e660 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
e680 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.
e6a0 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
e6c0 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
e6e0 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
e700 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
e720 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
e740 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)...........
e760 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.
e780 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"
e7a0 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)
e7c0 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
e7e0 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..............................
e800 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 30 38 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240408.416/ledger-
e820 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 00 init.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 30 36 37 37 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 36 35 33 00 20 30 00 00 00 0006771.00000000000.015653..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 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
ea20 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
ea40 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
ea60 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
ea80 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
eaa0 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
eac0 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.
eae0 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
eb00 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.;;
eb20 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
eb40 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
eb60 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
eb80 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
eba0 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..;;.;;.
ebc0 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.
ebe0 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
ec00 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
ec20 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
ec40 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
ec60 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
ec80 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
eca0 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
ecc0 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
ece0 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
ed00 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
ed20 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.
ed40 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
ed60 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
ed80 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
eda0 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
edc0 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
ede0 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
ee00 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
ee20 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
ee40 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
ee60 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.
ee80 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.
eea0 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).......
eec0 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
eee0 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
ef00 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
ef20 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
ef40 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
ef60 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.
ef80 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
efa0 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
efc0 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.`
efe0 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
f000 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
f020 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
f040 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
f060 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.")..(
f080 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
f0a0 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
f0c0 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..
f0e0 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
f100 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.
f120 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
f140 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
f160 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)..
f180 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
f1a0 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
f1c0 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
f1e0 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
f200 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
f220 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
f240 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"
f260 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)).....
f280 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)..
f2a0 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
f2c0 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
f2e0 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
f300 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
f320 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)..
f340 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))....
f360 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
f380 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)....
f3a0 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
f3c0 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,.
f3e0 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........
f400 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)))..
f420 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)..........
f440 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
f460 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
f480 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))).................
f4a0 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\
f4c0 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).................
f4e0 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.
f500 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).........................
f520 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)).......................(
f540 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
f560 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))))...
f580 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
f5a0 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)..................
f5c0 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................
f5e0 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))).................
f600 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
f620 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
f640 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.()
f660 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
f680 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
f6a0 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.
f6c0 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......
f6e0 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-
f700 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-
f720 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
f740 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).......
f760 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..
f780 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
f7a0 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))))
f7c0 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)..;;;.
f7e0 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........
f800 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 30 38 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240408.416/ledger-
f820 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 00 xact.el.........................
f840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f860 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
f880 30 30 32 31 32 35 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 36 34 30 00 20 30 00 00 00 0021254.00000000000.015640..0...
f8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f900 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...................
f920 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...................
f940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fa00 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
fa20 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
fa40 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
fa60 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
fa80 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
faa0 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
fac0 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.
fae0 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
fb00 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.;;
fb20 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
fb40 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
fb60 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
fb80 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
fba0 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..;;.;;.
fbc0 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.
fbe0 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
fc00 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
fc20 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
fc40 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
fc60 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
fc80 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
fca0 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
fcc0 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
fce0 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
fd00 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
fd20 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.
fd40 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
fd60 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
fd80 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....;;;.
fda0 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
fdc0 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...;;;.
fde0 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
fe00 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
fe20 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
fe40 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
fe60 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
fe80 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
fea0 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
fec0 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
fee0 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-
ff00 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
ff20 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.
ff40 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
ff60 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
ff80 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,
ffa0 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
ffc0 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
ffe0 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
10000 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
10020 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").
10040 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
10060 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.(
10080 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-
100a0 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
100c0 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
100e0 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
10100 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
10120 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...
10140 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
10160 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
10180 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
101a0 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
101c0 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
101e0 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
10200 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
10220 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
10240 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.
10260 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
10280 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
102a0 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)).............(
102c0 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
102e0 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
10300 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
10320 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).
10340 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
10360 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................
10380 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.
103a0 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-
103c0 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
103e0 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
10400 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
10420 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-
10440 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
10460 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
10480 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)
104a0 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
104c0 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
104e0 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)....
10500 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.((
10520 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
10540 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
10560 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
10580 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
105a0 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.(
105c0 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
105e0 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
10600 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
10620 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
10640 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
10660 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
10680 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
106a0 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.
106c0 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
106e0 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))).....
10700 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
10720 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
10740 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
10760 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
10780 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
107a0 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
107c0 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
107e0 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
10800 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.
10820 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
10840 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).........
10860 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)
10880 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)))))
108a0 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
108c0 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.
108e0 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
10900 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.
10920 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
10940 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))
10960 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)......
10980 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
109a0 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-
109c0 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).
109e0 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
10a00 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."...(
10a20 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*.(
10a40 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
10a60 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.
10a80 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)).
10aa0 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
10ac0 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.(
10ae0 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)))........
10b00 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-
10b20 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.
10b40 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
10b60 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))...........
10b80 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
10ba0 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
10bc0 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.
10be0 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.
10c00 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
10c20 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)))).................
10c40 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
10c60 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
10c80 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))))............
10ca0 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
10cc0 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))....
10ce0 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
10d00 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
10d20 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.
10d40 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))............
10d60 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
10d80 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
10da0 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...................
10dc0 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.
10de0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
10e00 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)).......
10e20 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))))..
10e40 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
10e60 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
10e80 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
10ea0 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
10ec0 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
10ee0 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
10f00 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
10f20 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
10f40 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
10f60 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
10f80 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
10fa0 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
10fc0 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:."))).
10fe0 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
11000 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)))..
11020 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
11040 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
11060 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
11080 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
110a0 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
110c0 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
110e0 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......
11100 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
11120 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.
11140 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)))................."\
11160 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
11180 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
111a0 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)....
111c0 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
111e0 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
11200 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)...
11220 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]
11240 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
11260 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
11280 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)...
112a0 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
112c0 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")...
112e0 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
11300 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
11320 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
11340 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)).
11360 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-
11380 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
113a0 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
113c0 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
113e0 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
11400 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
11420 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.(
11440 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:.")))....
11460 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
11480 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
114a0 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
114c0 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.":.")
114e0 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)
11500 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
11520 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
11540 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
11560 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."..
11580 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
115a0 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
115c0 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.
115e0 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.
11600 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
11620 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
11640 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-
11660 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))
11680 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
116a0 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.
116c0 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
116e0 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
11700 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
11720 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
11740 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
11760 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
11780 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
117a0 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
117c0 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
117e0 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.
11800 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
11820 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.
11840 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).
11860 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
11880 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...........
118a0 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)
118c0 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-
118e0 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
11900 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
11920 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.
11940 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
11960 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)
11980 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
119a0 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)))......
119c0 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-
119e0 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).........(
11a00 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
11a20 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?.
11a40 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.(
11a60 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
11a80 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*\\'").......
11aa0 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."")))).....(
11ac0 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
11ae0 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.........
11b00 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............
11b20 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
11b40 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"
11b60 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
11b80 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
11ba0 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
11bc0 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
11be0 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
11c00 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
11c20 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)."
11c40 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
11c60 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.
11c80 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
11ca0 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.....................
11cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11e00 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 30 38 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240408.416/ledger-
11e20 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 00 sort.el.........................
11e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11e60 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
11e80 30 30 30 37 36 31 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 36 37 31 00 20 30 00 00 00 0007611.00000000000.015671..0...
11ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11f00 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...................
11f20 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...................
11f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12000 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
12020 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
12040 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
12060 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
12080 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
120a0 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
120c0 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.
120e0 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
12100 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.;;
12120 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
12140 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
12160 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
12180 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
121a0 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..;;.;;.
121c0 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.
121e0 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
12200 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
12220 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
12240 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
12260 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
12280 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
122a0 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
122c0 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
122e0 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
12300 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
12320 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.
12340 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
12360 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
12380 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.....;;;
123a0 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
123c0 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
123e0 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
12400 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
12420 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.
12440 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
12460 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
12480 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
124a0 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
124c0 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
124e0 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
12500 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
12520 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
12540 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.(
12560 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.
12580 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)...
125a0 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.(
125c0 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
125e0 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
12600 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
12620 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)..
12640 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
12660 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
12680 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.
126a0 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."...
126c0 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.
126e0 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)).....
12700 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)....
12720 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
12740 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
12760 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
12780 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
127a0 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
127c0 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
127e0 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
12800 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
12820 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
12840 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
12860 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
12880 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
128a0 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
128c0 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)))))).
128e0 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.
12900 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
12920 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."
12940 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
12960 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...;
12980 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
129a0 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
129c0 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
129e0 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)))...
12a00 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
12a20 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)
12a40 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
12a60 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.
12a80 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.........
12aa0 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.
12ac0 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
12ae0 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
12b00 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
12b20 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
12b40 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
12b60 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)
12b80 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
12ba0 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
12bc0 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)......
12be0 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)..
12c00 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
12c20 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
12c40 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
12c60 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)).....
12c80 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)..
12ca0 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)..........
12cc0 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
12ce0 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.......
12d00 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
12d20 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
12d40 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........
12d60 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))))..
12d80 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)).....
12da0 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)....
12dc0 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.
12de0 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
12e00 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
12e20 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)...(
12e40 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
12e60 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.(
12e80 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
12ea0 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).....
12ec0 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
12ee0 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
12f00 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))...
12f20 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
12f40 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
12f60 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
12f80 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........................
12fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13000 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 30 38 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240408.416/ledger-
13020 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 00 occur.el........................
13040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13060 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
13080 30 30 31 35 33 36 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 30 31 36 00 20 30 00 00 00 0015361.00000000000.016016..0...
130a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
130c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
130e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13100 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...................
13120 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...................
13140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
131a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
131c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
131e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13200 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
13220 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
13240 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
13260 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
13280 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.
132a0 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
132c0 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
132e0 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
13300 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.;
13320 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
13340 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
13360 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
13380 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
133a0 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..;;.;;
133c0 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
133e0 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
13400 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
13420 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
13440 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
13460 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.
13480 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
134a0 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
134c0 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
134e0 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
13500 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
13520 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
13540 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
13560 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
13580 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...;;;.
135a0 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
135c0 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
135e0 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
13600 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
13620 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
13640 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.
13660 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
13680 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
136a0 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
136c0 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
136e0 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
13700 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
13720 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.
13740 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
13760 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
13780 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
137a0 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..
137c0 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-
137e0 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
13800 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
13820 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
13840 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.
13860 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
13880 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
138a0 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
138c0 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
138e0 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
13900 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-
13920 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
13940 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.
13960 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
13980 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
139a0 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
139c0 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
139e0 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
13a00 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
13a20 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
13a40 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
13a60 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.
13a80 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
13aa0 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
13ac0 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.
13ae0 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.
13b00 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.
13b20 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)..........
13b40 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
13b60 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..
13b80 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
13ba0 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
13bc0 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
13be0 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
13c00 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"
13c20 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
13c40 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
13c60 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
13c80 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
13ca0 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..............
13cc0 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.
13ce0 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))))..
13d00 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
13d20 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)...
13d40 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
13d60 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
13d80 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
13da0 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
13dc0 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
13de0 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
13e00 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
13e20 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
13e40 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
13e60 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
13e80 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
13ea0 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."
13ec0 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
13ee0 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
13f00 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.(
13f20 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,.
13f40 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.
13f60 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
13f80 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
13fa0 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
13fc0 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
13fe0 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
14000 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
14020 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
14040 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,
14060 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
14080 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).......
140a0 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)).
140c0 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)))
140e0 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
14100 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
14120 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.......
14140 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
14160 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
14180 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
141a0 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
141c0 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
141e0 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
14200 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
14220 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.
14240 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
14260 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))).
14280 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
142a0 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).....(
142c0 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
142e0 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
14300 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)
14320 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
14340 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
14360 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
14380 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
143a0 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
143c0 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
143e0 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-
14400 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
14420 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
14440 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)..
14460 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
14480 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
144a0 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.
144c0 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.
144e0 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
14500 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.
14520 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.
14540 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).......
14560 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
14580 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
145a0 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
145c0 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
145e0 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
14600 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
14620 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)..
14640 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.
14660 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-
14680 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
146a0 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-
146c0 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))))..
146e0 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
14700 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
14720 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
14740 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
14760 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)
14780 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
147a0 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
147c0 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
147e0 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
14800 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
14820 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))....
14840 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
14860 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
14880 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
148a0 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
148c0 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.
148e0 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
14900 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.(
14920 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
14940 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
14960 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
14980 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
149a0 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.......
149c0 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)))).
149e0 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
14a00 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.
14a20 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
14a40 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
14a60 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
14a80 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
14aa0 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.
14ac0 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)).....
14ae0 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
14b00 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
14b20 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
14b40 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
14b60 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
14b80 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)
14ba0 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-
14bc0 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
14be0 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
14c00 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
14c20 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)
14c40 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.
14c60 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
14c80 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.
14ca0 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
14cc0 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
14ce0 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................
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 34 30 38 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240408.416/ledger-
14e20 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 00 commodities.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 31 35 33 31 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 37 32 31 37 00 20 30 00 00 00 0015316.00000000000.017217..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 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
15020 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
15040 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
15060 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
15080 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
150a0 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
150c0 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
150e0 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
15100 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
15120 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
15140 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
15160 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
15180 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
151a0 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.
151c0 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
151e0 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
15200 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
15220 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
15240 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
15260 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
15280 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.;;.
152a0 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
152c0 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
152e0 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
15300 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.
15320 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.;
15340 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.
15360 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
15380 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.
153a0 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
153c0 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.
153e0 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
15400 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
15420 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.
15440 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
15460 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
15480 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
154a0 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
154c0 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
154e0 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.
15500 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"
15520 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-
15540 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.
15560 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
15580 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.
155a0 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
155c0 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
155e0 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)
15600 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
15620 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
15640 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
15660 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
15680 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
156a0 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
156c0 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....
156e0 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
15700 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)
15720 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").................
15740 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
15760 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
15780 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
157a0 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-
157c0 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
157e0 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
15800 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
15820 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
15840 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
15860 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-
15880 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)
158a0 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
158c0 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....
158e0 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
15900 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))).....(
15920 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
15940 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
15960 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
15980 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........
159a0 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."\"\\(.*
159c0 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.
159e0 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
15a00 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...
15a20 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
15a40 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).......................
15a60 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))))..............
15a80 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.........
15aa0 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)..
15ac0 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..........
15ae0 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
15b00 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
15b20 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
15b40 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)))...........
15b60 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
15b80 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
15ba0 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
15bc0 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.
15be0 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
15c00 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,
15c20 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.
15c40 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
15c60 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,
15c80 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.
15ca0 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
15cc0 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...
15ce0 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
15d00 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
15d20 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)
15d40 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
15d60 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
15d80 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).(
15da0 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-
15dc0 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).......
15de0 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
15e00 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,...
15e20 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.
15e40 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
15e60 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
15e80 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
15ea0 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.(
15ec0 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-
15ee0 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-
15f00 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
15f20 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
15f40 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
15f60 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."..........................
15f80 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
15fa0 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.
15fc0 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).
15fe0 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
16000 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
16020 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
16040 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.
16060 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
16080 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
160a0 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.
160c0 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
160e0 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
16100 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)
16120 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
16140 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
16160 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
16180 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))))..
161a0 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.
161c0 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
161e0 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
16200 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.
16220 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
16240 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)).
16260 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
16280 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
162a0 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."
162c0 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:
162e0 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
16300 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
16320 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
16340 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)).
16360 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.
16380 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)...
163a0 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
163c0 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
163e0 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.
16400 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
16420 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..
16440 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
16460 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
16480 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..........
164a0 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
164c0 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))..
164e0 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
16500 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
16520 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.(
16540 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
16560 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
16580 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
165a0 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))).....
165c0 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
165e0 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
16600 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
16620 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
16640 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
16660 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
16680 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
166a0 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...........
166c0 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
166e0 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
16700 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).....
16720 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.","
16740 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
16760 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
16780 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
167a0 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
167c0 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,
167e0 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
16800 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
16820 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
16840 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
16860 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
16880 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
168a0 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
168c0 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.
168e0 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.
16900 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
16920 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...
16940 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.".(".
16960 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
16980 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
169a0 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).....
169c0 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
169e0 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.(
16a00 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
16a20 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).......
16a40 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
16a60 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
16a80 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
16aa0 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
16ac0 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...................
16ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16c00 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 30 38 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240408.416/ledger-
16c20 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 00 mode-pkg.el.....................
16c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16c60 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
16c80 30 30 30 30 33 34 35 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 34 30 32 00 20 30 00 00 00 0000345.00000000000.016402..0...
16ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16d00 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...................
16d20 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...................
16d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16e00 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
16e20 30 32 34 30 34 30 38 2e 34 31 36 22 20 22 48 65 6c 70 65 72 20 63 6f 64 65 20 66 6f 72 20 75 73 0240408.416"."Helper.code.for.us
16e40 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 69 e.with.the.\"ledger\".command-li
16e60 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 3a ne.tool"...'((emacs."25.1"))...:
16e80 63 6f 6d 6d 69 74 20 22 61 38 31 61 39 33 61 32 33 61 65 34 61 30 65 39 62 39 64 61 65 30 38 39 commit."a81a93a23ae4a0e9b9dae089
16ea0 64 33 38 34 39 30 63 39 63 32 35 32 30 34 39 34 22 29 0a 3b 3b 20 4c 6f 63 61 6c 20 56 61 72 69 d38490c9c2520494").;;.Local.Vari
16ec0 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 20 ables:.;;.no-byte-compile:.t.;;.
16ee0 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 00 End:............................
16f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17000 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 30 38 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240408.416/ledger-
17020 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 00 mode.el.........................
17040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17060 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
17080 30 30 33 33 30 37 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 36 32 34 00 20 30 00 00 00 0033070.00000000000.015624..0...
170a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
170c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
170e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17100 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...................
17120 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...................
17140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
171a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
171c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
171e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17200 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
17220 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
17240 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
17260 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
17280 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
172a0 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
172c0 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-
172e0 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
17300 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
17320 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
17340 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
17360 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
17380 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
173a0 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
173c0 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.
173e0 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
17400 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
17420 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
17440 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
17460 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
17480 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
174a0 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.;;.
174c0 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
174e0 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
17500 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
17520 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.
17540 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.;
17560 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.
17580 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
175a0 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.
175c0 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.
175e0 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
17600 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
17620 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
17640 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
17660 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
17680 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
176a0 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
176c0 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...;;;.
176e0 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).(
17700 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
17720 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
17740 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)
17760 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
17780 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
177a0 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)
177c0 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
177e0 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
17800 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
17820 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).
17840 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.
17860 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-
17880 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
178a0 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
178c0 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-
178e0 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
17900 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
17920 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
17940 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
17960 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
17980 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)..(
179a0 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"...
179c0 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
179e0 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-
17a00 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
17a20 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)...
17a40 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."
17a60 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
17a80 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
17aa0 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
17ac0 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)..."
17ae0 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
17b00 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
17b20 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
17b40 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
17b60 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
17b80 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
17ba0 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.
17bc0 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.
17be0 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-
17c00 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)))..
17c20 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
17c40 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
17c60 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
17c80 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
17ca0 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
17cc0 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
17ce0 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
17d00 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
17d20 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
17d40 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.
17d60 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
17d80 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.(
17da0 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)).......
17dc0 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
17de0 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))).....
17e00 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
17e20 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.....................
17e40 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
17e60 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..............................
17e80 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
17ea0 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))...........................
17ec0 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-
17ee0 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 70 61 79 list))))..(defun.ledger-read-pay
17f00 65 65 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 ee-with-prompt.(prompt)..."Read.
17f20 61 20 70 61 79 65 65 20 66 72 6f 6d 20 74 68 65 20 6d 69 6e 69 62 75 66 66 65 72 20 77 69 74 68 a.payee.from.the.minibuffer.with
17f40 20 50 52 4f 4d 50 54 2e 22 0a 20 20 28 6c 65 64 67 65 72 2d 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 .PROMPT."...(ledger-completing-r
17f60 65 61 64 2d 77 69 74 68 2d 64 65 66 61 75 6c 74 20 70 72 6f 6d 70 74 0a 20 20 20 20 20 20 20 20 ead-with-default.prompt.........
17f80 20 20 20 20 20 20 20 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 ...............................(
17fa0 77 68 65 6e 2d 6c 65 74 20 28 28 70 61 79 65 65 20 28 6c 65 64 67 65 72 2d 78 61 63 74 2d 70 61 when-let.((payee.(ledger-xact-pa
17fc0 79 65 65 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 yee)))..........................
17fe0 20 20 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 70 61 ................(regexp-quote.pa
18000 79 65 65 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 yee))...........................
18020 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 70 61 79 65 65 73 2d 6c 69 73 74 .............(ledger-payees-list
18040 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 65 20 28 70 72 )))..(defun.ledger-read-date.(pr
18060 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 65 64 20 64 61 ompt)..."Return.user-supplied.da
18080 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 20 74 6f 20 74 te.after.`PROMPT',.defaults.to.t
180a0 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 61 74 65 27 2c oday..This.uses.`org-read-date',
180c0 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 61 74 2d 64 61 .which.see."...(ledger-format-da
180e0 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 66 65 72 2d 66 te.(let.((org-read-date-prefer-f
18100 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 20 20 20 20 20 uture.nil)).....................
18120 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 6c 20 70 72 6f ....(org-read-date.nil.t.nil.pro
18140 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 6d 69 6e 69 62 mpt))))..(defun.ledger-get-minib
18160 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 74 29 0a 20 20 uffer-prompt.(prompt.default)...
18180 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 20 73 74 72 69 "Return.a.minibuffer.prompt.stri
181a0 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 41 55 4c 54 2e ng.composing.PROMPT.and.DEFAULT.
181c0 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 20 20 28 69 66 "...(concat.prompt...........(if
181e0 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 63 61 74 20 22 .default...............(concat."
18200 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 20 20 20 20 22 .(".default."):.")............."
18220 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 65 74 69 6e 67 :.")))..(defun.ledger-completing
18240 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 64 65 66 61 75 -read-with-default.(prompt.defau
18260 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 75 73 65 72 2d lt.collection)..."Return.a.user-
18280 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 2e 0a 55 73 supplied.string.after.PROMPT..Us
182a0 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 70 72 6f 76 69 e.the.given.DEFAULT,.while.provi
182c0 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 43 54 49 4f 4e ding.completions.from.COLLECTION
182e0 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 65 72 2d 67 65 ."...(completing-read.(ledger-ge
18300 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 65 66 61 75 t-minibuffer-prompt.prompt.defau
18320 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 65 63 74 69 6f lt)....................collectio
18340 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 75 66 66 65 72 n.nil.nil.nil.'ledger-minibuffer
18360 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 6c 65 64 67 65 -history.default))..(defun.ledge
18380 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 28 70 72 6f 6d r-read-string-with-default.(prom
183a0 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 73 75 70 70 6c pt.default)..."Return.user.suppl
183c0 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 20 44 45 46 41 ied.string.after.PROMPT,.or.DEFA
183e0 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 72 2d 67 65 74 ULT."...(read-string.(ledger-get
18400 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 65 66 61 75 6c -minibuffer-prompt.prompt.defaul
18420 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 65 72 2d 6d 69 t)................nil.'ledger-mi
18440 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 0a 28 64 65 66 nibuffer-history.default))..(def
18460 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 74 2d 70 6f 69 un.ledger-display-balance-at-poi
18480 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 61 79 20 74 68 nt.(&optional.arg)..."Display.th
184a0 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 65 2e 0a 41 6e e.cleared-or-pending.balance..An
184c0 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 61 20 6f 66 20 d.calculate.the.target-delta.of.
184e0 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 2e 0a 0a 57 the.account.being.reconciled...W
18500 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 65 6e 74 5d 29 ith.ARG.(\\[universal-argument])
18520 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 74 79 20 61 6e .ask.for.the.target.commodity.an
18540 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 74 68 61 74 2e d.convert.the.balance.into.that.
18560 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 74 2a 20 28 28 "...(interactive."P")...(let*.((
18580 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 74 2d 77 69 74 account.(ledger-read-account-wit
185a0 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 6f 20 73 68 6f h-prompt."Account.balance.to.sho
185c0 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 64 69 74 79 20 w"))..........(target-commodity.
185e0 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 6f 64 69 74 79 (when.arg.(ledger-read-commodity
18600 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 69 74 79 3a 20 -with-prompt."Target.commodity:.
18620 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 2d 66 69 6c 65 ")))..........(buffer.(find-file
18640 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 29 29 -noselect.(ledger-master-file)))
18660 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 62 75 ..........(balance.(with-temp-bu
18680 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 70 70 6c 79 20 ffer.....................(apply.
186a0 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 28 63 75 72 72 'ledger-exec-ledger.buffer.(curr
186c0 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 6e 74 0a 20 20 ent-buffer)."cleared".account...
186e0 20 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 68 65 6e 20 74 .........................(when.t
18700 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 74 61 72 67 65 arget-commodity.(list."-X".targe
18720 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 20 20 20 20 20 t-commodity)))..................
18740 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 20 20 20 20 20 ...(if.(>.(buffer-size).0)......
18760 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 62 73 74 ...................(buffer-subst
18780 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).(
187a0 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 20 20 20 20 20 1-.(point-max)))................
187c0 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 20 65 6d 70 74 .......(concat.account.".is.empt
187e0 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 20 20 20 20 20 y."))))).....(when.balance......
18800 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 20 62 61 6c 61 .(display-message-or-buffer.bala
18820 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 6c 61 79 2d 6c nce))))..(defun.ledger-display-l
18840 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 6f 6d 65 20 73 edger-stats.()..."Display.some.s
18860 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 20 63 75 72 72 ummary.statistics.about.the.curr
18880 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 63 74 69 76 65 ent.ledger.file."...(interactive
188a0 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 6c 65 2d 6e 6f )...(let*.((buffer.(find-file-no
188c0 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 29 29 0a 20 20 select.(ledger-master-file)))...
188e0 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 62 75 66 66 65 .......(balance.(with-temp-buffe
18900 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 65 72 2d 65 78 r.....................(ledger-ex
18920 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 75 66 66 65 72 ec-ledger.buffer.(current-buffer
18940 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 20 20 20 20 28 )."stats").....................(
18960 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 20 28 buffer-substring-no-properties.(
18980 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 29 29 29 29 0a point-min).(1-.(point-max)))))).
189a0 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 73 73 61 67 65 ....(when.balance.......(message
189c0 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 72 2d 6d 6f 64 .balance))))..(defvar.ledger-mod
189e0 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 64 67 65 72 2d e-abbrev-table)..(defvar.ledger-
18a00 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 6f 72 6d 61 74 date-string-today.(ledger-format
18a20 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 76 65 2d 65 66 -date))..(defun.ledger-remove-ef
18a40 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 68 65 20 65 66 fective-date.()..."Remove.the.ef
18a60 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 74 69 6f 6e 20 fective.date.from.a.transaction.
18a80 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 29 0a 20 20 28 or.posting."...(interactive)...(
18aa0 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 63 6f 6e 74 65 let.((context.(car.(ledger-conte
18ac0 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 78 63 75 72 73 xt-at-point)))).....(save-excurs
18ae0 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 0a 20 20 20 20 ion.......(save-restriction.....
18b00 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 2d 62 65 67 69 ....(narrow-to-region.(line-begi
18b20 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 73 69 74 69 nning-position).(line-end-positi
18b40 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 6c 69 6e 65 29 on)).........(beginning-of-line)
18b60 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 6f 6e 74 65 78 .........(cond.((eq.'xact.contex
18b80 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 68 2d 66 6f 72 t)................(re-search-for
18ba0 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 29 0a 20 20 20 ward.ledger-iso-date-regexp)....
18bc0 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 61 66 74 65 72 ............(when.(=.(char-after
18be0 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 20 28 28 65 71 ).?=)..................(let.((eq
18c00 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 20 20 20 20 20 -pos.(point)))..................
18c20 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 20 20 20 20 20 ..(delete-region................
18c40 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 20 20 20 20 20 .....eq-pos.....................
18c60 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 61 (re-search-forward.ledger-iso-da
18c80 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 20 20 28 28 65 te-regexp)))))...............((e
18ca0 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 29 0a 20 20 20 q.'acct-transaction.context)....
18cc0 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 61 74 65 5d 22 ............;;.Match.";.[=date]"
18ce0 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 20 20 20 20 20 .&.delete.string................
18d00 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 20 20 20 20 20 (when.(re-search-forward........
18d20 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 65 72 2d 63 6f ...............(concat.ledger-co
18d40 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 20 20 20 20 20 mment-regex.....................
18d60 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 2d 64 61 74 65 .........."\\[=".ledger-iso-date
18d80 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 20 20 20 20 20 -regexp."\\]")..................
18da0 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 20 20 20 20 20 .....nil.'noerr)................
18dc0 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 0a 0a 28 64 65 ..(replace-match.""))))))))..(de
18de0 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 2d 64 61 74 65 fun.ledger-insert-effective-date
18e00 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 20 65 66 66 65 .(&optional.date)..."Insert.effe
18e20 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 61 6e 73 61 63 ctive.date.`DATE'.to.the.transac
18e40 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 20 69 73 20 6e tion.or.posting...If.`DATE'.is.n
18e60 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 0a 0a 52 65 70 il,.prompt.the.user.a.date...Rep
18e80 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 64 61 74 65 20 lace.the.current.effective.date.
18ea0 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 6c 69 6e 65 2e if.there's.one.in.the.same.line.
18ec0 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 65 6d 6f 76 65 ..With.a.prefix.argument,.remove
18ee0 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 74 65 72 61 63 .the.effective.date."...(interac
18f00 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 72 65 6e 74 2d tive)...(if.(and.(listp.current-
18f20 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 20 28 70 72 65 prefix-arg)............(=.4.(pre
18f40 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 72 65 66 69 78 fix-numeric-value.current-prefix
18f60 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 65 2d 65 66 66 -arg))).......(ledger-remove-eff
18f80 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 6e 74 65 78 74 ective-date).....(let*.((context
18fa0 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 69 6e 74 29 29 .(car.(ledger-context-at-point))
18fc0 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 6f 72 20 64 61 )............(date-string.(or.da
18fe0 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 74 69 76 65 20 te.(ledger-read-date."Effective.
19000 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 74 72 69 63 74 date:.")))).......(save-restrict
19020 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 6f 6e 20 28 6c ion.........(narrow-to-region.(l
19040 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 65 6e ine-beginning-position).(line-en
19060 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 20 20 20 20 20 d-position)).........(cond......
19080 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 20 20 20 20 20 ....((eq.'xact.context).........
190a0 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 20 20 20 20 ..(beginning-of-line)...........
190c0 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 61 (re-search-forward.ledger-iso-da
190e0 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 28 3d 20 28 63 te-regexp)...........(when.(=.(c
19100 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 28 6c 65 64 67 har-after).?=).............(ledg
19120 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 20 20 20 20 20 er-remove-effective-date))......
19140 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 67 29 29 0a 20 .....(insert."=".date-string))..
19160 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 69 6f 6e 20 63 ........((eq.'acct-transaction.c
19180 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 69 6e 65 29 0a ontext)...........(end-of-line).
191a0 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 66 65 63 74 69 ..........(ledger-remove-effecti
191c0 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 22 20 20 3b 20 ve-date)...........(insert."..;.
191e0 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 0a 28 64 65 66 [=".date-string."]")))))))..(def
19200 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 2d 6c 69 6e 65 un.ledger-mode-remove-extra-line
19220 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 20 65 6d 70 74 s.()..."Get.rid.of.multiple.empt
19240 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 6e 74 2d 6d 69 y.lines."...(goto-char.(point-mi
19260 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 77 61 72 64 20 n))...(while.(re-search-forward.
19280 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 28 72 65 70 6c "\n\n\\(\n\\)+".nil.t).....(repl
192a0 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 20 6c 65 64 67 ace-match."\n\n")))..(defun.ledg
192c0 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 49 6e 64 65 6e er-mode-clean-buffer.()..."Inden
192e0 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 64 73 20 61 6e t,.remove.multiple.line.feeds.an
19300 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 72 61 63 74 69 d.sort.the.buffer."...(interacti
19320 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 69 6e 2d 6d 61 ve)...(let.((start.(point-min-ma
19340 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 6d 61 78 2d 6d rker)).........(end.(point-max-m
19360 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 6e 2d 78 61 63 arker)).........(distance-in-xac
19380 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 74 65 2d 62 65 t.(-.(point).(ledger-navigate-be
193a0 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 74 20 28 28 74 ginning-of-xact)))).....(let.((t
193c0 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 6e 65 2d 62 65 arget.(buffer-substring.(line-be
193e0 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 73 69 ginning-position).(line-end-posi
19400 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 74 61 72 74 29 tion)))).......(goto-char.start)
19420 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 0a 20 20 20 20 .......(untabify.start.end).....
19440 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 20 20 28 6c 65 ..(ledger-sort-buffer).......(le
19460 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 61 72 74 20 65 dger-post-align-postings.start.e
19480 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 76 65 2d 65 78 nd).......(ledger-mode-remove-ex
194a0 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 20 73 74 61 72 tra-lines).......(goto-char.star
194c0 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 72 67 65 74 29 t).......(search-forward.target)
194e0 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 20 20 .......(beginning-of-line)......
19500 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 78 61 63 74 29 .(forward-char.distance-in-xact)
19520 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 6e 74 61 78 2d )))..(defvar.ledger-mode-syntax-
19540 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 73 79 6e 74 61 table...(let.((table.(make-synta
19560 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 62 6c 65 29 29 x-table.text-mode-syntax-table))
19580 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 3f 5c 3b 20 22 ).....(modify-syntax-entry.?\;."
195a0 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 78 2d 65 6e 74 <".table).....(modify-syntax-ent
195c0 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 29 0a 20 20 22 ry.?\n.">".table).....table)..."
195e0 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 67 65 72 2d 6d Syntax.table.in.use.in.`ledger-m
19600 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 64 67 65 72 2d ode'.buffers.")..(defvar.ledger-
19620 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 2d 73 70 61 72 mode-map...(let.((map.(make-spar
19640 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 79 20 6d 61 70 se-keymap))).....(define-key.map
19660 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 64 64 2d 74 72 .(kbd."C-c.C-a").#'ledger-add-tr
19680 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 6d 61 70 20 28 ansaction).....(define-key.map.(
196a0 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 74 2d 65 64 69 kbd."C-c.C-b").#'ledger-post-edi
196c0 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 61 70 20 28 6b t-amount).....(define-key.map.(k
196e0 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 6c 65 2d 63 75 bd."C-c.C-c").#'ledger-toggle-cu
19700 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 28 6b 62 64 20 rrent).....(define-key.map.(kbd.
19720 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 63 75 72 72 65 "C-c.C-d").#'ledger-delete-curre
19740 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 2d 6b 65 79 20 nt-transaction).....(define-key.
19760 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 72 2d 74 6f 67 map.(kbd."C-c.C-e").#'ledger-tog
19780 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 20 20 28 64 65 gle-current-transaction).....(de
197a0 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 29 20 23 27 6c fine-key.map.(kbd."C-c.C-f").#'l
197c0 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 79 20 6d 61 70 edger-occur).....(define-key.map
197e0 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 6f 70 79 2d 74 .(kbd."C-c.C-k").#'ledger-copy-t
19800 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 65 66 69 6e 65 ransaction-at-point).....(define
19820 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 6c 65 64 67 65 -key.map.(kbd."C-c.C-r").#'ledge
19840 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 79 20 6d 61 70 r-reconcile).....(define-key.map
19860 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 6f 72 74 2d 72 .(kbd."C-c.C-s").#'ledger-sort-r
19880 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 28 6b 62 64 20 egion).....(define-key.map.(kbd.
198a0 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 65 66 66 65 63 "C-c.C-t").#'ledger-insert-effec
198c0 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 6d 61 70 20 28 tive-date).....(define-key.map.(
198e0 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 65 64 75 6c 65 kbd."C-c.C-u").#'ledger-schedule
19900 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 6d 61 70 20 28 -upcoming).....(define-key.map.(
19920 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 70 6c 61 79 2d kbd."C-c.C-p").#'ledger-display-
19940 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 6e 65 2d 6b 65 balance-at-point).....(define-ke
19960 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 67 65 72 2d 64 y.map.(kbd."C-c.C-l").#'ledger-d
19980 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 65 66 69 6e 65 isplay-ledger-stats).....(define
199a0 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 6c 65 64 67 65 -key.map.(kbd."C-c.C-q").#'ledge
199c0 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 66 69 6e 65 2d r-post-align-xact)......(define-
199e0 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 67 65 72 2d 70 key.map.(kbd."C-TAB").#'ledger-p
19a00 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 2d 6b 65 79 20 ost-align-xact).....(define-key.
19a20 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 72 2d 66 75 6c map.(kbd."C-c.TAB").#'ledger-ful
19a40 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 6e 65 2d 6b 65 ly-complete-xact).....(define-ke
19a60 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 67 65 72 2d 66 y.map.(kbd."C-c.C-i").#'ledger-f
19a80 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 65 66 69 6e 65 ully-complete-xact)......(define
19aa0 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 29 20 23 27 6c -key.map.(kbd."C-c.C-o.C-a").#'l
19ac0 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 2d 6b edger-report-redo).....(define-k
19ae0 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 23 27 6c 65 64 ey.map.(kbd."C-c.C-o.C-e").#'led
19b00 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 65 66 ger-report-edit-report).....(def
19b20 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 67 22 29 20 ine-key.map.(kbd."C-c.C-o.C-g").
19b40 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 64 65 66 69 6e #'ledger-report-goto).....(defin
19b60 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 22 29 20 23 27 e-key.map.(kbd."C-c.C-o.C-k").#'
19b80 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 6e 65 2d ledger-report-quit).....(define-
19ba0 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 20 23 27 6c 65 key.map.(kbd."C-c.C-o.C-r").#'le
19bc0 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 79 20 6d 61 70 dger-report).....(define-key.map
19be0 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 65 72 2d 72 65 .(kbd."C-c.C-o.C-s").#'ledger-re
19c00 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 20 6d 61 70 20 port-save)......(define-key.map.
19c20 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 74 65 2d 70 72 (kbd."M-p").#'ledger-navigate-pr
19c40 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 64 65 66 69 6e ev-xact-or-directive).....(defin
19c60 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 67 65 72 2d 6e e-key.map.(kbd."M-n").#'ledger-n
19c80 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).
19ca0 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 2d 71 22 29 20 ....(define-key.map.(kbd."M-q").
19cc0 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 20 20 20 20 3b #'ledger-post-align-dwim)......;
19ce0 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 72 72 69 64 65 ;.Reset.the.`text-mode'.override
19d00 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 20 20 20 28 64 .of.this.standard.binding.....(d
19d20 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 20 27 63 6f 6d efine-key.map.(kbd."C-M-i").'com
19d40 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 20 20 22 4b 65 pletion-at-point).....map)..."Ke
19d60 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 28 65 61 73 79 ymap.for.`ledger-mode'.")..(easy
19d80 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 6e 75 20 6c 65 -menu-define.ledger-mode-menu.le
19da0 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 75 22 0a 20 20 dger-mode-map..."Ledger.menu"...
19dc0 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 52 45 47 45 58 '("Ledger".....["Narrow.to.REGEX
19de0 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 61 6c 6c 20 74 ".ledger-occur].....["Show.all.t
19e00 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 6f 64 65 20 6c ransactions".ledger-occur-mode.l
19e20 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 67 65 72 20 53 edger-occur-mode].....["Ledger.S
19e40 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 65 64 67 65 72 tatistics".ledger-display-ledger
19e60 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 2d 2d 22 0a 20 -stats.ledger-works]....."---"..
19e80 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 69 6f 6e 73 22 ...["Show.upcoming.transactions"
19ea0 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 20 20 20 20 5b .ledger-schedule-upcoming].....[
19ec0 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 63 74 29 22 20 "Add.Transaction.(ledger.xact)".
19ee0 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 65 72 2d 77 6f ledger-add-transaction.ledger-wo
19f00 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 74 69 6f 6e 22 rks].....["Complete.Transaction"
19f20 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 5d 0a 20 20 20 .ledger-fully-complete-xact]....
19f40 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 65 72 2d 64 65 .["Delete.Transaction".ledger-de
19f60 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 20 20 20 22 2d lete-current-transaction]....."-
19f80 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 65 64 67 65 72 --".....["Calc.on.Amount".ledger
19fa0 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 22 0a 20 20 20 -post-edit-amount]....."---"....
19fc0 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 73 70 6c 61 79 .["Check.Balance".ledger-display
19fe0 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 72 6b 73 5d 0a -balance-at-point.ledger-works].
1a000 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 64 67 65 72 2d ....["Reconcile.Account".ledger-
1a020 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 20 22 2d 2d 2d reconcile.ledger-works]....."---
1a040 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 73 61 63 74 69 ".....["Toggle.Current.Transacti
1a060 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 72 61 6e 73 61 on".ledger-toggle-current-transa
1a080 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 20 50 6f 73 74 ction].....["Toggle.Current.Post
1a0a0 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 0a 20 20 20 20 ing".ledger-toggle-current].....
1a0c0 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 65 72 2d 63 6f ["Copy.Trans.at.Point".ledger-co
1a0e0 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 20 20 22 2d 2d py-transaction-at-point]....."--
1a100 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 65 64 67 65 72 -".....["Clean-up.Buffer".ledger
1a120 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 68 65 63 6b 20 -mode-clean-buffer].....["Check.
1a140 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 20 6c 65 64 67 Buffer".ledger-check-buffer.ledg
1a160 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 6e 22 20 6c 65 er-works].....["Align.Region".le
1a180 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 72 6b 2d 61 63 dger-post-align-postings.mark-ac
1a1a0 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 67 65 72 2d 70 tive].....["Align.Xact".ledger-p
1a1c0 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 52 65 67 69 6f ost-align-xact].....["Sort.Regio
1a1e0 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 61 63 74 69 76 n".ledger-sort-region.mark-activ
1a200 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 72 2d 73 6f 72 e].....["Sort.Buffer".ledger-sor
1a220 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 65 67 69 6e 6e t-buffer].....["Mark.Sort.Beginn
1a240 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 72 74 2d 6d 61 ing".ledger-sort-insert-start-ma
1a260 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 64 67 65 72 2d rk].....["Mark.Sort.End".ledger-
1a280 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 22 53 65 74 20 sort-insert-end-mark].....["Set.
1a2a0 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 72 74 2d 65 66 effective.date".ledger-insert-ef
1a2c0 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 20 5b 22 43 75 fective-date]....."---".....["Cu
1a2e0 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 61 20 28 29 20 stomize.Ledger.Mode".(lambda.().
1a300 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 6f 75 70 20 27 (interactive).(customize-group.'
1a320 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 75 6e 20 52 65 ledger))]....."---".....["Run.Re
1a340 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 77 6f 72 6b 73 port".ledger-report.ledger-works
1a360 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 2d 72 65 70 6f ].....["Goto.Report".ledger-repo
1a380 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 22 52 65 2d 72 rt-goto.ledger-works].....["Re-r
1a3a0 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 64 6f 20 6c 65 un.Report".ledger-report-redo.le
1a3c0 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 72 74 22 20 6c dger-works].....["Save.Report".l
1a3e0 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 72 6b 73 5d 0a edger-report-save.ledger-works].
1a400 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 65 70 6f 72 74 ....["Edit.Report".ledger-report
1a420 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 20 20 20 20 5b -edit-report.ledger-works].....[
1a440 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 2d 71 75 69 74 "Quit.Report".ledger-report-quit
1a460 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 6f 6c 6f 61 64 .ledger-works]))..;;;###autoload
1a480 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 72 2d 6d 6f 64 .(define-derived-mode.ledger-mod
1a4a0 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 6f 64 65 20 66 e.text-mode."Ledger"..."A.mode.f
1a4c0 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 73 2e 22 0a 20 or.editing.ledger.data.files."..
1a4e0 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 73 65 74 71 20 .(ledger-check-version)...(setq.
1a500 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 27 28 6c 65 64 font-lock-defaults.........'(led
1a520 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 6c 20 6e 69 6c ger-font-lock-keywords.t.nil.nil
1a540 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 63 6b 2d 65 78 .nil))...(add-hook.'font-lock-ex
1a560 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 65 72 2d 66 6f tend-region-functions.'ledger-fo
1a580 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 2d 68 6f 6f 6b ntify-extend-region)...(add-hook
1a5a0 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 69 6f 6e 73 20 .'completion-at-point-functions.
1a5c0 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 6e 69 6c 20 74 #'ledger-complete-at-point.nil.t
1a5e0 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 6f 6f 6b 20 27 )...(add-hook.'after-save-hook.'
1a600 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 20 20 28 61 64 ledger-report-redo.nil.t)....(ad
1a620 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 6c 65 64 67 65 d-hook.'post-command-hook.'ledge
1a640 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 20 6e 69 6c r-highlight-xact-under-point.nil
1a660 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 69 74 2d 66 69 .t)....(ledger-init-load-init-fi
1a680 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 74 61 72 74 20 le)...(setq-local.comment-start.
1a6a0 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 69 6e 65 2d 66 ";")...(setq-local.indent-line-f
1a6c0 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 65 29 0a 20 20 unction.#'ledger-indent-line)...
1a6e0 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 75 6e 63 74 69 (setq-local.indent-region-functi
1a700 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 6e 67 73 29 0a on.'ledger-post-align-postings).
1a720 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 64 65 66 75 6e ..(setq-local.beginning-of-defun
1a740 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 2d 62 65 67 69 -function.#'ledger-navigate-begi
1a760 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 6c 20 65 6e 64 nning-of-xact)...(setq-local.end
1a780 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 2d 6e 61 76 69 -of-defun-function.#'ledger-navi
1a7a0 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 75 74 6f 6c 6f gate-end-of-xact))..;;;###autolo
1a7c0 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 61 6c 69 73 74 ad.(add-to-list.'auto-mode-alist
1a7e0 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 6d 6f 64 65 29 .'("\\.ledger\\'"...ledger-mode)
1a800 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 3b 3b 3b 20 6c )..(provide.'ledger-mode)..;;;.l
1a820 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 00 00 00 00 00 edger-mode.el.ends.here.........
1a840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a860 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a880 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1a9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1aa00 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 30 38 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240408.416/ledger-
1aa20 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 00 report.el.......................
1aa40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1aa60 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
1aa80 30 30 36 34 37 33 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 32 33 30 00 20 30 00 00 00 0064736.00000000000.016230..0...
1aaa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1aac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1aae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ab00 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...................
1ab20 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...................
1ab40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ab60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ab80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1aba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1abc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1abe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ac00 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.
1ac20 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
1ac40 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
1ac60 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).
1ac80 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
1aca0 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
1acc0 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
1ace0 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
1ad00 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.
1ad20 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.
1ad40 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
1ad60 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;.
1ad80 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
1ada0 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..;;.;
1adc0 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
1ade0 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
1ae00 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
1ae20 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
1ae40 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.
1ae60 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
1ae80 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
1aea0 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
1aec0 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
1aee0 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
1af00 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
1af20 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
1af40 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.
1af60 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
1af80 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....;;
1afa0 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
1afc0 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
1afe0 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
1b000 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
1b020 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
1b040 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 70 6c 65 odities).(require.'ledger-comple
1b060 74 65 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 te).(declare-function.ledger-rea
1b080 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 65 72 2d 6d 6f d-string-with-default."ledger-mo
1b0a0 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 61 72 65 2d 66 de".(prompt.default)).(declare-f
1b0c0 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 2d 77 69 74 68 unction.ledger-read-account-with
1b0e0 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 70 74 29 29 0a -prompt."ledger-mode".(prompt)).
1b100 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 70 61 (declare-function.ledger-read-pa
1b120 79 65 65 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 yee-with-prompt."ledger-mode".(p
1b140 72 6f 6d 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 rompt))..(require.'easymenu).(re
1b160 71 75 69 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 quire.'ansi-color).(require.'fon
1b180 74 2d 6c 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 t-lock).(eval-when-compile...(re
1b1a0 71 75 69 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 quire.'rx)...(require.'subr-x)).
1b1c0 0a 28 64 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 .(defgroup.ledger-report.nil..."
1b1e0 43 75 73 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 Customization.option.for.the.Rep
1b200 6f 72 74 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 ort.buffer."...:group.'ledger)..
1b220 28 64 65 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 (defcustom.ledger-reports...'(("
1b240 62 61 6c 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 bal"."%(binary).-f.%(ledger-file
1b260 29 20 62 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 ).bal").....("reg"."%(binary).-f
1b280 20 25 28 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 .%(ledger-file).reg").....("paye
1b2a0 65 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 e"."%(binary).-f.%(ledger-file).
1b2c0 72 65 67 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 reg.@%(payee)").....("account"."
1b2e0 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 20 %(binary).-f.%(ledger-file).reg.
1b300 25 28 61 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 %(account)"))..."Definition.of.r
1b320 65 70 6f 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 eports.to.run...Each.element.has
1b340 20 74 68 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 .the.form.(NAME.CMDLINE)...The.c
1b360 6f 6d 6d 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 ommand.line.can.contain.format.s
1b380 70 65 63 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 pecifiers.that.are.replaced.with
1b3a0 20 63 6f 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 .context.sensitive.information..
1b3c0 20 46 6f 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 .Format.specifiers.have.the.form
1b3e0 61 74 20 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 at.'%(<name>)'.where.<name>.is.a
1b400 6e 20 69 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 n.identifier.for.the.information
1b420 20 74 6f 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 .to.be.replaced...The.`ledger-re
1b440 70 6f 72 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 port-format-specifiers'.alist.va
1b460 72 69 61 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 riable.contains.a.mapping.from.f
1b480 6f 72 6d 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 ormat.specifier.identifier.to.a.
1b4a0 4c 69 73 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 Lisp.function.that.implements.th
1b4c0 65 20 73 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 e.substitution...See.the.documen
1b4e0 74 61 74 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 tation.of.the.individual.functio
1b500 6e 73 0a 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 ns.in.that.variable.for.more.inf
1b520 6f 72 6d 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 ormation.on.the.behavior.of.each
1b540 0a 73 70 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 .specifier."...:type.'(repeat.(l
1b560 69 73 74 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 ist.(string.:tag."Report.Name").
1b580 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 69 6e 67 20 3a .......................(string.:
1b5a0 74 61 67 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 tag."Command.Line")))...:group.'
1b5c0 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 64 67 65 ledger-report)..(defcustom.ledge
1b5e0 72 2d 72 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 r-report-format-specifiers...'((
1b600 22 6c 65 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 "ledger-file"...ledger-report-le
1b620 64 67 65 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 dger-file-format-specifier).....
1b640 28 22 62 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 ("binary"...ledger-report-binary
1b660 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 70 61 79 65 65 22 20 -format-specifier).....("payee".
1b680 2e 20 6c 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 ..ledger-report-payee-format-spe
1b6a0 63 69 66 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 cifier).....("account"...ledger-
1b6c0 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 69 65 72 29 report-account-format-specifier)
1b6e0 0a 20 20 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 .....("month"...ledger-report-mo
1b700 6e 74 68 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 nth-format-specifier).....("tagn
1b720 61 6d 65 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 ame"...ledger-report-tagname-for
1b740 6d 61 74 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 mat-specifier).....("tagvalue"..
1b760 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 6f 72 6d 61 74 2d 73 .ledger-report-tagvalue-format-s
1b780 70 65 63 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 pecifier))..."An.alist.mapping.l
1b7a0 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
1b7c0 6f 20 69 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 o.implementing.functions...The.f
1b7e0 75 6e 63 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 unction.is.called.with.no.parame
1b800 74 65 72 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 ters.and.expected.to.return.a.st
1b820 72 69 6e 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 ring,.or.a.list.of.strings,.that
1b840 20 73 68 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 .should.replace.the.format.speci
1b860 66 69 65 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 fier..Single.strings.are.quoted.
1b880 77 69 74 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 with.`shell-quote-argument';.lis
1b8a0 74 73 20 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 ts.of.strings.are.simply.concate
1b8c0 6e 61 74 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 nated.(no.quoting)."...:type.'al
1b8e0 69 73 74 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 ist...:group.'ledger-report)..(d
1b900 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
1b920 65 73 68 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 esh.t..."If.non-nil,.automatical
1b940 6c 79 20 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 ly.rerun.the.report.when.the.led
1b960 67 65 72 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 ger.buffer.is.saved."...:type.'b
1b980 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 72 74 29 0a oolean...:group.'ledger-report).
1b9a0 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 61 75 74 6f 2d 72 .(defcustom.ledger-report-auto-r
1b9c0 65 66 72 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 efresh-sticky-cursor.nil..."If.n
1b9e0 6f 6e 2d 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 on-nil,.keep.cursor's.relative.p
1ba00 6f 73 69 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 osition.after.auto-refresh."...:
1ba20 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 2d 72 type.'boolean...:group.'ledger-r
1ba40 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 65 70 6f 72 74 eport)..(defcustom.ledger-report
1ba60 2d 6c 69 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 -links-in-register.t..."If.non-n
1ba80 69 6c 2c 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 il,.link.entries.in.\"register\"
1baa0 20 72 65 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 .reports.to.entries.in.the.ledge
1bac0 72 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 r.buffer."...:type.'boolean...:g
1bae0 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 6f 6d roup.'ledger-report)..(defcustom
1bb00 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 69 67 68 6c 69 .ledger-report-use-native-highli
1bb20 67 68 74 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 ghting.t..."When.non-nil,.use.le
1bb40 64 67 65 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 dger's.native.highlighting.in.re
1bb60 70 6f 72 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 ports."...:type.'boolean...:pack
1bb80 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
1bba0 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)..(
1bbc0 64 65 66 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 defcustom.ledger-report-native-h
1bbe0 69 67 68 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 ighlighting-arguments.'("--color
1bc00 22 20 22 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 "."--force-color")..."List.of.le
1bc20 64 67 65 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 dger.args.needed.by.`ledger-repo
1bc40 72 74 2d 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 rt-use-native-highlighting'...If
1bc60 20 79 6f 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 .you.are.using.hledger.instead.o
1bc80 66 20 6c 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 f.ledger,.you.might.want.to.set.
1bca0 74 68 69 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 this.variable.to.`(\"--color=alw
1bcc0 61 79 73 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 ays\")'."...:type.'(repeat.strin
1bce0 67 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 g)...:group.'ledger-report)..(de
1bd00 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 77 69 64 74 68 fcustom.ledger-report-auto-width
1bd20 20 74 0a 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 .t..."When.non-nil,.tell.ledger.
1bd40 61 62 6f 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 about.the.width.of.the.report.wi
1bd60 6e 64 6f 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 ndow."...:type.'boolean...:packa
1bd80 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 2e ge-version.'(ledger-mode..."4.0.
1bda0 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 64 0")...:group.'ledger-report)..(d
1bdc0 65 66 63 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 efcustom.ledger-report-use-heade
1bde0 72 2d 6c 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 r-line.nil..."If.non-nil,.indica
1be00 74 65 20 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 te.report.name/command.in.the.`h
1be20 65 61 64 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 eader-line'..The.report.name/com
1be40 6d 61 6e 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 mand.won't.be.printed.in.the.buf
1be60 66 65 72 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 fer...See.`ledger-report-header-
1be80 6c 69 6e 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 line-fn'.for.how.to.customize.th
1bea0 65 0a 69 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 e.information.reported."...:type
1bec0 20 27 62 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 .'boolean...:package-version.'(l
1bee0 65 64 67 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 edger-mode..."4.0.0")...:group.'
1bf00 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 64 67 65 ledger-report)..(defcustom.ledge
1bf20 72 2d 72 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 r-report-header-line-fn.#'ledger
1bf40 2d 72 65 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 -report--header-function..."Eval
1bf60 75 61 74 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 uate.this.function.in.the.`heade
1bf80 72 2d 6c 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 r-line'.of.the.report.buffer..`l
1bfa0 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 6e 65 27 20 6d 75 edger-report-use-header-line'.mu
1bfc0 73 74 20 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 st.be.non-nil.for.this.to.have.a
1bfe0 6e 79 20 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 ny.effect."...:type.'function...
1c000 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..
1c020 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 2d 72 65 70 6f 72 ."4.0.0")...:group.'ledger-repor
1c040 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 72 65 73 t)..(defcustom.ledger-report-res
1c060 69 7a 65 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 ize-window.t..."If.non-nil,.resi
1c080 7a 65 20 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 ze.the.report.window..Calls.`shr
1c0a0 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
1c0c0 27 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 '."...:type.'boolean...:package-
1c0e0 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")
1c100 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
1c120 75 73 74 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 ustom.ledger-report-use-strict.n
1c140 69 6c 0a 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 il..."When.non-nil,.`ledger-mode
1c160 27 20 77 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 '.will.use.--strict.when.running
1c180 20 72 65 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 .reports?"...:type.'boolean...:p
1c1a0 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 20 22 ackage-version.'(ledger-mode..."
1c1c0 34 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 4.0.0")...:group.'ledger-report)
1c1e0 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 61 66 74 65 72 ..(defcustom.ledger-report-after
1c200 2d 72 65 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 -report-hook.nil..."Hook.run.aft
1c220 65 72 20 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 er.`ledger-report'.has.created.t
1c240 68 65 20 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 he.buffer.and.report."...:type.'
1c260 62 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 boolean...:package-version.'(led
1c280 67 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 ger-mode..."4.0.0")...:group.'le
1c2a0 64 67 65 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 dger-report)..(defvar.ledger-rep
1c2c0 6f 72 74 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 ort-buffer-name."*Ledger.Report*
1c2e0 22 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 70 6f 72 74 2d ")..(defvar-local.ledger-report-
1c300 6e 61 6d 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 name.nil).(defvar-local.ledger-r
1c320 65 70 6f 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 eport-cmd.nil).(defvar-local.led
1c340 67 65 72 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 ger-report-saved.nil).(defvar-lo
1c360 63 61 6c 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 cal.ledger-report-current-month.
1c380 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 72 74 nil).(defvar-local.ledger-report
1c3a0 2d 69 73 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 -is-reversed.nil).(defvar-local.
1c3c0 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 75 6d 62 65 72 ledger-report-cursor-line-number
1c3e0 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 72 .nil).(defvar-local.ledger-repor
1c400 74 2d 6c 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 t-ledger-buf.nil).(defvar-local.
1c420 6c 65 64 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 ledger-master-file.nil..."The.ma
1c440 73 74 65 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 ster.file.for.the.current.buffer
1c460 2e 0a 53 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 ..See.documentation.for.the.func
1c480 74 69 6f 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 tion.`ledger-master-file'")..(de
1c4a0 66 76 61 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 fvar.ledger-report-name-prompt-h
1c4c0 69 73 74 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 istory.nil).(defvar.ledger-repor
1c4e0 74 2d 63 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 t-cmd-prompt-history.nil).(defva
1c500 72 20 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 20 6e 69 6c 29 r.ledger-minibuffer-history.nil)
1c520 0a 28 64 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 .(defvar.ledger-report-mode-abbr
1c540 65 76 2d 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 ev-table)..(defun.ledger-report-
1c560 72 65 76 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 reverse-report.()..."Reverse.the
1c580 20 6f 72 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 .order.of.the.report."...(intera
1c5a0 63 74 69 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 ctive)...(ledger-report-reverse-
1c5c0 6c 69 6e 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 lines)...(setq.ledger-report-is-
1c5e0 72 65 76 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 reversed.(not.ledger-report-is-r
1c600 65 76 65 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 eversed)))..(defun.ledger-report
1c620 2d 72 65 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 -reverse-lines.()..."Reverse.the
1c640 20 6c 69 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 .lines.in.the.ledger.report.buff
1c660 65 72 2e 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 er."...(with-silent-modification
1c680 73 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 s.....(goto-char.(point-min))...
1c6a0 20 20 28 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 ..(unless.ledger-report-use-head
1c6c0 65 72 2d 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 er-line.......(forward-paragraph
1c6e0 29 0a 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 28 73 61 76 ).......(forward-line)).....(sav
1c700 65 2d 65 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 e-excursion.......(reverse-regio
1c720 6e 20 28 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 n.(point).(point-max)))))..(defu
1c740 6e 20 6c 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 n.ledger-report-maybe-shrink-win
1c760 64 6f 77 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 dow.()..."Shrink.window.if.`ledg
1c780 65 72 2d 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 er-report-resize-window'.is.non-
1c7a0 6e 69 6c 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 nil."...(when.ledger-report-resi
1c7c0 7a 65 2d 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 ze-window.....(shrink-window-if-
1c7e0 6c 61 72 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 larger-than-buffer)))..(defvar.l
1c800 65 64 67 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 edger-report-mode-map...(let.((m
1c820 61 70 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 ap.(make-sparse-keymap))).....(d
1c840 65 66 69 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 efine-key.map.(kbd."r").#'ledger
1c860 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 2d 6b 65 79 20 6d 61 -report-redo).....(define-key.ma
1c880 70 20 28 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 p.(kbd."R").#'ledger-report-reve
1c8a0 72 73 65 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 rse-report).....(define-key.map.
1c8c0 28 6b 62 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 (kbd."s").#'ledger-report-save).
1c8e0 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 53 22 29 20 23 27 ....(define-key.map.(kbd."S").#'
1c900 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 79 20 6d ledger-report).....(define-key.m
1c920 61 70 20 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 ap.(kbd."e").#'ledger-report-edi
1c940 74 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 t-report).....(define-key.map.(k
1c960 62 64 20 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 bd."E").#'ledger-report-edit-rep
1c980 6f 72 74 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 orts).....(define-key.map.(kbd."
1c9a0 71 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 q").#'ledger-report-quit).....(d
1c9c0 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 6c 20 43 2d 72 22 efine-key.map.(kbd."C-c.C-l.C-r"
1c9e0 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
1ca00 69 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 53 2d 73 22 ine-key.map.(kbd."C-c.C-l.C-S-s"
1ca20 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 20 28 64 65 66 ).#'ledger-report-save).....(def
1ca40 69 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 65 22 29 20 ine-key.map.(kbd."C-c.C-l.C-e").
1ca60 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)....
1ca80 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
1caa0 2d 72 22 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 -r").#'ledger-report).....(defin
1cac0 65 2d 6b 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 e-key.map.(kbd."M-p").#'ledger-r
1cae0 65 70 6f 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 eport-previous-month).....(defin
1cb00 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 67 65 72 2d 72 e-key.map.(kbd."M-n").#'ledger-r
1cb20 65 70 6f 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 eport-next-month).....(define-ke
1cb40 79 20 6d 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 y.map.(kbd."$").#'ledger-report-
1cb60 74 6f 67 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 toggle-default-commodity).....ma
1cb80 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 65 70 6f 72 74 2d p)..."Keymap.for.`ledger-report-
1cba0 6d 6f 64 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 mode'.")..(easy-menu-define.ledg
1cbc0 65 72 2d 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 er-report-mode-menu.ledger-repor
1cbe0 74 2d 6d 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 t-mode-map..."Ledger.report.menu
1cc00 2e 22 0a 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 ."...'("Reports".....["Select.Re
1cc20 70 6f 72 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 port".ledger-report].....["Save.
1cc40 52 65 70 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 Report".ledger-report-save].....
1cc60 5b 22 45 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 ["Edit.Current.Report".ledger-re
1cc80 70 6f 72 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 port-edit-report].....["Edit.All
1cca0 20 52 65 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 .Reports".ledger-report-edit-rep
1ccc0 6f 72 74 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 orts].....["Re-run.Report".ledge
1cce0 72 2d 72 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 r-report-redo]....."---".....["R
1cd00 65 76 65 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 everse.report.order".ledger-repo
1cd20 72 74 2d 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 rt-reverse-report]....."---"....
1cd40 20 5b 22 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 .["Scroll.Up".scroll-up].....["V
1cd60 69 73 69 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 isit.Source".ledger-report-visit
1cd80 2d 73 6f 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 -source].....["Scroll.Down".scro
1cda0 6c 6c 2d 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 ll-down]....."---".....["Quit".l
1cdc0 65 64 67 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 edger-report-quit].....))..(defi
1cde0 6e 65 2d 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 ne-derived-mode.ledger-report-mo
1ce00 64 65 20 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 de.special-mode."Ledger-Report".
1ce20 20 20 22 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 .."A.mode.for.viewing.ledger.rep
1ce40 6f 72 74 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 orts."...(setq-local.revert-buff
1ce60 65 72 2d 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 er-function.#'ledger-report-redo
1ce80 29 0a 20 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 )...(hack-dir-local-variables-no
1cea0 6e 2d 66 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 n-file-buffer))..(defconst.ledge
1cec0 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 20 22 5b 5b 6c r-report--extra-args-marker."[[l
1cee0 65 64 67 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 edger-mode-flags]]")..(defun.led
1cf00 67 65 72 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 ger-report-binary-format-specifi
1cf20 65 72 20 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 er.()..."Return.the.path.to.ledg
1cf40 65 72 2c 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 er,.plus.a.marker.for.extra.argu
1cf60 6d 65 6e 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 ments."...(list.(shell-quote-arg
1cf80 75 6d 65 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 ument.ledger-binary-path).......
1cfa0 20 20 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 61 72 6b ..ledger-report--extra-args-mark
1cfc0 65 72 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 61 67 6e 61 er))..(defun.ledger-report-tagna
1cfe0 6d 65 2d 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 me-format-specifier.()..."Return
1d000 20 61 20 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 .a.valid.meta-data.tag.name."...
1d020 3b 3b 20 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 ;;.It.is.intended.completion.sho
1d040 75 6c 64 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 uld.be.available.on.existing.tag
1d060 0a 20 20 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 ...;;.names,.but.it.remains.to.b
1d080 65 20 69 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 e.implemented....(ledger-read-st
1d0a0 72 69 6e 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 ring-with-default."Tag.Name".nil
1d0c0 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 61 67 76 61 6c 75 ))..(defun.ledger-report-tagvalu
1d0e0 65 2d 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 e-format-specifier.()..."Return.
1d100 61 20 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 a.valid.meta-data.tag.name."...;
1d120 3b 20 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 ;.It.is.intended.completion.shou
1d140 6c 64 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 ld.be.available.on.existing.tag.
1d160 20 20 3b 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 ..;;.values,.but.it.remains.to.b
1d180 65 20 69 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 e.implemented....(ledger-read-st
1d1a0 72 69 6e 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 ring-with-default."Tag.Value".ni
1d1c0 6c 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 61 64 2d 6e l))..(defun.ledger-report-read-n
1d1e0 61 6d 65 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 ame.()..."Read.the.name.of.a.led
1d200 67 65 72 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 ger.report.to.use,.with.completi
1d220 6f 6e 2e 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 on...The.empty.string.and.unknow
1d240 6e 20 6e 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 n.names.are.allowed."...(complet
1d260 69 6e 67 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 ing-read."Report.name:."........
1d280 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 73 20 6e 69 6c 20 6e ............ledger-reports.nil.n
1d2a0 69 6c 20 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 il.nil....................'ledge
1d2c0 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 6f 72 79 20 6e 69 6c r-report-name-prompt-history.nil
1d2e0 29 29 0a 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 ))..(defun.ledger-report.(report
1d300 2d 6e 61 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 -name.edit)..."Run.a.user-specif
1d320 69 65 64 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 ied.report.from.`ledger-reports'
1d340 2e 0a 0a 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 ...Prompts.the.user.for.the.REPO
1d360 52 54 2d 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 RT-NAME.of.the.report.to.run.or.
1d380 45 44 49 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 EDIT...If.no.name.is.entered,.th
1d3a0 65 20 75 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 e.user.will.be.prompted.for.a.co
1d3c0 6d 6d 61 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 mmand.line.to.run...The.command.
1d3e0 6c 69 6e 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 line.specified.or.associated.wit
1d400 68 20 74 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 h.the.selected.report.name.is.ru
1d420 6e 20 61 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 n.and.the.output.is.made.availab
1d440 6c 65 20 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 le.in.another.buffer.for.viewing
1d460 2e 20 20 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 ...If.a.prefix.argument.is.given
1d480 20 61 6e 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 .and.the.user.selects.a.valid.re
1d4a0 70 6f 72 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 port.name,.the.user.is.prompted.
1d4c0 77 69 74 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 with.the.corresponding.command.l
1d4e0 69 6e 65 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 ine.for.editing.before.the.comma
1d500 6e 64 20 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 nd.is.run...The.output.buffer.wi
1d520 6c 6c 20 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 ll.be.in.`ledger-report-mode',.w
1d540 68 69 63 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 hich.defines.commands.for.saving
1d560 20 61 20 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 .a.new.named.report.based.on.the
1d580 20 63 6f 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 .command.line.used.to.generate.t
1d5a0 68 65 20 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 he.buffer,.navigating.the.buffer
1d5c0 2c 20 65 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 ,.etc."...(interactive....(progn
1d5e0 0a 20 20 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 ......(when.(and.(buffer-modifie
1d600 64 2d 70 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 d-p).................(y-or-n-p."
1d620 42 75 66 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 Buffer.modified,.save.it?."))...
1d640 20 20 20 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 .....(save-buffer))......(let.((
1d660 72 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 61 6d 65 29 29 rname.(ledger-report-read-name))
1d680 0a 20 20 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 ............(edit.(not.(null.cur
1d6a0 72 65 6e 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 rent-prefix-arg))))........(list
1d6c0 20 72 6e 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 .rname.edit))))...(let*.((file.(
1d6e0 6c 65 64 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 ledger-master-file))..........(b
1d700 75 66 20 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 uf.(find-file-noselect.file)))..
1d720 20 20 20 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 ...(with-current-buffer.........
1d740 28 70 6f 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 (pop-to-buffer.(get-buffer-creat
1d760 65 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 29 29 0a 20 20 e.ledger-report-buffer-name))...
1d780 20 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 ....(with-silent-modifications..
1d7a0 20 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 .......(erase-buffer).........(l
1d7c0 65 64 67 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 edger-report-mode).........(setq
1d7e0 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 0a 20 20 20 20 20 20 .ledger-report-saved.nil).......
1d800 20 20 28 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 ..(setq.ledger-report-ledger-buf
1d820 20 62 75 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 .buf).........(setq.ledger-repor
1d840 74 2d 6e 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 t-name.report-name).........(set
1d860 71 20 6c 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 q.ledger-report-is-reversed.nil)
1d880 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 63 75 72 .........(setq.ledger-report-cur
1d8a0 72 65 6e 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 rent-month.nil).........(setq.le
1d8c0 64 67 65 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 dger-master-file.file).........(
1d8e0 6c 65 64 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 ledger-do-report.(ledger-report-
1d900 63 6d 64 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 cmd.report-name.edit))).......(l
1d920 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
1d940 29 0a 20 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 ).......(run-hooks.'ledger-repor
1d960 74 2d 61 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 t-after-report-hook).......(mess
1d980 61 67 65 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 age.(substitute-command-keys.(co
1d9a0 6e 63 61 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 ncat."\\[ledger-report-quit].to.
1d9c0 71 75 69 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 quit;.".........................
1d9e0 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 5c 5c 5b 6c 65 64 67 ........................"\\[ledg
1da00 65 72 2d 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 er-report-redo].to.redo;."......
1da20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1da40 20 20 20 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 ..........."\\[ledger-report-edi
1da60 74 2d 72 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 t-report].to.edit;."............
1da80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1daa0 20 20 20 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 ....."\\[ledger-report-save].to.
1dac0 73 61 76 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 save;.".........................
1dae0 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 5c 5c 5b 73 63 72 6f ........................"\\[scro
1db00 6c 6c 2d 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 ll-up-command].and.\\[scroll-dow
1db20 6e 2d 63 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 n-command].to.scroll"))))))..(de
1db40 66 75 6e 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 fun.ledger-report--header-functi
1db60 6f 6e 20 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 on.()..."Compute.the.string.to.b
1db80 65 20 75 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 e.used.as.the.header.in.the.`led
1dba0 67 65 72 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 ger-report'.buffer."...(format."
1dbc0 4c 65 64 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 Ledger.Report:.%s.--.Buffer:.%s.
1dbe0 2d 2d 20 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 --.Command:.%s"...........(prope
1dc00 72 74 69 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 rtize.ledger-report-name.'face.'
1dc20 66 6f 6e 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 font-lock-constant-face)........
1dc40 20 20 20 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 ...(propertize.(buffer-name.ledg
1dc60 65 72 2d 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 er-report-ledger-buf).'face.'fon
1dc80 74 2d 6c 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 t-lock-string-face)...........(p
1dca0 72 6f 70 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 ropertize.ledger-report-cmd.'fac
1dcc0 65 20 27 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 e.'font-lock-comment-face)))..(d
1dce0 65 66 75 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 efun.ledger-report-name-exists.(
1dd00 6e 61 6d 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 name)..."Check.to.see.if.the.giv
1dd20 65 6e 20 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 en.report.NAME.exists...If.exist
1dd40 73 2c 20 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 s,.returns.the.object.naming.the
1dd60 20 72 65 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 .report,.otherwise.returns.nil."
1dd80 0a 20 20 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 ...(unless.(string-empty-p.name)
1dda0 0a 20 20 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 .....(car.(assoc.name.ledger-rep
1ddc0 6f 72 74 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 orts))))..(defun.ledger-reports-
1dde0 61 64 64 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 add.(name.cmd)..."Add.a.new.repo
1de00 72 74 20 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 rt.NAME.and.CMD.to.`ledger-repor
1de20 74 73 27 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 ts'."...(setq.ledger-reports.(co
1de40 6e 73 20 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 ns.(list.name.cmd).ledger-report
1de60 73 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 63 75 73 74 s)))..(defun.ledger-reports-cust
1de80 6f 6d 2d 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 om-save.()..."Save.the.`ledger-r
1dea0 65 70 6f 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 eports'.variable.using.the.custo
1dec0 6d 69 7a 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 mize.framework."...(customize-sa
1dee0 76 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 20 6c 65 64 67 ve-variable.'ledger-reports.ledg
1df00 65 72 2d 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 er-reports))..(defun.ledger-repo
1df20 72 74 2d 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 rt-read-command.(report-cmd)..."
1df40 52 65 61 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 Read.the.command.line.to.create.
1df60 61 20 72 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 a.report.from.REPORT-CMD."...(re
1df80 61 64 2d 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 ad-from-minibuffer."Report.comma
1dfa0 6e 64 20 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 nd.line:."......................
1dfc0 20 20 20 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 ...(if.(null.report-cmd)."ledger
1dfe0 20 22 20 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 .".report-cmd)..................
1e000 20 20 20 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 .......nil.nil.'ledger-report-cm
1e020 64 2d 70 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 d-prompt-history))..(defun.ledge
1e040 72 2d 72 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 r-report-ledger-file-format-spec
1e060 69 66 69 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 ifier.()..."Substitute.the.full.
1e080 70 61 74 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 path.to.master.or.current.ledger
1e0a0 20 66 69 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 .file...The.master.file.name.is.
1e0c0 64 65 74 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 determined.by.the.function.`ledg
1e0e0 65 72 2d 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 er-master-file',.which.depends.o
1e100 6e 20 74 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 n.the.variable.of.the.same.name.
1e120 20 20 49 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 ..If.it.is.non-nil,.it.is.used,.
1e140 6f 74 68 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 otherwise.the.current.buffer's.f
1e160 69 6c 65 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 ile.is.used."...(ledger-master-f
1e180 69 6c 65 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 ile))..;;.General.helper.functio
1e1a0 6e 73 0a 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 ns..(defun.ledger-master-file.()
1e1c0 0a 20 20 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 ..."Return.the.master.file.for.a
1e1e0 20 6c 65 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 .ledger.file...The.master.file.i
1e200 73 20 65 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 s.either.the.file.for.the.curren
1e220 74 20 6c 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 t.ledger.buffer.or.the.file.spec
1e240 69 66 69 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 ified.by.the.buffer-local.variab
1e260 6c 65 0a 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 le.`ledger-master-file'...Typica
1e280 6c 6c 79 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 lly.this.variable.would.be.set.i
1e2a0 6e 20 61 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 n.a.file.local.variable.comment.
1e2c0 62 6c 6f 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 block.at.the.end.of.a.ledger.fil
1e2e0 65 0a 77 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 e.which.is.included.in.some.othe
1e300 72 20 66 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 r.file."...(if.ledger-master-fil
1e320 65 0a 20 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 e.......(expand-file-name.ledger
1e340 2d 6d 61 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 -master-file).....(buffer-file-n
1e360 61 6d 65 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 ame)))..(defun.ledger-report-pay
1e380 65 65 2d 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 ee-format-specifier.()..."Substi
1e3a0 74 75 74 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 tute.a.payee.name...The.user.is.
1e3c0 70 72 6f 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 prompted.to.enter.a.payee.and.th
1e3e0 61 74 20 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 at.is.substituted..If.point.is.i
1e400 6e 20 61 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 n.an.xact,.the.payee.for.that.xa
1e420 63 74 20 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 28 6c ct.is.used.as.the.default."...(l
1e440 65 64 67 65 72 2d 72 65 61 64 2d 70 61 79 65 65 2d 77 69 74 68 2d 70 72 6f 6d 70 74 20 22 50 61 edger-read-payee-with-prompt."Pa
1e460 79 65 65 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 61 63 63 yee"))..(defun.ledger-report-acc
1e480 6f 75 6e 74 2d 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 ount-format-specifier.()..."Subs
1e4a0 74 69 74 75 74 65 20 61 6e 20 61 63 63 6f 75 6e 74 20 6e 61 6d 65 2e 0a 0a 54 68 65 20 75 73 65 titute.an.account.name...The.use
1e4c0 72 20 69 73 20 70 72 6f 6d 70 74 65 64 20 74 6f 20 65 6e 74 65 72 20 61 6e 20 61 63 63 6f 75 6e r.is.prompted.to.enter.an.accoun
1e4e0 74 20 6e 61 6d 65 2c 20 77 68 69 63 68 20 63 61 6e 20 62 65 20 61 6e 79 0a 72 65 67 75 6c 61 72 t.name,.which.can.be.any.regular
1e500 20 65 78 70 72 65 73 73 69 6f 6e 20 69 64 65 6e 74 69 66 79 69 6e 67 20 61 6e 20 61 63 63 6f 75 .expression.identifying.an.accou
1e520 6e 74 2e 20 20 49 66 20 70 6f 69 6e 74 20 69 73 20 6f 6e 20 61 6e 0a 61 63 63 6f 75 6e 74 20 70 nt...If.point.is.on.an.account.p
1e540 6f 73 74 69 6e 67 20 6c 69 6e 65 20 66 6f 72 20 61 6e 20 78 61 63 74 2c 20 74 68 65 20 66 75 6c osting.line.for.an.xact,.the.ful
1e560 6c 20 61 63 63 6f 75 6e 74 20 6e 61 6d 65 20 6f 6e 20 74 68 61 74 0a 6c 69 6e 65 20 69 73 20 74 l.account.name.on.that.line.is.t
1e580 68 65 20 64 65 66 61 75 6c 74 2e 22 0a 20 20 28 6c 65 64 67 65 72 2d 72 65 61 64 2d 61 63 63 6f he.default."...(ledger-read-acco
1e5a0 75 6e 74 2d 77 69 74 68 2d 70 72 6f 6d 70 74 20 22 41 63 63 6f 75 6e 74 22 29 29 0a 0a 28 64 65 unt-with-prompt."Account"))..(de
1e5c0 66 75 6e 20 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 fun.ledger-report--current-month
1e5e0 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 63 75 72 72 65 6e 74 20 6d 6f 6e 74 68 20 61 73 20 28 .()..."Return.current.month.as.(
1e600 59 45 41 52 20 2e 20 4d 4f 4e 54 48 2d 49 4e 44 45 58 29 2e 0a 0a 4d 4f 4e 54 48 2d 49 4e 44 45 YEAR...MONTH-INDEX)...MONTH-INDE
1e620 58 20 72 61 6e 67 65 73 20 66 72 6f 6d 20 31 20 28 4a 61 6e 75 61 72 79 29 20 74 6f 20 31 32 20 X.ranges.from.1.(January).to.12.
1e640 28 44 65 63 65 6d 62 65 72 29 20 61 6e 64 20 59 45 41 52 20 69 73 0a 61 20 6e 75 6d 62 65 72 2e (December).and.YEAR.is.a.number.
1e660 22 0a 20 20 28 6c 65 74 2a 20 28 28 74 69 6d 65 2d 70 61 72 74 73 20 28 64 65 63 6f 64 65 2d 74 "...(let*.((time-parts.(decode-t
1e680 69 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 79 65 61 72 20 28 6e 74 68 20 35 20 74 69 6d 65 ime))..........(year.(nth.5.time
1e6a0 2d 70 61 72 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 6d 6f 6e 74 68 2d 69 6e 64 65 78 20 28 -parts))..........(month-index.(
1e6c0 6e 74 68 20 34 20 74 69 6d 65 2d 70 61 72 74 73 29 29 29 0a 20 20 20 20 28 63 6f 6e 73 20 79 65 nth.4.time-parts))).....(cons.ye
1e6e0 61 72 20 6d 6f 6e 74 68 2d 69 6e 64 65 78 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 ar.month-index)))..(defun.ledger
1e700 2d 72 65 70 6f 72 74 2d 2d 6e 6f 72 6d 61 6c 69 7a 65 2d 6d 6f 6e 74 68 20 28 6d 6f 6e 74 68 29 -report--normalize-month.(month)
1e720 0a 20 20 22 52 65 74 75 72 6e 20 28 59 45 41 52 20 2e 20 4e 45 57 2d 4d 4f 4e 54 48 29 20 77 68 ..."Return.(YEAR...NEW-MONTH).wh
1e740 65 72 65 20 4e 45 57 2d 4d 4f 4e 54 48 20 69 73 20 62 65 74 77 65 65 6e 20 31 20 61 6e 64 20 31 ere.NEW-MONTH.is.between.1.and.1
1e760 32 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 59 45 41 52 20 2e 2...MONTH.is.of.the.form.(YEAR..
1e780 20 49 4e 44 45 58 29 20 77 68 65 72 65 20 49 4e 44 45 58 20 69 73 20 61 6e 20 69 6e 74 65 67 65 .INDEX).where.INDEX.is.an.intege
1e7a0 72 2e 0a 54 68 65 20 70 75 72 70 6f 73 65 20 6f 66 20 74 68 69 73 20 6d 65 74 68 6f 64 20 69 73 r..The.purpose.of.this.method.is
1e7c0 20 74 68 65 6e 20 74 6f 20 63 6f 6e 76 65 72 74 20 61 6e 79 20 79 65 61 72 2f 6d 6f 6e 74 68 20 .then.to.convert.any.year/month.
1e7e0 70 61 69 72 0a 74 6f 20 61 20 6d 65 61 6e 69 6e 67 66 75 6c 20 64 61 74 65 2c 20 65 2e 67 2e 2c pair.to.a.meaningful.date,.e.g.,
1e800 20 66 72 6f 6d 20 28 32 30 31 38 20 2e 20 2d 32 29 20 74 6f 20 28 32 30 31 37 20 2e 20 31 30 29 .from.(2018...-2).to.(2017...10)
1e820 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6d 6f 6e 74 68 2d 69 6e 64 65 78 20 28 63 64 72 20 6d 6f ."...(let*.((month-index.(cdr.mo
1e840 6e 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 28 79 65 61 72 2d 73 68 69 66 74 20 20 28 2f 20 28 nth))..........(year-shift..(/.(
1e860 31 2d 20 6d 6f 6e 74 68 2d 69 6e 64 65 78 29 20 31 32 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 1-.month-index).12))).....(when.
1e880 28 3c 3d 20 6d 6f 6e 74 68 2d 69 6e 64 65 78 20 30 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 79 (<=.month-index.0).......(setq.y
1e8a0 65 61 72 2d 73 68 69 66 74 20 28 31 2d 20 79 65 61 72 2d 73 68 69 66 74 29 29 29 0a 20 20 20 20 ear-shift.(1-.year-shift))).....
1e8c0 28 63 6f 6e 73 20 28 2b 20 28 63 61 72 20 6d 6f 6e 74 68 29 20 79 65 61 72 2d 73 68 69 66 74 29 (cons.(+.(car.month).year-shift)
1e8e0 0a 20 20 20 20 20 20 20 20 20 20 28 31 2b 20 28 6d 6f 64 20 28 31 2d 20 6d 6f 6e 74 68 2d 69 6e ...........(1+.(mod.(1-.month-in
1e900 64 65 78 29 20 31 32 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 dex).12)))))..(defun.ledger-repo
1e920 72 74 2d 2d 73 68 69 66 74 2d 6d 6f 6e 74 68 20 28 6d 6f 6e 74 68 20 73 68 69 66 74 29 0a 20 20 rt--shift-month.(month.shift)...
1e940 22 52 65 74 75 72 6e 20 28 59 45 41 52 20 2e 20 4e 45 57 2d 4d 4f 4e 54 48 29 20 77 68 65 72 65 "Return.(YEAR...NEW-MONTH).where
1e960 20 4e 45 57 2d 4d 4f 4e 54 48 20 69 73 20 4d 4f 4e 54 48 2b 53 48 49 46 54 2e 0a 0a 4d 4f 4e 54 .NEW-MONTH.is.MONTH+SHIFT...MONT
1e980 48 20 69 73 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 28 59 45 41 52 20 2e 20 49 4e 44 45 58 29 20 H.is.of.the.form.(YEAR...INDEX).
1e9a0 77 68 65 72 65 20 49 4e 44 45 58 20 72 61 6e 67 65 73 20 66 72 6f 6d 0a 31 20 28 4a 61 6e 75 61 where.INDEX.ranges.from.1.(Janua
1e9c0 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 52 20 69 73 ry).to.12.(December).and.YEAR.is
1e9e0 20 61 20 6e 75 6d 62 65 72 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 79 65 61 72 20 28 63 61 72 20 .a.number."...(let*.((year.(car.
1ea00 6d 6f 6e 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 28 6e 65 77 2d 6d 6f 6e 74 68 20 28 2b 20 28 month))..........(new-month.(+.(
1ea20 63 64 72 20 6d 6f 6e 74 68 29 20 73 68 69 66 74 29 29 29 0a 20 20 20 20 28 6c 65 64 67 65 72 2d cdr.month).shift))).....(ledger-
1ea40 72 65 70 6f 72 74 2d 2d 6e 6f 72 6d 61 6c 69 7a 65 2d 6d 6f 6e 74 68 20 28 63 6f 6e 73 20 79 65 report--normalize-month.(cons.ye
1ea60 61 72 20 6e 65 77 2d 6d 6f 6e 74 68 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d ar.new-month))))..(defun.ledger-
1ea80 72 65 70 6f 72 74 2d 6d 6f 6e 74 68 2d 66 6f 72 6d 61 74 2d 73 70 65 63 69 66 69 65 72 20 28 29 report-month-format-specifier.()
1eaa0 0a 20 20 22 53 75 62 73 74 69 74 75 74 65 20 63 75 72 72 65 6e 74 20 6d 6f 6e 74 68 2e 22 0a 20 ..."Substitute.current.month."..
1eac0 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 6f 72 20 6c 65 64 67 65 72 .(with-current-buffer.(or.ledger
1eae0 2d 72 65 70 6f 72 74 2d 62 75 66 66 65 72 2d 6e 61 6d 65 20 28 63 75 72 72 65 6e 74 2d 62 75 66 -report-buffer-name.(current-buf
1eb00 66 65 72 29 29 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 6d 6f 6e 74 68 20 28 6f 72 20 6c 65 64 67 fer)).....(let*.((month.(or.ledg
1eb20 65 72 2d 72 65 70 6f 72 74 2d 63 75 72 72 65 6e 74 2d 6d 6f 6e 74 68 20 28 6c 65 64 67 65 72 2d er-report-current-month.(ledger-
1eb40 72 65 70 6f 72 74 2d 2d 63 75 72 72 65 6e 74 2d 6d 6f 6e 74 68 29 29 29 0a 20 20 20 20 20 20 20 report--current-month)))........
1eb60 20 20 20 20 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 ....(year.(car.month))..........
1eb80 20 20 28 6d 6f 6e 74 68 2d 69 6e 64 65 78 20 28 63 64 72 20 6d 6f 6e 74 68 29 29 29 0a 20 20 20 ..(month-index.(cdr.month)))....
1eba0 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 2d 25 73 22 20 79 65 61 72 20 6d 6f 6e 74 68 2d 69 6e ...(format."%s-%s".year.month-in
1ebc0 64 65 78 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 65 78 dex))))..(defun.ledger-report-ex
1ebe0 70 61 6e 64 2d 66 6f 72 6d 61 74 2d 73 70 65 63 69 66 69 65 72 73 20 28 72 65 70 6f 72 74 2d 63 pand-format-specifiers.(report-c
1ec00 6d 64 29 0a 20 20 22 45 78 70 61 6e 64 20 66 6f 72 6d 61 74 20 73 70 65 63 69 66 69 65 72 73 20 md)..."Expand.format.specifiers.
1ec20 69 6e 20 52 45 50 4f 52 54 2d 43 4d 44 20 77 69 74 68 20 74 68 69 6e 67 20 75 6e 64 65 72 20 70 in.REPORT-CMD.with.thing.under.p
1ec40 6f 69 6e 74 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 oint."...(save-match-data.....(l
1ec60 65 74 20 28 28 65 78 70 61 6e 64 65 64 2d 63 6d 64 20 72 65 70 6f 72 74 2d 63 6d 64 29 29 0a 20 et.((expanded-cmd.report-cmd))..
1ec80 20 20 20 20 20 28 73 65 74 2d 6d 61 74 63 68 2d 64 61 74 61 20 28 6c 69 73 74 20 30 20 30 29 29 .....(set-match-data.(list.0.0))
1eca0 0a 20 20 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 25 28 5c .......(while.(string-match."%(\
1ecc0 5c 28 5b 5e 29 5d 2a 5c 5c 29 29 22 20 65 78 70 61 6e 64 65 64 2d 63 6d 64 0a 20 20 20 20 20 20 \([^)]*\\))".expanded-cmd.......
1ece0 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 6e .....................(if.(>.(len
1ed00 67 74 68 20 65 78 70 61 6e 64 65 64 2d 63 6d 64 29 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 gth.expanded-cmd).(match-end.0))
1ed20 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 ................................
1ed40 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (match-end.0)...................
1ed60 20 20 20 20 20 20 20 20 20 20 20 28 31 2d 20 28 6c 65 6e 67 74 68 20 65 78 70 61 6e 64 65 64 2d ...........(1-.(length.expanded-
1ed80 63 6d 64 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 73 70 65 63 69 66 69 65 cmd)))).........(let*.((specifie
1eda0 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 20 65 78 70 61 6e 64 65 64 2d 63 6d 64 29 29 r.(match-string.1.expanded-cmd))
1edc0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 20 28 63 64 72 20 28 61 73 73 6f 63 20 73 ................(f.(cdr.(assoc.s
1ede0 70 65 63 69 66 69 65 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 66 6f 72 6d 61 74 2d 73 70 pecifier.ledger-report-format-sp
1ee00 65 63 69 66 69 65 72 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 66 0a 20 20 20 ecifiers))))...........(if.f....
1ee20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 61 72 67 20 28 73 61 76 65 2d 6d 61 74 ...........(let*.((arg.(save-mat
1ee40 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.........................
1ee60 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 2d ....(with-current-buffer.ledger-
1ee80 72 65 70 6f 72 74 2d 6c 65 64 67 65 72 2d 62 75 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 report-ledger-buf...............
1eea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 66 29 29 29 29 0a 20 ................(funcall.f))))..
1eec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 71 75 6f 74 65 64 20 28 69 66 20 ....................(quoted.(if.
1eee0 28 6c 69 73 74 70 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 (listp.arg).....................
1ef00 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 20 23 27 69 64 65 6e 74 69 .............(mapconcat.#'identi
1ef20 74 79 20 61 72 67 20 22 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ty.arg.".").....................
1ef40 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 61 0a 20 20 20 20 ...........(save-match-data.....
1ef60 20 20 20 20 20 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 68 .............................(sh
1ef80 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 20 61 72 67 29 29 29 29 29 0a 20 20 20 20 ell-quote-argument.arg))))).....
1efa0 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65 78 70 61 6e 64 65 64 2d 63 6d 64 20 28 ............(setq.expanded-cmd.(
1efc0 72 65 70 6c 61 63 65 2d 6d 61 74 63 68 20 71 75 6f 74 65 64 20 74 20 74 20 65 78 70 61 6e 64 65 replace-match.quoted.t.t.expande
1efe0 64 2d 63 6d 64 29 29 29 29 29 29 0a 20 20 20 20 20 20 65 78 70 61 6e 64 65 64 2d 63 6d 64 29 29 d-cmd)))))).......expanded-cmd))
1f000 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 63 6d 64 2d 6e 65 65 )..(defun.ledger-report--cmd-nee
1f020 64 73 2d 6c 69 6e 6b 73 2d 70 20 28 63 6d 64 29 0a 20 20 22 43 68 65 63 6b 20 6c 69 6e 6b 73 20 ds-links-p.(cmd)..."Check.links.
1f040 73 68 6f 75 6c 64 20 62 65 20 61 64 64 65 64 20 74 6f 20 74 68 65 20 72 65 70 6f 72 74 20 70 72 should.be.added.to.the.report.pr
1f060 6f 64 75 63 65 64 20 62 79 20 43 4d 44 2e 22 0a 20 20 3b 3b 20 2d 2d 73 75 62 74 6f 74 61 6c 20 oduced.by.CMD."...;;.--subtotal.
1f080 72 65 70 6f 72 74 73 20 64 6f 20 6e 6f 74 20 70 72 6f 64 75 63 65 20 69 64 65 6e 74 69 66 69 61 reports.do.not.produce.identifia
1f0a0 62 6c 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 2c 20 73 6f 0a 20 20 3b 3b 20 64 6f 6e 27 74 20 ble.transactions,.so...;;.don't.
1f0c0 70 72 65 70 65 6e 64 20 6c 6f 63 61 74 69 6f 6e 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 6f 72 prepend.location.information.for
1f0e0 20 74 68 65 6d 0a 20 20 28 61 6e 64 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5c 5c 3c 72 .them...(and.(string-match."\\<r
1f100 65 67 5c 5c 28 69 73 74 65 72 5c 5c 29 3f 5c 5c 3e 22 20 63 6d 64 29 0a 20 20 20 20 20 20 20 6c eg\\(ister\\)?\\>".cmd)........l
1f120 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6c 69 6e 6b 73 2d 69 6e 2d 72 65 67 69 73 74 65 72 0a 20 edger-report-links-in-register..
1f140 20 20 20 20 20 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 2d 2d 73 75 62 74 ......(not.(string-match."--subt
1f160 6f 74 61 6c 22 20 63 6d 64 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 otal".cmd))))..(defun.ledger-rep
1f180 6f 72 74 2d 2d 63 6f 6d 70 75 74 65 2d 65 78 74 72 61 2d 61 72 67 73 20 28 72 65 70 6f 72 74 2d ort--compute-extra-args.(report-
1f1a0 63 6d 64 29 0a 20 20 22 43 6f 6d 70 75 74 65 20 65 78 74 72 61 20 61 72 67 73 20 74 6f 20 61 64 cmd)..."Compute.extra.args.to.ad
1f1c0 64 20 74 6f 20 52 45 50 4f 52 54 2d 43 4d 44 2e 22 0a 20 20 60 28 2c 40 28 77 68 65 6e 20 28 6c d.to.REPORT-CMD."...`(,@(when.(l
1f1e0 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 73 2d 70 20 edger-report--cmd-needs-links-p.
1f200 72 65 70 6f 72 74 2d 63 6d 64 29 0a 20 20 20 20 20 20 20 20 27 28 22 2d 2d 70 72 65 70 65 6e 64 report-cmd).........'("--prepend
1f220 2d 66 6f 72 6d 61 74 3d 25 28 66 69 6c 65 6e 61 6d 65 29 3a 25 28 62 65 67 5f 6c 69 6e 65 29 3a -format=%(filename):%(beg_line):
1f240 22 29 29 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 61 75 ")).....,@(when.ledger-report-au
1f260 74 6f 2d 77 69 64 74 68 0a 20 20 20 20 20 20 20 20 60 28 22 2d 2d 63 6f 6c 75 6d 6e 73 22 20 2c to-width.........`("--columns".,
1f280 28 66 6f 72 6d 61 74 20 22 25 64 22 20 28 77 69 6e 64 6f 77 2d 6d 61 78 2d 63 68 61 72 73 2d 70 (format."%d".(window-max-chars-p
1f2a0 65 72 2d 6c 69 6e 65 29 29 29 29 0a 20 20 20 20 2c 40 28 77 68 65 6e 20 6c 65 64 67 65 72 2d 72 er-line)))).....,@(when.ledger-r
1f2c0 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 69 6e 67 0a 20 20 eport-use-native-highlighting...
1f2e0 20 20 20 20 20 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 6c ......ledger-report-native-highl
1f300 69 67 68 74 69 6e 67 2d 61 72 67 75 6d 65 6e 74 73 29 0a 20 20 20 20 2c 40 28 77 68 65 6e 20 6c ighting-arguments).....,@(when.l
1f320 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 75 73 65 2d 73 74 72 69 63 74 0a 20 20 20 20 20 20 20 20 edger-report-use-strict.........
1f340 27 28 22 2d 2d 73 74 72 69 63 74 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d '("--strict"))))..(defun.ledger-
1f360 72 65 70 6f 72 74 2d 63 6d 64 20 28 72 65 70 6f 72 74 2d 6e 61 6d 65 20 65 64 69 74 29 0a 20 20 report-cmd.(report-name.edit)...
1f380 22 47 65 74 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 74 6f 20 72 75 6e 20 74 68 65 "Get.the.command.line.to.run.the
1f3a0 20 72 65 70 6f 72 74 20 6e 61 6d 65 20 52 45 50 4f 52 54 2d 4e 41 4d 45 2e 0a 4f 70 74 69 6f 6e .report.name.REPORT-NAME..Option
1f3c0 61 6c 6c 79 20 45 44 49 54 20 74 68 65 20 63 6f 6d 6d 61 6e 64 2e 22 0a 20 20 28 6c 65 74 20 28 ally.EDIT.the.command."...(let.(
1f3e0 28 72 65 70 6f 72 74 2d 63 6d 64 20 28 63 61 72 20 28 63 64 72 20 28 61 73 73 6f 63 20 72 65 70 (report-cmd.(car.(cdr.(assoc.rep
1f400 6f 72 74 2d 6e 61 6d 65 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 29 29 29 29 29 0a 20 20 20 ort-name.ledger-reports)))))....
1f420 20 3b 3b 20 6c 6f 67 69 63 20 66 6f 72 20 73 75 62 73 74 69 74 75 74 69 6f 6e 20 67 6f 65 73 20 .;;.logic.for.substitution.goes.
1f440 68 65 72 65 0a 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 28 6e 75 6c 6c 20 72 65 70 6f 72 74 2d here.....(when.(or.(null.report-
1f460 63 6d 64 29 20 65 64 69 74 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 72 65 70 6f 72 74 2d 63 6d cmd).edit).......(setq.report-cm
1f480 64 20 28 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 72 65 d.(ledger-report-read-command.re
1f4a0 70 6f 72 74 2d 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 port-cmd)).......(setq.ledger-re
1f4c0 70 6f 72 74 2d 73 61 76 65 64 20 6e 69 6c 29 29 20 3b 3b 20 74 68 69 73 20 69 73 20 61 20 6e 65 port-saved.nil)).;;.this.is.a.ne
1f4e0 77 20 72 65 70 6f 72 74 2c 20 6f 72 20 65 64 69 74 65 64 20 72 65 70 6f 72 74 0a 20 20 20 20 28 w.report,.or.edited.report.....(
1f500 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 65 setq.report-cmd.(ledger-report-e
1f520 78 70 61 6e 64 2d 66 6f 72 6d 61 74 2d 73 70 65 63 69 66 69 65 72 73 20 72 65 70 6f 72 74 2d 63 xpand-format-specifiers.report-c
1f540 6d 64 29 29 0a 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 6d 64 md)).....(setq.ledger-report-cmd
1f560 20 72 65 70 6f 72 74 2d 63 6d 64 29 0a 20 20 20 20 28 6f 72 20 28 73 74 72 69 6e 67 2d 65 6d 70 .report-cmd).....(or.(string-emp
1f580 74 79 2d 70 20 72 65 70 6f 72 74 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 ty-p.report-name).........(ledge
1f5a0 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 2d 65 78 69 73 74 73 20 72 65 70 6f 72 74 2d 6e 61 6d 65 r-report-name-exists.report-name
1f5c0 29 0a 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 28 6c 65 64 67 ).........(progn...........(ledg
1f5e0 65 72 2d 72 65 70 6f 72 74 73 2d 61 64 64 20 72 65 70 6f 72 74 2d 6e 61 6d 65 20 72 65 70 6f 72 er-reports-add.report-name.repor
1f600 74 2d 63 6d 64 29 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 73 t-cmd)...........(ledger-reports
1f620 2d 63 75 73 74 6f 6d 2d 73 61 76 65 29 29 29 0a 20 20 20 20 72 65 70 6f 72 74 2d 63 6d 64 29 29 -custom-save))).....report-cmd))
1f640 0a 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 6c 65 64 67 65 72 2d 72 65 ..(define-button-type.'ledger-re
1f660 70 6f 72 74 2d 72 65 67 69 73 74 65 72 2d 65 6e 74 72 79 0a 20 20 27 66 6f 6c 6c 6f 77 2d 6c 69 port-register-entry...'follow-li
1f680 6e 6b 20 74 0a 20 20 27 66 61 63 65 20 6e 69 6c 20 3b 3b 20 4f 74 68 65 72 77 69 73 65 20 6d 61 nk.t...'face.nil.;;.Otherwise.ma
1f6a0 6b 65 2d 74 65 78 74 2d 62 75 74 74 6f 6e 20 72 65 70 6c 61 63 65 73 20 4c 65 64 67 65 72 27 73 ke-text-button.replaces.Ledger's
1f6c0 20 6e 61 74 69 76 65 20 68 69 67 68 6c 69 67 68 74 69 6e 67 0a 20 20 27 61 63 74 69 6f 6e 20 28 .native.highlighting...'action.(
1f6e0 6c 61 6d 62 64 61 20 28 5f 62 75 74 74 6f 6e 29 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d lambda.(_button).(ledger-report-
1f700 76 69 73 69 74 2d 73 6f 75 72 63 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 visit-source)))..(defun.ledger-r
1f720 65 70 6f 72 74 2d 2d 63 68 61 6e 67 65 2d 6d 6f 6e 74 68 20 28 73 68 69 66 74 29 0a 20 20 22 52 eport--change-month.(shift)..."R
1f740 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 63 74 69 6f 6e 73 20 ebuild.report.with.transactions.
1f760 66 72 6f 6d 20 63 75 72 72 65 6e 74 20 6d 6f 6e 74 68 20 2b 20 53 48 49 46 54 2e 22 0a 20 20 28 from.current.month.+.SHIFT."...(
1f780 6c 65 74 2a 20 28 28 63 75 72 72 65 6e 74 2d 6d 6f 6e 74 68 20 28 6f 72 20 6c 65 64 67 65 72 2d let*.((current-month.(or.ledger-
1f7a0 72 65 70 6f 72 74 2d 63 75 72 72 65 6e 74 2d 6d 6f 6e 74 68 20 28 6c 65 64 67 65 72 2d 72 65 70 report-current-month.(ledger-rep
1f7c0 6f 72 74 2d 2d 63 75 72 72 65 6e 74 2d 6d 6f 6e 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 ort--current-month)))..........(
1f7e0 70 72 65 76 69 6f 75 73 2d 6d 6f 6e 74 68 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 73 previous-month.(ledger-report--s
1f800 68 69 66 74 2d 6d 6f 6e 74 68 20 63 75 72 72 65 6e 74 2d 6d 6f 6e 74 68 20 73 68 69 66 74 29 29 hift-month.current-month.shift))
1f820 29 0a 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
1f840 74 2d 6d 6f 6e 74 68 20 70 72 65 76 69 6f 75 73 2d 6d 6f 6e 74 68 29 0a 20 20 20 20 28 6c 65 64 t-month.previous-month).....(led
1f860 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d ger-report-cmd.ledger-report-nam
1f880 65 20 6e 69 6c 29 0a 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 64 6f 29 29 e.nil).....(ledger-report-redo))
1f8a0 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 61 64 64 2d 6c 69 6e )..(defun.ledger-report--add-lin
1f8c0 6b 73 20 28 29 0a 20 20 22 52 65 70 6c 61 63 65 20 66 69 6c 65 20 61 6e 64 20 6c 69 6e 65 20 61 ks.()..."Replace.file.and.line.a
1f8e0 6e 6e 6f 74 61 74 69 6f 6e 73 20 77 69 74 68 20 62 75 74 74 6f 6e 73 2e 22 0a 20 20 28 77 68 69 nnotations.with.buttons."...(whi
1f900 6c 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5e 5c 5c 28 5c 5c 28 3f 3a le.(re-search-forward."^\\(\\(?:
1f920 2f 5c 5c 7c 5b 61 2d 7a 41 2d 5a 5d 3a 5b 5c 5c 2f 5d 5c 5c 29 5b 5e 3a 5d 2b 5c 5c 29 3f 3a 5c /\\|[a-zA-Z]:[\\/]\\)[^:]+\\)?:\
1f940 5c 28 5b 30 2d 39 5d 2b 5c 5c 29 3f 3a 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 28 6c 65 74 20 28 \([0-9]+\\)?:".nil.t).....(let.(
1f960 28 66 69 6c 65 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 (file.(match-string.1)).........
1f980 20 20 28 6c 69 6e 65 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 ..(line.(string-to-number.(match
1f9a0 2d 73 74 72 69 6e 67 20 32 29 29 29 29 0a 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 -string.2)))).......(delete-regi
1f9c0 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 6e on.(match-beginning.0).(match-en
1f9e0 64 20 30 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 66 69 6c 65 20 6c 69 6e 65 d.0)).......(when.(and.file.line
1fa00 29 0a 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 69 65 73 20 28 ).........(add-text-properties.(
1fa20 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 65 line-beginning-position).(line-e
1fa40 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 20 20 20 20 20 20 20 nd-position)....................
1fa60 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 27 6c 65 64 67 65 72 2d 73 6f 75 72 63 65 20 28 ..........(list.'ledger-source.(
1fa80 63 6f 6e 73 20 66 69 6c 65 20 6c 69 6e 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d cons.file.line))).........(make-
1faa0 74 65 78 74 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 2d 62 65 67 69 6e text-button..........(line-begin
1fac0 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 73 69 74 69 6f ning-position).(line-end-positio
1fae0 6e 29 0a 20 20 20 20 20 20 20 20 20 27 74 79 70 65 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 n)..........'type.'ledger-report
1fb00 2d 72 65 67 69 73 74 65 72 2d 65 6e 74 72 79 0a 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 2d 65 -register-entry..........'help-e
1fb20 63 68 6f 20 28 66 6f 72 6d 61 74 20 22 6d 6f 75 73 65 2d 32 2c 20 52 45 54 3a 20 56 69 73 69 74 cho.(format."mouse-2,.RET:.Visit
1fb40 20 25 73 3a 25 64 22 20 66 69 6c 65 20 6c 69 6e 65 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 41 .%s:%d".file.line)).........;;.A
1fb60 70 70 65 6e 64 69 6e 67 20 74 68 65 20 66 61 63 65 20 70 72 65 73 65 72 76 65 73 20 4c 65 64 67 ppending.the.face.preserves.Ledg
1fb80 65 72 27 73 20 6e 61 74 69 76 65 20 68 69 67 68 6c 69 67 68 74 69 6e 67 0a 20 20 20 20 20 20 20 er's.native.highlighting........
1fba0 20 28 66 6f 6e 74 2d 6c 6f 63 6b 2d 61 70 70 65 6e 64 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 .(font-lock-append-text-property
1fbc0 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 6e 65 .(line-beginning-position).(line
1fbe0 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 20 20 20 20 20 -end-position)..................
1fc00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 27 6c 65 .......................'face.'le
1fc20 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)
1fc40 0a 20 20 20 20 20 20 20 20 28 65 6e 64 2d 6f 66 2d 6c 69 6e 65 29 29 29 29 29 0a 0a 28 64 65 66 .........(end-of-line)))))..(def
1fc60 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 68 65 61 64 65 72 un.ledger-report--compute-header
1fc80 2d 6c 69 6e 65 20 28 63 6d 64 29 0a 20 20 22 43 61 6c 6c 20 60 6c 65 64 67 65 72 2d 72 65 70 6f -line.(cmd)..."Call.`ledger-repo
1fca0 72 74 2d 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6e 27 20 77 69 74 68 20 60 6c 65 64 67 65 72 2d rt-header-line-fn'.with.`ledger-
1fcc0 72 65 70 6f 72 74 2d 63 6d 64 27 20 62 6f 75 6e 64 20 74 6f 20 43 4d 44 2e 22 0a 20 20 28 6c 65 report-cmd'.bound.to.CMD."...(le
1fce0 74 20 28 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 20 63 6d 64 29 29 0a 20 20 20 20 t.((ledger-report-cmd.cmd)).....
1fd00 28 66 75 6e 63 61 6c 6c 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 68 65 61 64 65 72 2d 6c 69 (funcall.ledger-report-header-li
1fd20 6e 65 2d 66 6e 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 64 6f 2d 72 65 70 6f 72 ne-fn)))..(defun.ledger-do-repor
1fd40 74 20 28 63 6d 64 29 0a 20 20 22 52 75 6e 20 61 20 72 65 70 6f 72 74 20 63 6f 6d 6d 61 6e 64 20 t.(cmd)..."Run.a.report.command.
1fd60 6c 69 6e 65 20 43 4d 44 2e 0a 43 4d 44 20 6d 61 79 20 63 6f 6e 74 61 69 6e 20 61 20 28 73 68 65 line.CMD..CMD.may.contain.a.(she
1fd80 6c 6c 2d 71 75 6f 74 65 64 29 20 76 65 72 73 69 6f 6e 20 6f 66 0a 60 6c 65 64 67 65 72 2d 72 65 ll-quoted).version.of.`ledger-re
1fda0 70 6f 72 74 2d 2d 65 78 74 72 61 2d 61 72 67 73 2d 6d 61 72 6b 65 72 27 2c 20 77 68 69 63 68 20 port--extra-args-marker',.which.
1fdc0 77 69 6c 6c 20 62 65 20 72 65 70 6c 61 63 65 64 20 62 79 0a 61 72 67 75 6d 65 6e 74 73 20 72 65 will.be.replaced.by.arguments.re
1fde0 74 75 72 6e 65 64 20 62 79 20 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 63 6f 6d 70 75 74 turned.by.`ledger-report--comput
1fe00 65 2d 65 78 74 72 61 2d 61 72 67 73 27 2e 22 0a 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f e-extra-args'."...(goto-char.(po
1fe20 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 6d 61 72 6b 65 72 20 6c 65 64 67 65 int-min))...(let*.((marker.ledge
1fe40 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 0a 20 20 20 r-report--extra-args-marker)....
1fe60 20 20 20 20 20 20 28 6d 61 72 6b 65 72 2d 72 65 20 28 63 6f 6e 63 61 74 20 22 20 2a 22 20 28 72 ......(marker-re.(concat.".*".(r
1fe80 65 67 65 78 70 2d 71 75 6f 74 65 20 6d 61 72 6b 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 egexp-quote.marker)))..........(
1fea0 61 72 67 73 20 28 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 args.(ledger-report--compute-ext
1fec0 72 61 2d 61 72 67 73 20 63 6d 64 29 29 0a 20 20 20 20 20 20 20 20 20 28 61 72 67 73 2d 73 74 72 ra-args.cmd))..........(args-str
1fee0 20 28 63 6f 6e 63 61 74 20 22 20 22 20 28 6d 61 70 63 6f 6e 63 61 74 20 23 27 73 68 65 6c 6c 2d .(concat.".".(mapconcat.#'shell-
1ff00 71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 20 61 72 67 73 20 22 20 22 29 29 29 0a 20 20 20 20 20 quote-argument.args.".")))......
1ff20 20 20 20 20 28 63 6c 65 61 6e 2d 63 6d 64 20 28 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 ....(clean-cmd.(replace-regexp-i
1ff40 6e 2d 73 74 72 69 6e 67 20 6d 61 72 6b 65 72 2d 72 65 20 22 22 20 63 6d 64 20 74 20 74 29 29 0a n-string.marker-re."".cmd.t.t)).
1ff60 20 20 20 20 20 20 20 20 20 28 72 65 61 6c 2d 63 6d 64 20 28 72 65 70 6c 61 63 65 2d 72 65 67 65 .........(real-cmd.(replace-rege
1ff80 78 70 2d 69 6e 2d 73 74 72 69 6e 67 20 6d 61 72 6b 65 72 2d 72 65 20 61 72 67 73 2d 73 74 72 20 xp-in-string.marker-re.args-str.
1ffa0 63 6d 64 20 74 20 74 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 68 65 61 64 65 72 2d 6c 69 6e 65 cmd.t.t))).....(setq.header-line
1ffc0 2d 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 6c 65 64 67 65 72 2d 72 65 -format...........(and.ledger-re
1ffe0 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 20 20 20 20 20 port-use-header-line............
20000 20 20 20 20 60 28 3a 65 76 61 6c 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 63 6f 6d 70 ....`(:eval.(ledger-report--comp
20020 75 74 65 2d 68 65 61 64 65 72 2d 6c 69 6e 65 20 2c 63 6c 65 61 6e 2d 63 6d 64 29 29 29 29 0a 20 ute-header-line.,clean-cmd))))..
20040 20 20 20 28 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 ...(unless.ledger-report-use-hea
20060 64 65 72 2d 6c 69 6e 65 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 66 6f 72 6d 61 74 20 22 der-line.......(insert.(format."
20080 52 65 70 6f 72 74 3a 20 25 73 5c 6e 22 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 Report:.%s\n".ledger-report-name
200a0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 43 6f 6d 6d 61 6e 64 )...............(format."Command
200c0 3a 20 25 73 5c 6e 22 20 63 6c 65 61 6e 2d 63 6d 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 :.%s\n".clean-cmd)..............
200e0 20 28 6d 61 6b 65 2d 73 74 72 69 6e 67 20 28 2d 20 28 77 69 6e 64 6f 77 2d 77 69 64 74 68 29 20 .(make-string.(-.(window-width).
20100 31 29 20 3f 3d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 5c 6e 22 29 29 0a 20 20 1).?=)..............."\n\n"))...
20120 20 20 28 6c 65 74 2a 20 28 28 72 65 70 6f 72 74 20 28 73 68 65 6c 6c 2d 63 6f 6d 6d 61 6e 64 2d ..(let*.((report.(shell-command-
20140 74 6f 2d 73 74 72 69 6e 67 20 72 65 61 6c 2d 63 6d 64 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 to-string.real-cmd))).......(whe
20160 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 69 67 68 6c n.ledger-report-use-native-highl
20180 69 67 68 74 69 6e 67 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 70 6f 72 74 20 28 61 6e ighting.........(setq.report.(an
201a0 73 69 2d 63 6f 6c 6f 72 2d 61 70 70 6c 79 20 72 65 70 6f 72 74 29 29 29 0a 20 20 20 20 20 20 28 si-color-apply.report))).......(
201c0 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 72 save-excursion.........(insert.r
201e0 65 70 6f 72 74 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 6c 65 64 67 65 72 2d 72 65 70 6f eport)).......(when.(ledger-repo
20200 72 74 2d 2d 63 6d 64 2d 6e 65 65 64 73 2d 6c 69 6e 6b 73 2d 70 20 63 6d 64 29 0a 20 20 20 20 20 rt--cmd-needs-links-p.cmd)......
20220 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 28 6c 65 ...(save-excursion...........(le
20240 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 61 64 64 2d 6c 69 6e 6b 73 29 29 29 29 29 29 0a 0a 28 64 dger-report--add-links))))))..(d
20260 65 66 75 6e 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 20 efun.ledger-report-visit-source.
20280 28 29 0a 20 20 22 56 69 73 69 74 20 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 75 6e 64 65 ()..."Visit.the.transaction.unde
202a0 72 20 70 6f 69 6e 74 20 69 6e 20 74 68 65 20 72 65 70 6f 72 74 20 77 69 6e 64 6f 77 2e 22 0a 20 r.point.in.the.report.window."..
202c0 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 2a 20 28 28 70 72 6f 70 20 28 67 .(interactive)...(let*.((prop.(g
202e0 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 6c 65 64 67 65 72 et-text-property.(point).'ledger
20300 2d 73 6f 75 72 63 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 20 28 63 61 72 20 70 72 -source))..........(file.(car.pr
20320 6f 70 29 29 0a 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 28 63 64 72 20 70 72 6f 70 29 29 29 op))..........(line.(cdr.prop)))
20340 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 66 69 6c 65 20 6c 69 6e 65 29 0a 20 20 20 20 20 .....(when.(and.file.line)......
20360 20 28 66 69 6e 64 2d 66 69 6c 65 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 20 66 69 6c 65 29 0a 20 .(find-file-other-window.file)..
20380 20 20 20 20 20 28 77 69 64 65 6e 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 .....(widen).......(goto-char.(p
203a0 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 28 oint-min)).......(forward-line.(
203c0 31 2d 20 6c 69 6e 65 29 29 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 1-.line)).......(ledger-navigate
203e0 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 78 61 63 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c -beginning-of-xact))))..(defun.l
20400 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 67 6f 74 6f 20 28 29 0a 20 20 22 47 6f 74 6f 20 74 68 65 edger-report-goto.()..."Goto.the
20420 20 6c 65 64 67 65 72 20 72 65 70 6f 72 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 .ledger.report.buffer."...(inter
20440 61 63 74 69 76 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 active)...(let.((rbuf.(get-buffe
20460 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 65 29 29 29 0a 20 r.ledger-report-buffer-name)))..
20480 20 20 20 28 69 66 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 ...(if.(not.rbuf).........(error
204a0 20 22 54 68 65 72 65 20 69 73 20 6e 6f 20 6c 65 64 67 65 72 20 72 65 70 6f 72 74 20 62 75 66 66 ."There.is.no.ledger.report.buff
204c0 65 72 22 29 29 0a 20 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 er")).....(pop-to-buffer.rbuf)..
204e0 20 20 20 28 6c 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 ...(ledger-report-maybe-shrink-w
20500 69 6e 64 6f 77 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 indow)))..(defun.ledger-report-r
20520 65 64 6f 20 28 26 6f 70 74 69 6f 6e 61 6c 20 5f 69 67 6e 6f 72 65 2d 61 75 74 6f 20 5f 6e 6f 63 edo.(&optional._ignore-auto._noc
20540 6f 6e 66 69 72 6d 29 0a 20 20 22 52 65 64 6f 20 74 68 65 20 72 65 70 6f 72 74 20 69 6e 20 74 68 onfirm)..."Redo.the.report.in.th
20560 65 20 63 75 72 72 65 6e 74 20 6c 65 64 67 65 72 20 72 65 70 6f 72 74 20 62 75 66 66 65 72 2e 0a e.current.ledger.report.buffer..
20580 49 47 4e 4f 52 45 2d 41 55 54 4f 20 61 6e 64 20 4e 4f 43 4f 4e 46 49 52 4d 20 61 72 65 20 66 6f IGNORE-AUTO.and.NOCONFIRM.are.fo
205a0 72 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 0a 60 72 65 76 65 72 74 2d 62 75 66 r.compatibility.with.`revert-buf
205c0 66 65 72 2d 66 75 6e 63 74 69 6f 6e 27 20 61 6e 64 20 61 72 65 20 63 75 72 72 65 6e 74 6c 79 20 fer-function'.and.are.currently.
205e0 69 67 6e 6f 72 65 64 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 ignored."...(interactive)...(unl
20600 65 73 73 20 28 6f 72 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 ess.(or.(derived-mode-p.'ledger-
20620 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 72 69 76 65 64 2d 6d 6f 64 mode)...............(derived-mod
20640 65 2d 70 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6d 6f 64 65 29 29 0a 20 20 20 20 28 75 e-p.'ledger-report-mode)).....(u
20660 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 74 20 69 6e 20 61 20 6c 65 64 67 65 72 2d 6d 6f 64 65 20 ser-error."Not.in.a.ledger-mode.
20680 6f 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6d 6f 64 65 20 62 75 66 66 65 72 22 29 29 0a or.ledger-report-mode.buffer")).
206a0 20 20 28 6c 65 74 20 28 28 63 75 72 2d 62 75 66 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 ..(let.((cur-buf.(current-buffer
206c0 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 ))).....(when.(and.ledger-report
206e0 2d 61 75 74 6f 2d 72 65 66 72 65 73 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 -auto-refresh................(ge
20700 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 61 t-buffer.ledger-report-buffer-na
20720 6d 65 29 29 0a 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 me)).......(pop-to-buffer.(get-b
20740 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 61 6d 65 29 uffer.ledger-report-buffer-name)
20760 29 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6d 61 79 62 65 2d 73 68 72 ).......(ledger-report-maybe-shr
20780 69 6e 6b 2d 77 69 6e 64 6f 77 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 ink-window).......(setq.ledger-r
207a0 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 28 6c 69 6e 65 2d 6e eport-cursor-line-number.(line-n
207c0 75 6d 62 65 72 2d 61 74 2d 70 6f 73 29 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d 73 69 6c 65 6e umber-at-pos)).......(with-silen
207e0 74 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 28 65 72 61 73 65 2d 62 t-modifications.........(erase-b
20800 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 64 6f 2d 72 65 70 6f 72 74 uffer).........(ledger-do-report
20820 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 28 77 68 65 .ledger-report-cmd).........(whe
20840 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 69 73 2d 72 65 76 65 72 73 65 64 0a 20 20 20 20 n.ledger-report-is-reversed.....
20860 20 20 20 20 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 ......(ledger-report-reverse-lin
20880 65 73 29 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 es)).........(when.ledger-report
208a0 2d 61 75 74 6f 2d 72 65 66 72 65 73 68 2d 73 74 69 63 6b 79 2d 63 75 72 73 6f 72 0a 20 20 20 20 -auto-refresh-sticky-cursor.....
208c0 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 28 2d 20 6c 65 64 67 65 72 2d 72 65 ......(forward-line.(-.ledger-re
208e0 70 6f 72 74 2d 63 75 72 73 6f 72 2d 6c 69 6e 65 2d 6e 75 6d 62 65 72 20 35 29 29 29 29 0a 20 20 port-cursor-line-number.5))))...
20900 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 66 ....(run-hooks.'ledger-report-af
20920 74 65 72 2d 72 65 70 6f 72 74 2d 68 6f 6f 6b 29 0a 20 20 20 20 20 20 28 70 6f 70 2d 74 6f 2d 62 ter-report-hook).......(pop-to-b
20940 75 66 66 65 72 20 63 75 72 2d 62 75 66 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 uffer.cur-buf))))..(defun.ledger
20960 2d 72 65 70 6f 72 74 2d 71 75 69 74 20 28 29 0a 20 20 22 51 75 69 74 20 74 68 65 20 6c 65 64 67 -report-quit.()..."Quit.the.ledg
20980 65 72 20 72 65 70 6f 72 74 20 62 75 66 66 65 72 20 61 6e 64 20 6b 69 6c 6c 20 69 74 73 20 62 75 er.report.buffer.and.kill.its.bu
209a0 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 75 6e 6c 65 73 73 ffer."...(interactive)...(unless
209c0 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 28 67 65 74 2d 62 75 66 66 65 72 20 6c 65 64 67 .(buffer-live-p.(get-buffer.ledg
209e0 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 28 75 73 65 er-report-buffer-name)).....(use
20a00 72 2d 65 72 72 6f 72 20 22 4e 6f 20 6c 65 64 67 65 72 20 72 65 70 6f 72 74 20 62 75 66 66 65 72 r-error."No.ledger.report.buffer
20a20 22 29 29 0a 20 20 28 71 75 69 74 2d 77 69 6e 64 6f 77 73 2d 6f 6e 20 6c 65 64 67 65 72 2d 72 65 "))...(quit-windows-on.ledger-re
20a40 70 6f 72 74 2d 62 75 66 66 65 72 2d 6e 61 6d 65 20 27 6b 69 6c 6c 29 29 0a 0a 28 64 65 66 69 6e port-buffer-name.'kill))..(defin
20a60 65 2d 6f 62 73 6f 6c 65 74 65 2d 66 75 6e 63 74 69 6f 6e 2d 61 6c 69 61 73 20 27 6c 65 64 67 65 e-obsolete-function-alias.'ledge
20a80 72 2d 72 65 70 6f 72 74 2d 6b 69 6c 6c 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 71 75 r-report-kill.#'ledger-report-qu
20aa0 69 74 20 22 32 30 31 38 2d 30 33 2d 31 38 22 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d it."2018-03-18")..(defun.ledger-
20ac0 72 65 70 6f 72 74 2d 65 64 69 74 2d 72 65 70 6f 72 74 73 20 28 29 0a 20 20 22 45 64 69 74 20 74 report-edit-reports.()..."Edit.t
20ae0 68 65 20 64 65 66 69 6e 65 64 20 6c 65 64 67 65 72 20 72 65 70 6f 72 74 73 2e 22 0a 20 20 28 69 he.defined.ledger.reports."...(i
20b00 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 63 75 73 74 6f 6d 69 7a 65 2d 76 61 72 69 61 62 6c nteractive)...(customize-variabl
20b20 65 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 e.'ledger-reports))..(defun.ledg
20b40 65 72 2d 72 65 70 6f 72 74 2d 65 64 69 74 2d 72 65 70 6f 72 74 20 28 29 0a 20 20 22 45 64 69 74 er-report-edit-report.()..."Edit
20b60 20 74 68 65 20 63 75 72 72 65 6e 74 20 72 65 70 6f 72 74 20 63 6f 6d 6d 61 6e 64 20 69 6e 20 74 .the.current.report.command.in.t
20b80 68 65 20 6d 69 6e 69 20 62 75 66 66 65 72 20 61 6e 64 20 72 65 2d 72 75 6e 20 74 68 65 20 72 65 he.mini.buffer.and.re-run.the.re
20ba0 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 73 65 74 71 20 6c port."...(interactive)...(setq.l
20bc0 65 64 67 65 72 2d 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 edger-report-cmd.(ledger-report-
20be0 72 65 61 64 2d 63 6f 6d 6d 61 6e 64 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 29 29 read-command.ledger-report-cmd))
20c00 0a 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 64 6f 29 29 0a 0a 28 64 65 66 69 6e ...(ledger-report-redo))..(defin
20c20 65 2d 6f 62 73 6f 6c 65 74 65 2d 66 75 6e 63 74 69 6f 6e 2d 61 6c 69 61 73 20 27 6c 65 64 67 65 e-obsolete-function-alias.'ledge
20c40 72 2d 72 65 70 6f 72 74 2d 73 65 6c 65 63 74 2d 72 65 70 6f 72 74 20 23 27 6c 65 64 67 65 72 2d r-report-select-report.#'ledger-
20c60 72 65 70 6f 72 74 20 22 6c 65 64 67 65 72 20 34 2e 30 2e 30 22 29 0a 0a 28 64 65 66 75 6e 20 6c report."ledger.4.0.0")..(defun.l
20c80 65 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 20 28 29 0a 20 20 edger-report-read-new-name.()...
20ca0 22 52 65 61 64 20 74 68 65 20 6e 61 6d 65 20 66 6f 72 20 61 20 6e 65 77 20 72 65 70 6f 72 74 20 "Read.the.name.for.a.new.report.
20cc0 66 72 6f 6d 20 74 68 65 20 6d 69 6e 69 62 75 66 66 65 72 2e 22 0a 20 20 28 6c 65 74 20 28 28 6e from.the.minibuffer."...(let.((n
20ce0 61 6d 65 20 22 22 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 ame."")).....(while.(string-empt
20d00 79 2d 70 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6e 61 6d 65 20 28 72 65 61 64 y-p.name).......(setq.name.(read
20d20 2d 66 72 6f 6d 2d 6d 69 6e 69 62 75 66 66 65 72 20 22 52 65 70 6f 72 74 20 6e 61 6d 65 3a 20 22 -from-minibuffer."Report.name:."
20d40 20 6e 69 6c 20 6e 69 6c 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .nil.nil.nil....................
20d60 20 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 65 70 6f ....................'ledger-repo
20d80 72 74 2d 6e 61 6d 65 2d 70 72 6f 6d 70 74 2d 68 69 73 74 6f 72 79 29 29 29 0a 20 20 20 20 6e 61 rt-name-prompt-history))).....na
20da0 6d 65 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 73 61 76 65 20 me))..(defun.ledger-report-save.
20dc0 28 29 0a 20 20 22 53 61 76 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 72 65 70 6f 72 74 20 63 6f ()..."Save.the.current.report.co
20de0 6d 6d 61 6e 64 20 6c 69 6e 65 20 61 73 20 61 20 6e 61 6d 65 64 20 72 65 70 6f 72 74 2e 22 0a 20 mmand.line.as.a.named.report."..
20e00 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 74 2d .(interactive)...(ledger-report-
20e20 67 6f 74 6f 29 0a 20 20 28 77 68 65 6e 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 6c 65 goto)...(when.(string-empty-p.le
20e40 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 29 0a 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 dger-report-name).....(setq.ledg
20e60 65 72 2d 72 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 er-report-name.(ledger-report-re
20e80 61 64 2d 6e 65 77 2d 6e 61 6d 65 29 29 29 0a 0a 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 65 78 ad-new-name)))....(when-let.((ex
20ea0 69 73 74 69 6e 67 2d 6e 61 6d 65 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 2d isting-name.(ledger-report-name-
20ec0 65 78 69 73 74 73 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 29 29 29 0a 20 20 20 exists.ledger-report-name)))....
20ee0 20 28 63 6f 6e 64 20 28 28 79 2d 6f 72 2d 6e 2d 70 20 28 66 6f 72 6d 61 74 20 22 4f 76 65 72 77 .(cond.((y-or-n-p.(format."Overw
20f00 72 69 74 65 20 65 78 69 73 74 69 6e 67 20 72 65 70 6f 72 74 20 6e 61 6d 65 64 20 27 25 73 27 3f rite.existing.report.named.'%s'?
20f20 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 20 20 ."..............................
20f40 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 ledger-report-name))............
20f60 28 69 66 20 28 73 74 72 69 6e 67 2d 65 71 75 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (if.(string-equal...............
20f80 20 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 ..ledger-report-cmd.............
20fa0 20 20 20 20 28 63 61 72 20 28 63 64 72 20 28 61 73 73 71 20 65 78 69 73 74 69 6e 67 2d 6e 61 6d ....(car.(cdr.(assq.existing-nam
20fc0 65 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 e.ledger-reports))))............
20fe0 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 4e 6f 74 68 69 6e 67 20 74 6f 20 73 61 76 65 2e 20 43 ....(message."Nothing.to.save..C
21000 75 72 72 65 6e 74 20 63 6f 6d 6d 61 6e 64 20 69 73 20 69 64 65 6e 74 69 63 61 6c 20 74 6f 20 65 urrent.command.is.identical.to.e
21020 78 69 73 74 69 6e 67 20 73 61 76 65 64 20 6f 6e 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 xisting.saved.one").............
21040 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 0a 20 20 20 20 20 20 20 20 20 20 .(setq.ledger-reports...........
21060 20 20 20 20 20 20 20 20 20 28 61 73 73 71 2d 64 65 6c 65 74 65 2d 61 6c 6c 20 65 78 69 73 74 69 .........(assq-delete-all.existi
21080 6e 67 2d 6e 61 6d 65 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 29 29 0a 20 20 20 20 20 20 20 ng-name.ledger-reports))........
210a0 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 6c 65 64 67 65 72 ......(ledger-reports-add.ledger
210c0 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 29 0a -report-name.ledger-report-cmd).
210e0 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 72 74 73 2d 63 75 73 .............(ledger-reports-cus
21100 74 6f 6d 2d 73 61 76 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 tom-save)))...........(t........
21120 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
21140 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 0a 20 20 20 20 dger-report-read-new-name)).....
21160 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 6c 65 64 67 65 .......(ledger-reports-add.ledge
21180 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 29 r-report-name.ledger-report-cmd)
211a0 0a 20 20 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 63 75 73 74 ............(ledger-reports-cust
211c0 6f 6d 2d 73 61 76 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 om-save)))))..(defun.ledger-repo
211e0 72 74 2d 70 72 65 76 69 6f 75 73 2d 6d 6f 6e 74 68 20 28 29 0a 20 20 22 52 65 62 75 69 6c 64 20 rt-previous-month.()..."Rebuild.
21200 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 6d 20 74 68 report.with.transactions.from.th
21220 65 20 70 72 65 76 69 6f 75 73 20 6d 6f 6e 74 68 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 e.previous.month."...(interactiv
21240 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
21260 68 20 2d 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 6e 65 78 h.-1))..(defun.ledger-report-nex
21280 74 2d 6d 6f 6e 74 68 20 28 29 0a 20 20 22 52 65 62 75 69 6c 64 20 72 65 70 6f 72 74 20 77 69 74 t-month.()..."Rebuild.report.wit
212a0 68 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 66 72 6f 6d 20 74 68 65 20 6e 65 78 74 20 6d 6f 6e h.transactions.from.the.next.mon
212c0 74 68 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 72 th."...(interactive)...(ledger-r
212e0 65 70 6f 72 74 2d 2d 63 68 61 6e 67 65 2d 6d 6f 6e 74 68 20 31 29 29 0a 0a 28 64 65 66 75 6e 20 eport--change-month.1))..(defun.
21300 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 74 6f 67 67 6c 65 2d 64 65 66 61 75 6c 74 2d 63 6f 6d ledger-report-toggle-default-com
21320 6d 6f 64 69 74 79 20 28 29 0a 20 20 22 54 6f 67 67 6c 65 20 65 78 63 68 61 6e 67 65 20 6f 66 20 modity.()..."Toggle.exchange.of.
21340 72 65 70 6f 72 74 65 64 20 61 6d 6f 75 6e 74 73 20 74 6f 20 60 6c 65 64 67 65 72 2d 72 65 63 6f reported.amounts.to.`ledger-reco
21360 6e 63 69 6c 65 2d 64 65 66 61 75 6c 74 2d 63 6f 6d 6d 6f 64 69 74 79 27 2e 22 0a 20 20 28 69 6e ncile-default-commodity'."...(in
21380 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 64 65 72 69 76 65 64 2d 6d 6f teractive)...(unless.(derived-mo
213a0 64 65 2d 70 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6d 6f 64 65 29 0a 20 20 20 20 28 75 de-p.'ledger-report-mode).....(u
213c0 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 74 20 61 20 6c 65 64 67 65 72 20 72 65 70 6f 72 74 20 62 ser-error."Not.a.ledger.report.b
213e0 75 66 66 65 72 22 29 29 0a 20 20 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 uffer"))...(save-match-data.....
21400 28 69 66 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 (if.(string-match..........(conc
21420 61 74 20 28 72 78 20 28 6f 72 20 22 2d 2d 65 78 63 68 61 6e 67 65 22 20 22 2d 58 22 29 20 28 31 at.(rx.(or."--exchange"."-X").(1
21440 2b 20 73 70 61 63 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 67 65 +.space))..................(rege
21460 78 70 2d 71 75 6f 74 65 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 64 65 66 61 75 6c xp-quote.ledger-reconcile-defaul
21480 74 2d 63 6f 6d 6d 6f 64 69 74 79 29 29 0a 20 20 20 20 20 20 20 20 20 6c 65 64 67 65 72 2d 72 65 t-commodity))..........ledger-re
214a0 70 6f 72 74 2d 63 6d 64 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 port-cmd).........(setq.ledger-r
214c0 65 70 6f 72 74 2d 63 6d 64 20 28 72 65 70 6c 61 63 65 2d 6d 61 74 63 68 20 22 22 20 6e 69 6c 20 eport-cmd.(replace-match."".nil.
214e0 6e 69 6c 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 29 29 0a 20 20 20 20 20 20 28 73 nil.ledger-report-cmd)).......(s
21500 65 74 71 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 20 28 63 6f 6e 63 61 74 20 6c 65 etq.ledger-report-cmd.(concat.le
21520 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 dger-report-cmd.................
21540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 2d 2d 65 78 63 68 61 6e ......................".--exchan
21560 67 65 20 22 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 ge.".ledger-reconcile-default-co
21580 6d 6d 6f 64 69 74 79 29 29 29 29 0a 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 64 mmodity))))...(ledger-report-red
215a0 6f 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 0a 0a 3b o))..(provide.'ledger-report)..;
215c0 3b 3b 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 ;;.ledger-report.el.ends.here...
215e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21600 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 30 38 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240408.416/ledger-
21620 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 00 fontify.el......................
21640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21660 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
21680 30 30 30 33 37 33 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 33 36 34 00 20 30 00 00 00 0003736.00000000000.016364..0...
216a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
216c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
216e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21700 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...................
21720 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...................
21740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
217a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
217c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
217e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21800 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
21820 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
21840 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;.
21860 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
21880 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
218a0 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
218c0 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.
218e0 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
21900 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.
21920 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.
21940 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
21960 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.
21980 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
219a0 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.
219c0 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.
219e0 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.;
21a00 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
21a20 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
21a40 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
21a60 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
21a80 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
21aa0 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
21ac0 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
21ae0 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.
21b00 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
21b20 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
21b40 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
21b60 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,.;
21b80 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
21ba0 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
21bc0 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
21be0 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
21c00 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
21c20 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...;;;.
21c40 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
21c60 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
21c80 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.
21ca0 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
21cc0 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
21ce0 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-
21d00 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
21d20 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...
21d40 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.
21d60 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...
21d80 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
21da0 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
21dc0 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
21de0 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
21e00 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
21e20 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.(
21e40 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
21e60 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)))).....
21e80 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
21ea0 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
21ec0 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))))
21ee0 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
21f00 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).............
21f20 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
21f40 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-
21f60 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
21f80 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)))
21fa0 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)..;;
21fc0 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...
21fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22000 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 30 38 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240408.416/ledger-
22020 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 00 context.el......................
22040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22060 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
22080 30 30 32 33 33 36 35 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 33 37 32 00 20 30 00 00 00 0023365.00000000000.016372..0...
220a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
220c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
220e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22100 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...................
22120 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...................
22140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
221a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
221c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
221e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22200 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
22220 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".
22240 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
22260 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)
22280 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
222a0 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.
222c0 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.
222e0 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
22300 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
22320 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
22340 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.
22360 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;
22380 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
223a0 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..;;.
223c0 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
223e0 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
22400 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.
22420 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
22440 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
22460 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
22480 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.
224a0 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
224c0 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
224e0 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
22500 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
22520 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
22540 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
22560 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
22580 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....;
225a0 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
225c0 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
225e0 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
22600 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
22620 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.;;
22640 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
22660 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
22680 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
226a0 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
226c0 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."\\(
226e0 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
22700 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."[\\[(]?\\(.*?\\)[])
22720 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-
22740 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
22760 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-
22780 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-
227a0 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
227c0 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
227e0 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
22800 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-
22820 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-
22840 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
22860 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."\\(?:
22880 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]*\\(.*?\
228a0 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
228c0 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
228e0 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\\}[
22900 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]\\)
22920 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]
22940 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
22960 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."\\((.*)\\)?
22980 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
229a0 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
229c0 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).
229e0 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.
22a00 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.(
22a20 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
22a40 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
22a60 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.
22a80 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
22aa0 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
22ac0 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
22ae0 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
22b00 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.(&
22b20 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.
22b40 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
22b60 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.".
22b80 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
22ba0 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)
22bc0 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
22be0 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
22c00 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
22c20 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
22c40 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
22c60 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.
22c80 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)......
22ca0 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
22cc0 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.
22ce0 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)..............
22d00 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
22d20 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
22d40 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
22d60 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
22d80 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)........
22da0 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
22dc0 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.
22de0 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)..........................
22e00 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
22e20 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).............
22e40 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
22e60 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)))......
22e80 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
22ea0 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
22ec0 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).....................
22ee0 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
22f00 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
22f20 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
22f40 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
22f60 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)............................
22f80 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
22fa0 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.
22fc0 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
22fe0 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)............
23000 20 20 20 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
23020 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
23040 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
23060 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).
23080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
230a0 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
230c0 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
230e0 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
23100 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)..............................
23120 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
23140 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
23160 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
23180 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)............................
231a0 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
231c0 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.
231e0 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)..
23200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
23220 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.
23240 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
23260 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).....................
23280 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
232a0 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
232c0 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).................
232e0 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
23300 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
23320 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).....................
23340 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
23360 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
23380 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
233a0 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)..............................
233c0 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
233e0 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
23400 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)...............
23420 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-
23440 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
23460 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).............
23480 20 20 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
234a0 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
234c0 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)....................
234e0 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
23500 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))))
23520 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
23540 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
23560 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.
23580 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.
235a0 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
235c0 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
235e0 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
23600 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
23620 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
23640 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
23660 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
23680 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.
236a0 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
236c0 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
236e0 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)...
23700 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
23720 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
23740 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
23760 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.............
23780 20 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..
237a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
237c0 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)........
237e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
23800 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
23820 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))........................
23840 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
23860 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)))))))).............
23880 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)..............
238a0 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).................
238c0 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))...........
238e0 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)))
23900 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.
23920 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
23940 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.
23960 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,.\
23980 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
239a0 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.
239c0 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
239e0 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
23a00 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
23a20 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
23a40 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/.
23a60 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-+(.+?)
23a80 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-
23aa0 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))............'
23ac0 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
23ae0 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-+\\)?[[(]?
23b00 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
23b20 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))......
23b40 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
23b60 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
23b80 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-+")...
23ba0 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
23bc0 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
23be0 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
23c00 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
23c20 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
23c40 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
23c60 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
23c80 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.
23ca0 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.
23cc0 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
23ce0 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.
23d00 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.
23d20 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...
23d40 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
23d60 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)))..
23d80 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
23da0 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))...............
23dc0 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)).........
23de0 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
23e00 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
23e20 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
23e40 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
23e60 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
23e80 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-
23ea0 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))
23ec0 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
23ee0 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
23f00 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))...............(
23f20 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.?\~)..........
23f40 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))...
23f60 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.?
23f80 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
23fa0 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
23fc0 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.?\;)................'(
23fe0 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))...............
24000 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)..........
24020 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))..
24040 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.
24060 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
24080 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
240a0 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).............
240c0 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
240e0 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
24100 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
24120 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))........
24140 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)...
24160 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
24180 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
241a0 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)..............
241c0 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)).......
241e0 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)..
24200 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.
24220 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
24240 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
24260 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))...............
24280 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)..........
242a0 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))..
242c0 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................'
242e0 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.
24300 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
24320 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
24340 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
24360 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
24380 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
243a0 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
243c0 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
243e0 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
24400 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.
24420 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...
24440 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))
24460 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-
24480 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
244a0 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
244c0 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).
244e0 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.
24500 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
24520 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
24540 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)))..
24560 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
24580 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).
245a0 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
245c0 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)
245e0 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
24600 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)
24620 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-
24640 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))).
24660 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
24680 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).
246a0 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
246c0 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)))..
246e0 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-
24700 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
24720 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
24740 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).
24760 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
24780 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
247a0 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
247c0 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
247e0 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
24800 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.
24820 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
24840 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
24860 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
24880 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
248a0 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
248c0 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-
248e0 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............
24900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
249a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
249c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
249e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24a00 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 30 38 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240408.416/ledger-
24a20 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 00 test.el.........................
24a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24a60 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
24a80 30 30 31 31 34 36 35 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 36 36 33 00 20 30 00 00 00 0011465.00000000000.015663..0...
24aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24b00 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...................
24b20 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...................
24b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24c00 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
24c20 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
24c40 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
24c60 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
24c80 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
24ca0 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.
24cc0 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
24ce0 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
24d00 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.;;.
24d20 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
24d40 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.
24d60 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
24d80 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
24da0 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
24dc0 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
24de0 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
24e00 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
24e20 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
24e40 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
24e60 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
24e80 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
24ea0 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.
24ec0 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
24ee0 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.
24f00 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.
24f20 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
24f40 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
24f60 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
24f80 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
24fa0 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
24fc0 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
24fe0 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
25000 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
25020 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
25040 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
25060 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
25080 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-
250a0 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
250c0 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.
250e0 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...:
25100 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.
25120 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
25140 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.
25160 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
25180 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
251a0 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)..;;;;;;;;;;;;;;;
251c0 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 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
251e0 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 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.
25200 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.()...
25220 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
25240 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.
25260 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).....
25280 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
252a0 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-
252c0 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)..
252e0 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)).......
25300 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:"
25320 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
25340 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
25360 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
25380 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
253a0 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
253c0 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-+\\([^-]+\\
253e0 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
25400 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
25420 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-
25440 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).
25460 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
25480 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
254a0 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
254c0 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)
254e0 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).....
25500 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
25520 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
25540 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
25560 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).(
25580 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
255a0 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))
255c0 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.().
255e0 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
25600 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")))....
25620 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."\\`\\([^-]
25640 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
25660 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)).........
25680 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-
256a0 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
256c0 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).........
256e0 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)).......
25700 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."#
25720 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).....
25740 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)
25760 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)..
25780 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))).
257a0 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
257c0 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
257e0 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
25800 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."").............
25820 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
25840 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))))))..
25860 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))
25880 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
258a0 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)..........
258c0 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))....
258e0 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).......
25900 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)))......
25920 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
25940 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.
25960 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.
25980 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."")......................
259a0 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
259c0 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))))))).........(
259e0 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..........
25a00 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
25a20 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").......................
25a40 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
25a60 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"...........................
25a80 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
25aa0 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
25ac0 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...........
25ae0 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
25b00 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")........
25b20 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...
25b40 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")...........(
25b60 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"))....
25b80 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")....
25ba0 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
25bc0 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
25be0 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
25c00 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
25c20 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
25c40 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
25c60 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.\\(.+?\\)\\(.->.*\\)
25c80 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.
25ca0 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
25cc0 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
25ce0 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-
25d00 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".............
25d20 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.(
25d40 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
25d60 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.
25d80 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".................
25da0 20 20 20 20 20 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
25dc0 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)).....
25de0 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
25e00 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).
25e20 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
25e40 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.
25e60 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)........
25e80 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..............
25ea0 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."\
25ec0 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))........
25ee0 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)))))))..
25f00 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
25f20 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............
25f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26000 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 30 38 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240408.416/ledger-
26020 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 00 complete.el.....................
26040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26060 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
26080 30 30 33 37 32 37 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 35 32 34 00 20 30 00 00 00 0037276.00000000000.016524..0...
260a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
260c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
260e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26100 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...................
26120 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...................
26140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
261a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
261c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
261e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26200 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
26220 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"
26240 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-
26260 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
26280 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.
262a0 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
262c0 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
262e0 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
26300 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
26320 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
26340 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
26360 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
26380 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.
263a0 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..;;
263c0 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
263e0 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.
26400 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
26420 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
26440 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.
26460 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
26480 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
264a0 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.
264c0 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.
264e0 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.
26500 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
26520 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
26540 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
26560 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,.
26580 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...;
265a0 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
265c0 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
265e0 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-
26600 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)
26620 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
26640 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
26660 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
26680 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
266a0 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...
266c0 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
266e0 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.
26700 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
26720 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
26740 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
26760 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
26780 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
267a0 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
267c0 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)..........
267e0 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..
26800 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
26820 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...
26840 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
26860 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
26880 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
268a0 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
268c0 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
268e0 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
26900 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
26920 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.
26940 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)................
26960 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
26980 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
269a0 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
269c0 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
269e0 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
26a00 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
26a20 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.`
26a40 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'.
26a60 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."
26a80 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
26aa0 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)...............
26ac0 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...
26ae0 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..
26b00 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
26b20 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
26b40 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
26b60 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.
26b80 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
26ba0 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."..
26bc0 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
26be0 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
26c00 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
26c20 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
26c40 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
26c60 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
26c80 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....;;
26ca0 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
26cc0 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
26ce0 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...;
26d00 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
26d20 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
26d40 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...............
26d60 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."^
26d80 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."=\\
26da0 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 |\\)"...........................
26dc0 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
26de0 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)...........
26e00 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).......
26e20 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...
26e40 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
26e60 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
26e80 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....
26ea0 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)))))..
26ec0 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
26ee0 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
26f00 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
26f20 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
26f40 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.";".........................
26f60 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
26f80 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
26fa0 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
26fc0 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).......(
26fe0 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
27000 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").......
27020 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
27040 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.(
27060 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..
27080 20 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
270a0 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)......................
270c0 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
270e0 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
27100 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.().
27120 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
27140 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.(
27160 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)....
27180 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
271a0 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-
271c0 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
271e0 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)......
27200 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
27220 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)).................
27240 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)))..
27260 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
27280 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-
272a0 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))...............
272c0 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.
272e0 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
27300 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
27320 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
27340 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
27360 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
27380 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
273a0 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
273c0 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
273e0 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
27400 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
27420 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
27440 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
27460 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
27480 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
274a0 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
274c0 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
274e0 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
27500 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
27520 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
27540 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
27560 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
27580 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
275a0 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
275c0 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
275e0 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.
27600 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
27620 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
27640 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\
27660 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.==.\"$\"\"))"...
27680 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.(
276a0 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
276c0 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
276e0 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)))....
27700 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
27720 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
27740 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
27760 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.
27780 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.
277a0 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
277c0 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
277e0 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
27800 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
27820 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
27840 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.
27860 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.
27880 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)...
278a0 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
278c0 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
278e0 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).............................
27900 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).
27920 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
27940 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
27960 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))............
27980 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."").........
279a0 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)..
279c0 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
279e0 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))
27a00 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 ...............................(
27a20 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)).
27a40 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)...
27a60 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)
27a80 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.
27aa0 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).....
27ac0 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)))
27ae0 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
27b00 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.......(
27b20 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
27b40 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
27b60 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..........
27b80 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
27ba0 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
27bc0 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
27be0 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
27c00 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...........;;.
27c20 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
27c40 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?...........(
27c60 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-
27c80 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
27ca0 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..........
27cc0 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
27ce0 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
27d00 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
27d20 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-
27d40 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
27d60 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-
27d80 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).............
27da0 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-
27dc0 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)))..............
27de0 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
27e00 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
27e20 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)..................
27e40 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
27e60 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
27e80 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
27ea0 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
27ec0 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
27ee0 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
27f00 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.
27f20 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
27f40 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
27f60 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\
27f80 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
27fa0 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)))..
27fc0 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
27fe0 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.(
28000 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
28020 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
28040 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.
28060 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
28080 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
280a0 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
280c0 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
280e0 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
28100 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
28120 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)).........
28140 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
28160 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)...........(
28180 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))
281a0 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
281c0 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
281e0 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
28200 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
28220 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
28240 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
28260 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
28280 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
282a0 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)).........
282c0 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........
282e0 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..........
28300 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.":"))...........
28320 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.........
28340 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
28360 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)))...........
28380 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...................(
283a0 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))...........
283c0 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
283e0 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)))........
28400 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)
28420 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
28440 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
28460 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
28480 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
284a0 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.()..."
284c0 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
284e0 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.
28500 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)))
28520 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
28540 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.":")))...
28560 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
28580 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.
285a0 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).
285c0 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
285e0 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
28600 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
28620 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.":").......
28640 20 20 20 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.
28660 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
28680 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
286a0 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
286c0 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)))....
286e0 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
28700 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
28720 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
28740 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....................(
28760 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)......................
28780 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..........
287a0 20 20 20 20 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
287c0 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)).........
287e0 20 20 20 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.
28800 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
28820 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).........
28840 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.
28860 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
28880 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
288a0 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))))
288c0 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
288e0 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
28900 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
28920 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
28940 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
28960 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))........(
28980 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))......
289a0 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.
289c0 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))........(
289e0 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)).......
28a00 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
28a20 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))....
28a40 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....
28a60 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
28a80 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
28aa0 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))....
28ac0 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.
28ae0 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
28b00 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
28b20 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.........................(
28b40 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
28b60 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
28b80 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
28ba0 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.
28bc0 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).......
28be0 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.....
28c00 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.(
28c20 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
28c40 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.(
28c60 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))."
28c80 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-
28ca0 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
28cc0 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
28ce0 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
28d00 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
28d20 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
28d40 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-
28d60 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
28d80 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))...
28da0 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
28dc0 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.(
28de0 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
28e00 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.(
28e20 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)
28e40 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
28e60 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
28e80 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
28ea0 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
28ec0 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-
28ee0 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))).......
28f00 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
28f20 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
28f40 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
28f60 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)....................
28f80 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......................
28fa0 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.
28fc0 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)......................
28fe0 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
29000 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
29020 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)...
29040 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.
29060 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
29080 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
290a0 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)).............
290c0 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
290e0 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
29100 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
29120 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
29140 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)).
29160 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........
29180 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
291a0 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........
291c0 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
291e0 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
29200 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)).........
29220 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
29240 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
29260 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
29280 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).........
292a0 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
292c0 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.........................
292e0 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.(
29300 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.?/.?-
29320 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 )))))...........................
29340 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
29360 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
29380 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
293a0 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
293c0 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
293e0 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
29400 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)).........
29420 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
29440 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
29460 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
29480 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...........................
294a0 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
294c0 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)...........
294e0 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
29500 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)))).........
29520 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
29540 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
29560 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
29580 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
295a0 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)))............(
295c0 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-
295e0 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...
29600 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........
29620 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).....
29640 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."([
29660 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......
29680 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)))...
296a0 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
296c0 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....................
296e0 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
29700 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.(
29720 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
29740 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).......................
29760 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
29780 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
297a0 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
297c0 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
297e0 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............................
29800 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.....
29820 20 20 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
29840 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
29860 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
29880 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
298a0 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
298c0 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.
298e0 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
29900 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......
29920 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.(_).......
29940 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
29960 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).(
29980 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))))..........
299a0 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)..............
299c0 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._
299e0 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 )...............................
29a00 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............
29a20 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
29a40 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))..............
29a60 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
29a80 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
29aa0 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)..............................
29ac0 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.
29ae0 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-
29b00 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))))...............'
29b20 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-
29b40 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
29b60 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]*$".
29b80 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
29ba0 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
29bc0 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
29be0 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
29c00 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.
29c20 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.
29c40 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
29c60 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
29c80 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
29ca0 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
29cc0 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))))....
29ce0 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).......
29d00 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...
29d20 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
29d40 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
29d60 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
29d80 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.
29da0 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...
29dc0 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.
29de0 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/.=
29e00 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-+(.*?)\
29e20 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-+\\(.*"..................
29e40 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).".*\\)
29e60 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-
29e80 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)).......
29ea0 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
29ec0 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)......
29ee0 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
29f00 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
29f20 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)))))).....
29f40 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
29f60 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.....
29f80 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).....
29fa0 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.(
29fc0 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
29fe0 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).
2a000 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
2a020 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
2a040 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)....
2a060 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))))).
2a080 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)..;;;
2a0a0 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...
2a0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a200 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 30 38 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240408.416/ledger-
2a220 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 00 mode.info.......................
2a240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a260 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
2a280 30 32 30 36 35 31 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 31 36 32 00 20 30 00 00 00 0206512.00000000000.016162..0...
2a2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a300 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...................
2a320 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...................
2a340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a400 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
2a420 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.
2a440 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....
2a460 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
2a480 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.
2a4a0 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,.
2a4c0 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
2a4e0 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
2a500 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:.....
2a520 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
2a540 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
2a560 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
2a580 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
2a5a0 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
2a5c0 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.
2a5e0 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
2a600 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
2a620 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
2a640 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
2a660 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
2a680 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
2a6a0 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
2a6c0 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.
2a6e0 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
2a700 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
2a720 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
2a740 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
2a760 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
2a780 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.
2a7a0 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
2a7c0 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.
2a7e0 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
2a800 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
2a820 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
2a840 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
2a860 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
2a880 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
2a8a0 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
2a8c0 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
2a8e0 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
2a900 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
2a920 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
2a940 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
2a960 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
2a980 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
2a9a0 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
2a9c0 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
2a9e0 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.
2aa00 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
2aa20 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.
2aa40 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
2aa60 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
2aa80 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)..........
2aaa0 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
2aac0 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
2aae0 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
2ab00 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:.(
2ab20 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.*****
2ab40 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
2ab60 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
2ab80 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
2aba0 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
2abc0 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.
2abe0 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
2ac00 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
2ac20 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
2ac40 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
2ac60 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
2ac80 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
2aca0 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
2acc0 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
2ace0 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
2ad00 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
2ad20 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:
2ad40 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
2ad60 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
2ad80 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::.*
2ada0 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
2adc0 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
2ade0 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
2ae00 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
2ae20 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:.
2ae40 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,..
2ae60 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
2ae80 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.*************************
2aea0 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
2aec0 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::..
2aee0 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:
2af00 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
2af20 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
2af40 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
2af60 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.
2af80 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
2afa0 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
2afc0 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
2afe0 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
2b000 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
2b020 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,.
2b040 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
2b060 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
2b080 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..
2b0a0 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
2b0c0 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
2b0e0 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
2b100 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
2b120 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...................
2b140 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
2b160 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-
2b180 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
2b1a0 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
2b1c0 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
2b1e0 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
2b200 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..
2b220 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
2b240 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
2b260 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
2b280 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
2b2a0 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,..
2b2c0 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
2b2e0 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.
2b300 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
2b320 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.
2b340 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
2b360 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
2b380 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
2b3a0 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....
2b3c0 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:.
2b3e0 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
2b400 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.
2b420 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.
2b440 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....
2b460 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
2b480 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
2b4a0 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
2b4c0 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
2b4e0 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.
2b500 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
2b520 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::.*
2b540 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::.*.
2b560 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
2b580 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:.
2b5a0 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
2b5c0 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.
2b5e0 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
2b600 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.
2b620 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.
2b640 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..
2b660 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
2b680 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
2b6a0 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
2b6c0 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
2b6e0 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...
2b700 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
2b720 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
2b740 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
2b760 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
2b780 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...
2b7a0 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
2b7c0 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
2b7e0 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
2b800 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
2b820 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
2b840 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
2b860 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.
2b880 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
2b8a0 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
2b8c0 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
2b8e0 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
2b900 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.
2b920 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
2b940 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
2b960 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
2b980 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
2b9a0 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
2b9c0 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
2b9e0 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
2ba00 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
2ba20 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.----------------
2ba40 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
2ba60 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.
2ba80 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
2baa0 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
2bac0 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
2bae0 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
2bb00 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.
2bb20 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......
2bb40 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.
2bb60 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
2bb80 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
2bba0 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
2bbc0 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
2bbe0 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
2bc00 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
2bc20 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
2bc40 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
2bc60 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
2bc80 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
2bca0 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.
2bcc0 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
2bce0 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
2bd00 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
2bd20 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
2bd40 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
2bd60 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
2bd80 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
2bda0 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
2bdc0 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
2bde0 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
2be00 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::......
2be20 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.
2be40 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
2be60 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
2be80 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
2bea0 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.
2bec0 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
2bee0 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
2bf00 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
2bf20 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
2bf40 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
2bf60 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
2bf80 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
2bfa0 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
2bfc0 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
2bfe0 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.
2c000 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..
2c020 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
2c040 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
2c060 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
2c080 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
2c0a0 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.---
2c0c0 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
2c0e0 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
2c100 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
2c120 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
2c140 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
2c160 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......
2c180 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
2c1a0 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
2c1c0 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
2c1e0 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
2c200 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::
2c220 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....
2c240 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
2c260 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......
2c280 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
2c2a0 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
2c2c0 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
2c2e0 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.
2c300 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...
2c320 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
2c340 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
2c360 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
2c380 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
2c3a0 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
2c3c0 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.
2c3e0 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
2c400 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.
2c420 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
2c440 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-
2c460 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
2c480 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.
2c4a0 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
2c4c0 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.
2c4e0 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.
2c500 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
2c520 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
2c540 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
2c560 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
2c580 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
2c5a0 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
2c5c0 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.
2c5e0 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.
2c600 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-
2c620 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
2c640 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
2c660 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
2c680 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:
2c6a0 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
2c6c0 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
2c6e0 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
2c700 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
2c720 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.*******************.
2c740 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
2c760 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::.*.
2c780 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
2c7a0 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
2c7c0 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::.
2c7e0 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
2c800 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
2c820 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
2c840 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
2c860 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
2c880 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,..
2c8a0 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
2c8c0 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.=============
2c8e0 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
2c900 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
2c920 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
2c940 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
2c960 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....
2c980 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
2c9a0 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
2c9c0 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
2c9e0 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
2ca00 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
2ca20 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
2ca40 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....
2ca60 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:.
2ca80 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
2caa0 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
2cac0 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
2cae0 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
2cb00 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
2cb20 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
2cb40 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::
2cb60 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
2cb80 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
2cba0 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
2cbc0 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.
2cbe0 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..
2cc00 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
2cc20 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
2cc40 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..
2cc60 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.
2cc80 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...
2cca0 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
2ccc0 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
2cce0 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
2cd00 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
2cd20 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:..
2cd40 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
2cd60 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.()......
2cd80 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
2cda0 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)............
2cdc0 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
2cde0 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).................
2ce00 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-
2ce20 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.
2ce40 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
2ce60 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
2ce80 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
2cea0 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
2cec0 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
2cee0 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
2cf00 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...,.
2cf20 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
2cf40 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
2cf60 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
2cf80 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
2cfa0 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....
2cfc0 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
2cfe0 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
2d000 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::.*
2d020 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
2d040 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
2d060 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
2d080 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,.
2d0a0 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:
2d0c0 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
2d0e0 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
2d100 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.------------------------------
2d120 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
2d140 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
2d160 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
2d180 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
2d1a0 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
2d1c0 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
2d1e0 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
2d200 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
2d220 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.
2d240 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
2d260 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
2d280 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.
2d2a0 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..
2d2c0 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
2d2e0 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
2d300 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
2d320 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.
2d340 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...
2d360 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
2d380 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
2d3a0 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.....
2d3c0 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
2d3e0 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
2d400 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
2d420 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.
2d440 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.------
2d460 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.
2d480 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.
2d4a0 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
2d4c0 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.
2d4e0 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
2d500 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.
2d520 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
2d540 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
2d560 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
2d580 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.
2d5a0 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
2d5c0 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
2d5e0 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
2d600 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,
2d620 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
2d640 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
2d660 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.==================
2d680 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
2d6a0 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.
2d6c0 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
2d6e0 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
2d700 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
2d720 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
2d740 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
2d760 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_
2d780 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.
2d7a0 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
2d7c0 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
2d7e0 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
2d800 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
2d820 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.
2d840 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
2d860 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
2d880 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
2d8a0 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
2d8c0 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
2d8e0 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
2d900 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
2d920 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.
2d940 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
2d960 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
2d980 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
2d9a0 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
2d9c0 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.
2d9e0 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
2da00 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
2da20 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
2da40 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
2da60 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
2da80 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
2daa0 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.
2dac0 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
2dae0 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
2db00 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
2db20 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
2db40 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
2db60 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
2db80 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
2dba0 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...
2dbc0 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
2dbe0 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
2dc00 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
2dc20 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
2dc40 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
2dc60 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
2dc80 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
2dca0 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
2dcc0 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
2dce0 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.=====
2dd00 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
2dd20 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.
2dd40 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
2dd60 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
2dd80 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
2dda0 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
2ddc0 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
2dde0 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
2de00 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
2de20 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
2de40 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
2de60 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,
2de80 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.....
2dea0 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
2dec0 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
2dee0 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
2df00 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
2df20 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
2df40 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
2df60 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
2df80 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
2dfa0 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
2dfc0 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
2dfe0 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
2e000 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
2e020 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
2e040 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.....
2e060 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
2e080 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
2e0a0 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
2e0c0 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
2e0e0 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
2e100 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
2e120 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
2e140 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
2e160 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
2e180 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
2e1a0 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
2e1c0 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
2e1e0 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....*.
2e200 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
2e220 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.
2e240 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
2e260 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
2e280 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
2e2a0 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
2e2c0 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.
2e2e0 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
2e300 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
2e320 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
2e340 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
2e360 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
2e380 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
2e3a0 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.===========================..
2e3c0 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
2e3e0 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
2e400 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
2e420 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
2e440 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
2e460 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
2e480 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
2e4a0 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......
2e4c0 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
2e4e0 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
2e500 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
2e520 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
2e540 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
2e560 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
2e580 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
2e5a0 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
2e5c0 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
2e5e0 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.=========
2e600 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
2e620 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
2e640 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.
2e660 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
2e680 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...
2e6a0 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
2e6c0 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
2e6e0 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
2e700 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
2e720 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,..
2e740 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
2e760 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:
2e780 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.
2e7a0 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.===================
2e7c0 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
2e7e0 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
2e800 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
2e820 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
2e840 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
2e860 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
2e880 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
2e8a0 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..
2e8c0 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....
2e8e0 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.
2e900 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
2e920 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
2e940 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
2e960 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
2e980 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
2e9a0 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.
2e9c0 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
2e9e0 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
2ea00 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..
2ea20 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,.
2ea40 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
2ea60 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
2ea80 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
2eaa0 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
2eac0 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
2eae0 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
2eb00 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
2eb20 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
2eb40 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
2eb60 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
2eb80 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:.
2eba0 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
2ebc0 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
2ebe0 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.
2ec00 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
2ec20 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.
2ec40 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
2ec60 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
2ec80 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.
2eca0 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
2ecc0 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
2ece0 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
2ed00 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:.
2ed20 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
2ed40 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.
2ed60 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
2ed80 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
2eda0 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
2edc0 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
2ede0 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.
2ee00 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..
2ee20 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
2ee40 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
2ee60 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
2ee80 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
2eea0 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
2eec0 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
2eee0 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.
2ef00 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
2ef20 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.
2ef40 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.
2ef60 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
2ef80 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.
2efa0 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..
2efc0 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
2efe0 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
2f000 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
2f020 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
2f040 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
2f060 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
2f080 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
2f0a0 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
2f0c0 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
2f0e0 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
2f100 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
2f120 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
2f140 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....
2f160 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:..
2f180 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
2f1a0 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.
2f1c0 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
2f1e0 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
2f200 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
2f220 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..
2f240 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
2f260 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
2f280 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.
2f2a0 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
2f2c0 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
2f2e0 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$..
2f300 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
2f320 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
2f340 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
2f360 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.
2f380 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
2f3a0 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.
2f3c0 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
2f3e0 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
2f400 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
2f420 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
2f440 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
2f460 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
2f480 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
2f4a0 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
2f4c0 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.**
2f4e0 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:..*
2f500 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
2f520 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
2f540 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
2f560 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
2f580 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::.
2f5a0 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
2f5c0 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
2f5e0 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::.*
2f600 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:
2f620 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
2f640 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
2f660 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,.
2f680 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
2f6a0 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
2f6c0 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.===========
2f6e0 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.
2f700 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
2f720 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
2f740 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
2f760 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
2f780 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
2f7a0 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
2f7c0 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
2f7e0 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
2f800 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.
2f820 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._
2f840 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
2f860 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
2f880 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
2f8a0 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
2f8c0 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
2f8e0 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
2f900 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
2f920 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....
2f940 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
2f960 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
2f980 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
2f9a0 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.
2f9c0 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:.
2f9e0 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
2fa00 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.
2fa20 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
2fa40 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.
2fa60 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
2fa80 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.================
2faa0 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
2fac0 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
2fae0 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
2fb00 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
2fb20 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
2fb40 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
2fb60 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
2fb80 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
2fba0 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.
2fbc0 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
2fbe0 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
2fc00 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
2fc20 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
2fc40 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
2fc60 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
2fc80 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
2fca0 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
2fcc0 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....
2fce0 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
2fd00 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....
2fd20 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
2fd40 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
2fd60 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
2fd80 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
2fda0 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
2fdc0 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
2fde0 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
2fe00 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
2fe20 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
2fe40 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.
2fe60 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
2fe80 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.
2fea0 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
2fec0 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....$....(
2fee0 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..
2ff00 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
2ff20 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
2ff40 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
2ff60 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
2ff80 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
2ffa0 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
2ffc0 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
2ffe0 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
30000 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
30020 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
30040 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
30060 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
30080 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
300a0 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
300c0 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
300e0 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.
30100 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-
30120 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
30140 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
30160 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
30180 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,..
301a0 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
301c0 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.========
301e0 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
30200 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
30220 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
30240 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
30260 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
30280 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
302a0 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
302c0 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
302e0 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
30300 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.
30320 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.
30340 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
30360 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.
30380 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
303a0 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
303c0 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
303e0 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
30400 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
30420 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
30440 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
30460 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
30480 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 .===============================
304a0 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
304c0 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
304e0 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
30500 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
30520 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.
30540 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
30560 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
30580 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
305a0 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
305c0 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
305e0 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
30600 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.
30620 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-
30640 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
30660 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
30680 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
306a0 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
306c0 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
306e0 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
30700 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.===============
30720 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
30740 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
30760 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
30780 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
307a0 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
307c0 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
307e0 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
30800 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
30820 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
30840 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
30860 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
30880 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
308a0 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....
308c0 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
308e0 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
30900 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
30920 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
30940 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
30960 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.
30980 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
309a0 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.=======
309c0 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 ================================
309e0 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
30a00 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
30a20 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
30a40 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....
30a60 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
30a80 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
30aa0 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
30ac0 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
30ae0 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
30b00 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
30b20 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
30b40 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
30b60 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
30b80 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
30ba0 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
30bc0 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
30be0 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.===============
30c00 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
30c20 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
30c40 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...
30c60 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.
30c80 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
30ca0 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
30cc0 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
30ce0 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
30d00 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
30d20 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
30d40 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
30d60 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
30d80 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
30da0 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
30dc0 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.=========
30de0 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
30e00 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
30e20 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,.
30e40 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
30e60 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
30e80 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
30ea0 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
30ec0 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,..
30ee0 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.***
30f00 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
30f20 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
30f40 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.
30f60 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
30f80 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
30fa0 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
30fc0 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
30fe0 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
31000 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.===============
31020 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
31040 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
31060 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.
31080 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
310a0 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
310c0 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
310e0 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
31100 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
31120 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
31140 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
31160 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....
31180 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
311a0 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
311c0 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
311e0 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
31200 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
31220 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
31240 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....
31260 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
31280 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..
312a0 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.
312c0 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
312e0 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
31300 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
31320 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*....
31340 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*..
31360 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.
31380 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.
313a0 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
313c0 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...
313e0 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
31400 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
31420 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
31440 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
31460 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
31480 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...
314a0 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
314c0 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
314e0 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
31500 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
31520 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
31540 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
31560 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
31580 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
315a0 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.======
315c0 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
315e0 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.
31600 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
31620 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
31640 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.
31660 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
31680 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.
316a0 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.
316c0 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
316e0 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.
31700 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
31720 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
31740 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
31760 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,.
31780 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
317a0 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
317c0 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
317e0 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.
31800 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
31820 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
31840 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
31860 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...
31880 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
318a0 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
318c0 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.
318e0 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.
31900 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-
31920 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
31940 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
31960 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
31980 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
319a0 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
319c0 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
319e0 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
31a00 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
31a20 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
31a40 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
31a60 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
31a80 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
31aa0 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
31ac0 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
31ae0 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
31b00 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
31b20 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.--------------------
31b40 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.
31b60 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
31b80 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
31ba0 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
31bc0 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
31be0 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
31c00 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
31c20 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
31c40 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
31c60 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
31c80 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
31ca0 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
31cc0 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
31ce0 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
31d00 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
31d20 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..
31d40 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-
31d60 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
31d80 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..
31da0 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
31dc0 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
31de0 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
31e00 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
31e20 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
31e40 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.
31e60 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
31e80 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
31ea0 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.
31ec0 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.%(
31ee0 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).\...
31f00 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').=~/
31f20 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
31f40 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
31f60 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
31f80 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
31fa0 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
31fc0 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
31fe0 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
32000 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:.....
32020 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
32040 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
32060 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
32080 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....
320a0 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.
320c0 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
320e0 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
32100 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,..
32120 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
32140 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.
32160 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.
32180 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 --------------------------------
321a0 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
321c0 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
321e0 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.
32200 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
32220 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
32240 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...
32260 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
32280 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....
322a0 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):%(
322c0 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
322e0 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..
32300 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
32320 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.
32340 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
32360 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
32380 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...
323a0 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:
323c0 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:.
323e0 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:
32400 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
32420 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.=================
32440 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
32460 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
32480 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
324a0 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
324c0 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.
324e0 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,.
32500 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.
32520 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
32540 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
32560 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
32580 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.
325a0 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.
325c0 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
325e0 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
32600 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
32620 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.
32640 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
32660 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
32680 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
326a0 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
326c0 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.
326e0 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.*******************
32700 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
32720 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.
32740 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._
32760 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.
32780 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
327a0 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
327c0 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
327e0 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
32800 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
32820 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
32840 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
32860 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.
32880 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
328a0 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.
328c0 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
328e0 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
32900 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
32920 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...
32940 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
32960 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...*.
32980 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
329a0 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
329c0 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
329e0 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
32a00 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.
32a20 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
32a40 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.=============
32a60 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
32a80 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.
32aa0 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.
32ac0 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
32ae0 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.
32b00 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.
32b20 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
32b40 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.
32b60 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
32b80 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
32ba0 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
32bc0 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
32be0 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
32c00 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
32c20 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
32c40 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
32c60 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
32c80 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
32ca0 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
32cc0 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
32ce0 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.------------------------
32d00 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
32d20 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
32d40 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
32d60 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...
32d80 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
32da0 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
32dc0 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
32de0 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
32e00 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
32e20 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.
32e40 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
32e60 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.....
32e80 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
32ea0 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
32ec0 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
32ee0 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....
32f00 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
32f20 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
32f40 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
32f60 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.
32f80 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
32fa0 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
32fc0 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
32fe0 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
33000 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
33020 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
33040 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.
33060 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
33080 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..
330a0 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
330c0 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.-----------------
330e0 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
33100 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
33120 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
33140 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..
33160 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
33180 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
331a0 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
331c0 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
331e0 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
33200 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
33220 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.
33240 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
33260 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
33280 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
332a0 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
332c0 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
332e0 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
33300 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.
33320 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
33340 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
33360 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
33380 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,.
333a0 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...
333c0 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
333e0 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
33400 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.
33420 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....
33440 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
33460 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,..
33480 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,..
334a0 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
334c0 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
334e0 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
33500 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.******************
33520 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.
33540 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.
33560 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
33580 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
335a0 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
335c0 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
335e0 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
33600 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
33620 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.===========================
33640 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
33660 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.
33680 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.
336a0 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.
336c0 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
336e0 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
33700 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
33720 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
33740 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
33760 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
33780 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
337a0 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
337c0 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
337e0 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...
33800 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
33820 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
33840 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
33860 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
33880 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
338a0 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.================
338c0 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
338e0 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
33900 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::.*.
33920 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
33940 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
33960 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
33980 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
339a0 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
339c0 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
339e0 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
33a00 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
33a20 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
33a40 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
33a60 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
33a80 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
33aa0 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
33ac0 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.-----------------------------
33ae0 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
33b00 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
33b20 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
33b40 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
33b60 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
33b80 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
33ba0 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
33bc0 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
33be0 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
33c00 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
33c20 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.
33c40 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
33c60 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
33c80 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
33ca0 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,
33cc0 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
33ce0 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
33d00 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
33d20 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
33d40 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.---------
33d60 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 --------------------------------
33d80 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
33da0 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
33dc0 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..
33de0 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
33e00 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
33e20 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.
33e40 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....
33e60 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
33e80 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....
33ea0 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.
33ec0 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
33ee0 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
33f00 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.
33f20 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
33f40 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
33f60 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.
33f80 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
33fa0 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.....
33fc0 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.....
33fe0 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
34000 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
34020 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....!
34040 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
34060 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....*...
34080 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
340a0 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
340c0 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
340e0 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
34100 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
34120 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
34140 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
34160 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.....
34180 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
341a0 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
341c0 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
341e0 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..
34200 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
34220 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...
34240 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.
34260 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.
34280 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
342a0 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
342c0 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
342e0 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
34300 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
34320 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,.
34340 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....
34360 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
34380 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
343a0 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
343c0 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
343e0 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
34400 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
34420 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
34440 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
34460 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...
34480 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
344a0 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...
344c0 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
344e0 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)
34500 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
34520 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...
34540 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
34560 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.
34580 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
345a0 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
345c0 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.
345e0 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
34600 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
34620 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
34640 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.
34660 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).
34680 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
346a0 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
346c0 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
346e0 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).....
34700 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
34720 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
34740 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
34760 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
34780 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
347a0 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........
347c0 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
347e0 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.....
34800 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
34820 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
34840 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
34860 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
34880 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:.
348a0 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
348c0 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
348e0 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 .-------------------------------
34900 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.....
34920 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
34940 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
34960 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
34980 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
349a0 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...
349c0 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
349e0 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
34a00 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
34a20 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.
34a40 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......
34a60 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........
34a80 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
34aa0 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*.
34ac0 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
34ae0 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
34b00 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
34b20 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
34b40 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
34b60 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
34b80 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
34ba0 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.----------------------
34bc0 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:.
34be0 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
34c00 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.........
34c20 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
34c40 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
34c60 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
34c80 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
34ca0 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
34cc0 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....
34ce0 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......
34d00 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....!
34d20 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
34d40 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
34d60 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
34d80 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..
34da0 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.
34dc0 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
34de0 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
34e00 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
34e20 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-
34e40 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
34e60 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
34e80 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.
34ea0 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
34ec0 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
34ee0 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
34f00 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
34f20 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
34f40 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
34f60 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
34f80 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
34fa0 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
34fc0 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
34fe0 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
35000 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*.....
35020 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
35040 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
35060 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
35080 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*.
350a0 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-
350c0 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.........
350e0 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....!...
35100 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
35120 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
35140 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.......
35160 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
35180 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
351a0 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
351c0 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
351e0 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
35200 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
35220 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
35240 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
35260 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.------
35280 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 -------------------------------.
352a0 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
352c0 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
352e0 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
35300 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-
35320 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........
35340 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
35360 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..
35380 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
353a0 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
353c0 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....
353e0 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.....
35400 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
35420 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.....
35440 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
35460 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
35480 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
354a0 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
354c0 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.....
354e0 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
35500 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,.
35520 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
35540 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
35560 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
35580 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.
355a0 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.------------
355c0 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
355e0 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.
35600 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.
35620 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.........
35640 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...
35660 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........
35680 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
356a0 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
356c0 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-
356e0 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
35700 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
35720 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
35740 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
35760 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.
35780 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
357a0 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.-------------------------
357c0 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
357e0 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
35800 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.
35820 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.........
35840 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
35860 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
35880 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
358a0 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
358c0 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.
358e0 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
35900 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.---------------
35920 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
35940 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
35960 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
35980 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...
359a0 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...
359c0 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-
359e0 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.
35a00 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
35a20 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
35a40 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
35a60 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
35a80 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
35aa0 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
35ac0 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
35ae0 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
35b00 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.***
35b20 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 ********************************
35b40 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
35b60 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
35b80 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
35ba0 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-
35bc0 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
35be0 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
35c00 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
35c20 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.*****************
35c40 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 ********************************
35c60 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
35c80 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.
35ca0 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
35cc0 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
35ce0 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
35d00 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.***
35d20 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
35d40 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:.
35d60 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
35d80 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
35da0 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-
35dc0 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.
35de0 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.
35e00 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
35e20 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.
35e40 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
35e60 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
35e80 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:.
35ea0 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
35ec0 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
35ee0 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
35f00 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
35f20 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.
35f40 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
35f60 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
35f80 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
35fa0 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
35fc0 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
35fe0 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-
36000 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,
36020 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
36040 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
36060 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.**********
36080 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
360a0 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:............................
360c0 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........
360e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36100 20 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..
36120 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:......................
36140 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.....
36160 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:..........
36180 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
361a0 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
361c0 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
361e0 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...
36200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36220 20 20 20 20 20 20 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
36240 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:.
36260 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
36280 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...............
362a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
362c0 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
362e0 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:.......
36300 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.
36320 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 ................................
36340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36360 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:
36380 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
363a0 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..............
363c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
363e0 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
36400 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:........
36420 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
36440 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......................
36460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36480 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
364a0 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
364c0 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.
364e0 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 ................................
36500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36520 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:
36540 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
36560 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..............
36580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
365a0 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
365c0 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:.............
365e0 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.
36600 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...........................
36620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36640 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:.........
36660 20 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
36680 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
366a0 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:......................
366c0 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
366e0 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.........................
36700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36720 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:....
36740 20 20 20 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
36760 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................
36780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
367a0 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
367c0 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:..............
367e0 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.
36800 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:.............
36820 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.
36840 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:............
36860 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.....
36880 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:....
368a0 20 20 20 20 20 20 20 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
368c0 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............
368e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36900 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).*
36920 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:.......................
36940 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...
36960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36980 20 20 20 20 20 20 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
369a0 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:..............
369c0 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
369e0 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
36a00 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
36a20 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.......
36a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36a60 20 20 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.
36a80 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:...
36aa0 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
36ac0 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...........................
36ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36b00 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
36b20 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
36b40 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................
36b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36b80 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
36ba0 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:..........
36bc0 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...
36be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36c00 20 20 20 20 20 20 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
36c20 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
36c40 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
36c60 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.................
36c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36ca0 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
36cc0 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
36ce0 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
36d00 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
36d20 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.............................
36d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36d60 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,.
36d80 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
36da0 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..
36dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36de0 20 20 20 20 20 20 20 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 ...............................(
36e00 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
36e20 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
36e40 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.....................
36e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36e80 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,.
36ea0 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
36ec0 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.......
36ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36f00 20 20 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.
36f20 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:...
36f40 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
36f60 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....................
36f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36fa0 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,
36fc0 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:...............
36fe0 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).
37000 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:......
37020 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.
37040 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 ................................
37060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37080 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:....
370a0 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
370c0 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........................
370e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37100 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
37120 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
37140 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
37160 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:.............
37180 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
371a0 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:...
371c0 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
371e0 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.............................
37200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37220 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
37240 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
37260 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...................
37280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
372a0 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
372c0 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:.........
372e0 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)
37300 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:.....
37320 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
37340 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...............................
37360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37380 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
373a0 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
373c0 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
373e0 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
37400 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............
37420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37440 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).*
37460 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:.......
37480 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.
374a0 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 ................................
374c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
374e0 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
37500 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
37520 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:.
37540 20 20 20 20 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
37560 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
37580 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
375a0 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
375c0 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
375e0 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
37600 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.***********************
37620 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
37640 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:...................
37660 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
37680 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 ................................
376a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
376c0 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
376e0 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
37700 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........
37720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37740 20 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
37760 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
37780 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
377a0 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..........................
377c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
377e0 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
37800 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
37820 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......
37840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37860 20 20 20 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
37880 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:
378a0 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
378c0 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..................
378e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37900 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
37920 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:..........
37940 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
37960 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..............................
37980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
379a0 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
379c0 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
379e0 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..........
37a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37a20 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)
37a40 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:....
37a60 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
37a80 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......................
37aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37ac0 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
37ae0 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:
37b00 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
37b20 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...............................
37b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37b60 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
37b80 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
37ba0 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...........
37bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37be0 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).
37c00 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
37c20 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
37c40 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....................
37c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37c80 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-
37ca0 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:.......
37cc0 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
37ce0 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 ................................
37d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37d20 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
37d40 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
37d60 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............
37d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37da0 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).*
37dc0 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-
37de0 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
37e00 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........................
37e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37e40 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
37e60 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
37e80 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....
37ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37ec0 20 20 20 20 20 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
37ee0 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
37f00 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
37f20 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................
37f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37f60 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
37f80 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:........
37fa0 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
37fc0 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............................
37fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38000 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
38020 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
38040 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..............
38060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38080 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
380a0 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:...........
380c0 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.
380e0 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...........................
38100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38120 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-
38140 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.
38160 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...
38180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
381a0 20 20 20 20 20 20 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
381c0 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
381e0 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
38200 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........................
38220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38240 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
38260 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
38280 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............
382a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
382c0 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).*
382e0 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
38300 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
38320 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 ................................
38340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38360 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
38380 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
383a0 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.....................
383c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
383e0 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
38400 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
38420 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.
38440 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 ................................
38460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38480 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
384a0 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
384c0 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...................
384e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38500 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
38520 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:...............
38540 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
38560 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...............................
38580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
385a0 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
385c0 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
385e0 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............
38600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38620 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).*
38640 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
38660 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
38680 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.........................
386a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
386c0 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-
386e0 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
38700 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
38720 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
38740 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.
38760 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...........................
38780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
387a0 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
387c0 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.
387e0 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........
38800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38820 20 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
38840 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
38860 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
38880 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............
388a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
388c0 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).*
388e0 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:
38900 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
38920 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....................
38940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38960 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-
38980 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:...
389a0 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
389c0 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............................
389e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38a00 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
38a20 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
38a40 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....
38a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38a80 20 20 20 20 20 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
38aa0 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
38ac0 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
38ae0 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..........
38b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38b20 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)
38b40 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
38b60 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
38b80 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.............................
38ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38bc0 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
38be0 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
38c00 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.....
38c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38c40 20 20 20 20 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
38c60 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-
38c80 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
38ca0 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............
38cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38ce0 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).*
38d00 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
38d20 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
38d40 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....................
38d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38d80 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-
38da0 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.
38dc0 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
38de0 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.......................
38e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38e20 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
38e40 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
38e60 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
38e80 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...............................
38ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38ec0 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
38ee0 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
38f00 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.......
38f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38f40 20 20 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.
38f60 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
38f80 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
38fa0 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...............
38fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38fe0 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
39000 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:.........
39020 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
39040 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..........................
39060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39080 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
390a0 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
390c0 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.....
390e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39100 20 20 20 20 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
39120 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
39140 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
39160 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................
39180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
391a0 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
391c0 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:....................
391e0 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..
39200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39220 20 20 20 20 20 20 20 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 ...............................(
39240 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>:..
39260 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.
39280 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.............
392a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
392c0 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).*.
392e0 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:........
39300 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
39320 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..........................
39340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39360 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
39380 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
393a0 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.......
393c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
393e0 20 20 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.
39400 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-
39420 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
39440 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....................
39460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39480 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-
394a0 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:...........
394c0 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.
394e0 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 ................................
39500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39520 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
39540 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
39560 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
39580 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.********
395a0 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:..*.
395c0 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:..............................
395e0 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
39600 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...
39620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39640 20 20 20 20 20 20 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
39660 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:..............
39680 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......
396a0 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:.....
396c0 20 20 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
396e0 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.
39700 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:............................
39720 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..
39740 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>:...............
39760 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.............
39780 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>:......
397a0 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
397c0 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.<
397e0 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
39800 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
39820 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...........................
39840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39860 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>:..
39880 20 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
398a0 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................
398c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
398e0 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
39900 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:...........................
39920 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.......
39940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39960 20 20 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.
39980 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:..................
399a0 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
399c0 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:.........
399e0 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.
39a00 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.
39a20 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
39a40 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...........
39a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39a80 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).
39aa0 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:......................
39ac0 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.............(
39ae0 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>:.........
39b00 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
39b20 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........................
39b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39b60 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:...
39b80 20 20 20 20 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
39ba0 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-
39bc0 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:......................
39be0 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......
39c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39c20 20 20 20 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
39c40 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:.............
39c60 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
39c80 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........................
39ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39cc0 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
39ce0 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
39d00 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...............
39d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39d40 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-
39d60 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:......................
39d80 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
39da0 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>:.........
39dc0 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
39de0 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.............................
39e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39e20 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:........
39e40 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
39e60 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....................
39e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39ea0 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
39ec0 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 :...............................
39ee0 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).
39f00 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>:..................
39f20 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
39f40 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..............................
39f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39f80 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:.........
39fa0 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
39fc0 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:
39fe0 20 20 20 20 20 20 20 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
3a000 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.
3a020 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............................
3a040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3a060 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:.......
3a080 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
3a0a0 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:....
3a0c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3a0e0 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
3a100 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.........
3a120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3a140 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
3a160 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:..........................
3a180 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
3a1a0 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...........................
3a1c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3a1e0 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:............
3a200 20 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
3a220 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........
3a240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3a260 20 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..
3a280 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:...........
3a2a0 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
3a2c0 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..........................
3a2e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3a300 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:.........
3a320 20 20 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
3a340 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...............
3a360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3a380 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-
3a3a0 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:..............................
3a3c0 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....
3a3e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3a400 20 20 20 20 20 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
3a420 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:.....................
3a440 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..
3a460 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>:........
3a480 20 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
3a4a0 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................
3a4c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3a4e0 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:.
3a500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3a520 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......
3a540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3a560 20 20 20 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
3a580 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:.....................
3a5a0 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.
3a5c0 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...........
3a5e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3a600 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).
3a620 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:............................
3a640 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
3a660 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.............................
3a680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3a6a0 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:............
3a6c0 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
3a6e0 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>
3a700 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 :...............................
3a720 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.......
3a740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3a760 20 20 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.
3a780 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:........................
3a7a0 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
3a7c0 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.....................
3a7e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3a800 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:....
3a820 20 20 20 20 20 20 20 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
3a840 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).*
3a860 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:.............................
3a880 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
3a8a0 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
3a8c0 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
3a8e0 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
3a900 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
3a920 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
3a940 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
3a960 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
3a980 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
3a9a0 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
3a9c0 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
3a9e0 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
3aa00 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:.
3aa20 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
3aa40 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
3aa60 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
3aa80 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:.
3aaa0 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
3aac0 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.
3aae0 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
3ab00 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
3ab20 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
3ab40 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
3ab60 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
3ab80 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
3aba0 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
3abc0 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
3abe0 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
3ac00 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
3ac20 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
3ac40 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.
3ac60 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
3ac80 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
3aca0 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.
3acc0 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
3ace0 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
3ad00 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
3ad20 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
3ad40 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
3ad60 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
3ad80 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.
3ada0 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
3adc0 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.
3ade0 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
3ae00 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
3ae20 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
3ae40 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
3ae60 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
3ae80 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.
3aea0 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
3aec0 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
3aee0 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
3af00 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.
3af20 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
3af40 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
3af60 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
3af80 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
3afa0 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
3afc0 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
3afe0 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
3b000 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
3b020 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
3b040 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
3b060 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
3b080 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.
3b0a0 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
3b0c0 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.
3b0e0 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
3b100 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
3b120 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
3b140 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:.......................
3b160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b200 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 30 38 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240408.416/ledger-
3b220 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 00 reconcile.el....................
3b240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b260 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
3b280 30 30 37 30 33 30 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 36 34 31 00 20 30 00 00 00 0070301.00000000000.016641..0...
3b2a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b2c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b2e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b300 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...................
3b320 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...................
3b340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b400 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
3b420 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
3b440 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
3b460 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.(
3b480 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
3b4a0 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
3b4c0 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
3b4e0 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
3b500 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
3b520 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
3b540 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
3b560 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
3b580 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
3b5a0 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..;
3b5c0 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.
3b5e0 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
3b600 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
3b620 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
3b640 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
3b660 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.
3b680 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
3b6a0 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
3b6c0 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
3b6e0 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
3b700 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
3b720 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.;;.
3b740 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.,.
3b760 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,
3b780 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...
3b7a0 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
3b7c0 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
3b7e0 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
3b800 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
3b820 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
3b840 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
3b860 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
3b880 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).
3b8a0 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
3b8c0 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
3b8e0 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
3b900 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)
3b920 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-
3b940 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
3b960 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
3b980 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
3b9a0 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
3b9c0 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.
3b9e0 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
3ba00 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-
3ba20 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
3ba40 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
3ba60 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
3ba80 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
3baa0 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
3bac0 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
3bae0 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
3bb00 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
3bb20 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
3bb40 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
3bb60 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
3bb80 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")
3bba0 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
3bbc0 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.
3bbe0 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
3bc00 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
3bc20 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
3bc40 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,
3bc60 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
3bc80 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
3bca0 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
3bcc0 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
3bce0 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
3bd00 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
3bd20 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
3bd40 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.
3bd60 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
3bd80 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
3bda0 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
3bdc0 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
3bde0 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
3be00 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
3be20 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...
3be40 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
3be60 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
3be80 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
3bea0 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
3bec0 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
3bee0 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
3bf00 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
3bf20 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
3bf40 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
3bf60 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).
3bf80 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
3bfa0 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-
3bfc0 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
3bfe0 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.
3c000 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'."..
3c020 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-
3c040 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
3c060 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
3c080 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."
3c0a0 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.
3c0c0 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
3c0e0 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
3c100 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
3c120 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
3c140 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
3c160 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
3c180 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
3c1a0 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.
3c1c0 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
3c1e0 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
3c200 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
3c220 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
3c240 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)
3c260 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
3c280 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
3c2a0 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.
3c2c0 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
3c2e0 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,
3c300 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
3c320 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.
3c340 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
3c360 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
3c380 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.
3c3a0 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;
3c3c0 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.
3c3e0 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
3c400 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
3c420 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
3c440 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.'
3c460 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
3c480 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-
3c4a0 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.
3c4c0 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
3c4e0 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
3c500 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
3c520 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.
3c540 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-
3c560 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
3c580 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.
3c5a0 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
3c5c0 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
3c5e0 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
3c600 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
3c620 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
3c640 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
3c660 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
3c680 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
3c6a0 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...
3c6c0 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
3c6e0 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
3c700 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
3c720 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
3c740 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
3c760 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
3c780 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
3c7a0 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
3c7c0 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
3c7e0 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
3c800 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
3c820 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-
3c840 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
3c860 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
3c880 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
3c8a0 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
3c8c0 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
3c8e0 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
3c900 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
3c920 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
3c940 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
3c960 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
3c980 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
3c9a0 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
3c9c0 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
3c9e0 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
3ca00 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
3ca20 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
3ca40 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
3ca60 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
3ca80 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
3caa0 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
3cac0 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
3cae0 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
3cb00 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
3cb20 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
3cb40 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-
3cb60 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)
3cb80 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
3cba0 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
3cbc0 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.
3cbe0 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.((
3cc00 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)))
3cc20 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
3cc40 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.
3cc60 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
3cc80 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
3cca0 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."..
3ccc0 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
3cce0 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
3cd00 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
3cd20 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
3cd40 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
3cd60 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
3cd80 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)
3cda0 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
3cdc0 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
3cde0 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
3ce00 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
3ce20 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)
3ce40 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
3ce60 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."
3ce80 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.(-
3cea0 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.
3cec0 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.(
3cee0 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
3cf00 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.
3cf20 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."...
3cf40 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
3cf60 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
3cf80 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
3cfa0 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))
3cfc0 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
3cfe0 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
3d000 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
3d020 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
3d040 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."..
3d060 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
3d080 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
3d0a0 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
3d0c0 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.
3d0e0 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.
3d100 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.
3d120 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
3d140 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
3d160 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
3d180 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
3d1a0 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...
3d1c0 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
3d1e0 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)..................
3d200 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
3d220 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
3d240 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".................
3d260 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
3d280 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
3d2a0 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
3d2c0 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
3d2e0 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
3d300 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
3d320 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
3d340 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-
3d360 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
3d380 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-
3d3a0 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
3d3c0 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
3d3e0 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
3d400 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.((
3d420 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
3d440 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
3d460 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-
3d480 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))).....
3d4a0 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...............
3d4c0 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
3d4e0 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
3d500 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
3d520 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
3d540 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
3d560 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".......................
3d580 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-
3d5a0 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).................
3d5c0 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
3d5e0 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)))............
3d600 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
3d620 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".........................
3d640 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
3d660 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
3d680 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.
3d6a0 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
3d6c0 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
3d6e0 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
3d700 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
3d720 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
3d740 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
3d760 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
3d780 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
3d7a0 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
3d7c0 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)).
3d7e0 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
3d800 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
3d820 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
3d840 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
3d860 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
3d880 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,
3d8a0 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
3d8c0 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-
3d8e0 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
3d900 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
3d920 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
3d940 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
3d960 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.
3d980 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
3d9a0 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
3d9c0 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.
3d9e0 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
3da00 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).............(
3da20 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
3da40 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))
3da60 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
3da80 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
3daa0 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.
3dac0 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
3dae0 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
3db00 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."...
3db20 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
3db40 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
3db60 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)).........(
3db80 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
3dba0 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
3dbc0 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
3dbe0 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-
3dc00 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
3dc20 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)).
3dc40 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).........(
3dc60 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
3dc80 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
3dca0 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.......................
3dcc0 20 20 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
3dce0 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..............................
3dd00 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)))....
3dd20 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.&
3dd40 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.........(
3dd60 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
3dd80 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
3dda0 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.
3ddc0 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
3dde0 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).........
3de00 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-
3de20 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).......................
3de40 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)).
3de60 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
3de80 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
3dea0 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)...
3dec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3dee0 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).............
3df00 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
3df20 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
3df40 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.)))............
3df60 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)..........
3df80 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
3dfa0 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)..............
3dfc0 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
3dfe0 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)........................
3e000 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
3e020 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
3e040 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........
3e060 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
3e080 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)............
3e0a0 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
3e0c0 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)......................
3e0e0 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
3e100 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
3e120 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
3e140 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).....(
3e160 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
3e180 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.()...
3e1a0 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
3e1c0 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
3e1e0 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
3e200 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-
3e220 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
3e240 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
3e260 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.........
3e280 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
3e2a0 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
3e2c0 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
3e2e0 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)...
3e300 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)....
3e320 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))......
3e340 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.
3e360 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
3e380 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.
3e3a0 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
3e3c0 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
3e3e0 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)
3e400 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))...
3e420 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
3e440 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)))
3e460 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
3e480 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
3e4a0 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
3e4c0 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
3e4e0 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)).......
3e500 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-
3e520 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-
3e540 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
3e560 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
3e580 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
3e5a0 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
3e5c0 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
3e5e0 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
3e600 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."
3e620 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
3e640 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
3e660 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.'
3e680 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)))...(
3e6a0 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
3e6c0 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-
3e6e0 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
3e700 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
3e720 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
3e740 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
3e760 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
3e780 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
3e7a0 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).
3e7c0 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
3e7e0 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
3e800 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
3e820 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).........(
3e840 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
3e860 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
3e880 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))).......
3e8a0 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))....
3e8c0 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
3e8e0 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)...................
3e900 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
3e920 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
3e940 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
3e960 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
3e980 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
3e9a0 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
3e9c0 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
3e9e0 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-
3ea00 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
3ea20 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*.
3ea40 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+.(
3ea60 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
3ea80 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..............
3eaa0 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
3eac0 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)..............
3eae0 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
3eb00 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
3eb20 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
3eb40 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....
3eb60 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
3eb80 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
3eba0 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))....
3ebc0 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
3ebe0 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-
3ec00 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
3ec20 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.
3ec40 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.
3ec60 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
3ec80 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)))))..
3eca0 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.()
3ecc0 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."...(
3ece0 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
3ed00 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
3ed20 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
3ed40 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
3ed60 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
3ed80 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.
3eda0 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))))...(
3edc0 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.()
3ede0 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.
3ee00 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
3ee20 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
3ee40 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
3ee60 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
3ee80 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
3eea0 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
3eec0 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.
3eee0 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.
3ef00 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
3ef20 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
3ef40 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
3ef60 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
3ef80 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).
3efa0 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
3efc0 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
3efe0 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
3f000 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))........
3f020 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
3f040 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
3f060 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)...
3f080 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
3f0a0 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
3f0c0 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
3f0e0 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
3f100 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
3f120 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
3f140 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
3f160 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
3f180 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.......
3f1a0 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
3f1c0 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
3f1e0 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
3f200 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).
3f220 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
3f240 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
3f260 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
3f280 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
3f2a0 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
3f2c0 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
3f2e0 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
3f300 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
3f320 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
3f340 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.
3f360 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
3f380 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
3f3a0 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
3f3c0 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)
3f3e0 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
3f400 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-
3f420 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
3f440 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
3f460 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....
3f480 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).
3f4a0 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
3f4c0 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
3f4e0 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-
3f500 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
3f520 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
3f540 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
3f560 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
3f580 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.
3f5a0 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.
3f5c0 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))..................
3f5e0 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.....
3f600 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.(
3f620 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.
3f640 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
3f660 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...........
3f680 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
3f6a0 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
3f6c0 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
3f6e0 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
3f700 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..............;;
3f720 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
3f740 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
3f760 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..
3f780 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...........
3f7a0 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))).....
3f7c0 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
3f7e0 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
3f800 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.
3f820 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
3f840 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)
3f860 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
3f880 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.
3f8a0 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.
3f8c0 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."(\
3f8e0 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
3f900 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
3f920 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
3f940 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
3f960 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
3f980 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."(.*?)"."
3f9a0 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))).....
3f9c0 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
3f9e0 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)
3fa00 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
3fa20 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
3fa40 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
3fa60 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
3fa80 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
3faa0 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
3fac0 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))..................
3fae0 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
3fb00 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..
3fb20 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
3fb40 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
3fb60 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))......
3fb80 20 20 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.
3fba0 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
3fbc0 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............
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 20 27 77 68 65 72 65 ..........................'where
3fc00 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
3fc20 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))..........
3fc40 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-
3fc60 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
3fc80 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..................
3fca0 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))
3fcc0 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.(
3fce0 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)).....................
3fd00 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
3fd20 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
3fd40 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...............................
3fd60 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
3fd80 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
3fda0 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."...(
3fdc0 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))
3fde0 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))........
3fe00 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
3fe20 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
3fe40 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
3fe60 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...............................
3fe80 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..................
3fea0 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.......
3fec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3fee0 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
3ff00 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......................
3ff20 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
3ff40 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.....
3ff60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3ff80 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....
3ffa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3ffc0 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
3ffe0 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............................
40000 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
40020 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..............................
40040 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
40060 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).............
40080 20 20 20 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
400a0 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......
400c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
400e0 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...
40100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
40120 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
40140 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)................
40160 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
40180 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
401a0 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
401c0 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
401e0 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
40200 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
40220 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
40240 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
40260 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
40280 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
402a0 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)......
402c0 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...........
402e0 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................
40300 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.
40320 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.....
40340 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.
40360 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)................
40380 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"."
403a0 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
403c0 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
403e0 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.
40400 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."(
40420 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
40440 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
40460 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
40480 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-
404a0 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)..
404c0 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
404e0 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
40500 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
40520 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
40540 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
40560 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
40580 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
405a0 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)).
405c0 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))...
405e0 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.
40600 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
40620 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.
40640 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
40660 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
40680 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)))
406a0 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
406c0 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.
406e0 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
40700 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
40720 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
40740 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.
40760 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
40780 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
407a0 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
407c0 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
407e0 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
40800 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
40820 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
40840 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.
40860 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
40880 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)..
408a0 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
408c0 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
408e0 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
40900 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).........
40920 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
40940 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).............
40960 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
40980 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)))
409a0 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
409c0 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).....
409e0 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))...
40a00 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
40a20 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
40a40 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
40a60 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.
40a80 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
40aa0 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
40ac0 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.().
40ae0 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
40b00 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
40b20 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
40b40 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
40b60 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
40b80 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...........
40ba0 20 20 20 20 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
40bc0 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......................
40be0 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
40c00 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...............................
40c20 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
40c40 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 ................................
40c60 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...........
40c80 20 20 20 20 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
40ca0 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-
40cc0 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
40ce0 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
40d00 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)
40d20 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
40d40 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
40d60 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
40d80 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
40da0 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
40dc0 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
40de0 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
40e00 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
40e20 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
40e40 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
40e60 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
40e80 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
40ea0 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).
40ec0 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
40ee0 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
40f00 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)))).
40f20 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
40f40 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
40f60 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
40f80 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.
40fa0 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
40fc0 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
40fe0 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.(
41000 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
41020 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
41040 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
41060 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
41080 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
410a0 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
410c0 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
410e0 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*
41100 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-
41120 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.............
41140 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
41160 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.(
41180 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
411a0 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
411c0 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
411e0 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)..........
41200 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
41220 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
41240 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)......
41260 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-
41280 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)))..........;;.
412a0 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
412c0 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
412e0 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............
41300 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
41320 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
41340 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
41360 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)....
41380 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)..
413a0 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-
413c0 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.
413e0 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
41400 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
41420 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-
41440 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
41460 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
41480 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.......
414a0 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.
414c0 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
414e0 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
41500 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-
41520 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).
41540 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
41560 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
41580 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
415a0 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
415c0 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
415e0 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
41600 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
41620 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.(&
41640 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
41660 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
41680 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)...
416a0 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
416c0 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-
416e0 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
41700 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
41720 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
41740 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
41760 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
41780 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.()....
417a0 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
417c0 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).
417e0 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))
41800 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
41820 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
41840 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
41860 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
41880 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
418a0 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
418c0 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.
418e0 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)..
41900 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").#
41920 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).....(
41940 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").#
41960 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
41980 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
419a0 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
419c0 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
419e0 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.(
41a00 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
41a20 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"
41a40 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
41a60 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
41a80 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").
41aa0 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
41ac0 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
41ae0 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
41b00 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
41b20 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
41b40 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)..
41b60 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
41b80 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
41ba0 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
41bc0 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
41be0 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
41c00 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
41c20 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)"
41c40 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-
41c60 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
41c80 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)"
41ca0 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-
41cc0 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
41ce0 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)"))
41d00 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.
41d20 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
41d40 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)")).
41d60 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
41d80 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
41da0 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.
41dc0 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
41de0 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
41e00 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
41e20 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
41e40 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
41e60 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]....."---"
41e80 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
41ea0 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]....."---".....["
41ec0 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
41ee0 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
41f00 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
41f20 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.
41f40 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
41f60 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
41f80 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
41fa0 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-
41fc0 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
41fe0 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
42000 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
42020 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".,
42040 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
42060 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)")]....."---".
42080 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
420a0 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
420c0 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
420e0 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]
42100 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
42120 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
42140 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
42160 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]....."--
42180 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-
421a0 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
421c0 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
421e0 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
42200 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
42220 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-
42240 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..
42260 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
42280 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
422a0 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
422c0 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
422e0 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
42300 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-
42320 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
42340 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............................
42360 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..............
42380 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
423a0 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......
423c0 20 20 20 20 20 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
423e0 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-
42400 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).............
42420 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
42440 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))....
42460 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)))
42480 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)..;
424a0 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
424c0 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 ................................
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 30 38 2e 34 31 36 2f 64 69 72 00 00 00 00 ledger-mode-20240408.416/dir....
42620 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42660 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
42680 30 30 30 31 31 33 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 36 31 33 00 20 30 00 00 00 0001134.00000000000.013613..0...
426a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
426c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
426e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42700 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...................
42720 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...................
42740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
427a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
427c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
427e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42800 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
42820 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
42840 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
42860 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
42880 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
428a0 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
428c0 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
428e0 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
42900 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
42920 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
42940 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,.
42960 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
42980 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
429a0 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
429c0 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.
429e0 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
42a00 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
42a20 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)
42a40 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.....
42a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42c00 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 30 38 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240408.416/ledger-
42c20 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 00 regex.el........................
42c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42c60 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
42c80 30 30 33 33 30 36 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 30 32 30 00 20 30 00 00 00 0033067.00000000000.016020..0...
42ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42d00 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...................
42d20 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...................
42d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42e00 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
42e20 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
42e40 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
42e60 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
42e80 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.
42ea0 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
42ec0 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
42ee0 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
42f00 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.;
42f20 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
42f40 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
42f60 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
42f80 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
42fa0 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..;;.;;
42fc0 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
42fe0 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
43000 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
43020 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
43040 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
43060 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.
43080 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
430a0 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
430c0 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
430e0 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
43100 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
43120 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
43140 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
43160 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
43180 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....;;;
431a0 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
431c0 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
431e0 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-
43200 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
43220 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
43240 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-
43260 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
43280 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
432a0 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,]
432c0 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.
432e0 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..."\\
43300 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.
43320 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..."^[;#|\\*
43340 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
43360 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
43380 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
433a0 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.
433c0 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
433e0 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..."
43400 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
43420 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
43440 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]+[-/][-
43460 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-+\\*\\)?\\(?:\\
43480 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-*\
434a0 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
434c0 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]+[
434e0 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-+\\(([^)]+
43500 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-*\\(;
43520 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
43540 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]+[-/][-
43560 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-+\\(([^)]+)\\
43580 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-*\\(;\\|
435a0 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
435c0 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]+[-/][-/
435e0 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-+\\)?\
43600 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-*\\(;\\|$\\)")..
43620 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
43640 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]+\\
43660 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
43680 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
436a0 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
436c0 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
436e0 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
43700 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..
43720 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
43740 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..."
43760 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]+\\(?:.[^][
43780 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
437a0 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.
437c0 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
437e0 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
43800 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
43820 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
43840 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."[])]?")).
43860 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
43880 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]+\\(
438a0 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
438c0 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))..;;.
438e0 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
43900 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
43920 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
43940 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
43960 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
43980 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\\|%
439a0 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-
439c0 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
439e0 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
43a00 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."\\(^[.
43a20 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
43a40 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
43a60 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
43a80 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
43aa0 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))
43ac0 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
43ae0 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)...
43b00 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
43b20 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.".
43b40 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))...
43b60 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-
43b80 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....
43ba0 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
43bc0 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
43be0 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
43c00 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
43c20 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).......
43c40 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................
43c60 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-"
43c80 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).............
43ca0 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
43cc0 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
43ce0 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
43d00 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)........
43d20 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
43d40 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
43d60 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.............
43d80 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.
43da0 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.......
43dc0 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
43de0 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"
43e00 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)))........
43e20 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...
43e40 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...............`
43e60 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
43e80 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
43ea0 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)))..............
43ec0 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)........
43ee0 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
43f00 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)...
43f20 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....
43f40 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.
43f60 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
43f80 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)..............................
43fa0 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"))................
43fc0 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
43fe0 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
44000 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).......
44020 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)).......
44040 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)...
44060 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)).
44080 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
440a0 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
440c0 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
440e0 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
44100 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.(
44120 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))...............
44140 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)...........
44160 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))..
44180 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)
441a0 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
441c0 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
441e0 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))))...........
44200 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............
44220 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.
44240 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)))..........
44260 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)).
44280 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...
442a0 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
442c0 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
442e0 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-".
44300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
44320 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
44340 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)...........................
44360 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
44380 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........
443a0 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.......
443c0 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................
443e0 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-"
44400 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).............
44420 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
44440 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)))...............
44460 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....................(
44480 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....................
444a0 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...................
444c0 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.................
444e0 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-"
44500 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).........
44520 20 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
44540 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))........
44560 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-
44580 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)....
445a0 20 20 20 20 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
445c0 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...
445e0 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..
44600 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...........
44620 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-
44640 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)......
44660 20 20 20 20 20 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 ............................."-"
44680 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)))............
446a0 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)........
446c0 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
446e0 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."....
44700 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)..
44720 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.....
44740 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
44760 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).
44780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
447a0 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)))..
447c0 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)))).......
447e0 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
44800 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-
44820 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
44840 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
44860 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.
44880 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.?-.?/
448a0 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
448c0 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))..............
448e0 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
44900 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))).............
44920 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
44940 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
44960 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
44980 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
449a0 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....`
449c0 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
449e0 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.?
44a00 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
44a20 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
44a40 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".
44a60 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.
44a80 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
44aa0 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
44ac0 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
44ae0 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
44b00 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
44b20 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.(+?
44b40 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
44b60 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
44b80 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
44ba0 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
44bc0 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)))..."
44be0 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
44c00 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
44c20 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
44c40 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
44c60 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-
44c80 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).?\;..........
44ca0 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)
44cc0 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
44ce0 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
44d00 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).....
44d20 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
44d40 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
44d60 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
44d80 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......
44da0 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
44dc0 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.(
44de0 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
44e00 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.(+
44e20 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
44e40 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).(+
44e60 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.
44e80 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)).......
44ea0 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
44ec0 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
44ee0 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
44f00 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
44f20 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...
44f40 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
44f60 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
44f80 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.?\[.?\(
44fa0 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
44fc0 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
44fe0 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.?\[.?\()))
45000 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
45020 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....`(
45040 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-
45060 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
45080 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).......
450a0 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.?\].?\))))))...""
450c0 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
450e0 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.
45100 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
45120 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.?\"))).?\")..
45140 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.
45160 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....
45180 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 ....................?-.?\[.?\]..
451a0 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 ......................?..?,.?\;.
451c0 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 ?+.?*.?/.?^.??.?:.?&.?|.?!.?=...
451e0 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 .....................?\<.?\>.?\{
45200 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
45220 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
45240 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
45260 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
45280 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
452a0 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.
452c0 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).....
452e0 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
45300 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
45320 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....`
45340 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
45360 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
45380 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-
453a0 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
453c0 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.,
453e0 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
45400 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)..
45420 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
45440 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)).......
45460 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
45480 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).............
454a0 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)................
454c0 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-
454e0 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
45500 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
45520 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.(*.
45540 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.?\
45560 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
45580 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).?\})..............
455a0 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
455c0 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).?\])................
455e0 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.?\))).?\)))))
45600 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
45620 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.
45640 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
45660 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)........
45680 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
456a0 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
456c0 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
456e0 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.
45700 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
45720 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
45740 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
45760 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.(
45780 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
457a0 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...(
457c0 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
457e0 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
45800 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)
45820 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
45840 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)..
45860 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
45880 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)..........
458a0 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
458c0 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)))..............(
458e0 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
45900 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)))..."
45920 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
45940 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
45960 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
45980 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.
459a0 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."\
459c0 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]*[-+=]?.*
459e0 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
45a00 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.".*\\)?"...........;
45a20 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.
45a40 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.....
45a60 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
45a80 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
45aa0 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
45ac0 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
45ae0 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
45b00 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
45b20 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
45b40 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
45b60 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
45b80 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
45ba0 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............"\\([-+=]?.
45bc0 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,.]+?\\)\\)".
45be0 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)]+\\)?"..
45c00 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
45c20 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."\\)?"..........."\\(
45c40 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;]+?\\)?"......
45c60 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]*\\)?
45c80 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
45ca0 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")))).
45cc0 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
45ce0 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)))...""
45d00 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
45d20 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.(
45d40 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")..................
45d60 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.?-))....
45d80 20 20 20 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
45da0 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))........
45dc0 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.,
45de0 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)........
45e00 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.(
45e20 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
45e40 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)))........................
45e60 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
45e80 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))).........
45ea0 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).
45ec0 20 20 20 20 20 20 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
45ee0 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).....
45f00 20 20 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
45f20 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))))
45f40 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
45f60 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
45f80 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..
45fa0 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))
45fc0 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
45fe0 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
46000 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\\}\
46020 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
46040 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
46060 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.......
46080 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
460a0 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
460c0 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...
460e0 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]+\\([*!]\\)\\
46100 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..........
46120 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]+\\((.*?)\\)\\)?"..;
46140 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..........."\\(?
46160 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,
46180 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..........."\\(?:\\(?:\
461a0 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]*\\
461c0 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....
461e0 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
46200 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:]
46220 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.......
46240 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
46260 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..........."\\(\\([*!]\\)?"...
46280 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....
462a0 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:]]*\\(.*?\\)\\)
462c0 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..........
462e0 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
46300 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]*?\
46320 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
46340 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\\|[[:
46360 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,\\}\\)"..........."
46380 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
463a0 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...........))....(
463c0 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-
463e0 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]")...
46400 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
46420 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..........
46440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
464a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
464c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
464e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
465a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
465c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
465e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46600 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 30 38 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240408.416/ledger-
46620 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 00 state.el........................
46640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46660 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
46680 30 30 32 33 30 37 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 30 32 36 00 20 30 00 00 00 0023077.00000000000.016026..0...
466a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
466c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
466e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46700 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...................
46720 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...................
46740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
467a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
467c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
467e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46800 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
46820 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
46840 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
46860 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
46880 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.
468a0 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
468c0 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
468e0 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
46900 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.;
46920 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
46940 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
46960 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
46980 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
469a0 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..;;.;;
469c0 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
469e0 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
46a00 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
46a20 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
46a40 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
46a60 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.
46a80 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
46aa0 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
46ac0 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
46ae0 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
46b00 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
46b20 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
46b40 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
46b60 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
46b80 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....;;;
46ba0 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
46bc0 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
46be0 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.'
46c00 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
46c20 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
46c40 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
46c60 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
46c80 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."...
46ca0 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)
46cc0 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
46ce0 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.
46d00 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
46d20 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-
46d40 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
46d60 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)).
46d80 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./
46da0 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
46dc0 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.
46de0 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).............
46e00 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
46e20 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
46e40 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
46e60 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.".
46e80 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
46ea0 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)).....
46ec0 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
46ee0 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
46f00 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."\\*
46f20 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.(
46f40 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)))))..(
46f60 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
46f80 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
46fa0 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...
46fc0 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).....
46fe0 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 ......"!"........."*")....."")).
47000 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.(
47020 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
47040 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
47060 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
47080 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)......
470a0 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
470c0 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
470e0 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
47100 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
47120 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.....
47140 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
47160 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
47180 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
471a0 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.";".
471c0 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.
471e0 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
47200 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).
47220 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.
47240 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
47260 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
47280 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
472a0 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
472c0 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.
472e0 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
47300 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
47320 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
47340 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.
47360 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
47380 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
473a0 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
473c0 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
473e0 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
47400 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
47420 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
47440 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
47460 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
47480 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
474a0 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
474c0 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.
474e0 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
47500 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....
47520 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
47540 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......
47560 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.
47580 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
475a0 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.....
475c0 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./=\\-
475e0 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-
47600 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
47620 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.....
47640 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.
47660 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).'(?\*.?\!))........
47680 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
476a0 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))))....
476c0 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
476e0 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
47700 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.
47720 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-
47740 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.((
47760 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)))........
47780 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)..........
477a0 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)
477c0 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
477e0 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).
47800 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-
47820 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
47840 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
47860 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.
47880 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
478a0 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
478c0 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
478e0 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
47900 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)).....
47920 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
47940 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).".")........
47960 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.".
47980 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).......
479a0 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."..")
479c0 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
479e0 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))...
47a00 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)))...
47a20 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.
47a40 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
47a60 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
47a80 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.(
47aa0 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)).......
47ac0 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]")......
47ae0 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")...
47b00 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))......
47b20 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
47b40 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))))....
47b60 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."*!."
47b80 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
47ba0 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.(>
47bc0 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-
47be0 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))............
47c00 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..............
47c20 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
47c40 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)..............
47c60 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
47c80 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
47ca0 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.
47cc0 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.(
47ce0 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)).............
47d00 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..................
47d20 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.."*.").............
47d40 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
47d60 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
47d80 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))..........
47da0 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.................
47dc0 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.."!.")..............
47de0 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))
47e00 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.........
47e20 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.."*.")........
47e40 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
47e60 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
47e80 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
47ea0 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]\\)"
47ec0 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 ................................
47ee0 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))
47f00 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..........
47f20 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")......
47f40 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))...
47f60 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.".[.
47f80 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-
47fa0 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
47fc0 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
47fe0 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
48000 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))))......
48020 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
48040 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
48060 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
48080 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
480a0 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
480c0 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
480e0 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.....
48100 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
48120 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
48140 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)......
48160 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).............(
48180 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
481a0 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]
481c0 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
481e0 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
48200 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
48220 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
48240 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)).....
48260 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...........
48280 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
482a0 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
482c0 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
482e0 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)).........
48300 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))))
48320 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)).....
48340 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
48360 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
48380 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))...........(
483a0 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.(
483c0 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]").............
483e0 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")......
48400 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)))....
48420 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."
48440 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
48460 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))).............
48480 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)...........
484a0 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
484c0 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
484e0 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]\\)
48500 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 "...............................
48520 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
48540 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.
48560 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.?.)))))).....
48580 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)).........
485a0 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))......
485c0 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./=
485e0 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..........
48600 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
48620 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
48640 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
48660 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
48680 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
486a0 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]\\)"
486c0 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 ................................
486e0 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)........
48700 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
48720 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").................(
48740 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))................(
48760 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]")...........
48780 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))..........
487a0 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.".").........
487c0 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)))))))...
487e0 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
48800 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)..
48820 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
48840 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
48860 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
48880 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.(
488a0 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
488c0 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))........
488e0 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))...
48900 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
48920 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).(
48940 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
48960 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..
48980 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........
489a0 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).............
489c0 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).............
489e0 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)..........
48a00 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-+[*!
48a20 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
48a40 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))......
48a60 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))).......
48a80 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)........
48aa0 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
48ac0 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
48ae0 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
48b00 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
48b20 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
48b40 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
48b60 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
48b80 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.(
48ba0 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]")........
48bc0 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-
48be0 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
48c00 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
48c20 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
48c40 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
48c60 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)............
48c80 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.(
48ca0 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)).........
48cc0 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
48ce0 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
48d00 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))..........
48d20 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.".*")..............
48d40 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
48d60 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)).........
48d80 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
48da0 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).
48dc0 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
48de0 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
48e00 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).
48e20 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..
48e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48e60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48e80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
48fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49000 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 30 38 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240408.416/ledger-
49020 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 00 fonts.el........................
49040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49060 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
49080 30 30 36 31 30 30 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 30 33 31 00 20 30 00 00 00 0061006.00000000000.016031..0...
490a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
490c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
490e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49100 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...................
49120 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...................
49140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
491a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
491c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
491e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49200 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
49220 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
49240 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
49260 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
49280 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.
492a0 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
492c0 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
492e0 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
49300 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.;
49320 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
49340 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
49360 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
49380 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
493a0 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..;;.;;
493c0 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
493e0 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
49400 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
49420 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
49440 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
49460 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.
49480 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
494a0 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
494c0 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
494e0 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
49500 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
49520 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
49540 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
49560 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
49580 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.....;;
495a0 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
495c0 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
495e0 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
49600 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
49620 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
49640 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.
49660 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
49680 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
496a0 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
496c0 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
496e0 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.
49700 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
49720 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
49740 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...`
49760 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-
49780 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
497a0 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
497c0 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
497e0 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
49800 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
49820 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.
49840 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
49860 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-
49880 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
498a0 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
498c0 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"
498e0 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
49900 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
49920 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
49940 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
49960 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
49980 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.
499a0 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
499c0 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
499e0 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
49a00 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...`((
49a20 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
49a40 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
49a60 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
49a80 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
49aa0 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
49ac0 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).'
49ae0 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
49b00 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
49b20 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"
49b40 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
49b60 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...`(
49b80 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
49ba0 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
49bc0 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
49be0 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...`
49c00 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
49c20 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
49c40 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
49c60 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
49c80 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
49ca0 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
49cc0 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"...
49ce0 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.
49d00 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
49d20 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
49d40 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.
49d60 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
49d80 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
49da0 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.:
49dc0 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-
49de0 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
49e00 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
49e20 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
49e40 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
49e60 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-
49e80 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
49ea0 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
49ec0 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
49ee0 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
49f00 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
49f20 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.
49f40 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-
49f60 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...`(
49f80 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
49fa0 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
49fc0 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
49fe0 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-
4a000 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
4a020 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
4a040 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
4a060 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
4a080 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
4a0a0 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
4a0c0 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
4a0e0 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
4a100 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
4a120 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
4a140 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.
4a160 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
4a180 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
4a1a0 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
4a1c0 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.
4a1e0 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
4a200 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
4a220 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
4a240 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
4a260 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
4a280 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
4a2a0 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-
4a2c0 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
4a2e0 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
4a300 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
4a320 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
4a340 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
4a360 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
4a380 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
4a3a0 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
4a3c0 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..
4a3e0 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
4a400 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.
4a420 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
4a440 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
4a460 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.:
4a480 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
4a4a0 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
4a4c0 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
4a4e0 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
4a500 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
4a520 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
4a540 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
4a560 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
4a580 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.
4a5a0 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
4a5c0 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
4a5e0 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
4a600 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
4a620 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
4a640 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
4a660 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
4a680 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
4a6a0 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.:
4a6c0 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
4a6e0 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
4a700 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
4a720 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
4a740 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
4a760 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
4a780 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
4a7a0 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-
4a7c0 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
4a7e0 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
4a800 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"...:
4a820 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
4a840 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.
4a860 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
4a880 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
4a8a0 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
4a8c0 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...`
4a8e0 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
4a900 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
4a920 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
4a940 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-
4a960 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
4a980 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
4a9a0 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"..
4a9c0 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
4a9e0 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.
4aa00 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
4aa20 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
4aa40 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)
4aa60 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
4aa80 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
4aaa0 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
4aac0 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"
4aae0 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
4ab00 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
4ab20 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-
4ab40 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
4ab60 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-
4ab80 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
4aba0 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
4abc0 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
4abe0 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
4ac00 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
4ac20 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
4ac40 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
4ac60 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
4ac80 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
4aca0 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
4acc0 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-
4ace0 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
4ad00 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
4ad20 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"...:
4ad40 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
4ad60 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
4ad80 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
4ada0 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
4adc0 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
4ade0 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
4ae00 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-
4ae20 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
4ae40 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
4ae60 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-
4ae80 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
4aea0 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
4aec0 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
4aee0 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
4af00 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-
4af20 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
4af40 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
4af60 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
4af80 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).
4afa0 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
4afc0 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))
4afe0 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
4b000 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)..
4b020 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
4b040 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
4b060 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.
4b080 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"...:
4b0a0 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
4b0c0 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..
4b0e0 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
4b100 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.
4b120 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
4b140 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
4b160 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
4b180 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
4b1a0 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
4b1c0 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
4b1e0 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...`((
4b200 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
4b220 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
4b240 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
4b260 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
4b280 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
4b2a0 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))..."
4b2c0 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
4b2e0 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
4b300 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-
4b320 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
4b340 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.
4b360 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
4b380 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
4b3a0 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.
4b3c0 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))..."
4b3e0 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
4b400 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
4b420 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
4b440 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
4b460 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
4b480 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"...
4b4a0 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.
4b4c0 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...`
4b4e0 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
4b500 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.
4b520 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
4b540 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
4b560 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))
4b580 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
4b5a0 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
4b5c0 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
4b5e0 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))...
4b600 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
4b620 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)..(
4b640 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
4b660 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
4b680 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
4b6a0 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"...
4b6c0 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.
4b6e0 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...`
4b700 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
4b720 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
4b740 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".
4b760 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
4b780 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
4b7a0 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
4b7c0 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.
4b7e0 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-
4b800 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
4b820 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))
4b840 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
4b860 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)
4b880 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
4b8a0 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
4b8c0 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
4b8e0 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"..
4b900 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
4b920 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...`((
4b940 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))
4b960 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
4b980 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).
4b9a0 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-
4b9c0 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
4b9e0 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
4ba00 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,
4ba20 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
4ba40 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-
4ba60 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
4ba80 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))
4baa0 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
4bac0 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)
4bae0 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
4bb00 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
4bb20 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".
4bb40 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
4bb60 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
4bb80 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
4bba0 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.
4bbc0 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
4bbe0 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
4bc00 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.
4bc20 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
4bc40 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
4bc60 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
4bc80 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
4bca0 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.:
4bcc0 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
4bce0 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
4bd00 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
4bd20 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
4bd40 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...`((
4bd60 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
4bd80 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
4bda0 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
4bdc0 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-
4bde0 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
4be00 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
4be20 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
4be40 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
4be60 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
4be80 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
4bea0 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
4bec0 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
4bee0 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
4bf00 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
4bf20 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
4bf40 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
4bf60 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-
4bf80 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
4bfa0 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.
4bfc0 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
4bfe0 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"..
4c000 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
4c020 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.:
4c040 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
4c060 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.
4c080 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
4c0a0 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
4c0c0 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
4c0e0 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
4c100 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-
4c120 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
4c140 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
4c160 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
4c180 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
4c1a0 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
4c1c0 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
4c1e0 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
4c200 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
4c220 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
4c240 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
4c260 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
4c280 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
4c2a0 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
4c2c0 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
4c2e0 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
4c300 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
4c320 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
4c340 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
4c360 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
4c380 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
4c3a0 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
4c3c0 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
4c3e0 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
4c400 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
4c420 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.'
4c440 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
4c460 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
4c480 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
4c4a0 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
4c4c0 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.
4c4e0 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
4c500 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
4c520 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.
4c540 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.
4c560 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
4c580 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
4c5a0 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
4c5c0 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))))).....(
4c5e0 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
4c600 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
4c620 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))..........
4c640 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
4c660 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
4c680 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
4c6a0 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
4c6c0 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
4c6e0 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
4c700 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.
4c720 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
4c740 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
4c760 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.
4c780 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
4c7a0 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")).......(
4c7c0 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)))
4c7e0 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
4c800 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.
4c820 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
4c840 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
4c860 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
4c880 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...)...
4c8a0 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
4c8c0 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
4c8e0 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
4c900 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
4c920 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.`
4c940 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
4c960 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
4c980 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
4c9a0 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
4c9c0 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
4c9e0 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
4ca00 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))..............
4ca20 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-
4ca40 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)).............
4ca60 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
4ca80 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-
4caa0 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...`(("^[;#%|*].*$"
4cac0 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)...
4cae0 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:
4cb00 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
4cb20 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)...
4cb40 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-
4cb60 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
4cb80 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.........'(("^[.
4cba0 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
4cbc0 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]
4cbe0 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:]]+\\(.
4cc00 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
4cc20 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)......
4cc40 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-
4cc60 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))...........("^[.\
4cc80 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:]]+\
4cca0 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
4ccc0 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)..
4cce0 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
4cd00 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))..........
4cd20 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
4cd40 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:]]+\\(.*\\)\\)?$"............
4cd60 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-
4cd80 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
4cda0 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))....
4cdc0 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\\)\\(?:
4cde0 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:]]+\\(.*\\)\\)?$"......
4ce00 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
4ce20 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
4ce40 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.
4ce60 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
4ce80 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:]]+\\(.*\\)\
4cea0 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
4cec0 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).........
4cee0 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
4cf00 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))...........("
4cf20 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:]
4cf40 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.'
4cf60 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)
4cf80 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
4cfa0 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)).....
4cfc0 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\\)\\>.
4cfe0 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
4d000 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))))).....("
4d020 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:]]+\\(
4d040 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]*\\)\\(?:=\\(.*\\)\\)?\\)?
4d060 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
4d080 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
4d0a0 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)..
4d0c0 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
4d0e0 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
4d100 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:]]
4d120 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
4d140 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:]]+\\(.*\\)\\)
4d160 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\\)\\
4d180 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:]]+\\(.*\\)\\)?\\)\\
4d1a0 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
4d1c0 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
4d1e0 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.:
4d200 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-
4d220 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.'
4d240 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
4d260 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-
4d280 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)).....("
4d2a0 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:]]+\\
4d2c0 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
4d2e0 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
4d300 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
4d320 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\
4d340 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:]]+\\(.*\\)\
4d360 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
4d380 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
4d3a0 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.:
4d3c0 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\\)"..
4d3e0 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:]]+\
4d400 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:]]*"......
4d420 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:]]*\\(.
4d440 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-
4d460 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.'
4d480 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
4d4a0 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
4d4c0 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.
4d4e0 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\\)"..............."
4d500 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:]]+\\(.*?\\)".....
4d520 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]\
4d540 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,\\}\\)\\(.*\\)\\)?\\)?$")...
4d560 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
4d580 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-
4d5a0 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)..
4d5c0 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
4d5e0 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
4d600 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:]]+\\(.*\\)\\)
4d620 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
4d640 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
4d660 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
4d680 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
4d6a0 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\\)\\>"..............."[^
4d6c0 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
4d6e0 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\\)\\>
4d700 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
4d720 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\\)\
4d740 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:]]+\\(.*\\)\\)?$"..
4d760 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
4d780 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
4d7a0 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)
4d7c0 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
4d7e0 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]+\\(;.*\\)"
4d800 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)).
4d820 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\\)\\(
4d840 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:]]+\\(.*\\)\\)?$"....
4d860 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
4d880 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
4d8a0 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)
4d8c0 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\\
4d8e0 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:]]+\\(.*\\)\\)?$"
4d900 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
4d920 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
4d940 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
4d960 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
4d980 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\\)\\>.*"..........
4d9a0 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
4d9c0 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
4d9e0 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
4da00 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)))
4da20 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:]
4da40 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
4da60 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.
4da80 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
4daa0 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."^\\
4dac0 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\\)"...............
4dae0 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]*?\\)
4db00 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:]]*"..............."\\(
4db20 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:]]*\\(.*\\)\\)?\\)?$
4db40 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
4db60 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
4db80 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)..
4dba0 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-
4dbc0 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."^
4dbe0 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\\)"..............."\\(?:[
4dc00 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\\)".........
4dc20 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
4dc40 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\\)\\>.*\\)?\\)?$").....
4dc60 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
4dc80 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
4dca0 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.'
4dcc0 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
4dce0 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\\)\
4dd00 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:]]+\\(.*\\)\\)?$"..
4dd20 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
4dd40 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
4dd60 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))....
4dd80 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:]]+\
4dda0 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
4ddc0 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.
4dde0 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
4de00 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\\)\
4de20 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
4de40 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:]]+\\(.*\\)\\
4de60 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
4de80 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
4dea0 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
4dec0 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
4dee0 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)).....("^
4df00 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:]]+\\
4df20 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
4df40 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)......(
4df60 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-
4df80 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\\)\\
4dfa0 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:]]+\\(.*\\)\\)?$"...
4dfc0 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
4dfe0 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
4e000 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
4e020 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:]]+\\(.*\\)\\
4e040 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-
4e060 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-
4e080 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)..
4e0a0 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
4e0c0 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]+\\(;.*\\)".(
4e0e0 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))...
4e100 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\\)\\(?
4e120 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:]]+\\(.*\\)\\)?$".....
4e140 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
4e160 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
4e180 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
4e1a0 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\\
4e1c0 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:]]+\\(.*\\)\\)?$"
4e1e0 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
4e200 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.'
4e220 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))
4e240 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\\)"....
4e260 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:]]+\\(
4e280 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]+"..............."
4e2a0 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:]][^[:
4e2c0 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]*\\)?\\)".............
4e2e0 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:]]+\\(\".*?\"\\
4e300 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]+\\)"............
4e320 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:]]+\\(.*\\)\\)
4e340 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
4e360 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.
4e380 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
4e3a0 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
4e3c0 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.
4e3e0 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
4e400 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
4e420 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
4e440 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).....
4e460 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
4e480 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
4e4a0 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]+\\
4e4c0 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
4e4e0 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
4e500 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:]]+\\(.*\\)\
4e520 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
4e540 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)..........
4e560 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
4e580 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))...........("^[
4e5a0 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:]
4e5c0 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.'
4e5e0 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
4e600 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
4e620 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))))
4e640 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]\\)".
4e660 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:]]+
4e680 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]+".............
4e6a0 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:]\
4e6c0 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]+\\)?\\)"..............."\\(?:
4e6e0 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:]]+\\(.*?\\)"..........
4e700 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,\
4e720 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 \}\\)\\(.*?\\)"..............."\
4e740 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,\\}\\)\\
4e760 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 (;.*\\)\\)?\\)?\\)?\\)?$")......
4e780 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
4e7a0 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
4e7c0 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)......
4e7e0 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
4e800 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-
4e820 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............
4e840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4e860 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
4e880 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
4e8a0 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.
4e8c0 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
4e8e0 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..............................
4e900 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-
4e920 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)
4e940 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
4e960 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]\\)\
4e980 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
4e9a0 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
4e9c0 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:]]+\\(.*\\)
4e9e0 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
4ea00 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
4ea20 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))......
4ea40 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.
4ea60 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
4ea80 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
4eaa0 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."^\\(?:\\([=
4eac0 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
4eae0 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...................."
4eb00 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
4eb20 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]+\\(
4eb40 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
4eb60 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....................".*\\)"..
4eb80 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
4eba0 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
4ebc0 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.
4ebe0 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 ...................)............
4ec00 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
4ec20 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
4ec40 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).............
4ec60 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)).
4ec80 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)
4eca0 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
4ecc0 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
4ece0 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..................
4ed00 20 20 20 20 20 20 20 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
4ed20 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))))
4ed40 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."^\\(?:\\(\\([=
4ed60 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
4ed80 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...............
4eda0 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]*\\)"....
4edc0 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............
4ede0 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.
4ee00 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,
4ee20 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
4ee40 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
4ee60 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).............
4ee80 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)).
4eea0 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)
4eec0 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
4eee0 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)).........
4ef00 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
4ef20 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)......
4ef40 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
4ef60 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
4ef80 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
4efa0 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.......................
4efc0 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
4efe0 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.................
4f000 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
4f020 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)).......
4f040 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
4f060 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)......,@(
4f080 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.......
4f0a0 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]+\\(;.*\\)".........
4f0c0 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)
4f0e0 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
4f100 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.
4f120 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.
4f140 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
4f160 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
4f180 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.........
4f1a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4f1c0 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
4f1e0 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...................
4f200 20 20 20 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
4f220 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))...
4f240 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)...........
4f260 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
4f280 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
4f2a0 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......................
4f2c0 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
4f2e0 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.
4f300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4f320 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
4f340 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
4f360 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
4f380 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))))))...
4f3a0 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
4f3c0 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-
4f3e0 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
4f400 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...........................
4f420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
4f4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 ................................