summaryrefslogtreecommitdiff
path: root/localrepo/ledger-mode-20240416.416.tar
blob: 5d8c8342eac6700e222c7d946fa1ee5ccd75da3e (plain)
ofshex dumpascii
0000 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 36 2e 34 31 36 2f 00 00 00 00 00 00 00 ledger-mode-20240416.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 32 00 20 35 00 00 00 0000000.00000000000.013112..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 31 36 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240416.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 36 00 20 30 00 00 00 0015320.00000000000.015646..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 31 36 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240416.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 31 00 20 30 00 00 00 0012322.00000000000.015751..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 31 36 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240416.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 35 30 30 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 34 36 37 00 20 30 00 00 00 0035001.00000000000.016467..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 6b 65 79 2d 74 79 70 65 20 73 74 72 69 6e 67 20 3a 76 61 6c 75 65 2d 74 79 70 65 ist.:key-type.string.:value-type
4480 20 28 67 72 6f 75 70 20 69 6e 74 65 67 65 72 29 29 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 .(group.integer))...:group.'ledg
44a0 65 72 2d 73 63 68 65 64 75 6c 65 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6c 65 64 67 65 72 2d 62 er-schedule)..(defsubst.ledger-b
44c0 65 74 77 65 65 6e 20 28 76 61 6c 20 6c 6f 77 20 68 69 67 68 29 0a 20 20 22 52 65 74 75 72 6e 20 etween.(val.low.high)..."Return.
44e0 54 52 55 45 20 69 66 20 56 41 4c 20 3e 3d 20 4c 4f 57 20 61 6e 64 20 3c 3d 20 48 49 47 48 2e 22 TRUE.if.VAL.>=.LOW.and.<=.HIGH."
4500 0a 20 20 28 64 65 63 6c 61 72 65 20 28 6f 62 73 6f 6c 65 74 65 20 3c 3d 20 22 4c 65 64 67 65 72 ...(declare.(obsolete.<=."Ledger
4520 2d 6d 6f 64 65 20 76 34 2e 30 2e 31 22 29 29 0a 20 20 28 3c 3d 20 6c 6f 77 20 76 61 6c 20 68 69 -mode.v4.0.1"))...(<=.low.val.hi
4540 67 68 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 64 61 79 gh))..(defun.ledger-schedule-day
4560 73 2d 69 6e 2d 6d 6f 6e 74 68 20 28 6d 6f 6e 74 68 20 79 65 61 72 29 0a 20 20 22 52 65 74 75 72 s-in-month.(month.year)..."Retur
4580 6e 20 6e 75 6d 62 65 72 20 6f 66 20 64 61 79 73 20 69 6e 20 74 68 65 20 4d 4f 4e 54 48 2c 20 4d n.number.of.days.in.the.MONTH,.M
45a0 4f 4e 54 48 20 69 73 20 66 72 6f 6d 20 31 20 74 6f 20 31 32 2e 0a 49 66 20 59 45 41 52 20 69 73 ONTH.is.from.1.to.12..If.YEAR.is
45c0 20 6e 69 6c 2c 20 61 73 73 75 6d 65 20 69 74 20 69 73 20 6e 6f 74 20 61 20 6c 65 61 70 20 79 65 .nil,.assume.it.is.not.a.leap.ye
45e0 61 72 22 0a 20 20 28 69 66 20 28 3c 3d 20 31 20 6d 6f 6e 74 68 20 31 32 29 0a 20 20 20 20 20 20 ar"...(if.(<=.1.month.12).......
4600 28 69 66 20 28 61 6e 64 20 79 65 61 72 20 28 64 61 74 65 2d 6c 65 61 70 2d 79 65 61 72 2d 70 20 (if.(and.year.(date-leap-year-p.
4620 79 65 61 72 29 20 28 3d 20 32 20 6d 6f 6e 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 32 39 0a year).(=.2.month))...........29.
4640 20 20 20 20 20 20 20 20 28 6e 74 68 20 28 31 2d 20 6d 6f 6e 74 68 29 20 27 28 33 31 20 32 38 20 ........(nth.(1-.month).'(31.28.
4660 33 31 20 33 30 20 33 31 20 33 30 20 33 31 20 33 31 20 33 30 20 33 31 20 33 30 20 33 31 29 29 29 31.30.31.30.31.31.30.31.30.31)))
4680 0a 20 20 20 20 28 65 72 72 6f 72 20 22 4d 6f 6e 74 68 20 6f 75 74 20 6f 66 20 72 61 6e 67 65 2c .....(error."Month.out.of.range,
46a0 20 4d 4f 4e 54 48 3d 25 53 22 20 6d 6f 6e 74 68 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 .MONTH=%S".month)))..(defun.ledg
46c0 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 65 6b 20 28 er-schedule-encode-day-of-week.(
46e0 64 61 79 2d 73 74 72 69 6e 67 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 6e 75 6d 65 72 69 day-string)..."Return.the.numeri
4700 63 61 6c 20 64 61 79 20 6f 66 20 77 65 65 6b 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f cal.day.of.week.corresponding.to
4720 20 44 41 59 2d 53 54 52 49 4e 47 2e 22 0a 20 20 28 63 61 64 72 20 28 61 73 73 6f 63 20 64 61 79 .DAY-STRING."...(cadr.(assoc.day
4740 2d 73 74 72 69 6e 67 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 77 65 65 6b 2d 64 61 79 -string.ledger-schedule-week-day
4760 73 29 29 29 0a 0a 3b 3b 20 4d 61 63 72 6f 73 20 74 6f 20 68 61 6e 64 6c 65 20 64 61 74 65 20 65 s)))..;;.Macros.to.handle.date.e
4780 78 70 72 65 73 73 69 6f 6e 73 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 xpressions..(defun.ledger-schedu
47a0 6c 65 2d 63 6f 6e 73 74 72 61 69 6e 2d 64 61 79 2d 69 6e 2d 6d 6f 6e 74 68 20 28 63 6f 75 6e 74 le-constrain-day-in-month.(count
47c0 20 64 61 79 2d 6f 66 2d 77 65 65 6b 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 66 6f 72 6d 20 74 .day-of-week)..."Return.a.form.t
47e0 68 61 74 20 72 65 74 75 72 6e 73 20 54 52 55 45 20 66 6f 72 20 74 68 65 20 20 74 68 65 20 43 4f hat.returns.TRUE.for.the..the.CO
4800 55 4e 54 20 44 41 59 2d 4f 46 2d 57 45 45 4b 2e 0a 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 72 65 UNT.DAY-OF-WEEK..For.example,.re
4820 74 75 72 6e 20 74 72 75 65 20 69 66 20 64 61 74 65 20 69 73 20 74 68 65 20 33 72 64 20 54 68 75 turn.true.if.date.is.the.3rd.Thu
4840 72 73 64 61 79 20 6f 66 20 74 68 65 0a 6d 6f 6e 74 68 2e 20 20 4e 65 67 61 74 69 76 65 20 43 4f rsday.of.the.month...Negative.CO
4860 55 4e 54 20 73 74 61 72 74 73 20 66 72 6f 6d 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 6d UNT.starts.from.the.end.of.the.m
4880 6f 6e 74 68 2e 20 28 45 51 0a 43 4f 55 4e 54 20 30 29 20 6d 65 61 6e 73 20 45 56 45 52 59 20 64 onth..(EQ.COUNT.0).means.EVERY.d
48a0 61 79 2d 6f 66 2d 77 65 65 6b 20 28 65 67 2e 20 65 76 65 72 79 20 53 61 74 75 72 64 61 79 29 22 ay-of-week.(eg..every.Saturday)"
48c0 0a 20 20 28 69 66 20 28 61 6e 64 20 28 3c 3d 20 2d 36 20 63 6f 75 6e 74 20 36 29 20 28 3c 3d 20 ...(if.(and.(<=.-6.count.6).(<=.
48e0 30 20 64 61 79 2d 6f 66 2d 77 65 65 6b 20 36 29 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 0.day-of-week.6)).......(cond.((
4900 7a 65 72 6f 70 20 63 6f 75 6e 74 29 20 3b 3b 20 52 65 74 75 72 6e 20 74 72 75 65 20 69 66 20 64 zerop.count).;;.Return.true.if.d
4920 61 79 2d 6f 66 2d 77 65 65 6b 20 6d 61 74 63 68 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ay-of-week.matches..............
4940 60 28 65 71 20 28 6e 74 68 20 36 20 28 64 65 63 6f 64 65 2d 74 69 6d 65 20 64 61 74 65 29 29 20 `(eq.(nth.6.(decode-time.date)).
4960 2c 64 61 79 2d 6f 66 2d 77 65 65 6b 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 3e 20 63 ,day-of-week)).............((>.c
4980 6f 75 6e 74 20 30 29 20 3b 3b 20 50 6f 73 69 74 69 76 65 20 63 6f 75 6e 74 0a 20 20 20 20 20 20 ount.0).;;.Positive.count.......
49a0 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 64 65 63 6f 64 65 64 20 28 63 6c 2d 67 65 6e 73 79 6d .......(let.((decoded.(cl-gensym
49c0 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 6c 65 74 20 28 28 2c 64 65 63 6f )))................`(let.((,deco
49e0 64 65 64 20 28 64 65 63 6f 64 65 2d 74 69 6d 65 20 64 61 74 65 29 29 29 0a 20 20 20 20 20 20 20 ded.(decode-time.date)))........
4a00 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 65 71 20 28 6e 74 68 20 36 20 2c 64 65 63 6f ...........(and.(eq.(nth.6.,deco
4a20 64 65 64 29 20 2c 64 61 79 2d 6f 66 2d 77 65 65 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ded).,day-of-week)..............
4a40 20 20 20 20 20 20 20 20 20 20 28 3c 3d 20 2c 28 2a 20 28 31 2d 20 63 6f 75 6e 74 29 20 37 29 0a ..........(<=.,(*.(1-.count).7).
4a60 20 20 20 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 ...........................(nth.
4a80 33 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 3.,decoded).....................
4aa0 20 20 20 20 20 20 20 2c 28 2a 20 63 6f 75 6e 74 20 37 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 .......,(*.count.7))))))........
4ac0 20 20 20 20 20 28 28 3c 20 63 6f 75 6e 74 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 .....((<.count.0)..............(
4ae0 6c 65 74 20 28 28 64 61 79 73 2d 69 6e 2d 6d 6f 6e 74 68 20 28 63 6c 2d 67 65 6e 73 79 6d 29 29 let.((days-in-month.(cl-gensym))
4b00 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 63 6f 64 65 64 20 28 63 6c ....................(decoded.(cl
4b20 2d 67 65 6e 73 79 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 6c 65 74 2a -gensym)))................`(let*
4b40 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 64 61 74 65 29 29 0a .((,decoded.(decode-time.date)).
4b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2c 64 61 79 73 2d 69 6e .......................(,days-in
4b80 2d 6d 6f 6e 74 68 20 28 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 64 61 79 73 2d 69 6e 2d -month.(ledger-schedule-days-in-
4ba0 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 20 20 month...........................
4bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 74 68 20 34 20 2c 64 65 63 6f 64 65 64 29 0a 20 ..............(nth.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 20 20 20 20 20 20 20 20 20 20 ................................
4c00 20 20 20 20 20 20 20 28 6e 74 68 20 35 20 2c 64 65 63 6f 64 65 64 29 29 29 29 0a 20 20 20 20 20 .......(nth.5.,decoded))))......
4c20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 65 71 20 28 6e 74 68 20 36 20 2c 64 65 .............(and.(eq.(nth.6.,de
4c40 63 6f 64 65 64 29 20 2c 64 61 79 2d 6f 66 2d 77 65 65 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 coded).,day-of-week)............
4c60 20 20 20 20 20 20 20 20 20 20 20 20 28 3c 3d 20 28 2b 20 2c 64 61 79 73 2d 69 6e 2d 6d 6f 6e 74 ............(<=.(+.,days-in-mont
4c80 68 20 2c 28 2a 20 63 6f 75 6e 74 20 37 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 h.,(*.count.7)).................
4ca0 20 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 ...........(nth.3.,decoded).....
4cc0 20 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 2c 64 61 79 73 2d .......................(+.,days-
4ce0 69 6e 2d 6d 6f 6e 74 68 20 2c 28 2a 20 28 31 2b 20 63 6f 75 6e 74 29 20 37 29 29 29 29 29 29 29 in-month.,(*.(1+.count).7)))))))
4d00 0a 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 28 65 72 .............(t..............(er
4d20 72 6f 72 20 22 43 4f 55 4e 54 20 6f 75 74 20 6f 66 20 72 61 6e 67 65 2c 20 43 4f 55 4e 54 3d 25 ror."COUNT.out.of.range,.COUNT=%
4d40 53 22 20 63 6f 75 6e 74 29 29 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 49 6e 76 61 6c 69 64 20 S".count))).....(error."Invalid.
4d60 61 72 67 75 6d 65 6e 74 20 74 6f 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 64 61 79 2d argument.to.ledger-schedule-day-
4d80 69 6e 2d 6d 6f 6e 74 68 2d 6d 61 63 72 6f 20 25 53 20 25 53 22 0a 20 20 20 20 20 20 20 20 20 20 in-month-macro.%S.%S"...........
4da0 20 63 6f 75 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 64 61 79 2d 6f 66 2d 77 65 65 6b 29 29 29 .count............day-of-week)))
4dc0 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 6e 73 74 72 61 ..(defun.ledger-schedule-constra
4de0 69 6e 2d 65 76 65 72 79 2d 63 6f 75 6e 74 2d 64 61 79 20 28 64 61 79 2d 6f 66 2d 77 65 65 6b 20 in-every-count-day.(day-of-week.
4e00 73 6b 69 70 20 73 74 61 72 74 2d 64 61 74 65 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 66 6f 72 skip.start-date)..."Return.a.for
4e20 6d 20 74 68 61 74 20 69 73 20 74 72 75 65 20 66 6f 72 20 65 76 65 72 79 20 44 41 59 2d 4f 46 2d m.that.is.true.for.every.DAY-OF-
4e40 57 45 45 4b 2e 0a 53 6b 69 70 73 20 53 4b 49 50 2c 20 61 6e 64 20 73 74 61 72 74 73 20 6f 6e 20 WEEK..Skips.SKIP,.and.starts.on.
4e60 53 54 41 52 54 2d 44 41 54 45 2e 0a 46 6f 72 20 65 78 61 6d 70 6c 65 20 65 76 65 72 79 20 73 65 START-DATE..For.example.every.se
4e80 63 6f 6e 64 20 46 72 69 64 61 79 2c 20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 6d 6f 6e 74 68 cond.Friday,.regardless.of.month
4ea0 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 74 61 72 74 2d 64 61 79 20 28 6e 74 68 20 36 20 28 64 65 ."...(let.((start-day.(nth.6.(de
4ec0 63 6f 64 65 2d 74 69 6d 65 20 73 74 61 72 74 2d 64 61 74 65 29 29 29 29 0a 20 20 20 20 28 69 66 code-time.start-date)))).....(if
4ee0 20 28 65 71 20 73 74 61 72 74 2d 64 61 79 20 64 61 79 2d 6f 66 2d 77 65 65 6b 29 20 20 3b 3b 20 .(eq.start-day.day-of-week)..;;.
4f00 67 6f 6f 64 2c 20 63 61 6e 20 70 72 6f 63 65 65 64 0a 20 20 20 20 20 20 20 20 60 28 7a 65 72 6f good,.can.proceed.........`(zero
4f20 70 20 28 6d 6f 64 20 28 2d 20 28 74 69 6d 65 2d 74 6f 2d 64 61 79 73 20 64 61 74 65 29 20 2c 28 p.(mod.(-.(time-to-days.date).,(
4f40 74 69 6d 65 2d 74 6f 2d 64 61 79 73 20 73 74 61 72 74 2d 64 61 74 65 29 29 20 2c 28 2a 20 73 6b time-to-days.start-date)).,(*.sk
4f60 69 70 20 37 29 29 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 53 54 41 52 54 2d 44 41 54 45 ip.7))).......(error."START-DATE
4f80 20 64 61 79 20 6f 66 20 77 65 65 6b 20 64 6f 65 73 6e 27 74 20 6d 61 74 63 68 20 44 41 59 2d 4f .day.of.week.doesn't.match.DAY-O
4fa0 46 2d 57 45 45 4b 22 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 F-WEEK"))))..(defun.ledger-sched
4fc0 75 6c 65 2d 63 6f 6e 73 74 72 61 69 6e 2d 64 61 74 65 2d 72 61 6e 67 65 20 28 6d 6f 6e 74 68 31 ule-constrain-date-range.(month1
4fe0 20 64 61 79 31 20 6d 6f 6e 74 68 32 20 64 61 79 32 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 66 .day1.month2.day2)..."Return.a.f
5000 6f 72 6d 20 6f 66 20 44 41 54 45 20 74 68 61 74 20 69 73 20 74 72 75 65 20 69 66 20 44 41 54 45 orm.of.DATE.that.is.true.if.DATE
5020 20 66 61 6c 6c 73 20 62 65 74 77 65 65 6e 20 74 77 6f 20 64 61 74 65 73 2e 0a 54 68 65 20 64 61 .falls.between.two.dates..The.da
5040 74 65 73 20 61 72 65 20 67 69 76 65 6e 20 62 79 20 74 68 65 20 70 61 69 72 73 20 4d 4f 4e 54 48 tes.are.given.by.the.pairs.MONTH
5060 31 20 44 41 59 31 20 61 6e 64 20 4d 4f 4e 54 48 32 20 44 41 59 32 2e 22 0a 20 20 28 6c 65 74 20 1.DAY1.and.MONTH2.DAY2."...(let.
5080 28 28 64 65 63 6f 64 65 64 20 28 63 6c 2d 67 65 6e 73 79 6d 29 29 0a 20 20 20 20 20 20 20 20 28 ((decoded.(cl-gensym)).........(
50a0 74 61 72 67 65 74 2d 6d 6f 6e 74 68 20 28 63 6c 2d 67 65 6e 73 79 6d 29 29 0a 20 20 20 20 20 20 target-month.(cl-gensym)).......
50c0 20 20 28 74 61 72 67 65 74 2d 64 61 79 20 28 63 6c 2d 67 65 6e 73 79 6d 29 29 29 0a 20 20 20 20 ..(target-day.(cl-gensym))).....
50e0 60 28 6c 65 74 2a 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 64 `(let*.((,decoded.(decode-time.d
5100 61 74 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 2c 74 61 72 67 65 74 2d 6d 6f 6e 74 68 ate)).............(,target-month
5120 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 20 20 20 20 20 28 2c .(nth.4.decoded)).............(,
5140 74 61 72 67 65 74 2d 64 61 79 20 28 6e 74 68 20 33 20 64 65 63 6f 64 65 64 29 29 29 0a 20 20 20 target-day.(nth.3.decoded)))....
5160 20 20 20 20 28 61 6e 64 20 28 61 6e 64 20 28 3e 20 2c 74 61 72 67 65 74 2d 6d 6f 6e 74 68 20 2c ....(and.(and.(>.,target-month.,
5180 6d 6f 6e 74 68 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 61 72 month1)..................(<.,tar
51a0 67 65 74 2d 6d 6f 6e 74 68 20 2c 6d 6f 6e 74 68 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 get-month.,month2)).............
51c0 28 61 6e 64 20 28 3e 20 2c 74 61 72 67 65 74 2d 64 61 79 20 2c 64 61 79 31 29 0a 20 20 20 20 20 (and.(>.,target-day.,day1)......
51e0 20 20 20 20 20 20 20 20 20 20 20 20 28 3c 20 2c 74 61 72 67 65 74 2d 64 61 79 20 2c 64 61 79 32 ............(<.,target-day.,day2
5200 29 29 29 29 29 29 0a 0a 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 ))))))....(defun.ledger-schedule
5220 2d 73 63 61 6e 2d 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 28 73 63 68 65 64 75 6c 65 2d 66 69 6c -scan-transactions.(schedule-fil
5240 65 29 0a 20 20 22 53 63 61 6e 20 53 43 48 45 44 55 4c 45 2d 46 49 4c 45 20 61 6e 64 20 72 65 74 e)..."Scan.SCHEDULE-FILE.and.ret
5260 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 77 69 74 68 20 urn.a.list.of.transactions.with.
5280 64 61 74 65 20 70 72 65 64 69 63 61 74 65 73 2e 0a 54 68 65 20 63 61 72 20 6f 66 20 65 61 63 68 date.predicates..The.car.of.each
52a0 20 69 74 65 6d 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 6f 66 20 64 61 74 65 20 74 68 61 74 .item.is.a.function.of.date.that
52c0 20 72 65 74 75 72 6e 73 20 74 72 75 65 20 69 66 0a 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e .returns.true.if.the.transaction
52e0 20 73 68 6f 75 6c 64 20 62 65 20 6c 6f 67 67 65 64 20 66 6f 72 20 74 68 61 74 20 64 61 79 2e 22 .should.be.logged.for.that.day."
5300 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 66 46 69 6c 65 20 6e 61 6d 65 3a 20 22 29 0a ...(interactive."fFile.name:.").
5320 20 20 28 6c 65 74 20 28 28 78 61 63 74 2d 6c 69 73 74 20 28 6c 69 73 74 29 29 29 0a 20 20 20 20 ..(let.((xact-list.(list))).....
5340 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 28 66 69 (with-current-buffer.........(fi
5360 6e 64 2d 66 69 6c 65 2d 6e 6f 73 65 6c 65 63 74 20 73 63 68 65 64 75 6c 65 2d 66 69 6c 65 29 0a nd-file-noselect.schedule-file).
5380 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))...
53a0 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 5e ....(while.(re-search-forward."^
53c0 5c 5c 5b 5c 5c 28 2e 2a 5c 5c 29 5c 5c 5d 20 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 \\[\\(.*\\)\\].".nil.t).........
53e0 28 6c 65 74 20 28 28 64 61 74 65 2d 64 65 73 63 72 69 70 74 6f 72 20 22 22 29 0a 20 20 20 20 20 (let.((date-descriptor."")......
5400 20 20 20 20 20 20 20 20 20 28 74 72 61 6e 73 61 63 74 69 6f 6e 20 6e 69 6c 29 0a 20 20 20 20 20 .........(transaction.nil)......
5420 20 20 20 20 20 20 20 20 20 28 78 61 63 74 2d 73 74 61 72 74 20 28 6d 61 74 63 68 2d 65 6e 64 20 .........(xact-start.(match-end.
5440 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 64 61 74 65 2d 64 65 73 63 72 69 0)))...........(setq.date-descri
5460 70 74 6f 72 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 73 63 68 ptor.................(ledger-sch
5480 65 64 75 6c 65 2d 72 65 61 64 2d 64 65 73 63 72 69 70 74 6f 72 2d 74 72 65 65 0a 20 20 20 20 20 edule-read-descriptor-tree......
54a0 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 67 2d 6e 6f ............(buffer-substring-no
54c0 2d 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d -properties...................(m
54e0 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 20 20 20 20 20 20 atch-beginning.0)...............
5500 20 20 20 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 ....(match-end.0))))...........(
5520 66 6f 72 77 61 72 64 2d 70 61 72 61 67 72 61 70 68 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 forward-paragraph)...........(se
5540 74 71 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 28 6c 69 73 74 20 64 61 74 65 2d 64 65 73 63 72 69 tq.transaction.(list.date-descri
5560 70 74 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 20 20 20 20 20 ptor............................
5580 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 72 6f 70 .......(buffer-substring-no-prop
55a0 65 72 74 69 65 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 erties..........................
55c0 20 20 20 20 20 20 20 20 20 20 78 61 63 74 2d 73 74 61 72 74 0a 20 20 20 20 20 20 20 20 20 20 20 ..........xact-start............
55e0 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 70 6f 69 6e 74 29 29 ........................(point))
5600 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 78 61 63 74 2d 6c 69 73 74 20 28 63 6f ))...........(setq.xact-list.(co
5620 6e 73 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 78 61 63 74 2d 6c 69 73 74 29 29 29 29 0a 20 20 20 ns.transaction.xact-list))))....
5640 20 20 20 78 61 63 74 2d 6c 69 73 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 73 ...xact-list)))..(defun.ledger-s
5660 63 68 65 64 75 6c 65 2d 72 65 61 64 2d 64 65 73 63 72 69 70 74 6f 72 2d 74 72 65 65 20 28 64 65 chedule-read-descriptor-tree.(de
5680 73 63 72 69 70 74 6f 72 2d 73 74 72 69 6e 67 29 0a 20 20 22 52 65 61 64 20 44 45 53 43 52 49 50 scriptor-string)..."Read.DESCRIP
56a0 54 4f 52 2d 53 54 52 49 4e 47 20 61 6e 64 20 72 65 74 75 72 6e 20 61 20 66 6f 72 6d 20 74 68 61 TOR-STRING.and.return.a.form.tha
56c0 74 20 65 76 61 6c 75 61 74 65 73 20 64 61 74 65 73 2e 22 0a 20 20 28 6c 65 64 67 65 72 2d 73 63 t.evaluates.dates."...(ledger-sc
56e0 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 0a 20 20 20 28 73 hedule-transform-auto-tree....(s
5700 70 6c 69 74 2d 73 74 72 69 6e 67 0a 20 20 20 20 28 73 75 62 73 74 72 69 6e 67 20 64 65 73 63 72 plit-string.....(substring.descr
5720 69 70 74 6f 72 2d 73 74 72 69 6e 67 20 31 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5d 22 iptor-string.1.(string-match."]"
5740 20 64 65 73 63 72 69 70 74 6f 72 2d 73 74 72 69 6e 67 29 29 20 22 20 22 29 29 29 0a 0a 28 64 65 .descriptor-string)).".")))..(de
5760 66 75 6e 20 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 61 75 fun.ledger-schedule-transform-au
5780 74 6f 2d 74 72 65 65 20 28 64 65 73 63 72 69 70 74 6f 72 2d 73 74 72 69 6e 67 2d 6c 69 73 74 29 to-tree.(descriptor-string-list)
57a0 0a 20 20 22 54 61 6b 65 20 44 45 53 43 52 49 50 54 4f 52 2d 53 54 52 49 4e 47 2d 4c 49 53 54 2c ..."Take.DESCRIPTOR-STRING-LIST,
57c0 20 61 6e 64 20 72 65 74 75 72 6e 20 61 20 73 74 72 69 6e 67 20 77 69 74 68 20 61 20 6c 61 6d 62 .and.return.a.string.with.a.lamb
57e0 64 61 20 66 75 6e 63 74 69 6f 6e 20 6f 66 20 64 61 74 65 2e 22 0a 20 20 3b 3b 20 75 73 65 20 66 da.function.of.date."...;;.use.f
5800 75 6e 63 61 6c 6c 20 74 6f 20 75 73 65 20 74 68 65 20 6c 61 6d 62 64 61 20 66 75 6e 63 74 69 6f uncall.to.use.the.lambda.functio
5820 6e 20 73 70 69 74 20 6f 75 74 20 68 65 72 65 0a 20 20 28 69 66 20 28 63 6f 6e 73 70 20 64 65 73 n.spit.out.here...(if.(consp.des
5840 63 72 69 70 74 6f 72 2d 73 74 72 69 6e 67 2d 6c 69 73 74 29 0a 20 20 20 20 20 20 28 6c 65 74 20 criptor-string-list).......(let.
5860 28 72 65 73 75 6c 74 29 0a 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 63 6f 6e 73 70 20 64 (result).........(while.(consp.d
5880 65 73 63 72 69 70 74 6f 72 2d 73 74 72 69 6e 67 2d 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 escriptor-string-list)..........
58a0 20 28 6c 65 74 20 28 28 6e 65 77 63 61 72 20 28 63 61 72 20 64 65 73 63 72 69 70 74 6f 72 2d 73 .(let.((newcar.(car.descriptor-s
58c0 74 72 69 6e 67 2d 6c 69 73 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 63 tring-list))).............(if.(c
58e0 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 28 73 65 onsp.newcar).................(se
5900 74 71 20 6e 65 77 63 61 72 20 28 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 74 72 61 6e 73 tq.newcar.(ledger-schedule-trans
5920 66 6f 72 6d 2d 61 75 74 6f 2d 74 72 65 65 20 28 63 61 72 20 64 65 73 63 72 69 70 74 6f 72 2d 73 form-auto-tree.(car.descriptor-s
5940 74 72 69 6e 67 2d 6c 69 73 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6e 65 tring-list)))).............;;.ne
5960 77 63 61 72 20 6d 61 79 20 62 65 20 61 20 63 6f 6e 73 20 6e 6f 77 2c 20 61 66 74 65 72 20 6c 65 wcar.may.be.a.cons.now,.after.le
5980 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 74 72 61 6e 73 66 72 6f 6d 2d 61 75 74 6f 2d 74 72 65 dger-schedule-transfrom-auto-tre
59a0 65 0a 20 20 20 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 e.............(if.(consp.newcar)
59c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 6e 65 77 63 61 72 20 72 65 .................(push.newcar.re
59e0 73 75 6c 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 68 69 73 20 69 73 20 77 sult)...............;;.this.is.w
5a00 68 65 72 65 20 77 65 20 61 63 74 75 61 6c 6c 79 20 74 75 72 6e 20 74 68 65 20 73 74 72 69 6e 67 here.we.actually.turn.the.string
5a20 20 64 65 73 63 72 69 70 74 6f 72 20 69 6e 74 6f 20 75 73 65 66 75 6c 20 6c 69 73 70 0a 20 20 20 .descriptor.into.useful.lisp....
5a40 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c ...........(push.(ledger-schedul
5a60 65 2d 63 6f 6d 70 69 6c 65 2d 63 6f 6e 73 74 72 61 69 6e 74 73 20 6e 65 77 63 61 72 29 20 72 65 e-compile-constraints.newcar).re
5a80 73 75 6c 74 29 29 20 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 64 65 73 63 72 69 70 sult)).)...........(setq.descrip
5aa0 74 6f 72 2d 73 74 72 69 6e 67 2d 6c 69 73 74 20 28 63 64 72 20 64 65 73 63 72 69 70 74 6f 72 2d tor-string-list.(cdr.descriptor-
5ac0 73 74 72 69 6e 67 2d 6c 69 73 74 29 29 29 0a 0a 20 20 20 20 20 20 20 20 3b 3b 20 74 69 65 20 75 string-list)))..........;;.tie.u
5ae0 70 20 61 6c 6c 20 74 68 65 20 63 6c 61 75 73 65 73 20 69 6e 20 61 20 62 69 67 20 6f 72 20 6c 61 p.all.the.clauses.in.a.big.or.la
5b00 6d 62 64 61 2c 20 61 6e 64 20 72 65 74 75 72 6e 0a 20 20 20 20 20 20 20 20 3b 3b 20 74 68 65 20 mbda,.and.return.........;;.the.
5b20 6c 61 6d 62 64 61 20 66 75 6e 63 74 69 6f 6e 20 61 73 20 6c 69 73 74 20 74 6f 20 62 65 20 65 78 lambda.function.as.list.to.be.ex
5b40 65 63 75 74 65 64 20 62 79 20 66 75 6e 63 61 6c 6c 0a 20 20 20 20 20 20 20 20 60 28 6c 61 6d 62 ecuted.by.funcall.........`(lamb
5b60 64 61 20 28 64 61 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 2c 28 6e 63 6f 6e 63 20 28 6c 69 da.(date)............,(nconc.(li
5b80 73 74 20 27 6f 72 29 20 28 6e 72 65 76 65 72 73 65 20 72 65 73 75 6c 74 29 20 64 65 73 63 72 69 st.'or).(nreverse.result).descri
5ba0 70 74 6f 72 2d 73 74 72 69 6e 67 2d 6c 69 73 74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 ptor-string-list)))))..(defun.le
5bc0 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 69 6e 74 dger-schedule-compile-constraint
5be0 73 20 28 64 65 73 63 72 69 70 74 6f 72 2d 73 74 72 69 6e 67 29 0a 20 20 22 52 65 74 75 72 6e 20 s.(descriptor-string)..."Return.
5c00 61 20 6c 69 73 74 20 77 69 74 68 20 74 68 65 20 79 65 61 72 2c 20 6d 6f 6e 74 68 20 61 6e 64 20 a.list.with.the.year,.month.and.
5c20 64 61 79 20 66 69 65 6c 64 73 20 73 70 6c 69 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 66 69 65 6c day.fields.split."...(let.((fiel
5c40 64 73 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 64 65 73 63 72 69 70 74 6f 72 2d 73 74 72 69 ds.(split-string.descriptor-stri
5c60 6e 67 20 22 5b 2f 5c 5c 2d 5d 22 20 74 29 29 29 0a 20 20 20 20 28 6c 69 73 74 20 27 61 6e 64 0a ng."[/\\-]".t))).....(list.'and.
5c80 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 2d 63 6f 6e 73 74 ..........(ledger-schedule-const
5ca0 72 61 69 6e 2d 64 61 79 20 28 6e 74 68 20 30 20 66 69 65 6c 64 73 29 20 28 6e 74 68 20 31 20 66 rain-day.(nth.0.fields).(nth.1.f
5cc0 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 20 20 20 20 20 20 20 ields).(nth.2.fields))..........
5ce0 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 69 6e 2d 79 65 61 72 .(ledger-schedule-constrain-year
5d00 20 28 6e 74 68 20 30 20 66 69 65 6c 64 73 29 20 28 6e 74 68 20 31 20 66 69 65 6c 64 73 29 20 28 .(nth.0.fields).(nth.1.fields).(
5d20 6e 74 68 20 32 20 66 69 65 6c 64 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 nth.2.fields))...........(ledger
5d40 2d 73 63 68 65 64 75 6c 65 2d 63 6f 6e 73 74 72 61 69 6e 2d 6d 6f 6e 74 68 20 28 6e 74 68 20 30 -schedule-constrain-month.(nth.0
5d60 20 66 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 .fields).(nth.1.fields).(nth.2.f
5d80 69 65 6c 64 73 29 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 ields)))))..(defun.ledger-schedu
5da0 6c 65 2d 63 6f 6e 73 74 72 61 69 6e 2d 79 65 61 72 20 28 79 65 61 72 2d 64 65 73 63 20 6d 6f 6e le-constrain-year.(year-desc.mon
5dc0 74 68 2d 64 65 73 63 20 64 61 79 2d 64 65 73 63 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 66 6f th-desc.day-desc)..."Return.a.fo
5de0 72 6d 20 74 68 61 74 20 63 6f 6e 73 74 72 61 69 6e 73 20 74 68 65 20 79 65 61 72 2e 0a 0a 59 45 rm.that.constrains.the.year...YE
5e00 41 52 2d 44 45 53 43 2c 20 4d 4f 4e 54 48 2d 44 45 53 43 2c 20 61 6e 64 20 44 41 59 2d 44 45 53 AR-DESC,.MONTH-DESC,.and.DAY-DES
5e20 43 20 61 72 65 20 74 68 65 20 73 74 72 69 6e 67 20 70 6f 72 74 69 6f 6e 73 20 6f 66 20 74 68 65 C.are.the.string.portions.of.the
5e40 0a 64 61 74 65 20 64 65 73 63 72 69 70 74 6f 72 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 .date.descriptor."...(cond....((
5e60 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5b 41 2d 5a 61 2d 7a 5d 22 20 64 61 79 2d 64 65 73 63 string-match."[A-Za-z]".day-desc
5e80 29 20 74 29 20 3b 20 74 68 65 72 65 20 69 73 20 61 6e 20 61 64 76 61 6e 63 65 64 20 64 61 79 20 ).t).;.there.is.an.advanced.day.
5ea0 64 65 73 63 72 69 70 74 6f 72 20 77 68 69 63 68 20 6f 76 65 72 72 69 64 65 73 20 74 68 65 20 79 descriptor.which.overrides.the.y
5ec0 65 61 72 0a 20 20 20 28 28 73 74 72 69 6e 67 3d 20 79 65 61 72 2d 64 65 73 63 20 22 2a 22 29 20 ear....((string=.year-desc."*").
5ee0 74 29 0a 20 20 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 79 t)....((/=.0.(string-to-number.y
5f00 65 61 72 2d 64 65 73 63 29 29 0a 20 20 20 20 60 28 6d 65 6d 71 20 28 6e 74 68 20 35 20 28 64 65 ear-desc)).....`(memq.(nth.5.(de
5f20 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 72 20 27 73 74 72 69 code-time.date)).',(mapcar.'stri
5f40 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 67 20 79 65 61 72 2d ng-to-number.(split-string.year-
5f60 64 65 73 63 20 22 2c 22 29 29 29 29 0a 20 20 20 28 74 0a 20 20 20 20 28 65 72 72 6f 72 20 22 49 desc.","))))....(t.....(error."I
5f80 6d 70 72 6f 70 65 72 6c 79 20 73 70 65 63 69 66 69 65 64 20 79 65 61 72 20 63 6f 6e 73 74 72 61 mproperly.specified.year.constra
5fa0 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 6d 6f 6e 74 68 2d 64 int:.%s.%s.%s".year-desc.month-d
5fc0 65 73 63 20 64 61 79 2d 64 65 73 63 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d esc.day-desc))))..(defun.ledger-
5fe0 73 63 68 65 64 75 6c 65 2d 63 6f 6e 73 74 72 61 69 6e 2d 6d 6f 6e 74 68 20 28 79 65 61 72 2d 64 schedule-constrain-month.(year-d
6000 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 20 20 22 52 65 74 75 esc.month-desc.day-desc)..."Retu
6020 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 20 74 68 65 20 6d 6f rn.a.form.that.constrains.the.mo
6040 6e 74 68 2e 0a 0a 59 45 41 52 2d 44 45 53 43 2c 20 4d 4f 4e 54 48 2d 44 45 53 43 2c 20 61 6e 64 nth...YEAR-DESC,.MONTH-DESC,.and
6060 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 72 74 69 6f 6e .DAY-DESC.are.the.string.portion
6080 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 20 20 28 63 6f s.of.the.date.descriptor."...(co
60a0 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 5a 61 2d 7a 5d 22 20 nd....((string-match."[A-Za-z]".
60c0 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 6e 20 61 64 76 61 6e day-desc).t).;.there.is.an.advan
60e0 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 6f 76 65 72 72 69 64 ced.day.descriptor.which.overrid
6100 65 73 20 74 68 65 20 6d 6f 6e 74 68 0a 20 20 20 28 28 73 74 72 69 6e 67 3d 20 6d 6f 6e 74 68 2d es.the.month....((string=.month-
6120 64 65 73 63 20 22 2a 22 29 0a 20 20 20 20 74 29 20 20 3b 3b 20 61 6c 77 61 79 73 20 6d 61 74 63 desc."*").....t)..;;.always.matc
6140 68 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 45 22 29 20 20 h....((string=.month-desc."E")..
6160 3b 3b 20 45 76 65 6e 0a 20 20 20 20 60 28 63 6c 2d 65 76 65 6e 70 20 28 6e 74 68 20 34 20 28 64 ;;.Even.....`(cl-evenp.(nth.4.(d
6180 65 63 6f 64 65 2d 74 69 6d 65 20 64 61 74 65 29 29 29 29 0a 20 20 20 28 28 73 74 72 69 6e 67 3d ecode-time.date))))....((string=
61a0 20 6d 6f 6e 74 68 2d 64 65 73 63 20 22 4f 22 29 20 20 3b 3b 20 4f 64 64 0a 20 20 20 20 60 28 63 .month-desc."O")..;;.Odd.....`(c
61c0 6c 2d 6f 64 64 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 l-oddp.(nth.4.(decode-time.date)
61e0 29 29 29 0a 20 20 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 )))....((/=.0.(string-to-number.
6200 6d 6f 6e 74 68 2d 64 65 73 63 29 29 20 3b 3b 20 53 74 61 72 74 73 20 77 69 74 68 20 6e 75 6d 62 month-desc)).;;.Starts.with.numb
6220 65 72 0a 20 20 20 20 60 28 6d 65 6d 71 20 28 6e 74 68 20 34 20 28 64 65 63 6f 64 65 2d 74 69 6d er.....`(memq.(nth.4.(decode-tim
6240 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 67 2d 74 6f 2d 6e 75 e.date)).',(mapcar.'string-to-nu
6260 6d 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 mber.(split-string.month-desc.",
6280 22 29 29 29 29 0a 20 20 20 28 74 0a 20 20 20 20 28 65 72 72 6f 72 20 22 49 6d 70 72 6f 70 65 72 "))))....(t.....(error."Improper
62a0 6c 79 20 73 70 65 63 69 66 69 65 64 20 6d 6f 6e 74 68 20 63 6f 6e 73 74 72 61 69 6e 74 3a 20 25 ly.specified.month.constraint:.%
62c0 73 20 25 73 20 25 73 22 20 79 65 61 72 2d 64 65 73 63 20 6d 6f 6e 74 68 2d 64 65 73 63 20 64 61 s.%s.%s".year-desc.month-desc.da
62e0 79 2d 64 65 73 63 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 y-desc))))..(defun.ledger-schedu
6300 6c 65 2d 63 6f 6e 73 74 72 61 69 6e 2d 64 61 79 20 28 79 65 61 72 2d 64 65 73 63 20 6d 6f 6e 74 le-constrain-day.(year-desc.mont
6320 68 2d 64 65 73 63 20 64 61 79 2d 64 65 73 63 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 66 6f 72 h-desc.day-desc)..."Return.a.for
6340 6d 20 74 68 61 74 20 63 6f 6e 73 74 72 61 69 6e 73 20 74 68 65 20 64 61 79 2e 0a 0a 59 45 41 52 m.that.constrains.the.day...YEAR
6360 2d 44 45 53 43 2c 20 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 -DESC,.MONTH-DESC,.and.DAY-DESC.
6380 61 72 65 20 74 68 65 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 are.the.string.portions.of.the.d
63a0 61 74 65 20 64 65 73 63 72 69 70 74 6f 72 2e 22 0a 20 20 28 63 6f 6e 64 20 28 28 73 74 72 69 6e ate.descriptor."...(cond.((strin
63c0 67 3d 20 64 61 79 2d 64 65 73 63 20 22 2a 22 29 0a 20 20 20 20 20 20 20 20 20 74 29 0a 20 20 20 g=.day-desc."*")..........t)....
63e0 20 20 20 20 20 28 28 73 74 72 69 6e 67 3d 20 64 61 79 2d 64 65 73 63 20 22 4c 22 29 0a 20 20 20 .....((string=.day-desc."L")....
6400 20 20 20 20 20 20 60 28 3d 20 28 6e 74 68 20 33 20 28 64 65 63 6f 64 65 2d 74 69 6d 65 20 64 61 ......`(=.(nth.3.(decode-time.da
6420 74 65 29 29 20 28 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 64 61 79 73 2d 69 6e 2d 6d 6f te)).(ledger-schedule-days-in-mo
6440 6e 74 68 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 20 28 nth.(nth.4.(decode-time.date)).(
6460 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 29 29 29 0a 20 20 20 nth.5.(decode-time.date)))))....
6480 20 20 20 20 20 28 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 64 .....((string-match."[A-Za-z]".d
64a0 61 79 2d 64 65 73 63 29 20 20 3b 3b 20 54 68 65 72 65 20 69 73 20 73 6f 6d 65 74 68 69 6e 67 20 ay-desc)..;;.There.is.something.
64c0 6f 74 68 65 72 20 74 68 61 6e 20 64 69 67 69 74 73 20 61 6e 64 20 63 6f 6d 6d 61 73 0a 20 20 20 other.than.digits.and.commas....
64e0 20 20 20 20 20 20 28 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 ......(ledger-schedule-parse-com
6500 70 6c 65 78 2d 64 61 74 65 20 79 65 61 72 2d 64 65 73 63 20 6d 6f 6e 74 68 2d 64 65 73 63 20 64 plex-date.year-desc.month-desc.d
6520 61 79 2d 64 65 73 63 29 29 0a 20 20 20 20 20 20 20 20 28 28 2f 3d 20 30 20 28 73 74 72 69 6e 67 ay-desc)).........((/=.0.(string
6540 2d 74 6f 2d 6e 75 6d 62 65 72 20 64 61 79 2d 64 65 73 63 29 29 0a 20 20 20 20 20 20 20 20 20 60 -to-number.day-desc))..........`
6560 28 6d 65 6d 71 20 28 6e 74 68 20 33 20 28 64 65 63 6f 64 65 2d 74 69 6d 65 20 64 61 74 65 29 29 (memq.(nth.3.(decode-time.date))
6580 20 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 .',(mapcar.'string-to-number.(sp
65a0 6c 69 74 2d 73 74 72 69 6e 67 20 64 61 79 2d 64 65 73 63 20 22 2c 22 29 29 29 29 0a 20 20 20 20 lit-string.day-desc.",")))).....
65c0 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 49 6d 70 72 6f 70 65 72 ....(t..........(error."Improper
65e0 6c 79 20 73 70 65 63 69 66 69 65 64 20 64 61 79 20 63 6f 6e 73 74 72 61 69 6e 74 3a 20 25 73 20 ly.specified.day.constraint:.%s.
6600 25 73 20 25 73 22 20 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 %s.%s".year-desc.month-desc.day-
6620 64 65 73 63 29 29 29 29 0a 0a 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 desc))))....(defun.ledger-schedu
6640 6c 65 2d 70 61 72 73 65 2d 63 6f 6d 70 6c 65 78 2d 64 61 74 65 20 28 79 65 61 72 2d 64 65 73 63 le-parse-complex-date.(year-desc
6660 20 6d 6f 6e 74 68 2d 64 65 73 63 20 64 61 79 2d 64 65 73 63 29 0a 20 20 22 50 61 72 73 65 20 64 .month-desc.day-desc)..."Parse.d
6680 61 79 20 64 65 73 63 72 69 70 74 6f 72 73 20 74 68 61 74 20 68 61 76 65 20 72 65 70 65 61 74 73 ay.descriptors.that.have.repeats
66a0 2e 22 0a 20 20 28 6c 65 74 20 28 28 79 65 61 72 73 20 28 6d 61 70 63 61 72 20 27 73 74 72 69 6e ."...(let.((years.(mapcar.'strin
66c0 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 79 65 61 72 2d 64 g-to-number.(split-string.year-d
66e0 65 73 63 20 22 2c 22 29 29 29 0a 20 20 20 20 20 20 20 20 28 6d 6f 6e 74 68 73 20 28 6d 61 70 63 esc.","))).........(months.(mapc
6700 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 74 2d 73 74 72 69 ar.'string-to-number.(split-stri
6720 6e 67 20 6d 6f 6e 74 68 2d 64 65 73 63 20 22 2c 22 29 29 29 0a 20 20 20 20 20 20 20 20 28 64 61 ng.month-desc.","))).........(da
6740 79 2d 70 61 72 74 73 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 64 61 79 2d 64 65 73 63 20 22 y-parts.(split-string.day-desc."
6760 5c 5c 2b 22 29 29 0a 20 20 20 20 20 20 20 20 28 65 76 65 72 79 2d 6e 74 68 20 28 73 74 72 69 6e \\+")).........(every-nth.(strin
6780 67 2d 6d 61 74 63 68 20 22 5c 5c 2b 22 20 64 61 79 2d 64 65 73 63 29 29 29 0a 20 20 20 20 28 69 g-match."\\+".day-desc))).....(i
67a0 66 20 65 76 65 72 79 2d 6e 74 68 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 62 61 73 65 2d f.every-nth.........(let.((base-
67c0 64 61 79 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 63 61 72 20 64 61 79 2d 70 day.(string-to-number.(car.day-p
67e0 61 72 74 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 63 72 65 6d 65 6e 74 arts)))...............(increment
6800 20 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 .(string-to-number.(substring.(c
6820 61 64 72 20 64 61 79 2d 70 61 72 74 73 29 20 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 adr.day-parts).0................
6840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6860 20 20 20 20 20 20 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 .......(string-match."[A-Za-z]".
6880 28 63 61 64 72 20 64 61 79 2d 70 61 72 74 73 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 (cadr.day-parts)))))............
68a0 20 20 20 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 ...(day-of-week.(ledger-schedule
68c0 2d 65 6e 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 -encode-day-of-week.............
68e0 20 20 20 20 20 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 64 72 ................(substring.(cadr
6900 20 64 61 79 2d 70 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 .day-parts).(string-match."[A-Za
6920 2d 7a 5d 22 20 28 63 61 64 72 20 64 61 79 2d 70 61 72 74 73 29 29 29 29 29 29 0a 20 20 20 20 20 -z]".(cadr.day-parts))))))......
6940 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 69 6e 2d .....(ledger-schedule-constrain-
6960 65 76 65 72 79 2d 63 6f 75 6e 74 2d 64 61 79 20 64 61 79 2d 6f 66 2d 77 65 65 6b 20 69 6e 63 72 every-count-day.day-of-week.incr
6980 65 6d 65 6e 74 20 28 65 6e 63 6f 64 65 2d 74 69 6d 65 20 30 20 30 20 30 20 62 61 73 65 2d 64 61 ement.(encode-time.0.0.0.base-da
69a0 79 20 28 63 61 72 20 6d 6f 6e 74 68 73 29 20 28 63 61 72 20 79 65 61 72 73 29 29 29 29 0a 20 20 y.(car.months).(car.years))))...
69c0 20 20 20 20 28 6c 65 74 20 28 28 63 6f 75 6e 74 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 ....(let.((count.(string-to-numb
69e0 65 72 20 28 73 75 62 73 74 72 69 6e 67 20 28 63 61 72 20 64 61 79 2d 70 61 72 74 73 29 20 30 20 er.(substring.(car.day-parts).0.
6a00 31 29 29 29 0a 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 6c 1))).............(day-of-week.(l
6a20 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 65 edger-schedule-encode-day-of-wee
6a40 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 28 73 75 62 k...........................(sub
6a60 73 74 72 69 6e 67 20 28 63 61 72 20 64 61 79 2d 70 61 72 74 73 29 20 28 73 74 72 69 6e 67 2d 6d string.(car.day-parts).(string-m
6a80 61 74 63 68 20 22 5b 41 2d 5a 61 2d 7a 5d 22 20 28 63 61 72 20 64 61 79 2d 70 61 72 74 73 29 29 atch."[A-Za-z]".(car.day-parts))
6aa0 29 29 29 29 0a 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 )))).........(ledger-schedule-co
6ac0 6e 73 74 72 61 69 6e 2d 64 61 79 2d 69 6e 2d 6d 6f 6e 74 68 20 63 6f 75 6e 74 20 64 61 79 2d 6f nstrain-day-in-month.count.day-o
6ae0 66 2d 77 65 65 6b 29 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 f-week)))))..(defun.ledger-sched
6b00 75 6c 65 2d 6c 69 73 74 2d 75 70 63 6f 6d 69 6e 67 2d 78 61 63 74 73 20 28 63 61 6e 64 69 64 61 ule-list-upcoming-xacts.(candida
6b20 74 65 2d 69 74 65 6d 73 20 65 61 72 6c 79 20 68 6f 72 69 7a 6f 6e 29 0a 20 20 22 53 65 61 72 63 te-items.early.horizon)..."Searc
6b40 68 20 43 41 4e 44 49 44 41 54 45 2d 49 54 45 4d 53 20 66 6f 72 20 78 61 63 74 73 20 74 68 61 74 h.CANDIDATE-ITEMS.for.xacts.that
6b60 20 6f 63 63 75 72 20 77 69 74 68 69 6e 20 74 68 65 20 67 69 76 65 6e 20 70 65 72 69 6f 64 2e 0a .occur.within.the.given.period..
6b80 54 68 65 20 70 65 72 69 6f 64 20 72 75 6e 73 20 66 72 6f 6d 20 28 74 6f 64 61 79 20 2d 20 45 41 The.period.runs.from.(today.-.EA
6ba0 52 4c 59 29 20 74 6f 20 28 74 6f 64 61 79 20 2b 20 48 4f 52 49 5a 4f 4e 29 2e 22 0a 20 20 28 6c RLY).to.(today.+.HORIZON)."...(l
6bc0 65 74 20 28 28 73 74 61 72 74 2d 64 61 74 65 20 28 74 69 6d 65 2d 73 75 62 74 72 61 63 74 20 28 et.((start-date.(time-subtract.(
6be0 63 75 72 72 65 6e 74 2d 74 69 6d 65 29 20 28 64 61 79 73 2d 74 6f 2d 74 69 6d 65 20 65 61 72 6c current-time).(days-to-time.earl
6c00 79 29 29 29 0a 20 20 20 20 20 20 20 20 74 65 73 74 2d 64 61 74 65 20 69 74 65 6d 73 29 0a 20 20 y))).........test-date.items)...
6c20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 64 61 79 20 66 72 6f 6d 20 30 20 74 6f 20 28 2b 20 ..(cl-loop.for.day.from.0.to.(+.
6c40 65 61 72 6c 79 20 68 6f 72 69 7a 6f 6e 29 20 62 79 20 31 20 64 6f 0a 20 20 20 20 20 20 20 20 20 early.horizon).by.1.do..........
6c60 20 20 20 20 28 73 65 74 71 20 74 65 73 74 2d 64 61 74 65 20 28 74 69 6d 65 2d 61 64 64 20 73 74 ....(setq.test-date.(time-add.st
6c80 61 72 74 2d 64 61 74 65 20 28 64 61 79 73 2d 74 6f 2d 74 69 6d 65 20 64 61 79 29 29 29 0a 20 20 art-date.(days-to-time.day)))...
6ca0 20 20 20 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 63 61 6e 64 69 64 61 74 65 20 63 61 ...........(dolist.(candidate.ca
6cc0 6e 64 69 64 61 74 65 2d 69 74 65 6d 73 20 69 74 65 6d 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 ndidate-items.items)............
6ce0 20 20 20 20 28 69 66 20 28 66 75 6e 63 61 6c 6c 20 28 63 61 72 20 63 61 6e 64 69 64 61 74 65 29 ....(if.(funcall.(car.candidate)
6d00 20 74 65 73 74 2d 64 61 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 .test-date)....................(
6d20 73 65 74 71 20 69 74 65 6d 73 20 28 61 70 70 65 6e 64 20 69 74 65 6d 73 20 28 6c 69 73 74 20 28 setq.items.(append.items.(list.(
6d40 6c 69 73 74 20 74 65 73 74 2d 64 61 74 65 20 28 63 61 64 72 20 63 61 6e 64 69 64 61 74 65 29 29 list.test-date.(cadr.candidate))
6d60 29 29 29 29 29 29 0a 20 20 20 20 69 74 65 6d 73 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 )))))).....items))..(defun.ledge
6d80 72 2d 73 63 68 65 64 75 6c 65 2d 63 72 65 61 74 65 2d 61 75 74 6f 2d 62 75 66 66 65 72 20 28 63 r-schedule-create-auto-buffer.(c
6da0 61 6e 64 69 64 61 74 65 2d 69 74 65 6d 73 20 65 61 72 6c 79 20 68 6f 72 69 7a 6f 6e 29 0a 20 20 andidate-items.early.horizon)...
6dc0 22 46 6f 72 6d 61 74 20 43 41 4e 44 49 44 41 54 45 2d 49 54 45 4d 53 20 66 6f 72 20 64 69 73 70 "Format.CANDIDATE-ITEMS.for.disp
6de0 6c 61 79 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 61 6e 64 69 64 61 74 65 73 20 28 6c 65 64 67 65 lay."...(let.((candidates.(ledge
6e00 72 2d 73 63 68 65 64 75 6c 65 2d 6c 69 73 74 2d 75 70 63 6f 6d 69 6e 67 2d 78 61 63 74 73 20 63 r-schedule-list-upcoming-xacts.c
6e20 61 6e 64 69 64 61 74 65 2d 69 74 65 6d 73 20 65 61 72 6c 79 20 68 6f 72 69 7a 6f 6e 29 29 0a 20 andidate-items.early.horizon))..
6e40 20 20 20 20 20 20 20 28 73 63 68 65 64 75 6c 65 2d 62 75 66 20 28 67 65 74 2d 62 75 66 66 65 72 .......(schedule-buf.(get-buffer
6e60 2d 63 72 65 61 74 65 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 62 75 66 66 65 72 2d 6e -create.ledger-schedule-buffer-n
6e80 61 6d 65 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 66 65 72 20 ame))).....(with-current-buffer.
6ea0 73 63 68 65 64 75 6c 65 2d 62 75 66 0a 20 20 20 20 20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72 schedule-buf.......(erase-buffer
6ec0 29 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 63 61 6e 64 69 64 61 74 65 20 63 61 6e 64 69 ).......(dolist.(candidate.candi
6ee0 64 61 74 65 73 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 6c 65 64 67 65 72 2d 66 dates).........(insert.(ledger-f
6f00 6f 72 6d 61 74 2d 64 61 74 65 20 28 63 61 72 20 63 61 6e 64 69 64 61 74 65 29 20 29 20 22 20 22 ormat-date.(car.candidate).)."."
6f20 20 28 63 61 64 72 20 63 61 6e 64 69 64 61 74 65 29 20 22 5c 6e 22 29 29 0a 20 20 20 20 20 20 28 .(cadr.candidate)."\n")).......(
6f40 6c 65 64 67 65 72 2d 6d 6f 64 65 29 29 0a 20 20 20 20 28 6c 65 6e 67 74 68 20 63 61 6e 64 69 64 ledger-mode)).....(length.candid
6f60 61 74 65 73 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 ates)))..(defun.ledger-schedule-
6f80 75 70 63 6f 6d 69 6e 67 20 28 66 69 6c 65 20 6c 6f 6f 6b 2d 62 61 63 6b 77 61 72 64 20 6c 6f 6f upcoming.(file.look-backward.loo
6fa0 6b 2d 66 6f 72 77 61 72 64 29 0a 20 20 22 47 65 6e 65 72 61 74 65 20 75 70 63 6f 6d 69 6e 67 20 k-forward)..."Generate.upcoming.
6fc0 74 72 61 6e 73 61 63 74 69 6f 6e 73 2e 0a 0a 46 49 4c 45 20 69 73 20 74 68 65 20 66 69 6c 65 20 transactions...FILE.is.the.file.
6fe0 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 73 63 68 65 64 75 6c 65 64 20 74 72 61 6e 73 61 63 containing.the.scheduled.transac
7000 74 69 6f 6e 2c 0a 64 65 66 61 75 6c 74 20 74 6f 20 60 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c tion,.default.to.`ledger-schedul
7020 65 2d 66 69 6c 65 27 2e 0a 4c 4f 4f 4b 2d 42 41 43 4b 57 41 52 44 20 69 73 20 74 68 65 20 6e 75 e-file'..LOOK-BACKWARD.is.the.nu
7040 6d 62 65 72 20 6f 66 20 64 61 79 73 20 69 6e 20 74 68 65 20 70 61 73 74 20 74 6f 20 6c 6f 6f 6b mber.of.days.in.the.past.to.look
7060 20 61 74 0a 64 65 66 61 75 6c 74 20 74 6f 20 60 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d .at.default.to.`ledger-schedule-
7080 6c 6f 6f 6b 2d 62 61 63 6b 77 61 72 64 27 0a 4c 4f 4f 4b 2d 46 4f 52 57 41 52 44 20 69 73 20 74 look-backward'.LOOK-FORWARD.is.t
70a0 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 64 61 79 73 20 69 6e 20 74 68 65 20 66 75 74 75 72 65 20 he.number.of.days.in.the.future.
70c0 74 6f 20 6c 6f 6f 6b 20 61 74 0a 64 65 66 61 75 6c 74 20 74 6f 20 60 6c 65 64 67 65 72 2d 73 63 to.look.at.default.to.`ledger-sc
70e0 68 65 64 75 6c 65 2d 6c 6f 6f 6b 2d 66 6f 72 77 61 72 64 27 0a 0a 55 73 65 20 61 20 70 72 65 66 hedule-look-forward'..Use.a.pref
7100 69 78 20 61 72 67 20 74 6f 20 63 68 61 6e 67 65 20 74 68 65 20 64 65 66 61 75 6c 74 20 76 61 6c ix.arg.to.change.the.default.val
7120 75 65 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 69 66 20 63 75 72 72 65 6e 74 2d 70 ue"...(interactive.(if.current-p
7140 72 65 66 69 78 2d 61 72 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 refix-arg....................(li
7160 73 74 20 28 72 65 61 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 53 63 68 65 64 75 6c 65 20 46 69 6c st.(read-file-name."Schedule.Fil
7180 65 3a 20 22 20 28 29 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 66 69 6c 65 20 74 29 0a e:.".().ledger-schedule-file.t).
71a0 20 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 61 64 2d 6e .........................(read-n
71c0 75 6d 62 65 72 20 22 4c 6f 6f 6b 20 62 61 63 6b 77 61 72 64 3a 20 22 20 6c 65 64 67 65 72 2d 73 umber."Look.backward:.".ledger-s
71e0 63 68 65 64 75 6c 65 2d 6c 6f 6f 6b 2d 62 61 63 6b 77 61 72 64 29 0a 20 20 20 20 20 20 20 20 20 chedule-look-backward)..........
7200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 61 64 2d 6e 75 6d 62 65 72 20 22 4c 6f ................(read-number."Lo
7220 6f 6b 20 66 6f 72 77 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 ok.forward:.".ledger-schedule-lo
7240 6f 6b 2d 66 6f 72 77 61 72 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c ok-forward))..................(l
7260 69 73 74 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 66 69 6c 65 20 6c 65 64 67 65 72 2d ist.ledger-schedule-file.ledger-
7280 73 63 68 65 64 75 6c 65 2d 6c 6f 6f 6b 2d 62 61 63 6b 77 61 72 64 20 6c 65 64 67 65 72 2d 73 63 schedule-look-backward.ledger-sc
72a0 68 65 64 75 6c 65 2d 6c 6f 6f 6b 2d 66 6f 72 77 61 72 64 29 29 29 0a 20 20 28 75 6e 6c 65 73 73 hedule-look-forward)))...(unless
72c0 20 28 61 6e 64 20 66 69 6c 65 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 66 69 6c 65 29 29 .(and.file.(file-exists-p.file))
72e0 0a 20 20 20 20 28 65 72 72 6f 72 20 22 43 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 6c 65 64 67 .....(error."Could.not.find.ledg
7300 65 72 20 73 63 68 65 64 75 6c 65 20 66 69 6c 65 20 61 74 20 25 73 22 20 66 69 6c 65 29 29 0a 20 er.schedule.file.at.%s".file))..
7320 20 28 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 63 72 65 61 74 65 2d 61 75 74 6f 2d 62 75 .(ledger-schedule-create-auto-bu
7340 66 66 65 72 0a 20 20 20 28 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 73 63 61 6e 2d 74 72 ffer....(ledger-schedule-scan-tr
7360 61 6e 73 61 63 74 69 6f 6e 73 20 66 69 6c 65 29 0a 20 20 20 6c 6f 6f 6b 2d 62 61 63 6b 77 61 72 ansactions.file)....look-backwar
7380 64 0a 20 20 20 6c 6f 6f 6b 2d 66 6f 72 77 61 72 64 29 0a 20 20 28 70 6f 70 2d 74 6f 2d 62 75 66 d....look-forward)...(pop-to-buf
73a0 66 65 72 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 fer.ledger-schedule-buffer-name)
73c0 29 0a 0a 0a 28 70 72 6f 76 69 64 65 20 27 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 29 0a 0a )...(provide.'ledger-schedule)..
73e0 3b 3b 3b 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 ;;;.ledger-schedule.el.ends.here
7400 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 ................................
7420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 36 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240416.416/ledger-
7620 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.........................
7640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7660 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
7680 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 36 00 20 30 00 00 00 0011743.00000000000.015626..0...
76a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
76c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
76e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7700 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...................
7720 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...................
7740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
77a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
77c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
77e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7800 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
7820 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
7840 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
7860 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
7880 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
78a0 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
78c0 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.
78e0 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
7900 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.;;
7920 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
7940 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
7960 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
7980 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
79a0 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..;;.;;.
79c0 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.
79e0 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
7a00 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
7a20 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
7a40 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
7a60 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
7a80 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
7aa0 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
7ac0 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
7ae0 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
7b00 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
7b20 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.
7b40 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
7b60 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
7b80 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....;;;.
7ba0 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
7bc0 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
7be0 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)......
7c00 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
7c20 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
7c40 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
7c60 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
7c80 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.
7ca0 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.
7cc0 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
7ce0 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.
7d00 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
7d20 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
7d40 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..
7d60 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
7d80 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
7da0 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
7dc0 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..."
7de0 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
7e00 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
7e20 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
7e40 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
7e60 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
7e80 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
7ea0 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)..(
7ec0 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.(
7ee0 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
7f00 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
7f20 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.
7f40 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
7f60 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
7f80 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
7fa0 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
7fc0 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)
7fe0 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
8000 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
8020 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
8040 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
8060 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-
8080 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
80a0 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
80c0 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
80e0 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......
8100 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)).....
8120 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).
8140 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
8160 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-
8180 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
81a0 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.
81c0 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
81e0 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
8200 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
8220 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
8240 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.
8260 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
8280 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
82a0 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........
82c0 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.
82e0 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).............
8300 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
8320 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)).............
8340 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
8360 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
8380 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
83a0 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
83c0 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
83e0 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
8400 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
8420 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..................
8440 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
8460 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
8480 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")))..
84a0 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
84c0 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
84e0 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..................
8500 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.'
8520 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
8540 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))..
8560 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-
8580 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..................
85a0 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
85c0 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)..................
85e0 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
8600 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
8620 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"."-")...............
8640 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
8660 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
8680 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)...........................
86a0 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
86c0 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
86e0 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
8700 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.
8720 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
8740 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
8760 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
8780 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
87a0 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).
87c0 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
87e0 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.
8800 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
8820 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
8840 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).(
8860 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")....
8880 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))....
88a0 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)..
88c0 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
88e0 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......................
8900 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
8920 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)...............
8940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
8960 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)))).
8980 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.(
89a0 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
89c0 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))..................(
89e0 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
8a00 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))......................
8a20 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
8a40 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
8a60 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.
8a80 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.().
8aa0 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.
8ac0 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
8ae0 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
8b00 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
8b20 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
8b40 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))........
8b60 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
8b80 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.
8ba0 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
8bc0 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
8be0 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..............................
8c00 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 36 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240416.416/ledger-
8c20 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.........................
8c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8c60 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
8c80 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 30 00 20 30 00 00 00 0017261.00000000000.015670..0...
8ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d00 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...................
8d20 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...................
8d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e00 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
8e20 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
8e40 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
8e60 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
8e80 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
8ea0 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
8ec0 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.
8ee0 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
8f00 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.;;
8f20 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
8f40 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
8f60 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
8f80 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
8fa0 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..;;.;;.
8fc0 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.
8fe0 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
9000 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
9020 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
9040 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
9060 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
9080 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
90a0 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
90c0 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
90e0 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
9100 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
9120 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.
9140 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
9160 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
9180 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....;;;.
91a0 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
91c0 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
91e0 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
9200 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
9220 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".()
9240 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
9260 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"
9280 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)).
92a0 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
92c0 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
92e0 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
9300 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
9320 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
9340 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
9360 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.
9380 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
93a0 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
93c0 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
93e0 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
9400 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
9420 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
9440 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
9460 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.
9480 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.
94a0 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
94c0 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
94e0 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
9500 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
9520 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.
9540 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."
9560 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
9580 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).
95a0 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
95c0 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
95e0 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...
9600 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
9620 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
9640 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
9660 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
9680 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.
96a0 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..
96c0 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.
96e0 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)..(
9700 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
9720 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
9740 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.
9760 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
9780 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
97a0 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
97c0 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
97e0 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
9800 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
9820 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)....
9840 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
9860 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.".
9880 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
98a0 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)
98c0 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
98e0 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)))........((
9900 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-
9920 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
9940 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
9960 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).
9980 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.
99a0 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
99c0 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
99e0 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.
9a00 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
9a20 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
9a40 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
9a60 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
9a80 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.(
9aa0 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
9ac0 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)...
9ae0 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
9b00 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......
9b20 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)....
9b40 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
9b60 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
9b80 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))).........
9ba0 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
9bc0 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
9be0 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
9c00 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")...
9c20 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
9c40 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
9c60 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
9c80 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
9ca0 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
9cc0 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
9ce0 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
9d00 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.
9d20 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
9d40 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
9d60 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
9d80 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)
9da0 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
9dc0 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
9de0 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
9e00 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))).......
9e20 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
9e40 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).
9e60 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
9e80 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.
9ea0 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
9ec0 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-
9ee0 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
9f00 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:..........
9f20 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
9f40 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)........
9f60 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
9f80 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
9fa0 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
9fc0 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)............
9fe0 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
a000 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
a020 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)).......
a040 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
a060 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)
a080 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
a0a0 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
a0c0 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.(
a0e0 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
a100 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
a120 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).....................
a140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
a160 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)).......
a180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
a1a0 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
a1c0 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
a1e0 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 ................................
a200 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
a220 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)).............
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 20 20 20 20 20 ................................
a260 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...................
a280 20 20 20 20 20 20 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
a2a0 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))))...............
a2c0 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)....
a2e0 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.(
a300 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.?.)).....
a320 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
a340 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
a360 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
a380 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
a3a0 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
a3c0 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
a3e0 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
a400 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
a420 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)).....................
a440 20 20 20 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
a460 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
a480 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)))...............
a4a0 20 20 20 20 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
a4c0 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
a4e0 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 ................................
a500 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
a520 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
a540 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)...
a560 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).
a580 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)))
a5a0 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.
a5c0 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.
a5e0 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-
a600 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-
a620 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.
a640 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.
a660 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
a680 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
a6a0 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
a6c0 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....((
a6e0 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
a700 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-
a720 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)).
a740 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
a760 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
a780 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.'
a7a0 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
a7c0 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.()...
a7e0 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
a800 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
a820 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
a840 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
a860 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
a880 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)
a8a0 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.(
a8c0 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
a8e0 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)
a900 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
a920 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)
a940 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
a960 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
a980 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
a9a0 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
a9c0 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).........
a9e0 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.
aa00 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
aa20 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
aa40 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
aa60 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.
aa80 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)
aaa0 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
aac0 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
aae0 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
ab00 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
ab20 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
ab40 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
ab60 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)........
ab80 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)).......
aba0 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
abc0 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.
abe0 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
ac00 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)........
ac20 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
ac40 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)
ac60 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
ac80 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
aca0 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................
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ad20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 36 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240416.416/ledger-
ae20 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......................
ae40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ae60 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
ae80 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 34 00 20 30 00 00 00 0015202.00000000000.016324..0...
aea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
af00 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...................
af20 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...................
af40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
af60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
af80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
afa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
afc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
afe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b000 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
b020 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-
b040 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
b060 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
b080 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).
b0a0 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
b0c0 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
b0e0 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
b100 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
b120 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
b140 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
b160 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
b180 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
b1a0 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
b1c0 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
b1e0 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
b200 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
b220 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
b240 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
b260 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
b280 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..;
b2a0 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.
b2c0 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
b2e0 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;.
b300 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
b320 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
b340 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
b360 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
b380 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:.;
b3a0 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.
b3c0 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
b3e0 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
b400 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-
b420 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.;;.
b440 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
b460 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.
b480 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.
b4a0 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:.;;.;;.....(
b4c0 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
b4e0 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:.(
b500 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
b520 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)......
b540 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
b560 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).
b580 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
b5a0 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
b5c0 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.
b5e0 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
b600 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
b620 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
b640 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
b660 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
b680 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
b6a0 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
b6c0 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
b6e0 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.
b700 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
b720 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
b740 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
b760 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
b780 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
b7a0 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
b7c0 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").
b7e0 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
b800 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..."
b820 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.
b840 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
b860 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
b880 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.
b8a0 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
b8c0 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
b8e0 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
b900 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
b920 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
b940 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
b960 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
b980 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
b9a0 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
b9c0 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
b9e0 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
ba00 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
ba20 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
ba40 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...;
ba60 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.
ba80 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
baa0 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
bac0 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
bae0 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.
bb00 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
bb20 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).
bb40 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
bb60 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
bb80 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
bba0 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
bbc0 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
bbe0 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.(
bc00 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
bc20 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.
bc40 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
bc60 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.
bc80 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
bca0 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..
bcc0 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......
bce0 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
bd00 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
bd20 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
bd40 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-
bd60 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-
bd80 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....
bda0 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-
bdc0 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.................
bde0 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
be00 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
be20 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").........................
be40 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
be60 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").
be80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
bea0 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
bec0 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
bee0 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.
bf00 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
bf20 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
bf40 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
bf60 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)).......
bf80 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...........
bfa0 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'.
bfc0 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.................;
bfe0 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.
c000 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.................;
c020 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
c040 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
c060 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
c080 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))............
c0a0 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
c0c0 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).............
c0e0 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)
c100 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
c120 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
c140 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
c160 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
c180 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.....................
c1a0 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
c1c0 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
c1e0 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
c200 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.......
c220 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.
c240 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
c260 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.......................
c280 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
c2a0 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......
c2c0 20 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
c2e0 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
c300 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...........................
c320 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)................
c340 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."
c360 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
c380 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.".(
c3a0 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)).":\
c3c0 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"..............................
c3e0 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
c400 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)
c420 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".).........................
c440 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
c460 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.
c480 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")).............
c4a0 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
c4c0 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
c4e0 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")).....................
c500 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)................
c520 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.
c540 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
c560 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
c580 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 ................................
c5a0 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...............
c5c0 20 20 20 20 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
c5e0 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)))
c600 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
c620 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.......................
c640 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
c660 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........................
c680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
c6a0 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............................
c6c0 20 20 20 20 20 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
c6e0 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 ................................
c700 20 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...
c720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
c740 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)......
c760 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....
c780 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
c7a0 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))).........
c7c0 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.
c7e0 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"...
c800 20 20 20 20 20 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
c820 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
c840 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
c860 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
c880 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.(
c8a0 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))))))))))..;
c8c0 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
c8e0 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
c900 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.
c920 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
c940 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
c960 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
c980 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
c9a0 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
c9c0 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
c9e0 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.'
ca00 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
ca20 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
ca40 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)
ca60 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
ca80 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...............................
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cb20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 36 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240416.416/ledger-
cc20 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.....................
cc40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cc60 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
cc80 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 34 00 20 30 00 00 00 0015743.00000000000.016504..0...
cca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ccc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cd00 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...................
cd20 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...................
cd40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cd60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cd80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cda0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cdc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cde0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ce00 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
ce20 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
ce40 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
ce60 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)
ce80 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
cea0 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
cec0 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
cee0 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
cf00 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
cf20 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
cf40 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
cf60 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
cf80 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
cfa0 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.
cfc0 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
cfe0 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
d000 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
d020 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
d040 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
d060 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
d080 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.;;.
d0a0 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
d0c0 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
d0e0 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
d100 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.
d120 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.;
d140 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.
d160 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
d180 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.
d1a0 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:
d1c0 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
d1e0 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
d200 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
d220 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
d240 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
d260 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.
d280 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
d2a0 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
d2c0 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
d2e0 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
d300 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
d320 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
d340 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
d360 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
d380 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.(
d3a0 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
d3c0 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..
d3e0 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
d400 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
d420 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.
d440 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
d460 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
d480 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
d4a0 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-
d4c0 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-
d4e0 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.
d500 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
d520 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......
d540 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)..
d560 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-
d580 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.
d5a0 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
d5c0 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.
d5e0 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-
d600 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.
d620 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
d640 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
d660 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
d680 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-
d6a0 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
d6c0 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
d6e0 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.
d700 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."...(
d720 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
d740 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)))).
d760 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
d780 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
d7a0 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
d7c0 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
d7e0 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)))..
d800 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
d820 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
d840 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."
d860 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
d880 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
d8a0 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.
d8c0 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
d8e0 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.
d900 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.
d920 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
d940 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
d960 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))..
d980 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
d9a0 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
d9c0 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
d9e0 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).
da00 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
da20 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
da40 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
da60 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
da80 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
daa0 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
dac0 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
dae0 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)...
db00 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
db20 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
db40 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.
db60 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
db80 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
dba0 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
dbc0 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)......
dbe0 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
dc00 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
dc20 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.
dc40 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
dc60 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
dc80 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
dca0 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).......
dcc0 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)
dce0 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
dd00 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
dd20 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
dd40 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."
dd60 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.
dd80 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)..........
dda0 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)))))
ddc0 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
dde0 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.
de00 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.
de20 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.(
de40 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
de60 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
de80 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\
dea0 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
dec0 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
dee0 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
df00 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
df20 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]").....................
df40 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-
df60 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
df80 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
dfa0 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
dfc0 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
dfe0 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
e000 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
e020 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.
e040 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
e060 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
e080 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
e0a0 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.
e0c0 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
e0e0 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).
e100 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))....
e120 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
e140 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
e160 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
e180 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)))..
e1a0 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\\
e1c0 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
e1e0 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..............
e200 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
e220 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
e240 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 \\)\\_>")).....................(
e260 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
e280 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
e2a0 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
e2c0 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
e2e0 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
e300 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.(
e320 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
e340 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))
e360 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
e380 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))
e3a0 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.".*;"))...
e3c0 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.
e3e0 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
e400 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).......
e420 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
e440 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
e460 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
e480 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)....
e4a0 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
e4c0 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.
e4e0 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
e500 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
e520 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
e540 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
e560 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
e580 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
e5a0 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)..
e5c0 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
e5e0 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
e600 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
e620 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
e640 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\\[]").........
e660 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
e680 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
e6a0 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))))..(
e6c0 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
e6e0 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
e700 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
e720 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
e740 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).....
e760 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
e780 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-
e7a0 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
e7c0 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
e7e0 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
e800 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.
e820 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
e840 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
e860 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
e880 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.
e8a0 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
e8c0 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
e8e0 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
e900 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
e920 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
e940 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)...........
e960 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.
e980 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"
e9a0 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)
e9c0 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
e9e0 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..............................
ea00 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 36 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240416.416/ledger-
ea20 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.........................
ea40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea60 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
ea80 30 30 30 37 32 37 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 36 35 34 00 20 30 00 00 00 0007277.00000000000.015654..0...
eaa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
eac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
eae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
eb00 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...................
eb20 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...................
eb40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
eb60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
eb80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
eba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ebc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ebe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ec00 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
ec20 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
ec40 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
ec60 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
ec80 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
eca0 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
ecc0 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.
ece0 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
ed00 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.;;
ed20 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
ed40 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
ed60 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
ed80 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
eda0 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..;;.;;.
edc0 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.
ede0 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
ee00 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
ee20 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
ee40 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
ee60 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
ee80 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
eea0 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
eec0 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
eee0 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
ef00 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
ef20 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.
ef40 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
ef60 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
ef80 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
efa0 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
efc0 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
efe0 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
f000 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
f020 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
f040 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
f060 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.
f080 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.
f0a0 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).......
f0c0 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
f0e0 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
f100 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
f120 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
f140 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
f160 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.
f180 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
f1a0 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
f1c0 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.`
f1e0 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
f200 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
f220 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
f240 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
f260 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.")..(
f280 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
f2a0 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
f2c0 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..
f2e0 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
f300 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.
f320 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
f340 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
f360 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)..
f380 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
f3a0 6f 6e 61 6c 20 64 61 74 65 20 66 6f 72 6d 61 74 29 0a 20 20 22 46 6f 72 6d 61 74 20 44 41 54 45 onal.date.format)..."Format.DATE
f3c0 20 61 63 63 6f 72 64 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 .according.to.the.current.prefer
f3e0 72 65 64 20 64 61 74 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 red.date.format..Returns.the.cur
f400 72 65 6e 74 20 64 61 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 rent.date.if.DATE.is.nil.or.not.
f420 73 75 70 70 6c 69 65 64 2e 0a 0a 49 66 20 46 4f 52 4d 41 54 20 69 73 20 70 72 6f 76 69 64 65 64 supplied...If.FORMAT.is.provided
f440 2c 20 75 73 65 20 74 68 61 74 20 61 73 20 74 68 65 20 64 61 74 65 20 66 6f 72 6d 61 74 2e 20 20 ,.use.that.as.the.date.format...
f460 4f 74 68 65 72 77 69 73 65 2c 0a 75 73 65 20 74 68 65 20 2d 2d 69 6e 70 75 74 2d 64 61 74 65 2d Otherwise,.use.the.--input-date-
f480 66 6f 72 6d 61 74 20 73 70 65 63 69 66 69 65 64 20 69 6e 20 60 6c 65 64 67 65 72 2d 69 6e 69 74 format.specified.in.`ledger-init
f4a0 2d 66 69 6c 65 2d 6e 61 6d 65 27 2c 0a 6f 72 20 69 66 20 6e 6f 6e 65 2c 20 75 73 65 20 60 6c 65 -file-name',.or.if.none,.use.`le
f4c0 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 20 28 66 dger-default-date-format'."...(f
f4e0 6f 72 6d 61 74 2d 74 69 6d 65 2d 73 74 72 69 6e 67 0a 20 20 20 28 6f 72 20 66 6f 72 6d 61 74 0a ormat-time-string....(or.format.
f500 20 20 20 20 20 20 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 .......(cdr.(assoc."input-date-f
f520 6f 72 6d 61 74 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 ormat".ledger-environment-alist)
f540 29 0a 20 20 20 20 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 )........ledger-default-date-for
f560 6d 61 74 29 0a 20 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 mat)....date))...(defun.ledger-i
f580 6e 69 74 2d 70 61 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 nit-parse-initialization.(buffer
f5a0 29 0a 20 20 22 50 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 )..."Parse.the..ledgerrc.file.in
f5c0 20 42 55 46 46 45 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 .BUFFER."...(with-current-buffer
f5e0 20 62 75 66 66 65 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 .buffer.....(let.(environment-al
f600 69 73 74 29 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 69 6e ist).......(goto-char.(point-min
f620 29 29 0a 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 77 61 )).......(while.(re-search-forwa
f640 72 64 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 20 6e 69 6c 20 rd.ledger-init-string-regex.nil.
f660 74 29 0a 20 20 20 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 t).........(let.((matchb.(match-
f680 62 65 67 69 6e 6e 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 beginning.0)).;;.save.the.match.
f6a0 64 61 74 61 2c 20 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 data,.string-match.stamp.on.it..
f6c0 20 20 20 20 20 20 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 .............(matche.(match-end.
f6e0 30 29 29 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 20 20 20 0)))...........(end-of-line)....
f700 20 20 20 20 20 20 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 .......(push.(cons.(let.((flag.(
f720 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.(
f740 2b 20 32 20 6d 61 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 +.2.matchb).matche)))...........
f760 20 20 20 20 20 20 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 ..............(if.(string-match.
f780 22 5b 20 5c 74 5c 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 "[.\t\n\r]+\\'".flag)...........
f7a0 20 20 20 20 20 20 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 ..................(replace-match
f7c0 20 22 22 20 74 20 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 ."".t.t.flag)...................
f7e0 20 20 20 20 20 20 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 ........flag))..................
f800 20 20 20 20 20 28 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 .....(let.((value.(buffer-substr
f820 69 6e 67 2d 6e 6f 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 ing-no-properties.matche.(point)
f840 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 28 69 66 20 ))).........................(if.
f860 28 3e 20 28 6c 65 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 (>.(length.value).0)............
f880 20 20 20 20 20 20 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 .................value..........
f8a0 20 20 20 20 20 20 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 .................t)))...........
f8c0 20 20 20 20 20 20 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 ......environment-alist)))......
f8e0 20 28 6e 72 65 76 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 .(nreverse.environment-alist))))
f900 0a 0a 28 64 65 66 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 ..(defun.ledger-init-load-init-f
f920 69 6c 65 20 28 29 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 ile.()..."Load.and.parse.the..le
f940 64 67 65 72 72 63 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 dgerrc.file.into.`ledger-environ
f960 6d 65 6e 74 2d 61 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 ment-alist'."...(interactive)...
f980 28 77 68 65 6e 20 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 (when.(and.ledger-init-file-name
f9a0 0a 20 20 20 20 20 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 ..............(file-readable-p.l
f9c0 65 64 67 65 72 2d 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 edger-init-file-name)).....(with
f9e0 2d 74 65 6d 70 2d 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 -temp-buffer.......(insert-file-
fa00 63 6f 6e 74 65 6e 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 contents.ledger-init-file-name).
fa20 20 20 20 20 20 20 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 ......(setq.ledger-environment-a
fa40 6c 69 73 74 0a 20 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 list.............(ledger-init-pa
fa60 72 73 65 2d 69 6e 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 rse-initialization.(current-buff
fa80 65 72 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 69 6e 69 74 29 er))))))..(provide.'ledger-init)
faa0 0a 0a 3b 3b 3b 20 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 ..;;;.ledger-init.el.ends.here..
fac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fb00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fb20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fb40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fb60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fb80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fbc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fbe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fc00 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 36 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240416.416/ledger-
fc20 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.........................
fc40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fc60 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
fc80 30 30 32 31 35 35 35 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 36 34 33 00 20 30 00 00 00 0021555.00000000000.015643..0...
fca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fcc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fd00 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...................
fd20 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...................
fd40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fd60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fd80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fda0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fdc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fde0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fe00 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
fe20 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
fe40 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
fe60 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
fe80 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
fea0 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
fec0 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.
fee0 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
ff00 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.;;
ff20 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
ff40 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
ff60 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
ff80 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
ffa0 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..;;.;;.
ffc0 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.
ffe0 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
10000 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
10020 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
10040 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
10060 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
10080 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
100a0 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
100c0 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
100e0 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
10100 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
10120 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.
10140 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
10160 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
10180 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....;;;.
101a0 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
101c0 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...;;;.
101e0 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
10200 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
10220 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
10240 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
10260 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
10280 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
102a0 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
102c0 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
102e0 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-
10300 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
10320 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.
10340 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
10360 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
10380 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,
103a0 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
103c0 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
103e0 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
10400 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
10420 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").
10440 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
10460 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.(
10480 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-
104a0 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
104c0 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
104e0 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
10500 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
10520 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...
10540 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
10560 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
10580 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
105a0 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
105c0 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
105e0 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
10600 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
10620 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
10640 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.
10660 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
10680 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
106a0 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)).............(
106c0 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
106e0 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
10700 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
10720 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).
10740 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
10760 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................
10780 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.
107a0 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-
107c0 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
107e0 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
10800 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
10820 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-
10840 68 69 67 68 6c 69 67 68 74 2d 2d 62 65 66 6f 72 65 2d 72 65 76 65 72 74 20 28 29 0a 20 20 22 43 highlight--before-revert.()..."C
10860 6c 65 61 6e 20 75 70 20 68 69 67 68 6c 69 67 68 74 69 6e 67 20 6f 76 65 72 6c 61 79 20 62 65 66 lean.up.highlighting.overlay.bef
10880 6f 72 65 20 72 65 76 65 72 74 69 6e 67 20 62 75 66 66 65 72 2e 22 0a 20 20 28 77 68 65 6e 20 6c ore.reverting.buffer."...(when.l
108a0 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 0a 20 20 20 edger-xact-highlight-overlay....
108c0 20 28 64 65 6c 65 74 65 2d 6f 76 65 72 6c 61 79 20 6c 65 64 67 65 72 2d 78 61 63 74 2d 68 69 67 .(delete-overlay.ledger-xact-hig
108e0 68 6c 69 67 68 74 2d 6f 76 65 72 6c 61 79 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 hlight-overlay)))..(defun.ledger
10900 2d 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 -xact-context.()..."Return.the.c
10920 6f 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 ontext.of.the.transaction.contai
10940 6e 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 ning.point.or.nil."...(let.((i.0
10960 29 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 )).....(while.(eq.(ledger-contex
10980 74 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 t-line-type.(ledger-context-othe
109a0 72 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 r-line.i)).'acct-transaction)...
109c0 20 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 ....(setq.i.(-.i.1))).....(let.(
109e0 28 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 (context-info.(ledger-context-ot
10a00 68 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 her-line.i))).......(when.(eq.(l
10a20 65 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 edger-context-line-type.context-
10a40 69 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 info).'xact).........context-inf
10a60 6f 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 o))))..(defun.ledger-xact-payee.
10a80 28 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 ()..."Return.the.payee.of.the.tr
10aa0 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 6f 72 20 6e 69 ansaction.containing.point.or.ni
10ac0 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 65 78 74 20 28 l."...(when-let.((xact-context.(
10ae0 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 28 6c 65 64 67 ledger-xact-context))).....(ledg
10b00 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 2d 63 6f 6e 74 er-context-field-value.xact-cont
10b20 65 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 ext.'payee)))..(defun.ledger-xac
10b40 74 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 t-date.()..."Return.the.date.of.
10b60 74 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 the.transaction.containing.point
10b80 20 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 .or.nil."...(when-let.((xact-con
10ba0 74 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 text.(ledger-xact-context)))....
10bc0 20 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 .(ledger-context-field-value.xac
10be0 74 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 t-context.'date)))..(defun.ledge
10c00 72 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 r-xact-find-slot.(moment)..."Fin
10c20 64 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 d.the.right.place.in.the.buffer.
10c40 66 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 for.a.transaction.at.MOMENT..MOM
10c60 45 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 ENT.is.an.encoded.date"...(let.(
10c80 6c 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 last-xact-start).....(catch.'fou
10ca0 6e 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 nd.......(ledger-xact-iterate-tr
10cc0 61 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 ansactions........(lambda.(start
10ce0 20 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 .date._mark._desc)..........(set
10d00 71 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 q.last-xact-start.start)........
10d20 20 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 ..(when.(time-less-p.moment.date
10d40 29 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 )............(throw.'found.t))))
10d60 29 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 ).....;;.If.we.are.inserting.at.
10d80 74 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 the.end.of.the.buffer,.insert.an
10da0 20 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 .extra.newline.....(when.(and.(e
10dc0 6f 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 obp).last-xact-start).......(let
10de0 20 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 .((end.(cadr.(ledger-navigate-fi
10e00 6e 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 nd-xact-extents.last-xact-start)
10e20 29 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 ))).........(goto-char.end).....
10e40 20 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 ....(insert."\n").........(forwa
10e60 72 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 rd-line)))))..(defun.ledger-xact
10e80 2d 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 -iterate-transactions.(callback)
10ea0 0a 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 ..."Iterate.through.each.transac
10ec0 74 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 tion.call.CALLBACK.for.each."...
10ee0 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 28 6c 65 74 2a 20 (goto-char.(point-min))...(let*.
10f00 28 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 ((now.(current-time))..........(
10f20 63 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 current-year.(nth.5.(decode-time
10f40 20 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 .now)))).....(while.(not.(eobp))
10f60 0a 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 .......(when.(looking-at.ledger-
10f80 69 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 iterate-regexp).........(if-let.
10fa0 28 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 ((year.(match-string.1))).......
10fc0 20 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 ......(setq.current-year.(string
10fe0 2d 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 -to-number.year)).;a.Y.directive
11000 20 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 .was.found...........(let.((star
11020 74 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 t.(match-beginning.0))..........
11040 20 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 .......(year.(match-string.(+.le
11060 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 74 75 61 6c 2d dger-regex-iterate-group-actual-
11080 64 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 date.1))).................(month
110a0 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 72 69 6e 67 .(string-to-number.(match-string
110c0 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 75 70 2d 61 .(+.ledger-regex-iterate-group-a
110e0 63 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 ctual-date.2))))................
11100 20 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 .(day.(string-to-number.(match-s
11120 74 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 tring.(+.ledger-regex-iterate-gr
11140 6f 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 oup-actual-date.3))))...........
11160 20 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 ......(state.(match-string.ledge
11180 72 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 r-regex-iterate-group-state))...
111a0 20 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 ..............(payee.(match-stri
111c0 6e 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 ng.ledger-regex-iterate-group-pa
111e0 79 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 yee))).............(if.(and.year
11200 20 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 .(>.(length.year).0))...........
11220 20 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 ......(setq.year.(string-to-numb
11240 65 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 er.year))).............(funcall.
11260 63 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 callback.start..................
11280 20 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 ....(encode-time.0.0.0.day.month
112a0 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 ................................
112c0 20 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 ...(or.year.current-year))......
112e0 20 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 ................state.payee)))).
11300 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 65 66 63 75 73 ......(forward-line))))..(defcus
11320 74 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 tom.ledger-copy-transaction-inse
11340 72 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 rt-blank-line-after.nil..."When.
11360 6e 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 non-nil,.insert.a.blank.line.aft
11380 65 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 er.`ledger-copy-transaction-at-p
113a0 6f 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 oint'."...:type.'boolean...:grou
113c0 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 63 6f 70 79 2d 74 p.'ledger)..(defun.ledger-copy-t
113e0 72 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 ransaction-at-point.(date)..."As
11400 6b 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 k.for.a.new.DATE.and.copy.the.tr
11420 61 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 ansaction.under.point.to.that.da
11440 74 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 te..Leave.point.on.the.first.amo
11460 75 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 unt."...(interactive.(list.(ledg
11480 65 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 er-read-date."Copy.to.date:.")))
114a0 0a 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 ...(let*.((extents.(ledger-navig
114c0 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 69 6e 74 29 29 29 0a ate-find-xact-extents.(point))).
114e0 20 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 .........(transaction.(buffer-su
11500 62 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 bstring-no-properties.(car.exten
11520 74 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 ts).(cadr.extents)))..........(e
11540 6e 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 ncoded-date.(ledger-parse-iso-da
11560 74 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 te.date))).....(push-mark).....(
11580 6c 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 ledger-xact-find-slot.encoded-da
115a0 74 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 te).....(insert.transaction.....
115c0 20 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 ........(if.(and.ledger-copy-tra
115e0 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 2d 61 66 74 65 72 nsaction-insert-blank-line-after
11600 20 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 .(not.(eobp)))................."
11620 5c 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 \n\n"..............."\n")).....(
11640 62 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 beginning-of-line.-1).....(ledge
11660 72 2d 6e 61 76 69 67 61 74 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 78 61 63 74 29 0a 20 20 r-navigate-beginning-of-xact)...
11680 20 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 6c 65 64 67 65 72 2d 69 73 6f 2d ..(re-search-forward.ledger-iso-
116a0 64 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 date-regexp).....(replace-match.
116c0 64 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 date).....(ledger-next-amount)..
116e0 20 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 ...(if.(re-search-forward."[-0-9
11700 5d 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
11720 67 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 ginning.0)))))..(defun.ledger-de
11740 6c 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 lete-current-transaction.(pos)..
11760 20 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 ."Delete.the.transaction.surroun
11780 64 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 ding.POS."...(interactive."d")..
117a0 20 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 .(let.((bounds.(ledger-navigate-
117c0 66 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 find-xact-extents.pos))).....(de
117e0 6c 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 lete-region.(car.bounds).(cadr.b
11800 6f 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 ounds)))...(delete-blank-lines))
11820 0a 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 ..(defvar.ledger-add-transaction
11840 2d 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 -last-date.nil..."Last.date.ente
11860 72 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 red.using.`ledger-read-transacti
11880 6f 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 on'.")..(defun.ledger-read-trans
118a0 61 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 action.()..."Read.the.text.of.a.
118c0 74 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 transaction,.which.is.at.least.t
118e0 68 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 he.current.date."...(let.((date.
11900 28 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 (ledger-read-date."Date:.")))...
11920 20 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 ..(concat.date.".".............(
11940 77 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 when.ledger-add-transaction-prom
11960 70 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 pt-for-text...............(read-
11980 73 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 string.(concat."xact.".date.":."
119a0 29 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 ).nil.'ledger-minibuffer-history
119c0 29 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 )))))..(defun.ledger-parse-iso-d
119e0 61 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 ate.(date)..."Try.to.parse.DATE.
11a00 75 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 using.`ledger-iso-date-regexp'.a
11a20 6e 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 nd.return.a.time.value.or.nil.".
11a40 20 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 ..(save-match-data.....(when.(st
11a60 72 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 ring-match.ledger-iso-date-regex
11a80 70 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 p.date).......(encode-time.0.0.0
11aa0 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 72 69 6e 67 .(string-to-number.(match-string
11ac0 20 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 .4.date))....................(st
11ae0 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 33 20 64 ring-to-number.(match-string.3.d
11b00 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 69 6e 67 ate))....................(string
11b20 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 20 64 61 74 65 29 -to-number.(match-string.2.date)
11b40 29 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 )))))..(defun.ledger-add-transac
11b60 74 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 tion.(transaction-text.&optional
11b80 20 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 .insert-at-point)..."Use.ledger.
11ba0 78 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 xact.TRANSACTION-TEXT.to.add.a.t
11bc0 72 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 ransaction.to.the.buffer..If.INS
11be0 45 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 ERT-AT-POINT.is.non-nil.insert.t
11c00 68 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 he.transaction.there,.otherwise.
11c20 63 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 call.`ledger-xact-find-slot'.to.
11c40 69 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 insert.it.at.the.correct.chronol
11c60 6f 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 ogical.place.in.the.buffer...Int
11c80 65 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 eractively,.the.date.is.requeste
11ca0 64 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 d.via.`ledger-read-date'.and.the
11cc0 20 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 .\\[universal-argument].enables.
11ce0 49 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 INSERT-AT-POINT."...(interactive
11d00 20 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 .(list.(ledger-read-transaction)
11d20 20 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 .current-prefix-arg))...(let*.((
11d40 61 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 args.(with-temp-buffer..........
11d60 20 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 ........(insert.transaction-text
11d80 29 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 )..................(eshell-parse
11da0 2d 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 -arguments.(point-min).(point-ma
11dc0 78 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 x))))..........(ledger-buf.(curr
11de0 65 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 ent-buffer))..........(separator
11e00 20 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 ."\n")).....(unless.insert-at-po
11e20 69 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 int.......(let*.((date.(car.args
11e40 29 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 ))..............(parsed-date.(le
11e60 64 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 dger-parse-iso-date.date))).....
11e80 20 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 ....(setq.ledger-add-transaction
11ea0 2d 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 -last-date.parsed-date).........
11ec0 28 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 (push-mark).........;;.TODO:.wha
11ee0 74 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 t.about.when.it.can't.be.parsed?
11f00 0a 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 .........(ledger-xact-find-slot.
11f20 28 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 (or.parsed-date.date)).........(
11f40 77 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 when.(looking-at."\n*\\'")......
11f60 20 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 .....(setq.separator."")))).....
11f80 28 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 (if.(cdr.args).........(save-exc
11fa0 75 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 ursion...........(insert........
11fc0 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 20 20 20 20 20 20 ....(with-temp-buffer...........
11fe0 20 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 ...(apply.#'ledger-exec-ledger.l
12000 65 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 edger-buf.(current-buffer)."xact
12020 22 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 ".....................(mapcar.'e
12040 76 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 val.args))..............(goto-ch
12060 61 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 ar.(point-min))..............(le
12080 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 70 6f 69 6e 74 2d dger-post-align-postings.(point-
120a0 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 20 20 20 28 min).(point-max))..............(
120c0 62 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 buffer-string))............separ
120e0 61 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 ator)).......(insert.(car.args).
12100 22 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 ".").......(save-excursion.(inse
12120 72 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 rt."\n".separator)))))..(provide
12140 20 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 .'ledger-xact)..;;;.ledger-xact.
12160 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 00 el.ends.here....................
12180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
121a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
121c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
121e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12200 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 36 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240416.416/ledger-
12220 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.........................
12240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12260 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
12280 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 30 00 20 30 00 00 00 0007611.00000000000.015670..0...
122a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
122c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
122e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12300 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...................
12320 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...................
12340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
123a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
123c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
123e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12400 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
12420 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
12440 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
12460 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
12480 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
124a0 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
124c0 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.
124e0 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
12500 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.;;
12520 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
12540 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
12560 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
12580 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
125a0 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..;;.;;.
125c0 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.
125e0 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
12600 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
12620 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
12640 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
12660 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
12680 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
126a0 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
126c0 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
126e0 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
12700 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
12720 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.
12740 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
12760 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
12780 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.....;;;
127a0 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
127c0 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
127e0 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
12800 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
12820 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.
12840 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
12860 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
12880 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
128a0 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
128c0 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
128e0 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
12900 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
12920 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
12940 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.(
12960 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.
12980 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)...
129a0 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.(
129c0 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
129e0 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
12a00 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
12a20 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)..
12a40 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
12a60 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
12a80 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.
12aa0 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."...
12ac0 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.
12ae0 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)).....
12b00 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)....
12b20 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
12b40 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
12b60 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
12b80 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
12ba0 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
12bc0 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
12be0 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
12c00 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
12c20 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
12c40 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
12c60 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
12c80 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
12ca0 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
12cc0 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)))))).
12ce0 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.
12d00 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
12d20 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."
12d40 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
12d60 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...;
12d80 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
12da0 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
12dc0 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
12de0 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)))...
12e00 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
12e20 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)
12e40 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
12e60 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.
12e80 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.........
12ea0 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.
12ec0 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
12ee0 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
12f00 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
12f20 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
12f40 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
12f60 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)
12f80 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
12fa0 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
12fc0 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)......
12fe0 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)..
13000 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
13020 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
13040 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
13060 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)).....
13080 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)..
130a0 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)..........
130c0 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
130e0 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.......
13100 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
13120 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
13140 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........
13160 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))))..
13180 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)).....
131a0 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)....
131c0 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.
131e0 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
13200 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
13220 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)...(
13240 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
13260 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.(
13280 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
132a0 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).....
132c0 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
132e0 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
13300 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))...
13320 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
13340 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
13360 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
13380 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........................
133a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
133c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
133e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13400 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 36 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240416.416/ledger-
13420 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........................
13440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13460 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
13480 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 35 00 20 30 00 00 00 0015361.00000000000.016015..0...
134a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
134c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
134e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13500 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...................
13520 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...................
13540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
135a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
135c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
135e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13600 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
13620 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
13640 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
13660 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
13680 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.
136a0 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
136c0 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
136e0 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
13700 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.;
13720 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
13740 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
13760 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
13780 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
137a0 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..;;.;;
137c0 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
137e0 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
13800 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
13820 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
13840 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
13860 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.
13880 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
138a0 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
138c0 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
138e0 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
13900 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
13920 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
13940 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
13960 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
13980 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...;;;.
139a0 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
139c0 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
139e0 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
13a00 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
13a20 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
13a40 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.
13a60 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
13a80 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
13aa0 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
13ac0 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
13ae0 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
13b00 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
13b20 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.
13b40 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
13b60 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
13b80 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
13ba0 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..
13bc0 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-
13be0 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
13c00 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
13c20 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
13c40 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.
13c60 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
13c80 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
13ca0 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
13cc0 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
13ce0 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
13d00 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-
13d20 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
13d40 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.
13d60 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
13d80 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
13da0 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
13dc0 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
13de0 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
13e00 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
13e20 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
13e40 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
13e60 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.
13e80 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
13ea0 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
13ec0 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.
13ee0 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.
13f00 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.
13f20 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)..........
13f40 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
13f60 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..
13f80 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
13fa0 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
13fc0 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
13fe0 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
14000 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"
14020 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
14040 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
14060 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
14080 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
140a0 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..............
140c0 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.
140e0 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))))..
14100 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
14120 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)...
14140 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
14160 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
14180 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
141a0 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
141c0 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
141e0 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
14200 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
14220 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
14240 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
14260 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
14280 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
142a0 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."
142c0 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
142e0 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
14300 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.(
14320 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,.
14340 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.
14360 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
14380 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
143a0 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
143c0 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
143e0 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
14400 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
14420 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
14440 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,
14460 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
14480 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).......
144a0 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)).
144c0 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)))
144e0 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
14500 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
14520 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.......
14540 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
14560 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
14580 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
145a0 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
145c0 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
145e0 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
14600 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
14620 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.
14640 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
14660 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))).
14680 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
146a0 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).....(
146c0 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
146e0 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
14700 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)
14720 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
14740 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
14760 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
14780 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
147a0 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
147c0 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
147e0 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-
14800 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
14820 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
14840 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)..
14860 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
14880 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
148a0 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.
148c0 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.
148e0 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
14900 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.
14920 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.
14940 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).......
14960 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
14980 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
149a0 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
149c0 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
149e0 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
14a00 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
14a20 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)..
14a40 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.
14a60 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-
14a80 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
14aa0 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-
14ac0 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))))..
14ae0 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
14b00 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
14b20 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
14b40 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
14b60 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)
14b80 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
14ba0 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
14bc0 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
14be0 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
14c00 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
14c20 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))....
14c40 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
14c60 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
14c80 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
14ca0 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
14cc0 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.
14ce0 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
14d00 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.(
14d20 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
14d40 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
14d60 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
14d80 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
14da0 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.......
14dc0 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)))).
14de0 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
14e00 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.
14e20 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
14e40 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
14e60 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
14e80 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
14ea0 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.
14ec0 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)).....
14ee0 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
14f00 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
14f20 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
14f40 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
14f60 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
14f80 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)
14fa0 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-
14fc0 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
14fe0 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
15000 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
15020 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)
15040 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.
15060 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
15080 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.
150a0 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
150c0 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
150e0 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................
15100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
151a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
151c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
151e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15200 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 36 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240416.416/ledger-
15220 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..................
15240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15260 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
15280 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 36 00 20 30 00 00 00 0015316.00000000000.017216..0...
152a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
152c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
152e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15300 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...................
15320 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...................
15340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
153a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
153c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
153e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15400 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
15420 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
15440 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
15460 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
15480 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
154a0 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
154c0 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
154e0 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
15500 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
15520 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
15540 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
15560 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
15580 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
155a0 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.
155c0 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
155e0 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
15600 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
15620 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
15640 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
15660 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
15680 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.;;.
156a0 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
156c0 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
156e0 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
15700 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.
15720 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.;
15740 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.
15760 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
15780 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.
157a0 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
157c0 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.
157e0 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
15800 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
15820 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.
15840 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
15860 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
15880 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
158a0 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
158c0 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
158e0 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.
15900 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"
15920 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-
15940 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.
15960 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
15980 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.
159a0 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
159c0 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
159e0 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)
15a00 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
15a20 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
15a40 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
15a60 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
15a80 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
15aa0 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
15ac0 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....
15ae0 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
15b00 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)
15b20 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").................
15b40 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
15b60 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
15b80 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
15ba0 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-
15bc0 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
15be0 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
15c00 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
15c20 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
15c40 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
15c60 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-
15c80 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)
15ca0 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
15cc0 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....
15ce0 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
15d00 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))).....(
15d20 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
15d40 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
15d60 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
15d80 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........
15da0 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."\"\\(.*
15dc0 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.
15de0 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
15e00 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...
15e20 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
15e40 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).......................
15e60 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))))..............
15e80 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.........
15ea0 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)..
15ec0 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..........
15ee0 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
15f00 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
15f20 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
15f40 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)))...........
15f60 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
15f80 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
15fa0 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
15fc0 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.
15fe0 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
16000 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,
16020 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.
16040 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
16060 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,
16080 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.
160a0 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
160c0 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...
160e0 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
16100 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
16120 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)
16140 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
16160 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
16180 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).(
161a0 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-
161c0 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).......
161e0 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
16200 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,...
16220 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.
16240 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
16260 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
16280 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
162a0 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.(
162c0 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-
162e0 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-
16300 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
16320 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
16340 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
16360 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."..........................
16380 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
163a0 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.
163c0 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).
163e0 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
16400 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
16420 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
16440 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.
16460 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
16480 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
164a0 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.
164c0 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
164e0 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
16500 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)
16520 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
16540 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
16560 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
16580 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))))..
165a0 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.
165c0 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
165e0 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
16600 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.
16620 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
16640 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)).
16660 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
16680 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
166a0 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."
166c0 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:
166e0 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
16700 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
16720 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
16740 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)).
16760 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.
16780 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)...
167a0 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
167c0 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
167e0 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.
16800 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
16820 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..
16840 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
16860 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
16880 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..........
168a0 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
168c0 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))..
168e0 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
16900 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
16920 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.(
16940 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
16960 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
16980 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
169a0 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))).....
169c0 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
169e0 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
16a00 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
16a20 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
16a40 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
16a60 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
16a80 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
16aa0 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...........
16ac0 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
16ae0 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
16b00 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).....
16b20 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.","
16b40 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
16b60 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
16b80 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
16ba0 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
16bc0 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,
16be0 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
16c00 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
16c20 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
16c40 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
16c60 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
16c80 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
16ca0 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
16cc0 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.
16ce0 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.
16d00 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
16d20 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...
16d40 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.".(".
16d60 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
16d80 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
16da0 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).....
16dc0 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
16de0 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.(
16e00 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
16e20 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).......
16e40 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
16e60 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
16e80 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
16ea0 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
16ec0 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...................
16ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 31 36 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240416.416/ledger-
17020 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.....................
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 30 30 33 34 35 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 34 30 31 00 20 30 00 00 00 0000345.00000000000.016401..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 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
17220 30 32 34 30 34 31 36 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 0240416.416"."Helper.code.for.us
17240 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
17260 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"))...:
17280 63 6f 6d 6d 69 74 20 22 64 32 35 66 64 34 62 39 66 66 65 66 64 64 33 64 34 66 33 35 36 34 62 64 commit."d25fd4b9ffefdd3d4f3564bd
172a0 61 33 33 66 39 38 39 62 64 37 62 30 36 63 30 35 22 29 0a 3b 3b 20 4c 6f 63 61 6c 20 56 61 72 69 a33f989bd7b06c05").;;.Local.Vari
172c0 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.;;.
172e0 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:............................
17300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
173a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
173c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
173e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17400 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 36 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240416.416/ledger-
17420 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.........................
17440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17460 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
17480 30 30 33 33 33 31 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 36 32 31 00 20 30 00 00 00 0033311.00000000000.015621..0...
174a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
174c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
174e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17500 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...................
17520 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...................
17540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
175a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
175c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
175e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17600 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
17620 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
17640 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
17660 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
17680 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
176a0 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
176c0 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-
176e0 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
17700 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
17720 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
17740 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
17760 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
17780 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
177a0 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
177c0 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.
177e0 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
17800 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
17820 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
17840 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
17860 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
17880 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
178a0 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.;;.
178c0 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
178e0 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
17900 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
17920 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.
17940 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.;
17960 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.
17980 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
179a0 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.
179c0 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.
179e0 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
17a00 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
17a20 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
17a40 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
17a60 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
17a80 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
17aa0 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
17ac0 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...;;;.
17ae0 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).(
17b00 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
17b20 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
17b40 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)
17b60 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
17b80 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
17ba0 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)
17bc0 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
17be0 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
17c00 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
17c20 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).
17c40 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.
17c60 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-
17c80 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
17ca0 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
17cc0 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-
17ce0 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
17d00 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
17d20 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
17d40 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
17d60 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
17d80 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)..(
17da0 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"...
17dc0 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
17de0 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-
17e00 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
17e20 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)...
17e40 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."
17e60 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
17e80 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
17ea0 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
17ec0 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)..."
17ee0 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
17f00 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
17f20 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
17f40 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
17f60 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
17f80 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
17fa0 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.
17fc0 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.
17fe0 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-
18000 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)))..
18020 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
18040 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
18060 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
18080 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
180a0 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
180c0 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
180e0 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
18100 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
18120 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
18140 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.
18160 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
18180 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.(
181a0 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)).......
181c0 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
181e0 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))).....
18200 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
18220 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.....................
18240 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
18260 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..............................
18280 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
182a0 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))...........................
182c0 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-
182e0 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
18300 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.
18320 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
18340 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
18360 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.........
18380 20 20 20 20 20 20 20 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 ...............................(
183a0 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
183c0 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)))..........................
183e0 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
18400 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))...........................
18420 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
18440 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
18460 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
18480 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
184a0 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',
184c0 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
184e0 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
18500 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)).....................
18520 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
18540 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
18560 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)...
18580 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
185a0 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.
185c0 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
185e0 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."
18600 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."):.")............."
18620 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
18640 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
18660 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-
18680 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
186a0 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
186c0 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
186e0 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
18700 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
18720 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
18740 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
18760 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
18780 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
187a0 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
187c0 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
187e0 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
18800 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
18820 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
18840 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
18860 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
18880 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
188a0 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
188c0 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.
188e0 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
18900 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])
18920 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
18940 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.
18960 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*.((
18980 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
189a0 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
189c0 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.
189e0 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
18a00 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:.
18a20 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
18a40 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)))
18a60 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
18a80 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.
18aa0 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
18ac0 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...
18ae0 20 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
18b00 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
18b20 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)))..................
18b40 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)......
18b60 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
18b80 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).(
18ba0 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)))................
18bc0 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
18be0 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......
18c00 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
18c20 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
18c40 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
18c60 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
18c80 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
18ca0 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
18cc0 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)))...
18ce0 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
18d00 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
18d20 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
18d40 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").....................(
18d60 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.(
18d80 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)))))).
18da0 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
18dc0 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
18de0 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-
18e00 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
18e20 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
18e40 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
18e60 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.
18e80 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)...(
18ea0 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
18ec0 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
18ee0 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.....
18f00 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
18f20 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
18f40 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)
18f60 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
18f80 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
18fa0 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)....
18fc0 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
18fe0 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
19000 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)))..................
19020 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................
19040 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.....................
19060 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
19080 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
190a0 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)....
190c0 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]"
190e0 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................
19100 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........
19120 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
19140 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.....................
19160 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
19180 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."\\]")..................
191a0 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)................
191c0 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
191e0 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
19200 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
19220 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
19240 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
19260 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
19280 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.
192a0 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.
192c0 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
192e0 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
19300 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-
19320 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
19340 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
19360 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
19380 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
193a0 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))
193c0 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
193e0 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.
19400 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
19420 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
19440 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
19460 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......
19480 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).........
194a0 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)...........
194c0 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
194e0 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
19500 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
19520 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))......
19540 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))..
19560 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
19580 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).
195a0 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
195c0 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."..;.
195e0 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
19600 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
19620 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
19640 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
19660 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.
19680 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
196a0 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
196c0 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
196e0 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
19700 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
19720 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
19740 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
19760 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
19780 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
197a0 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
197c0 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
197e0 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
19800 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)
19820 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).....
19840 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
19860 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
19880 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
198a0 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
198c0 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)
198e0 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)......
19900 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)
19920 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-
19940 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
19960 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))
19980 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.?\;."
199a0 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
199c0 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)..."
199e0 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
19a00 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-
19a20 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
19a40 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
19a60 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
19a80 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.(
19aa0 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
19ac0 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
19ae0 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
19b00 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.
19b20 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
19b40 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.
19b60 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
19b80 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
19ba0 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
19bc0 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
19be0 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
19c00 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
19c20 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
19c40 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
19c60 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
19c80 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.
19ca0 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
19cc0 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.(
19ce0 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
19d00 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.(
19d20 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-
19d40 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
19d60 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
19d80 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
19da0 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
19dc0 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-
19de0 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
19e00 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.
19e20 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
19e40 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
19e60 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
19e80 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
19ea0 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
19ec0 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
19ee0 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
19f00 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
19f20 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").
19f40 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
19f60 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").#'
19f80 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-
19fa0 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
19fc0 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
19fe0 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
1a000 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.
1a020 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
1a040 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
1a060 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
1a080 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).
1a0a0 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").
1a0c0 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)......;
1a0e0 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
1a100 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
1a120 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
1a140 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
1a160 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
1a180 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
1a1a0 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"...
1a1c0 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
1a1e0 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
1a200 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
1a220 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
1a240 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
1a260 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]....."---"..
1a280 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"
1a2a0 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].....[
1a2c0 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)".
1a2e0 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
1a300 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"
1a320 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]....
1a340 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
1a360 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]....."-
1a380 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
1a3a0 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]....."---"....
1a3c0 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
1a3e0 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].
1a400 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-
1a420 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]....."---
1a440 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
1a460 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
1a480 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
1a4a0 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].....
1a4c0 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
1a4e0 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]....."--
1a500 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
1a520 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.
1a540 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
1a560 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
1a580 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
1a5a0 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
1a5c0 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
1a5e0 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
1a600 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
1a620 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
1a640 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
1a660 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-
1a680 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.
1a6a0 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
1a6c0 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
1a6e0 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.().
1a700 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.'
1a720 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
1a740 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
1a760 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
1a780 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
1a7a0 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
1a7c0 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
1a7e0 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].
1a800 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
1a820 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].....[
1a840 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
1a860 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
1a880 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
1a8a0 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
1a8c0 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."..
1a8e0 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.
1a900 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
1a920 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
1a940 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
1a960 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
1a980 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
1a9a0 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.
1a9c0 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
1a9e0 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.'
1aa00 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
1aa20 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
1aa40 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
1aa60 20 74 29 0a 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 62 65 66 6f 72 65 2d 72 65 76 65 72 74 2d 68 .t)...(add-hook.'before-revert-h
1aa80 6f 6f 6b 20 27 6c 65 64 67 65 72 2d 68 69 67 68 6c 69 67 68 74 2d 2d 62 65 66 6f 72 65 2d 72 65 ook.'ledger-highlight--before-re
1aaa0 76 65 72 74 20 6e 69 6c 20 74 29 0a 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 61 66 74 65 72 2d 72 vert.nil.t)...(add-hook.'after-r
1aac0 65 76 65 72 74 2d 68 6f 6f 6b 20 27 6c 65 64 67 65 72 2d 68 69 67 68 6c 69 67 68 74 2d 78 61 63 evert-hook.'ledger-highlight-xac
1aae0 74 2d 75 6e 64 65 72 2d 70 6f 69 6e 74 20 6e 69 6c 20 74 29 0a 0a 20 20 28 6c 65 64 67 65 72 2d t-under-point.nil.t)....(ledger-
1ab00 69 6e 69 74 2d 6c 6f 61 64 2d 69 6e 69 74 2d 66 69 6c 65 29 0a 20 20 28 73 65 74 71 2d 6c 6f 63 init-load-init-file)...(setq-loc
1ab20 61 6c 20 63 6f 6d 6d 65 6e 74 2d 73 74 61 72 74 20 22 3b 22 29 0a 20 20 28 73 65 74 71 2d 6c 6f al.comment-start.";")...(setq-lo
1ab40 63 61 6c 20 69 6e 64 65 6e 74 2d 6c 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 20 23 27 6c 65 64 67 65 cal.indent-line-function.#'ledge
1ab60 72 2d 69 6e 64 65 6e 74 2d 6c 69 6e 65 29 0a 20 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 69 6e 64 r-indent-line)...(setq-local.ind
1ab80 65 6e 74 2d 72 65 67 69 6f 6e 2d 66 75 6e 63 74 69 6f 6e 20 27 6c 65 64 67 65 72 2d 70 6f 73 74 ent-region-function.'ledger-post
1aba0 2d 61 6c 69 67 6e 2d 70 6f 73 74 69 6e 67 73 29 0a 20 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 62 -align-postings)...(setq-local.b
1abc0 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 64 65 66 75 6e 2d 66 75 6e 63 74 69 6f 6e 20 23 27 6c 65 64 eginning-of-defun-function.#'led
1abe0 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 78 61 63 74 29 0a ger-navigate-beginning-of-xact).
1ac00 20 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 65 6e 64 2d 6f 66 2d 64 65 66 75 6e 2d 66 75 6e 63 74 ..(setq-local.end-of-defun-funct
1ac20 69 6f 6e 20 23 27 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 ion.#'ledger-navigate-end-of-xac
1ac40 74 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 61 64 64 2d 74 6f 2d 6c 69 73 74 t))..;;;###autoload.(add-to-list
1ac60 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 65 72 5c 5c .'auto-mode-alist.'("\\.ledger\\
1ac80 27 22 20 2e 20 6c 65 64 67 65 72 2d 6d 6f 64 65 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 6c 65 '"...ledger-mode))..(provide.'le
1aca0 64 67 65 72 2d 6d 6f 64 65 29 0a 0a 3b 3b 3b 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 65 6c 20 65 dger-mode)..;;;.ledger-mode.el.e
1acc0 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........................
1ace0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ad00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ad20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ad40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ad60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ad80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ada0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1adc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ade0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ae00 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 36 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240416.416/ledger-
1ae20 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.......................
1ae40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ae60 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
1ae80 30 30 36 34 36 35 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 32 33 31 00 20 30 00 00 00 0064657.00000000000.016231..0...
1aea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1aec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1aee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1af00 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...................
1af20 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...................
1af40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1af60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1af80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1afa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1afc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1afe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b000 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.
1b020 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
1b040 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
1b060 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).
1b080 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
1b0a0 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
1b0c0 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
1b0e0 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
1b100 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.
1b120 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.
1b140 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
1b160 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;.
1b180 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
1b1a0 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..;;.;
1b1c0 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
1b1e0 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
1b200 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
1b220 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
1b240 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.
1b260 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
1b280 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
1b2a0 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
1b2c0 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
1b2e0 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
1b300 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
1b320 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
1b340 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.
1b360 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
1b380 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....;;
1b3a0 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
1b3c0 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
1b3e0 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
1b400 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
1b420 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
1b440 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
1b460 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
1b480 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
1b4a0 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
1b4c0 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
1b4e0 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)).
1b500 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
1b520 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
1b540 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
1b560 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
1b580 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
1b5a0 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)).
1b5c0 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..."
1b5e0 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
1b600 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)..
1b620 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...'(("
1b640 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
1b660 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
1b680 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
1b6a0 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).
1b6c0 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"."
1b6e0 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.
1b700 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
1b720 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
1b740 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
1b760 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
1b780 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
1b7a0 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..
1b7c0 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
1b7e0 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
1b800 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
1b820 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
1b840 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
1b860 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
1b880 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.
1b8a0 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
1b8c0 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
1b8e0 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
1b900 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
1b920 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
1b940 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
1b960 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").
1b980 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.:
1b9a0 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.'
1b9c0 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
1b9e0 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...'((
1ba00 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
1ba20 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).....
1ba40 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
1ba60 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".
1ba80 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
1baa0 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-
1bac0 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)
1bae0 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
1bb00 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
1bb20 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
1bb40 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"..
1bb60 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
1bb80 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
1bba0 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
1bbc0 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
1bbe0 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
1bc00 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
1bc20 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
1bc40 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
1bc60 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.
1bc80 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
1bca0 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
1bcc0 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 28 61 nated.(no.quoting)."...:type.'(a
1bce0 6c 69 73 74 20 3a 6b 65 79 2d 74 79 70 65 20 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 list.:key-type.string...........
1bd00 20 20 20 20 20 20 3a 76 61 6c 75 65 2d 74 79 70 65 20 66 75 6e 63 74 69 6f 6e 29 0a 20 20 3a 67 ......:value-type.function)...:g
1bd20 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
1bd40 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 61 75 74 6f 2d 72 65 66 72 65 73 68 20 74 0a 20 20 .ledger-report-auto-refresh.t...
1bd60 22 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 72 65 72 75 6e "If.non-nil,.automatically.rerun
1bd80 20 74 68 65 20 72 65 70 6f 72 74 20 77 68 65 6e 20 74 68 65 20 6c 65 64 67 65 72 20 62 75 66 66 .the.report.when.the.ledger.buff
1bda0 65 72 20 69 73 20 73 61 76 65 64 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 er.is.saved."...:type.'boolean..
1bdc0 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 0a 0a 28 64 65 66 63 75 73 .:group.'ledger-report)..(defcus
1bde0 74 6f 6d 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 61 75 74 6f 2d 72 65 66 72 65 73 68 2d 73 tom.ledger-report-auto-refresh-s
1be00 74 69 63 6b 79 2d 63 75 72 73 6f 72 20 6e 69 6c 0a 20 20 22 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 ticky-cursor.nil..."If.non-nil,.
1be20 6b 65 65 70 20 63 75 72 73 6f 72 27 73 20 72 65 6c 61 74 69 76 65 20 70 6f 73 69 74 69 6f 6e 20 keep.cursor's.relative.position.
1be40 61 66 74 65 72 20 61 75 74 6f 2d 72 65 66 72 65 73 68 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f after.auto-refresh."...:type.'bo
1be60 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 0a olean...:group.'ledger-report)..
1be80 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6c 69 6e 6b 73 2d 69 (defcustom.ledger-report-links-i
1bea0 6e 2d 72 65 67 69 73 74 65 72 20 74 0a 20 20 22 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 6c 69 6e 6b n-register.t..."If.non-nil,.link
1bec0 20 65 6e 74 72 69 65 73 20 69 6e 20 5c 22 72 65 67 69 73 74 65 72 5c 22 20 72 65 70 6f 72 74 73 .entries.in.\"register\".reports
1bee0 20 74 6f 20 65 6e 74 72 69 65 73 20 69 6e 20 74 68 65 20 6c 65 64 67 65 72 20 62 75 66 66 65 72 .to.entries.in.the.ledger.buffer
1bf00 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 20 27 6c 65 ."...:type.'boolean...:group.'le
1bf20 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 72 2d dger-report)..(defcustom.ledger-
1bf40 72 65 70 6f 72 74 2d 75 73 65 2d 6e 61 74 69 76 65 2d 68 69 67 68 6c 69 67 68 74 69 6e 67 20 74 report-use-native-highlighting.t
1bf60 0a 20 20 22 57 68 65 6e 20 6e 6f 6e 2d 6e 69 6c 2c 20 75 73 65 20 6c 65 64 67 65 72 27 73 20 6e ..."When.non-nil,.use.ledger's.n
1bf80 61 74 69 76 65 20 68 69 67 68 6c 69 67 68 74 69 6e 67 20 69 6e 20 72 65 70 6f 72 74 73 2e 22 0a ative.highlighting.in.reports.".
1bfa0 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 ..:type.'boolean...:package-vers
1bfc0 69 6f 6e 20 27 28 6c 65 64 67 65 72 2d 6d 6f 64 65 20 2e 20 22 34 2e 30 2e 30 22 29 0a 20 20 3a ion.'(ledger-mode..."4.0.0")...:
1bfe0 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 0a 0a 28 64 65 66 63 75 73 74 6f group.'ledger-report)..(defcusto
1c000 6d 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 74 69 76 65 2d 68 69 67 68 6c 69 67 68 74 m.ledger-report-native-highlight
1c020 69 6e 67 2d 61 72 67 75 6d 65 6e 74 73 20 27 28 22 2d 2d 63 6f 6c 6f 72 22 20 22 2d 2d 66 6f 72 ing-arguments.'("--color"."--for
1c040 63 65 2d 63 6f 6c 6f 72 22 29 0a 20 20 22 4c 69 73 74 20 6f 66 20 6c 65 64 67 65 72 20 61 72 67 ce-color")..."List.of.ledger.arg
1c060 73 20 6e 65 65 64 65 64 20 62 79 20 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 75 73 65 2d 6e s.needed.by.`ledger-report-use-n
1c080 61 74 69 76 65 2d 68 69 67 68 6c 69 67 68 74 69 6e 67 27 2e 0a 0a 49 66 20 79 6f 75 20 61 72 65 ative-highlighting'...If.you.are
1c0a0 20 75 73 69 6e 67 20 68 6c 65 64 67 65 72 20 69 6e 73 74 65 61 64 20 6f 66 20 6c 65 64 67 65 72 .using.hledger.instead.of.ledger
1c0c0 2c 20 79 6f 75 20 6d 69 67 68 74 20 77 61 6e 74 20 74 6f 20 73 65 74 0a 74 68 69 73 20 76 61 72 ,.you.might.want.to.set.this.var
1c0e0 69 61 62 6c 65 20 74 6f 20 60 28 5c 22 2d 2d 63 6f 6c 6f 72 3d 61 6c 77 61 79 73 5c 22 29 27 2e iable.to.`(\"--color=always\")'.
1c100 22 0a 20 20 3a 74 79 70 65 20 27 28 72 65 70 65 61 74 20 73 74 72 69 6e 67 29 0a 20 20 3a 67 72 "...:type.'(repeat.string)...:gr
1c120 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 20 oup.'ledger-report)..(defcustom.
1c140 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 61 75 74 6f 2d 77 69 64 74 68 20 74 0a 20 20 22 57 68 ledger-report-auto-width.t..."Wh
1c160 65 6e 20 6e 6f 6e 2d 6e 69 6c 2c 20 74 65 6c 6c 20 6c 65 64 67 65 72 20 61 62 6f 75 74 20 74 68 en.non-nil,.tell.ledger.about.th
1c180 65 20 77 69 64 74 68 20 6f 66 20 74 68 65 20 72 65 70 6f 72 74 20 77 69 6e 64 6f 77 2e 22 0a 20 e.width.of.the.report.window."..
1c1a0 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 .:type.'boolean...:package-versi
1c1c0 6f 6e 20 27 28 6c 65 64 67 65 72 2d 6d 6f 64 65 20 2e 20 22 34 2e 30 2e 30 22 29 0a 20 20 3a 67 on.'(ledger-mode..."4.0.0")...:g
1c1e0 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
1c200 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 75 73 65 2d 68 65 61 64 65 72 2d 6c 69 6e 65 20 6e .ledger-report-use-header-line.n
1c220 69 6c 0a 20 20 22 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 69 6e 64 69 63 61 74 65 20 72 65 70 6f 72 il..."If.non-nil,.indicate.repor
1c240 74 20 6e 61 6d 65 2f 63 6f 6d 6d 61 6e 64 20 69 6e 20 74 68 65 20 60 68 65 61 64 65 72 2d 6c 69 t.name/command.in.the.`header-li
1c260 6e 65 27 2e 0a 54 68 65 20 72 65 70 6f 72 74 20 6e 61 6d 65 2f 63 6f 6d 6d 61 6e 64 20 77 6f 6e ne'..The.report.name/command.won
1c280 27 74 20 62 65 20 70 72 69 6e 74 65 64 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 2e 20 20 53 65 't.be.printed.in.the.buffer...Se
1c2a0 65 0a 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6e 27 e.`ledger-report-header-line-fn'
1c2c0 20 66 6f 72 20 68 6f 77 20 74 6f 20 63 75 73 74 6f 6d 69 7a 65 20 74 68 65 0a 69 6e 66 6f 72 6d .for.how.to.customize.the.inform
1c2e0 61 74 69 6f 6e 20 72 65 70 6f 72 74 65 64 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 ation.reported."...:type.'boolea
1c300 6e 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 6c 65 64 67 65 72 2d 6d 6f n...:package-version.'(ledger-mo
1c320 64 65 20 2e 20 22 34 2e 30 2e 30 22 29 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 de..."4.0.0")...:group.'ledger-r
1c340 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
1c360 2d 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6e 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d -header-line-fn.#'ledger-report-
1c380 2d 68 65 61 64 65 72 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 22 45 76 61 6c 75 61 74 65 20 74 68 69 -header-function..."Evaluate.thi
1c3a0 73 20 66 75 6e 63 74 69 6f 6e 20 69 6e 20 74 68 65 20 60 68 65 61 64 65 72 2d 6c 69 6e 65 27 20 s.function.in.the.`header-line'.
1c3c0 6f 66 20 74 68 65 20 72 65 70 6f 72 74 20 62 75 66 66 65 72 2e 0a 60 6c 65 64 67 65 72 2d 72 65 of.the.report.buffer..`ledger-re
1c3e0 70 6f 72 74 2d 75 73 65 2d 68 65 61 64 65 72 2d 6c 69 6e 65 27 20 6d 75 73 74 20 62 65 20 6e 6f port-use-header-line'.must.be.no
1c400 6e 2d 6e 69 6c 20 66 6f 72 20 74 68 69 73 20 74 6f 20 68 61 76 65 20 61 6e 79 20 65 66 66 65 63 n-nil.for.this.to.have.any.effec
1c420 74 2e 22 0a 20 20 3a 74 79 70 65 20 27 66 75 6e 63 74 69 6f 6e 0a 20 20 3a 70 61 63 6b 61 67 65 t."...:type.'function...:package
1c440 2d 76 65 72 73 69 6f 6e 20 27 28 6c 65 64 67 65 72 2d 6d 6f 64 65 20 2e 20 22 34 2e 30 2e 30 22 -version.'(ledger-mode..."4.0.0"
1c460 29 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 0a 0a 28 64 65 66 )...:group.'ledger-report)..(def
1c480 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 73 69 7a 65 2d 77 69 6e 64 custom.ledger-report-resize-wind
1c4a0 6f 77 20 74 0a 20 20 22 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 72 65 73 69 7a 65 20 74 68 65 20 72 ow.t..."If.non-nil,.resize.the.r
1c4c0 65 70 6f 72 74 20 77 69 6e 64 6f 77 2e 0a 43 61 6c 6c 73 20 60 73 68 72 69 6e 6b 2d 77 69 6e 64 eport.window..Calls.`shrink-wind
1c4e0 6f 77 2d 69 66 2d 6c 61 72 67 65 72 2d 74 68 61 6e 2d 62 75 66 66 65 72 27 2e 22 0a 20 20 3a 74 ow-if-larger-than-buffer'."...:t
1c500 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 ype.'boolean...:package-version.
1c520 27 28 6c 65 64 67 65 72 2d 6d 6f 64 65 20 2e 20 22 34 2e 30 2e 30 22 29 0a 20 20 3a 67 72 6f 75 '(ledger-mode..."4.0.0")...:grou
1c540 70 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 p.'ledger-report)..(defcustom.le
1c560 64 67 65 72 2d 72 65 70 6f 72 74 2d 75 73 65 2d 73 74 72 69 63 74 20 6e 69 6c 0a 20 20 22 57 68 dger-report-use-strict.nil..."Wh
1c580 65 6e 20 6e 6f 6e 2d 6e 69 6c 2c 20 60 6c 65 64 67 65 72 2d 6d 6f 64 65 27 20 77 69 6c 6c 20 75 en.non-nil,.`ledger-mode'.will.u
1c5a0 73 65 20 2d 2d 73 74 72 69 63 74 20 77 68 65 6e 20 72 75 6e 6e 69 6e 67 20 72 65 70 6f 72 74 73 se.--strict.when.running.reports
1c5c0 3f 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 ?"...:type.'boolean...:package-v
1c5e0 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").
1c600 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 0a 0a 28 64 65 66 63 75 ..:group.'ledger-report)..(defcu
1c620 73 74 6f 6d 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 61 66 74 65 72 2d 72 65 70 6f 72 74 2d stom.ledger-report-after-report-
1c640 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 48 6f 6f 6b 20 72 75 6e 20 61 66 74 65 72 20 60 6c 65 64 67 hook.nil..."Hook.run.after.`ledg
1c660 65 72 2d 72 65 70 6f 72 74 27 20 68 61 73 20 63 72 65 61 74 65 64 20 74 68 65 20 62 75 66 66 65 er-report'.has.created.the.buffe
1c680 72 20 61 6e 64 20 72 65 70 6f 72 74 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a r.and.report."...:type.'boolean.
1c6a0 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 65 ..:package-version.'(ledger-mode
1c6c0 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 2d 72 65 70 ..."4.0.0")...:group.'ledger-rep
1c6e0 6f 72 74 29 0a 0a 28 64 65 66 76 61 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 62 75 66 66 ort)..(defvar.ledger-report-buff
1c700 65 72 2d 6e 61 6d 65 20 22 2a 4c 65 64 67 65 72 20 52 65 70 6f 72 74 2a 22 29 0a 0a 28 64 65 66 er-name."*Ledger.Report*")..(def
1c720 76 61 72 2d 6c 6f 63 61 6c 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 20 6e 69 6c var-local.ledger-report-name.nil
1c740 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d ).(defvar-local.ledger-report-cm
1c760 64 20 6e 69 6c 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6c 65 64 67 65 72 2d 72 65 70 6f d.nil).(defvar-local.ledger-repo
1c780 72 74 2d 73 61 76 65 64 20 6e 69 6c 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6c 65 64 67 rt-saved.nil).(defvar-local.ledg
1c7a0 65 72 2d 72 65 70 6f 72 74 2d 63 75 72 72 65 6e 74 2d 6d 6f 6e 74 68 20 6e 69 6c 29 0a 28 64 65 er-report-current-month.nil).(de
1c7c0 66 76 61 72 2d 6c 6f 63 61 6c 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 69 73 2d 72 65 76 65 fvar-local.ledger-report-is-reve
1c7e0 72 73 65 64 20 6e 69 6c 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6c 65 64 67 65 72 2d 72 rsed.nil).(defvar-local.ledger-r
1c800 65 70 6f 72 74 2d 63 75 72 73 6f 72 2d 6c 69 6e 65 2d 6e 75 6d 62 65 72 20 6e 69 6c 29 0a 28 64 eport-cursor-line-number.nil).(d
1c820 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6c 65 64 67 65 72 efvar-local.ledger-report-ledger
1c840 2d 62 75 66 20 6e 69 6c 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6c 65 64 67 65 72 2d 6d -buf.nil).(defvar-local.ledger-m
1c860 61 73 74 65 72 2d 66 69 6c 65 20 6e 69 6c 0a 20 20 22 54 68 65 20 6d 61 73 74 65 72 20 66 69 6c aster-file.nil..."The.master.fil
1c880 65 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 0a 53 65 65 20 64 6f e.for.the.current.buffer..See.do
1c8a0 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 60 6c 65 cumentation.for.the.function.`le
1c8c0 64 67 65 72 2d 6d 61 73 74 65 72 2d 66 69 6c 65 27 22 29 0a 0a 28 64 65 66 76 61 72 20 6c 65 64 dger-master-file'")..(defvar.led
1c8e0 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 2d 70 72 6f 6d 70 74 2d 68 69 73 74 6f 72 79 20 6e ger-report-name-prompt-history.n
1c900 69 6c 29 0a 28 64 65 66 76 61 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 2d 70 72 il).(defvar.ledger-report-cmd-pr
1c920 6f 6d 70 74 2d 68 69 73 74 6f 72 79 20 6e 69 6c 29 0a 28 64 65 66 76 61 72 20 6c 65 64 67 65 72 ompt-history.nil).(defvar.ledger
1c940 2d 6d 69 6e 69 62 75 66 66 65 72 2d 68 69 73 74 6f 72 79 20 6e 69 6c 29 0a 28 64 65 66 76 61 72 -minibuffer-history.nil).(defvar
1c960 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6d 6f 64 65 2d 61 62 62 72 65 76 2d 74 61 62 6c 65 .ledger-report-mode-abbrev-table
1c980 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 76 65 72 73 65 2d )..(defun.ledger-report-reverse-
1c9a0 72 65 70 6f 72 74 20 28 29 0a 20 20 22 52 65 76 65 72 73 65 20 74 68 65 20 6f 72 64 65 72 20 6f report.()..."Reverse.the.order.o
1c9c0 66 20 74 68 65 20 72 65 70 6f 72 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 f.the.report."...(interactive)..
1c9e0 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 65 73 29 0a 20 .(ledger-report-reverse-lines)..
1ca00 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 69 73 2d 72 65 76 65 72 73 65 64 .(setq.ledger-report-is-reversed
1ca20 20 28 6e 6f 74 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 69 73 2d 72 65 76 65 72 73 65 64 29 .(not.ledger-report-is-reversed)
1ca40 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 76 65 72 73 65 ))..(defun.ledger-report-reverse
1ca60 2d 6c 69 6e 65 73 20 28 29 0a 20 20 22 52 65 76 65 72 73 65 20 74 68 65 20 6c 69 6e 65 73 20 69 -lines.()..."Reverse.the.lines.i
1ca80 6e 20 74 68 65 20 6c 65 64 67 65 72 20 72 65 70 6f 72 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 n.the.ledger.report.buffer."...(
1caa0 77 69 74 68 2d 73 69 6c 65 6e 74 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 0a 20 20 20 20 28 67 with-silent-modifications.....(g
1cac0 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 75 6e 6c 65 73 oto-char.(point-min)).....(unles
1cae0 73 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 75 73 65 2d 68 65 61 64 65 72 2d 6c 69 6e 65 0a s.ledger-report-use-header-line.
1cb00 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 70 61 72 61 67 72 61 70 68 29 0a 20 20 20 20 20 20 ......(forward-paragraph).......
1cb20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 29 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 (forward-line)).....(save-excurs
1cb40 69 6f 6e 0a 20 20 20 20 20 20 28 72 65 76 65 72 73 65 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 ion.......(reverse-region.(point
1cb60 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 ).(point-max)))))..(defun.ledger
1cb80 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 20 28 29 0a 20 -report-maybe-shrink-window.()..
1cba0 20 22 53 68 72 69 6e 6b 20 77 69 6e 64 6f 77 20 69 66 20 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 ."Shrink.window.if.`ledger-repor
1cbc0 74 2d 72 65 73 69 7a 65 2d 77 69 6e 64 6f 77 27 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2e 22 0a 20 20 t-resize-window'.is.non-nil."...
1cbe0 28 77 68 65 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 73 69 7a 65 2d 77 69 6e 64 6f (when.ledger-report-resize-windo
1cc00 77 0a 20 20 20 20 28 73 68 72 69 6e 6b 2d 77 69 6e 64 6f 77 2d 69 66 2d 6c 61 72 67 65 72 2d 74 w.....(shrink-window-if-larger-t
1cc20 68 61 6e 2d 62 75 66 66 65 72 29 29 29 0a 0a 28 64 65 66 76 61 72 20 6c 65 64 67 65 72 2d 72 65 han-buffer)))..(defvar.ledger-re
1cc40 70 6f 72 74 2d 6d 6f 64 65 2d 6d 61 70 0a 20 20 28 6c 65 74 20 28 28 6d 61 70 20 28 6d 61 6b 65 port-mode-map...(let.((map.(make
1cc60 2d 73 70 61 72 73 65 2d 6b 65 79 6d 61 70 29 29 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 -sparse-keymap))).....(define-ke
1cc80 79 20 6d 61 70 20 28 6b 62 64 20 22 72 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d y.map.(kbd."r").#'ledger-report-
1cca0 72 65 64 6f 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 redo).....(define-key.map.(kbd."
1ccc0 52 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 76 65 72 73 65 2d 72 65 70 6f R").#'ledger-report-reverse-repo
1cce0 72 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 73 22 rt).....(define-key.map.(kbd."s"
1cd00 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
1cd20 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 53 22 29 20 23 27 6c 65 64 67 65 72 2d 72 ine-key.map.(kbd."S").#'ledger-r
1cd40 65 70 6f 72 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 eport).....(define-key.map.(kbd.
1cd60 22 65 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 65 64 69 74 2d 72 65 70 6f 72 74 "e").#'ledger-report-edit-report
1cd80 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 45 22 29 20 ).....(define-key.map.(kbd."E").
1cda0 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 73 29 0a 20 20 #'ledger-report-edit-reports)...
1cdc0 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 71 22 29 20 23 27 6c 65 ..(define-key.map.(kbd."q").#'le
1cde0 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 6b 65 dger-report-quit).....(define-ke
1ce00 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 6c 20 43 2d 72 22 29 20 23 27 6c 65 64 67 y.map.(kbd."C-c.C-l.C-r").#'ledg
1ce20 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 65 79 20 er-report-redo).....(define-key.
1ce40 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 6c 20 43 2d 53 2d 73 22 29 20 23 27 6c 65 64 67 map.(kbd."C-c.C-l.C-S-s").#'ledg
1ce60 65 72 2d 72 65 70 6f 72 74 2d 73 61 76 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 er-report-save).....(define-key.
1ce80 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 6c 20 43 2d 65 22 29 20 23 27 6c 65 64 67 65 72 map.(kbd."C-c.C-l.C-e").#'ledger
1cea0 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 69 6e 65 -report-edit-report).....(define
1cec0 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 6f 20 43 2d 72 22 29 20 23 27 6c -key.map.(kbd."C-c.C-o.C-r").#'l
1cee0 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 61 edger-report).....(define-key.ma
1cf00 70 20 28 6b 62 64 20 22 4d 2d 70 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 70 72 p.(kbd."M-p").#'ledger-report-pr
1cf20 65 76 69 6f 75 73 2d 6d 6f 6e 74 68 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 evious-month).....(define-key.ma
1cf40 70 20 28 6b 62 64 20 22 4d 2d 6e 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 65 p.(kbd."M-n").#'ledger-report-ne
1cf60 78 74 2d 6d 6f 6e 74 68 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b xt-month).....(define-key.map.(k
1cf80 62 64 20 22 24 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 74 6f 67 67 6c 65 2d 64 bd."$").#'ledger-report-toggle-d
1cfa0 65 66 61 75 6c 74 2d 63 6f 6d 6d 6f 64 69 74 79 29 0a 20 20 20 20 6d 61 70 29 0a 20 20 22 4b 65 efault-commodity).....map)..."Ke
1cfc0 79 6d 61 70 20 66 6f 72 20 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6d 6f 64 65 27 2e 22 29 ymap.for.`ledger-report-mode'.")
1cfe0 0a 0a 28 65 61 73 79 2d 6d 65 6e 75 2d 64 65 66 69 6e 65 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 ..(easy-menu-define.ledger-repor
1d000 74 2d 6d 6f 64 65 2d 6d 65 6e 75 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6d 6f 64 65 2d 6d t-mode-menu.ledger-report-mode-m
1d020 61 70 0a 20 20 22 4c 65 64 67 65 72 20 72 65 70 6f 72 74 20 6d 65 6e 75 2e 22 0a 20 20 27 28 22 ap..."Ledger.report.menu."...'("
1d040 52 65 70 6f 72 74 73 22 0a 20 20 20 20 5b 22 53 65 6c 65 63 74 20 52 65 70 6f 72 74 22 20 6c 65 Reports".....["Select.Report".le
1d060 64 67 65 72 2d 72 65 70 6f 72 74 5d 0a 20 20 20 20 5b 22 53 61 76 65 20 52 65 70 6f 72 74 22 20 dger-report].....["Save.Report".
1d080 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 73 61 76 65 5d 0a 20 20 20 20 5b 22 45 64 69 74 20 43 ledger-report-save].....["Edit.C
1d0a0 75 72 72 65 6e 74 20 52 65 70 6f 72 74 22 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 65 64 69 urrent.Report".ledger-report-edi
1d0c0 74 2d 72 65 70 6f 72 74 5d 0a 20 20 20 20 5b 22 45 64 69 74 20 41 6c 6c 20 52 65 70 6f 72 74 73 t-report].....["Edit.All.Reports
1d0e0 22 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 65 64 69 74 2d 72 65 70 6f 72 74 73 5d 0a 20 20 ".ledger-report-edit-reports]...
1d100 20 20 5b 22 52 65 2d 72 75 6e 20 52 65 70 6f 72 74 22 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 ..["Re-run.Report".ledger-report
1d120 2d 72 65 64 6f 5d 0a 20 20 20 20 22 2d 2d 2d 22 0a 20 20 20 20 5b 22 52 65 76 65 72 73 65 20 72 -redo]....."---".....["Reverse.r
1d140 65 70 6f 72 74 20 6f 72 64 65 72 22 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 76 65 72 eport.order".ledger-report-rever
1d160 73 65 2d 72 65 70 6f 72 74 5d 0a 20 20 20 20 22 2d 2d 2d 22 0a 20 20 20 20 5b 22 53 63 72 6f 6c se-report]....."---".....["Scrol
1d180 6c 20 55 70 22 20 73 63 72 6f 6c 6c 2d 75 70 5d 0a 20 20 20 20 5b 22 56 69 73 69 74 20 53 6f 75 l.Up".scroll-up].....["Visit.Sou
1d1a0 72 63 65 22 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 76 69 73 69 74 2d 73 6f 75 72 63 65 5d rce".ledger-report-visit-source]
1d1c0 0a 20 20 20 20 5b 22 53 63 72 6f 6c 6c 20 44 6f 77 6e 22 20 73 63 72 6f 6c 6c 2d 64 6f 77 6e 5d .....["Scroll.Down".scroll-down]
1d1e0 0a 20 20 20 20 22 2d 2d 2d 22 0a 20 20 20 20 5b 22 51 75 69 74 22 20 6c 65 64 67 65 72 2d 72 65 ....."---".....["Quit".ledger-re
1d200 70 6f 72 74 2d 71 75 69 74 5d 0a 20 20 20 20 29 29 0a 0a 28 64 65 66 69 6e 65 2d 64 65 72 69 76 port-quit].....))..(define-deriv
1d220 65 64 2d 6d 6f 64 65 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6d 6f 64 65 20 73 70 65 63 69 ed-mode.ledger-report-mode.speci
1d240 61 6c 2d 6d 6f 64 65 20 22 4c 65 64 67 65 72 2d 52 65 70 6f 72 74 22 0a 20 20 22 41 20 6d 6f 64 al-mode."Ledger-Report"..."A.mod
1d260 65 20 66 6f 72 20 76 69 65 77 69 6e 67 20 6c 65 64 67 65 72 20 72 65 70 6f 72 74 73 2e 22 0a 20 e.for.viewing.ledger.reports."..
1d280 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 72 65 76 65 72 74 2d 62 75 66 66 65 72 2d 66 75 6e 63 74 .(setq-local.revert-buffer-funct
1d2a0 69 6f 6e 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 64 6f 29 0a 20 20 28 68 61 63 ion.#'ledger-report-redo)...(hac
1d2c0 6b 2d 64 69 72 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 73 2d 6e 6f 6e 2d 66 69 6c 65 2d 62 k-dir-local-variables-non-file-b
1d2e0 75 66 66 65 72 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 uffer))..(defconst.ledger-report
1d300 2d 2d 65 78 74 72 61 2d 61 72 67 73 2d 6d 61 72 6b 65 72 20 22 5b 5b 6c 65 64 67 65 72 2d 6d 6f --extra-args-marker."[[ledger-mo
1d320 64 65 2d 66 6c 61 67 73 5d 5d 22 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f de-flags]]")..(defun.ledger-repo
1d340 72 74 2d 62 69 6e 61 72 79 2d 66 6f 72 6d 61 74 2d 73 70 65 63 69 66 69 65 72 20 28 29 0a 20 20 rt-binary-format-specifier.()...
1d360 22 52 65 74 75 72 6e 20 74 68 65 20 70 61 74 68 20 74 6f 20 6c 65 64 67 65 72 2c 20 70 6c 75 73 "Return.the.path.to.ledger,.plus
1d380 20 61 20 6d 61 72 6b 65 72 20 66 6f 72 20 65 78 74 72 61 20 61 72 67 75 6d 65 6e 74 73 2e 22 0a .a.marker.for.extra.arguments.".
1d3a0 20 20 28 6c 69 73 74 20 28 73 68 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 20 6c 65 ..(list.(shell-quote-argument.le
1d3c0 64 67 65 72 2d 62 69 6e 61 72 79 2d 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 6c 65 64 67 65 72 dger-binary-path).........ledger
1d3e0 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 29 0a 0a 28 64 -report--extra-args-marker))..(d
1d400 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 74 61 67 6e 61 6d 65 2d 66 6f 72 6d 61 efun.ledger-report-tagname-forma
1d420 74 2d 73 70 65 63 69 66 69 65 72 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 76 61 6c 69 64 t-specifier.()..."Return.a.valid
1d440 20 6d 65 74 61 2d 64 61 74 61 20 74 61 67 20 6e 61 6d 65 2e 22 0a 20 20 3b 3b 20 49 74 20 69 73 .meta-data.tag.name."...;;.It.is
1d460 20 69 6e 74 65 6e 64 65 64 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 73 68 6f 75 6c 64 20 62 65 20 61 .intended.completion.should.be.a
1d480 76 61 69 6c 61 62 6c 65 20 6f 6e 20 65 78 69 73 74 69 6e 67 20 74 61 67 0a 20 20 3b 3b 20 6e 61 vailable.on.existing.tag...;;.na
1d4a0 6d 65 73 2c 20 62 75 74 20 69 74 20 72 65 6d 61 69 6e 73 20 74 6f 20 62 65 20 69 6d 70 6c 65 6d mes,.but.it.remains.to.be.implem
1d4c0 65 6e 74 65 64 2e 0a 20 20 28 6c 65 64 67 65 72 2d 72 65 61 64 2d 73 74 72 69 6e 67 2d 77 69 74 ented....(ledger-read-string-wit
1d4e0 68 2d 64 65 66 61 75 6c 74 20 22 54 61 67 20 4e 61 6d 65 22 20 6e 69 6c 29 29 0a 0a 28 64 65 66 h-default."Tag.Name".nil))..(def
1d500 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 74 61 67 76 61 6c 75 65 2d 66 6f 72 6d 61 74 un.ledger-report-tagvalue-format
1d520 2d 73 70 65 63 69 66 69 65 72 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 76 61 6c 69 64 20 -specifier.()..."Return.a.valid.
1d540 6d 65 74 61 2d 64 61 74 61 20 74 61 67 20 6e 61 6d 65 2e 22 0a 20 20 3b 3b 20 49 74 20 69 73 20 meta-data.tag.name."...;;.It.is.
1d560 69 6e 74 65 6e 64 65 64 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 73 68 6f 75 6c 64 20 62 65 20 61 76 intended.completion.should.be.av
1d580 61 69 6c 61 62 6c 65 20 6f 6e 20 65 78 69 73 74 69 6e 67 20 74 61 67 0a 20 20 3b 3b 20 76 61 6c ailable.on.existing.tag...;;.val
1d5a0 75 65 73 2c 20 62 75 74 20 69 74 20 72 65 6d 61 69 6e 73 20 74 6f 20 62 65 20 69 6d 70 6c 65 6d ues,.but.it.remains.to.be.implem
1d5c0 65 6e 74 65 64 2e 0a 20 20 28 6c 65 64 67 65 72 2d 72 65 61 64 2d 73 74 72 69 6e 67 2d 77 69 74 ented....(ledger-read-string-wit
1d5e0 68 2d 64 65 66 61 75 6c 74 20 22 54 61 67 20 56 61 6c 75 65 22 20 6e 69 6c 29 29 0a 0a 28 64 65 h-default."Tag.Value".nil))..(de
1d600 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 61 64 2d 6e 61 6d 65 20 28 29 0a 20 fun.ledger-report-read-name.()..
1d620 20 22 52 65 61 64 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 61 20 6c 65 64 67 65 72 20 72 65 70 6f ."Read.the.name.of.a.ledger.repo
1d640 72 74 20 74 6f 20 75 73 65 2c 20 77 69 74 68 20 63 6f 6d 70 6c 65 74 69 6f 6e 2e 0a 0a 54 68 65 rt.to.use,.with.completion...The
1d660 20 65 6d 70 74 79 20 73 74 72 69 6e 67 20 61 6e 64 20 75 6e 6b 6e 6f 77 6e 20 6e 61 6d 65 73 20 .empty.string.and.unknown.names.
1d680 61 72 65 20 61 6c 6c 6f 77 65 64 2e 22 0a 20 20 28 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 are.allowed."...(completing-read
1d6a0 20 22 52 65 70 6f 72 74 20 6e 61 6d 65 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."Report.name:."................
1d6c0 20 20 20 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 20 6e 69 6c 20 6e 69 6c 20 6e 69 6c 0a 20 ....ledger-reports.nil.nil.nil..
1d6e0 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 72 74 ..................'ledger-report
1d700 2d 6e 61 6d 65 2d 70 72 6f 6d 70 74 2d 68 69 73 74 6f 72 79 20 6e 69 6c 29 29 0a 0a 28 64 65 66 -name-prompt-history.nil))..(def
1d720 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 20 28 72 65 70 6f 72 74 2d 6e 61 6d 65 20 65 64 un.ledger-report.(report-name.ed
1d740 69 74 29 0a 20 20 22 52 75 6e 20 61 20 75 73 65 72 2d 73 70 65 63 69 66 69 65 64 20 72 65 70 6f it)..."Run.a.user-specified.repo
1d760 72 74 20 66 72 6f 6d 20 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 27 2e 0a 0a 50 72 6f 6d 70 rt.from.`ledger-reports'...Promp
1d780 74 73 20 74 68 65 20 75 73 65 72 20 66 6f 72 20 74 68 65 20 52 45 50 4f 52 54 2d 4e 41 4d 45 20 ts.the.user.for.the.REPORT-NAME.
1d7a0 6f 66 20 74 68 65 20 72 65 70 6f 72 74 20 74 6f 20 72 75 6e 20 6f 72 0a 45 44 49 54 2e 20 20 49 of.the.report.to.run.or.EDIT...I
1d7c0 66 20 6e 6f 20 6e 61 6d 65 20 69 73 20 65 6e 74 65 72 65 64 2c 20 74 68 65 20 75 73 65 72 20 77 f.no.name.is.entered,.the.user.w
1d7e0 69 6c 6c 20 62 65 20 70 72 6f 6d 70 74 65 64 20 66 6f 72 20 61 0a 63 6f 6d 6d 61 6e 64 20 6c 69 ill.be.prompted.for.a.command.li
1d800 6e 65 20 74 6f 20 72 75 6e 2e 20 20 54 68 65 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 73 70 65 ne.to.run...The.command.line.spe
1d820 63 69 66 69 65 64 20 6f 72 20 61 73 73 6f 63 69 61 74 65 64 0a 77 69 74 68 20 74 68 65 20 73 65 cified.or.associated.with.the.se
1d840 6c 65 63 74 65 64 20 72 65 70 6f 72 74 20 6e 61 6d 65 20 69 73 20 72 75 6e 20 61 6e 64 20 74 68 lected.report.name.is.run.and.th
1d860 65 20 6f 75 74 70 75 74 20 69 73 20 6d 61 64 65 0a 61 76 61 69 6c 61 62 6c 65 20 69 6e 20 61 6e e.output.is.made.available.in.an
1d880 6f 74 68 65 72 20 62 75 66 66 65 72 20 66 6f 72 20 76 69 65 77 69 6e 67 2e 20 20 49 66 20 61 20 other.buffer.for.viewing...If.a.
1d8a0 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 20 69 73 0a 67 69 76 65 6e 20 61 6e 64 20 74 68 65 prefix.argument.is.given.and.the
1d8c0 20 75 73 65 72 20 73 65 6c 65 63 74 73 20 61 20 76 61 6c 69 64 20 72 65 70 6f 72 74 20 6e 61 6d .user.selects.a.valid.report.nam
1d8e0 65 2c 20 74 68 65 20 75 73 65 72 20 69 73 0a 70 72 6f 6d 70 74 65 64 20 77 69 74 68 20 74 68 65 e,.the.user.is.prompted.with.the
1d900 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 66 6f 72 20 .corresponding.command.line.for.
1d920 65 64 69 74 69 6e 67 20 62 65 66 6f 72 65 0a 74 68 65 20 63 6f 6d 6d 61 6e 64 20 69 73 20 72 75 editing.before.the.command.is.ru
1d940 6e 2e 0a 0a 54 68 65 20 6f 75 74 70 75 74 20 62 75 66 66 65 72 20 77 69 6c 6c 20 62 65 20 69 6e n...The.output.buffer.will.be.in
1d960 20 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6d 6f 64 65 27 2c 20 77 68 69 63 68 20 64 65 66 .`ledger-report-mode',.which.def
1d980 69 6e 65 73 0a 63 6f 6d 6d 61 6e 64 73 20 66 6f 72 20 73 61 76 69 6e 67 20 61 20 6e 65 77 20 6e ines.commands.for.saving.a.new.n
1d9a0 61 6d 65 64 20 72 65 70 6f 72 74 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 63 6f 6d 6d 61 6e 64 amed.report.based.on.the.command
1d9c0 20 6c 69 6e 65 0a 75 73 65 64 20 74 6f 20 67 65 6e 65 72 61 74 65 20 74 68 65 20 62 75 66 66 65 .line.used.to.generate.the.buffe
1d9e0 72 2c 20 6e 61 76 69 67 61 74 69 6e 67 20 74 68 65 20 62 75 66 66 65 72 2c 20 65 74 63 2e 22 0a r,.navigating.the.buffer,.etc.".
1da00 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 28 77 ..(interactive....(progn......(w
1da20 68 65 6e 20 28 61 6e 64 20 28 62 75 66 66 65 72 2d 6d 6f 64 69 66 69 65 64 2d 70 29 0a 20 20 20 hen.(and.(buffer-modified-p)....
1da40 20 20 20 20 20 20 20 20 20 20 20 20 20 28 79 2d 6f 72 2d 6e 2d 70 20 22 42 75 66 66 65 72 20 6d .............(y-or-n-p."Buffer.m
1da60 6f 64 69 66 69 65 64 2c 20 73 61 76 65 20 69 74 3f 20 22 29 29 0a 20 20 20 20 20 20 20 28 73 61 odified,.save.it?."))........(sa
1da80 76 65 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 28 6c 65 74 20 28 28 72 6e 61 6d 65 20 28 6c ve-buffer))......(let.((rname.(l
1daa0 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 61 64 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 edger-report-read-name))........
1dac0 20 20 20 20 28 65 64 69 74 20 28 6e 6f 74 20 28 6e 75 6c 6c 20 63 75 72 72 65 6e 74 2d 70 72 65 ....(edit.(not.(null.current-pre
1dae0 66 69 78 2d 61 72 67 29 29 29 29 0a 20 20 20 20 20 20 20 28 6c 69 73 74 20 72 6e 61 6d 65 20 65 fix-arg))))........(list.rname.e
1db00 64 69 74 29 29 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 66 69 6c 65 20 28 6c 65 64 67 65 72 2d 6d dit))))...(let*.((file.(ledger-m
1db20 61 73 74 65 72 2d 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 62 75 66 20 28 66 69 6e 64 aster-file))..........(buf.(find
1db40 2d 66 69 6c 65 2d 6e 6f 73 65 6c 65 63 74 20 66 69 6c 65 29 29 29 0a 20 20 20 20 28 77 69 74 68 -file-noselect.file))).....(with
1db60 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 28 70 6f 70 2d 74 6f 2d -current-buffer.........(pop-to-
1db80 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 6c 65 64 67 65 72 buffer.(get-buffer-create.ledger
1dba0 2d 72 65 70 6f 72 74 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 28 77 69 74 -report-buffer-name)).......(wit
1dbc0 68 2d 73 69 6c 65 6e 74 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 28 h-silent-modifications.........(
1dbe0 65 72 61 73 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 erase-buffer).........(ledger-re
1dc00 70 6f 72 74 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d port-mode).........(setq.ledger-
1dc20 72 65 70 6f 72 74 2d 73 61 76 65 64 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 report-saved.nil).........(setq.
1dc40 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6c 65 64 67 65 72 2d 62 75 66 20 62 75 66 29 0a 20 20 ledger-report-ledger-buf.buf)...
1dc60 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 20 72 ......(setq.ledger-report-name.r
1dc80 65 70 6f 72 74 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 eport-name).........(setq.ledger
1dca0 2d 72 65 70 6f 72 74 2d 69 73 2d 72 65 76 65 72 73 65 64 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 -report-is-reversed.nil)........
1dcc0 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 74 2d 6d 6f 6e .(setq.ledger-report-current-mon
1dce0 74 68 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 6d 61 73 th.nil).........(setq.ledger-mas
1dd00 74 65 72 2d 66 69 6c 65 20 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 64 ter-file.file).........(ledger-d
1dd20 6f 2d 72 65 70 6f 72 74 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 20 72 65 70 6f o-report.(ledger-report-cmd.repo
1dd40 72 74 2d 6e 61 6d 65 20 65 64 69 74 29 29 29 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 rt-name.edit))).......(ledger-re
1dd60 70 6f 72 74 2d 6d 61 79 62 65 2d 73 68 72 69 6e 6b 2d 77 69 6e 64 6f 77 29 0a 20 20 20 20 20 20 port-maybe-shrink-window).......
1dd80 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 74 65 72 2d (run-hooks.'ledger-report-after-
1dda0 72 65 70 6f 72 74 2d 68 6f 6f 6b 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 28 73 75 62 report-hook).......(message.(sub
1ddc0 73 74 69 74 75 74 65 2d 63 6f 6d 6d 61 6e 64 2d 6b 65 79 73 20 28 63 6f 6e 63 61 74 20 22 5c 5c stitute-command-keys.(concat."\\
1dde0 5b 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 71 75 69 74 5d 20 74 6f 20 71 75 69 74 3b 20 22 0a [ledger-report-quit].to.quit;.".
1de00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1de20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 5b 6c 65 64 67 65 72 2d 72 65 70 6f 72 ................"\\[ledger-repor
1de40 74 2d 72 65 64 6f 5d 20 74 6f 20 72 65 64 6f 3b 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 t-redo].to.redo;."..............
1de60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1de80 20 20 20 22 5c 5c 5b 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 65 64 69 74 2d 72 65 70 6f 72 74 ..."\\[ledger-report-edit-report
1dea0 5d 20 74 6f 20 65 64 69 74 3b 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ].to.edit;."....................
1dec0 20 20 20 20 20 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 ............................."\\
1dee0 5b 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 73 61 76 65 5d 20 74 6f 20 73 61 76 65 3b 20 22 0a [ledger-report-save].to.save;.".
1df00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1df20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 5b 73 63 72 6f 6c 6c 2d 75 70 2d 63 6f ................"\\[scroll-up-co
1df40 6d 6d 61 6e 64 5d 20 61 6e 64 20 5c 5c 5b 73 63 72 6f 6c 6c 2d 64 6f 77 6e 2d 63 6f 6d 6d 61 6e mmand].and.\\[scroll-down-comman
1df60 64 5d 20 74 6f 20 73 63 72 6f 6c 6c 22 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 d].to.scroll"))))))..(defun.ledg
1df80 65 72 2d 72 65 70 6f 72 74 2d 2d 68 65 61 64 65 72 2d 66 75 6e 63 74 69 6f 6e 20 28 29 0a 20 20 er-report--header-function.()...
1dfa0 22 43 6f 6d 70 75 74 65 20 74 68 65 20 73 74 72 69 6e 67 20 74 6f 20 62 65 20 75 73 65 64 20 61 "Compute.the.string.to.be.used.a
1dfc0 73 20 74 68 65 20 68 65 61 64 65 72 20 69 6e 20 74 68 65 20 60 6c 65 64 67 65 72 2d 72 65 70 6f s.the.header.in.the.`ledger-repo
1dfe0 72 74 27 20 62 75 66 66 65 72 2e 22 0a 20 20 28 66 6f 72 6d 61 74 20 22 4c 65 64 67 65 72 20 52 rt'.buffer."...(format."Ledger.R
1e000 65 70 6f 72 74 3a 20 25 73 20 2d 2d 20 42 75 66 66 65 72 3a 20 25 73 20 2d 2d 20 43 6f 6d 6d 61 eport:.%s.--.Buffer:.%s.--.Comma
1e020 6e 64 3a 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 6c 65 nd:.%s"...........(propertize.le
1e040 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 20 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 dger-report-name.'face.'font-loc
1e060 6b 2d 63 6f 6e 73 74 61 6e 74 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 k-constant-face)...........(prop
1e080 65 72 74 69 7a 65 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 ertize.(buffer-name.ledger-repor
1e0a0 74 2d 6c 65 64 67 65 72 2d 62 75 66 29 20 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 73 t-ledger-buf).'face.'font-lock-s
1e0c0 74 72 69 6e 67 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a tring-face)...........(propertiz
1e0e0 65 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 20 27 66 61 63 65 20 27 66 6f 6e 74 2d e.ledger-report-cmd.'face.'font-
1e100 6c 6f 63 6b 2d 63 6f 6d 6d 65 6e 74 2d 66 61 63 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 lock-comment-face)))..(defun.led
1e120 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 2d 65 78 69 73 74 73 20 28 6e 61 6d 65 29 0a 20 20 ger-report-name-exists.(name)...
1e140 22 43 68 65 63 6b 20 74 6f 20 73 65 65 20 69 66 20 74 68 65 20 67 69 76 65 6e 20 72 65 70 6f 72 "Check.to.see.if.the.given.repor
1e160 74 20 4e 41 4d 45 20 65 78 69 73 74 73 2e 0a 0a 49 66 20 65 78 69 73 74 73 2c 20 72 65 74 75 72 t.NAME.exists...If.exists,.retur
1e180 6e 73 20 74 68 65 20 6f 62 6a 65 63 74 20 6e 61 6d 69 6e 67 20 74 68 65 20 72 65 70 6f 72 74 2c ns.the.object.naming.the.report,
1e1a0 20 6f 74 68 65 72 77 69 73 65 0a 72 65 74 75 72 6e 73 20 6e 69 6c 2e 22 0a 20 20 28 75 6e 6c 65 .otherwise.returns.nil."...(unle
1e1c0 73 73 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 6e 61 6d 65 29 0a 20 20 20 20 28 63 61 ss.(string-empty-p.name).....(ca
1e1e0 72 20 28 61 73 73 6f 63 20 6e 61 6d 65 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 29 29 29 29 r.(assoc.name.ledger-reports))))
1e200 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 2d 61 64 64 20 28 6e 61 6d ..(defun.ledger-reports-add.(nam
1e220 65 20 63 6d 64 29 0a 20 20 22 41 64 64 20 61 20 6e 65 77 20 72 65 70 6f 72 74 20 4e 41 4d 45 20 e.cmd)..."Add.a.new.report.NAME.
1e240 61 6e 64 20 43 4d 44 20 74 6f 20 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 27 2e 22 0a 20 20 and.CMD.to.`ledger-reports'."...
1e260 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 20 28 63 6f 6e 73 20 28 6c 69 73 74 (setq.ledger-reports.(cons.(list
1e280 20 6e 61 6d 65 20 63 6d 64 29 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 29 29 29 0a 0a 28 64 .name.cmd).ledger-reports)))..(d
1e2a0 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 2d 63 75 73 74 6f 6d 2d 73 61 76 65 20 efun.ledger-reports-custom-save.
1e2c0 28 29 0a 20 20 22 53 61 76 65 20 74 68 65 20 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 27 20 ()..."Save.the.`ledger-reports'.
1e2e0 76 61 72 69 61 62 6c 65 20 75 73 69 6e 67 20 74 68 65 20 63 75 73 74 6f 6d 69 7a 65 20 66 72 61 variable.using.the.customize.fra
1e300 6d 65 77 6f 72 6b 2e 22 0a 20 20 28 63 75 73 74 6f 6d 69 7a 65 2d 73 61 76 65 2d 76 61 72 69 61 mework."...(customize-save-varia
1e320 62 6c 65 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 ble.'ledger-reports.ledger-repor
1e340 74 73 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 61 64 2d ts))..(defun.ledger-report-read-
1e360 63 6f 6d 6d 61 6e 64 20 28 72 65 70 6f 72 74 2d 63 6d 64 29 0a 20 20 22 52 65 61 64 20 74 68 65 command.(report-cmd)..."Read.the
1e380 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 74 6f 20 63 72 65 61 74 65 20 61 20 72 65 70 6f 72 74 .command.line.to.create.a.report
1e3a0 20 66 72 6f 6d 20 52 45 50 4f 52 54 2d 43 4d 44 2e 22 0a 20 20 28 72 65 61 64 2d 66 72 6f 6d 2d .from.REPORT-CMD."...(read-from-
1e3c0 6d 69 6e 69 62 75 66 66 65 72 20 22 52 65 70 6f 72 74 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 3a minibuffer."Report.command.line:
1e3e0 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 28 69 66 20 28 .".........................(if.(
1e400 6e 75 6c 6c 20 72 65 70 6f 72 74 2d 63 6d 64 29 20 22 6c 65 64 67 65 72 20 22 20 72 65 70 6f 72 null.report-cmd)."ledger.".repor
1e420 74 2d 63 6d 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e t-cmd).........................n
1e440 69 6c 20 6e 69 6c 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 2d 70 72 6f 6d 70 74 il.nil.'ledger-report-cmd-prompt
1e460 2d 68 69 73 74 6f 72 79 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 -history))..(defun.ledger-report
1e480 2d 6c 65 64 67 65 72 2d 66 69 6c 65 2d 66 6f 72 6d 61 74 2d 73 70 65 63 69 66 69 65 72 20 28 29 -ledger-file-format-specifier.()
1e4a0 0a 20 20 22 53 75 62 73 74 69 74 75 74 65 20 74 68 65 20 66 75 6c 6c 20 70 61 74 68 20 74 6f 20 ..."Substitute.the.full.path.to.
1e4c0 6d 61 73 74 65 72 20 6f 72 20 63 75 72 72 65 6e 74 20 6c 65 64 67 65 72 20 66 69 6c 65 2e 0a 0a master.or.current.ledger.file...
1e4e0 54 68 65 20 6d 61 73 74 65 72 20 66 69 6c 65 20 6e 61 6d 65 20 69 73 20 64 65 74 65 72 6d 69 6e The.master.file.name.is.determin
1e500 65 64 20 62 79 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 0a 60 6c 65 64 67 65 72 2d 6d 61 73 74 65 ed.by.the.function.`ledger-maste
1e520 72 2d 66 69 6c 65 27 2c 20 77 68 69 63 68 20 64 65 70 65 6e 64 73 20 6f 6e 20 74 68 65 20 76 61 r-file',.which.depends.on.the.va
1e540 72 69 61 62 6c 65 20 6f 66 20 74 68 65 20 73 61 6d 65 0a 6e 61 6d 65 2e 20 20 49 66 20 69 74 20 riable.of.the.same.name...If.it.
1e560 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 69 74 20 69 73 20 75 73 65 64 2c 20 6f 74 68 65 72 77 69 73 is.non-nil,.it.is.used,.otherwis
1e580 65 20 74 68 65 20 63 75 72 72 65 6e 74 0a 62 75 66 66 65 72 27 73 20 66 69 6c 65 20 69 73 20 75 e.the.current.buffer's.file.is.u
1e5a0 73 65 64 2e 22 0a 20 20 28 6c 65 64 67 65 72 2d 6d 61 73 74 65 72 2d 66 69 6c 65 29 29 0a 0a 3b sed."...(ledger-master-file))..;
1e5c0 3b 20 47 65 6e 65 72 61 6c 20 68 65 6c 70 65 72 20 66 75 6e 63 74 69 6f 6e 73 0a 0a 28 64 65 66 ;.General.helper.functions..(def
1e5e0 75 6e 20 6c 65 64 67 65 72 2d 6d 61 73 74 65 72 2d 66 69 6c 65 20 28 29 0a 20 20 22 52 65 74 75 un.ledger-master-file.()..."Retu
1e600 72 6e 20 74 68 65 20 6d 61 73 74 65 72 20 66 69 6c 65 20 66 6f 72 20 61 20 6c 65 64 67 65 72 20 rn.the.master.file.for.a.ledger.
1e620 66 69 6c 65 2e 0a 0a 54 68 65 20 6d 61 73 74 65 72 20 66 69 6c 65 20 69 73 20 65 69 74 68 65 72 file...The.master.file.is.either
1e640 20 74 68 65 20 66 69 6c 65 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 6c 65 64 67 65 72 .the.file.for.the.current.ledger
1e660 20 62 75 66 66 65 72 0a 6f 72 20 74 68 65 20 66 69 6c 65 20 73 70 65 63 69 66 69 65 64 20 62 79 .buffer.or.the.file.specified.by
1e680 20 74 68 65 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 0a 60 6c 65 64 67 .the.buffer-local.variable.`ledg
1e6a0 65 72 2d 6d 61 73 74 65 72 2d 66 69 6c 65 27 2e 20 20 54 79 70 69 63 61 6c 6c 79 20 74 68 69 73 er-master-file'...Typically.this
1e6c0 20 76 61 72 69 61 62 6c 65 20 77 6f 75 6c 64 20 62 65 20 73 65 74 20 69 6e 20 61 0a 66 69 6c 65 .variable.would.be.set.in.a.file
1e6e0 20 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 20 63 6f 6d 6d 65 6e 74 20 62 6c 6f 63 6b 20 61 74 .local.variable.comment.block.at
1e700 20 74 68 65 20 65 6e 64 20 6f 66 20 61 20 6c 65 64 67 65 72 20 66 69 6c 65 0a 77 68 69 63 68 20 .the.end.of.a.ledger.file.which.
1e720 69 73 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 73 6f 6d 65 20 6f 74 68 65 72 20 66 69 6c 65 2e 22 is.included.in.some.other.file."
1e740 0a 20 20 28 69 66 20 6c 65 64 67 65 72 2d 6d 61 73 74 65 72 2d 66 69 6c 65 0a 20 20 20 20 20 20 ...(if.ledger-master-file.......
1e760 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 6c 65 64 67 65 72 2d 6d 61 73 74 65 72 2d (expand-file-name.ledger-master-
1e780 66 69 6c 65 29 0a 20 20 20 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 29 29 29 0a 0a file).....(buffer-file-name)))..
1e7a0 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 70 61 79 65 65 2d 66 6f 72 6d 61 (defun.ledger-report-payee-forma
1e7c0 74 2d 73 70 65 63 69 66 69 65 72 20 28 29 0a 20 20 22 53 75 62 73 74 69 74 75 74 65 20 61 20 70 t-specifier.()..."Substitute.a.p
1e7e0 61 79 65 65 20 6e 61 6d 65 2e 0a 0a 54 68 65 20 75 73 65 72 20 69 73 20 70 72 6f 6d 70 74 65 64 ayee.name...The.user.is.prompted
1e800 20 74 6f 20 65 6e 74 65 72 20 61 20 70 61 79 65 65 20 61 6e 64 20 74 68 61 74 20 69 73 20 73 75 .to.enter.a.payee.and.that.is.su
1e820 62 73 74 69 74 75 74 65 64 2e 0a 49 66 20 70 6f 69 6e 74 20 69 73 20 69 6e 20 61 6e 20 78 61 63 bstituted..If.point.is.in.an.xac
1e840 74 2c 20 74 68 65 20 70 61 79 65 65 20 66 6f 72 20 74 68 61 74 20 78 61 63 74 20 69 73 20 75 73 t,.the.payee.for.that.xact.is.us
1e860 65 64 20 61 73 20 74 68 65 0a 64 65 66 61 75 6c 74 2e 22 0a 20 20 28 6c 65 64 67 65 72 2d 72 65 ed.as.the.default."...(ledger-re
1e880 61 64 2d 70 61 79 65 65 2d 77 69 74 68 2d 70 72 6f 6d 70 74 20 22 50 61 79 65 65 22 29 29 0a 0a ad-payee-with-prompt."Payee"))..
1e8a0 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 61 63 63 6f 75 6e 74 2d 66 6f 72 (defun.ledger-report-account-for
1e8c0 6d 61 74 2d 73 70 65 63 69 66 69 65 72 20 28 29 0a 20 20 22 53 75 62 73 74 69 74 75 74 65 20 61 mat-specifier.()..."Substitute.a
1e8e0 6e 20 61 63 63 6f 75 6e 74 20 6e 61 6d 65 2e 0a 0a 54 68 65 20 75 73 65 72 20 69 73 20 70 72 6f n.account.name...The.user.is.pro
1e900 6d 70 74 65 64 20 74 6f 20 65 6e 74 65 72 20 61 6e 20 61 63 63 6f 75 6e 74 20 6e 61 6d 65 2c 20 mpted.to.enter.an.account.name,.
1e920 77 68 69 63 68 20 63 61 6e 20 62 65 20 61 6e 79 0a 72 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 which.can.be.any.regular.express
1e940 69 6f 6e 20 69 64 65 6e 74 69 66 79 69 6e 67 20 61 6e 20 61 63 63 6f 75 6e 74 2e 20 20 49 66 20 ion.identifying.an.account...If.
1e960 70 6f 69 6e 74 20 69 73 20 6f 6e 20 61 6e 0a 61 63 63 6f 75 6e 74 20 70 6f 73 74 69 6e 67 20 6c point.is.on.an.account.posting.l
1e980 69 6e 65 20 66 6f 72 20 61 6e 20 78 61 63 74 2c 20 74 68 65 20 66 75 6c 6c 20 61 63 63 6f 75 6e ine.for.an.xact,.the.full.accoun
1e9a0 74 20 6e 61 6d 65 20 6f 6e 20 74 68 61 74 0a 6c 69 6e 65 20 69 73 20 74 68 65 20 64 65 66 61 75 t.name.on.that.line.is.the.defau
1e9c0 6c 74 2e 22 0a 20 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 68 lt."...(ledger-read-account-with
1e9e0 2d 70 72 6f 6d 70 74 20 22 41 63 63 6f 75 6e 74 22 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 -prompt."Account"))..(defun.ledg
1ea00 65 72 2d 72 65 70 6f 72 74 2d 2d 63 75 72 72 65 6e 74 2d 6d 6f 6e 74 68 20 28 29 0a 20 20 22 52 er-report--current-month.()..."R
1ea20 65 74 75 72 6e 20 63 75 72 72 65 6e 74 20 6d 6f 6e 74 68 20 61 73 20 28 59 45 41 52 20 2e 20 4d eturn.current.month.as.(YEAR...M
1ea40 4f 4e 54 48 2d 49 4e 44 45 58 29 2e 0a 0a 4d 4f 4e 54 48 2d 49 4e 44 45 58 20 72 61 6e 67 65 73 ONTH-INDEX)...MONTH-INDEX.ranges
1ea60 20 66 72 6f 6d 20 31 20 28 4a 61 6e 75 61 72 79 29 20 74 6f 20 31 32 20 28 44 65 63 65 6d 62 65 .from.1.(January).to.12.(Decembe
1ea80 72 29 20 61 6e 64 20 59 45 41 52 20 69 73 0a 61 20 6e 75 6d 62 65 72 2e 22 0a 20 20 28 6c 65 74 r).and.YEAR.is.a.number."...(let
1eaa0 2a 20 28 28 74 69 6d 65 2d 70 61 72 74 73 20 28 64 65 63 6f 64 65 2d 74 69 6d 65 29 29 0a 20 20 *.((time-parts.(decode-time))...
1eac0 20 20 20 20 20 20 20 28 79 65 61 72 20 28 6e 74 68 20 35 20 74 69 6d 65 2d 70 61 72 74 73 29 29 .......(year.(nth.5.time-parts))
1eae0 0a 20 20 20 20 20 20 20 20 20 28 6d 6f 6e 74 68 2d 69 6e 64 65 78 20 28 6e 74 68 20 34 20 74 69 ..........(month-index.(nth.4.ti
1eb00 6d 65 2d 70 61 72 74 73 29 29 29 0a 20 20 20 20 28 63 6f 6e 73 20 79 65 61 72 20 6d 6f 6e 74 68 me-parts))).....(cons.year.month
1eb20 2d 69 6e 64 65 78 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 -index)))..(defun.ledger-report-
1eb40 2d 6e 6f 72 6d 61 6c 69 7a 65 2d 6d 6f 6e 74 68 20 28 6d 6f 6e 74 68 29 0a 20 20 22 52 65 74 75 -normalize-month.(month)..."Retu
1eb60 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 20 4e 45 57 2d rn.(YEAR...NEW-MONTH).where.NEW-
1eb80 4d 4f 4e 54 48 20 69 73 20 62 65 74 77 65 65 6e 20 31 20 61 6e 64 20 31 32 2e 0a 0a 4d 4f 4e 54 MONTH.is.between.1.and.12...MONT
1eba0 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).
1ebc0 77 68 65 72 65 20 49 4e 44 45 58 20 69 73 20 61 6e 20 69 6e 74 65 67 65 72 2e 0a 54 68 65 20 70 where.INDEX.is.an.integer..The.p
1ebe0 75 72 70 6f 73 65 20 6f 66 20 74 68 69 73 20 6d 65 74 68 6f 64 20 69 73 20 74 68 65 6e 20 74 6f urpose.of.this.method.is.then.to
1ec00 20 63 6f 6e 76 65 72 74 20 61 6e 79 20 79 65 61 72 2f 6d 6f 6e 74 68 20 70 61 69 72 0a 74 6f 20 .convert.any.year/month.pair.to.
1ec20 61 20 6d 65 61 6e 69 6e 67 66 75 6c 20 64 61 74 65 2c 20 65 2e 67 2e 2c 20 66 72 6f 6d 20 28 32 a.meaningful.date,.e.g.,.from.(2
1ec40 30 31 38 20 2e 20 2d 32 29 20 74 6f 20 28 32 30 31 37 20 2e 20 31 30 29 2e 22 0a 20 20 28 6c 65 018...-2).to.(2017...10)."...(le
1ec60 74 2a 20 28 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 0a 20 20 t*.((month-index.(cdr.month))...
1ec80 20 20 20 20 20 20 20 28 79 65 61 72 2d 73 68 69 66 74 20 20 28 2f 20 28 31 2d 20 6d 6f 6e 74 68 .......(year-shift..(/.(1-.month
1eca0 2d 69 6e 64 65 78 29 20 31 32 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 3c 3d 20 6d 6f 6e 74 -index).12))).....(when.(<=.mont
1ecc0 68 2d 69 6e 64 65 78 20 30 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 79 65 61 72 2d 73 68 69 66 h-index.0).......(setq.year-shif
1ece0 74 20 28 31 2d 20 79 65 61 72 2d 73 68 69 66 74 29 29 29 0a 20 20 20 20 28 63 6f 6e 73 20 28 2b t.(1-.year-shift))).....(cons.(+
1ed00 20 28 63 61 72 20 6d 6f 6e 74 68 29 20 79 65 61 72 2d 73 68 69 66 74 29 0a 20 20 20 20 20 20 20 .(car.month).year-shift)........
1ed20 20 20 20 28 31 2b 20 28 6d 6f 64 20 28 31 2d 20 6d 6f 6e 74 68 2d 69 6e 64 65 78 29 20 31 32 29 ...(1+.(mod.(1-.month-index).12)
1ed40 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 73 68 69 66 ))))..(defun.ledger-report--shif
1ed60 74 2d 6d 6f 6e 74 68 20 28 6d 6f 6e 74 68 20 73 68 69 66 74 29 0a 20 20 22 52 65 74 75 72 6e 20 t-month.(month.shift)..."Return.
1ed80 28 59 45 41 52 20 2e 20 4e 45 57 2d 4d 4f 4e 54 48 29 20 77 68 65 72 65 20 4e 45 57 2d 4d 4f 4e (YEAR...NEW-MONTH).where.NEW-MON
1eda0 54 48 20 69 73 20 4d 4f 4e 54 48 2b 53 48 49 46 54 2e 0a 0a 4d 4f 4e 54 48 20 69 73 20 6f 66 20 TH.is.MONTH+SHIFT...MONTH.is.of.
1edc0 74 68 65 20 66 6f 72 6d 20 28 59 45 41 52 20 2e 20 49 4e 44 45 58 29 20 77 68 65 72 65 20 49 4e the.form.(YEAR...INDEX).where.IN
1ede0 44 45 58 20 72 61 6e 67 65 73 20 66 72 6f 6d 0a 31 20 28 4a 61 6e 75 61 72 79 29 20 74 6f 20 31 DEX.ranges.from.1.(January).to.1
1ee00 32 20 28 44 65 63 65 6d 62 65 72 29 20 61 6e 64 20 59 45 41 52 20 69 73 20 61 20 6e 75 6d 62 65 2.(December).and.YEAR.is.a.numbe
1ee20 72 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 79 65 61 72 20 28 63 61 72 20 6d 6f 6e 74 68 29 29 0a r."...(let*.((year.(car.month)).
1ee40 20 20 20 20 20 20 20 20 20 28 6e 65 77 2d 6d 6f 6e 74 68 20 28 2b 20 28 63 64 72 20 6d 6f 6e 74 .........(new-month.(+.(cdr.mont
1ee60 68 29 20 73 68 69 66 74 29 29 29 0a 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d h).shift))).....(ledger-report--
1ee80 6e 6f 72 6d 61 6c 69 7a 65 2d 6d 6f 6e 74 68 20 28 63 6f 6e 73 20 79 65 61 72 20 6e 65 77 2d 6d normalize-month.(cons.year.new-m
1eea0 6f 6e 74 68 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 6d onth))))..(defun.ledger-report-m
1eec0 6f 6e 74 68 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 onth-format-specifier.()..."Subs
1eee0 74 69 74 75 74 65 20 63 75 72 72 65 6e 74 20 6d 6f 6e 74 68 2e 22 0a 20 20 28 77 69 74 68 2d 63 titute.current.month."...(with-c
1ef00 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 6f 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d urrent-buffer.(or.ledger-report-
1ef20 62 75 66 66 65 72 2d 6e 61 6d 65 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 buffer-name.(current-buffer))...
1ef40 20 20 28 6c 65 74 2a 20 28 28 6d 6f 6e 74 68 20 28 6f 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 ..(let*.((month.(or.ledger-repor
1ef60 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 6f 72 74 2d 2d t-current-month.(ledger-report--
1ef80 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 20 20 28 79 65 61 current-month)))............(yea
1efa0 72 20 28 63 61 72 20 6d 6f 6e 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 6f 6e 74 68 r.(car.month))............(month
1efc0 2d 69 6e 64 65 78 20 28 63 64 72 20 6d 6f 6e 74 68 29 29 29 0a 20 20 20 20 20 20 28 66 6f 72 6d -index.(cdr.month))).......(form
1efe0 61 74 20 22 25 73 2d 25 73 22 20 79 65 61 72 20 6d 6f 6e 74 68 2d 69 6e 64 65 78 29 29 29 29 0a at."%s-%s".year.month-index)))).
1f000 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 65 78 70 61 6e 64 2d 66 6f 72 .(defun.ledger-report-expand-for
1f020 6d 61 74 2d 73 70 65 63 69 66 69 65 72 73 20 28 72 65 70 6f 72 74 2d 63 6d 64 29 0a 20 20 22 45 mat-specifiers.(report-cmd)..."E
1f040 78 70 61 6e 64 20 66 6f 72 6d 61 74 20 73 70 65 63 69 66 69 65 72 73 20 69 6e 20 52 45 50 4f 52 xpand.format.specifiers.in.REPOR
1f060 54 2d 43 4d 44 2e 0a 0a 46 6f 72 6d 61 74 20 73 70 65 63 69 66 69 65 72 73 20 61 72 65 20 64 65 T-CMD...Format.specifiers.are.de
1f080 66 69 6e 65 64 20 69 6e 20 74 68 65 0a 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 66 6f 72 6d fined.in.the.`ledger-report-form
1f0a0 61 74 2d 73 70 65 63 69 66 69 65 72 73 27 20 61 6c 69 73 74 2e 20 20 54 68 65 20 66 75 6e 63 74 at-specifiers'.alist...The.funct
1f0c0 69 6f 6e 73 20 61 72 65 0a 63 61 6c 6c 65 64 20 69 6e 20 74 68 65 20 6c 65 64 67 65 72 20 62 75 ions.are.called.in.the.ledger.bu
1f0e0 66 66 65 72 20 66 6f 72 20 77 68 69 63 68 20 74 68 65 20 72 65 70 6f 72 74 20 69 73 20 62 65 69 ffer.for.which.the.report.is.bei
1f100 6e 67 20 72 75 6e 2e 22 0a 20 20 28 6c 65 74 20 28 28 6c 65 64 67 65 72 2d 62 75 66 20 6c 65 64 ng.run."...(let.((ledger-buf.led
1f120 67 65 72 2d 72 65 70 6f 72 74 2d 6c 65 64 67 65 72 2d 62 75 66 29 29 0a 20 20 20 20 28 77 69 74 ger-report-ledger-buf)).....(wit
1f140 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 h-temp-buffer.......(save-excurs
1f160 69 6f 6e 20 28 69 6e 73 65 72 74 20 72 65 70 6f 72 74 2d 63 6d 64 29 29 0a 20 20 20 20 20 20 28 ion.(insert.report-cmd)).......(
1f180 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 25 28 5c 5c 28 5b while.(re-search-forward."%(\\([
1f1a0 5e 29 5d 2a 5c 5c 29 29 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c ^)]*\\))".nil.t).........(when-l
1f1c0 65 74 20 28 28 73 70 65 63 69 66 69 65 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 29 29 et.((specifier.(match-string.1))
1f1e0 0a 20 20 20 20 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 ....................(f.(cdr.(ass
1f200 6f 63 20 73 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 oc.specifier.ledger-report-forma
1f220 74 2d 73 70 65 63 69 66 69 65 72 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a t-specifiers))))...........(let*
1f240 20 28 28 61 72 67 20 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 .((arg.(save-match-data.........
1f260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 ................(with-current-bu
1f280 66 66 65 72 20 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 20 20 ffer.ledger-buf.................
1f2a0 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 20 20 20 20 20 20 ..........(funcall.f))))........
1f2c0 20 20 20 20 20 20 20 20 20 20 28 71 75 6f 74 65 64 20 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 ..........(quoted.(save-match-da
1f2e0 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 20 20 20 28 69 ta............................(i
1f300 66 20 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 f.(listp.arg)...................
1f320 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 6a 6f 69 6e 20 61 72 67 20 22 20 .............(string-join.arg.".
1f340 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 20 20 20 20 ")..............................
1f360 28 73 68 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 (shell-quote-argument.arg)))))..
1f380 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 71 75 6f 74 65 64 ...........(replace-match.quoted
1f3a0 20 27 66 69 78 65 64 63 61 73 65 20 27 6c 69 74 65 72 61 6c 29 29 29 29 0a 20 20 20 20 20 20 20 .'fixedcase.'literal))))........
1f3c0 28 62 75 66 66 65 72 2d 73 74 72 69 6e 67 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 (buffer-string))))..(defun.ledge
1f3e0 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 28 63 6d 64 r-report--cmd-needs-links-p.(cmd
1f400 29 0a 20 20 22 43 68 65 63 6b 20 6c 69 6e 6b 73 20 73 68 6f 75 6c 64 20 62 65 20 61 64 64 65 64 )..."Check.links.should.be.added
1f420 20 74 6f 20 74 68 65 20 72 65 70 6f 72 74 20 70 72 6f 64 75 63 65 64 20 62 79 20 43 4d 44 2e 22 .to.the.report.produced.by.CMD."
1f440 0a 20 20 3b 3b 20 2d 2d 73 75 62 74 6f 74 61 6c 20 72 65 70 6f 72 74 73 20 64 6f 20 6e 6f 74 20 ...;;.--subtotal.reports.do.not.
1f460 70 72 6f 64 75 63 65 20 69 64 65 6e 74 69 66 69 61 62 6c 65 20 74 72 61 6e 73 61 63 74 69 6f 6e produce.identifiable.transaction
1f480 73 2c 20 73 6f 0a 20 20 3b 3b 20 64 6f 6e 27 74 20 70 72 65 70 65 6e 64 20 6c 6f 63 61 74 69 6f s,.so...;;.don't.prepend.locatio
1f4a0 6e 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 6f 72 20 74 68 65 6d 0a 20 20 28 61 6e 64 20 28 73 n.information.for.them...(and.(s
1f4c0 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5c 5c 3c 72 65 67 5c 5c 28 69 73 74 65 72 5c 5c 29 3f 5c tring-match."\\<reg\\(ister\\)?\
1f4e0 5c 3e 22 20 63 6d 64 29 0a 20 20 20 20 20 20 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6c 69 \>".cmd)........ledger-report-li
1f500 6e 6b 73 2d 69 6e 2d 72 65 67 69 73 74 65 72 0a 20 20 20 20 20 20 20 28 6e 6f 74 20 28 73 74 72 nks-in-register........(not.(str
1f520 69 6e 67 2d 6d 61 74 63 68 20 22 2d 2d 73 75 62 74 6f 74 61 6c 22 20 63 6d 64 29 29 29 29 0a 0a ing-match."--subtotal".cmd))))..
1f540 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 63 6f 6d 70 75 74 65 2d 65 78 (defun.ledger-report--compute-ex
1f560 74 72 61 2d 61 72 67 73 20 28 72 65 70 6f 72 74 2d 63 6d 64 29 0a 20 20 22 43 6f 6d 70 75 74 65 tra-args.(report-cmd)..."Compute
1f580 20 65 78 74 72 61 20 61 72 67 73 20 74 6f 20 61 64 64 20 74 6f 20 52 45 50 4f 52 54 2d 43 4d 44 .extra.args.to.add.to.REPORT-CMD
1f5a0 2e 22 0a 20 20 60 28 2c 40 28 77 68 65 6e 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 63 ."...`(,@(when.(ledger-report--c
1f5c0 6d 64 2d 6e 65 65 64 73 2d 6c 69 6e 6b 73 2d 70 20 72 65 70 6f 72 74 2d 63 6d 64 29 0a 20 20 20 md-needs-links-p.report-cmd)....
1f5e0 20 20 20 20 20 27 28 22 2d 2d 70 72 65 70 65 6e 64 2d 66 6f 72 6d 61 74 3d 25 28 66 69 6c 65 6e .....'("--prepend-format=%(filen
1f600 61 6d 65 29 3a 25 28 62 65 67 5f 6c 69 6e 65 29 3a 22 29 29 0a 20 20 20 20 2c 40 28 77 68 65 6e ame):%(beg_line):")).....,@(when
1f620 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 0a 20 20 20 20 20 20 .ledger-report-auto-width.......
1f640 20 20 60 28 22 2d 2d 63 6f 6c 75 6d 6e 73 22 20 2c 28 66 6f 72 6d 61 74 20 22 25 64 22 20 28 77 ..`("--columns".,(format."%d".(w
1f660 69 6e 64 6f 77 2d 6d 61 78 2d 63 68 61 72 73 2d 70 65 72 2d 6c 69 6e 65 29 29 29 29 0a 20 20 20 indow-max-chars-per-line))))....
1f680 20 2c 40 28 77 68 65 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 75 73 65 2d 6e 61 74 69 76 .,@(when.ledger-report-use-nativ
1f6a0 65 2d 68 69 67 68 6c 69 67 68 74 69 6e 67 0a 20 20 20 20 20 20 20 20 6c 65 64 67 65 72 2d 72 65 e-highlighting.........ledger-re
1f6c0 70 6f 72 74 2d 6e 61 74 69 76 65 2d 68 69 67 68 6c 69 67 68 74 69 6e 67 2d 61 72 67 75 6d 65 6e port-native-highlighting-argumen
1f6e0 74 73 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 75 73 ts).....,@(when.ledger-report-us
1f700 65 2d 73 74 72 69 63 74 0a 20 20 20 20 20 20 20 20 27 28 22 2d 2d 73 74 72 69 63 74 22 29 29 29 e-strict.........'("--strict")))
1f720 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 20 28 72 65 70 )..(defun.ledger-report-cmd.(rep
1f740 6f 72 74 2d 6e 61 6d 65 20 65 64 69 74 29 0a 20 20 22 47 65 74 20 74 68 65 20 63 6f 6d 6d 61 6e ort-name.edit)..."Get.the.comman
1f760 64 20 6c 69 6e 65 20 74 6f 20 72 75 6e 20 74 68 65 20 72 65 70 6f 72 74 20 6e 61 6d 65 20 52 45 d.line.to.run.the.report.name.RE
1f780 50 4f 52 54 2d 4e 41 4d 45 2e 0a 4f 70 74 69 6f 6e 61 6c 6c 79 20 45 44 49 54 20 74 68 65 20 63 PORT-NAME..Optionally.EDIT.the.c
1f7a0 6f 6d 6d 61 6e 64 2e 22 0a 20 20 28 6c 65 74 20 28 28 72 65 70 6f 72 74 2d 63 6d 64 20 28 63 61 ommand."...(let.((report-cmd.(ca
1f7c0 72 20 28 63 64 72 20 28 61 73 73 6f 63 20 72 65 70 6f 72 74 2d 6e 61 6d 65 20 6c 65 64 67 65 72 r.(cdr.(assoc.report-name.ledger
1f7e0 2d 72 65 70 6f 72 74 73 29 29 29 29 29 0a 20 20 20 20 3b 3b 20 6c 6f 67 69 63 20 66 6f 72 20 73 -reports))))).....;;.logic.for.s
1f800 75 62 73 74 69 74 75 74 69 6f 6e 20 67 6f 65 73 20 68 65 72 65 0a 20 20 20 20 28 77 68 65 6e 20 ubstitution.goes.here.....(when.
1f820 28 6f 72 20 28 6e 75 6c 6c 20 72 65 70 6f 72 74 2d 63 6d 64 29 20 65 64 69 74 29 0a 20 20 20 20 (or.(null.report-cmd).edit).....
1f840 20 20 28 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 ..(setq.report-cmd.(ledger-repor
1f860 74 2d 72 65 61 64 2d 63 6f 6d 6d 61 6e 64 20 72 65 70 6f 72 74 2d 63 6d 64 29 29 0a 20 20 20 20 t-read-command.report-cmd)).....
1f880 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 73 61 76 65 64 20 6e 69 6c 29 ..(setq.ledger-report-saved.nil)
1f8a0 29 20 3b 3b 20 74 68 69 73 20 69 73 20 61 20 6e 65 77 20 72 65 70 6f 72 74 2c 20 6f 72 20 65 64 ).;;.this.is.a.new.report,.or.ed
1f8c0 69 74 65 64 20 72 65 70 6f 72 74 0a 20 20 20 20 28 73 65 74 71 20 72 65 70 6f 72 74 2d 63 6d 64 ited.report.....(setq.report-cmd
1f8e0 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 65 78 70 61 6e 64 2d 66 6f 72 6d 61 74 2d 73 70 .(ledger-report-expand-format-sp
1f900 65 63 69 66 69 65 72 73 20 72 65 70 6f 72 74 2d 63 6d 64 29 29 0a 20 20 20 20 28 73 65 74 71 20 ecifiers.report-cmd)).....(setq.
1f920 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 20 72 65 70 6f 72 74 2d 63 6d 64 29 0a 20 20 ledger-report-cmd.report-cmd)...
1f940 20 20 28 6f 72 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 72 65 70 6f 72 74 2d 6e 61 6d ..(or.(string-empty-p.report-nam
1f960 65 29 0a 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 2d 65 e).........(ledger-report-name-e
1f980 78 69 73 74 73 20 72 65 70 6f 72 74 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 xists.report-name).........(prog
1f9a0 6e 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 2d 61 64 64 20 n...........(ledger-reports-add.
1f9c0 72 65 70 6f 72 74 2d 6e 61 6d 65 20 72 65 70 6f 72 74 2d 63 6d 64 29 0a 20 20 20 20 20 20 20 20 report-name.report-cmd).........
1f9e0 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 2d 63 75 73 74 6f 6d 2d 73 61 76 65 29 29 29 ..(ledger-reports-custom-save)))
1fa00 0a 20 20 20 20 72 65 70 6f 72 74 2d 63 6d 64 29 29 0a 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 6f .....report-cmd))..(define-butto
1fa20 6e 2d 74 79 70 65 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 67 69 73 74 65 72 2d 65 n-type.'ledger-report-register-e
1fa40 6e 74 72 79 0a 20 20 27 66 6f 6c 6c 6f 77 2d 6c 69 6e 6b 20 74 0a 20 20 27 66 61 63 65 20 6e 69 ntry...'follow-link.t...'face.ni
1fa60 6c 20 3b 3b 20 4f 74 68 65 72 77 69 73 65 20 6d 61 6b 65 2d 74 65 78 74 2d 62 75 74 74 6f 6e 20 l.;;.Otherwise.make-text-button.
1fa80 72 65 70 6c 61 63 65 73 20 4c 65 64 67 65 72 27 73 20 6e 61 74 69 76 65 20 68 69 67 68 6c 69 67 replaces.Ledger's.native.highlig
1faa0 68 74 69 6e 67 0a 20 20 27 61 63 74 69 6f 6e 20 28 6c 61 6d 62 64 61 20 28 5f 62 75 74 74 6f 6e hting...'action.(lambda.(_button
1fac0 29 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 76 69 73 69 74 2d 73 6f 75 72 63 65 29 29 29 ).(ledger-report-visit-source)))
1fae0 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 68 61 6e 67 65 2d 6d ..(defun.ledger-report--change-m
1fb00 6f 6e 74 68 20 28 73 68 69 66 74 29 0a 20 20 22 52 65 62 75 69 6c 64 20 72 65 70 6f 72 74 20 77 onth.(shift)..."Rebuild.report.w
1fb20 69 74 68 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 66 72 6f 6d 20 63 75 72 72 65 6e 74 20 6d 6f ith.transactions.from.current.mo
1fb40 6e 74 68 20 2b 20 53 48 49 46 54 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 63 75 72 72 65 6e 74 2d nth.+.SHIFT."...(let*.((current-
1fb60 6d 6f 6e 74 68 20 28 6f 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 75 72 72 65 6e 74 2d month.(or.ledger-report-current-
1fb80 6d 6f 6e 74 68 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 63 75 72 72 65 6e 74 2d 6d 6f month.(ledger-report--current-mo
1fba0 6e 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 72 65 76 69 6f 75 73 2d 6d 6f 6e 74 68 20 nth)))..........(previous-month.
1fbc0 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 73 68 69 66 74 2d 6d 6f 6e 74 68 20 63 75 72 72 (ledger-report--shift-month.curr
1fbe0 65 6e 74 2d 6d 6f 6e 74 68 20 73 68 69 66 74 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 6c 65 64 ent-month.shift))).....(setq.led
1fc00 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 70 72 65 76 69 6f 75 ger-report-current-month.previou
1fc20 73 2d 6d 6f 6e 74 68 29 0a 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 20 s-month).....(ledger-report-cmd.
1fc40 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 20 6e 69 6c 29 0a 20 20 20 20 28 6c 65 64 ledger-report-name.nil).....(led
1fc60 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 64 6f 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 ger-report-redo)))..(defun.ledge
1fc80 72 2d 72 65 70 6f 72 74 2d 2d 61 64 64 2d 6c 69 6e 6b 73 20 28 29 0a 20 20 22 52 65 70 6c 61 63 r-report--add-links.()..."Replac
1fca0 65 20 66 69 6c 65 20 61 6e 64 20 6c 69 6e 65 20 61 6e 6e 6f 74 61 74 69 6f 6e 73 20 77 69 74 68 e.file.and.line.annotations.with
1fcc0 20 62 75 74 74 6f 6e 73 2e 22 0a 20 20 28 77 68 69 6c 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66 .buttons."...(while.(re-search-f
1fce0 6f 72 77 61 72 64 20 22 5e 5c 5c 28 5c 5c 28 3f 3a 2f 5c 5c 7c 5b 61 2d 7a 41 2d 5a 5d 3a 5b 5c orward."^\\(\\(?:/\\|[a-zA-Z]:[\
1fd00 5c 2f 5d 5c 5c 29 5b 5e 3a 5d 2b 5c 5c 29 3f 3a 5c 5c 28 5b 30 2d 39 5d 2b 5c 5c 29 3f 3a 22 20 \/]\\)[^:]+\\)?:\\([0-9]+\\)?:".
1fd20 6e 69 6c 20 74 29 0a 20 20 20 20 28 6c 65 74 20 28 28 66 69 6c 65 20 28 6d 61 74 63 68 2d 73 74 nil.t).....(let.((file.(match-st
1fd40 72 69 6e 67 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 28 73 74 72 69 6e 67 ring.1))...........(line.(string
1fd60 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 29 0a 20 -to-number.(match-string.2))))..
1fd80 20 20 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 .....(delete-region.(match-begin
1fda0 6e 69 6e 67 20 30 29 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 0a 20 20 20 20 20 20 28 77 68 ning.0).(match-end.0)).......(wh
1fdc0 65 6e 20 28 61 6e 64 20 66 69 6c 65 20 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 28 61 64 64 2d en.(and.file.line).........(add-
1fde0 74 65 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 text-properties.(line-beginning-
1fe00 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 6e 29 0a 20 20 position).(line-end-position)...
1fe20 20 20 20 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
1fe40 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 6c 69 6e 65 29 .'ledger-source.(cons.file.line)
1fe60 29 29 0a 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 74 65 78 74 2d 62 75 74 74 6f 6e 0a 20 20 20 )).........(make-text-button....
1fe80 20 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 ......(line-beginning-position).
1fea0 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 27 74 79 (line-end-position)..........'ty
1fec0 70 65 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 67 69 73 74 65 72 2d 65 6e 74 72 79 pe.'ledger-report-register-entry
1fee0 0a 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 28 66 6f 72 6d 61 74 20 22 6d 6f ..........'help-echo.(format."mo
1ff00 75 73 65 2d 32 2c 20 52 45 54 3a 20 56 69 73 69 74 20 25 73 3a 25 64 22 20 66 69 6c 65 20 6c 69 use-2,.RET:.Visit.%s:%d".file.li
1ff20 6e 65 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 41 70 70 65 6e 64 69 6e 67 20 74 68 65 20 66 61 ne)).........;;.Appending.the.fa
1ff40 63 65 20 70 72 65 73 65 72 76 65 73 20 4c 65 64 67 65 72 27 73 20 6e 61 74 69 76 65 20 68 69 67 ce.preserves.Ledger's.native.hig
1ff60 68 6c 69 67 68 74 69 6e 67 0a 20 20 20 20 20 20 20 20 28 66 6f 6e 74 2d 6c 6f 63 6b 2d 61 70 70 hlighting.........(font-lock-app
1ff80 65 6e 64 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e end-text-property.(line-beginnin
1ffa0 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 6e 29 0a g-position).(line-end-position).
1ffc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1ffe0 20 20 20 20 20 20 20 20 27 66 61 63 65 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 72 65 70 6f 72 ........'face.'ledger-font-repor
20000 74 2d 63 6c 69 63 6b 61 62 6c 65 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 28 65 6e 64 2d 6f t-clickable-face).........(end-o
20020 66 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 72 65 70 6f 72 f-line)))))..(defun.ledger-repor
20040 74 2d 2d 63 6f 6d 70 75 74 65 2d 68 65 61 64 65 72 2d 6c 69 6e 65 20 28 63 6d 64 29 0a 20 20 22 t--compute-header-line.(cmd)..."
20060 43 61 6c 6c 20 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 68 65 61 64 65 72 2d 6c 69 6e 65 2d Call.`ledger-report-header-line-
20080 66 6e 27 20 77 69 74 68 20 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 27 20 62 6f 75 fn'.with.`ledger-report-cmd'.bou
200a0 6e 64 20 74 6f 20 43 4d 44 2e 22 0a 20 20 28 6c 65 74 20 28 28 6c 65 64 67 65 72 2d 72 65 70 6f nd.to.CMD."...(let.((ledger-repo
200c0 72 74 2d 63 6d 64 20 63 6d 64 29 29 0a 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 6c 65 64 67 65 72 rt-cmd.cmd)).....(funcall.ledger
200e0 2d 72 65 70 6f 72 74 2d 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6e 29 29 29 0a 0a 28 64 65 66 75 -report-header-line-fn)))..(defu
20100 6e 20 6c 65 64 67 65 72 2d 64 6f 2d 72 65 70 6f 72 74 20 28 63 6d 64 29 0a 20 20 22 52 75 6e 20 n.ledger-do-report.(cmd)..."Run.
20120 61 20 72 65 70 6f 72 74 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 43 4d 44 2e 0a 43 4d 44 20 6d a.report.command.line.CMD..CMD.m
20140 61 79 20 63 6f 6e 74 61 69 6e 20 61 20 28 73 68 65 6c 6c 2d 71 75 6f 74 65 64 29 20 76 65 72 73 ay.contain.a.(shell-quoted).vers
20160 69 6f 6e 20 6f 66 0a 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 65 78 74 72 61 2d 61 72 67 ion.of.`ledger-report--extra-arg
20180 73 2d 6d 61 72 6b 65 72 27 2c 20 77 68 69 63 68 20 77 69 6c 6c 20 62 65 20 72 65 70 6c 61 63 65 s-marker',.which.will.be.replace
201a0 64 20 62 79 0a 61 72 67 75 6d 65 6e 74 73 20 72 65 74 75 72 6e 65 64 20 62 79 20 60 6c 65 64 67 d.by.arguments.returned.by.`ledg
201c0 65 72 2d 72 65 70 6f 72 74 2d 2d 63 6f 6d 70 75 74 65 2d 65 78 74 72 61 2d 61 72 67 73 27 2e 22 er-report--compute-extra-args'."
201e0 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 28 6c 65 ...(goto-char.(point-min))...(le
20200 74 2a 20 28 28 6d 61 72 6b 65 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 65 78 74 72 61 t*.((marker.ledger-report--extra
20220 2d 61 72 67 73 2d 6d 61 72 6b 65 72 29 0a 20 20 20 20 20 20 20 20 20 28 6d 61 72 6b 65 72 2d 72 -args-marker)..........(marker-r
20240 65 20 28 63 6f 6e 63 61 74 20 22 20 2a 22 20 28 72 65 67 65 78 70 2d 71 75 6f 74 65 20 6d 61 72 e.(concat.".*".(regexp-quote.mar
20260 6b 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 61 72 67 73 20 28 6c 65 64 67 65 72 2d 72 65 ker)))..........(args.(ledger-re
20280 70 6f 72 74 2d 2d 63 6f 6d 70 75 74 65 2d 65 78 74 72 61 2d 61 72 67 73 20 63 6d 64 29 29 0a 20 port--compute-extra-args.cmd))..
202a0 20 20 20 20 20 20 20 20 28 61 72 67 73 2d 73 74 72 20 28 63 6f 6e 63 61 74 20 22 20 22 20 28 6d ........(args-str.(concat.".".(m
202c0 61 70 63 6f 6e 63 61 74 20 23 27 73 68 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 20 apconcat.#'shell-quote-argument.
202e0 61 72 67 73 20 22 20 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 6c 65 61 6e 2d 63 6d 64 20 args.".")))..........(clean-cmd.
20300 28 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 20 6d 61 72 6b 65 72 (replace-regexp-in-string.marker
20320 2d 72 65 20 22 22 20 63 6d 64 20 74 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 72 65 61 6c 2d -re."".cmd.t.t))..........(real-
20340 63 6d 64 20 28 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 20 6d 61 cmd.(replace-regexp-in-string.ma
20360 72 6b 65 72 2d 72 65 20 61 72 67 73 2d 73 74 72 20 63 6d 64 20 74 20 74 29 29 29 0a 20 20 20 20 rker-re.args-str.cmd.t.t))).....
20380 28 73 65 74 71 20 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 20 (setq.header-line-format........
203a0 20 20 20 28 61 6e 64 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 75 73 65 2d 68 65 61 64 65 72 ...(and.ledger-report-use-header
203c0 2d 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 3a 65 76 61 6c 20 28 6c 65 -line................`(:eval.(le
203e0 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 2d 6c 69 6e 65 dger-report--compute-header-line
20400 20 2c 63 6c 65 61 6e 2d 63 6d 64 29 29 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 6c 65 64 67 .,clean-cmd)))).....(unless.ledg
20420 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 0a 20 20 20 20 20 20 er-report-use-header-line.......
20440 28 69 6e 73 65 72 74 20 28 66 6f 72 6d 61 74 20 22 52 65 70 6f 72 74 3a 20 25 73 5c 6e 22 20 6c (insert.(format."Report:.%s\n".l
20460 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 edger-report-name)..............
20480 20 28 66 6f 72 6d 61 74 20 22 43 6f 6d 6d 61 6e 64 3a 20 25 73 5c 6e 22 20 63 6c 65 61 6e 2d 63 .(format."Command:.%s\n".clean-c
204a0 6d 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 73 74 72 69 6e 67 20 28 md)...............(make-string.(
204c0 2d 20 28 77 69 6e 64 6f 77 2d 77 69 64 74 68 29 20 31 29 20 3f 3d 29 0a 20 20 20 20 20 20 20 20 -.(window-width).1).?=).........
204e0 20 20 20 20 20 20 22 5c 6e 5c 6e 22 29 29 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 72 65 70 6f 72 ......"\n\n")).....(let*.((repor
20500 74 20 28 73 68 65 6c 6c 2d 63 6f 6d 6d 61 6e 64 2d 74 6f 2d 73 74 72 69 6e 67 20 72 65 61 6c 2d t.(shell-command-to-string.real-
20520 63 6d 64 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 cmd))).......(when.ledger-report
20540 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 20 20 20 20 20 -use-native-highlighting........
20560 20 28 73 65 74 71 20 72 65 70 6f 72 74 20 28 61 6e 73 69 2d 63 6f 6c 6f 72 2d 61 70 70 6c 79 20 .(setq.report.(ansi-color-apply.
20580 72 65 70 6f 72 74 29 29 29 0a 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a report))).......(save-excursion.
205a0 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 72 65 70 6f 72 74 29 29 0a 20 20 20 20 20 20 28 ........(insert.report)).......(
205c0 77 68 65 6e 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 63 6d 64 2d 6e 65 65 64 73 2d 6c when.(ledger-report--cmd-needs-l
205e0 69 6e 6b 73 2d 70 20 63 6d 64 29 0a 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 inks-p.cmd).........(save-excurs
20600 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 61 64 ion...........(ledger-report--ad
20620 64 2d 6c 69 6e 6b 73 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 d-links))))))..(defun.ledger-rep
20640 6f 72 74 2d 76 69 73 69 74 2d 73 6f 75 72 63 65 20 28 29 0a 20 20 22 56 69 73 69 74 20 74 68 65 ort-visit-source.()..."Visit.the
20660 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 75 6e 64 65 72 20 70 6f 69 6e 74 20 69 6e 20 74 68 65 20 .transaction.under.point.in.the.
20680 72 65 70 6f 72 74 20 77 69 6e 64 6f 77 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a report.window."...(interactive).
206a0 20 20 28 6c 65 74 2a 20 28 28 70 72 6f 70 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 ..(let*.((prop.(get-text-propert
206c0 79 20 28 70 6f 69 6e 74 29 20 27 6c 65 64 67 65 72 2d 73 6f 75 72 63 65 29 29 0a 20 20 20 20 20 y.(point).'ledger-source))......
206e0 20 20 20 20 28 66 69 6c 65 20 28 63 61 72 20 70 72 6f 70 29 29 0a 20 20 20 20 20 20 20 20 20 28 ....(file.(car.prop))..........(
20700 6c 69 6e 65 20 28 63 64 72 20 70 72 6f 70 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 line.(cdr.prop))).....(when.(and
20720 20 66 69 6c 65 20 6c 69 6e 65 29 0a 20 20 20 20 20 20 28 66 69 6e 64 2d 66 69 6c 65 2d 6f 74 68 .file.line).......(find-file-oth
20740 65 72 2d 77 69 6e 64 6f 77 20 66 69 6c 65 29 0a 20 20 20 20 20 20 28 77 69 64 65 6e 29 0a 20 20 er-window.file).......(widen)...
20760 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)).....
20780 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 28 31 2d 20 6c 69 6e 65 29 29 0a 20 20 20 20 20 ..(forward-line.(1-.line))......
207a0 20 28 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 2d 6f 66 2d 78 .(ledger-navigate-beginning-of-x
207c0 61 63 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 67 6f act))))..(defun.ledger-report-go
207e0 74 6f 20 28 29 0a 20 20 22 47 6f 74 6f 20 74 68 65 20 6c 65 64 67 65 72 20 72 65 70 6f 72 74 20 to.()..."Goto.the.ledger.report.
20800 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 6c 65 74 20 buffer."...(interactive)...(let.
20820 28 28 72 62 75 66 20 28 67 65 74 2d 62 75 66 66 65 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 ((rbuf.(get-buffer.ledger-report
20840 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 28 69 66 20 28 6e 6f 74 20 72 62 75 -buffer-name))).....(if.(not.rbu
20860 66 29 0a 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 54 68 65 72 65 20 69 73 20 6e 6f 20 6c f).........(error."There.is.no.l
20880 65 64 67 65 72 20 72 65 70 6f 72 74 20 62 75 66 66 65 72 22 29 29 0a 20 20 20 20 28 70 6f 70 2d edger.report.buffer")).....(pop-
208a0 74 6f 2d 62 75 66 66 65 72 20 72 62 75 66 29 0a 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f to-buffer.rbuf).....(ledger-repo
208c0 72 74 2d 6d 61 79 62 65 2d 73 68 72 69 6e 6b 2d 77 69 6e 64 6f 77 29 29 29 0a 0a 28 64 65 66 75 rt-maybe-shrink-window)))..(defu
208e0 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 64 6f 20 28 26 6f 70 74 69 6f 6e 61 6c 20 n.ledger-report-redo.(&optional.
20900 5f 69 67 6e 6f 72 65 2d 61 75 74 6f 20 5f 6e 6f 63 6f 6e 66 69 72 6d 29 0a 20 20 22 52 65 64 6f _ignore-auto._noconfirm)..."Redo
20920 20 74 68 65 20 72 65 70 6f 72 74 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 6c 65 64 67 65 .the.report.in.the.current.ledge
20940 72 20 72 65 70 6f 72 74 20 62 75 66 66 65 72 2e 0a 49 47 4e 4f 52 45 2d 41 55 54 4f 20 61 6e 64 r.report.buffer..IGNORE-AUTO.and
20960 20 4e 4f 43 4f 4e 46 49 52 4d 20 61 72 65 20 66 6f 72 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 .NOCONFIRM.are.for.compatibility
20980 20 77 69 74 68 0a 60 72 65 76 65 72 74 2d 62 75 66 66 65 72 2d 66 75 6e 63 74 69 6f 6e 27 20 61 .with.`revert-buffer-function'.a
209a0 6e 64 20 61 72 65 20 63 75 72 72 65 6e 74 6c 79 20 69 67 6e 6f 72 65 64 2e 22 0a 20 20 28 69 6e nd.are.currently.ignored."...(in
209c0 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 6f 72 20 28 64 65 72 69 76 65 teractive)...(unless.(or.(derive
209e0 64 2d 6d 6f 64 65 2d 70 20 27 6c 65 64 67 65 72 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 d-mode-p.'ledger-mode)..........
20a00 20 20 20 20 20 28 64 65 72 69 76 65 64 2d 6d 6f 64 65 2d 70 20 27 6c 65 64 67 65 72 2d 72 65 70 .....(derived-mode-p.'ledger-rep
20a20 6f 72 74 2d 6d 6f 64 65 29 29 0a 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 74 20 ort-mode)).....(user-error."Not.
20a40 69 6e 20 61 20 6c 65 64 67 65 72 2d 6d 6f 64 65 20 6f 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 in.a.ledger-mode.or.ledger-repor
20a60 74 2d 6d 6f 64 65 20 62 75 66 66 65 72 22 29 29 0a 20 20 28 6c 65 74 20 28 28 63 75 72 2d 62 75 t-mode.buffer"))...(let.((cur-bu
20a80 66 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 f.(current-buffer))).....(when.(
20aa0 61 6e 64 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 61 75 74 6f 2d 72 65 66 72 65 73 68 0a 20 and.ledger-report-auto-refresh..
20ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 62 75 66 66 65 72 20 6c 65 64 67 65 72 ..............(get-buffer.ledger
20ae0 2d 72 65 70 6f 72 74 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 28 70 6f 70 -report-buffer-name)).......(pop
20b00 2d 74 6f 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 20 6c 65 64 67 65 72 2d 72 65 -to-buffer.(get-buffer.ledger-re
20b20 70 6f 72 74 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 port-buffer-name)).......(ledger
20b40 2d 72 65 70 6f 72 74 2d 6d 61 79 62 65 2d 73 68 72 69 6e 6b 2d 77 69 6e 64 6f 77 29 0a 20 20 20 -report-maybe-shrink-window)....
20b60 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 73 6f 72 2d 6c 69 ...(setq.ledger-report-cursor-li
20b80 6e 65 2d 6e 75 6d 62 65 72 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 29 29 0a ne-number.(line-number-at-pos)).
20ba0 20 20 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 ......(with-silent-modifications
20bc0 0a 20 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 .........(erase-buffer).........
20be0 28 6c 65 64 67 65 72 2d 64 6f 2d 72 65 70 6f 72 74 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d (ledger-do-report.ledger-report-
20c00 63 6d 64 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 cmd).........(when.ledger-report
20c20 2d 69 73 2d 72 65 76 65 72 73 65 64 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 -is-reversed...........(ledger-r
20c40 65 70 6f 72 74 2d 72 65 76 65 72 73 65 2d 6c 69 6e 65 73 29 29 0a 20 20 20 20 20 20 20 20 28 77 eport-reverse-lines)).........(w
20c60 68 65 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 61 75 74 6f 2d 72 65 66 72 65 73 68 2d 73 hen.ledger-report-auto-refresh-s
20c80 74 69 63 6b 79 2d 63 75 72 73 6f 72 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d ticky-cursor...........(forward-
20ca0 6c 69 6e 65 20 28 2d 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 75 72 73 6f 72 2d 6c 69 6e line.(-.ledger-report-cursor-lin
20cc0 65 2d 6e 75 6d 62 65 72 20 35 29 29 29 29 0a 20 20 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 e-number.5)))).......(run-hooks.
20ce0 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 61 66 74 65 72 2d 72 65 70 6f 72 74 2d 68 6f 6f 6b 'ledger-report-after-report-hook
20d00 29 0a 20 20 20 20 20 20 28 70 6f 70 2d 74 6f 2d 62 75 66 66 65 72 20 63 75 72 2d 62 75 66 29 29 ).......(pop-to-buffer.cur-buf))
20d20 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 71 75 69 74 20 28 29 ))..(defun.ledger-report-quit.()
20d40 0a 20 20 22 51 75 69 74 20 74 68 65 20 6c 65 64 67 65 72 20 72 65 70 6f 72 74 20 62 75 66 66 65 ..."Quit.the.ledger.report.buffe
20d60 72 20 61 6e 64 20 6b 69 6c 6c 20 69 74 73 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 r.and.kill.its.buffer."...(inter
20d80 61 63 74 69 76 65 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 active)...(unless.(buffer-live-p
20da0 20 28 67 65 74 2d 62 75 66 66 65 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 62 75 66 66 65 .(get-buffer.ledger-report-buffe
20dc0 72 2d 6e 61 6d 65 29 29 0a 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 20 6c 65 64 r-name)).....(user-error."No.led
20de0 67 65 72 20 72 65 70 6f 72 74 20 62 75 66 66 65 72 22 29 29 0a 20 20 28 71 75 69 74 2d 77 69 6e ger.report.buffer"))...(quit-win
20e00 64 6f 77 73 2d 6f 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 62 75 66 66 65 72 2d 6e 61 6d dows-on.ledger-report-buffer-nam
20e20 65 20 27 6b 69 6c 6c 29 29 0a 0a 28 64 65 66 69 6e 65 2d 6f 62 73 6f 6c 65 74 65 2d 66 75 6e 63 e.'kill))..(define-obsolete-func
20e40 74 69 6f 6e 2d 61 6c 69 61 73 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6b 69 6c 6c 20 23 tion-alias.'ledger-report-kill.#
20e60 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 71 75 69 74 20 22 32 30 31 38 2d 30 33 2d 31 38 22 'ledger-report-quit."2018-03-18"
20e80 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 65 64 69 74 2d 72 65 70 )..(defun.ledger-report-edit-rep
20ea0 6f 72 74 73 20 28 29 0a 20 20 22 45 64 69 74 20 74 68 65 20 64 65 66 69 6e 65 64 20 6c 65 64 67 orts.()..."Edit.the.defined.ledg
20ec0 65 72 20 72 65 70 6f 72 74 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 er.reports."...(interactive)...(
20ee0 63 75 73 74 6f 6d 69 7a 65 2d 76 61 72 69 61 62 6c 65 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 customize-variable.'ledger-repor
20f00 74 73 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 65 64 69 74 2d ts))..(defun.ledger-report-edit-
20f20 72 65 70 6f 72 74 20 28 29 0a 20 20 22 45 64 69 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 72 65 report.()..."Edit.the.current.re
20f40 70 6f 72 74 20 63 6f 6d 6d 61 6e 64 20 69 6e 20 74 68 65 20 6d 69 6e 69 20 62 75 66 66 65 72 20 port.command.in.the.mini.buffer.
20f60 61 6e 64 20 72 65 2d 72 75 6e 20 74 68 65 20 72 65 70 6f 72 74 2e 22 0a 20 20 28 69 6e 74 65 72 and.re-run.the.report."...(inter
20f80 61 63 74 69 76 65 29 0a 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d active)...(setq.ledger-report-cm
20fa0 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 6c 65 d.(ledger-report-read-command.le
20fc0 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 29 29 0a 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f dger-report-cmd))...(ledger-repo
20fe0 72 74 2d 72 65 64 6f 29 29 0a 0a 28 64 65 66 69 6e 65 2d 6f 62 73 6f 6c 65 74 65 2d 66 75 6e 63 rt-redo))..(define-obsolete-func
21000 74 69 6f 6e 2d 61 6c 69 61 73 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 73 65 6c 65 63 74 tion-alias.'ledger-report-select
21020 2d 72 65 70 6f 72 74 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 20 22 6c 65 64 67 65 72 20 -report.#'ledger-report."ledger.
21040 34 2e 30 2e 30 22 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 4.0.0")..(defun.ledger-report-re
21060 61 64 2d 6e 65 77 2d 6e 61 6d 65 20 28 29 0a 20 20 22 52 65 61 64 20 74 68 65 20 6e 61 6d 65 20 ad-new-name.()..."Read.the.name.
21080 66 6f 72 20 61 20 6e 65 77 20 72 65 70 6f 72 74 20 66 72 6f 6d 20 74 68 65 20 6d 69 6e 69 62 75 for.a.new.report.from.the.minibu
210a0 66 66 65 72 2e 22 0a 20 20 28 6c 65 74 20 28 28 6e 61 6d 65 20 22 22 29 29 0a 20 20 20 20 28 77 ffer."...(let.((name."")).....(w
210c0 68 69 6c 65 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 6e 61 6d 65 29 0a 20 20 20 20 20 hile.(string-empty-p.name)......
210e0 20 28 73 65 74 71 20 6e 61 6d 65 20 28 72 65 61 64 2d 66 72 6f 6d 2d 6d 69 6e 69 62 75 66 66 65 .(setq.name.(read-from-minibuffe
21100 72 20 22 52 65 70 6f 72 74 20 6e 61 6d 65 3a 20 22 20 6e 69 6c 20 6e 69 6c 20 6e 69 6c 0a 20 20 r."Report.name:.".nil.nil.nil...
21120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
21140 20 20 20 20 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 2d 70 72 6f 6d 70 74 2d .....'ledger-report-name-prompt-
21160 68 69 73 74 6f 72 79 29 29 29 0a 20 20 20 20 6e 61 6d 65 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 history))).....name))..(defun.le
21180 64 67 65 72 2d 72 65 70 6f 72 74 2d 73 61 76 65 20 28 29 0a 20 20 22 53 61 76 65 20 74 68 65 20 dger-report-save.()..."Save.the.
211a0 63 75 72 72 65 6e 74 20 72 65 70 6f 72 74 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 61 73 20 61 current.report.command.line.as.a
211c0 20 6e 61 6d 65 64 20 72 65 70 6f 72 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a .named.report."...(interactive).
211e0 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 67 6f 74 6f 29 0a 20 20 28 77 68 65 6e 20 28 ..(ledger-report-goto)...(when.(
21200 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d string-empty-p.ledger-report-nam
21220 65 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 6e 61 6d 65 20 e).....(setq.ledger-report-name.
21240 28 6c 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 29 29 29 0a (ledger-report-read-new-name))).
21260 0a 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 65 78 69 73 74 69 6e 67 2d 6e 61 6d 65 20 28 6c 65 ...(when-let.((existing-name.(le
21280 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 2d 65 78 69 73 74 73 20 6c 65 64 67 65 72 2d 72 dger-report-name-exists.ledger-r
212a0 65 70 6f 72 74 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 79 2d 6f 72 2d 6e eport-name))).....(cond.((y-or-n
212c0 2d 70 20 28 66 6f 72 6d 61 74 20 22 4f 76 65 72 77 72 69 74 65 20 65 78 69 73 74 69 6e 67 20 72 -p.(format."Overwrite.existing.r
212e0 65 70 6f 72 74 20 6e 61 6d 65 64 20 27 25 73 27 3f 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 eport.named.'%s'?.".............
21300 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 70 6f 72 74 2d 6e .................ledger-report-n
21320 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 65 71 75 ame))............(if.(string-equ
21340 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 al.................ledger-report
21360 2d 63 6d 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 28 63 64 72 20 28 -cmd.................(car.(cdr.(
21380 61 73 73 71 20 65 78 69 73 74 69 6e 67 2d 6e 61 6d 65 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 assq.existing-name.ledger-report
213a0 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 4e s))))................(message."N
213c0 6f 74 68 69 6e 67 20 74 6f 20 73 61 76 65 2e 20 43 75 72 72 65 6e 74 20 63 6f 6d 6d 61 6e 64 20 othing.to.save..Current.command.
213e0 69 73 20 69 64 65 6e 74 69 63 61 6c 20 74 6f 20 65 78 69 73 74 69 6e 67 20 73 61 76 65 64 20 6f is.identical.to.existing.saved.o
21400 6e 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 ne")..............(setq.ledger-r
21420 65 70 6f 72 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 73 73 71 2d eports....................(assq-
21440 64 65 6c 65 74 65 2d 61 6c 6c 20 65 78 69 73 74 69 6e 67 2d 6e 61 6d 65 20 6c 65 64 67 65 72 2d delete-all.existing-name.ledger-
21460 72 65 70 6f 72 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 reports))..............(ledger-r
21480 65 70 6f 72 74 73 2d 61 64 64 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 20 6c 65 eports-add.ledger-report-name.le
214a0 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 20 20 20 20 20 28 6c dger-report-cmd)..............(l
214c0 65 64 67 65 72 2d 72 65 70 6f 72 74 73 2d 63 75 73 74 6f 6d 2d 73 61 76 65 29 29 29 0a 20 20 20 edger-reports-custom-save)))....
214e0 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 .......(t............(setq.ledge
21500 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 61 r-report-name.(ledger-report-rea
21520 64 2d 6e 65 77 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d d-new-name))............(ledger-
21540 72 65 70 6f 72 74 73 2d 61 64 64 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 20 6c reports-add.ledger-report-name.l
21560 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 20 20 20 28 6c 65 edger-report-cmd)............(le
21580 64 67 65 72 2d 72 65 70 6f 72 74 73 2d 63 75 73 74 6f 6d 2d 73 61 76 65 29 29 29 29 29 0a 0a 28 dger-reports-custom-save)))))..(
215a0 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 70 72 65 76 69 6f 75 73 2d 6d 6f 6e defun.ledger-report-previous-mon
215c0 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 68 20 74 72 61 th.()..."Rebuild.report.with.tra
215e0 6e 73 61 63 74 69 6f 6e 73 20 66 72 6f 6d 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 6d 6f 6e 74 nsactions.from.the.previous.mont
21600 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 65 h."...(interactive)...(ledger-re
21620 70 6f 72 74 2d 2d 63 68 61 6e 67 65 2d 6d 6f 6e 74 68 20 2d 31 29 29 0a 0a 28 64 65 66 75 6e 20 port--change-month.-1))..(defun.
21640 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 65 78 74 2d 6d 6f 6e 74 68 20 28 29 0a 20 20 22 52 ledger-report-next-month.()..."R
21660 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.
21680 66 72 6f 6d 20 74 68 65 20 6e 65 78 74 20 6d 6f 6e 74 68 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 from.the.next.month."...(interac
216a0 74 69 76 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 tive)...(ledger-report--change-m
216c0 6f 6e 74 68 20 31 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 74 onth.1))..(defun.ledger-report-t
216e0 6f 67 67 6c 65 2d 64 65 66 61 75 6c 74 2d 63 6f 6d 6d 6f 64 69 74 79 20 28 29 0a 20 20 22 54 6f oggle-default-commodity.()..."To
21700 67 67 6c 65 20 65 78 63 68 61 6e 67 65 20 6f 66 20 72 65 70 6f 72 74 65 64 20 61 6d 6f 75 6e 74 ggle.exchange.of.reported.amount
21720 73 20 74 6f 20 60 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 64 65 66 61 75 6c 74 2d 63 s.to.`ledger-reconcile-default-c
21740 6f 6d 6d 6f 64 69 74 79 27 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 75 ommodity'."...(interactive)...(u
21760 6e 6c 65 73 73 20 28 64 65 72 69 76 65 64 2d 6d 6f 64 65 2d 70 20 27 6c 65 64 67 65 72 2d 72 65 nless.(derived-mode-p.'ledger-re
21780 70 6f 72 74 2d 6d 6f 64 65 29 0a 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 74 20 port-mode).....(user-error."Not.
217a0 61 20 6c 65 64 67 65 72 20 72 65 70 6f 72 74 20 62 75 66 66 65 72 22 29 29 0a 20 20 28 73 61 76 a.ledger.report.buffer"))...(sav
217c0 65 2d 6d 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 6d 61 74 e-match-data.....(if.(string-mat
217e0 63 68 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 72 78 20 28 6f 72 20 22 2d 2d 65 ch..........(concat.(rx.(or."--e
21800 78 63 68 61 6e 67 65 22 20 22 2d 58 22 29 20 28 31 2b 20 73 70 61 63 65 29 29 0a 20 20 20 20 20 xchange"."-X").(1+.space))......
21820 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 6c 65 64 67 65 72 ............(regexp-quote.ledger
21840 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 74 79 29 29 0a 20 -reconcile-default-commodity))..
21860 20 20 20 20 20 20 20 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 29 0a 20 20 20 20 20 ........ledger-report-cmd)......
21880 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 20 28 72 65 70 6c ...(setq.ledger-report-cmd.(repl
218a0 61 63 65 2d 6d 61 74 63 68 20 22 22 20 6e 69 6c 20 6e 69 6c 20 6c 65 64 67 65 72 2d 72 65 70 6f ace-match."".nil.nil.ledger-repo
218c0 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 70 6f rt-cmd)).......(setq.ledger-repo
218e0 72 74 2d 63 6d 64 20 28 63 6f 6e 63 61 74 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 rt-cmd.(concat.ledger-report-cmd
21900 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 ................................
21920 20 20 20 20 20 20 20 22 20 2d 2d 65 78 63 68 61 6e 67 65 20 22 20 6c 65 64 67 65 72 2d 72 65 63 .......".--exchange.".ledger-rec
21940 6f 6e 63 69 6c 65 2d 64 65 66 61 75 6c 74 2d 63 6f 6d 6d 6f 64 69 74 79 29 29 29 29 0a 20 20 28 oncile-default-commodity))))...(
21960 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 64 6f 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 ledger-report-redo))..(provide.'
21980 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 0a 0a 3b 3b 3b 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 ledger-report)..;;;.ledger-repor
219a0 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 00 00 t.el.ends.here..................
219c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
219e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21a00 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 36 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240416.416/ledger-
21a20 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......................
21a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21a60 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
21a80 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 33 00 20 30 00 00 00 0003736.00000000000.016363..0...
21aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21b00 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...................
21b20 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...................
21b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21c00 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
21c20 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
21c40 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;.
21c60 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
21c80 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
21ca0 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
21cc0 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.
21ce0 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
21d00 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.
21d20 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.
21d40 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
21d60 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.
21d80 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
21da0 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.
21dc0 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.
21de0 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.;
21e00 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
21e20 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
21e40 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
21e60 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
21e80 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
21ea0 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
21ec0 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
21ee0 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.
21f00 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
21f20 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
21f40 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
21f60 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,.;
21f80 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
21fa0 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
21fc0 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
21fe0 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
22000 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
22020 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...;;;.
22040 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
22060 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
22080 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.
220a0 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
220c0 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
220e0 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-
22100 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
22120 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...
22140 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.
22160 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...
22180 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
221a0 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
221c0 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
221e0 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
22200 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
22220 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.(
22240 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
22260 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)))).....
22280 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
222a0 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
222c0 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))))
222e0 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
22300 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).............
22320 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
22340 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-
22360 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
22380 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)))
223a0 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)..;;
223c0 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...
223e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22400 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 36 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240416.416/ledger-
22420 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......................
22440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22460 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
22480 30 30 32 33 33 37 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 33 36 35 00 20 30 00 00 00 0023370.00000000000.016365..0...
224a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
224c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
224e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22500 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...................
22520 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...................
22540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
225a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
225c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
225e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22600 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
22620 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".
22640 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
22660 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)
22680 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
226a0 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.
226c0 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.
226e0 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
22700 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
22720 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
22740 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.
22760 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;
22780 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
227a0 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..;;.
227c0 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
227e0 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
22800 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.
22820 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
22840 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
22860 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
22880 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.
228a0 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
228c0 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
228e0 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
22900 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
22920 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
22940 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
22960 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
22980 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....;
229a0 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
229c0 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
229e0 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
22a00 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
22a20 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.;;
22a40 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
22a60 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
22a80 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
22aa0 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
22ac0 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."\\(
22ae0 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
22b00 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."[\\[(]?\\(.*?\\)[])
22b20 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-
22b40 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
22b60 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-
22b80 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-
22ba0 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
22bc0 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
22be0 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
22c00 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-
22c20 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-
22c40 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
22c60 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."\\(?:
22c80 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]*\\(.*?\
22ca0 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
22cc0 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
22ce0 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\\}[
22d00 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]\\)
22d20 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]
22d40 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
22d60 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."\\((.*)\\)?
22d80 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
22da0 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
22dc0 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).
22de0 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.
22e00 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.(
22e20 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
22e40 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
22e60 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.
22e80 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
22ea0 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
22ec0 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
22ee0 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
22f00 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.(&
22f20 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.
22f40 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
22f60 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.".
22f80 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
22fa0 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)
22fc0 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
22fe0 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
23000 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
23020 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
23040 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
23060 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.
23080 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)......
230a0 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
230c0 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.
230e0 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)..............
23100 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
23120 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
23140 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
23160 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
23180 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)........
231a0 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
231c0 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.
231e0 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)..........................
23200 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
23220 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).............
23240 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
23260 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)))......
23280 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
232a0 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
232c0 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).....................
232e0 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
23300 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
23320 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
23340 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
23360 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)............................
23380 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
233a0 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.
233c0 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
233e0 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)............
23400 20 20 20 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
23420 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
23440 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
23460 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).
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 20 20 20 20 20 20 ................................
234a0 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
234c0 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
234e0 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
23500 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)..............................
23520 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
23540 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
23560 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
23580 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)............................
235a0 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
235c0 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.
235e0 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)..
23600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
23620 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.
23640 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
23660 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).....................
23680 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
236a0 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
236c0 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).................
236e0 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
23700 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
23720 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).....................
23740 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
23760 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
23780 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
237a0 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)..............................
237c0 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
237e0 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
23800 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)...............
23820 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-
23840 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
23860 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).............
23880 20 20 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
238a0 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
238c0 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)....................
238e0 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
23900 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))))
23920 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
23940 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
23960 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.
23980 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.
239a0 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
239c0 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
239e0 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
23a00 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
23a20 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
23a40 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
23a60 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
23a80 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.
23aa0 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
23ac0 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
23ae0 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)...
23b00 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
23b20 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
23b40 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
23b60 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.............
23b80 20 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..
23ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
23bc0 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)........
23be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
23c00 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
23c20 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))........................
23c40 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
23c60 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)))))))).............
23c80 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)..............
23ca0 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).................
23cc0 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))...........
23ce0 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)))
23d00 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.
23d20 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
23d40 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.
23d60 70 6f 69 6e 74 2e 20 20 52 65 74 75 72 6e 20 5c 5c 3d 27 74 72 61 6e 73 61 63 74 69 6f 6e 2c 20 point...Return.\\='transaction,.
23d80 5c 5c 3d 27 70 6f 73 74 69 6e 67 2c 20 5c 5c 3d 27 64 61 79 2c 20 6f 72 20 6e 69 6c 2e 0a 0a 4c \\='posting,.\\='day,.or.nil...L
23da0 65 61 76 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 eave.point.at.the.beginning.of.t
23dc0 68 65 20 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 he.thing.at.point,.otherwise.do.
23de0 6e 6f 74 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 not.move.point."...(let.((here.(
23e00 70 6f 69 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 point))).....(goto-char.(line-be
23e20 67 69 6e 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 ginning-position)).....(cond.((l
23e40 6f 6f 6b 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 ooking-at."^\\(?:[~=][.\t]\\|[0-
23e60 39 2f 2e 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 9/.=-]+\\(\\s-+\\*\\)?\\(\\s-+(.
23e80 2b 3f 29 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 +?)\\)?\\s-+\\)")............(go
23ea0 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 20 20 20 20 20 20 to-char.(match-end.0))..........
23ec0 20 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 28 28 6c 6f 6f 6b ..'transaction)...........((look
23ee0 69 6e 67 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 ing-at."^\\s-+\\([*!]\\s-+\\)?[[
23f00 28 5d 3f 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 (]?\\([^\\s-]\\)")............(g
23f20 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 32 29 29 0a 20 20 oto-char.(match-beginning.2))...
23f40 20 20 20 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 .........'posting)...........((l
23f60 6f 6f 6b 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 ooking-at."^\\(sun\\|mon\\|tue\\
23f80 7c 77 65 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 |wed\\|thu\\|fri\\|sat\\)\\s-+")
23fa0 0a 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 65 6e ............(goto-char.(match-en
23fc0 64 20 30 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 d.0))............'day)..........
23fe0 20 28 74 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 .(t............(ignore.(goto-cha
24000 72 20 68 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 r.here))))))..(defun.ledger-cont
24020 65 78 74 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 ext-at-point.()..."Return.a.list
24040 20 64 65 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 .describing.the.context.around.p
24060 6f 69 6e 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 oint...The.contents.of.the.list.
24080 61 72 65 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 are.the.line.type,.the.name.of.t
240a0 68 65 20 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 he.field.containing.point,.and.f
240c0 6f 72 20 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 or.selected.line.types,.the.cont
240e0 65 6e 74 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 ent.of.the.fields.in.the.line.in
24100 20 61 20 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 .a.association.list."...(let.((p
24120 6f 73 20 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 os.(point))).....(save-excursion
24140 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)......
24160 20 28 6c 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 .(let.((first-char.(char-after))
24180 29 0a 20 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 ).........(cond.((equal.(point).
241a0 28 6c 69 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 (line-end-position))............
241c0 20 20 20 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 ....'(empty-line.nil.nil))......
241e0 20 20 20 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 .........((memq.first-char.'(?\.
24200 3f 5c 74 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 ?\t))................(ledger-ext
24220 72 61 63 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 ract-context-info.'acct-transact
24240 69 6f 6e 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 ion.pos))...............((memq.f
24260 69 72 73 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 irst-char.'(?0.?1.?2.?3.?4.?5.?6
24280 20 3f 37 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 .?7.?8.?9))................(ledg
242a0 65 72 2d 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 er-extract-context-info.'xact.po
242c0 73 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 74 2d s))...............((equal.first-
242e0 63 68 61 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 char.?\=)................'(autom
24300 61 74 65 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 ated-xact.nil.nil)).............
24320 20 20 28 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 ..((equal.first-char.?\~).......
24340 20 20 20 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 .........'(period-xact.nil.nil))
24360 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
24380 72 20 3f 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 r.?\!)................'(command-
243a0 64 69 72 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 directive))...............((equa
243c0 6c 20 66 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 l.first-char.?\;)...............
243e0 20 27 28 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 .'(comment.nil.nil))............
24400 20 20 20 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 ...((equal.first-char.?Y).......
24420 20 20 20 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 .........'(default-year.nil.nil)
24440 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 74 2d 63 68 )...............((equal.first-ch
24460 61 72 20 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 ar.?P)................'(commodit
24480 79 2d 70 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 y-price.nil.nil))...............
244a0 28 28 65 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 ((equal.first-char.?N)..........
244c0 20 20 20 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 ......'(price-ignored-commodity.
244e0 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 75 61 6c 20 nil.nil))...............((equal.
24500 66 69 72 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 first-char.?D)................'(
24520 64 65 66 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 default-commodity.nil.nil)).....
24540 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 43 29 ..........((equal.first-char.?C)
24560 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 63 6f 6e 76 ................'(commodity-conv
24580 65 72 73 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 ersion.nil.nil))...............(
245a0 28 65 71 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 (equal.first-char.?i)...........
245c0 20 20 20 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 .....'(timeclock-i.nil.nil))....
245e0 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 6f ...........((equal.first-char.?o
24600 29 0a 20 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 )................'(timeclock-o.n
24620 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 75 61 6c 20 66 il.nil))...............((equal.f
24640 69 72 73 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 irst-char.?b)................'(t
24660 69 6d 65 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 imeclock-b.nil.nil))............
24680 20 20 20 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 ...((equal.first-char.?h).......
246a0 20 20 20 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 .........'(timeclock-h..nil.nil)
246c0 29 0a 20 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 )...............(t..............
246e0 20 20 27 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 ..'(unknown.nil.nil)))))))..(def
24700 75 6e 20 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 un.ledger-context-other-line.(of
24720 66 73 65 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 fset)..."Return.a.list.describin
24740 67 20 63 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 g.context.of.line.OFFSET.from.ex
24760 69 73 74 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 isting.position...Offset.can.be.
24780 70 6f 73 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 positive.or.negative...If.run.ou
247a0 74 20 6f 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 t.of.buffer.before.reaching.spec
247c0 69 66 69 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 ified.line,.returns.nil."...(sav
247e0 65 2d 65 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 e-excursion.....(let.((left.(for
24800 77 61 72 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 ward-line.offset))).......(if.(n
24820 6f 74 20 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 ot.(equal.left.0))...........nil
24840 0a 20 20 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 .........(ledger-context-at-poin
24860 74 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 2d 6c 69 t)))))..(defun.ledger-context-li
24880 6e 65 2d 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 ne-type.(context-info)...(nth.0.
248a0 63 6f 6e 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 context-info))..(defun.ledger-co
248c0 6e 74 65 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 ntext-current-field.(context-inf
248e0 6f 29 0a 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 o)...(nth.1.context-info))..(def
24900 75 6e 20 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 un.ledger-context-field-info.(co
24920 6e 74 65 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 ntext-info.field-name)...(assoc.
24940 66 69 65 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 field-name.(nth.2.context-info))
24960 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 2d 70 )..(defun.ledger-context-field-p
24980 72 65 73 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 resent-p.(context-info.field-nam
249a0 65 29 0a 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 e)...(not.(null.(ledger-context-
249c0 66 69 65 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 field-info.context-info.field-na
249e0 6d 65 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 66 69 me))))..(defun.ledger-context-fi
24a00 65 6c 64 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 eld-value.(context-info.field-na
24a20 6d 65 29 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 me)...(nth.1.(ledger-context-fie
24a40 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)
24a60 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 2d ))..(defun.ledger-context-field-
24a80 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
24aa0 65 29 0a 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 e)...(nth.2.(ledger-context-fiel
24ac0 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 29 d-info.context-info.field-name))
24ae0 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 2d 65 )..(defun.ledger-context-field-e
24b00 6e 64 2d 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 nd-position.(context-info.field-
24b20 6e 61 6d 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 name)...(+.(ledger-context-field
24b40 2d 70 6f 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 -position.context-info.field-nam
24b60 65 29 0a 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 e)......(length.(ledger-context-
24b80 66 69 65 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 field-value.context-info.field-n
24ba0 61 6d 65 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 ame))))..(defun.ledger-context-g
24bc0 6f 74 6f 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 oto-field-start.(context-info.fi
24be0 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 65 72 2d 63 eld-name)...(goto-char.(ledger-c
24c00 6f 6e 74 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 ontext-field-position.context-in
24c20 66 6f 20 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 fo.field-name)))..(defun.ledger-
24c40 63 6f 6e 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 context-goto-field-end.(context-
24c60 69 6e 66 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 info.field-name)...(goto-char.(l
24c80 65 64 67 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 edger-context-field-end-position
24ca0 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 28 70 72 .context-info.field-name)))..(pr
24cc0 6f 76 69 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 ovide.'ledger-context)..;;;.ledg
24ce0 65 72 2d 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 er-context.el.ends.here.........
24d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24e00 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 36 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240416.416/ledger-
24e20 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.........................
24e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24e60 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
24e80 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 32 00 20 30 00 00 00 0011465.00000000000.015662..0...
24ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24f00 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...................
24f20 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...................
24f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25000 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
25020 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
25040 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
25060 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
25080 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
250a0 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.
250c0 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
250e0 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
25100 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.;;.
25120 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
25140 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.
25160 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
25180 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
251a0 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
251c0 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
251e0 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
25200 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
25220 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
25240 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
25260 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
25280 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
252a0 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.
252c0 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
252e0 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.
25300 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.
25320 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
25340 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
25360 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
25380 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
253a0 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
253c0 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
253e0 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
25400 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
25420 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
25440 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
25460 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
25480 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-
254a0 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
254c0 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.
254e0 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...:
25500 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.
25520 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
25540 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.
25560 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
25580 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
255a0 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)..;;;;;;;;;;;;;;;
255c0 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 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
255e0 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 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.
25600 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.()...
25620 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
25640 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.
25660 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).....
25680 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
256a0 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-
256c0 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)..
256e0 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)).......
25700 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:"
25720 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
25740 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
25760 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
25780 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
257a0 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
257c0 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-+\\([^-]+\\
257e0 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
25800 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
25820 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-
25840 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).
25860 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
25880 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
258a0 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
258c0 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)
258e0 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).....
25900 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
25920 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
25940 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
25960 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).(
25980 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
259a0 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))
259c0 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.().
259e0 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
25a00 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")))....
25a20 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."\\`\\([^-]
25a40 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
25a60 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)).........
25a80 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-
25aa0 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
25ac0 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).........
25ae0 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)).......
25b00 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."#
25b20 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).....
25b40 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)
25b60 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)..
25b80 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))).
25ba0 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
25bc0 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
25be0 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
25c00 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."").............
25c20 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
25c40 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))))))..
25c60 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))
25c80 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
25ca0 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)..........
25cc0 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))....
25ce0 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).......
25d00 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)))......
25d20 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
25d40 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.
25d60 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.
25d80 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."")......................
25da0 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
25dc0 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))))))).........(
25de0 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..........
25e00 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
25e20 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").......................
25e40 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
25e60 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"...........................
25e80 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
25ea0 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
25ec0 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...........
25ee0 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
25f00 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")........
25f20 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...
25f40 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")...........(
25f60 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"))....
25f80 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")....
25fa0 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
25fc0 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
25fe0 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
26000 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
26020 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
26040 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
26060 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.\\(.+?\\)\\(.->.*\\)
26080 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.
260a0 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
260c0 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
260e0 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-
26100 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".............
26120 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.(
26140 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
26160 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.
26180 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".................
261a0 20 20 20 20 20 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
261c0 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)).....
261e0 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
26200 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).
26220 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
26240 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.
26260 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)........
26280 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..............
262a0 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."\
262c0 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))........
262e0 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)))))))..
26300 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
26320 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............
26340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
263a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
263c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
263e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26400 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 36 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240416.416/ledger-
26420 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.....................
26440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26460 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
26480 30 30 33 35 37 37 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 35 32 32 00 20 30 00 00 00 0035772.00000000000.016522..0...
264a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
264c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
264e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26500 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...................
26520 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...................
26540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
265a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
265c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
265e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26600 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
26620 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"
26640 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-
26660 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
26680 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.
266a0 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
266c0 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
266e0 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
26700 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
26720 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
26740 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
26760 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
26780 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.
267a0 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..;;
267c0 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
267e0 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.
26800 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
26820 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
26840 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.
26860 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
26880 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
268a0 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.
268c0 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.
268e0 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.
26900 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
26920 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
26940 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
26960 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,.
26980 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...;
269a0 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
269c0 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
269e0 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-
26a00 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)
26a20 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
26a40 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
26a60 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
26a80 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
26aa0 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...
26ac0 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
26ae0 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.
26b00 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
26b20 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
26b40 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
26b60 72 72 65 6e 74 20 66 69 6c 65 2e 0a 53 65 65 20 6c 65 64 67 65 72 27 73 20 5c 22 61 63 63 6f 75 rrent.file..See.ledger's.\"accou
26b80 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
26ba0 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
26bc0 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)..........
26be0 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..
26c00 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
26c20 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...
26c40 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
26c60 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
26c80 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
26ca0 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
26cc0 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
26ce0 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
26d00 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
26d20 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.
26d40 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)................
26d60 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
26d80 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
26da0 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
26dc0 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
26de0 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
26e00 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
26e20 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.`
26e40 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'.
26e60 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."
26e80 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
26ea0 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)...............
26ec0 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...
26ee0 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..
26f00 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
26f20 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
26f40 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
26f60 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.
26f80 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
26fa0 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."..
26fc0 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
26fe0 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
27000 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 79 e..."4.0.0"))..(defun.ledger-pay
27020 65 65 73 2d 69 6e 2d 62 75 66 66 65 72 20 28 29 0a 20 20 22 53 63 61 6e 20 62 75 66 66 65 72 20 ees-in-buffer.()..."Scan.buffer.
27040 61 6e 64 20 72 65 74 75 72 6e 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20 70 61 79 65 65 73 2e 22 0a and.return.list.of.all.payees.".
27060 20 20 28 6c 65 74 20 28 28 6f 72 69 67 69 6e 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 ..(let.((origin.(point))........
27080 20 70 61 79 65 65 73 2d 6c 69 73 74 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f .payees-list).....(save-excursio
270a0 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 69 6e 29 29 0a n.......(goto-char.(point-min)).
270c0 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 77 61 72 64 20 ......(while.(re-search-forward.
270e0 6c 65 64 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 ledger-payee-name-or-directive-r
27100 65 67 65 78 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 61 6e 64 egex.nil.t).........(unless.(and
27120 20 28 3e 3d 20 6f 72 69 67 69 6e 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 .(>=.origin.(match-beginning.0))
27140 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3c 20 6f 72 69 67 69 6e 20 ......................(<.origin.
27160 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 70 75 73 68 20 (match-end.0)))...........(push.
27180 28 6f 72 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 20 (or.(match-string-no-properties.
271a0 31 29 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 20 32 1).(match-string-no-properties.2
271c0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 79 65 65 73 2d 6c 69 73 74 29 29 )).................payees-list))
271e0 29 29 0a 20 20 20 20 3b 3b 20 74 6f 20 74 68 65 20 6c 69 73 74 0a 20 20 20 20 28 73 6f 72 74 20 )).....;;.to.the.list.....(sort.
27200 28 64 65 6c 65 74 65 2d 64 75 70 73 20 70 61 79 65 65 73 2d 6c 69 73 74 29 20 23 27 73 74 72 69 (delete-dups.payees-list).#'stri
27220 6e 67 2d 6c 65 73 73 70 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 70 61 79 65 65 ng-lessp)))..(defun.ledger-payee
27240 73 2d 6c 69 73 74 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 s-list.()..."Return.a.list.of.al
27260 6c 20 6b 6e 6f 77 6e 20 61 63 63 6f 75 6e 74 20 6e 61 6d 65 73 20 61 73 20 73 74 72 69 6e 67 73 l.known.account.names.as.strings
27280 2e 0a 4c 6f 6f 6b 73 20 69 6e 20 60 6c 65 64 67 65 72 2d 70 61 79 65 65 73 2d 66 69 6c 65 27 20 ..Looks.in.`ledger-payees-file'.
272a0 69 66 20 73 65 74 2c 20 6f 74 68 65 72 77 69 73 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 if.set,.otherwise.the.current.bu
272c0 66 66 65 72 2e 22 0a 20 20 28 69 66 20 6c 65 64 67 65 72 2d 70 61 79 65 65 73 2d 66 69 6c 65 0a ffer."...(if.ledger-payees-file.
272e0 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 20 6c 65 64 67 65 72 2d 70 61 79 65 65 73 2d 66 69 6c ......(let.((f.ledger-payees-fil
27300 65 29 29 0a 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 e)).........(with-temp-buffer...
27320 20 20 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 74 73 20 66 29 ........(insert-file-contents.f)
27340 0a 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 69 6e 2d 62 75 66 ...........(ledger-payees-in-buf
27360 66 65 72 29 29 29 0a 20 20 20 20 28 6c 65 64 67 65 72 2d 70 61 79 65 65 73 2d 69 6e 2d 62 75 66 fer))).....(ledger-payees-in-buf
27380 66 65 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 69 fer)))..(defun.ledger-accounts-i
273a0 6e 2d 62 75 66 66 65 72 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 61 6e 20 61 6c 69 73 74 20 6f n-buffer.()..."Return.an.alist.o
273c0 66 20 61 63 63 6f 75 6e 74 73 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 f.accounts.in.the.current.buffer
273e0 2e 0a 54 68 65 20 60 63 61 72 27 20 6f 66 20 65 61 63 68 20 65 6c 65 6d 65 6e 74 20 69 73 20 74 ..The.`car'.of.each.element.is.t
27400 68 65 20 61 63 63 6f 75 6e 74 20 6e 61 6d 65 20 61 6e 64 20 74 68 65 20 60 63 64 72 27 20 69 73 he.account.name.and.the.`cdr'.is
27420 20 61 6e 0a 61 6c 69 73 74 20 77 68 65 72 65 20 74 68 65 20 6b 65 79 20 69 73 20 61 20 73 75 62 .an.alist.where.the.key.is.a.sub
27440 64 69 72 65 63 74 69 76 65 20 73 75 63 68 20 61 73 20 5c 22 61 73 73 65 72 74 5c 22 20 61 6e 64 directive.such.as.\"assert\".and
27460 20 74 68 65 0a 76 61 6c 75 65 20 28 69 66 20 61 6e 79 29 20 69 73 20 74 68 65 20 61 73 73 6f 63 .the.value.(if.any).is.the.assoc
27480 69 61 74 65 64 20 64 61 74 61 2e 20 20 49 6e 20 6f 74 68 65 72 20 77 6f 72 64 73 2c 20 69 66 20 iated.data...In.other.words,.if.
274a0 79 6f 75 27 76 65 0a 64 65 63 6c 61 72 65 64 20 61 6e 20 61 63 63 6f 75 6e 74 20 6c 69 6b 65 20 you've.declared.an.account.like.
274c0 73 6f 3a 0a 0a 61 63 63 6f 75 6e 74 20 41 73 73 65 74 73 3a 43 68 65 63 6b 69 6e 67 0a 20 20 20 so:..account.Assets:Checking....
274e0 20 61 73 73 65 72 74 20 63 6f 6d 6d 6f 64 69 74 79 20 3d 3d 20 5c 22 24 5c 22 0a 20 20 20 20 64 .assert.commodity.==.\"$\".....d
27500 65 66 61 75 6c 74 0a 0a 54 68 65 6e 20 6f 6e 65 20 6f 66 20 74 68 65 20 65 6c 65 6d 65 6e 74 73 efault..Then.one.of.the.elements
27520 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 77 69 6c 6c 20 62 65 0a 5c .this.function.returns.will.be.\
27540 28 5c 22 41 73 73 65 74 73 3a 43 68 65 63 6b 69 6e 67 5c 22 0a 20 20 28 5c 22 64 65 66 61 75 6c (\"Assets:Checking\"...(\"defaul
27560 74 5c 22 29 0a 20 20 28 5c 22 61 73 73 65 72 74 5c 22 20 2e 20 5c 22 63 6f 6d 6d 6f 64 69 74 79 t\")...(\"assert\"...\"commodity
27580 20 3d 3d 20 5c 22 24 5c 22 5c 22 29 29 22 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e .==.\"$\"\"))"...(save-excursion
275a0 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))....
275c0 20 28 6c 65 74 20 28 61 63 63 6f 75 6e 74 2d 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 28 73 .(let.(account-list...........(s
275e0 65 65 6e 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 20 3a 74 65 73 74 20 23 27 65 71 75 een.(make-hash-table.:test.#'equ
27600 61 6c 20 3a 73 69 7a 65 20 31 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 46 69 72 73 74 2c 20 63 6f al.:size.1))).......;;.First,.co
27620 6e 73 69 64 65 72 20 61 63 63 6f 75 6e 74 73 20 64 65 63 6c 61 72 65 64 20 77 69 74 68 20 22 61 nsider.accounts.declared.with."a
27640 63 63 6f 75 6e 74 22 20 64 69 72 65 63 74 69 76 65 73 2c 20 77 68 69 63 68 20 6d 61 79 20 6f 72 ccount".directives,.which.may.or
27660 0a 20 20 20 20 20 20 3b 3b 20 6d 61 79 20 6e 6f 74 20 68 61 76 65 20 61 73 73 6f 63 69 61 74 65 .......;;.may.not.have.associate
27680 64 20 64 61 74 61 2e 20 54 68 65 20 64 61 74 61 20 69 73 20 6f 6e 20 74 68 65 20 66 6f 6c 6c 6f d.data..The.data.is.on.the.follo
276a0 77 69 6e 67 20 6c 69 6e 65 73 20 75 70 20 74 6f 20 61 0a 20 20 20 20 20 20 3b 3b 20 6c 69 6e 65 wing.lines.up.to.a.......;;.line
276c0 20 6e 6f 74 20 73 74 61 72 74 69 6e 67 20 77 69 74 68 20 77 68 69 74 65 73 70 61 63 65 2e 0a 20 .not.starting.with.whitespace...
276e0 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 77 61 72 64 20 6c .....(while.(re-search-forward.l
27700 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 20 6e 69 edger-account-directive-regex.ni
27720 6c 20 74 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 61 63 63 6f 75 6e 74 20 28 6d 61 74 l.t).........(let.((account.(mat
27740 63 68 2d 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 31 29 29 0a 20 20 20 20 ch-string-no-properties.1)).....
27760 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 73 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 ..........(lines.(buffer-substri
27780 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 20 20 20 20 20 ng-no-properties................
277a0 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .......(point)..................
277c0 20 20 20 20 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 6e 65 78 .....(progn.(ledger-navigate-nex
277e0 74 2d 78 61 63 74 2d 6f 72 2d 64 69 72 65 63 74 69 76 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 t-xact-or-directive)............
27800 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 0a 20 20 20 ..................(point))))....
27820 20 20 20 20 20 20 20 20 20 20 20 64 61 74 61 29 0a 20 20 20 20 20 20 20 20 20 20 28 64 6f 6c 69 ...........data)...........(doli
27840 73 74 20 28 64 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 6c 69 6e 65 73 20 22 5c 6e 22 29 29 st.(d.(split-string.lines."\n"))
27860 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 64 20 28 73 74 72 69 6e 67 2d 74 72 69 .............(setq.d.(string-tri
27880 6d 20 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 73 74 72 69 6e m.d)).............(unless.(strin
278a0 67 3d 20 64 20 22 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 g=.d."")...............(if.(stri
278c0 6e 67 2d 6d 61 74 63 68 20 22 20 22 20 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ng-match.".".d).................
278e0 20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 28 73 75 62 73 74 72 69 6e 67 20 64 20 30 20 28 6d 61 ..(push.(cons.(substring.d.0.(ma
27900 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 20 20 20 20 tch-beginning.0))...............
27920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 75 62 73 74 72 69 6e 67 20 64 20 28 6d 61 ................(substring.d.(ma
27940 74 63 68 2d 65 6e 64 20 30 29 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tch-end.0).nil))................
27960 20 20 20 20 20 20 20 20 20 64 61 74 61 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 .........data).................(
27980 70 75 73 68 20 28 63 6f 6e 73 20 64 20 6e 69 6c 29 20 64 61 74 61 29 29 29 29 0a 20 20 20 20 20 push.(cons.d.nil).data))))......
279a0 20 20 20 20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 61 63 63 6f 75 6e 74 20 64 61 74 61 29 20 61 .....(push.(cons.account.data).a
279c0 63 63 6f 75 6e 74 2d 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 75 74 68 61 73 68 20 ccount-list)...........(puthash.
279e0 61 63 63 6f 75 6e 74 20 74 20 73 65 65 6e 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 4e 65 78 74 2c account.t.seen))).......;;.Next,
27a00 20 67 61 74 68 65 72 20 61 6c 6c 20 61 63 63 6f 75 6e 74 73 20 64 65 63 6c 61 72 65 64 20 69 6e .gather.all.accounts.declared.in
27a20 20 70 6f 73 74 69 6e 67 73 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 0a 20 20 20 20 20 20 20 20 .postings.......(unless.........
27a40 20 20 3b 3b 20 46 49 58 4d 45 3a 20 50 65 6f 70 6c 65 20 77 68 6f 20 68 61 76 65 20 73 65 74 20 ..;;.FIXME:.People.who.have.set.
27a60 60 6c 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 27 20 74 6f 20 `ledger-flymake-be-pedantic'.to.
27a80 6e 6f 6e 2d 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 70 72 6f 62 61 62 6c 79 20 64 6f non-nil...........;;.probably.do
27aa0 6e 27 74 20 77 61 6e 74 20 61 63 63 6f 75 6e 74 73 20 66 72 6f 6d 20 70 6f 73 74 69 6e 67 73 2c n't.want.accounts.from.postings,
27ac0 20 6a 75 73 74 20 74 68 6f 73 65 20 64 65 63 6c 61 72 65 64 0a 20 20 20 20 20 20 20 20 20 20 3b .just.those.declared...........;
27ae0 3b 20 77 69 74 68 20 64 69 72 65 63 74 69 76 65 73 2e 20 20 42 75 74 20 74 68 65 20 6e 61 6d 65 ;.with.directives...But.the.name
27b00 20 69 73 20 61 20 6c 69 74 74 6c 65 20 6d 69 73 6c 65 61 64 69 6e 67 2e 20 20 53 68 6f 75 6c 64 .is.a.little.misleading...Should
27b20 20 77 65 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6d 61 6b 65 20 61 20 6c 65 64 67 65 72 2d 6d .we...........;;.make.a.ledger-m
27b40 6f 64 65 2d 62 65 2d 70 65 64 61 6e 74 69 63 20 61 6e 64 20 75 73 65 20 74 68 61 74 20 69 6e 73 ode-be-pedantic.and.use.that.ins
27b60 74 65 61 64 3f 0a 20 20 20 20 20 20 20 20 20 20 28 62 6f 75 6e 64 2d 61 6e 64 2d 74 72 75 65 2d tead?...........(bound-and-true-
27b80 70 20 6c 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 29 0a 20 20 p.ledger-flymake-be-pedantic)...
27ba0 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 6e 73 ......(ledger-xact-iterate-trans
27bc0 61 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 5f 70 6f 73 20 5f actions..........(lambda.(_pos._
27be0 64 61 74 65 20 5f 73 74 61 74 65 20 5f 70 61 79 65 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 date._state._payee)............(
27c00 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 20 28 6c 65 64 67 65 let.((end.(save-excursion.(ledge
27c20 72 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 0a 20 20 20 20 20 r-navigate-end-of-xact))))......
27c40 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 20 ........(forward-line)..........
27c60 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 6c 65 ....(while.(re-search-forward.le
27c80 64 67 65 72 2d 61 63 63 6f 75 6e 74 2d 61 6e 79 2d 73 74 61 74 75 73 2d 72 65 67 65 78 20 65 6e dger-account-any-status-regex.en
27ca0 64 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 61 63 63 6f 75 d.t)................(let.((accou
27cc0 6e 74 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 20 31 nt.(match-string-no-properties.1
27ce0 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 67 65 )))..................(unless.(ge
27d00 74 68 61 73 68 20 61 63 63 6f 75 6e 74 20 73 65 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 thash.account.seen).............
27d20 20 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 0a .......(puthash.account.t.seen).
27d40 20 20 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 61 ...................(push.(cons.a
27d60 63 63 6f 75 6e 74 20 6e 69 6c 29 20 61 63 63 6f 75 6e 74 2d 6c 69 73 74 29 29 29 29 29 29 29 29 ccount.nil).account-list))))))))
27d80 0a 20 20 20 20 20 20 28 73 6f 72 74 20 61 63 63 6f 75 6e 74 2d 6c 69 73 74 20 28 6c 61 6d 62 64 .......(sort.account-list.(lambd
27da0 61 20 28 61 20 62 29 20 28 73 74 72 69 6e 67 2d 6c 65 73 73 70 20 28 63 61 72 20 61 29 20 28 63 a.(a.b).(string-lessp.(car.a).(c
27dc0 61 72 20 62 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 ar.b)))))))..(defun.ledger-accou
27de0 6e 74 73 2d 6c 69 73 74 2d 69 6e 2d 62 75 66 66 65 72 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 nts-list-in-buffer.()..."Return.
27e00 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 6d 65 a.list.of.all.known.account.name
27e20 73 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 61 73 20 73 74 72 69 6e s.in.the.current.buffer.as.strin
27e40 67 73 2e 0a 43 6f 6e 73 69 64 65 72 73 20 62 6f 74 68 20 61 63 63 6f 75 6e 74 73 20 6c 69 73 74 gs..Considers.both.accounts.list
27e60 65 64 20 69 6e 20 70 6f 73 74 69 6e 67 73 20 61 6e 64 20 74 68 6f 73 65 20 64 65 63 6c 61 72 65 ed.in.postings.and.those.declare
27e80 64 0a 77 69 74 68 20 5c 22 61 63 63 6f 75 6e 74 5c 22 20 64 69 72 65 63 74 69 76 65 73 2e 22 0a d.with.\"account\".directives.".
27ea0 20 20 28 6c 65 74 20 28 28 61 63 63 6f 75 6e 74 73 20 28 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e ..(let.((accounts.(ledger-accoun
27ec0 74 73 2d 69 6e 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 6c 65 64 67 65 72 ts-in-buffer))).....(when.ledger
27ee0 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 6e 0a 20 20 20 20 20 -accounts-exclude-function......
27f00 20 28 73 65 74 71 20 61 63 63 6f 75 6e 74 73 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 20 6c 65 .(setq.accounts.(cl-remove-if.le
27f20 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 6e 20 61 dger-accounts-exclude-function.a
27f40 63 63 6f 75 6e 74 73 29 29 29 0a 20 20 20 20 28 6d 61 70 63 61 72 20 23 27 63 61 72 20 61 63 63 ccounts))).....(mapcar.#'car.acc
27f60 6f 75 6e 74 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 ounts)))..(defun.ledger-accounts
27f80 2d 6c 69 73 74 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 -list.()..."Return.a.list.of.all
27fa0 20 6b 6e 6f 77 6e 20 61 63 63 6f 75 6e 74 20 6e 61 6d 65 73 20 61 73 20 73 74 72 69 6e 67 73 2e .known.account.names.as.strings.
27fc0 0a 4c 6f 6f 6b 73 20 69 6e 20 60 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 66 69 6c 65 27 .Looks.in.`ledger-accounts-file'
27fe0 20 69 66 20 73 65 74 2c 20 6f 74 68 65 72 77 69 73 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 .if.set,.otherwise.the.current.b
28000 75 66 66 65 72 2e 22 0a 20 20 28 69 66 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 66 69 uffer."...(if.ledger-accounts-fi
28020 6c 65 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 le.......(let.((f.ledger-account
28040 73 2d 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 s-file)).........(with-temp-buff
28060 65 72 0a 20 20 20 20 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 er...........(insert-file-conten
28080 74 73 20 66 29 0a 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 ts.f)...........(ledger-accounts
280a0 2d 6c 69 73 74 2d 69 6e 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 28 6c 65 64 67 65 72 2d 61 -list-in-buffer))).....(ledger-a
280c0 63 63 6f 75 6e 74 73 2d 6c 69 73 74 2d 69 6e 2d 62 75 66 66 65 72 29 29 29 0a 0a 28 64 65 66 75 ccounts-list-in-buffer)))..(defu
280e0 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 52 65 74 n.ledger-accounts-tree.()..."Ret
28100 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 20 74 68 urn.a.tree.of.all.accounts.in.th
28120 65 20 62 75 66 66 65 72 2e 0a 0a 45 61 63 68 20 6e 6f 64 65 20 69 6e 20 74 68 65 20 74 72 65 65 e.buffer...Each.node.in.the.tree
28140 20 69 73 20 61 20 6c 69 73 74 20 28 74 20 2e 20 43 48 49 4c 44 52 45 4e 29 2c 20 77 68 65 72 65 .is.a.list.(t...CHILDREN),.where
28160 20 43 48 49 4c 44 52 45 4e 20 69 73 0a 61 6e 20 61 6c 69 73 74 20 28 41 43 43 4f 55 4e 54 2d 45 .CHILDREN.is.an.alist.(ACCOUNT-E
28180 4c 45 4d 45 4e 54 20 2e 20 4e 4f 44 45 29 2e 22 0a 20 20 28 6c 65 74 20 28 28 61 63 63 6f 75 6e LEMENT...NODE)."...(let.((accoun
281a0 74 2d 74 72 65 65 20 28 6c 69 73 74 20 74 29 29 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 61 t-tree.(list.t))).....(dolist.(a
281c0 63 63 6f 75 6e 74 20 28 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 6c 69 73 74 29 20 61 63 ccount.(ledger-accounts-list).ac
281e0 63 6f 75 6e 74 2d 74 72 65 65 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 72 6f 6f 74 20 61 63 count-tree).......(let.((root.ac
28200 63 6f 75 6e 74 2d 74 72 65 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 63 63 6f 75 6e 74 count-tree).............(account
28220 2d 65 6c 65 6d 65 6e 74 73 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 61 63 63 6f 75 6e 74 20 -elements.(split-string.account.
28240 22 3a 22 29 29 29 0a 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 65 6c 65 6d 65 6e 74 20 ":"))).........(dolist.(element.
28260 61 63 63 6f 75 6e 74 2d 65 6c 65 6d 65 6e 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 account-elements)...........(let
28280 20 28 28 6e 6f 64 65 20 28 61 73 73 6f 63 20 65 6c 65 6d 65 6e 74 20 72 6f 6f 74 29 29 29 0a 20 .((node.(assoc.element.root)))..
282a0 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 ...........(unless.node.........
282c0 20 20 20 20 20 20 28 73 65 74 71 20 6e 6f 64 65 20 28 63 6f 6e 73 20 65 6c 65 6d 65 6e 74 20 28 ......(setq.node.(cons.element.(
282e0 6c 69 73 74 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 63 6f 6e 63 20 72 list.t)))...............(nconc.r
28300 6f 6f 74 20 28 6c 69 73 74 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 oot.(list.node))).............(s
28320 65 74 71 20 72 6f 6f 74 20 28 63 64 72 20 6e 6f 64 65 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 etq.root.(cdr.node))))))))..(def
28340 75 6e 20 6c 65 64 67 65 72 2d 63 6f 6d 70 6c 65 74 65 2d 61 63 63 6f 75 6e 74 2d 6e 65 78 74 2d un.ledger-complete-account-next-
28360 73 74 65 70 73 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 6e 65 78 steps.()..."Return.a.list.of.nex
28380 74 20 73 74 65 70 73 20 66 6f 72 20 74 68 65 20 61 63 63 6f 75 6e 74 20 70 72 65 66 69 78 20 61 t.steps.for.the.account.prefix.a
283a0 74 20 70 6f 69 6e 74 2e 22 0a 20 20 3b 3b 20 46 49 58 4d 45 3a 20 54 68 69 73 20 66 75 6e 63 74 t.point."...;;.FIXME:.This.funct
283c0 69 6f 6e 20 69 73 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 60 6c 65 64 67 65 72 2d 63 6f 6d 70 6c ion.is.called.from.`ledger-compl
283e0 65 74 65 2d 61 74 2d 70 6f 69 6e 74 27 20 77 68 69 63 68 0a 20 20 3b 3b 20 61 6c 72 65 61 64 79 ete-at-point'.which...;;.already
28400 20 6b 6e 6f 77 73 20 74 68 65 20 62 6f 75 6e 64 73 20 6f 66 20 74 68 65 20 61 63 63 6f 75 6e 74 .knows.the.bounds.of.the.account
28420 20 6e 61 6d 65 20 74 6f 20 63 6f 6d 70 6c 65 74 65 2e 20 20 43 6f 6d 70 75 74 69 6e 67 20 69 74 .name.to.complete...Computing.it
28440 0a 20 20 3b 3b 20 61 67 61 69 6e 20 68 65 72 65 20 69 73 20 77 61 73 74 65 66 75 6c 2e 0a 20 20 ...;;.again.here.is.wasteful....
28460 28 6c 65 74 2a 20 28 28 63 75 72 72 65 6e 74 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e (let*.((current.(buffer-substrin
28480 67 0a 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 g....................(save-excur
284a0 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 sion......................(unles
284c0 73 20 28 65 71 20 27 70 6f 73 74 69 6e 67 20 28 6c 65 64 67 65 72 2d 74 68 69 6e 67 2d 61 74 2d s.(eq.'posting.(ledger-thing-at-
284e0 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 20 20 20 28 point))........................(
28500 65 72 72 6f 72 20 22 4e 6f 74 20 6f 6e 20 61 20 70 6f 73 74 69 6e 67 20 6c 69 6e 65 22 29 29 0a error."Not.on.a.posting.line")).
28520 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 0a 20 20 .....................(point))...
28540 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 0a 20 20 20 20 20 .................(point)))......
28560 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 20 28 73 70 6c 69 ....(elements.(and.current.(spli
28580 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 20 20 20 20 20 20 t-string.current.":"))).........
285a0 20 28 72 6f 6f 74 20 28 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 74 72 65 65 29 29 0a 20 .(root.(ledger-accounts-tree))..
285c0 20 20 20 20 20 20 20 20 28 70 72 65 66 69 78 20 6e 69 6c 29 29 0a 20 20 20 20 28 77 68 69 6c 65 ........(prefix.nil)).....(while
285e0 20 28 63 64 72 20 65 6c 65 6d 65 6e 74 73 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 78 61 63 .(cdr.elements).......(let.((xac
28600 74 20 28 61 73 73 6f 63 20 28 63 61 72 20 65 6c 65 6d 65 6e 74 73 29 20 72 6f 6f 74 29 29 29 0a t.(assoc.(car.elements).root))).
28620 20 20 20 20 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 28 73 65 ........(if.xact.............(se
28640 74 71 20 70 72 65 66 69 78 20 28 63 6f 6e 63 61 74 20 70 72 65 66 69 78 20 28 61 6e 64 20 70 72 tq.prefix.(concat.prefix.(and.pr
28660 65 66 69 78 20 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 efix.":").......................
28680 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 65 6c 65 6d 65 6e 74 73 29 29 0a 20 20 20 20 20 ...........(car.elements))......
286a0 20 20 20 20 20 20 20 20 20 20 20 20 20 72 6f 6f 74 20 28 63 64 72 20 78 61 63 74 29 29 0a 20 20 .............root.(cdr.xact))...
286c0 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 6f 6f 74 20 6e 69 6c 20 65 6c 65 6d 65 6e 74 73 20 ........(setq.root.nil.elements.
286e0 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 65 6c 65 6d 65 6e 74 73 20 28 63 64 72 nil))).......(setq.elements.(cdr
28700 20 65 6c 65 6d 65 6e 74 73 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 72 6f 6f 74 20 28 64 65 6c .elements))).....(setq.root.(del
28720 65 74 65 20 28 6c 69 73 74 20 28 63 61 72 20 65 6c 65 6d 65 6e 74 73 29 20 74 29 20 72 6f 6f 74 ete.(list.(car.elements).t).root
28740 29 29 0a 20 20 20 20 28 61 6e 64 20 72 6f 6f 74 0a 20 20 20 20 20 20 20 20 20 28 73 6f 72 74 0a )).....(and.root..........(sort.
28760 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 ..........(mapcar.(function.....
28780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 78 29 0a 20 20 20 20 20 ...............(lambda.(x)......
287a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 74 65 72 6d 20 28 69 66 20 ................(let.((term.(if.
287c0 70 72 65 66 69 78 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 prefix..........................
287e0 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 70 72 65 66 69 78 20 22 3a 22 20 28 ............(concat.prefix.":".(
28800 63 61 72 20 78 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 car.x)).........................
28820 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 78 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 ...........(car.x))))...........
28840 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3e 20 28 6c 65 6e 67 74 68 20 28 63 64 72 .............(if.(>.(length.(cdr
28860 20 78 29 29 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 20 20 .x)).1).........................
28880 20 20 20 28 63 6f 6e 63 61 74 20 74 65 72 6d 20 22 3a 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 ...(concat.term.":")............
288a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 65 72 6d 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 ..............term))))..........
288c0 20 20 20 20 20 20 20 20 20 28 63 64 72 20 72 6f 6f 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 27 .........(cdr.root))...........'
288e0 73 74 72 69 6e 67 2d 6c 65 73 73 70 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d string-lessp))))..(defun.ledger-
28900 63 6f 6d 70 6c 65 74 65 2d 64 61 74 65 20 28 6d 6f 6e 74 68 2d 73 74 72 69 6e 67 20 64 61 79 2d complete-date.(month-string.day-
28920 73 74 72 69 6e 67 29 0a 20 20 22 43 6f 6d 70 6c 65 74 65 20 61 20 64 61 74 65 2e 22 0a 20 20 28 string)..."Complete.a.date."...(
28940 6c 65 74 2a 0a 20 20 20 20 20 20 28 28 6e 6f 77 20 28 63 75 72 72 65 6e 74 2d 74 69 6d 65 29 29 let*.......((now.(current-time))
28960 0a 20 20 20 20 20 20 20 28 64 65 63 6f 64 65 64 20 28 64 65 63 6f 64 65 2d 74 69 6d 65 20 6e 6f ........(decoded.(decode-time.no
28980 77 29 29 0a 20 20 20 20 20 20 20 28 74 68 69 73 2d 6d 6f 6e 74 68 20 28 6e 74 68 20 34 20 64 65 w))........(this-month.(nth.4.de
289a0 63 6f 64 65 64 29 29 0a 20 20 20 20 20 20 20 28 74 68 69 73 2d 79 65 61 72 20 28 6e 74 68 20 35 coded))........(this-year.(nth.5
289c0 20 64 65 63 6f 64 65 64 29 29 0a 20 20 20 20 20 20 20 28 6c 61 73 74 2d 6d 6f 6e 74 68 20 28 69 .decoded))........(last-month.(i
289e0 66 20 28 3e 20 74 68 69 73 2d 6d 6f 6e 74 68 20 31 29 20 28 31 2d 20 74 68 69 73 2d 6d 6f 6e 74 f.(>.this-month.1).(1-.this-mont
28a00 68 29 20 31 32 29 29 0a 20 20 20 20 20 20 20 28 6c 61 73 74 2d 79 65 61 72 20 28 31 2d 20 74 68 h).12))........(last-year.(1-.th
28a20 69 73 2d 79 65 61 72 29 29 0a 20 20 20 20 20 20 20 28 6c 61 73 74 2d 6d 6f 6e 74 68 2d 79 65 61 is-year))........(last-month-yea
28a40 72 20 28 69 66 20 28 3e 20 74 68 69 73 2d 6d 6f 6e 74 68 20 31 29 20 74 68 69 73 2d 79 65 61 72 r.(if.(>.this-month.1).this-year
28a60 20 6c 61 73 74 2d 79 65 61 72 29 29 0a 20 20 20 20 20 20 20 28 6d 6f 6e 74 68 20 28 61 6e 64 20 .last-year))........(month.(and.
28a80 6d 6f 6e 74 68 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 month-string....................
28aa0 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 6d 6f 6e 74 68 2d 73 74 72 69 6e 67 29 29 (string-to-number.month-string))
28ac0 29 0a 20 20 20 20 20 20 20 28 64 61 79 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 )........(day.(string-to-number.
28ae0 64 61 79 2d 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 20 20 28 64 61 74 65 73 20 28 6c 69 73 74 day-string))........(dates.(list
28b00 20 28 65 6e 63 6f 64 65 2d 74 69 6d 65 20 30 20 30 20 30 20 64 61 79 20 28 6f 72 20 6d 6f 6e 74 .(encode-time.0.0.0.day.(or.mont
28b20 68 20 74 68 69 73 2d 6d 6f 6e 74 68 29 20 74 68 69 73 2d 79 65 61 72 29 0a 20 20 20 20 20 20 20 h.this-month).this-year)........
28b40 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 6d 6f 6e 74 68 0a 20 20 20 20 20 20 20 20 20 .............(if.month..........
28b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6e 63 6f 64 65 2d 74 69 6d 65 20 30 20 30 20 ...............(encode-time.0.0.
28b80 30 20 64 61 79 20 6d 6f 6e 74 68 20 6c 61 73 74 2d 79 65 61 72 29 0a 20 20 20 20 20 20 20 20 20 0.day.month.last-year)..........
28ba0 20 20 20 20 20 20 20 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 .............(encode-time.0.0.0.
28bc0 64 61 79 20 6c 61 73 74 2d 6d 6f 6e 74 68 20 6c 61 73 74 2d 6d 6f 6e 74 68 2d 79 65 61 72 29 29 day.last-month.last-month-year))
28be0 29 29 29 0a 20 20 20 20 28 6c 61 6d 62 64 61 20 28 5f 73 74 72 69 6e 67 20 5f 70 72 65 64 69 63 ))).....(lambda.(_string._predic
28c00 61 74 65 20 5f 61 6c 6c 29 0a 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 6c 65 64 67 65 72 2d ate._all).......(concat.(ledger-
28c20 66 6f 72 6d 61 74 2d 64 61 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 66 format-date................(cl-f
28c40 69 6e 64 2d 69 66 20 28 6c 61 6d 62 64 61 20 28 64 61 74 65 29 20 28 6e 6f 74 20 28 74 69 6d 65 ind-if.(lambda.(date).(not.(time
28c60 2d 6c 65 73 73 2d 70 20 6e 6f 77 20 64 61 74 65 29 29 29 20 64 61 74 65 73 29 29 0a 20 20 20 20 -less-p.now.date))).dates)).....
28c80 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 3d 20 28 70 6f 69 6e 74 29 20 28 6c 69 6e 65 2d ..........(and.(=.(point).(line-
28ca0 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 20 22 20 22 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 end-position)).".")))))..(defun.
28cc0 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 2d 64 61 74 65 0a 20 ledger-complete-effective-date..
28ce0 20 20 20 28 74 78 2d 79 65 61 72 2d 73 74 72 69 6e 67 20 74 78 2d 6d 6f 6e 74 68 2d 73 74 72 69 ...(tx-year-string.tx-month-stri
28d00 6e 67 20 74 78 2d 64 61 79 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ng.tx-day-string................
28d20 20 20 20 20 20 6d 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 .....month-string.day-string)...
28d40 22 43 6f 6d 70 6c 65 74 65 20 61 6e 20 65 66 66 65 63 74 69 76 65 20 64 61 74 65 2e 22 0a 20 20 "Complete.an.effective.date."...
28d60 28 6c 65 74 2a 0a 20 20 20 20 20 20 28 28 74 78 2d 79 65 61 72 20 28 73 74 72 69 6e 67 2d 74 6f (let*.......((tx-year.(string-to
28d80 2d 6e 75 6d 62 65 72 20 74 78 2d 79 65 61 72 2d 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 20 20 -number.tx-year-string))........
28da0 28 74 78 2d 6d 6f 6e 74 68 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 74 78 2d 6d (tx-month.(string-to-number.tx-m
28dc0 6f 6e 74 68 2d 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 20 20 28 74 78 2d 64 61 79 20 28 73 74 onth-string))........(tx-day.(st
28de0 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 74 78 2d 64 61 79 2d 73 74 72 69 6e 67 29 29 0a 20 ring-to-number.tx-day-string))..
28e00 20 20 20 20 20 20 28 74 78 2d 64 61 74 65 20 28 65 6e 63 6f 64 65 2d 74 69 6d 65 20 30 20 30 20 ......(tx-date.(encode-time.0.0.
28e20 30 20 74 78 2d 64 61 79 20 74 78 2d 6d 6f 6e 74 68 20 74 78 2d 79 65 61 72 29 29 0a 20 20 20 20 0.tx-day.tx-month.tx-year)).....
28e40 20 20 20 28 6e 65 78 74 2d 6d 6f 6e 74 68 20 28 69 66 20 28 3c 20 74 78 2d 6d 6f 6e 74 68 20 31 ...(next-month.(if.(<.tx-month.1
28e60 32 29 20 28 31 2b 20 74 78 2d 6d 6f 6e 74 68 29 20 31 29 29 0a 20 20 20 20 20 20 20 28 6e 65 78 2).(1+.tx-month).1))........(nex
28e80 74 2d 79 65 61 72 20 28 31 2b 20 74 78 2d 79 65 61 72 29 29 0a 20 20 20 20 20 20 20 28 6e 65 78 t-year.(1+.tx-year))........(nex
28ea0 74 2d 6d 6f 6e 74 68 2d 79 65 61 72 20 28 69 66 20 28 3c 20 74 78 2d 6d 6f 6e 74 68 20 31 32 29 t-month-year.(if.(<.tx-month.12)
28ec0 20 74 78 2d 79 65 61 72 20 6e 65 78 74 2d 79 65 61 72 29 29 0a 20 20 20 20 20 20 20 28 6d 6f 6e .tx-year.next-year))........(mon
28ee0 74 68 20 28 61 6e 64 20 6d 6f 6e 74 68 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 th.(and.month-string............
28f00 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 6d 6f 6e 74 68 2d ........(string-to-number.month-
28f20 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 28 64 61 79 20 28 73 74 72 69 6e 67 2d 74 6f string)))........(day.(string-to
28f40 2d 6e 75 6d 62 65 72 20 64 61 79 2d 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 20 20 28 64 61 74 -number.day-string))........(dat
28f60 65 73 20 28 6c 69 73 74 20 28 65 6e 63 6f 64 65 2d 74 69 6d 65 20 30 20 30 20 30 20 64 61 79 20 es.(list.(encode-time.0.0.0.day.
28f80 28 6f 72 20 6d 6f 6e 74 68 20 74 78 2d 6d 6f 6e 74 68 29 20 74 78 2d 79 65 61 72 29 0a 20 20 20 (or.month.tx-month).tx-year)....
28fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 6d 6f 6e 74 68 0a 20 20 20 20 20 .................(if.month......
28fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6e 63 6f 64 65 2d 74 69 6d 65 20 ...................(encode-time.
28fe0 30 20 30 20 30 20 64 61 79 20 6d 6f 6e 74 68 20 6e 65 78 74 2d 79 65 61 72 29 0a 20 20 20 20 20 0.0.0.day.month.next-year)......
29000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6e 63 6f 64 65 2d 74 69 6d 65 20 30 20 .................(encode-time.0.
29020 30 20 30 20 64 61 79 20 6e 65 78 74 2d 6d 6f 6e 74 68 20 6e 65 78 74 2d 6d 6f 6e 74 68 2d 79 65 0.0.day.next-month.next-month-ye
29040 61 72 29 29 29 29 29 0a 20 20 20 20 28 6c 61 6d 62 64 61 20 28 5f 73 74 72 69 6e 67 20 5f 70 72 ar))))).....(lambda.(_string._pr
29060 65 64 69 63 61 74 65 20 5f 61 6c 6c 29 0a 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 6c 65 64 edicate._all).......(concat.(led
29080 67 65 72 2d 66 6f 72 6d 61 74 2d 64 61 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ger-format-date................(
290a0 63 6c 2d 66 69 6e 64 2d 69 66 20 28 6c 61 6d 62 64 61 20 28 64 61 74 65 29 20 28 6e 6f 74 20 28 cl-find-if.(lambda.(date).(not.(
290c0 74 69 6d 65 2d 6c 65 73 73 2d 70 20 64 61 74 65 20 74 78 2d 64 61 74 65 29 29 29 20 64 61 74 65 time-less-p.date.tx-date))).date
290e0 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 3d 20 28 70 6f 69 6e 74 s))...............(and.(=.(point
29100 29 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 20 22 20 22 29 29 29 29 29 0a ).(line-end-position))."."))))).
29120 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 63 6f 6d 70 6c 65 74 65 2d 61 74 2d 70 6f 69 6e 74 .(defun.ledger-complete-at-point
29140 20 28 29 0a 20 20 22 44 6f 20 61 70 70 72 6f 70 72 69 61 74 65 20 63 6f 6d 70 6c 65 74 69 6f 6e .()..."Do.appropriate.completion
29160 20 66 6f 72 20 74 68 65 20 74 68 69 6e 67 20 61 74 20 70 6f 69 6e 74 2e 22 0a 20 20 28 6c 65 74 .for.the.thing.at.point."...(let
29180 20 28 28 65 6e 64 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 73 74 61 72 74 20 63 6f .((end.(point)).........start.co
291a0 6c 6c 65 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 72 65 61 6c 69 67 6e 2d 61 66 74 65 72 0a 20 llection.........realign-after..
291c0 20 20 20 20 20 20 20 64 65 6c 65 74 65 2d 73 75 66 66 69 78 29 0a 20 20 20 20 28 63 6f 6e 64 20 .......delete-suffix).....(cond.
291e0 28 3b 3b 20 44 61 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d 62 61 63 (;;.Date............(looking-bac
29200 6b 20 28 63 6f 6e 63 61 74 20 22 5e 22 20 6c 65 64 67 65 72 2d 69 6e 63 6f 6d 70 6c 65 74 65 2d k.(concat."^".ledger-incomplete-
29220 64 61 74 65 2d 72 65 67 65 78 70 29 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 date-regexp).(line-beginning-pos
29240 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 63 74 ition))............(setq.collect
29260 69 6f 6e 20 28 6c 65 64 67 65 72 2d 63 6f 6d 70 6c 65 74 65 2d 64 61 74 65 20 28 6d 61 74 63 68 ion.(ledger-complete-date.(match
29280 2d 73 74 72 69 6e 67 20 31 29 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32 29 29 0a 20 20 20 -string.1).(match-string.2))....
292a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 72 74 20 28 6d 61 74 63 68 2d 62 65 67 69 6e ..............start.(match-begin
292c0 6e 69 6e 67 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 6c 65 74 65 2d ning.0)..................delete-
292e0 73 75 66 66 69 78 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 suffix.(save-match-data.........
29300 20 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 28 .........................(when.(
29320 6c 6f 6f 6b 69 6e 67 2d 61 74 20 28 72 78 20 28 6f 6e 65 2d 6f 72 2d 6d 6f 72 65 20 28 6f 72 20 looking-at.(rx.(one-or-more.(or.
29340 64 69 67 69 74 20 28 61 6e 79 20 3f 2f 20 3f 2d 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 digit.(any.?/.?-)))))...........
29360 20 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 6e 67 74 68 .........................(length
29380 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 30 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 .(match-string.0))))))..........
293a0 20 28 3b 3b 20 45 66 66 65 63 74 69 76 65 20 64 61 74 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 .(;;.Effective.dates............
293c0 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 64 67 65 72 (looking-back.(concat."^".ledger
293e0 2d 69 73 6f 2d 64 61 74 65 2d 72 65 67 65 78 70 20 22 3d 22 20 6c 65 64 67 65 72 2d 69 6e 63 6f -iso-date-regexp."=".ledger-inco
29400 6d 70 6c 65 74 65 2d 64 61 74 65 2d 72 65 67 65 78 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 mplete-date-regexp).............
29420 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 .............(line-beginning-pos
29440 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 73 74 61 72 74 20 28 ition))............(setq.start.(
29460 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)).......
29480 20 20 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 .....(setq.collection.(ledger-co
294a0 6d 70 6c 65 74 65 2d 65 66 66 65 63 74 69 76 65 2d 64 61 74 65 0a 20 20 20 20 20 20 20 20 20 20 mplete-effective-date...........
294c0 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
294e0 20 32 29 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 33 29 20 28 6d 61 74 63 68 2d 73 74 72 69 .2).(match-string.3).(match-stri
29500 6e 67 20 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 ng.4)...........................
29520 20 20 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 35 29 20 28 6d 61 74 63 68 2d 73 74 72 69 6e ...(match-string.5).(match-strin
29540 67 20 36 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 3b 3b 20 50 61 79 65 65 73 0a 20 20 20 g.6))))...........(;;.Payees....
29560 20 20 20 20 20 20 20 20 28 65 71 20 27 74 72 61 6e 73 61 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 ........(eq.'transaction........
29580 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.........
295a0 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 31 20 28 6c 65 64 67 65 72 2d 74 68 69 6e 67 2d 61 74 .........(prog1.(ledger-thing-at
295c0 2d 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 -point)....................(setq
295e0 20 73 74 61 72 74 20 28 70 6f 69 6e 74 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 .start.(point)))))............(s
29600 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 6c etq.collection.#'ledger-payees-l
29620 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 20 ist))...........(;;.Accounts....
29640 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.........
29660 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 20 .....(back-to-indentation)......
29680 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 22 ........(skip-chars-forward."(["
296a0 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 20 ).;;.for.virtual.accounts.......
296c0 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 20 .......(setq.start.(point)))....
296e0 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 76 ........(setq.delete-suffix.(sav
29700 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 20 e-excursion.....................
29720 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 61 .............(when.(search-forwa
29740 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 72 rd-regexp.(rx.(or.eol.(or.?\t.(r
29760 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 69 epeat.2.space)))).(line-end-posi
29780 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 20 tion).t)........................
297a0 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 20 ............(-.(match-beginning.
297c0 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 69 0).end)))..................reali
297e0 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 6c gn-after.t..................coll
29800 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 74 ection.(if.ledger-complete-in-st
29820 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 20 eps.............................
29840 20 20 20 20 23 27 6c 65 64 67 65 72 2d 63 6f 6d 70 6c 65 74 65 2d 61 63 63 6f 75 6e 74 2d 6e 65 ....#'ledger-complete-account-ne
29860 78 74 2d 73 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 xt-steps........................
29880 20 20 20 20 20 20 20 23 27 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 6c 69 73 74 29 29 29 .......#'ledger-accounts-list)))
298a0 29 0a 20 20 20 20 28 77 68 65 6e 20 63 6f 6c 6c 65 63 74 69 6f 6e 0a 20 20 20 20 20 20 28 6c 65 ).....(when.collection.......(le
298c0 74 20 28 28 70 72 65 66 69 78 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d t.((prefix.(buffer-substring-no-
298e0 70 72 6f 70 65 72 74 69 65 73 20 73 74 61 72 74 20 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 properties.start.end))).........
29900 28 6c 69 73 74 20 73 74 61 72 74 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 (list.start.end...............(i
29920 66 20 28 66 75 6e 63 74 69 6f 6e 70 20 63 6f 6c 6c 65 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 f.(functionp.collection)........
29940 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6d 70 6c 65 74 69 6f 6e 2d 74 61 62 6c 65 2d 77 69 74 ...........(completion-table-wit
29960 68 2d 63 61 63 68 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 h-cache....................(lamb
29980 64 61 20 28 5f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d da.(_)......................(cl-
299a0 72 65 6d 6f 76 65 2d 69 66 20 28 61 70 70 6c 79 2d 70 61 72 74 69 61 6c 6c 79 20 27 73 74 72 69 remove-if.(apply-partially.'stri
299c0 6e 67 3d 20 70 72 65 66 69 78 29 20 28 66 75 6e 63 61 6c 6c 20 63 6f 6c 6c 65 63 74 69 6f 6e 29 ng=.prefix).(funcall.collection)
299e0 29 29 29 0a 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 6e 29 0a ))).................collection).
29a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 65 78 69 74 2d 66 75 6e 63 74 69 6f 6e 20 28 6c 61 ..............:exit-function.(la
29a20 6d 62 64 61 20 28 26 72 65 73 74 20 5f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 mbda.(&rest._)..................
29a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 64 65 6c 65 74 65 2d 73 75 66 66 69 ..............(when.delete-suffi
29a60 78 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 x...............................
29a80 20 20 20 28 64 65 6c 65 74 65 2d 63 68 61 72 20 64 65 6c 65 74 65 2d 73 75 66 66 69 78 29 29 0a ...(delete-char.delete-suffix)).
29aa0 20 20 20 20 20 20 20 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 ...............................(
29ac0 77 68 65 6e 20 28 61 6e 64 20 72 65 61 6c 69 67 6e 2d 61 66 74 65 72 20 6c 65 64 67 65 72 2d 70 when.(and.realign-after.ledger-p
29ae0 6f 73 74 2d 61 75 74 6f 2d 61 6c 69 67 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ost-auto-align).................
29b00 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 70 6f 73 74 2d 61 6c .................(ledger-post-al
29b20 69 67 6e 2d 70 6f 73 74 69 6e 67 73 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 ign-postings.(line-beginning-pos
29b40 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 29 29 29 29 29 29 ition).(line-end-position)))))))
29b60 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 74 72 69 6d 2d 74 72 61 69 6c 69 6e 67 2d ))..(defun.ledger-trim-trailing-
29b80 77 68 69 74 65 73 70 61 63 65 20 28 73 74 72 29 0a 20 20 28 72 65 70 6c 61 63 65 2d 72 65 67 65 whitespace.(str)...(replace-rege
29ba0 78 70 2d 69 6e 2d 73 74 72 69 6e 67 20 22 5b 20 5c 74 5d 2a 24 22 20 22 22 20 73 74 72 29 29 0a xp-in-string."[.\t]*$"."".str)).
29bc0 0a 28 64 65 66 75 6e 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 .(defun.ledger-fully-complete-xa
29be0 63 74 20 28 29 0a 20 20 22 43 6f 6d 70 6c 65 74 65 73 20 61 20 74 72 61 6e 73 61 63 74 69 6f 6e ct.()..."Completes.a.transaction
29c00 20 69 66 20 74 68 65 72 65 20 69 73 20 61 6e 6f 74 68 65 72 20 6d 61 74 63 68 69 6e 67 20 70 61 .if.there.is.another.matching.pa
29c20 79 65 65 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 2e 0a 0a 49 6e 74 65 72 61 63 74 69 76 65 6c yee.in.the.buffer...Interactivel
29c40 79 2c 20 69 66 20 70 6f 69 6e 74 20 69 73 20 61 66 74 65 72 20 61 20 70 61 79 65 65 2c 20 63 6f y,.if.point.is.after.a.payee,.co
29c60 6d 70 6c 65 74 65 20 74 68 65 0a 74 72 61 6e 73 61 63 74 69 6f 6e 20 77 69 74 68 20 74 68 65 20 mplete.the.transaction.with.the.
29c80 64 65 74 61 69 6c 73 20 66 72 6f 6d 20 74 68 65 20 6c 61 73 74 20 74 72 61 6e 73 61 63 74 69 6f details.from.the.last.transactio
29ca0 6e 20 74 6f 20 74 68 61 74 0a 70 61 79 65 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 n.to.that.payee."...(interactive
29cc0 29 0a 20 20 28 6c 65 74 2a 20 28 28 6e 61 6d 65 20 28 6c 65 64 67 65 72 2d 74 72 69 6d 2d 74 72 )...(let*.((name.(ledger-trim-tr
29ce0 61 69 6c 69 6e 67 2d 77 68 69 74 65 73 70 61 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ailing-whitespace...............
29d00 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 ..(buffer-substring.............
29d20 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 20 20 20 .....(save-excursion............
29d40 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 71 20 28 6c 65 64 67 65 72 2d 74 68 69 6e ........(unless.(eq.(ledger-thin
29d60 67 2d 61 74 2d 70 6f 69 6e 74 29 20 27 74 72 61 6e 73 61 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 g-at-point).'transaction).......
29d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 43 61 6e 6e ...............(user-error."Cann
29da0 6f 74 20 66 75 6c 6c 79 20 63 6f 6d 70 6c 65 74 65 20 78 61 63 74 20 68 65 72 65 22 29 29 0a 20 ot.fully.complete.xact.here"))..
29dc0 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 0a 20 20 20 20 20 ..................(point))......
29de0 20 20 20 20 20 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 ............(point))))..........
29e00 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 20 20 20 78 61 63 (rest-of-name.name)..........xac
29e20 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 20 20 20 20 28 77 ts).....(save-excursion.......(w
29e40 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 65 72 2d 74 68 69 hen.(eq.'transaction.(ledger-thi
29e60 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 65 74 65 2d 72 65 ng-at-point)).........(delete-re
29e80 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 6d 65 29 20 28 70 gion.(point).(+.(length.name).(p
29ea0 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 62 61 63 6b 77 61 oint))).........;;.Search.backwa
29ec0 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 20 20 20 20 20 20 rd.for.a.matching.payee.........
29ee0 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 20 20 20 20 20 20 (when.(re-search-backward.......
29f00 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 2d 5d 2b 5c 5c 28 .........(concat."^[0-9/.=-]+\\(
29f20 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 5c 29 3f 5c 5c 73 \\s-+\\*\\)?\\(\\s-+(.*?)\\)?\\s
29f40 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 20 20 20 20 20 20 -+\\(.*"........................
29f60 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 22 29 0a 20 20 20 (regexp-quote.name).".*\\)")....
29f80 20 20 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 28 73 65 ............nil.t)...........(se
29fa0 74 71 20 72 65 73 74 2d 6f 66 2d 6e 61 6d 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 33 29 tq.rest-of-name.(match-string.3)
29fc0 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 53 74 61 72 74 20 63 6f 70 79 69 6e 67 20 74 68 65 )...........;;.Start.copying.the
29fe0 20 70 6f 73 74 69 6e 67 73 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e .postings...........(forward-lin
2a000 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 78 61 63 74 73 20 28 62 75 66 66 65 72 e)...........(setq.xacts.(buffer
2a020 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 6f 69 6e 74 29 -substring-no-properties.(point)
2a040 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 29 29 .(ledger-navigate-end-of-xact)))
2a060 29 29 29 0a 20 20 20 20 3b 3b 20 49 6e 73 65 72 74 20 72 65 73 74 2d 6f 66 2d 6e 61 6d 65 20 61 ))).....;;.Insert.rest-of-name.a
2a080 6e 64 20 74 68 65 20 70 6f 73 74 69 6e 67 73 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 nd.the.postings.....(save-excurs
2a0a0 69 6f 6e 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 72 65 73 74 2d 6f 66 2d 6e 61 6d 65 20 3f ion.......(insert.rest-of-name.?
2a0c0 5c 6e 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 78 61 63 74 73 29 0a 20 20 20 20 20 20 28 \n).......(insert.xacts).......(
2a0e0 75 6e 6c 65 73 73 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 2d 70 20 22 5c 6e 5c 6e 22 29 0a 20 20 20 unless.(looking-at-p."\n\n")....
2a100 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 29 29 0a 20 20 20 20 28 66 6f 72 77 61 72 .....(insert."\n"))).....(forwar
2a120 64 2d 6c 69 6e 65 29 0a 20 20 20 20 28 65 6e 64 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 3b 3b d-line).....(end-of-line).....;;
2a140 20 4d 6f 76 65 20 74 6f 20 61 6d 6f 75 6e 74 20 6f 6e 20 66 69 72 73 74 20 70 6f 73 74 69 6e 67 .Move.to.amount.on.first.posting
2a160 20 6c 69 6e 65 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 .line.....(when.(re-search-backw
2a180 61 72 64 20 22 5c 74 5c 5c 7c 20 5b 20 5c 74 5d 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 28 ard."\t\\|.[.\t]".nil.t).......(
2a1a0 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 0a 28 70 72 goto-char.(match-end.0)))))..(pr
2a1c0 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 20 6c 65 64 ovide.'ledger-complete)..;;;.led
2a1e0 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 00 00 00 00 ger-complete.el.ends.here.......
2a200 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 36 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240416.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 31 00 20 30 00 00 00 0206512.00000000000.016161..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 31 36 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240416.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 34 36 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 36 35 32 00 20 30 00 00 00 0070464.00000000000.016652..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 0a 20 20 20 20 20 20 20 20 20 20 20 .(ledger-format-date............
3ff00 20 20 20 20 20 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
3ff20 68 20 32 20 78 61 63 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 h.2.xact).......................
3ff40 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 6e 63 69 ..................ledger-reconci
3ff60 6c 65 2d 64 65 66 61 75 6c 74 2d 64 61 74 65 2d 66 6f 72 6d 61 74 29 20 3b 20 64 61 74 65 0a 20 le-default-date-format).;.date..
3ff80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3ffa0 20 20 20 20 20 20 28 69 66 20 28 6e 74 68 20 33 20 78 61 63 74 29 20 28 6e 74 68 20 33 20 78 61 ......(if.(nth.3.xact).(nth.3.xa
3ffc0 63 74 29 20 22 22 29 20 3b 20 63 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ct)."").;.code..................
3ffe0 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 20 70 6f 73 ......................(nth.3.pos
40000 74 69 6e 67 29 20 20 3b 20 73 74 61 74 75 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ting)..;.status.................
40020 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 72 .......................(ledger-r
40040 65 63 6f 6e 63 69 6c 65 2d 74 72 75 6e 63 61 74 65 2d 72 69 67 68 74 0a 20 20 20 20 20 20 20 20 econcile-truncate-right.........
40060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
40080 28 6e 74 68 20 34 20 78 61 63 74 29 20 20 3b 20 70 61 79 65 65 0a 20 20 20 20 20 20 20 20 20 20 (nth.4.xact)..;.payee...........
400a0 20 20 20 20 20 20 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 ..............................le
400c0 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 62 75 66 66 65 72 2d 70 61 79 65 65 2d 6d 61 78 2d dger-reconcile-buffer-payee-max-
400e0 63 68 61 72 73 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 chars)..........................
40100 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 2d ..............(ledger-reconcile-
40120 74 72 75 6e 63 61 74 65 2d 6c 65 66 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 truncate-left...................
40140 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 31 20 70 6f 73 ......................(nth.1.pos
40160 74 69 6e 67 29 20 20 3b 20 61 63 63 6f 75 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ting)..;.account................
40180 20 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 .........................ledger-
401a0 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 61 78 2d 63 68 61 reconcile-buffer-account-max-cha
401c0 72 73 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 rs).............................
401e0 20 20 20 20 20 20 20 20 20 20 20 28 6e 74 68 20 32 20 70 6f 73 74 69 6e 67 29 29 29 29 29 20 20 ...........(nth.2.posting)))))..
40200 3b 20 61 6d 6f 75 6e 74 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 64 6f 2d 72 65 63 6f 6e ;.amount..(defun.ledger-do-recon
40220 63 69 6c 65 20 28 26 6f 70 74 69 6f 6e 61 6c 20 73 6f 72 74 29 0a 20 20 22 53 4f 52 54 20 74 68 cile.(&optional.sort)..."SORT.th
40240 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 69 6e 20 74 68 65 20 e.uncleared.transactions.in.the.
40260 61 63 63 6f 75 6e 74 2e 0a 54 68 65 20 73 6f 72 74 65 64 20 72 65 73 75 6c 74 73 20 61 72 65 20 account..The.sorted.results.are.
40280 64 69 73 70 6c 61 79 65 64 20 69 6e 20 69 6e 20 74 68 65 20 2a 52 65 63 6f 6e 63 69 6c 65 2a 20 displayed.in.in.the.*Reconcile*.
402a0 62 75 66 66 65 72 2e 0a 52 65 74 75 72 6e 20 61 20 63 6f 75 6e 74 20 6f 66 20 74 68 65 20 75 6e buffer..Return.a.count.of.the.un
402c0 63 6c 65 61 72 65 64 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 2e 22 0a 20 20 28 6c 65 74 2a 20 28 cleared.transactions."...(let*.(
402e0 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 75 66 (buf.ledger-reconcile-ledger-buf
40300 29 0a 20 20 20 20 20 20 20 20 20 28 61 63 63 6f 75 6e 74 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e )..........(account.ledger-recon
40320 63 69 6c 65 2d 61 63 63 6f 75 6e 74 29 0a 20 20 20 20 20 20 20 20 20 28 73 6f 72 74 2d 62 79 20 cile-account)..........(sort-by.
40340 28 69 66 20 73 6f 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 73 (if.sort.......................s
40360 6f 72 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 28 64 61 74 65 29 22 ort....................."(date)"
40380 29 29 0a 20 20 20 20 20 20 20 20 20 28 78 61 63 74 73 0a 20 20 20 20 20 20 20 20 20 20 28 77 69 ))..........(xacts...........(wi
403a0 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 20 28 6c 65 64 67 th-temp-buffer.............(ledg
403c0 65 72 2d 65 78 65 63 2d 6c 65 64 67 65 72 20 62 75 66 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 er-exec-ledger.buf.(current-buff
403e0 65 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 20 20 20 20 20 20 er).............................
40400 20 20 20 20 22 2d 2d 75 6e 63 6c 65 61 72 65 64 22 20 22 2d 2d 72 65 61 6c 22 20 22 65 6d 61 63 ...."--uncleared"."--real"."emac
40420 73 22 20 22 2d 2d 73 6f 72 74 22 20 73 6f 72 74 2d 62 79 20 61 63 63 6f 75 6e 74 29 0a 20 20 20 s"."--sort".sort-by.account)....
40440 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))
40460 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 6e 6f 74 20 28 65 6f .............(when.(and.(not.(eo
40480 62 70 29 29 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 28 22 29 29 0a 20 20 20 20 20 20 20 20 20 bp)).(looking-at."("))..........
404a0 20 20 20 20 20 28 72 65 61 64 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 29 29 0a .....(read.(current-buffer))))).
404c0 20 20 20 20 20 20 20 20 20 28 66 6d 74 20 28 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d .........(fmt.(ledger-reconcile-
404e0 63 6f 6d 70 69 6c 65 2d 66 6f 72 6d 61 74 2d 73 74 72 69 6e 67 20 6c 65 64 67 65 72 2d 72 65 63 compile-format-string.ledger-rec
40500 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 29 29 29 0a 20 20 20 oncile-buffer-line-format)))....
40520 20 28 69 66 20 28 6e 75 6c 6c 20 78 61 63 74 73 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 .(if.(null.xacts).........(inser
40540 74 20 28 63 6f 6e 63 61 74 20 22 54 68 65 72 65 20 61 72 65 20 6e 6f 20 75 6e 63 6c 65 61 72 65 t.(concat."There.are.no.uncleare
40560 64 20 65 6e 74 72 69 65 73 20 66 6f 72 20 22 20 61 63 63 6f 75 6e 74 29 29 0a 20 20 20 20 20 20 d.entries.for.".account)).......
40580 28 69 66 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 (if.ledger-reconcile-buffer-head
405a0 65 72 0a 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 6c 65 64 er...........(insert.(format.led
405c0 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 20 61 63 63 6f ger-reconcile-buffer-header.acco
405e0 75 6e 74 29 29 29 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 78 61 63 74 20 78 61 63 74 73 unt))).......(dolist.(xact.xacts
40600 29 0a 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 66 6f 72 6d ).........(ledger-reconcile-form
40620 61 74 2d 78 61 63 74 20 78 61 63 74 20 66 6d 74 29 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 at-xact.xact.fmt)).......(goto-c
40640 68 61 72 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 63 har.(point-max)).......(delete-c
40660 68 61 72 20 2d 31 29 29 20 3b 67 65 74 73 20 72 69 64 20 6f 66 20 74 68 65 20 65 78 74 72 61 20 har.-1)).;gets.rid.of.the.extra.
40680 6c 69 6e 65 20 66 65 65 64 20 61 74 20 74 68 65 20 62 6f 74 74 6f 6d 20 6f 66 20 74 68 65 20 6c line.feed.at.the.bottom.of.the.l
406a0 69 73 74 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 ist.....(goto-char.(point-min)).
406c0 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 69 6c 29 0a ....(set-buffer-modified-p.nil).
406e0 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 20 74 29 0a 0a 20 ....(setq.buffer-read-only.t)...
40700 20 20 20 28 6c 65 6e 67 74 68 20 78 61 63 74 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 ...(length.xacts)))..(defun.ledg
40720 65 72 2d 72 65 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 er-reconcile-ensure-xacts-visibl
40740 65 20 28 29 0a 20 20 22 45 6e 73 75 72 65 20 74 68 65 20 6c 61 73 74 20 6f 66 20 74 68 65 20 76 e.()..."Ensure.the.last.of.the.v
40760 69 73 69 62 6c 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 69 6e 20 74 68 65 20 6c 65 64 67 65 isible.transactions.in.the.ledge
40780 72 20 62 75 66 66 65 72 20 69 73 20 76 69 73 69 62 6c 65 2e 0a 54 68 69 73 20 69 73 20 61 63 68 r.buffer.is.visible..This.is.ach
407a0 69 65 76 65 64 20 62 79 20 70 6c 61 63 69 6e 67 20 74 68 61 74 20 74 72 61 6e 73 61 63 74 69 6f ieved.by.placing.that.transactio
407c0 6e 20 61 74 20 74 68 65 20 62 6f 74 74 6f 6d 20 6f 66 20 74 68 65 20 6d 61 69 6e 20 77 69 6e 64 n.at.the.bottom.of.the.main.wind
407e0 6f 77 2e 0a 54 68 65 20 6b 65 79 20 74 6f 20 74 68 69 73 20 69 73 20 74 6f 20 65 6e 73 75 72 65 ow..The.key.to.this.is.to.ensure
40800 20 74 68 65 20 77 69 6e 64 6f 77 20 69 73 20 73 65 6c 65 63 74 65 64 20 77 68 65 6e 20 74 68 65 .the.window.is.selected.when.the
40820 20 62 75 66 66 65 72 20 70 6f 69 6e 74 20 69 73 0a 6d 6f 76 65 64 20 61 6e 64 20 72 65 63 65 6e .buffer.point.is.moved.and.recen
40840 74 65 72 65 64 2e 20 20 49 66 20 74 68 65 79 20 61 72 65 6e 27 74 20 73 74 72 61 6e 67 65 20 74 tered...If.they.aren't.strange.t
40860 68 69 6e 67 73 20 68 61 70 70 65 6e 2e 22 0a 20 20 28 6c 65 74 20 28 28 72 65 63 6f 6e 63 69 6c hings.happen."...(let.((reconcil
40880 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 28 67 65 74 e-window.(get-buffer-window.(get
408a0 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 2d -buffer.ledger-reconcile-buffer-
408c0 6e 61 6d 65 29 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 72 65 63 6f 6e 63 69 6c 65 2d 77 69 6e name)))).....(when.reconcile-win
408e0 64 6f 77 0a 20 20 20 20 20 20 28 66 69 74 2d 77 69 6e 64 6f 77 2d 74 6f 2d 62 75 66 66 65 72 20 dow.......(fit-window-to-buffer.
40900 72 65 63 6f 6e 63 69 6c 65 2d 77 69 6e 64 6f 77 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 reconcile-window).......(with-cu
40920 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 63 69 6c 65 2d 6c 65 rrent-buffer.ledger-reconcile-le
40940 64 67 65 72 2d 62 75 66 0a 20 20 20 20 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 6b 69 6c 6c dger-buf.........(add-hook.'kill
40960 2d 62 75 66 66 65 72 2d 68 6f 6f 6b 20 27 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 71 -buffer-hook.'ledger-reconcile-q
40980 75 69 74 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 67 65 74 2d 62 75 66 66 uit.nil.t).........(if.(get-buff
409a0 65 72 2d 77 69 6e 64 6f 77 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 6c 65 64 67 65 er-window.ledger-reconcile-ledge
409c0 72 2d 62 75 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 6c 65 63 74 2d 77 69 6e 64 6f r-buf).............(select-windo
409e0 77 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 63 6f w.(get-buffer-window.ledger-reco
40a00 6e 63 69 6c 65 2d 6c 65 64 67 65 72 2d 62 75 66 29 29 29 0a 20 20 20 20 20 20 20 20 28 72 65 63 ncile-ledger-buf))).........(rec
40a20 65 6e 74 65 72 29 29 0a 20 20 20 20 20 20 28 73 65 6c 65 63 74 2d 77 69 6e 64 6f 77 20 72 65 63 enter)).......(select-window.rec
40a40 6f 6e 63 69 6c 65 2d 77 69 6e 64 6f 77 29 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 63 oncile-window).......(ledger-rec
40a60 6f 6e 63 69 6c 65 2d 76 69 73 69 74 20 74 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 oncile-visit.t)).....(with-curre
40a80 6e 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 6c 65 64 67 65 nt-buffer.ledger-reconcile-ledge
40aa0 72 2d 62 75 66 0a 20 20 20 20 20 20 28 77 68 65 6e 20 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d 6d r-buf.......(when.ledger-occur-m
40ac0 6f 64 65 0a 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6f 63 63 75 72 2d 72 65 66 72 65 73 ode.........(ledger-occur-refres
40ae0 68 29 29 29 0a 20 20 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 70 6f 73 74 2d 63 6f 6d 6d 61 6e 64 h))).....(add-hook.'post-command
40b00 2d 68 6f 6f 6b 20 27 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 -hook.'ledger-reconcile-track-xa
40b20 63 74 20 6e 69 6c 20 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e ct.nil.t)))..(defun.ledger-recon
40b40 63 69 6c 65 2d 74 72 61 63 6b 2d 78 61 63 74 20 28 29 0a 20 20 22 52 65 63 65 6e 74 65 72 20 74 cile-track-xact.()..."Recenter.t
40b60 68 65 20 6c 65 64 67 65 72 20 62 75 66 66 65 72 20 6f 6e 20 74 68 65 20 74 72 61 6e 73 61 63 74 he.ledger.buffer.on.the.transact
40b80 69 6f 6e 20 61 74 20 70 6f 69 6e 74 20 69 6e 20 74 68 65 20 72 65 63 6f 6e 63 69 6c 65 20 62 75 ion.at.point.in.the.reconcile.bu
40ba0 66 66 65 72 2e 22 0a 20 20 28 69 66 20 28 61 6e 64 20 6c 65 64 67 65 72 2d 62 75 66 66 65 72 2d ffer."...(if.(and.ledger-buffer-
40bc0 74 72 61 63 6b 73 2d 72 65 63 6f 6e 63 69 6c 65 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 tracks-reconcile-buffer.........
40be0 20 20 20 28 6d 65 6d 62 65 72 20 74 68 69 73 2d 63 6f 6d 6d 61 6e 64 20 28 6c 69 73 74 20 27 6e ...(member.this-command.(list.'n
40c00 65 78 74 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 20 20 ext-line........................
40c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 70 72 65 76 69 6f 75 73 2d 6c 69 6e 65 0a 20 20 ...............'previous-line...
40c40 20 20 20 20 20 20 20 20 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 27 6d 6f 75 73 65 2d 73 65 74 2d 70 6f 69 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 ....'mouse-set-point............
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 27 6c 65 64 67 ...........................'ledg
40ca0 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 74 6f 67 67 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 er-reconcile-toggle.............
40cc0 20 20 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 65 6e 64 2d 6f ..........................'end-o
40ce0 66 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 f-buffer........................
40d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 62 75 66 ...............'beginning-of-buf
40d20 66 65 72 29 29 29 0a 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 fer))).......(save-excursion....
40d40 20 20 20 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 .....(ledger-reconcile-visit.t))
40d60 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 6f 70 65 6e ))..(defun.ledger-reconcile-open
40d80 2d 77 69 6e 64 6f 77 73 20 28 62 75 66 20 72 62 75 66 29 0a 20 20 22 45 6e 73 75 72 65 20 74 68 -windows.(buf.rbuf)..."Ensure.th
40da0 61 74 20 74 68 65 20 6c 65 64 67 65 72 20 62 75 66 66 65 72 20 42 55 46 20 69 73 20 73 70 6c 69 at.the.ledger.buffer.BUF.is.spli
40dc0 74 20 62 79 20 52 42 55 46 2e 22 0a 20 20 28 69 66 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 t.by.RBUF."...(if.ledger-reconci
40de0 6c 65 2d 66 6f 72 63 65 2d 77 69 6e 64 6f 77 2d 62 6f 74 74 6f 6d 0a 20 20 20 20 20 20 3b 3b 63 le-force-window-bottom.......;;c
40e00 72 65 61 74 65 20 74 68 65 20 2a 52 65 63 6f 6e 63 69 6c 65 2a 20 77 69 6e 64 6f 77 20 64 69 72 reate.the.*Reconcile*.window.dir
40e20 65 63 74 6c 79 20 62 65 6c 6f 77 20 74 68 65 20 6c 65 64 67 65 72 20 62 75 66 66 65 72 2e 0a 20 ectly.below.the.ledger.buffer...
40e40 20 20 20 20 20 28 73 65 74 2d 77 69 6e 64 6f 77 2d 62 75 66 66 65 72 20 28 73 70 6c 69 74 2d 77 .....(set-window-buffer.(split-w
40e60 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 62 75 66 29 20 6e 69 indow.(get-buffer-window.buf).ni
40e80 6c 20 6e 69 6c 29 20 72 62 75 66 29 0a 20 20 20 20 28 70 6f 70 2d 74 6f 2d 62 75 66 66 65 72 20 l.nil).rbuf).....(pop-to-buffer.
40ea0 72 62 75 66 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 rbuf)))..(defun.ledger-reconcile
40ec0 2d 63 68 65 63 6b 2d 76 61 6c 69 64 2d 61 63 63 6f 75 6e 74 20 28 61 63 63 6f 75 6e 74 29 0a 20 -check-valid-account.(account)..
40ee0 20 22 43 68 65 63 6b 20 74 6f 20 73 65 65 20 69 66 20 41 43 43 4f 55 4e 54 20 65 78 69 73 74 73 ."Check.to.see.if.ACCOUNT.exists
40f00 20 69 6e 20 74 68 65 20 6c 65 64 67 65 72 20 66 69 6c 65 2e 22 0a 20 20 28 69 66 20 28 3e 20 28 .in.the.ledger.file."...(if.(>.(
40f20 6c 65 6e 67 74 68 20 61 63 63 6f 75 6e 74 29 20 30 29 0a 20 20 20 20 20 20 28 73 61 76 65 2d 65 length.account).0).......(save-e
40f40 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 xcursion.........(goto-char.(poi
40f60 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 nt-min)).........(search-forward
40f80 20 61 63 63 6f 75 6e 74 20 6e 69 6c 20 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 .account.nil.t))))..(defun.ledge
40fa0 72 2d 72 65 63 6f 6e 63 69 6c 65 20 28 26 6f 70 74 69 6f 6e 61 6c 20 61 63 63 6f 75 6e 74 20 74 r-reconcile.(&optional.account.t
40fc0 61 72 67 65 74 29 0a 20 20 22 53 74 61 72 74 20 72 65 63 6f 6e 63 69 6c 69 6e 67 2c 20 70 72 6f arget)..."Start.reconciling,.pro
40fe0 6d 70 74 20 66 6f 72 20 41 43 43 4f 55 4e 54 2e 0a 0a 49 66 20 54 41 52 47 45 54 20 69 73 20 6e mpt.for.ACCOUNT...If.TARGET.is.n
41000 6f 6e 2d 6e 69 6c 2c 20 69 74 20 69 73 20 75 73 65 64 20 61 73 20 74 68 65 20 69 6e 69 74 69 61 on-nil,.it.is.used.as.the.initia
41020 6c 20 74 61 72 67 65 74 20 66 6f 72 0a 72 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 2c 20 6f 74 68 l.target.for.reconciliation,.oth
41040 65 72 77 69 73 65 20 70 72 6f 6d 70 74 20 66 6f 72 20 54 41 52 47 45 54 2e 22 0a 20 20 28 69 6e erwise.prompt.for.TARGET."...(in
41060 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 61 63 63 6f 75 6e 74 20 28 6f 72 20 teractive)...(let.((account.(or.
41080 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
410a0 68 2d 70 72 6f 6d 70 74 20 22 41 63 63 6f 75 6e 74 20 74 6f 20 72 65 63 6f 6e 63 69 6c 65 22 29 h-prompt."Account.to.reconcile")
410c0 29 29 0a 20 20 20 20 20 20 20 20 28 62 75 66 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 )).........(buf.(current-buffer)
410e0 29 0a 20 20 20 20 20 20 20 20 28 72 62 75 66 20 28 67 65 74 2d 62 75 66 66 65 72 20 6c 65 64 67 ).........(rbuf.(get-buffer.ledg
41100 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 0a 0a 20 20 20 er-reconcile-buffer-name))).....
41120 20 28 77 68 65 6e 20 28 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 63 68 65 63 6b 2d 76 .(when.(ledger-reconcile-check-v
41140 61 6c 69 64 2d 61 63 63 6f 75 6e 74 20 61 63 63 6f 75 6e 74 29 0a 20 20 20 20 20 20 28 69 66 20 alid-account.account).......(if.
41160 72 62 75 66 20 3b 3b 20 2a 52 65 63 6f 6e 63 69 6c 65 2a 20 61 6c 72 65 61 64 79 20 65 78 69 73 rbuf.;;.*Reconcile*.already.exis
41180 74 73 0a 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 ts...........(with-current-buffe
411a0 72 20 72 62 75 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d r.rbuf.............(setq.ledger-
411c0 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 29 0a 20 20 20 20 20 reconcile-account.account)......
411e0 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6e 6f 74 20 28 65 71 20 62 75 66 20 72 62 75 66 29 29 .......(when.(not.(eq.buf.rbuf))
41200 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 73 6f ...............;;.called.from.so
41220 6d 65 20 6f 74 68 65 72 20 6c 65 64 67 65 72 2d 6d 6f 64 65 20 62 75 66 66 65 72 0a 20 20 20 20 me.other.ledger-mode.buffer.....
41240 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 2d 71 75 69 74 ..........(ledger-reconcile-quit
41260 2d 63 6c 65 61 6e 75 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 -cleanup)...............(setq.le
41280 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 62 75 66 29 29 0a dger-reconcile-ledger-buf.buf)).
412a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 67 65 74 2d 62 75 66 66 65 72 .............(unless.(get-buffer
412c0 2d 77 69 6e 64 6f 77 20 72 62 75 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 -window.rbuf)...............(led
412e0 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 6f 70 65 6e 2d 77 69 6e 64 6f 77 73 20 62 75 66 20 72 ger-reconcile-open-windows.buf.r
41300 62 75 66 29 29 29 0a 0a 20 20 20 20 20 20 20 20 3b 3b 20 6e 6f 20 72 65 63 6f 6e 63 69 6c 65 2d buf)))..........;;.no.reconcile-
41320 62 75 66 66 65 72 2c 20 73 74 61 72 74 69 6e 67 20 66 72 6f 6d 20 73 63 72 61 74 63 68 2e 0a 0a buffer,.starting.from.scratch...
41340 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 73 65 ........(with-current-buffer.(se
41360 74 71 20 72 62 75 66 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 tq.rbuf.........................
41380 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 6c 65 ...........(get-buffer-create.le
413a0 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 0a 20 20 20 dger-reconcile-buffer-name))....
413c0 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 77 69 .......(ledger-reconcile-open-wi
413e0 6e 64 6f 77 73 20 62 75 66 20 72 62 75 66 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 ndows.buf.rbuf)...........(ledge
41400 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 r-reconcile-mode)...........(set
41420 71 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 20 62 75 q.ledger-reconcile-ledger-buf.bu
41440 66 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 f)...........(setq.ledger-reconc
41460 69 6c 65 2d 61 63 63 6f 75 6e 74 20 61 63 63 6f 75 6e 74 29 29 29 0a 0a 20 20 20 20 20 20 28 61 ile-account.account)))........(a
41480 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 6c 65 64 67 65 72 dd-hook.'after-save-hook.'ledger
414a0 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 61 76 65 20 6e 69 -reconcile-refresh-after-save.ni
414c0 6c 20 74 29 0a 0a 20 20 20 20 20 20 3b 3b 20 4e 61 72 72 6f 77 20 74 68 65 20 6c 65 64 67 65 72 l.t)........;;.Narrow.the.ledger
414e0 20 62 75 66 66 65 72 0a 20 20 20 20 20 20 28 69 66 20 6c 65 64 67 65 72 2d 6e 61 72 72 6f 77 2d .buffer.......(if.ledger-narrow-
41500 6f 6e 2d 72 65 63 6f 6e 63 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6f on-reconcile...........(ledger-o
41520 63 63 75 72 20 28 72 65 67 65 78 70 2d 71 75 6f 74 65 20 61 63 63 6f 75 6e 74 29 29 29 0a 0a 20 ccur.(regexp-quote.account)))...
41540 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 61 73 74 .....(setq.ledger-reconcile-last
41560 2d 62 61 6c 61 6e 63 65 2d 6d 65 73 73 61 67 65 20 6e 69 6c 29 0a 20 20 20 20 20 20 28 73 65 74 -balance-message.nil).......(set
41580 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 61 6c 61 6e 63 65 2d q.ledger-reconcile-last-balance-
415a0 65 71 75 61 6c 73 2d 74 61 72 67 65 74 20 6e 69 6c 29 0a 0a 20 20 20 20 20 20 28 77 69 74 68 2d equals-target.nil)........(with-
415c0 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 28 69 66 20 current-buffer.rbuf.........(if.
415e0 28 3e 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 20 30 29 (>.(ledger-reconcile-refresh).0)
41600 0a 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 2d 63 .............(ledger-reconcile-c
41620 68 61 6e 67 65 2d 74 61 72 67 65 74 20 74 61 72 67 65 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 hange-target.target)...........(
41640 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 29 29 29 0a 0a 28 64 ledger-display-balance))))))..(d
41660 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 2d 61 62 62 72 efvar.ledger-reconcile-mode-abbr
41680 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 63 6f 6e 63 69 ev-table)..(defun.ledger-reconci
416a0 6c 65 2d 63 68 61 6e 67 65 2d 74 61 72 67 65 74 20 28 26 6f 70 74 69 6f 6e 61 6c 20 74 61 72 67 le-change-target.(&optional.targ
416c0 65 74 29 0a 20 20 22 43 68 61 6e 67 65 20 74 68 65 20 54 41 52 47 45 54 20 61 6d 6f 75 6e 74 20 et)..."Change.the.TARGET.amount.
416e0 66 6f 72 20 74 68 65 20 72 65 63 6f 6e 63 69 6c 69 61 74 69 6f 6e 20 70 72 6f 63 65 73 73 2e 22 for.the.reconciliation.process."
41700 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 65 64 67 65 72 2d ...(interactive)...(setq.ledger-
41720 72 65 63 6f 6e 63 69 6c 65 2d 74 61 72 67 65 74 20 28 6f 72 20 74 61 72 67 65 74 20 28 6c 65 64 reconcile-target.(or.target.(led
41740 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 6c 65 64 67 65 72 ger-read-commodity-string.ledger
41760 2d 72 65 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 29 -reconcile-target-prompt-string)
41780 29 29 0a 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 29 0a 0a ))...(ledger-display-balance))..
417a0 28 64 65 66 6d 61 63 72 6f 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 63 68 61 6e 67 (defmacro.ledger-reconcile-chang
417c0 65 2d 73 6f 72 74 2d 6b 65 79 2d 61 6e 64 2d 72 65 66 72 65 73 68 20 28 73 6f 72 74 2d 62 79 29 e-sort-key-and-refresh.(sort-by)
417e0 0a 20 20 22 53 65 74 20 74 68 65 20 73 6f 72 74 2d 6b 65 79 20 74 6f 20 53 4f 52 54 2d 42 59 2e ..."Set.the.sort-key.to.SORT-BY.
41800 22 0a 20 20 60 28 6c 61 6d 62 64 61 20 28 29 0a 20 20 20 20 20 28 69 6e 74 65 72 61 63 74 69 76 "...`(lambda.()......(interactiv
41820 65 29 0a 0a 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 e).......(setq.ledger-reconcile-
41840 73 6f 72 74 2d 6b 65 79 20 2c 73 6f 72 74 2d 62 79 29 0a 20 20 20 20 20 28 6c 65 64 67 65 72 2d sort-key.,sort-by)......(ledger-
41860 72 65 63 6f 6e 63 69 6c 65 2d 72 65 66 72 65 73 68 29 29 29 0a 0a 28 64 65 66 76 61 72 20 6c 65 reconcile-refresh)))..(defvar.le
41880 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 28 6c 65 74 20 28 dger-reconcile-mode-map...(let.(
418a0 28 6d 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 (map.(make-sparse-keymap))).....
418c0 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 6d 22 29 20 23 27 6c 65 (define-key.map.(kbd."C-m").#'le
418e0 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 76 69 73 69 74 29 0a 20 20 20 20 28 64 65 66 69 6e dger-reconcile-visit).....(defin
41900 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 3c 72 65 74 75 72 6e 3e 22 29 20 23 27 6c 65 64 e-key.map.(kbd."<return>").#'led
41920 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 76 69 73 69 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 ger-reconcile-visit).....(define
41940 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 78 20 43 2d 73 22 29 20 23 27 6c 65 64 67 65 -key.map.(kbd."C-x.C-s").#'ledge
41960 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 73 61 76 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 r-reconcile-save).....(define-ke
41980 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 6c 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 63 6f 6e y.map.(kbd."C-l").#'ledger-recon
419a0 63 69 6c 65 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 6d 61 cile-refresh).....(define-key.ma
419c0 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 63 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 63 6f 6e p.(kbd."C-c.C-c").#'ledger-recon
419e0 63 69 6c 65 2d 66 69 6e 69 73 68 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 cile-finish).....(define-key.map
41a00 20 28 6b 62 64 20 22 53 50 43 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d .(kbd."SPC").#'ledger-reconcile-
41a20 74 6f 67 67 6c 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 toggle).....(define-key.map.(kbd
41a40 20 22 61 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 61 64 64 29 0a 20 20 ."a").#'ledger-reconcile-add)...
41a60 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 64 22 29 20 23 27 6c 65 ..(define-key.map.(kbd."d").#'le
41a80 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 64 65 6c 65 74 65 29 0a 20 20 20 20 28 64 65 66 69 dger-reconcile-delete).....(defi
41aa0 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 67 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 ne-key.map.(kbd."g").#'ledger-re
41ac0 63 6f 6e 63 69 6c 65 29 3b 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b concile);.....(define-key.map.(k
41ae0 62 64 20 22 6e 22 29 20 23 27 6e 65 78 74 2d 6c 69 6e 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 bd."n").#'next-line).....(define
41b00 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 70 22 29 20 23 27 70 72 65 76 69 6f 75 73 2d 6c 69 -key.map.(kbd."p").#'previous-li
41b20 6e 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 74 22 ne).....(define-key.map.(kbd."t"
41b40 29 20 23 27 6c 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 ).#'ledger-reconcile-change-targ
41b60 65 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 73 22 et).....(define-key.map.(kbd."s"
41b80 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 20 20 20 28 ).#'ledger-reconcile-save).....(
41ba0 64 65 66 69 6e 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 define-key.map.(kbd."q").#'ledge
41bc0 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 71 75 69 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 r-reconcile-quit).....(define-ke
41be0 79 20 6d 61 70 20 28 6b 62 64 20 22 62 22 29 20 23 27 6c 65 64 67 65 72 2d 64 69 73 70 6c 61 79 y.map.(kbd."b").#'ledger-display
41c00 2d 62 61 6c 61 6e 63 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 -balance).....(define-key.map.(k
41c20 62 64 20 22 42 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 64 69 73 70 6c bd."B").#'ledger-reconcile-displ
41c40 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 29 0a 0a 20 20 20 20 ay-balance-in-header-mode)......
41c60 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 22 29 20 (define-key.map.(kbd."C-c.C-o").
41c80 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
41ca0 79 2d 61 6e 64 2d 72 65 66 72 65 73 68 20 22 28 30 29 22 29 29 0a 0a 20 20 20 20 28 64 65 66 69 y-and-refresh."(0)"))......(defi
41cc0 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 61 22 29 20 28 6c 65 64 67 ne-key.map.(kbd."C-c.C-a").(ledg
41ce0 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 79 2d 61 6e 64 er-reconcile-change-sort-key-and
41d00 2d 72 65 66 72 65 73 68 20 22 28 61 6d 6f 75 6e 74 29 22 29 29 0a 0a 20 20 20 20 28 64 65 66 69 -refresh."(amount)"))......(defi
41d20 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 64 22 29 20 28 6c 65 64 67 ne-key.map.(kbd."C-c.C-d").(ledg
41d40 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 79 2d 61 6e 64 er-reconcile-change-sort-key-and
41d60 2d 72 65 66 72 65 73 68 20 22 28 64 61 74 65 29 22 29 29 0a 0a 20 20 20 20 28 64 65 66 69 6e 65 -refresh."(date)"))......(define
41d80 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 70 22 29 20 28 6c 65 64 67 65 72 -key.map.(kbd."C-c.C-p").(ledger
41da0 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 72 -reconcile-change-sort-key-and-r
41dc0 65 66 72 65 73 68 20 22 28 70 61 79 65 65 29 22 29 29 0a 20 20 20 20 6d 61 70 29 0a 20 20 22 4b efresh."(payee)")).....map)..."K
41de0 65 79 6d 61 70 20 66 6f 72 20 60 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 6d 6f 64 65 eymap.for.`ledger-reconcile-mode
41e00 27 2e 22 29 0a 0a 28 65 61 73 79 2d 6d 65 6e 75 2d 64 65 66 69 6e 65 20 6c 65 64 67 65 72 2d 72 '.")..(easy-menu-define.ledger-r
41e20 65 63 6f 6e 63 69 6c 65 2d 6d 6f 64 65 2d 6d 65 6e 75 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 econcile-mode-menu.ledger-reconc
41e40 69 6c 65 2d 6d 6f 64 65 2d 6d 61 70 0a 20 20 22 4c 65 64 67 65 72 20 72 65 63 6f 6e 63 69 6c 65 ile-mode-map..."Ledger.reconcile
41e60 20 6d 65 6e 75 22 0a 20 20 60 28 22 52 65 63 6f 6e 63 69 6c 65 22 0a 20 20 20 20 5b 22 53 61 76 .menu"...`("Reconcile".....["Sav
41e80 65 22 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 73 61 76 65 5d 0a 20 20 20 20 5b 22 e".ledger-reconcile-save].....["
41ea0 52 65 66 72 65 73 68 22 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 72 65 66 72 65 73 Refresh".ledger-reconcile-refres
41ec0 68 5d 0a 20 20 20 20 5b 22 46 69 6e 69 73 68 22 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c h].....["Finish".ledger-reconcil
41ee0 65 2d 66 69 6e 69 73 68 5d 0a 20 20 20 20 22 2d 2d 2d 22 0a 20 20 20 20 5b 22 52 65 63 6f 6e 63 e-finish]....."---".....["Reconc
41f00 69 6c 65 20 4e 65 77 20 41 63 63 6f 75 6e 74 22 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c ile.New.Account".ledger-reconcil
41f20 65 5d 0a 20 20 20 20 22 2d 2d 2d 22 0a 20 20 20 20 5b 22 43 68 61 6e 67 65 20 54 61 72 67 65 74 e]....."---".....["Change.Target
41f40 20 42 61 6c 61 6e 63 65 22 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 63 68 61 6e 67 .Balance".ledger-reconcile-chang
41f60 65 2d 74 61 72 67 65 74 5d 0a 20 20 20 20 5b 22 53 68 6f 77 20 43 6c 65 61 72 65 64 20 42 61 6c e-target].....["Show.Cleared.Bal
41f80 61 6e 63 65 22 20 6c 65 64 67 65 72 2d 64 69 73 70 6c 61 79 2d 62 61 6c 61 6e 63 65 5d 0a 20 20 ance".ledger-display-balance]...
41fa0 20 20 22 2d 2d 2d 22 0a 20 20 20 20 5b 22 53 6f 72 74 20 62 79 20 70 61 79 65 65 22 20 2c 28 6c .."---".....["Sort.by.payee".,(l
41fc0 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 79 2d edger-reconcile-change-sort-key-
41fe0 61 6e 64 2d 72 65 66 72 65 73 68 20 22 28 70 61 79 65 65 29 22 29 5d 0a 20 20 20 20 5b 22 53 6f and-refresh."(payee)")].....["So
42000 72 74 20 62 79 20 64 61 74 65 22 20 2c 28 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 63 rt.by.date".,(ledger-reconcile-c
42020 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 64 61 74 hange-sort-key-and-refresh."(dat
42040 65 29 22 29 5d 0a 20 20 20 20 5b 22 53 6f 72 74 20 62 79 20 61 6d 6f 75 6e 74 22 20 2c 28 6c 65 e)")].....["Sort.by.amount".,(le
42060 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 79 2d 61 dger-reconcile-change-sort-key-a
42080 6e 64 2d 72 65 66 72 65 73 68 20 22 28 61 6d 6f 75 6e 74 29 22 29 5d 0a 20 20 20 20 5b 22 53 6f nd-refresh."(amount)")].....["So
420a0 72 74 20 62 79 20 66 69 6c 65 20 6f 72 64 65 72 22 20 2c 28 6c 65 64 67 65 72 2d 72 65 63 6f 6e rt.by.file.order".,(ledger-recon
420c0 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 65 73 68 cile-change-sort-key-and-refresh
420e0 20 22 28 30 29 22 29 5d 0a 20 20 20 20 22 2d 2d 2d 22 0a 20 20 20 20 5b 22 54 6f 67 67 6c 65 20 ."(0)")]....."---".....["Toggle.
42100 45 6e 74 72 79 22 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 74 6f 67 67 6c 65 5d 0a Entry".ledger-reconcile-toggle].
42120 20 20 20 20 5b 22 41 64 64 20 45 6e 74 72 79 22 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c ....["Add.Entry".ledger-reconcil
42140 65 2d 61 64 64 5d 0a 20 20 20 20 5b 22 44 65 6c 65 74 65 20 45 6e 74 72 79 22 20 6c 65 64 67 65 e-add].....["Delete.Entry".ledge
42160 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 64 65 6c 65 74 65 5d 0a 20 20 20 20 22 2d 2d 2d 22 0a 20 20 r-reconcile-delete]....."---"...
42180 20 20 5b 22 4e 65 78 74 20 45 6e 74 72 79 22 20 6e 65 78 74 2d 6c 69 6e 65 5d 0a 20 20 20 20 5b ..["Next.Entry".next-line].....[
421a0 22 56 69 73 69 74 20 53 6f 75 72 63 65 22 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d "Visit.Source".ledger-reconcile-
421c0 76 69 73 69 74 5d 0a 20 20 20 20 5b 22 50 72 65 76 69 6f 75 73 20 45 6e 74 72 79 22 20 70 72 65 visit].....["Previous.Entry".pre
421e0 76 69 6f 75 73 2d 6c 69 6e 65 5d 0a 20 20 20 20 22 2d 2d 2d 22 0a 20 20 20 20 5b 22 51 75 69 74 vious-line]....."---".....["Quit
42200 22 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 71 75 69 74 5d 0a 20 20 20 20 29 29 0a ".ledger-reconcile-quit].....)).
42220 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 72 65 63 .(define-derived-mode.ledger-rec
42240 6f 6e 63 69 6c 65 2d 6d 6f 64 65 20 74 65 78 74 2d 6d 6f 64 65 20 22 52 65 63 6f 6e 63 69 6c 65 oncile-mode.text-mode."Reconcile
42260 22 0a 20 20 22 41 20 6d 6f 64 65 20 66 6f 72 20 72 65 63 6f 6e 63 69 6c 69 6e 67 20 6c 65 64 67 "..."A.mode.for.reconciling.ledg
42280 65 72 20 65 6e 74 72 69 65 73 2e 22 29 0a 0a 28 64 65 66 69 6e 65 2d 6d 69 6e 6f 72 2d 6d 6f 64 er.entries.")..(define-minor-mod
422a0 65 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 2d 62 61 6c 61 6e e.ledger-reconcile-display-balan
422c0 63 65 2d 69 6e 2d 68 65 61 64 65 72 2d 6d 6f 64 65 0a 20 20 22 57 68 65 6e 20 65 6e 61 62 6c 65 ce-in-header-mode..."When.enable
422e0 64 2c 20 64 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 d,.display.the.cleared-or-pendin
42300 67 20 62 61 6c 61 6e 63 65 20 69 6e 20 74 68 65 20 68 65 61 64 65 72 2e 22 0a 20 20 3a 67 72 6f g.balance.in.the.header."...:gro
42320 75 70 20 27 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 0a 20 20 28 69 66 20 6c 65 64 67 65 up.'ledger-reconcile...(if.ledge
42340 72 2d 72 65 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 r-reconcile-display-balance-in-h
42360 65 61 64 65 72 2d 6d 6f 64 65 0a 20 20 20 20 20 20 28 73 65 74 71 20 68 65 61 64 65 72 2d 6c 69 eader-mode.......(setq.header-li
42380 6e 65 2d 66 6f 72 6d 61 74 20 27 28 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 6c 61 73 ne-format.'(ledger-reconcile-las
423a0 74 2d 62 61 6c 61 6e 63 65 2d 65 71 75 61 6c 73 2d 74 61 72 67 65 74 0a 20 20 20 20 20 20 20 20 t-balance-equals-target.........
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 28 3a 70 72 6f 70 65 .........................(:prope
423e0 72 74 69 7a 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 rtize...........................
42400 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 6c 61 73 74 2d 62 61 ........ledger-reconcile-last-ba
42420 6c 61 6e 63 65 2d 6d 65 73 73 61 67 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 lance-message...................
42440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 61 63 65 20 6c 65 64 67 65 72 2d 72 65 63 6f ................face.ledger-reco
42460 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 65 74 ncile-last-balance-equals-target
42480 2d 66 61 63 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 -face)..........................
424a0 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 6c 61 73 74 2d 62 61 ........ledger-reconcile-last-ba
424c0 6c 61 6e 63 65 2d 6d 65 73 73 61 67 65 29 29 0a 20 20 20 20 28 73 65 74 71 20 68 65 61 64 65 72 lance-message)).....(setq.header
424e0 2d 6c 69 6e 65 2d 66 6f 72 6d 61 74 20 6e 69 6c 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 6c -line-format.nil)))..(provide.'l
42500 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 29 0a 0a 3b 3b 3b 20 6c 65 64 67 65 72 2d 72 65 63 edger-reconcile)..;;;.ledger-rec
42520 6f 6e 63 69 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 oncile.el.ends.here.............
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 31 36 2e 34 31 36 2f 64 69 72 00 00 00 00 ledger-mode-20240416.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 32 00 20 30 00 00 00 0001134.00000000000.013612..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 31 36 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240416.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 31 37 00 20 30 00 00 00 0033067.00000000000.016017..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 31 36 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240416.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 35 00 20 30 00 00 00 0023077.00000000000.016025..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 31 36 2e 34 31 36 2f 6c 65 64 67 65 72 2d ledger-mode-20240416.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 30 00 20 30 00 00 00 0061006.00000000000.016030..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 ................................