summaryrefslogtreecommitdiff
path: root/localrepo/ledger-mode-20240411.1435.tar
blob: 4d87f6bdc8566efd235c657b2d571ad2f60aa11d (plain)
ofshex dumpascii
0000 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 31 2e 31 34 33 35 2f 00 00 00 00 00 00 ledger-mode-20240411.1435/......
0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0060 00 00 00 00 30 30 30 30 37 35 35 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000755.0000000.0000000.0000
0080 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 31 36 37 00 20 35 00 00 00 0000000.00000000000.013167..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 31 2e 31 34 33 35 2f 6c 65 64 67 65 72 ledger-mode-20240411.1435/ledger
0220 2d 74 65 78 69 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -texi.el........................
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 37 32 33 00 20 30 00 00 00 0015320.00000000000.015723..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 31 2e 31 34 33 35 2f 6c 65 64 67 65 72 ledger-mode-20240411.1435/ledger
2020 2d 63 68 65 63 6b 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -check.el.......................
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 36 30 32 36 00 20 30 00 00 00 0012322.00000000000.016026..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 31 2e 31 34 33 35 2f 6c 65 64 67 65 72 ledger-mode-20240411.1435/ledger
3820 2d 73 63 68 65 64 75 6c 65 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -schedule.el....................
3840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3860 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
3880 30 30 33 34 37 36 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 35 35 37 00 20 30 00 00 00 0034760.00000000000.016557..0...
38a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3900 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
3920 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
3940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a00 3b 3b 3b 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2e 65 6c 20 2d 2d 2d 20 48 65 6c 70 65 ;;;.ledger-schedule.el.---.Helpe
3a20 72 20 63 6f 64 65 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 74 68 65 20 22 6c 65 64 67 65 72 22 r.code.for.use.with.the."ledger"
3a40 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 74 6f 6f 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d .command-line.tool..-*-.lexical-
3a60 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 binding:.t;.-*-..;;.Copyright.(C
3a80 29 20 32 30 31 33 20 43 72 61 69 67 20 45 61 72 6c 73 20 28 65 6e 64 65 72 77 38 38 20 61 74 20 ).2013.Craig.Earls.(enderw88.at.
3aa0 67 6d 61 69 6c 20 64 6f 74 20 63 6f 6d 29 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 gmail.dot.com)..;;.This.file.is.
3ac0 6e 6f 74 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 54 68 69 73 20 not.part.of.GNU.Emacs...;;.This.
3ae0 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 is.free.software;.you.can.redist
3b00 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 0a 3b 3b 20 75 6e ribute.it.and/or.modify.it.;;.un
3b20 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c der.the.terms.of.the.GNU.General
3b40 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a .Public.License.as.published.by.
3b60 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b ;;.the.Free.Software.Foundation;
3b80 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 32 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f .either.version.2,.or.(at.your.o
3ba0 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a ption).;;.any.later.version..;;.
3bc0 3b 3b 20 54 68 69 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f ;;.This.is.distributed.in.the.ho
3be0 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 pe.that.it.will.be.useful,.but.W
3c00 49 54 48 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 ITHOUT.;;.ANY.WARRANTY;.without.
3c20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 even.the.implied.warranty.of.MER
3c40 43 48 41 4e 54 41 42 49 4c 49 54 59 0a 3b 3b 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 CHANTABILITY.;;.or.FITNESS.FOR.A
3c60 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e .PARTICULAR.PURPOSE...See.the.GN
3c80 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 0a 3b 3b 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 U.General.Public.;;.License.for.
3ca0 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 more.details..;;.;;.You.should.h
3cc0 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 ave.received.a.copy.of.the.GNU.G
3ce0 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 eneral.Public.License.;;.along.w
3d00 69 74 68 20 47 4e 55 20 45 6d 61 63 73 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 ith.GNU.Emacs;.see.the.file.COPY
3d20 49 4e 47 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 ING...If.not,.write.to.the.;;.Fr
3d40 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 ee.Software.Foundation,.Inc.,.51
3d60 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 .Franklin.Street,.Fifth.Floor,.B
3d80 6f 73 74 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 20 55 53 41 2e 0a 0a 3b 3b oston,.;;.MA.02110-1301.USA...;;
3da0 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 6d 6f 64 75 6c 65 20 ;.Commentary:.;;.;;.This.module.
3dc0 70 72 6f 76 69 64 65 73 20 66 6f 72 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 61 64 64 69 6e provides.for.automatically.addin
3de0 67 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 74 6f 20 61 0a 3b 3b 20 6c 65 64 67 65 72 20 62 75 g.transactions.to.a.;;.ledger.bu
3e00 66 66 65 72 20 6f 6e 20 61 20 70 65 72 69 6f 64 69 63 20 62 61 73 69 73 2e 20 20 52 65 63 75 72 ffer.on.a.periodic.basis...Recur
3e20 72 65 6e 63 65 20 65 78 70 72 65 73 73 69 6f 6e 73 20 61 72 65 0a 3b 3b 20 69 6e 73 70 69 72 65 rence.expressions.are.;;.inspire
3e40 64 20 62 79 20 4d 61 72 74 69 6e 20 46 6f 77 6c 65 72 27 73 20 22 52 65 63 75 72 72 69 6e 67 20 d.by.Martin.Fowler's."Recurring.
3e60 45 76 65 6e 74 73 20 66 6f 72 20 43 61 6c 65 6e 64 61 72 73 22 2c 0a 3b 3b 20 6d 61 72 74 69 6e Events.for.Calendars",.;;.martin
3e80 66 6f 77 6c 65 72 2e 63 6f 6d 2f 61 70 73 75 70 70 2f 72 65 63 75 72 72 69 6e 67 2e 70 64 66 0a fowler.com/apsupp/recurring.pdf.
3ea0 0a 3b 3b 20 75 73 65 20 28 66 73 65 74 20 27 56 41 52 4e 41 4d 45 20 28 6d 61 63 72 6f 20 61 72 .;;.use.(fset.'VARNAME.(macro.ar
3ec0 67 73 29 29 20 74 6f 20 70 75 74 20 74 68 65 20 6d 61 63 72 6f 20 64 65 66 69 6e 69 74 69 6f 6e gs)).to.put.the.macro.definition
3ee0 20 69 6e 20 74 68 65 0a 3b 3b 20 66 75 6e 63 74 69 6f 6e 20 73 6c 6f 74 20 6f 66 20 74 68 65 20 .in.the.;;.function.slot.of.the.
3f00 73 79 6d 62 6f 6c 20 56 41 52 4e 41 4d 45 2e 20 20 54 68 65 6e 20 75 73 65 20 56 41 52 4e 41 4d symbol.VARNAME...Then.use.VARNAM
3f20 45 20 61 73 20 74 68 65 0a 3b 3b 20 66 75 6e 63 74 69 6f 6e 20 77 69 74 68 6f 75 74 20 68 61 76 E.as.the.;;.function.without.hav
3f40 65 20 74 6f 20 75 73 65 20 66 75 6e 63 61 6c 6c 2e 0a 0a 0a 28 72 65 71 75 69 72 65 20 27 6c 65 e.to.use.funcall....(require.'le
3f60 64 67 65 72 2d 69 6e 69 74 29 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 0a 0a 28 64 dger-init).(require.'cl-lib)..(d
3f80 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6c 65 64 67 65 72 2d 6d 6f 64 65 20 22 6c 65 64 eclare-function.ledger-mode."led
3fa0 67 65 72 2d 6d 6f 64 65 22 29 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 64 65 66 67 72 6f 75 70 20 ger-mode").;;;.Code:..(defgroup.
3fc0 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 20 6e 69 6c 0a 20 20 22 53 75 70 70 6f 72 74 20 66 ledger-schedule.nil..."Support.f
3fe0 6f 72 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 72 65 63 6f 6d 6d 65 6e 64 61 74 69 6f 6e 20 or.automatically.recommendation.
4000 74 72 61 6e 73 61 63 74 69 6f 6e 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 29 transactions."...:group.'ledger)
4020 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 62 75 66 ..(defcustom.ledger-schedule-buf
4040 66 65 72 2d 6e 61 6d 65 20 22 2a 4c 65 64 67 65 72 20 53 63 68 65 64 75 6c 65 2a 22 0a 20 20 22 fer-name."*Ledger.Schedule*"..."
4060 4e 61 6d 65 20 66 6f 72 20 74 68 65 20 73 63 68 65 64 75 6c 65 20 62 75 66 66 65 72 2e 22 0a 20 Name.for.the.schedule.buffer."..
4080 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d .:type.'string...:group.'ledger-
40a0 73 63 68 65 64 75 6c 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 73 63 68 schedule)..(defcustom.ledger-sch
40c0 65 64 75 6c 65 2d 6c 6f 6f 6b 2d 62 61 63 6b 77 61 72 64 20 37 0a 20 20 22 4e 75 6d 62 65 72 20 edule-look-backward.7..."Number.
40e0 6f 66 20 64 61 79 73 20 74 6f 20 6c 6f 6f 6b 20 62 61 63 6b 20 69 6e 20 74 69 6d 65 20 66 6f 72 of.days.to.look.back.in.time.for
4100 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 69 6e 74 65 67 65 72 .transactions."...:type.'integer
4120 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 29 0a 0a 28 64 65 ...:group.'ledger-schedule)..(de
4140 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 6c 6f 6f 6b 2d 66 6f 72 fcustom.ledger-schedule-look-for
4160 77 61 72 64 20 31 34 0a 20 20 22 4e 75 6d 62 65 72 20 6f 66 20 64 61 79 73 20 61 75 74 6f 20 6c ward.14..."Number.of.days.auto.l
4180 6f 6f 6b 20 66 6f 72 77 61 72 64 20 74 6f 20 72 65 63 6f 6d 6d 65 6e 64 20 74 72 61 6e 73 61 63 ook.forward.to.recommend.transac
41a0 74 69 6f 6e 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 69 6e 74 65 67 65 72 0a 20 20 3a 67 72 6f 75 tions."...:type.'integer...:grou
41c0 70 20 27 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 p.'ledger-schedule)..(defcustom.
41e0 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 66 69 6c 65 20 22 7e 2f 6c 65 64 67 65 72 2d 73 ledger-schedule-file."~/ledger-s
4200 63 68 65 64 75 6c 65 2e 6c 65 64 67 65 72 22 0a 20 20 22 46 69 6c 65 20 74 6f 20 66 69 6e 64 20 chedule.ledger"..."File.to.find.
4220 73 63 68 65 64 75 6c 65 64 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 2e 22 0a 20 20 3a 74 79 70 65 scheduled.transactions."...:type
4240 20 27 66 69 6c 65 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 .'file...:group.'ledger-schedule
4260 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 77 65 )..(defcustom.ledger-schedule-we
4280 65 6b 2d 64 61 79 73 20 27 28 28 22 4d 6f 22 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ek-days.'(("Mo".1)..............
42a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 54 75 22 20 ..........................("Tu".
42c0 32 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2)..............................
42e0 20 20 20 20 20 20 20 20 20 20 28 22 57 65 22 20 33 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..........("We".3)..............
4300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 54 68 22 20 ..........................("Th".
4320 34 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4)..............................
4340 20 20 20 20 20 20 20 20 20 20 28 22 46 72 22 20 35 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..........("Fr".5)..............
4360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 53 61 22 20 ..........................("Sa".
4380 36 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6)..............................
43a0 20 20 20 20 20 20 20 20 20 20 28 22 53 75 22 20 30 29 29 0a 20 20 22 4c 69 73 74 20 6f 66 20 77 ..........("Su".0))..."List.of.w
43c0 65 65 6b 64 61 79 20 61 62 62 72 65 76 69 61 74 69 6f 6e 73 2e 0a 54 68 65 72 65 20 6d 75 73 74 eekday.abbreviations..There.must
43e0 20 62 65 20 65 78 61 63 74 6c 79 20 73 65 76 65 6e 20 65 6e 74 72 69 65 73 20 65 61 63 68 20 77 .be.exactly.seven.entries.each.w
4400 69 74 68 20 61 20 74 77 6f 20 63 68 61 72 61 63 74 65 72 0a 61 62 62 72 65 76 69 61 74 69 6f 6e ith.a.two.character.abbreviation
4420 20 66 6f 72 20 61 20 64 61 79 20 61 6e 64 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 74 68 61 .for.a.day.and.the.number.of.tha
4440 74 20 64 61 79 20 69 6e 20 74 68 65 20 77 65 65 6b 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 61 6c t.day.in.the.week."...:type.'(al
4460 69 73 74 20 3a 76 61 6c 75 65 2d 74 79 70 65 20 28 67 72 6f 75 70 20 69 6e 74 65 67 65 72 29 29 ist.:value-type.(group.integer))
4480 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 29 0a 0a 28 64 65 ...:group.'ledger-schedule)..(de
44a0 66 73 75 62 73 74 20 6c 65 64 67 65 72 2d 62 65 74 77 65 65 6e 20 28 76 61 6c 20 6c 6f 77 20 68 fsubst.ledger-between.(val.low.h
44c0 69 67 68 29 0a 20 20 22 52 65 74 75 72 6e 20 54 52 55 45 20 69 66 20 56 41 4c 20 3e 3d 20 4c 4f igh)..."Return.TRUE.if.VAL.>=.LO
44e0 57 20 61 6e 64 20 3c 3d 20 48 49 47 48 2e 22 0a 20 20 28 64 65 63 6c 61 72 65 20 28 6f 62 73 6f W.and.<=.HIGH."...(declare.(obso
4500 6c 65 74 65 20 3c 3d 20 22 4c 65 64 67 65 72 2d 6d 6f 64 65 20 76 34 2e 30 2e 31 22 29 29 0a 20 lete.<=."Ledger-mode.v4.0.1"))..
4520 20 28 3c 3d 20 6c 6f 77 20 76 61 6c 20 68 69 67 68 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 .(<=.low.val.high))..(defun.ledg
4540 65 72 2d 73 63 68 65 64 75 6c 65 2d 64 61 79 73 2d 69 6e 2d 6d 6f 6e 74 68 20 28 6d 6f 6e 74 68 er-schedule-days-in-month.(month
4560 20 79 65 61 72 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 75 6d 62 65 72 20 6f 66 20 64 61 79 73 20 .year)..."Return.number.of.days.
4580 69 6e 20 74 68 65 20 4d 4f 4e 54 48 2c 20 4d 4f 4e 54 48 20 69 73 20 66 72 6f 6d 20 31 20 74 6f in.the.MONTH,.MONTH.is.from.1.to
45a0 20 31 32 2e 0a 49 66 20 59 45 41 52 20 69 73 20 6e 69 6c 2c 20 61 73 73 75 6d 65 20 69 74 20 69 .12..If.YEAR.is.nil,.assume.it.i
45c0 73 20 6e 6f 74 20 61 20 6c 65 61 70 20 79 65 61 72 22 0a 20 20 28 69 66 20 28 3c 3d 20 31 20 6d s.not.a.leap.year"...(if.(<=.1.m
45e0 6f 6e 74 68 20 31 32 29 0a 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 79 65 61 72 20 28 64 61 onth.12).......(if.(and.year.(da
4600 74 65 2d 6c 65 61 70 2d 79 65 61 72 2d 70 20 79 65 61 72 29 20 28 3d 20 32 20 6d 6f 6e 74 68 29 te-leap-year-p.year).(=.2.month)
4620 29 0a 20 20 20 20 20 20 20 20 20 20 32 39 0a 20 20 20 20 20 20 20 20 28 6e 74 68 20 28 31 2d 20 )...........29.........(nth.(1-.
4640 6d 6f 6e 74 68 29 20 27 28 33 31 20 32 38 20 33 31 20 33 30 20 33 31 20 33 30 20 33 31 20 33 31 month).'(31.28.31.30.31.30.31.31
4660 20 33 30 20 33 31 20 33 30 20 33 31 29 29 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 4d 6f 6e 74 .30.31.30.31))).....(error."Mont
4680 68 20 6f 75 74 20 6f 66 20 72 61 6e 67 65 2c 20 4d 4f 4e 54 48 3d 25 53 22 20 6d 6f 6e 74 68 29 h.out.of.range,.MONTH=%S".month)
46a0 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 65 6e 63 6f 64 ))..(defun.ledger-schedule-encod
46c0 65 2d 64 61 79 2d 6f 66 2d 77 65 65 6b 20 28 64 61 79 2d 73 74 72 69 6e 67 29 0a 20 20 22 52 65 e-day-of-week.(day-string)..."Re
46e0 74 75 72 6e 20 74 68 65 20 6e 75 6d 65 72 69 63 61 6c 20 64 61 79 20 6f 66 20 77 65 65 6b 20 63 turn.the.numerical.day.of.week.c
4700 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f 20 44 41 59 2d 53 54 52 49 4e 47 2e 22 0a 20 20 28 orresponding.to.DAY-STRING."...(
4720 63 61 64 72 20 28 61 73 73 6f 63 20 64 61 79 2d 73 74 72 69 6e 67 20 6c 65 64 67 65 72 2d 73 63 cadr.(assoc.day-string.ledger-sc
4740 68 65 64 75 6c 65 2d 77 65 65 6b 2d 64 61 79 73 29 29 29 0a 0a 3b 3b 20 4d 61 63 72 6f 73 20 74 hedule-week-days)))..;;.Macros.t
4760 6f 20 68 61 6e 64 6c 65 20 64 61 74 65 20 65 78 70 72 65 73 73 69 6f 6e 73 0a 0a 28 64 65 66 75 o.handle.date.expressions..(defu
4780 6e 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 63 6f 6e 73 74 72 61 69 6e 2d 64 61 79 2d n.ledger-schedule-constrain-day-
47a0 69 6e 2d 6d 6f 6e 74 68 20 28 63 6f 75 6e 74 20 64 61 79 2d 6f 66 2d 77 65 65 6b 29 0a 20 20 22 in-month.(count.day-of-week)..."
47c0 52 65 74 75 72 6e 20 61 20 66 6f 72 6d 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 54 52 55 45 20 Return.a.form.that.returns.TRUE.
47e0 66 6f 72 20 74 68 65 20 20 74 68 65 20 43 4f 55 4e 54 20 44 41 59 2d 4f 46 2d 57 45 45 4b 2e 0a for.the..the.COUNT.DAY-OF-WEEK..
4800 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 72 65 74 75 72 6e 20 74 72 75 65 20 69 66 20 64 61 74 65 For.example,.return.true.if.date
4820 20 69 73 20 74 68 65 20 33 72 64 20 54 68 75 72 73 64 61 79 20 6f 66 20 74 68 65 0a 6d 6f 6e 74 .is.the.3rd.Thursday.of.the.mont
4840 68 2e 20 20 4e 65 67 61 74 69 76 65 20 43 4f 55 4e 54 20 73 74 61 72 74 73 20 66 72 6f 6d 20 74 h...Negative.COUNT.starts.from.t
4860 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 6d 6f 6e 74 68 2e 20 28 45 51 0a 43 4f 55 4e 54 20 30 he.end.of.the.month..(EQ.COUNT.0
4880 29 20 6d 65 61 6e 73 20 45 56 45 52 59 20 64 61 79 2d 6f 66 2d 77 65 65 6b 20 28 65 67 2e 20 65 ).means.EVERY.day-of-week.(eg..e
48a0 76 65 72 79 20 53 61 74 75 72 64 61 79 29 22 0a 20 20 28 69 66 20 28 61 6e 64 20 28 3c 3d 20 2d very.Saturday)"...(if.(and.(<=.-
48c0 36 20 63 6f 75 6e 74 20 36 29 20 28 3c 3d 20 30 20 64 61 79 2d 6f 66 2d 77 65 65 6b 20 36 29 29 6.count.6).(<=.0.day-of-week.6))
48e0 0a 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 7a 65 72 6f 70 20 63 6f 75 6e 74 29 20 3b 3b 20 52 .......(cond.((zerop.count).;;.R
4900 65 74 75 72 6e 20 74 72 75 65 20 69 66 20 64 61 79 2d 6f 66 2d 77 65 65 6b 20 6d 61 74 63 68 65 eturn.true.if.day-of-week.matche
4920 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 65 71 20 28 6e 74 68 20 36 20 28 64 65 63 6f s..............`(eq.(nth.6.(deco
4940 64 65 2d 74 69 6d 65 20 64 61 74 65 29 29 20 2c 64 61 79 2d 6f 66 2d 77 65 65 6b 29 29 0a 20 20 de-time.date)).,day-of-week))...
4960 20 20 20 20 20 20 20 20 20 20 28 28 3e 20 63 6f 75 6e 74 20 30 29 20 3b 3b 20 50 6f 73 69 74 69 ..........((>.count.0).;;.Positi
4980 76 65 20 63 6f 75 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 64 65 63 ve.count..............(let.((dec
49a0 6f 64 65 64 20 28 63 6c 2d 67 65 6e 73 79 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 oded.(cl-gensym)))..............
49c0 20 20 60 28 6c 65 74 20 28 28 2c 64 65 63 6f 64 65 64 20 28 64 65 63 6f 64 65 2d 74 69 6d 65 20 ..`(let.((,decoded.(decode-time.
49e0 64 61 74 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 date)))...................(and.(
4a00 65 71 20 28 6e 74 68 20 36 20 2c 64 65 63 6f 64 65 64 29 20 2c 64 61 79 2d 6f 66 2d 77 65 65 6b eq.(nth.6.,decoded).,day-of-week
4a20 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3c 3d 20 2c 28 2a )........................(<=.,(*
4a40 20 28 31 2d 20 63 6f 75 6e 74 29 20 37 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(1-.count).7)..................
4a60 20 20 20 20 20 20 20 20 20 20 28 6e 74 68 20 33 20 2c 64 65 63 6f 64 65 64 29 0a 20 20 20 20 20 ..........(nth.3.,decoded)......
4a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 28 2a 20 63 6f 75 6e 74 20 ......................,(*.count.
4aa0 37 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 3c 20 63 6f 75 6e 74 20 30 29 7)))))).............((<.count.0)
4ac0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 64 61 79 73 2d 69 6e 2d 6d 6f 6e ..............(let.((days-in-mon
4ae0 74 68 20 28 63 6c 2d 67 65 6e 73 79 6d 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 th.(cl-gensym)).................
4b00 20 20 20 28 64 65 63 6f 64 65 64 20 28 63 6c 2d 67 65 6e 73 79 6d 29 29 29 0a 20 20 20 20 20 20 ...(decoded.(cl-gensym))).......
4b20 20 20 20 20 20 20 20 20 20 60 28 6c 65 74 2a 20 28 28 2c 64 65 63 6f 64 65 64 20 28 64 65 63 6f .........`(let*.((,decoded.(deco
4b40 64 65 2d 74 69 6d 65 20 64 61 74 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 de-time.date))..................
4b60 20 20 20 20 20 20 28 2c 64 61 79 73 2d 69 6e 2d 6d 6f 6e 74 68 20 28 6c 65 64 67 65 72 2d 73 63 ......(,days-in-month.(ledger-sc
4b80 68 65 64 75 6c 65 2d 64 61 79 73 2d 69 6e 2d 6d 6f 6e 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 hedule-days-in-month............
4ba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 74 .............................(nt
4bc0 68 20 34 20 2c 64 65 63 6f 64 65 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 h.4.,decoded)...................
4be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 74 68 20 35 20 2c 64 65 ......................(nth.5.,de
4c00 63 6f 64 65 64 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 coded))))...................(and
4c20 20 28 65 71 20 28 6e 74 68 20 36 20 2c 64 65 63 6f 64 65 64 29 20 2c 64 61 79 2d 6f 66 2d 77 65 .(eq.(nth.6.,decoded).,day-of-we
4c40 65 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3c 3d 20 28 ek)........................(<=.(
4c60 2b 20 2c 64 61 79 73 2d 69 6e 2d 6d 6f 6e 74 68 20 2c 28 2a 20 63 6f 75 6e 74 20 37 29 29 0a 20 +.,days-in-month.,(*.count.7))..
4c80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 74 68 20 33 ..........................(nth.3
4ca0 20 2c 64 65 63 6f 64 65 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .,decoded)......................
4cc0 20 20 20 20 20 20 28 2b 20 2c 64 61 79 73 2d 69 6e 2d 6d 6f 6e 74 68 20 2c 28 2a 20 28 31 2b 20 ......(+.,days-in-month.,(*.(1+.
4ce0 63 6f 75 6e 74 29 20 37 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 count).7))))))).............(t..
4d00 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 43 4f 55 4e 54 20 6f 75 74 20 6f 66 ............(error."COUNT.out.of
4d20 20 72 61 6e 67 65 2c 20 43 4f 55 4e 54 3d 25 53 22 20 63 6f 75 6e 74 29 29 29 0a 20 20 20 20 28 .range,.COUNT=%S".count))).....(
4d40 65 72 72 6f 72 20 22 49 6e 76 61 6c 69 64 20 61 72 67 75 6d 65 6e 74 20 74 6f 20 6c 65 64 67 65 error."Invalid.argument.to.ledge
4d60 72 2d 73 63 68 65 64 75 6c 65 2d 64 61 79 2d 69 6e 2d 6d 6f 6e 74 68 2d 6d 61 63 72 6f 20 25 53 r-schedule-day-in-month-macro.%S
4d80 20 25 53 22 0a 20 20 20 20 20 20 20 20 20 20 20 63 6f 75 6e 74 0a 20 20 20 20 20 20 20 20 20 20 .%S"............count...........
4da0 20 64 61 79 2d 6f 66 2d 77 65 65 6b 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 73 .day-of-week)))..(defun.ledger-s
4dc0 63 68 65 64 75 6c 65 2d 63 6f 6e 73 74 72 61 69 6e 2d 65 76 65 72 79 2d 63 6f 75 6e 74 2d 64 61 chedule-constrain-every-count-da
4de0 79 20 28 64 61 79 2d 6f 66 2d 77 65 65 6b 20 73 6b 69 70 20 73 74 61 72 74 2d 64 61 74 65 29 0a y.(day-of-week.skip.start-date).
4e00 20 20 22 52 65 74 75 72 6e 20 61 20 66 6f 72 6d 20 74 68 61 74 20 69 73 20 74 72 75 65 20 66 6f .."Return.a.form.that.is.true.fo
4e20 72 20 65 76 65 72 79 20 44 41 59 2d 4f 46 2d 57 45 45 4b 2e 0a 53 6b 69 70 73 20 53 4b 49 50 2c r.every.DAY-OF-WEEK..Skips.SKIP,
4e40 20 61 6e 64 20 73 74 61 72 74 73 20 6f 6e 20 53 54 41 52 54 2d 44 41 54 45 2e 0a 46 6f 72 20 65 .and.starts.on.START-DATE..For.e
4e60 78 61 6d 70 6c 65 20 65 76 65 72 79 20 73 65 63 6f 6e 64 20 46 72 69 64 61 79 2c 20 72 65 67 61 xample.every.second.Friday,.rega
4e80 72 64 6c 65 73 73 20 6f 66 20 6d 6f 6e 74 68 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 74 61 72 74 rdless.of.month."...(let.((start
4ea0 2d 64 61 79 20 28 6e 74 68 20 36 20 28 64 65 63 6f 64 65 2d 74 69 6d 65 20 73 74 61 72 74 2d 64 -day.(nth.6.(decode-time.start-d
4ec0 61 74 65 29 29 29 29 0a 20 20 20 20 28 69 66 20 28 65 71 20 73 74 61 72 74 2d 64 61 79 20 64 61 ate)))).....(if.(eq.start-day.da
4ee0 79 2d 6f 66 2d 77 65 65 6b 29 20 20 3b 3b 20 67 6f 6f 64 2c 20 63 61 6e 20 70 72 6f 63 65 65 64 y-of-week)..;;.good,.can.proceed
4f00 0a 20 20 20 20 20 20 20 20 60 28 7a 65 72 6f 70 20 28 6d 6f 64 20 28 2d 20 28 74 69 6d 65 2d 74 .........`(zerop.(mod.(-.(time-t
4f20 6f 2d 64 61 79 73 20 64 61 74 65 29 20 2c 28 74 69 6d 65 2d 74 6f 2d 64 61 79 73 20 73 74 61 72 o-days.date).,(time-to-days.star
4f40 74 2d 64 61 74 65 29 29 20 2c 28 2a 20 73 6b 69 70 20 37 29 29 29 0a 20 20 20 20 20 20 28 65 72 t-date)).,(*.skip.7))).......(er
4f60 72 6f 72 20 22 53 54 41 52 54 2d 44 41 54 45 20 64 61 79 20 6f 66 20 77 65 65 6b 20 64 6f 65 73 ror."START-DATE.day.of.week.does
4f80 6e 27 74 20 6d 61 74 63 68 20 44 41 59 2d 4f 46 2d 57 45 45 4b 22 29 29 29 29 0a 0a 28 64 65 66 n't.match.DAY-OF-WEEK"))))..(def
4fa0 75 6e 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 63 6f 6e 73 74 72 61 69 6e 2d 64 61 74 un.ledger-schedule-constrain-dat
4fc0 65 2d 72 61 6e 67 65 20 28 6d 6f 6e 74 68 31 20 64 61 79 31 20 6d 6f 6e 74 68 32 20 64 61 79 32 e-range.(month1.day1.month2.day2
4fe0 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 66 6f 72 6d 20 6f 66 20 44 41 54 45 20 74 68 61 74 20 )..."Return.a.form.of.DATE.that.
5000 69 73 20 74 72 75 65 20 69 66 20 44 41 54 45 20 66 61 6c 6c 73 20 62 65 74 77 65 65 6e 20 74 77 is.true.if.DATE.falls.between.tw
5020 6f 20 64 61 74 65 73 2e 0a 54 68 65 20 64 61 74 65 73 20 61 72 65 20 67 69 76 65 6e 20 62 79 20 o.dates..The.dates.are.given.by.
5040 74 68 65 20 70 61 69 72 73 20 4d 4f 4e 54 48 31 20 44 41 59 31 20 61 6e 64 20 4d 4f 4e 54 48 32 the.pairs.MONTH1.DAY1.and.MONTH2
5060 20 44 41 59 32 2e 22 0a 20 20 28 6c 65 74 20 28 28 64 65 63 6f 64 65 64 20 28 63 6c 2d 67 65 6e .DAY2."...(let.((decoded.(cl-gen
5080 73 79 6d 29 29 0a 20 20 20 20 20 20 20 20 28 74 61 72 67 65 74 2d 6d 6f 6e 74 68 20 28 63 6c 2d sym)).........(target-month.(cl-
50a0 67 65 6e 73 79 6d 29 29 0a 20 20 20 20 20 20 20 20 28 74 61 72 67 65 74 2d 64 61 79 20 28 63 6c gensym)).........(target-day.(cl
50c0 2d 67 65 6e 73 79 6d 29 29 29 0a 20 20 20 20 60 28 6c 65 74 2a 20 28 28 2c 64 65 63 6f 64 65 64 -gensym))).....`(let*.((,decoded
50e0 20 28 64 65 63 6f 64 65 2d 74 69 6d 65 20 64 61 74 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 .(decode-time.date))............
5100 20 28 2c 74 61 72 67 65 74 2d 6d 6f 6e 74 68 20 28 6e 74 68 20 34 20 64 65 63 6f 64 65 64 29 29 .(,target-month.(nth.4.decoded))
5120 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 2c 74 61 72 67 65 74 2d 64 61 79 20 28 6e 74 68 20 33 .............(,target-day.(nth.3
5140 20 64 65 63 6f 64 65 64 29 29 29 0a 20 20 20 20 20 20 20 28 61 6e 64 20 28 61 6e 64 20 28 3e 20 .decoded)))........(and.(and.(>.
5160 2c 74 61 72 67 65 74 2d 6d 6f 6e 74 68 20 2c 6d 6f 6e 74 68 31 29 0a 20 20 20 20 20 20 20 20 20 ,target-month.,month1)..........
5180 20 20 20 20 20 20 20 20 28 3c 20 2c 74 61 72 67 65 74 2d 6d 6f 6e 74 68 20 2c 6d 6f 6e 74 68 32 ........(<.,target-month.,month2
51a0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 3e 20 2c 74 61 72 67 65 74 2d 64 )).............(and.(>.,target-d
51c0 61 79 20 2c 64 61 79 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3c 20 2c 74 ay.,day1)..................(<.,t
51e0 61 72 67 65 74 2d 64 61 79 20 2c 64 61 79 32 29 29 29 29 29 29 0a 0a 0a 0a 28 64 65 66 75 6e 20 arget-day.,day2))))))....(defun.
5200 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 73 63 61 6e 2d 74 72 61 6e 73 61 63 74 69 6f 6e ledger-schedule-scan-transaction
5220 73 20 28 73 63 68 65 64 75 6c 65 2d 66 69 6c 65 29 0a 20 20 22 53 63 61 6e 20 53 43 48 45 44 55 s.(schedule-file)..."Scan.SCHEDU
5240 4c 45 2d 46 49 4c 45 20 61 6e 64 20 72 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 74 72 61 LE-FILE.and.return.a.list.of.tra
5260 6e 73 61 63 74 69 6f 6e 73 20 77 69 74 68 20 64 61 74 65 20 70 72 65 64 69 63 61 74 65 73 2e 0a nsactions.with.date.predicates..
5280 54 68 65 20 63 61 72 20 6f 66 20 65 61 63 68 20 69 74 65 6d 20 69 73 20 61 20 66 75 6e 63 74 69 The.car.of.each.item.is.a.functi
52a0 6f 6e 20 6f 66 20 64 61 74 65 20 74 68 61 74 20 72 65 74 75 72 6e 73 20 74 72 75 65 20 69 66 0a on.of.date.that.returns.true.if.
52c0 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 73 68 6f 75 6c 64 20 62 65 20 6c 6f 67 67 65 64 the.transaction.should.be.logged
52e0 20 66 6f 72 20 74 68 61 74 20 64 61 79 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 .for.that.day."...(interactive."
5300 66 46 69 6c 65 20 6e 61 6d 65 3a 20 22 29 0a 20 20 28 6c 65 74 20 28 28 78 61 63 74 2d 6c 69 73 fFile.name:.")...(let.((xact-lis
5320 74 20 28 6c 69 73 74 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 t.(list))).....(with-current-buf
5340 66 65 72 0a 20 20 20 20 20 20 20 20 28 66 69 6e 64 2d 66 69 6c 65 2d 6e 6f 73 65 6c 65 63 74 20 fer.........(find-file-noselect.
5360 73 63 68 65 64 75 6c 65 2d 66 69 6c 65 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 schedule-file).......(goto-char.
5380 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 2d 73 65 (point-min)).......(while.(re-se
53a0 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5e 5c 5c 5b 5c 5c 28 2e 2a 5c 5c 29 5c 5c 5d 20 22 20 arch-forward."^\\[\\(.*\\)\\].".
53c0 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 64 61 74 65 2d 64 65 73 63 72 nil.t).........(let.((date-descr
53e0 69 70 74 6f 72 20 22 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 74 72 61 6e 73 61 63 iptor."")...............(transac
5400 74 69 6f 6e 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 78 61 63 74 2d 73 74 tion.nil)...............(xact-st
5420 61 72 74 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 art.(match-end.0)))...........(s
5440 65 74 71 20 64 61 74 65 2d 64 65 73 63 72 69 70 74 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 etq.date-descriptor.............
5460 20 20 20 20 28 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 72 65 61 64 2d 64 65 73 63 72 69 ....(ledger-schedule-read-descri
5480 70 74 6f 72 2d 74 72 65 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 ptor-tree..................(buff
54a0 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 er-substring-no-properties......
54c0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 .............(match-beginning.0)
54e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 ...................(match-end.0)
5500 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 70 61 72 61 67 72 61 70 68 )))...........(forward-paragraph
5520 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 28 6c )...........(setq.transaction.(l
5540 69 73 74 20 64 61 74 65 2d 64 65 73 63 72 69 70 74 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 ist.date-descriptor.............
5560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 ......................(buffer-su
5580 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 bstring-no-properties...........
55a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 78 61 63 74 2d 73 74 .........................xact-st
55c0 61 72 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 art.............................
55e0 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 .......(point))))...........(set
5600 71 20 78 61 63 74 2d 6c 69 73 74 20 28 63 6f 6e 73 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 78 61 q.xact-list.(cons.transaction.xa
5620 63 74 2d 6c 69 73 74 29 29 29 29 0a 20 20 20 20 20 20 78 61 63 74 2d 6c 69 73 74 29 29 29 0a 0a ct-list)))).......xact-list)))..
5640 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 72 65 61 64 2d 64 65 73 63 (defun.ledger-schedule-read-desc
5660 72 69 70 74 6f 72 2d 74 72 65 65 20 28 64 65 73 63 72 69 70 74 6f 72 2d 73 74 72 69 6e 67 29 0a riptor-tree.(descriptor-string).
5680 20 20 22 52 65 61 64 20 44 45 53 43 52 49 50 54 4f 52 2d 53 54 52 49 4e 47 20 61 6e 64 20 72 65 .."Read.DESCRIPTOR-STRING.and.re
56a0 74 75 72 6e 20 61 20 66 6f 72 6d 20 74 68 61 74 20 65 76 61 6c 75 61 74 65 73 20 64 61 74 65 73 turn.a.form.that.evaluates.dates
56c0 2e 22 0a 20 20 28 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 74 72 61 6e 73 66 6f 72 6d 2d ."...(ledger-schedule-transform-
56e0 61 75 74 6f 2d 74 72 65 65 0a 20 20 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 0a 20 20 20 20 28 auto-tree....(split-string.....(
5700 73 75 62 73 74 72 69 6e 67 20 64 65 73 63 72 69 70 74 6f 72 2d 73 74 72 69 6e 67 20 31 20 28 73 substring.descriptor-string.1.(s
5720 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5d 22 20 64 65 73 63 72 69 70 74 6f 72 2d 73 74 72 69 6e tring-match."]".descriptor-strin
5740 67 29 29 20 22 20 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 g)).".")))..(defun.ledger-schedu
5760 6c 65 2d 74 72 61 6e 73 66 6f 72 6d 2d 61 75 74 6f 2d 74 72 65 65 20 28 64 65 73 63 72 69 70 74 le-transform-auto-tree.(descript
5780 6f 72 2d 73 74 72 69 6e 67 2d 6c 69 73 74 29 0a 20 20 22 54 61 6b 65 20 44 45 53 43 52 49 50 54 or-string-list)..."Take.DESCRIPT
57a0 4f 52 2d 53 54 52 49 4e 47 2d 4c 49 53 54 2c 20 61 6e 64 20 72 65 74 75 72 6e 20 61 20 73 74 72 OR-STRING-LIST,.and.return.a.str
57c0 69 6e 67 20 77 69 74 68 20 61 20 6c 61 6d 62 64 61 20 66 75 6e 63 74 69 6f 6e 20 6f 66 20 64 61 ing.with.a.lambda.function.of.da
57e0 74 65 2e 22 0a 20 20 3b 3b 20 75 73 65 20 66 75 6e 63 61 6c 6c 20 74 6f 20 75 73 65 20 74 68 65 te."...;;.use.funcall.to.use.the
5800 20 6c 61 6d 62 64 61 20 66 75 6e 63 74 69 6f 6e 20 73 70 69 74 20 6f 75 74 20 68 65 72 65 0a 20 .lambda.function.spit.out.here..
5820 20 28 69 66 20 28 63 6f 6e 73 70 20 64 65 73 63 72 69 70 74 6f 72 2d 73 74 72 69 6e 67 2d 6c 69 .(if.(consp.descriptor-string-li
5840 73 74 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 72 65 73 75 6c 74 29 0a 20 20 20 20 20 20 20 20 st).......(let.(result).........
5860 28 77 68 69 6c 65 20 28 63 6f 6e 73 70 20 64 65 73 63 72 69 70 74 6f 72 2d 73 74 72 69 6e 67 2d (while.(consp.descriptor-string-
5880 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6e 65 77 63 61 72 20 28 63 list)...........(let.((newcar.(c
58a0 61 72 20 64 65 73 63 72 69 70 74 6f 72 2d 73 74 72 69 6e 67 2d 6c 69 73 74 29 29 29 0a 20 20 20 ar.descriptor-string-list)))....
58c0 20 20 20 20 20 20 20 20 20 28 69 66 20 28 63 6f 6e 73 70 20 6e 65 77 63 61 72 29 0a 20 20 20 20 .........(if.(consp.newcar).....
58e0 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6e 65 77 63 61 72 20 28 6c 65 64 67 65 72 ............(setq.newcar.(ledger
5900 2d 73 63 68 65 64 75 6c 65 2d 74 72 61 6e 73 66 6f 72 6d 2d 61 75 74 6f 2d 74 72 65 65 20 28 63 -schedule-transform-auto-tree.(c
5920 61 72 20 64 65 73 63 72 69 70 74 6f 72 2d 73 74 72 69 6e 67 2d 6c 69 73 74 29 29 29 29 0a 20 20 ar.descriptor-string-list))))...
5940 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6e 65 77 63 61 72 20 6d 61 79 20 62 65 20 61 20 63 6f 6e ..........;;.newcar.may.be.a.con
5960 73 20 6e 6f 77 2c 20 61 66 74 65 72 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 74 72 61 s.now,.after.ledger-schedule-tra
5980 6e 73 66 72 6f 6d 2d 61 75 74 6f 2d 74 72 65 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 nsfrom-auto-tree.............(if
59a0 20 28 63 6f 6e 73 70 20 6e 65 77 63 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(consp.newcar).................
59c0 28 70 75 73 68 20 6e 65 77 63 61 72 20 72 65 73 75 6c 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 (push.newcar.result)............
59e0 20 20 20 3b 3b 20 74 68 69 73 20 69 73 20 77 68 65 72 65 20 77 65 20 61 63 74 75 61 6c 6c 79 20 ...;;.this.is.where.we.actually.
5a00 74 75 72 6e 20 74 68 65 20 73 74 72 69 6e 67 20 64 65 73 63 72 69 70 74 6f 72 20 69 6e 74 6f 20 turn.the.string.descriptor.into.
5a20 75 73 65 66 75 6c 20 6c 69 73 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 useful.lisp...............(push.
5a40 28 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 63 6f 6d 70 69 6c 65 2d 63 6f 6e 73 74 72 61 (ledger-schedule-compile-constra
5a60 69 6e 74 73 20 6e 65 77 63 61 72 29 20 72 65 73 75 6c 74 29 29 20 29 0a 20 20 20 20 20 20 20 20 ints.newcar).result)).).........
5a80 20 20 28 73 65 74 71 20 64 65 73 63 72 69 70 74 6f 72 2d 73 74 72 69 6e 67 2d 6c 69 73 74 20 28 ..(setq.descriptor-string-list.(
5aa0 63 64 72 20 64 65 73 63 72 69 70 74 6f 72 2d 73 74 72 69 6e 67 2d 6c 69 73 74 29 29 29 0a 0a 20 cdr.descriptor-string-list)))...
5ac0 20 20 20 20 20 20 20 3b 3b 20 74 69 65 20 75 70 20 61 6c 6c 20 74 68 65 20 63 6c 61 75 73 65 73 .......;;.tie.up.all.the.clauses
5ae0 20 69 6e 20 61 20 62 69 67 20 6f 72 20 6c 61 6d 62 64 61 2c 20 61 6e 64 20 72 65 74 75 72 6e 0a .in.a.big.or.lambda,.and.return.
5b00 20 20 20 20 20 20 20 20 3b 3b 20 74 68 65 20 6c 61 6d 62 64 61 20 66 75 6e 63 74 69 6f 6e 20 61 ........;;.the.lambda.function.a
5b20 73 20 6c 69 73 74 20 74 6f 20 62 65 20 65 78 65 63 75 74 65 64 20 62 79 20 66 75 6e 63 61 6c 6c s.list.to.be.executed.by.funcall
5b40 0a 20 20 20 20 20 20 20 20 60 28 6c 61 6d 62 64 61 20 28 64 61 74 65 29 0a 20 20 20 20 20 20 20 .........`(lambda.(date)........
5b60 20 20 20 20 2c 28 6e 63 6f 6e 63 20 28 6c 69 73 74 20 27 6f 72 29 20 28 6e 72 65 76 65 72 73 65 ....,(nconc.(list.'or).(nreverse
5b80 20 72 65 73 75 6c 74 29 20 64 65 73 63 72 69 70 74 6f 72 2d 73 74 72 69 6e 67 2d 6c 69 73 74 29 .result).descriptor-string-list)
5ba0 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 63 6f 6d ))))..(defun.ledger-schedule-com
5bc0 70 69 6c 65 2d 63 6f 6e 73 74 72 61 69 6e 74 73 20 28 64 65 73 63 72 69 70 74 6f 72 2d 73 74 72 pile-constraints.(descriptor-str
5be0 69 6e 67 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 77 69 74 68 20 74 68 65 20 79 ing)..."Return.a.list.with.the.y
5c00 65 61 72 2c 20 6d 6f 6e 74 68 20 61 6e 64 20 64 61 79 20 66 69 65 6c 64 73 20 73 70 6c 69 74 2e ear,.month.and.day.fields.split.
5c20 22 0a 20 20 28 6c 65 74 20 28 28 66 69 65 6c 64 73 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 "...(let.((fields.(split-string.
5c40 64 65 73 63 72 69 70 74 6f 72 2d 73 74 72 69 6e 67 20 22 5b 2f 5c 5c 2d 5d 22 20 74 29 29 29 0a descriptor-string."[/\\-]".t))).
5c60 20 20 20 20 28 6c 69 73 74 20 27 61 6e 64 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 ....(list.'and...........(ledger
5c80 2d 73 63 68 65 64 75 6c 65 2d 63 6f 6e 73 74 72 61 69 6e 2d 64 61 79 20 28 6e 74 68 20 30 20 66 -schedule-constrain-day.(nth.0.f
5ca0 69 65 6c 64 73 29 20 28 6e 74 68 20 31 20 66 69 65 6c 64 73 29 20 28 6e 74 68 20 32 20 66 69 65 ields).(nth.1.fields).(nth.2.fie
5cc0 6c 64 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 lds))...........(ledger-schedule
5ce0 2d 63 6f 6e 73 74 72 61 69 6e 2d 79 65 61 72 20 28 6e 74 68 20 30 20 66 69 65 6c 64 73 29 20 28 -constrain-year.(nth.0.fields).(
5d00 6e 74 68 20 31 20 66 69 65 6c 64 73 29 20 28 6e 74 68 20 32 20 66 69 65 6c 64 73 29 29 0a 20 20 nth.1.fields).(nth.2.fields))...
5d20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 63 6f 6e 73 74 72 61 ........(ledger-schedule-constra
5d40 69 6e 2d 6d 6f 6e 74 68 20 28 6e 74 68 20 30 20 66 69 65 6c 64 73 29 20 28 6e 74 68 20 31 20 66 in-month.(nth.0.fields).(nth.1.f
5d60 69 65 6c 64 73 29 20 28 6e 74 68 20 32 20 66 69 65 6c 64 73 29 29 29 29 29 0a 0a 28 64 65 66 75 ields).(nth.2.fields)))))..(defu
5d80 6e 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 63 6f 6e 73 74 72 61 69 6e 2d 79 65 61 72 n.ledger-schedule-constrain-year
5da0 20 28 79 65 61 72 2d 64 65 73 63 20 6d 6f 6e 74 68 2d 64 65 73 63 20 64 61 79 2d 64 65 73 63 29 .(year-desc.month-desc.day-desc)
5dc0 0a 20 20 22 52 65 74 75 72 6e 20 61 20 66 6f 72 6d 20 74 68 61 74 20 63 6f 6e 73 74 72 61 69 6e ..."Return.a.form.that.constrain
5de0 73 20 74 68 65 20 79 65 61 72 2e 0a 0a 59 45 41 52 2d 44 45 53 43 2c 20 4d 4f 4e 54 48 2d 44 45 s.the.year...YEAR-DESC,.MONTH-DE
5e00 53 43 2c 20 61 6e 64 20 44 41 59 2d 44 45 53 43 20 61 72 65 20 74 68 65 20 73 74 72 69 6e 67 20 SC,.and.DAY-DESC.are.the.string.
5e20 70 6f 72 74 69 6f 6e 73 20 6f 66 20 74 68 65 0a 64 61 74 65 20 64 65 73 63 72 69 70 74 6f 72 2e portions.of.the.date.descriptor.
5e40 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5b 41 2d "...(cond....((string-match."[A-
5e60 5a 61 2d 7a 5d 22 20 64 61 79 2d 64 65 73 63 29 20 74 29 20 3b 20 74 68 65 72 65 20 69 73 20 61 Za-z]".day-desc).t).;.there.is.a
5e80 6e 20 61 64 76 61 6e 63 65 64 20 64 61 79 20 64 65 73 63 72 69 70 74 6f 72 20 77 68 69 63 68 20 n.advanced.day.descriptor.which.
5ea0 6f 76 65 72 72 69 64 65 73 20 74 68 65 20 79 65 61 72 0a 20 20 20 28 28 73 74 72 69 6e 67 3d 20 overrides.the.year....((string=.
5ec0 79 65 61 72 2d 64 65 73 63 20 22 2a 22 29 20 74 29 0a 20 20 20 28 28 2f 3d 20 30 20 28 73 74 72 year-desc."*").t)....((/=.0.(str
5ee0 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 79 65 61 72 2d 64 65 73 63 29 29 0a 20 20 20 20 60 28 ing-to-number.year-desc)).....`(
5f00 6d 65 6d 71 20 28 6e 74 68 20 35 20 28 64 65 63 6f 64 65 2d 74 69 6d 65 20 64 61 74 65 29 29 20 memq.(nth.5.(decode-time.date)).
5f20 27 2c 28 6d 61 70 63 61 72 20 27 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 73 70 6c ',(mapcar.'string-to-number.(spl
5f40 69 74 2d 73 74 72 69 6e 67 20 79 65 61 72 2d 64 65 73 63 20 22 2c 22 29 29 29 29 0a 20 20 20 28 it-string.year-desc.","))))....(
5f60 74 0a 20 20 20 20 28 65 72 72 6f 72 20 22 49 6d 70 72 6f 70 65 72 6c 79 20 73 70 65 63 69 66 69 t.....(error."Improperly.specifi
5f80 65 64 20 79 65 61 72 20 63 6f 6e 73 74 72 61 69 6e 74 3a 20 25 73 20 25 73 20 25 73 22 20 79 65 ed.year.constraint:.%s.%s.%s".ye
5fa0 61 72 2d 64 65 73 63 20 6d 6f 6e 74 68 2d 64 65 73 63 20 64 61 79 2d 64 65 73 63 29 29 29 29 0a ar-desc.month-desc.day-desc)))).
5fc0 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 63 6f 6e 73 74 72 61 69 .(defun.ledger-schedule-constrai
5fe0 6e 2d 6d 6f 6e 74 68 20 28 79 65 61 72 2d 64 65 73 63 20 6d 6f 6e 74 68 2d 64 65 73 63 20 64 61 n-month.(year-desc.month-desc.da
6000 79 2d 64 65 73 63 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 66 6f 72 6d 20 74 68 61 74 20 63 6f y-desc)..."Return.a.form.that.co
6020 6e 73 74 72 61 69 6e 73 20 74 68 65 20 6d 6f 6e 74 68 2e 0a 0a 59 45 41 52 2d 44 45 53 43 2c 20 nstrains.the.month...YEAR-DESC,.
6040 4d 4f 4e 54 48 2d 44 45 53 43 2c 20 61 6e 64 20 44 41 59 2d 44 45 53 43 20 61 72 65 20 74 68 65 MONTH-DESC,.and.DAY-DESC.are.the
6060 20 73 74 72 69 6e 67 20 70 6f 72 74 69 6f 6e 73 20 6f 66 20 74 68 65 0a 64 61 74 65 20 64 65 73 .string.portions.of.the.date.des
6080 63 72 69 70 74 6f 72 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 73 74 72 69 6e 67 2d 6d 61 criptor."...(cond....((string-ma
60a0 74 63 68 20 22 5b 41 2d 5a 61 2d 7a 5d 22 20 64 61 79 2d 64 65 73 63 29 20 74 29 20 3b 20 74 68 tch."[A-Za-z]".day-desc).t).;.th
60c0 65 72 65 20 69 73 20 61 6e 20 61 64 76 61 6e 63 65 64 20 64 61 79 20 64 65 73 63 72 69 70 74 6f ere.is.an.advanced.day.descripto
60e0 72 20 77 68 69 63 68 20 6f 76 65 72 72 69 64 65 73 20 74 68 65 20 6d 6f 6e 74 68 0a 20 20 20 28 r.which.overrides.the.month....(
6100 28 73 74 72 69 6e 67 3d 20 6d 6f 6e 74 68 2d 64 65 73 63 20 22 2a 22 29 0a 20 20 20 20 74 29 20 (string=.month-desc."*").....t).
6120 20 3b 3b 20 61 6c 77 61 79 73 20 6d 61 74 63 68 0a 20 20 20 28 28 73 74 72 69 6e 67 3d 20 6d 6f .;;.always.match....((string=.mo
6140 6e 74 68 2d 64 65 73 63 20 22 45 22 29 20 20 3b 3b 20 45 76 65 6e 0a 20 20 20 20 60 28 63 6c 2d nth-desc."E")..;;.Even.....`(cl-
6160 65 76 65 6e 70 20 28 6e 74 68 20 34 20 28 64 65 63 6f 64 65 2d 74 69 6d 65 20 64 61 74 65 29 29 evenp.(nth.4.(decode-time.date))
6180 29 29 0a 20 20 20 28 28 73 74 72 69 6e 67 3d 20 6d 6f 6e 74 68 2d 64 65 73 63 20 22 4f 22 29 20 ))....((string=.month-desc."O").
61a0 20 3b 3b 20 4f 64 64 0a 20 20 20 20 60 28 63 6c 2d 6f 64 64 70 20 28 6e 74 68 20 34 20 28 64 65 .;;.Odd.....`(cl-oddp.(nth.4.(de
61c0 63 6f 64 65 2d 74 69 6d 65 20 64 61 74 65 29 29 29 29 0a 20 20 20 28 28 2f 3d 20 30 20 28 73 74 code-time.date))))....((/=.0.(st
61e0 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 6d 6f 6e 74 68 2d 64 65 73 63 29 29 20 3b 3b 20 53 ring-to-number.month-desc)).;;.S
6200 74 61 72 74 73 20 77 69 74 68 20 6e 75 6d 62 65 72 0a 20 20 20 20 60 28 6d 65 6d 71 20 28 6e 74 tarts.with.number.....`(memq.(nt
6220 68 20 34 20 28 64 65 63 6f 64 65 2d 74 69 6d 65 20 64 61 74 65 29 29 20 27 2c 28 6d 61 70 63 61 h.4.(decode-time.date)).',(mapca
6240 72 20 27 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 73 70 6c 69 74 2d 73 74 72 69 6e r.'string-to-number.(split-strin
6260 67 20 6d 6f 6e 74 68 2d 64 65 73 63 20 22 2c 22 29 29 29 29 0a 20 20 20 28 74 0a 20 20 20 20 28 g.month-desc.","))))....(t.....(
6280 65 72 72 6f 72 20 22 49 6d 70 72 6f 70 65 72 6c 79 20 73 70 65 63 69 66 69 65 64 20 6d 6f 6e 74 error."Improperly.specified.mont
62a0 68 20 63 6f 6e 73 74 72 61 69 6e 74 3a 20 25 73 20 25 73 20 25 73 22 20 79 65 61 72 2d 64 65 73 h.constraint:.%s.%s.%s".year-des
62c0 63 20 6d 6f 6e 74 68 2d 64 65 73 63 20 64 61 79 2d 64 65 73 63 29 29 29 29 0a 0a 28 64 65 66 75 c.month-desc.day-desc))))..(defu
62e0 6e 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 63 6f 6e 73 74 72 61 69 6e 2d 64 61 79 20 n.ledger-schedule-constrain-day.
6300 28 79 65 61 72 2d 64 65 73 63 20 6d 6f 6e 74 68 2d 64 65 73 63 20 64 61 79 2d 64 65 73 63 29 0a (year-desc.month-desc.day-desc).
6320 20 20 22 52 65 74 75 72 6e 20 61 20 66 6f 72 6d 20 74 68 61 74 20 63 6f 6e 73 74 72 61 69 6e 73 .."Return.a.form.that.constrains
6340 20 74 68 65 20 64 61 79 2e 0a 0a 59 45 41 52 2d 44 45 53 43 2c 20 4d 4f 4e 54 48 2d 44 45 53 43 .the.day...YEAR-DESC,.MONTH-DESC
6360 2c 20 61 6e 64 20 44 41 59 2d 44 45 53 43 20 61 72 65 20 74 68 65 20 73 74 72 69 6e 67 20 70 6f ,.and.DAY-DESC.are.the.string.po
6380 72 74 69 6f 6e 73 20 6f 66 20 74 68 65 0a 64 61 74 65 20 64 65 73 63 72 69 70 74 6f 72 2e 22 0a rtions.of.the.date.descriptor.".
63a0 20 20 28 63 6f 6e 64 20 28 28 73 74 72 69 6e 67 3d 20 64 61 79 2d 64 65 73 63 20 22 2a 22 29 0a ..(cond.((string=.day-desc."*").
63c0 20 20 20 20 20 20 20 20 20 74 29 0a 20 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 3d 20 64 61 .........t).........((string=.da
63e0 79 2d 64 65 73 63 20 22 4c 22 29 0a 20 20 20 20 20 20 20 20 20 60 28 3d 20 28 6e 74 68 20 33 20 y-desc."L")..........`(=.(nth.3.
6400 28 64 65 63 6f 64 65 2d 74 69 6d 65 20 64 61 74 65 29 29 20 28 6c 65 64 67 65 72 2d 73 63 68 65 (decode-time.date)).(ledger-sche
6420 64 75 6c 65 2d 64 61 79 73 2d 69 6e 2d 6d 6f 6e 74 68 20 28 6e 74 68 20 34 20 28 64 65 63 6f 64 dule-days-in-month.(nth.4.(decod
6440 65 2d 74 69 6d 65 20 64 61 74 65 29 29 20 28 6e 74 68 20 35 20 28 64 65 63 6f 64 65 2d 74 69 6d e-time.date)).(nth.5.(decode-tim
6460 65 20 64 61 74 65 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 2d 6d 61 74 e.date))))).........((string-mat
6480 63 68 20 22 5b 41 2d 5a 61 2d 7a 5d 22 20 64 61 79 2d 64 65 73 63 29 20 20 3b 3b 20 54 68 65 72 ch."[A-Za-z]".day-desc)..;;.Ther
64a0 65 20 69 73 20 73 6f 6d 65 74 68 69 6e 67 20 6f 74 68 65 72 20 74 68 61 6e 20 64 69 67 69 74 73 e.is.something.other.than.digits
64c0 20 61 6e 64 20 63 6f 6d 6d 61 73 0a 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 73 63 68 .and.commas..........(ledger-sch
64e0 65 64 75 6c 65 2d 70 61 72 73 65 2d 63 6f 6d 70 6c 65 78 2d 64 61 74 65 20 79 65 61 72 2d 64 65 edule-parse-complex-date.year-de
6500 73 63 20 6d 6f 6e 74 68 2d 64 65 73 63 20 64 61 79 2d 64 65 73 63 29 29 0a 20 20 20 20 20 20 20 sc.month-desc.day-desc))........
6520 20 28 28 2f 3d 20 30 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 64 61 79 2d 64 65 .((/=.0.(string-to-number.day-de
6540 73 63 29 29 0a 20 20 20 20 20 20 20 20 20 60 28 6d 65 6d 71 20 28 6e 74 68 20 33 20 28 64 65 63 sc))..........`(memq.(nth.3.(dec
6560 6f 64 65 2d 74 69 6d 65 20 64 61 74 65 29 29 20 27 2c 28 6d 61 70 63 61 72 20 27 73 74 72 69 6e ode-time.date)).',(mapcar.'strin
6580 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 64 61 79 2d 64 65 g-to-number.(split-string.day-de
65a0 73 63 20 22 2c 22 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 28 sc.",")))).........(t..........(
65c0 65 72 72 6f 72 20 22 49 6d 70 72 6f 70 65 72 6c 79 20 73 70 65 63 69 66 69 65 64 20 64 61 79 20 error."Improperly.specified.day.
65e0 63 6f 6e 73 74 72 61 69 6e 74 3a 20 25 73 20 25 73 20 25 73 22 20 79 65 61 72 2d 64 65 73 63 20 constraint:.%s.%s.%s".year-desc.
6600 6d 6f 6e 74 68 2d 64 65 73 63 20 64 61 79 2d 64 65 73 63 29 29 29 29 0a 0a 0a 0a 28 64 65 66 75 month-desc.day-desc))))....(defu
6620 6e 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 70 61 72 73 65 2d 63 6f 6d 70 6c 65 78 2d n.ledger-schedule-parse-complex-
6640 64 61 74 65 20 28 79 65 61 72 2d 64 65 73 63 20 6d 6f 6e 74 68 2d 64 65 73 63 20 64 61 79 2d 64 date.(year-desc.month-desc.day-d
6660 65 73 63 29 0a 20 20 22 50 61 72 73 65 20 64 61 79 20 64 65 73 63 72 69 70 74 6f 72 73 20 74 68 esc)..."Parse.day.descriptors.th
6680 61 74 20 68 61 76 65 20 72 65 70 65 61 74 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 79 65 61 72 73 at.have.repeats."...(let.((years
66a0 20 28 6d 61 70 63 61 72 20 27 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 73 70 6c 69 .(mapcar.'string-to-number.(spli
66c0 74 2d 73 74 72 69 6e 67 20 79 65 61 72 2d 64 65 73 63 20 22 2c 22 29 29 29 0a 20 20 20 20 20 20 t-string.year-desc.","))).......
66e0 20 20 28 6d 6f 6e 74 68 73 20 28 6d 61 70 63 61 72 20 27 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d ..(months.(mapcar.'string-to-num
6700 62 65 72 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 6d 6f 6e 74 68 2d 64 65 73 63 20 22 2c 22 ber.(split-string.month-desc.","
6720 29 29 29 0a 20 20 20 20 20 20 20 20 28 64 61 79 2d 70 61 72 74 73 20 28 73 70 6c 69 74 2d 73 74 ))).........(day-parts.(split-st
6740 72 69 6e 67 20 64 61 79 2d 64 65 73 63 20 22 5c 5c 2b 22 29 29 0a 20 20 20 20 20 20 20 20 28 65 ring.day-desc."\\+")).........(e
6760 76 65 72 79 2d 6e 74 68 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5c 5c 2b 22 20 64 61 79 very-nth.(string-match."\\+".day
6780 2d 64 65 73 63 29 29 29 0a 20 20 20 20 28 69 66 20 65 76 65 72 79 2d 6e 74 68 0a 20 20 20 20 20 -desc))).....(if.every-nth......
67a0 20 20 20 28 6c 65 74 20 28 28 62 61 73 65 2d 64 61 79 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 ...(let.((base-day.(string-to-nu
67c0 6d 62 65 72 20 28 63 61 72 20 64 61 79 2d 70 61 72 74 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 mber.(car.day-parts)))..........
67e0 20 20 20 20 20 28 69 6e 63 72 65 6d 65 6e 74 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 .....(increment.(string-to-numbe
6800 72 20 28 73 75 62 73 74 72 69 6e 67 20 28 63 61 64 72 20 64 61 79 2d 70 61 72 74 73 29 20 30 0a r.(substring.(cadr.day-parts).0.
6820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 6d 61 ......................(string-ma
6860 74 63 68 20 22 5b 41 2d 5a 61 2d 7a 5d 22 20 28 63 61 64 72 20 64 61 79 2d 70 61 72 74 73 29 29 tch."[A-Za-z]".(cadr.day-parts))
6880 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 61 79 2d 6f 66 2d 77 65 65 6b 20 28 )))...............(day-of-week.(
68a0 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 65 6e 63 6f 64 65 2d 64 61 79 2d 6f 66 2d 77 65 ledger-schedule-encode-day-of-we
68c0 65 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ek.............................(
68e0 73 75 62 73 74 72 69 6e 67 20 28 63 61 64 72 20 64 61 79 2d 70 61 72 74 73 29 20 28 73 74 72 69 substring.(cadr.day-parts).(stri
6900 6e 67 2d 6d 61 74 63 68 20 22 5b 41 2d 5a 61 2d 7a 5d 22 20 28 63 61 64 72 20 64 61 79 2d 70 61 ng-match."[A-Za-z]".(cadr.day-pa
6920 72 74 73 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 73 63 68 65 rts))))))...........(ledger-sche
6940 64 75 6c 65 2d 63 6f 6e 73 74 72 61 69 6e 2d 65 76 65 72 79 2d 63 6f 75 6e 74 2d 64 61 79 20 64 dule-constrain-every-count-day.d
6960 61 79 2d 6f 66 2d 77 65 65 6b 20 69 6e 63 72 65 6d 65 6e 74 20 28 65 6e 63 6f 64 65 2d 74 69 6d ay-of-week.increment.(encode-tim
6980 65 20 30 20 30 20 30 20 62 61 73 65 2d 64 61 79 20 28 63 61 72 20 6d 6f 6e 74 68 73 29 20 28 63 e.0.0.0.base-day.(car.months).(c
69a0 61 72 20 79 65 61 72 73 29 29 29 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 6f 75 6e 74 20 ar.years)))).......(let.((count.
69c0 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 73 75 62 73 74 72 69 6e 67 20 28 63 61 (string-to-number.(substring.(ca
69e0 72 20 64 61 79 2d 70 61 72 74 73 29 20 30 20 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 r.day-parts).0.1))).............
6a00 28 64 61 79 2d 6f 66 2d 77 65 65 6b 20 28 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 65 6e (day-of-week.(ledger-schedule-en
6a20 63 6f 64 65 2d 64 61 79 2d 6f 66 2d 77 65 65 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 code-day-of-week................
6a40 20 20 20 20 20 20 20 20 20 20 20 28 73 75 62 73 74 72 69 6e 67 20 28 63 61 72 20 64 61 79 2d 70 ...........(substring.(car.day-p
6a60 61 72 74 73 29 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5b 41 2d 5a 61 2d 7a 5d 22 20 28 arts).(string-match."[A-Za-z]".(
6a80 63 61 72 20 64 61 79 2d 70 61 72 74 73 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 6c 65 64 car.day-parts)))))).........(led
6aa0 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 63 6f 6e 73 74 72 61 69 6e 2d 64 61 79 2d 69 6e 2d 6d 6f ger-schedule-constrain-day-in-mo
6ac0 6e 74 68 20 63 6f 75 6e 74 20 64 61 79 2d 6f 66 2d 77 65 65 6b 29 29 29 29 29 0a 0a 28 64 65 66 nth.count.day-of-week)))))..(def
6ae0 75 6e 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 6c 69 73 74 2d 75 70 63 6f 6d 69 6e 67 un.ledger-schedule-list-upcoming
6b00 2d 78 61 63 74 73 20 28 63 61 6e 64 69 64 61 74 65 2d 69 74 65 6d 73 20 65 61 72 6c 79 20 68 6f -xacts.(candidate-items.early.ho
6b20 72 69 7a 6f 6e 29 0a 20 20 22 53 65 61 72 63 68 20 43 41 4e 44 49 44 41 54 45 2d 49 54 45 4d 53 rizon)..."Search.CANDIDATE-ITEMS
6b40 20 66 6f 72 20 78 61 63 74 73 20 74 68 61 74 20 6f 63 63 75 72 20 77 69 74 68 69 6e 20 74 68 65 .for.xacts.that.occur.within.the
6b60 20 67 69 76 65 6e 20 70 65 72 69 6f 64 2e 0a 54 68 65 20 70 65 72 69 6f 64 20 72 75 6e 73 20 66 .given.period..The.period.runs.f
6b80 72 6f 6d 20 28 74 6f 64 61 79 20 2d 20 45 41 52 4c 59 29 20 74 6f 20 28 74 6f 64 61 79 20 2b 20 rom.(today.-.EARLY).to.(today.+.
6ba0 48 4f 52 49 5a 4f 4e 29 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 74 61 72 74 2d 64 61 74 65 20 28 HORIZON)."...(let.((start-date.(
6bc0 74 69 6d 65 2d 73 75 62 74 72 61 63 74 20 28 63 75 72 72 65 6e 74 2d 74 69 6d 65 29 20 28 64 61 time-subtract.(current-time).(da
6be0 79 73 2d 74 6f 2d 74 69 6d 65 20 65 61 72 6c 79 29 29 29 0a 20 20 20 20 20 20 20 20 74 65 73 74 ys-to-time.early))).........test
6c00 2d 64 61 74 65 20 69 74 65 6d 73 29 0a 20 20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 64 61 -date.items).....(cl-loop.for.da
6c20 79 20 66 72 6f 6d 20 30 20 74 6f 20 28 2b 20 65 61 72 6c 79 20 68 6f 72 69 7a 6f 6e 29 20 62 79 y.from.0.to.(+.early.horizon).by
6c40 20 31 20 64 6f 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 74 65 73 74 2d 64 61 .1.do..............(setq.test-da
6c60 74 65 20 28 74 69 6d 65 2d 61 64 64 20 73 74 61 72 74 2d 64 61 74 65 20 28 64 61 79 73 2d 74 6f te.(time-add.start-date.(days-to
6c80 2d 74 69 6d 65 20 64 61 79 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 -time.day)))..............(dolis
6ca0 74 20 28 63 61 6e 64 69 64 61 74 65 20 63 61 6e 64 69 64 61 74 65 2d 69 74 65 6d 73 20 69 74 65 t.(candidate.candidate-items.ite
6cc0 6d 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 66 75 6e 63 61 6c 6c 20 ms)................(if.(funcall.
6ce0 28 63 61 72 20 63 61 6e 64 69 64 61 74 65 29 20 74 65 73 74 2d 64 61 74 65 29 0a 20 20 20 20 20 (car.candidate).test-date)......
6d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 69 74 65 6d 73 20 28 61 70 70 65 6e ..............(setq.items.(appen
6d20 64 20 69 74 65 6d 73 20 28 6c 69 73 74 20 28 6c 69 73 74 20 74 65 73 74 2d 64 61 74 65 20 28 63 d.items.(list.(list.test-date.(c
6d40 61 64 72 20 63 61 6e 64 69 64 61 74 65 29 29 29 29 29 29 29 29 0a 20 20 20 20 69 74 65 6d 73 29 adr.candidate)))))))).....items)
6d60 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 63 72 65 61 74 65 )..(defun.ledger-schedule-create
6d80 2d 61 75 74 6f 2d 62 75 66 66 65 72 20 28 63 61 6e 64 69 64 61 74 65 2d 69 74 65 6d 73 20 65 61 -auto-buffer.(candidate-items.ea
6da0 72 6c 79 20 68 6f 72 69 7a 6f 6e 29 0a 20 20 22 46 6f 72 6d 61 74 20 43 41 4e 44 49 44 41 54 45 rly.horizon)..."Format.CANDIDATE
6dc0 2d 49 54 45 4d 53 20 66 6f 72 20 64 69 73 70 6c 61 79 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 61 -ITEMS.for.display."...(let.((ca
6de0 6e 64 69 64 61 74 65 73 20 28 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 6c 69 73 74 2d 75 ndidates.(ledger-schedule-list-u
6e00 70 63 6f 6d 69 6e 67 2d 78 61 63 74 73 20 63 61 6e 64 69 64 61 74 65 2d 69 74 65 6d 73 20 65 61 pcoming-xacts.candidate-items.ea
6e20 72 6c 79 20 68 6f 72 69 7a 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 28 73 63 68 65 64 75 6c 65 2d rly.horizon)).........(schedule-
6e40 62 75 66 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 6c 65 64 67 65 72 2d 73 63 buf.(get-buffer-create.ledger-sc
6e60 68 65 64 75 6c 65 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d hedule-buffer-name))).....(with-
6e80 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 73 63 68 65 64 75 6c 65 2d 62 75 66 0a 20 20 20 20 current-buffer.schedule-buf.....
6ea0 20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 ..(erase-buffer).......(dolist.(
6ec0 63 61 6e 64 69 64 61 74 65 20 63 61 6e 64 69 64 61 74 65 73 29 0a 20 20 20 20 20 20 20 20 28 69 candidate.candidates).........(i
6ee0 6e 73 65 72 74 20 28 6c 65 64 67 65 72 2d 66 6f 72 6d 61 74 2d 64 61 74 65 20 28 63 61 72 20 63 nsert.(ledger-format-date.(car.c
6f00 61 6e 64 69 64 61 74 65 29 20 29 20 22 20 22 20 28 63 61 64 72 20 63 61 6e 64 69 64 61 74 65 29 andidate).).".".(cadr.candidate)
6f20 20 22 5c 6e 22 29 29 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6d 6f 64 65 29 29 0a 20 20 20 ."\n")).......(ledger-mode))....
6f40 20 28 6c 65 6e 67 74 68 20 63 61 6e 64 69 64 61 74 65 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c .(length.candidates)))..(defun.l
6f60 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 75 70 63 6f 6d 69 6e 67 20 28 66 69 6c 65 20 6c 6f edger-schedule-upcoming.(file.lo
6f80 6f 6b 2d 62 61 63 6b 77 61 72 64 20 6c 6f 6f 6b 2d 66 6f 72 77 61 72 64 29 0a 20 20 22 47 65 6e ok-backward.look-forward)..."Gen
6fa0 65 72 61 74 65 20 75 70 63 6f 6d 69 6e 67 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 2e 0a 0a 46 49 erate.upcoming.transactions...FI
6fc0 4c 45 20 69 73 20 74 68 65 20 66 69 6c 65 20 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 73 63 LE.is.the.file.containing.the.sc
6fe0 68 65 64 75 6c 65 64 20 74 72 61 6e 73 61 63 74 69 6f 6e 2c 0a 64 65 66 61 75 6c 74 20 74 6f 20 heduled.transaction,.default.to.
7000 60 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 66 69 6c 65 27 2e 0a 4c 4f 4f 4b 2d 42 41 43 `ledger-schedule-file'..LOOK-BAC
7020 4b 57 41 52 44 20 69 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 64 61 79 73 20 69 6e 20 74 KWARD.is.the.number.of.days.in.t
7040 68 65 20 70 61 73 74 20 74 6f 20 6c 6f 6f 6b 20 61 74 0a 64 65 66 61 75 6c 74 20 74 6f 20 60 6c he.past.to.look.at.default.to.`l
7060 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 6c 6f 6f 6b 2d 62 61 63 6b 77 61 72 64 27 0a 4c 4f edger-schedule-look-backward'.LO
7080 4f 4b 2d 46 4f 52 57 41 52 44 20 69 73 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 64 61 79 73 OK-FORWARD.is.the.number.of.days
70a0 20 69 6e 20 74 68 65 20 66 75 74 75 72 65 20 74 6f 20 6c 6f 6f 6b 20 61 74 0a 64 65 66 61 75 6c .in.the.future.to.look.at.defaul
70c0 74 20 74 6f 20 60 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 6c 6f 6f 6b 2d 66 6f 72 77 61 t.to.`ledger-schedule-look-forwa
70e0 72 64 27 0a 0a 55 73 65 20 61 20 70 72 65 66 69 78 20 61 72 67 20 74 6f 20 63 68 61 6e 67 65 20 rd'..Use.a.prefix.arg.to.change.
7100 74 68 65 20 64 65 66 61 75 6c 74 20 76 61 6c 75 65 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 the.default.value"...(interactiv
7120 65 20 28 69 66 20 63 75 72 72 65 6e 74 2d 70 72 65 66 69 78 2d 61 72 67 0a 20 20 20 20 20 20 20 e.(if.current-prefix-arg........
7140 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 28 72 65 61 64 2d 66 69 6c 65 2d 6e 61 6d ............(list.(read-file-nam
7160 65 20 22 53 63 68 65 64 75 6c 65 20 46 69 6c 65 3a 20 22 20 28 29 20 6c 65 64 67 65 72 2d 73 63 e."Schedule.File:.".().ledger-sc
7180 68 65 64 75 6c 65 2d 66 69 6c 65 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 hedule-file.t)..................
71a0 20 20 20 20 20 20 20 20 28 72 65 61 64 2d 6e 75 6d 62 65 72 20 22 4c 6f 6f 6b 20 62 61 63 6b 77 ........(read-number."Look.backw
71c0 61 72 64 3a 20 22 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 6c 6f 6f 6b 2d 62 61 63 6b ard:.".ledger-schedule-look-back
71e0 77 61 72 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ward)..........................(
7200 72 65 61 64 2d 6e 75 6d 62 65 72 20 22 4c 6f 6f 6b 20 66 6f 72 77 61 72 64 3a 20 22 20 6c 65 64 read-number."Look.forward:.".led
7220 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 6c 6f 6f 6b 2d 66 6f 72 77 61 72 64 29 29 0a 20 20 20 20 ger-schedule-look-forward)).....
7240 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 .............(list.ledger-schedu
7260 6c 65 2d 66 69 6c 65 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 6c 6f 6f 6b 2d 62 61 63 le-file.ledger-schedule-look-bac
7280 6b 77 61 72 64 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 6c 6f 6f 6b 2d 66 6f 72 77 61 kward.ledger-schedule-look-forwa
72a0 72 64 29 29 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 61 6e 64 20 66 69 6c 65 20 28 66 69 6c 65 2d rd)))...(unless.(and.file.(file-
72c0 65 78 69 73 74 73 2d 70 20 66 69 6c 65 29 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 43 6f 75 6c exists-p.file)).....(error."Coul
72e0 64 20 6e 6f 74 20 66 69 6e 64 20 6c 65 64 67 65 72 20 73 63 68 65 64 75 6c 65 20 66 69 6c 65 20 d.not.find.ledger.schedule.file.
7300 61 74 20 25 73 22 20 66 69 6c 65 29 29 0a 20 20 28 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 at.%s".file))...(ledger-schedule
7320 2d 63 72 65 61 74 65 2d 61 75 74 6f 2d 62 75 66 66 65 72 0a 20 20 20 28 6c 65 64 67 65 72 2d 73 -create-auto-buffer....(ledger-s
7340 63 68 65 64 75 6c 65 2d 73 63 61 6e 2d 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 66 69 6c 65 29 0a chedule-scan-transactions.file).
7360 20 20 20 6c 6f 6f 6b 2d 62 61 63 6b 77 61 72 64 0a 20 20 20 6c 6f 6f 6b 2d 66 6f 72 77 61 72 64 ...look-backward....look-forward
7380 29 0a 20 20 28 70 6f 70 2d 74 6f 2d 62 75 66 66 65 72 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 )...(pop-to-buffer.ledger-schedu
73a0 6c 65 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 0a 0a 0a 28 70 72 6f 76 69 64 65 20 27 6c 65 64 le-buffer-name))...(provide.'led
73c0 67 65 72 2d 73 63 68 65 64 75 6c 65 29 0a 0a 3b 3b 3b 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 ger-schedule)..;;;.ledger-schedu
73e0 6c 65 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 le.el.ends.here.................
7400 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 31 2e 31 34 33 35 2f 6c 65 64 67 65 72 ledger-mode-20240411.1435/ledger
7420 2d 65 78 65 63 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -exec.el........................
7440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7460 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
7480 30 30 31 31 37 34 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 37 30 33 00 20 30 00 00 00 0011743.00000000000.015703..0...
74a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
74c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
74e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7500 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
7520 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
7540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
75a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
75c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
75e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7600 3b 3b 3b 20 6c 65 64 67 65 72 2d 65 78 65 63 2e 65 6c 20 2d 2d 2d 20 48 65 6c 70 65 72 20 63 6f ;;;.ledger-exec.el.---.Helper.co
7620 64 65 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 74 68 65 20 22 6c 65 64 67 65 72 22 20 63 6f 6d de.for.use.with.the."ledger".com
7640 6d 61 6e 64 2d 6c 69 6e 65 20 74 6f 6f 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 mand-line.tool..-*-.lexical-bind
7660 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 ing:.t;.-*-..;;.Copyright.(C).20
7680 30 33 2d 32 30 31 36 20 4a 6f 68 6e 20 57 69 65 67 6c 65 79 20 28 6a 6f 68 6e 77 20 41 54 20 67 03-2016.John.Wiegley.(johnw.AT.g
76a0 6e 75 20 44 4f 54 20 6f 72 67 29 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 6e 6f 74 nu.DOT.org)..;;.This.file.is.not
76c0 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 54 68 69 73 20 69 73 20 .part.of.GNU.Emacs...;;.This.is.
76e0 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 free.software;.you.can.redistrib
7700 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 20 75 6e 64 65 72 0a 3b 3b ute.it.and/or.modify.it.under.;;
7720 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 .the.terms.of.the.GNU.General.Pu
7740 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 blic.License.as.published.by.the
7760 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 .Free.;;.Software.Foundation;.ei
7780 74 68 65 72 20 76 65 72 73 69 6f 6e 20 32 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 ther.version.2,.or.(at.your.opti
77a0 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 0a 3b 3b 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 on).any.later.;;.version..;;.;;.
77c0 54 68 69 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 This.is.distributed.in.the.hope.
77e0 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 that.it.will.be.useful,.but.WITH
7800 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 OUT.;;.ANY.WARRANTY;.without.eve
7820 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 n.the.implied.warranty.of.MERCHA
7840 4e 54 41 42 49 4c 49 54 59 20 6f 72 0a 3b 3b 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 NTABILITY.or.;;.FITNESS.FOR.A.PA
7860 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 RTICULAR.PURPOSE...See.the.GNU.G
7880 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 66 6f 72 20 6d 6f 72 eneral.Public.License.;;.for.mor
78a0 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 e.details..;;.;;.You.should.have
78c0 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 .received.a.copy.of.the.GNU.Gene
78e0 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 ral.Public.License.;;.along.with
7900 20 47 4e 55 20 45 6d 61 63 73 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 .GNU.Emacs;.see.the.file.COPYING
7920 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 20 ...If.not,.write.to.the.;;.Free.
7940 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 Software.Foundation,.Inc.,.51.Fr
7960 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 anklin.Street,.Fifth.Floor,.Bost
7980 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 20 55 53 41 2e 0a 0a 0a 3b 3b 3b 20 on,.;;.MA.02110-1301.USA....;;;.
79a0 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 20 43 6f 64 65 20 66 6f 72 20 65 78 65 63 75 74 69 6e Commentary:.;;.Code.for.executin
79c0 67 20 6c 65 64 67 65 72 20 73 79 6e 63 68 72 6f 6e 6f 75 73 6c 79 2e 0a 0a 3b 3b 3b 20 43 6f 64 g.ledger.synchronously...;;;.Cod
79e0 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 69 6e 69 74 29 20 20 20 20 20 20 e:..(require.'ledger-init)......
7a00 20 20 20 20 20 20 20 20 20 20 20 20 3b 66 6f 72 20 60 6c 65 64 67 65 72 2d 64 65 66 61 75 6c 74 ............;for.`ledger-default
7a20 2d 64 61 74 65 2d 66 6f 72 6d 61 74 27 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e -date-format'..(declare-function
7a40 20 6c 65 64 67 65 72 2d 6d 61 73 74 65 72 2d 66 69 6c 65 20 22 6c 65 64 67 65 72 2d 72 65 70 6f .ledger-master-file."ledger-repo
7a60 72 74 22 20 28 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6c 65 64 67 65 72 2d 76 65 72 73 69 6f rt".())..(defconst.ledger-versio
7a80 6e 2d 6e 65 65 64 65 64 20 22 33 2e 30 2e 30 22 0a 20 20 22 54 68 65 20 76 65 72 73 69 6f 6e 20 n-needed."3.0.0"..."The.version.
7aa0 6f 66 20 6c 65 64 67 65 72 20 65 78 65 63 75 74 61 62 6c 65 20 6e 65 65 64 65 64 20 66 6f 72 20 of.ledger.executable.needed.for.
7ac0 69 6e 74 65 72 61 63 74 69 76 65 20 66 65 61 74 75 72 65 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 interactive.features.")..(defvar
7ae0 20 6c 65 64 67 65 72 2d 77 6f 72 6b 73 20 6e 69 6c 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 69 66 20 .ledger-works.nil..."Non-nil.if.
7b00 74 68 65 20 6c 65 64 67 65 72 20 62 69 6e 61 72 79 20 63 61 6e 20 73 75 70 70 6f 72 74 20 60 6c the.ledger.binary.can.support.`l
7b20 65 64 67 65 72 2d 6d 6f 64 65 27 20 69 6e 74 65 72 61 63 74 69 76 65 20 66 65 61 74 75 72 65 73 edger-mode'.interactive.features
7b40 2e 22 29 0a 0a 28 64 65 66 67 72 6f 75 70 20 6c 65 64 67 65 72 2d 65 78 65 63 20 6e 69 6c 0a 20 .")..(defgroup.ledger-exec.nil..
7b60 20 22 49 6e 74 65 72 66 61 63 65 20 74 6f 20 74 68 65 20 4c 65 64 67 65 72 20 63 6f 6d 6d 61 6e ."Interface.to.the.Ledger.comman
7b80 64 2d 6c 69 6e 65 20 61 63 63 6f 75 6e 74 69 6e 67 20 70 72 6f 67 72 61 6d 2e 22 0a 20 20 3a 67 d-line.accounting.program."...:g
7ba0 72 6f 75 70 20 27 6c 65 64 67 65 72 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 roup.'ledger)..(defcustom.ledger
7bc0 2d 6d 6f 64 65 2d 73 68 6f 75 6c 64 2d 63 68 65 63 6b 2d 76 65 72 73 69 6f 6e 20 74 0a 20 20 22 -mode-should-check-version.t..."
7be0 53 68 6f 75 6c 64 20 4c 65 64 67 65 72 2d 6d 6f 64 65 20 76 65 72 69 66 79 20 74 68 61 74 20 74 Should.Ledger-mode.verify.that.t
7c00 68 65 20 65 78 65 63 75 74 61 62 6c 65 20 69 73 20 77 6f 72 6b 69 6e 67 3f 22 0a 20 20 3a 74 79 he.executable.is.working?"...:ty
7c20 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 65 78 65 pe.'boolean...:group.'ledger-exe
7c40 63 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 62 69 6e 61 72 79 2d 70 61 74 c)..(defcustom.ledger-binary-pat
7c60 68 20 22 6c 65 64 67 65 72 22 0a 20 20 22 50 61 74 68 20 74 6f 20 74 68 65 20 6c 65 64 67 65 72 h."ledger"..."Path.to.the.ledger
7c80 20 65 78 65 63 75 74 61 62 6c 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 66 69 6c 65 0a 20 20 3a 72 .executable."...:type.'file...:r
7ca0 69 73 6b 79 20 74 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 65 78 65 63 29 0a 0a 28 isky.t...:group.'ledger-exec)..(
7cc0 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 65 78 65 63 2d 68 61 6e 64 6c 65 2d 65 72 72 6f 72 20 28 defun.ledger-exec-handle-error.(
7ce0 6c 65 64 67 65 72 2d 65 72 72 66 69 6c 65 29 0a 20 20 22 44 65 61 6c 20 77 69 74 68 20 6c 65 64 ledger-errfile)..."Deal.with.led
7d00 67 65 72 20 65 72 72 6f 72 73 20 63 6f 6e 74 61 69 6e 65 64 20 69 6e 20 4c 45 44 47 45 52 2d 45 ger.errors.contained.in.LEDGER-E
7d20 52 52 46 49 4c 45 2e 22 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 RRFILE."...(with-current-buffer.
7d40 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 22 2a 4c 65 64 67 65 72 20 45 72 72 6f (get-buffer-create."*Ledger.Erro
7d60 72 2a 22 29 0a 20 20 20 20 28 6c 65 74 20 28 28 62 75 66 66 65 72 2d 72 65 61 64 2d 6f 6e 6c 79 r*").....(let.((buffer-read-only
7d80 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 28 70 6f 69 .nil)).......(delete-region.(poi
7da0 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 28 69 6e 73 65 nt-min).(point-max)).......(inse
7dc0 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 20 6c 65 64 67 65 72 2d 65 72 72 66 69 6c 65 29 rt-file-contents.ledger-errfile)
7de0 29 0a 20 20 20 20 28 76 69 65 77 2d 6d 6f 64 65 29 0a 20 20 20 20 28 73 65 74 71 20 62 75 66 66 ).....(view-mode).....(setq.buff
7e00 65 72 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 0a 20 20 20 20 28 63 75 72 72 65 6e 74 2d 62 75 66 er-read-only.t).....(current-buf
7e20 66 65 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 65 78 65 63 2d 73 75 63 63 65 fer)))..(defun.ledger-exec-succe
7e40 73 73 2d 70 20 28 65 78 69 74 2d 63 6f 64 65 20 6c 65 64 67 65 72 2d 6f 75 74 70 75 74 2d 62 75 ss-p.(exit-code.ledger-output-bu
7e60 66 66 65 72 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 45 58 49 54 2d ffer)..."Return.non-nil.if.EXIT-
7e80 43 4f 44 45 20 61 6e 64 20 4c 45 44 47 45 52 2d 4f 55 54 50 55 54 2d 42 55 46 46 45 52 20 69 6e CODE.and.LEDGER-OUTPUT-BUFFER.in
7ea0 64 69 63 61 74 65 20 73 75 63 63 65 73 73 2e 22 0a 20 20 28 61 6e 64 20 28 7a 65 72 6f 70 20 65 dicate.success."...(and.(zerop.e
7ec0 78 69 74 2d 63 6f 64 65 29 0a 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 xit-code)........(with-current-b
7ee0 75 66 66 65 72 20 6c 65 64 67 65 72 2d 6f 75 74 70 75 74 2d 62 75 66 66 65 72 0a 20 20 20 20 20 uffer.ledger-output-buffer......
7f00 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 ....(goto-char.(point-min)).....
7f20 20 20 20 20 20 28 6e 6f 74 20 28 61 6e 64 20 28 3e 20 28 62 75 66 66 65 72 2d 73 69 7a 65 29 20 .....(not.(and.(>.(buffer-size).
7f40 31 29 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 28 72 65 67 65 78 70 2d 71 75 6f 74 65 20 22 57 68 1).(looking-at.(regexp-quote."Wh
7f60 69 6c 65 22 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 65 78 65 63 2d ile")))))))..(defun.ledger-exec-
7f80 6c 65 64 67 65 72 20 28 69 6e 70 75 74 2d 62 75 66 66 65 72 20 26 6f 70 74 69 6f 6e 61 6c 20 6f ledger.(input-buffer.&optional.o
7fa0 75 74 70 75 74 2d 62 75 66 66 65 72 20 26 72 65 73 74 20 61 72 67 73 29 0a 20 20 22 52 75 6e 20 utput-buffer.&rest.args)..."Run.
7fc0 4c 65 64 67 65 72 20 75 73 69 6e 67 20 49 4e 50 55 54 2d 42 55 46 46 45 52 2e 0a 4f 70 74 69 6f Ledger.using.INPUT-BUFFER..Optio
7fe0 6e 61 6c 6c 79 20 63 61 70 74 75 72 65 20 6f 75 74 70 75 74 20 69 6e 20 4f 55 54 50 55 54 2d 42 nally.capture.output.in.OUTPUT-B
8000 55 46 46 45 52 2c 20 61 6e 64 20 70 61 73 73 20 41 52 47 53 20 6f 6e 20 74 68 65 0a 63 6f 6d 6d UFFER,.and.pass.ARGS.on.the.comm
8020 61 6e 64 20 6c 69 6e 65 2e 20 20 52 65 74 75 72 6e 73 20 4f 55 54 50 55 54 2d 42 55 46 46 45 52 and.line...Returns.OUTPUT-BUFFER
8040 20 69 66 20 6c 65 64 67 65 72 20 73 75 63 63 65 65 64 65 64 2c 0a 6f 74 68 65 72 77 69 73 65 20 .if.ledger.succeeded,.otherwise.
8060 74 68 65 20 65 72 72 6f 72 20 6f 75 74 70 75 74 20 69 73 20 64 69 73 70 6c 61 79 65 64 20 61 6e the.error.output.is.displayed.an
8080 64 20 61 6e 20 65 72 72 6f 72 20 69 73 20 72 61 69 73 65 64 2e 22 0a 20 20 28 75 6e 6c 65 73 73 d.an.error.is.raised."...(unless
80a0 20 28 61 6e 64 20 6c 65 64 67 65 72 2d 62 69 6e 61 72 79 2d 70 61 74 68 0a 20 20 20 20 20 20 20 .(and.ledger-binary-path........
80c0 20 20 20 20 20 20 20 20 28 6f 72 20 28 61 6e 64 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 ........(or.(and.(file-exists-p.
80e0 6c 65 64 67 65 72 2d 62 69 6e 61 72 79 2d 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ledger-binary-path).............
8100 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 65 78 65 63 75 74 61 62 6c 65 2d 70 20 6c ............(file-executable-p.l
8120 65 64 67 65 72 2d 62 69 6e 61 72 79 2d 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 edger-binary-path)).............
8140 20 20 20 20 20 20 20 28 65 78 65 63 75 74 61 62 6c 65 2d 66 69 6e 64 20 6c 65 64 67 65 72 2d 62 .......(executable-find.ledger-b
8160 69 6e 61 72 79 2d 70 61 74 68 29 29 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 60 6c 65 64 67 65 inary-path))).....(error."`ledge
8180 72 2d 62 69 6e 61 72 79 2d 70 61 74 68 27 20 28 76 61 6c 75 65 3a 20 25 73 29 20 69 73 20 6e 6f r-binary-path'.(value:.%s).is.no
81a0 74 20 65 78 65 63 75 74 61 62 6c 65 22 20 6c 65 64 67 65 72 2d 62 69 6e 61 72 79 2d 70 61 74 68 t.executable".ledger-binary-path
81c0 29 29 0a 20 20 28 6c 65 74 20 28 28 62 75 66 20 28 6f 72 20 69 6e 70 75 74 2d 62 75 66 66 65 72 ))...(let.((buf.(or.input-buffer
81e0 20 28 66 69 6e 64 2d 66 69 6c 65 2d 6e 6f 73 65 6c 65 63 74 20 28 6c 65 64 67 65 72 2d 6d 61 73 .(find-file-noselect.(ledger-mas
8200 74 65 72 2d 66 69 6c 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 6f 75 74 62 75 66 20 28 6f 72 ter-file)))).........(outbuf.(or
8220 20 6f 75 74 70 75 74 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .output-buffer..................
8240 20 20 20 28 67 65 6e 65 72 61 74 65 2d 6e 65 77 2d 62 75 66 66 65 72 20 22 20 2a 6c 65 64 67 65 ...(generate-new-buffer.".*ledge
8260 72 2d 74 6d 70 2a 22 29 29 29 0a 20 20 20 20 20 20 20 20 28 65 72 72 66 69 6c 65 20 28 6d 61 6b r-tmp*"))).........(errfile.(mak
8280 65 2d 74 65 6d 70 2d 66 69 6c 65 20 22 6c 65 64 67 65 72 2d 65 72 72 6f 72 73 22 29 29 29 0a 20 e-temp-file."ledger-errors")))..
82a0 20 20 20 28 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63 74 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 ...(unwind-protect.........(with
82c0 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 0a 20 20 20 20 20 20 20 20 20 20 28 6c -current-buffer.buf...........(l
82e0 65 74 20 28 28 65 78 69 74 2d 63 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 et.((exit-code..................
8300 28 6c 65 74 20 28 28 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 2d 66 6f 72 2d 77 72 69 74 65 20 27 (let.((coding-system-for-write.'
8320 75 74 66 2d 38 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 utf-8)........................(c
8340 6f 64 69 6e 67 2d 73 79 73 74 65 6d 2d 66 6f 72 2d 72 65 61 64 20 27 75 74 66 2d 38 29 29 0a 20 oding-system-for-read.'utf-8))..
8360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 6c 79 20 23 27 63 61 6c 6c 2d ..................(apply.#'call-
8380 70 72 6f 63 65 73 73 2d 72 65 67 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 process-region..................
83a0 20 20 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 20 28 6c 69 73 74 20 28 70 6f 69 6e 74 2d 6d 69 .........(append.(list.(point-mi
83c0 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n).(point-max)..................
83e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 64 67 65 72 2d 62 69 .......................ledger-bi
8400 6e 61 72 79 2d 70 61 74 68 20 6e 69 6c 20 28 6c 69 73 74 20 6f 75 74 62 75 66 20 65 72 72 66 69 nary-path.nil.(list.outbuf.errfi
8420 6c 65 29 20 6e 69 6c 20 22 2d 66 22 20 22 2d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 le).nil."-f"."-")...............
8440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 22 2d 2d 64 61 74 ....................(list."--dat
8460 65 2d 66 6f 72 6d 61 74 22 20 6c 65 64 67 65 72 2d 64 65 66 61 75 6c 74 2d 64 61 74 65 2d 66 6f e-format".ledger-default-date-fo
8480 72 6d 61 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rmat)...........................
84a0 20 20 20 20 20 20 20 20 61 72 67 73 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 ........args))))).............(i
84c0 66 20 28 6c 65 64 67 65 72 2d 65 78 65 63 2d 73 75 63 63 65 73 73 2d 70 20 65 78 69 74 2d 63 6f f.(ledger-exec-success-p.exit-co
84e0 64 65 20 6f 75 74 62 75 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 75 74 62 75 de.outbuf).................outbu
8500 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 20 f...............(display-buffer.
8520 28 6c 65 64 67 65 72 2d 65 78 65 63 2d 68 61 6e 64 6c 65 2d 65 72 72 6f 72 20 65 72 72 66 69 6c (ledger-exec-handle-error.errfil
8540 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4c 65 64 67 65 72 e))...............(error."Ledger
8560 20 65 78 65 63 75 74 69 6f 6e 20 66 61 69 6c 65 64 22 29 29 29 29 0a 20 20 20 20 20 20 28 64 65 .execution.failed")))).......(de
8580 6c 65 74 65 2d 66 69 6c 65 20 65 72 72 66 69 6c 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 lete-file.errfile))))..(defun.le
85a0 64 67 65 72 2d 76 65 72 73 69 6f 6e 2d 67 72 65 61 74 65 72 2d 70 20 28 6e 65 65 64 65 64 29 0a dger-version-greater-p.(needed).
85c0 20 20 22 56 65 72 69 66 79 20 74 68 65 20 6c 65 64 67 65 72 20 62 69 6e 61 72 79 20 76 65 72 73 .."Verify.the.ledger.binary.vers
85e0 69 6f 6e 20 69 73 20 61 74 20 6c 65 61 73 74 20 4e 45 45 44 45 44 2e 22 0a 20 20 28 6c 65 74 20 ion.is.at.least.NEEDED."...(let.
8600 28 28 76 65 72 73 69 6f 6e 2d 73 74 72 69 6e 67 73 20 27 28 29 29 29 0a 20 20 20 20 28 77 69 74 ((version-strings.'())).....(wit
8620 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 6c 65 64 67 65 h-temp-buffer.......(when.(ledge
8640 72 2d 65 78 65 63 2d 6c 65 64 67 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 28 r-exec-ledger.(current-buffer).(
8660 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 22 2d 2d 76 65 72 73 69 6f 6e 22 29 0a 20 20 20 current-buffer)."--version")....
8680 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 .....(goto-char.(point-min))....
86a0 20 20 20 20 20 28 64 65 6c 65 74 65 2d 68 6f 72 69 7a 6f 6e 74 61 6c 2d 73 70 61 63 65 29 0a 20 .....(delete-horizontal-space)..
86c0 20 20 20 20 20 20 20 28 73 65 74 71 20 76 65 72 73 69 6f 6e 2d 73 74 72 69 6e 67 73 20 28 73 70 .......(setq.version-strings.(sp
86e0 6c 69 74 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 lit-string......................
8700 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 ..........(buffer-substring-no-p
8720 72 6f 70 65 72 74 69 65 73 20 28 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 roperties.(point)...............
8740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
8760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 0a .................(point-max)))).
8780 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 28 ........(if.(and.(string-match.(
87a0 72 65 67 65 78 70 2d 71 75 6f 74 65 20 22 4c 65 64 67 65 72 22 29 20 28 63 61 72 20 76 65 72 73 regexp-quote."Ledger").(car.vers
87c0 69 6f 6e 2d 73 74 72 69 6e 67 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ion-strings))..................(
87e0 6f 72 20 28 73 74 72 69 6e 67 3d 20 6e 65 65 64 65 64 20 28 63 61 64 72 20 76 65 72 73 69 6f 6e or.(string=.needed.(cadr.version
8800 2d 73 74 72 69 6e 67 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -strings))......................
8820 28 73 74 72 69 6e 67 3c 20 6e 65 65 64 65 64 20 28 63 61 64 72 20 76 65 72 73 69 6f 6e 2d 73 74 (string<.needed.(cadr.version-st
8840 72 69 6e 67 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 20 3b 3b 20 73 75 63 63 65 rings)))).............t.;;.succe
8860 73 73 0a 20 20 20 20 20 20 20 20 20 20 6e 69 6c 29 29 29 29 29 20 3b 3b 66 61 69 6c 75 72 65 0a ss...........nil))))).;;failure.
8880 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 63 68 65 63 6b 2d 76 65 72 73 69 6f 6e 20 28 29 0a .(defun.ledger-check-version.().
88a0 20 20 22 56 65 72 69 66 79 20 74 68 61 74 20 6c 65 64 67 65 72 20 77 6f 72 6b 73 20 61 6e 64 20 .."Verify.that.ledger.works.and.
88c0 69 73 20 6d 6f 64 65 72 6e 20 65 6e 6f 75 67 68 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 is.modern.enough."...(interactiv
88e0 65 29 0a 20 20 28 69 66 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 73 68 6f 75 6c 64 2d 63 68 65 63 e)...(if.ledger-mode-should-chec
8900 6b 2d 76 65 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 69 66 20 28 73 65 74 71 20 6c 65 64 67 65 72 k-version.......(if.(setq.ledger
8920 2d 77 6f 72 6b 73 20 28 6c 65 64 67 65 72 2d 76 65 72 73 69 6f 6e 2d 67 72 65 61 74 65 72 2d 70 -works.(ledger-version-greater-p
8940 20 6c 65 64 67 65 72 2d 76 65 72 73 69 6f 6e 2d 6e 65 65 64 65 64 29 29 0a 20 20 20 20 20 20 20 .ledger-version-needed))........
8960 20 20 20 28 6d 65 73 73 61 67 65 20 22 47 6f 6f 64 20 4c 65 64 67 65 72 20 56 65 72 73 69 6f 6e ...(message."Good.Ledger.Version
8980 22 29 0a 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 42 61 64 20 4c 65 64 67 65 72 20 ").........(message."Bad.Ledger.
89a0 56 65 72 73 69 6f 6e 22 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 6c 65 64 67 65 72 2d 65 Version"))))..(provide.'ledger-e
89c0 78 65 63 29 0a 0a 3b 3b 3b 20 6c 65 64 67 65 72 2d 65 78 65 63 2e 65 6c 20 65 6e 64 73 20 68 65 xec)..;;;.ledger-exec.el.ends.he
89e0 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 re..............................
8a00 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 31 2e 31 34 33 35 2f 6c 65 64 67 65 72 ledger-mode-20240411.1435/ledger
8a20 2d 70 6f 73 74 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -post.el........................
8a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8a60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
8a80 30 30 31 37 32 36 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 37 34 35 00 20 30 00 00 00 0017261.00000000000.015745..0...
8aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8b00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
8b20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
8b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8c00 3b 3b 3b 20 6c 65 64 67 65 72 2d 70 6f 73 74 2e 65 6c 20 2d 2d 2d 20 48 65 6c 70 65 72 20 63 6f ;;;.ledger-post.el.---.Helper.co
8c20 64 65 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 74 68 65 20 22 6c 65 64 67 65 72 22 20 63 6f 6d de.for.use.with.the."ledger".com
8c40 6d 61 6e 64 2d 6c 69 6e 65 20 74 6f 6f 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 mand-line.tool..-*-.lexical-bind
8c60 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 ing:.t;.-*-..;;.Copyright.(C).20
8c80 30 33 2d 32 30 31 36 20 4a 6f 68 6e 20 57 69 65 67 6c 65 79 20 28 6a 6f 68 6e 77 20 41 54 20 67 03-2016.John.Wiegley.(johnw.AT.g
8ca0 6e 75 20 44 4f 54 20 6f 72 67 29 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 6e 6f 74 nu.DOT.org)..;;.This.file.is.not
8cc0 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 54 68 69 73 20 69 73 20 .part.of.GNU.Emacs...;;.This.is.
8ce0 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 free.software;.you.can.redistrib
8d00 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 20 75 6e 64 65 72 0a 3b 3b ute.it.and/or.modify.it.under.;;
8d20 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 .the.terms.of.the.GNU.General.Pu
8d40 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 blic.License.as.published.by.the
8d60 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 .Free.;;.Software.Foundation;.ei
8d80 74 68 65 72 20 76 65 72 73 69 6f 6e 20 32 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 ther.version.2,.or.(at.your.opti
8da0 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 0a 3b 3b 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 on).any.later.;;.version..;;.;;.
8dc0 54 68 69 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 This.is.distributed.in.the.hope.
8de0 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 that.it.will.be.useful,.but.WITH
8e00 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 OUT.;;.ANY.WARRANTY;.without.eve
8e20 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 n.the.implied.warranty.of.MERCHA
8e40 4e 54 41 42 49 4c 49 54 59 20 6f 72 0a 3b 3b 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 NTABILITY.or.;;.FITNESS.FOR.A.PA
8e60 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 RTICULAR.PURPOSE...See.the.GNU.G
8e80 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 66 6f 72 20 6d 6f 72 eneral.Public.License.;;.for.mor
8ea0 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 e.details..;;.;;.You.should.have
8ec0 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 .received.a.copy.of.the.GNU.Gene
8ee0 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 ral.Public.License.;;.along.with
8f00 20 47 4e 55 20 45 6d 61 63 73 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 .GNU.Emacs;.see.the.file.COPYING
8f20 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 20 ...If.not,.write.to.the.;;.Free.
8f40 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 Software.Foundation,.Inc.,.51.Fr
8f60 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 anklin.Street,.Fifth.Floor,.Bost
8f80 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 20 55 53 41 2e 0a 0a 0a 3b 3b 3b 20 on,.;;.MA.02110-1301.USA....;;;.
8fa0 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 20 55 74 69 6c 69 74 79 20 66 75 6e 63 74 69 6f 6e 73 Commentary:.;;.Utility.functions
8fc0 20 66 6f 72 20 64 65 61 6c 69 6e 67 20 77 69 74 68 20 70 6f 73 74 69 6e 67 73 2e 0a 0a 28 72 65 .for.dealing.with.postings...(re
8fe0 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 72 65 67 65 78 29 0a 28 72 65 71 75 69 72 65 20 27 6c quire.'ledger-regex).(require.'l
9000 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 29 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 edger-navigate)..(declare-functi
9020 6f 6e 20 63 61 6c 63 2d 72 65 6e 75 6d 62 65 72 2d 73 74 61 63 6b 20 22 63 61 6c 63 22 20 28 29 on.calc-renumber-stack."calc".()
9040 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6c 65 64 67 65 72 2d 73 74 72 69 6e ).(declare-function.ledger-strin
9060 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 22 6c 65 64 67 65 72 2d 63 6f 6d 6d 6f 64 69 74 69 65 73 22 g-to-number."ledger-commodities"
9080 20 28 73 74 72 20 26 6f 70 74 69 6f 6e 61 6c 20 64 65 63 69 6d 61 6c 2d 63 6f 6d 6d 61 29 29 0a .(str.&optional.decimal-comma)).
90a0 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 64 65 66 67 72 6f 75 70 20 6c 65 64 67 65 72 2d 70 6f 73 .;;;.Code:..(defgroup.ledger-pos
90c0 74 20 6e 69 6c 0a 20 20 22 4f 70 74 69 6f 6e 73 20 66 6f 72 20 63 6f 6e 74 72 6f 6c 6c 69 6e 67 t.nil..."Options.for.controlling
90e0 20 68 6f 77 20 4c 65 64 67 65 72 2d 6d 6f 64 65 20 64 65 61 6c 73 20 77 69 74 68 20 70 6f 73 74 .how.Ledger-mode.deals.with.post
9100 69 6e 67 73 20 61 6e 64 20 63 6f 6d 70 6c 65 74 69 6f 6e 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c ings.and.completion"...:group.'l
9120 65 64 67 65 72 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 edger)..(defcustom.ledger-post-a
9140 63 63 6f 75 6e 74 2d 61 6c 69 67 6e 6d 65 6e 74 2d 63 6f 6c 75 6d 6e 20 34 0a 20 20 22 54 68 65 ccount-alignment-column.4..."The
9160 20 63 6f 6c 75 6d 6e 20 4c 65 64 67 65 72 2d 6d 6f 64 65 20 61 74 74 65 6d 70 74 73 20 74 6f 20 .column.Ledger-mode.attempts.to.
9180 61 6c 69 67 6e 20 61 63 63 6f 75 6e 74 73 20 74 6f 2e 22 0a 20 20 3a 74 79 70 65 20 27 69 6e 74 align.accounts.to."...:type.'int
91a0 65 67 65 72 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 70 6f 73 74 0a 20 20 3a 73 61 eger...:group.'ledger-post...:sa
91c0 66 65 20 27 69 6e 74 65 67 65 72 70 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 fe.'integerp)..(defcustom.ledger
91e0 2d 70 6f 73 74 2d 61 6d 6f 75 6e 74 2d 61 6c 69 67 6e 6d 65 6e 74 2d 63 6f 6c 75 6d 6e 20 35 32 -post-amount-alignment-column.52
9200 0a 20 20 22 54 68 65 20 63 6f 6c 75 6d 6e 20 4c 65 64 67 65 72 2d 6d 6f 64 65 20 61 74 74 65 6d ..."The.column.Ledger-mode.attem
9220 70 74 73 20 74 6f 20 61 6c 69 67 6e 20 61 6d 6f 75 6e 74 73 20 74 6f 2e 22 0a 20 20 3a 74 79 70 pts.to.align.amounts.to."...:typ
9240 65 20 27 69 6e 74 65 67 65 72 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 70 6f 73 74 e.'integer...:group.'ledger-post
9260 0a 20 20 3a 73 61 66 65 20 27 69 6e 74 65 67 65 72 70 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 ...:safe.'integerp)..(defcustom.
9280 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 6d 6f 75 6e 74 2d 61 6c 69 67 6e 6d 65 6e 74 2d 61 74 20 ledger-post-amount-alignment-at.
92a0 3a 65 6e 64 0a 20 20 22 50 6f 73 69 74 69 6f 6e 20 61 74 20 77 68 69 63 68 20 74 68 65 20 61 6d :end..."Position.at.which.the.am
92c0 6f 75 6e 74 20 69 73 20 61 6c 69 67 6e 65 64 2e 0a 0a 43 61 6e 20 62 65 20 3a 65 6e 64 20 74 6f ount.is.aligned...Can.be.:end.to
92e0 20 61 6c 69 67 6e 20 6f 6e 20 74 68 65 20 6c 61 73 74 20 6e 75 6d 62 65 72 20 6f 66 20 74 68 65 .align.on.the.last.number.of.the
9300 20 61 6d 6f 75 6e 74 20 28 63 61 6e 20 62 65 0a 66 6f 6c 6c 6f 77 65 64 20 62 79 20 75 6e 61 6c .amount.(can.be.followed.by.unal
9320 69 67 6e 65 64 20 63 6f 6d 6d 6f 64 69 74 79 29 20 6f 72 20 3a 64 65 63 69 6d 61 6c 20 74 6f 20 igned.commodity).or.:decimal.to.
9340 61 6c 69 67 6e 20 61 74 20 74 68 65 0a 64 65 63 69 6d 61 6c 20 73 65 70 61 72 61 74 6f 72 2e 22 align.at.the.decimal.separator."
9360 0a 20 20 3a 74 79 70 65 20 27 28 72 61 64 69 6f 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 61 6c ...:type.'(radio.(const.:tag."al
9380 69 67 6e 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20 61 6d 6f 75 6e 74 22 20 3a 65 6e 64 29 0a ign.at.the.end.of.amount".:end).
93a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 61 6c 69 ................(const.:tag."ali
93c0 67 6e 20 61 74 20 74 68 65 20 64 65 63 69 6d 61 6c 20 73 65 70 61 72 61 74 6f 72 22 20 3a 64 65 gn.at.the.decimal.separator".:de
93e0 63 69 6d 61 6c 29 29 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 70 6f 73 74 0a 20 20 cimal))...:group.'ledger-post...
9400 3a 73 61 66 65 20 28 6c 61 6d 62 64 61 20 28 78 29 20 28 6d 65 6d 71 20 78 20 27 28 3a 65 6e 64 :safe.(lambda.(x).(memq.x.'(:end
9420 20 3a 64 65 63 69 6d 61 6c 29 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 .:decimal))))..(defcustom.ledger
9440 2d 70 6f 73 74 2d 61 75 74 6f 2d 61 6c 69 67 6e 20 74 0a 20 20 22 57 68 65 6e 20 6e 6f 6e 2d 6e -post-auto-align.t..."When.non-n
9460 69 6c 2c 20 72 65 61 6c 69 67 6e 20 70 6f 73 74 20 61 6d 6f 75 6e 74 73 20 77 68 65 6e 20 69 6e il,.realign.post.amounts.when.in
9480 64 65 6e 74 69 6e 67 20 6f 72 20 63 6f 6d 70 6c 65 74 69 6e 67 2e 22 0a 20 20 3a 74 79 70 65 20 denting.or.completing."...:type.
94a0 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 70 6f 73 74 0a 20 'boolean...:group.'ledger-post..
94c0 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 6c 65 64 67 65 72 2d 6d 6f 64 65 20 .:package-version.'(ledger-mode.
94e0 2e 20 22 34 2e 30 2e 30 22 29 0a 20 20 3a 73 61 66 65 20 27 62 6f 6f 6c 65 61 6e 70 29 0a 0a 28 .."4.0.0")...:safe.'booleanp)..(
9500 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6e 65 78 74 2d 61 6d 6f 75 6e 74 20 28 26 6f 70 74 69 6f defun.ledger-next-amount.(&optio
9520 6e 61 6c 20 65 6e 64 29 0a 20 20 22 4d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 74 68 65 20 6e 65 nal.end)..."Move.point.to.the.ne
9540 78 74 20 61 6d 6f 75 6e 74 2c 20 61 73 20 6c 6f 6e 67 20 61 73 20 69 74 20 69 73 20 6e 6f 74 20 xt.amount,.as.long.as.it.is.not.
9560 70 61 73 74 20 45 4e 44 2e 0a 52 65 74 75 72 6e 20 74 68 65 20 77 69 64 74 68 20 6f 66 20 74 68 past.END..Return.the.width.of.th
9580 65 20 61 6d 6f 75 6e 74 20 66 69 65 6c 64 20 61 73 20 61 6e 20 69 6e 74 65 67 65 72 20 61 6e 64 e.amount.field.as.an.integer.and
95a0 20 6c 65 61 76 65 0a 70 6f 69 6e 74 20 61 74 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 .leave.point.at.beginning.of.the
95c0 20 63 6f 6d 6d 6f 64 69 74 79 2e 22 0a 20 20 3b 3b 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c .commodity."...;;(beginning-of-l
95e0 69 6e 65 29 0a 20 20 28 6c 65 74 20 28 28 63 61 73 65 2d 66 6f 6c 64 2d 73 65 61 72 63 68 20 6e ine)...(let.((case-fold-search.n
9600 69 6c 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 il)).....(when.(re-search-forwar
9620 64 20 6c 65 64 67 65 72 2d 61 6d 6f 75 6e 74 2d 72 65 67 65 78 20 65 6e 64 20 74 29 0a 20 20 20 d.ledger-amount-regex.end.t)....
9640 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 ...(goto-char.(match-beginning.0
9660 29 29 0a 20 20 20 20 20 20 28 73 6b 69 70 2d 73 79 6e 74 61 78 2d 66 6f 72 77 61 72 64 20 22 20 )).......(skip-syntax-forward.".
9680 22 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 28 28 65 71 20 6c 65 64 67 65 ").......(cond........((eq.ledge
96a0 72 2d 70 6f 73 74 2d 61 6d 6f 75 6e 74 2d 61 6c 69 67 6e 6d 65 6e 74 2d 61 74 20 3a 65 6e 64 29 r-post-amount-alignment-at.:end)
96c0 0a 20 20 20 20 20 20 20 20 28 2d 20 28 6f 72 20 28 6d 61 74 63 68 2d 65 6e 64 20 34 29 20 28 6d .........(-.(or.(match-end.4).(m
96e0 61 74 63 68 2d 65 6e 64 20 33 29 29 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 28 28 atch-end.3)).(point)))........((
9700 65 71 20 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 6d 6f 75 6e 74 2d 61 6c 69 67 6e 6d 65 6e 74 2d eq.ledger-post-amount-alignment-
9720 61 74 20 3a 64 65 63 69 6d 61 6c 29 0a 20 20 20 20 20 20 20 20 28 2d 20 28 6d 61 74 63 68 2d 65 at.:decimal).........(-.(match-e
9740 6e 64 20 33 29 20 28 70 6f 69 6e 74 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 nd.3).(point)))))))..(defun.ledg
9760 65 72 2d 6e 65 78 74 2d 61 63 63 6f 75 6e 74 20 28 26 6f 70 74 69 6f 6e 61 6c 20 65 6e 64 29 0a er-next-account.(&optional.end).
9780 20 20 22 4d 6f 76 65 20 74 6f 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 .."Move.to.the.beginning.of.the.
97a0 70 6f 73 74 69 6e 67 2c 20 6f 72 20 73 74 61 74 75 73 20 6d 61 72 6b 65 72 2e 0a 52 65 74 75 72 posting,.or.status.marker..Retur
97c0 6e 20 74 68 65 20 63 6f 6c 75 6d 6e 20 6f 66 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 n.the.column.of.the.beginning.of
97e0 20 74 68 65 20 61 63 63 6f 75 6e 74 20 61 6e 64 20 6c 65 61 76 65 20 70 6f 69 6e 74 0a 61 74 20 .the.account.and.leave.point.at.
9800 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 61 63 63 6f 75 6e 74 2e 0a 4c 6f 6f 6b 73 20 6f 6e 6c 79 beginning.of.account..Looks.only
9820 20 61 73 20 66 61 72 20 61 73 20 45 4e 44 2c 20 69 66 20 73 75 70 70 6c 69 65 64 2c 20 6f 74 68 .as.far.as.END,.if.supplied,.oth
9840 65 72 77 69 73 65 20 60 70 6f 69 6e 74 2d 6d 61 78 27 2e 22 0a 20 20 28 6c 65 74 20 28 28 65 6e erwise.`point-max'."...(let.((en
9860 64 20 28 6f 72 20 65 6e 64 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 0a 20 20 20 20 28 69 66 d.(or.end.(point-max)))).....(if
9880 20 28 3e 20 65 6e 64 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 .(>.end.(point)).........(when.(
98a0 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 re-search-forward.ledger-account
98c0 2d 61 6e 79 2d 73 74 61 74 75 73 2d 72 65 67 65 78 20 28 31 2b 20 65 6e 64 29 20 74 29 0a 20 20 -any-status-regex.(1+.end).t)...
98e0 20 20 20 20 20 20 20 20 3b 3b 20 74 68 65 20 31 2b 20 69 73 20 74 6f 20 6d 61 6b 65 20 73 75 72 ........;;.the.1+.is.to.make.sur
9900 65 20 77 65 20 63 61 6e 20 63 61 74 63 68 20 74 68 65 20 6e 65 77 6c 69 6e 65 0a 20 20 20 20 20 e.we.can.catch.the.newline......
9920 20 20 20 20 20 28 69 66 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 31 29 0a 20 20 20 .....(if.(match-beginning.1)....
9940 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 2d 62 65 67 ...........(goto-char.(match-beg
9960 69 6e 6e 69 6e 67 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 inning.1)).............(goto-cha
9980 72 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 32 29 29 29 0a 20 20 20 20 20 20 20 20 r.(match-beginning.2))).........
99a0 20 20 28 63 75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c ..(current-column)))))..(defun.l
99c0 65 64 67 65 72 2d 70 6f 73 74 2d 61 6c 69 67 6e 2d 78 61 63 74 20 28 70 6f 73 29 0a 20 20 22 41 edger-post-align-xact.(pos)..."A
99e0 6c 69 67 6e 20 61 6c 6c 20 74 68 65 20 70 6f 73 74 69 6e 67 20 69 6e 20 74 68 65 20 78 61 63 74 lign.all.the.posting.in.the.xact
9a00 20 61 74 20 50 4f 53 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 64 22 29 0a 20 20 .at.POS."...(interactive."d")...
9a20 28 6c 65 74 20 28 28 62 6f 75 6e 64 73 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 66 (let.((bounds.(ledger-navigate-f
9a40 69 6e 64 2d 78 61 63 74 2d 65 78 74 65 6e 74 73 20 70 6f 73 29 29 29 0a 20 20 20 20 28 6c 65 64 ind-xact-extents.pos))).....(led
9a60 67 65 72 2d 70 6f 73 74 2d 61 6c 69 67 6e 2d 70 6f 73 74 69 6e 67 73 20 28 63 61 72 20 62 6f 75 ger-post-align-postings.(car.bou
9a80 6e 64 73 29 20 28 63 61 64 72 20 62 6f 75 6e 64 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 nds).(cadr.bounds))))..(defun.le
9aa0 64 67 65 72 2d 70 6f 73 74 2d 61 6c 69 67 6e 2d 70 6f 73 74 69 6e 67 73 20 28 62 65 67 20 65 6e dger-post-align-postings.(beg.en
9ac0 64 29 0a 20 20 22 41 6c 69 67 6e 20 61 6c 6c 20 61 63 63 6f 75 6e 74 73 20 61 6e 64 20 61 6d 6f d)..."Align.all.accounts.and.amo
9ae0 75 6e 74 73 20 62 65 74 77 65 65 6e 20 42 45 47 20 61 6e 64 20 45 4e 44 2e 0a 54 68 65 20 63 75 unts.between.BEG.and.END..The.cu
9b00 72 72 65 6e 74 20 72 65 67 69 6f 6e 20 69 73 20 75 73 65 64 2c 20 6f 72 2c 20 69 66 20 6e 6f 20 rrent.region.is.used,.or,.if.no.
9b20 72 65 67 69 6f 6e 2c 20 74 68 65 20 63 75 72 72 65 6e 74 20 6c 69 6e 65 2e 22 0a 20 20 28 69 6e region,.the.current.line."...(in
9b40 74 65 72 61 63 74 69 76 65 20 22 72 22 29 0a 20 20 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 74 teractive."r")...(save-match-dat
9b60 61 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 6c 65 74 a.....(save-excursion.......(let
9b80 20 28 28 69 6e 68 69 62 69 74 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 2d 68 6f 6f 6b 73 20 74 29 .((inhibit-modification-hooks.t)
9ba0 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 45 78 74 65 6e 64 20 72 65 67 69 6f 6e 20 74 6f .............;;.Extend.region.to
9bc0 20 77 68 6f 6c 65 20 6c 69 6e 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 62 65 67 20 28 73 .whole.lines.............(beg.(s
9be0 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 20 28 67 6f 74 6f 2d 63 68 61 72 20 62 65 67 29 20 28 6c ave-excursion.(goto-char.beg).(l
9c00 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 29 29 0a 20 20 20 20 20 20 ine-beginning-position))).......
9c20 20 20 20 20 20 20 28 65 6e 64 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 20 28 67 6f 74 6f ......(end.(save-excursion.(goto
9c40 2d 63 68 61 72 20 65 6e 64 29 20 28 6d 6f 76 65 2d 65 6e 64 2d 6f 66 2d 6c 69 6e 65 20 31 29 20 -char.end).(move-end-of-line.1).
9c60 28 70 6f 69 6e 74 2d 6d 61 72 6b 65 72 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 75 6e 74 61 62 (point-marker)))).........(untab
9c80 69 66 79 20 62 65 67 20 65 6e 64 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 ify.beg.end).........(goto-char.
9ca0 62 65 67 29 0a 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 3c 20 28 70 6f 69 6e 74 29 20 65 beg).........(while.(<.(point).e
9cc0 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 2d nd)...........(when.(looking-at-
9ce0 70 20 22 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 66 69 78 20 73 70 61 63 65 73 p.".").............;;.fix.spaces
9d00 20 61 74 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 6c 69 6e 65 3a 0a 20 20 20 20 20 20 20 20 20 .at.beginning.of.line:..........
9d20 20 20 20 28 6a 75 73 74 2d 6f 6e 65 2d 73 70 61 63 65 20 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 ...(just-one-space.ledger-post-a
9d40 63 63 6f 75 6e 74 2d 61 6c 69 67 6e 6d 65 6e 74 2d 63 6f 6c 75 6d 6e 29 0a 20 20 20 20 20 20 20 ccount-alignment-column)........
9d60 20 20 20 20 20 3b 3b 20 66 69 78 20 73 70 61 63 65 73 20 62 65 66 6f 72 65 20 61 6d 6f 75 6e 74 .....;;.fix.spaces.before.amount
9d80 20 69 66 20 61 6e 79 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 72 65 2d 73 .if.any:.............(when.(re-s
9da0 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5c 74 5c 5c 7c 20 20 5c 5c 7c 20 5c 74 22 20 28 6c earch-forward."\t\\|..\\|.\t".(l
9dc0 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 ine-end-position).t)............
9de0 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 ...(goto-char.(match-beginning.0
9e00 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 61 63 63 74 2d 65 6e 64 ))...............(let.((acct-end
9e20 2d 63 6f 6c 75 6d 6e 20 28 63 75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 29 0a 20 20 20 20 20 20 -column.(current-column)).......
9e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6d 74 2d 77 69 64 74 68 20 28 6c 65 64 67 65 72 ..............(amt-width.(ledger
9e60 2d 6e 65 78 74 2d 61 6d 6f 75 6e 74 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 -next-amount.(line-end-position)
9e80 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 6d 74 2d 61 64 6a 75 73 )).....................amt-adjus
9ea0 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 61 6d 74 2d 77 69 64 t).................(when.amt-wid
9ec0 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 2f 3d 20 30 20 28 th...................(if.(/=.0.(
9ee0 73 65 74 71 20 61 6d 74 2d 61 64 6a 75 73 74 20 28 2d 20 28 69 66 20 28 3e 20 28 2d 20 6c 65 64 setq.amt-adjust.(-.(if.(>.(-.led
9f00 67 65 72 2d 70 6f 73 74 2d 61 6d 6f 75 6e 74 2d 61 6c 69 67 6e 6d 65 6e 74 2d 63 6f 6c 75 6d 6e ger-post-amount-alignment-column
9f20 20 61 6d 74 2d 77 69 64 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .amt-width).....................
9f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
9f60 20 20 20 28 2b 20 32 20 61 63 63 74 2d 65 6e 64 2d 63 6f 6c 75 6d 6e 29 29 0a 20 20 20 20 20 20 ...(+.2.acct-end-column)).......
9f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
9fa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 6d 6f 75 6e 74 ..............ledger-post-amount
9fc0 2d 61 6c 69 67 6e 6d 65 6e 74 2d 63 6f 6c 75 6d 6e 20 3b 3b 77 65 20 68 61 76 65 20 72 6f 6f 6d -alignment-column.;;we.have.room
9fe0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
a000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2b 20 61 63 63 74 2d 65 6e 64 2d 63 ...................(+.acct-end-c
a020 6f 6c 75 6d 6e 20 32 20 61 6d 74 2d 77 69 64 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 olumn.2.amt-width)).............
a040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
a060 20 20 20 20 61 6d 74 2d 77 69 64 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....amt-width...................
a080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 ..............................(c
a0a0 75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 urrent-column))))...............
a0c0 20 20 20 20 20 20 20 20 28 69 66 20 28 3e 20 61 6d 74 2d 61 64 6a 75 73 74 20 30 29 0a 20 20 20 ........(if.(>.amt-adjust.0)....
a0e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 .......................(insert.(
a100 6d 61 6b 65 2d 73 74 72 69 6e 67 20 61 6d 74 2d 61 64 6a 75 73 74 20 3f 20 29 29 0a 20 20 20 20 make-string.amt-adjust.?.)).....
a120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 63 68 61 72 ....................(delete-char
a140 20 61 6d 74 2d 61 64 6a 75 73 74 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f .amt-adjust)))))))...........(fo
a160 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 rward-line.1))))))..(defun.ledge
a180 72 2d 69 6e 64 65 6e 74 2d 6c 69 6e 65 20 28 29 0a 20 20 22 49 6e 64 65 6e 74 20 74 68 65 20 63 r-indent-line.()..."Indent.the.c
a1a0 75 72 72 65 6e 74 20 6c 69 6e 65 2e 22 0a 20 20 3b 3b 20 45 6e 73 75 72 65 20 69 6e 64 65 6e 74 urrent.line."...;;.Ensure.indent
a1c0 20 69 66 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 6c 69 6e 65 20 77 61 73 20 69 6e 64 65 6e 74 .if.the.previous.line.was.indent
a1e0 65 64 0a 20 20 28 6c 65 74 20 28 28 69 6e 64 65 6e 74 2d 6c 65 76 65 6c 20 28 73 61 76 65 2d 65 ed...(let.((indent-level.(save-e
a200 78 63 75 72 73 69 6f 6e 20 28 69 66 20 28 61 6e 64 20 28 7a 65 72 6f 70 20 28 66 6f 72 77 61 72 xcursion.(if.(and.(zerop.(forwar
a220 64 2d 6c 69 6e 65 20 2d 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 d-line.-1)).....................
a240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 6d 71 ...........................(memq
a260 20 28 6c 65 64 67 65 72 2d 74 68 69 6e 67 2d 61 74 2d 70 6f 69 6e 74 29 20 27 28 74 72 61 6e 73 .(ledger-thing-at-point).'(trans
a280 61 63 74 69 6f 6e 20 70 6f 73 74 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 action.posting)))...............
a2a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 64 67 ............................ledg
a2c0 65 72 2d 70 6f 73 74 2d 61 63 63 6f 75 6e 74 2d 61 6c 69 67 6e 6d 65 6e 74 2d 63 6f 6c 75 6d 6e er-post-account-alignment-column
a2e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
a300 20 20 20 20 20 20 20 20 20 30 29 29 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 3d 20 28 63 .........0)))).....(unless.(=.(c
a320 75 72 72 65 6e 74 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 29 20 69 6e 64 65 6e 74 2d 6c 65 76 65 6c urrent-indentation).indent-level
a340 29 0a 20 20 20 20 20 20 28 62 61 63 6b 2d 74 6f 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 29 0a 20 20 ).......(back-to-indentation)...
a360 20 20 20 20 28 64 65 6c 65 74 65 2d 68 6f 72 69 7a 6f 6e 74 61 6c 2d 73 70 61 63 65 20 74 29 0a ....(delete-horizontal-space.t).
a380 20 20 20 20 20 20 28 69 6e 64 65 6e 74 2d 74 6f 20 69 6e 64 65 6e 74 2d 6c 65 76 65 6c 29 29 29 ......(indent-to.indent-level)))
a3a0 0a 20 20 28 77 68 65 6e 20 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 75 74 6f 2d 61 6c 69 67 6e 0a ...(when.ledger-post-auto-align.
a3c0 20 20 20 20 28 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 6c 69 67 6e 2d 70 6f 73 74 69 6e 67 73 20 ....(ledger-post-align-postings.
a3e0 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 20 28 6c 69 6e 65 2d (line-beginning-position).(line-
a400 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d end-position))))..(defun.ledger-
a420 70 6f 73 74 2d 61 6c 69 67 6e 2d 64 77 69 6d 20 28 29 0a 20 20 22 41 6c 69 67 6e 20 61 6c 6c 20 post-align-dwim.()..."Align.all.
a440 74 68 65 20 70 6f 73 74 69 6e 67 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 78 61 63 74 20 the.posting.of.the.current.xact.
a460 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 72 65 67 69 6f 6e 2e 0a 0a 49 66 20 74 68 65 20 70 or.the.current.region...If.the.p
a480 6f 69 6e 74 20 69 73 20 69 6e 20 61 20 63 6f 6d 6d 65 6e 74 2c 20 66 69 6c 6c 20 74 68 65 20 63 oint.is.in.a.comment,.fill.the.c
a4a0 6f 6d 6d 65 6e 74 20 70 61 72 61 67 72 61 70 68 20 61 73 0a 72 65 67 75 6c 61 72 20 74 65 78 74 omment.paragraph.as.regular.text
a4c0 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 ."...(interactive)...(cond....((
a4e0 6e 74 68 20 34 20 28 73 79 6e 74 61 78 2d 70 70 73 73 29 29 0a 20 20 20 20 28 63 61 6c 6c 2d 69 nth.4.(syntax-ppss)).....(call-i
a500 6e 74 65 72 61 63 74 69 76 65 6c 79 20 27 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 6c 69 67 6e 2d nteractively.'ledger-post-align-
a520 70 6f 73 74 69 6e 67 73 29 0a 20 20 20 20 28 66 69 6c 6c 2d 70 61 72 61 67 72 61 70 68 29 29 0a postings).....(fill-paragraph)).
a540 20 20 20 28 28 75 73 65 2d 72 65 67 69 6f 6e 2d 70 29 20 28 63 61 6c 6c 2d 69 6e 74 65 72 61 63 ...((use-region-p).(call-interac
a560 74 69 76 65 6c 79 20 27 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 6c 69 67 6e 2d 70 6f 73 74 69 6e tively.'ledger-post-align-postin
a580 67 73 29 29 0a 20 20 20 28 74 20 28 63 61 6c 6c 2d 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 27 gs))....(t.(call-interactively.'
a5a0 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 6c 69 67 6e 2d 78 61 63 74 29 29 29 29 0a 0a 28 64 65 66 ledger-post-align-xact))))..(def
a5c0 75 6e 20 6c 65 64 67 65 72 2d 70 6f 73 74 2d 65 64 69 74 2d 61 6d 6f 75 6e 74 20 28 29 0a 20 20 un.ledger-post-edit-amount.()...
a5e0 22 43 61 6c 6c 20 60 63 61 6c 63 27 20 61 6e 64 20 70 75 73 68 20 74 68 65 20 61 6d 6f 75 6e 74 "Call.`calc'.and.push.the.amount
a600 20 69 6e 20 74 68 65 20 70 6f 73 74 69 6e 67 20 74 6f 20 74 68 65 20 74 6f 70 20 6f 66 20 73 74 .in.the.posting.to.the.top.of.st
a620 61 63 6b 2c 20 69 66 20 61 6e 79 2e 0a 0a 49 6e 20 74 68 65 20 63 61 6c 63 20 62 75 66 66 65 72 ack,.if.any...In.the.calc.buffer
a640 2c 20 70 72 65 73 73 20 79 20 74 6f 20 75 73 65 20 74 68 65 20 74 6f 70 20 76 61 6c 75 65 20 69 ,.press.y.to.use.the.top.value.i
a660 6e 20 74 68 65 20 73 74 61 63 6b 20 61 73 0a 74 68 65 20 61 6d 6f 75 6e 74 20 61 6e 64 20 72 65 n.the.stack.as.the.amount.and.re
a680 74 75 72 6e 20 74 6f 20 6c 65 64 67 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 turn.to.ledger."...(interactive)
a6a0 0a 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 28 77 68 65 6e 20 28 ...(beginning-of-line)...(when.(
a6c0 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 6c 65 64 67 65 72 2d 70 6f 73 74 2d 6c 69 re-search-forward.ledger-post-li
a6e0 6e 65 2d 72 65 67 65 78 70 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 20 74 29 ne-regexp.(line-end-position).t)
a700 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 2d 65 6e 64 20 6c 65 64 67 65 .....(goto-char.(match-end.ledge
a720 72 2d 72 65 67 65 78 2d 70 6f 73 74 2d 6c 69 6e 65 2d 67 72 6f 75 70 2d 61 63 63 6f 75 6e 74 29 r-regex-post-line-group-account)
a740 29 20 3b 3b 20 67 6f 20 74 6f 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 61 63 63 6f 75 6e ).;;.go.to.the.end.of.the.accoun
a760 74 0a 20 20 20 20 3b 3b 20 64 65 74 65 72 6d 69 6e 65 20 69 66 20 74 68 65 72 65 20 69 73 20 61 t.....;;.determine.if.there.is.a
a780 6e 20 61 6d 6f 75 6e 74 20 74 6f 20 65 64 69 74 0a 20 20 20 20 28 69 66 20 28 72 65 2d 73 65 61 n.amount.to.edit.....(if.(re-sea
a7a0 72 63 68 2d 66 6f 72 77 61 72 64 20 6c 65 64 67 65 72 2d 61 6d 6f 75 6e 74 2d 72 65 67 65 78 70 rch-forward.ledger-amount-regexp
a7c0 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 20 74 29 0a 20 20 20 20 20 20 20 20 .(line-end-position).t).........
a7e0 28 6c 65 74 20 28 28 76 61 6c 2d 73 74 72 69 6e 67 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 (let.((val-string.(match-string.
a800 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 0)))...........(goto-char.(match
a820 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 -beginning.0))...........(delete
a840 2d 72 65 67 69 6f 6e 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 20 28 6d 61 74 -region.(match-beginning.0).(mat
a860 63 68 2d 65 6e 64 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 2d 6d 61 72 6b 20 ch-end.0))...........(push-mark.
a880 28 70 6f 69 6e 74 29 20 27 6e 6f 6d 73 67 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 61 6c 63 29 (point).'nomsg)...........(calc)
a8a0 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 65 64 69 74 20 74 68 65 20 61 6d 6f 75 6e 74 2c 20 66 ...........;;.edit.the.amount,.f
a8c0 69 72 73 74 20 72 65 6d 6f 76 69 6e 67 20 74 68 6f 75 73 61 6e 64 73 20 73 65 70 61 72 61 74 6f irst.removing.thousands.separato
a8e0 72 73 20 61 6e 64 20 63 6f 6e 76 65 72 74 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 64 rs.and.converting...........;;.d
a900 65 63 69 6d 61 6c 20 63 6f 6d 6d 61 73 20 74 6f 20 63 61 6c 63 27 73 20 69 6e 70 75 74 20 66 6f ecimal.commas.to.calc's.input.fo
a920 72 6d 61 74 0a 20 20 20 20 20 20 20 20 20 20 28 63 61 6c 63 2d 65 76 61 6c 20 28 6e 75 6d 62 65 rmat...........(calc-eval.(numbe
a940 72 2d 74 6f 2d 73 74 72 69 6e 67 20 28 6c 65 64 67 65 72 2d 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 r-to-string.(ledger-string-to-nu
a960 6d 62 65 72 20 76 61 6c 2d 73 74 72 69 6e 67 29 29 20 27 70 75 73 68 29 0a 20 20 20 20 20 20 20 mber.val-string)).'push)........
a980 20 20 20 28 63 61 6c 63 2d 72 65 6e 75 6d 62 65 72 2d 73 74 61 63 6b 29 29 0a 20 20 20 20 20 20 ...(calc-renumber-stack)).......
a9a0 3b 3b 20 6d 61 6b 65 20 73 75 72 65 20 74 68 65 72 65 20 61 72 65 20 74 77 6f 20 73 70 61 63 65 ;;.make.sure.there.are.two.space
a9c0 73 20 61 66 74 65 72 20 74 68 65 20 61 63 63 6f 75 6e 74 20 6e 61 6d 65 20 61 6e 64 20 67 6f 20 s.after.the.account.name.and.go.
a9e0 74 6f 20 63 61 6c 63 0a 20 20 20 20 20 20 28 69 66 20 28 73 65 61 72 63 68 2d 62 61 63 6b 77 61 to.calc.......(if.(search-backwa
aa00 72 64 20 22 20 20 22 20 28 2d 20 28 70 6f 69 6e 74 29 20 33 29 20 74 29 0a 20 20 20 20 20 20 20 rd."..".(-.(point).3).t)........
aa20 20 20 20 28 65 6e 64 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 ...(end-of-line).........(insert
aa40 20 22 20 20 22 29 29 0a 20 20 20 20 20 20 28 70 75 73 68 2d 6d 61 72 6b 20 28 70 6f 69 6e 74 29 ."..")).......(push-mark.(point)
aa60 20 27 6e 6f 6d 73 67 29 0a 20 20 20 20 20 20 28 63 61 6c 63 29 29 29 29 0a 0a 28 70 72 6f 76 69 .'nomsg).......(calc))))..(provi
aa80 64 65 20 27 6c 65 64 67 65 72 2d 70 6f 73 74 29 0a 0a 0a 0a 3b 3b 3b 20 6c 65 64 67 65 72 2d 70 de.'ledger-post)....;;;.ledger-p
aaa0 6f 73 74 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ost.el.ends.here................
aac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ab00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ab20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ab40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ab60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ab80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
abc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
abe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ac00 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 31 2e 31 34 33 35 2f 6c 65 64 67 65 72 ledger-mode-20240411.1435/ledger
ac20 2d 66 6c 79 6d 61 6b 65 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -flymake.el.....................
ac40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ac60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
ac80 30 30 31 35 32 30 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 34 30 31 00 20 30 00 00 00 0015202.00000000000.016401..0...
aca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
acc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ace0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ad00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
ad20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
ad40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ad60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ad80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ada0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
adc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ade0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ae00 3b 3b 3b 20 6c 65 64 67 65 72 2d 66 6c 79 6d 61 6b 65 2e 65 6c 20 2d 2d 2d 20 41 20 6c 65 64 67 ;;;.ledger-flymake.el.---.A.ledg
ae20 65 72 20 46 6c 79 6d 61 6b 65 20 62 61 63 6b 65 6e 64 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d er.Flymake.backend..-*-.lexical-
ae40 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 binding:.t;.-*-..;;.Copyright.(C
ae60 29 20 32 30 31 38 20 4a 2e 20 41 6c 65 78 61 6e 64 65 72 20 42 72 61 6e 68 61 6d 20 28 61 6c 65 ).2018.J..Alexander.Branham.(ale
ae80 78 20 44 4f 54 20 62 72 61 6e 68 61 6d 20 41 54 20 67 6d 61 69 6c 20 44 4f 54 20 63 6f 6d 29 0a x.DOT.branham.AT.gmail.DOT.com).
aea0 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 6e 6f 74 20 70 61 72 74 20 6f 66 20 47 4e 55 .;;.This.file.is.not.part.of.GNU
aec0 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 54 68 69 73 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 .Emacs...;;.This.is.free.softwar
aee0 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f e;.you.can.redistribute.it.and/o
af00 72 20 6d 6f 64 69 66 79 20 69 74 20 75 6e 64 65 72 0a 3b 3b 20 74 68 65 20 74 65 72 6d 73 20 6f r.modify.it.under.;;.the.terms.o
af20 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 f.the.GNU.General.Public.License
af40 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 20 46 72 65 65 0a 3b 3b 20 53 6f 66 .as.published.by.the.Free.;;.Sof
af60 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e tware.Foundation;.either.version
af80 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 .3,.or.(at.your.option).any.late
afa0 72 0a 3b 3b 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 69 73 20 64 69 73 74 r.;;.version..;;.;;.This.is.dist
afc0 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c ributed.in.the.hope.that.it.will
afe0 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 .be.useful,.but.WITHOUT.;;.ANY.W
b000 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 ARRANTY;.without.even.the.implie
b020 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 d.warranty.of.MERCHANTABILITY.or
b040 0a 3b 3b 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 .;;.FITNESS.FOR.A.PARTICULAR.PUR
b060 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 POSE...See.the.GNU.General.Publi
b080 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b c.License.;;.for.more.details..;
b0a0 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 ;.;;.You.should.have.received.a.
b0c0 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c copy.of.the.GNU.General.Public.L
b0e0 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 47 4e 55 20 45 6d 61 63 73 3b 20 icense.;;.along.with.GNU.Emacs;.
b100 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 20 49 66 20 6e 6f 74 2c 20 77 see.the.file.COPYING...If.not,.w
b120 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 rite.to.the.;;.Free.Software.Fou
b140 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 ndation,.Inc.,.51.Franklin.Stree
b160 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 t,.Fifth.Floor,.Boston,.;;.MA.02
b180 31 31 30 2d 31 33 30 31 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 110-1301.USA...;;;.Commentary:.;
b1a0 3b 20 46 6c 79 6d 61 6b 65 20 69 73 20 74 68 65 20 62 75 69 6c 74 2d 69 6e 20 45 6d 61 63 73 20 ;.Flymake.is.the.built-in.Emacs.
b1c0 70 61 63 6b 61 67 65 20 74 6f 20 73 75 70 70 6f 72 74 20 6f 6e 2d 74 68 65 2d 66 6c 79 20 73 79 package.to.support.on-the-fly.sy
b1e0 6e 74 61 78 20 63 68 65 63 6b 69 6e 67 2e 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 61 64 64 73 ntax.checking..;;.This.file.adds
b200 20 73 75 70 70 6f 72 74 20 66 6f 72 20 66 6c 79 6d 61 6b 65 20 74 6f 20 60 6c 65 64 67 65 72 2d .support.for.flymake.to.`ledger-
b220 6d 6f 64 65 27 2e 20 20 45 6e 61 62 6c 65 20 69 74 20 62 79 20 63 61 6c 6c 69 6e 67 0a 3b 3b 20 mode'...Enable.it.by.calling.;;.
b240 60 6c 65 64 67 65 72 2d 66 6c 79 6d 61 6b 65 2d 65 6e 61 62 6c 65 27 20 66 72 6f 6d 20 61 20 66 `ledger-flymake-enable'.from.a.f
b260 69 6c 65 2d 76 69 73 69 74 69 6e 67 20 6c 65 64 67 65 72 20 62 75 66 66 65 72 2e 20 20 54 6f 20 ile-visiting.ledger.buffer...To.
b280 65 6e 61 62 6c 65 20 69 74 0a 3b 3b 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 2c 20 70 75 74 20 enable.it.;;.automatically,.put.
b2a0 74 68 69 73 20 69 6e 20 79 6f 75 72 20 2e 65 6d 61 63 73 3a 0a 3b 3b 0a 3b 3b 20 20 20 20 20 28 this.in.your..emacs:.;;.;;.....(
b2c0 61 64 64 2d 68 6f 6f 6b 20 27 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 68 6f 6f 6b 20 23 27 6c 65 64 add-hook.'ledger-mode-hook.#'led
b2e0 67 65 72 2d 66 6c 79 6d 61 6b 65 2d 65 6e 61 62 6c 65 29 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 28 ger-flymake-enable)..;;;.Code:.(
b300 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 0a 28 72 65 71 75 69 72 65 20 27 66 6c 79 6d 61 require.'cl-lib).(require.'flyma
b320 6b 65 29 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 65 78 65 63 29 20 20 20 20 20 20 ke).(require.'ledger-exec)......
b340 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 66 6f 72 20 60 6c 65 64 67 65 72 2d 62 69 6e 61 72 79 ............;.for.`ledger-binary
b360 2d 70 61 74 68 27 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 20 -path'.(require.'ledger-report).
b380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 66 6f 72 20 60 6c 65 64 67 65 72 2d 6d 61 73 ...............;.for.`ledger-mas
b3a0 74 65 72 2d 66 69 6c 65 27 0a 0a 3b 3b 20 54 6f 20 73 69 6c 65 6e 63 65 20 62 79 74 65 20 63 6f ter-file'..;;.To.silence.byte.co
b3c0 6d 70 69 6c 65 72 20 77 61 72 6e 69 6e 67 73 20 69 6e 20 45 6d 61 63 73 20 32 35 20 61 6e 64 20 mpiler.warnings.in.Emacs.25.and.
b3e0 6f 6c 64 65 72 3a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 66 6c 79 6d 61 6b 65 older:.(declare-function.flymake
b400 2d 64 69 61 67 2d 72 65 67 69 6f 6e 20 22 66 6c 79 6d 61 6b 65 22 20 28 62 75 66 66 65 72 20 6c -diag-region."flymake".(buffer.l
b420 69 6e 65 20 26 6f 70 74 69 6f 6e 61 6c 20 63 6f 6c 29 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e ine.&optional.col)).(declare-fun
b440 63 74 69 6f 6e 20 66 6c 79 6d 61 6b 65 2d 6d 61 6b 65 2d 64 69 61 67 6e 6f 73 74 69 63 20 22 66 ction.flymake-make-diagnostic."f
b460 6c 79 6d 61 6b 65 22 20 28 62 75 66 66 65 72 20 62 65 67 20 65 6e 64 20 74 79 70 65 20 74 65 78 lymake".(buffer.beg.end.type.tex
b480 74 20 26 6f 70 74 69 6f 6e 61 6c 20 64 61 74 61 20 6f 76 65 72 6c 61 79 2d 70 72 6f 70 65 72 74 t.&optional.data.overlay-propert
b4a0 69 65 73 29 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6c 65 64 67 65 72 2d 2d 66 6c 79 ies))..(defvar-local.ledger--fly
b4c0 6d 61 6b 65 2d 70 72 6f 63 20 6e 69 6c 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 make-proc.nil)..(defcustom.ledge
b4e0 72 2d 66 6c 79 6d 61 6b 65 2d 62 65 2d 70 65 64 61 6e 74 69 63 20 6e 69 6c 0a 20 20 22 49 66 20 r-flymake-be-pedantic.nil..."If.
b500 6e 6f 6e 2d 6e 69 6c 2c 20 70 61 73 73 20 74 68 65 20 2d 2d 70 65 64 61 6e 74 69 63 20 66 6c 61 non-nil,.pass.the.--pedantic.fla
b520 67 20 66 6f 72 20 6c 65 64 67 65 72 20 74 6f 20 74 68 65 20 66 6c 79 6d 61 6b 65 20 62 61 63 6b g.for.ledger.to.the.flymake.back
b540 65 6e 64 2e 0a 49 66 20 2d 2d 70 65 64 61 6e 74 69 63 20 69 73 20 69 6e 20 79 6f 75 72 20 6c 65 end..If.--pedantic.is.in.your.le
b560 64 67 65 72 72 63 20 66 69 6c 65 2c 20 74 68 65 6e 20 2d 2d 70 65 64 61 6e 74 69 63 20 67 65 74 dgerrc.file,.then.--pedantic.get
b580 73 0a 70 61 73 73 65 64 20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 74 68 65 20 76 61 6c 75 65 s.passed.regardless.of.the.value
b5a0 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 ."...:type.'boolean...:package-v
b5c0 65 72 73 69 6f 6e 20 27 28 6c 65 64 67 65 72 2d 6d 6f 64 65 20 2e 20 22 34 2e 30 2e 30 22 29 0a ersion.'(ledger-mode..."4.0.0").
b5e0 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 ..:group.'ledger)..(defcustom.le
b600 64 67 65 72 2d 66 6c 79 6d 61 6b 65 2d 62 65 2d 65 78 70 6c 69 63 69 74 20 6e 69 6c 0a 20 20 22 dger-flymake-be-explicit.nil..."
b620 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 70 61 73 73 20 74 68 65 20 2d 2d 65 78 70 6c 69 63 69 74 20 If.non-nil,.pass.the.--explicit.
b640 66 6c 61 67 20 66 6f 72 20 6c 65 64 67 65 72 20 74 6f 20 74 68 65 20 66 6c 79 6d 61 6b 65 20 62 flag.for.ledger.to.the.flymake.b
b660 61 63 6b 65 6e 64 2e 0a 49 66 20 2d 2d 65 78 70 6c 69 63 69 74 20 69 73 20 69 6e 20 79 6f 75 72 ackend..If.--explicit.is.in.your
b680 20 6c 65 64 67 65 72 72 63 20 66 69 6c 65 2c 20 74 68 65 6e 20 2d 2d 65 78 70 6c 69 63 69 74 20 .ledgerrc.file,.then.--explicit.
b6a0 67 65 74 73 0a 70 61 73 73 65 64 20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 74 68 65 20 76 61 gets.passed.regardless.of.the.va
b6c0 6c 75 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 70 61 63 6b 61 67 lue."...:type.'boolean...:packag
b6e0 65 2d 76 65 72 73 69 6f 6e 20 27 28 6c 65 64 67 65 72 2d 6d 6f 64 65 20 2e 20 22 34 2e 30 2e 30 e-version.'(ledger-mode..."4.0.0
b700 22 29 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 29 0a 0a 3b 3b 20 42 61 73 65 64 20 6f ")...:group.'ledger)..;;.Based.o
b720 6e 20 74 68 65 20 65 78 61 6d 70 6c 65 20 66 72 6f 6d 20 46 6c 79 6d 61 6b 65 27 73 20 69 6e 66 n.the.example.from.Flymake's.inf
b740 6f 3a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 66 6c 79 6d 61 6b 65 20 28 72 65 70 6f 72 74 o:.(defun.ledger-flymake.(report
b760 2d 66 6e 20 26 72 65 73 74 20 5f 61 72 67 73 29 0a 20 20 22 41 20 46 6c 79 6d 61 6b 65 20 62 61 -fn.&rest._args)..."A.Flymake.ba
b780 63 6b 65 6e 64 20 66 6f 72 20 60 6c 65 64 67 65 72 2d 6d 6f 64 65 27 2e 0a 0a 46 6c 79 6d 61 6b ckend.for.`ledger-mode'...Flymak
b7a0 65 20 63 61 6c 6c 73 20 74 68 69 73 20 77 69 74 68 20 52 45 50 4f 52 54 2d 46 4e 20 61 73 20 6e e.calls.this.with.REPORT-FN.as.n
b7c0 65 65 64 65 64 2e 22 0a 20 20 28 75 6e 6c 65 73 73 20 28 65 78 65 63 75 74 61 62 6c 65 2d 66 69 eeded."...(unless.(executable-fi
b7e0 6e 64 20 6c 65 64 67 65 72 2d 62 69 6e 61 72 79 2d 70 61 74 68 29 0a 20 20 20 20 28 65 72 72 6f nd.ledger-binary-path).....(erro
b800 72 20 22 43 61 6e 6e 6f 74 20 66 69 6e 64 20 6c 65 64 67 65 72 22 29 29 0a 20 20 3b 3b 20 49 66 r."Cannot.find.ledger"))...;;.If
b820 20 61 20 6c 69 76 65 20 70 72 6f 63 65 73 73 20 6c 61 75 6e 63 68 65 64 20 69 6e 20 61 6e 20 65 .a.live.process.launched.in.an.e
b840 61 72 6c 69 65 72 20 63 68 65 63 6b 20 77 61 73 20 66 6f 75 6e 64 2c 20 74 68 61 74 0a 20 20 3b arlier.check.was.found,.that...;
b860 3b 20 70 72 6f 63 65 73 73 20 69 73 20 6b 69 6c 6c 65 64 2e 20 20 57 68 65 6e 20 74 68 61 74 20 ;.process.is.killed...When.that.
b880 70 72 6f 63 65 73 73 27 73 20 73 65 6e 74 69 6e 65 6c 20 65 76 65 6e 74 75 61 6c 6c 79 20 72 75 process's.sentinel.eventually.ru
b8a0 6e 73 2c 0a 20 20 3b 3b 20 69 74 20 77 69 6c 6c 20 6e 6f 74 69 63 65 20 69 74 73 20 6f 62 73 6f ns,...;;.it.will.notice.its.obso
b8c0 6c 65 74 69 6f 6e 2c 20 73 69 6e 63 65 20 69 74 20 68 61 76 65 20 73 69 6e 63 65 20 72 65 73 65 letion,.since.it.have.since.rese
b8e0 74 0a 20 20 3b 3b 20 60 6c 65 64 67 65 72 2d 66 6c 79 6d 61 6b 65 2d 70 72 6f 63 27 20 74 6f 20 t...;;.`ledger-flymake-proc'.to.
b900 61 20 64 69 66 66 65 72 65 6e 74 20 76 61 6c 75 65 0a 20 20 28 77 68 65 6e 20 28 70 72 6f 63 65 a.different.value...(when.(proce
b920 73 73 2d 6c 69 76 65 2d 70 20 6c 65 64 67 65 72 2d 2d 66 6c 79 6d 61 6b 65 2d 70 72 6f 63 29 0a ss-live-p.ledger--flymake-proc).
b940 20 20 20 20 28 6b 69 6c 6c 2d 70 72 6f 63 65 73 73 20 6c 65 64 67 65 72 2d 2d 66 6c 79 6d 61 6b ....(kill-process.ledger--flymak
b960 65 2d 70 72 6f 63 29 29 0a 20 20 3b 3b 20 53 61 76 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 e-proc))...;;.Save.the.current.b
b980 75 66 66 65 72 2c 20 74 68 65 20 6e 61 72 72 6f 77 69 6e 67 20 72 65 73 74 72 69 63 74 69 6f 6e uffer,.the.narrowing.restriction
b9a0 2c 20 72 65 6d 6f 76 65 20 61 6e 79 0a 20 20 3b 3b 20 6e 61 72 72 6f 77 69 6e 67 20 72 65 73 74 ,.remove.any...;;.narrowing.rest
b9c0 72 69 63 74 69 6f 6e 2e 0a 20 20 28 6c 65 74 2a 20 28 28 73 6f 75 72 63 65 20 28 63 75 72 72 65 riction....(let*.((source.(curre
b9e0 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 20 28 6f 72 20 28 nt-buffer))..........(file.(or.(
ba00 6c 65 64 67 65 72 2d 6d 61 73 74 65 72 2d 66 69 6c 65 29 20 28 62 75 66 66 65 72 2d 66 69 6c 65 ledger-master-file).(buffer-file
ba20 2d 6e 61 6d 65 29 29 29 29 0a 20 20 20 20 28 73 61 76 65 2d 72 65 73 74 72 69 63 74 69 6f 6e 0a -name)))).....(save-restriction.
ba40 20 20 20 20 20 20 28 77 69 64 65 6e 29 0a 20 20 20 20 20 20 3b 3b 20 52 65 73 65 74 20 74 68 65 ......(widen).......;;.Reset.the
ba60 20 60 6c 65 64 67 65 72 2d 2d 66 6c 79 6d 61 6b 65 2d 70 72 6f 63 27 20 70 72 6f 63 65 73 73 20 .`ledger--flymake-proc'.process.
ba80 74 6f 20 61 20 6e 65 77 20 70 72 6f 63 65 73 73 0a 20 20 20 20 20 20 3b 3b 20 63 61 6c 6c 69 6e to.a.new.process.......;;.callin
baa0 67 20 74 68 65 20 6c 65 64 67 65 72 20 74 6f 6f 6c 2e 0a 20 20 20 20 20 20 28 73 65 74 71 0a 20 g.the.ledger.tool........(setq..
bac0 20 20 20 20 20 20 6c 65 64 67 65 72 2d 2d 66 6c 79 6d 61 6b 65 2d 70 72 6f 63 0a 20 20 20 20 20 ......ledger--flymake-proc......
bae0 20 20 28 6d 61 6b 65 2d 70 72 6f 63 65 73 73 0a 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 22 6c ..(make-process.........:name."l
bb00 65 64 67 65 72 2d 66 6c 79 6d 61 6b 65 22 20 3a 6e 6f 71 75 65 72 79 20 74 20 3a 63 6f 6e 6e 65 edger-flymake".:noquery.t.:conne
bb20 63 74 69 6f 6e 2d 74 79 70 65 20 27 70 69 70 65 0a 20 20 20 20 20 20 20 20 3a 62 75 66 66 65 72 ction-type.'pipe.........:buffer
bb40 20 28 67 65 6e 65 72 61 74 65 2d 6e 65 77 2d 62 75 66 66 65 72 20 22 20 2a 6c 65 64 67 65 72 2d .(generate-new-buffer.".*ledger-
bb60 66 6c 79 6d 61 6b 65 2a 22 29 0a 20 20 20 20 20 20 20 20 3a 63 6f 6d 6d 61 6e 64 20 28 63 6c 2d flymake*").........:command.(cl-
bb80 72 65 6d 6f 76 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 0a 20 20 20 remove...................nil....
bba0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 2c 6c 65 64 67 65 72 2d 62 69 6e 61 72 79 2d ...............`(,ledger-binary-
bbc0 70 61 74 68 20 22 2d 66 22 20 2c 66 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 path."-f".,file.................
bbe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 28 77 68 65 6e 20 6c ........................,(when.l
bc00 65 64 67 65 72 2d 66 6c 79 6d 61 6b 65 2d 62 65 2d 70 65 64 61 6e 74 69 63 20 22 2d 2d 70 65 64 edger-flymake-be-pedantic."--ped
bc20 61 6e 74 69 63 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 antic").........................
bc40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 28 77 68 65 6e 20 6c 65 64 67 65 72 2d 66 6c ................,(when.ledger-fl
bc60 79 6d 61 6b 65 2d 62 65 2d 65 78 70 6c 69 63 69 74 20 22 2d 2d 65 78 70 6c 69 63 69 74 22 29 0a ymake-be-explicit."--explicit").
bc80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
bca0 20 20 20 20 20 20 20 20 22 62 61 6c 61 6e 63 65 22 29 29 0a 20 20 20 20 20 20 20 20 3a 73 65 6e ........"balance")).........:sen
bcc0 74 69 6e 65 6c 0a 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 70 72 6f 63 20 5f 65 76 65 tinel.........(lambda.(proc._eve
bce0 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 43 68 65 63 6b 20 74 68 61 74 20 74 68 65 20 nt)...........;;.Check.that.the.
bd00 70 72 6f 63 65 73 73 20 68 61 73 20 69 6e 64 65 65 64 20 65 78 69 74 65 64 2c 20 61 73 20 69 74 process.has.indeed.exited,.as.it
bd20 20 6d 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 62 65 20 73 69 6d 70 6c 79 20 73 75 .might...........;;.be.simply.su
bd40 73 70 65 6e 64 65 64 2e 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 27 65 78 spended............(when.(eq.'ex
bd60 69 74 20 28 70 72 6f 63 65 73 73 2d 73 74 61 74 75 73 20 70 72 6f 63 29 29 0a 20 20 20 20 20 20 it.(process-status.proc)).......
bd80 20 20 20 20 20 20 28 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63 74 0a 20 20 20 20 20 20 20 20 20 20 ......(unwind-protect...........
bda0 20 20 20 20 20 20 3b 3b 20 4f 6e 6c 79 20 70 72 6f 63 65 65 64 20 69 66 20 60 70 72 6f 63 27 20 ......;;.Only.proceed.if.`proc'.
bdc0 69 73 20 74 68 65 20 73 61 6d 65 20 61 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b is.the.same.as.................;
bde0 3b 20 60 6c 65 64 67 65 72 2d 2d 66 6c 79 6d 61 6b 65 2d 70 72 6f 63 27 2c 20 77 68 69 63 68 20 ;.`ledger--flymake-proc',.which.
be00 69 6e 64 69 63 61 74 65 73 20 74 68 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b indicates.that.................;
be20 3b 20 60 70 72 6f 63 27 20 69 73 20 6e 6f 74 20 61 6e 20 6f 62 73 6f 6c 65 74 65 20 70 72 6f 63 ;.`proc'.is.not.an.obsolete.proc
be40 65 73 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 77 69 74 68 2d 63 ess..................(if.(with-c
be60 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 73 6f 75 72 63 65 20 28 65 71 20 70 72 6f 63 20 6c 65 urrent-buffer.source.(eq.proc.le
be80 64 67 65 72 2d 2d 66 6c 79 6d 61 6b 65 2d 70 72 6f 63 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 dger--flymake-proc))............
bea0 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 70 .........(with-current-buffer.(p
bec0 72 6f 63 65 73 73 2d 62 75 66 66 65 72 20 70 72 6f 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 rocess-buffer.proc).............
bee0 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 ..........(goto-char.(point-min)
bf00 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 50 61 72 73 65 ).......................;;.Parse
bf20 20 74 68 65 20 6f 75 74 70 75 74 20 62 75 66 66 65 72 20 66 6f 72 20 64 69 61 67 6e 6f 73 74 69 .the.output.buffer.for.diagnosti
bf40 63 27 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6d 65 73 c's.......................;;.mes
bf60 73 61 67 65 73 20 61 6e 64 20 6c 6f 63 61 74 69 6f 6e 73 2c 20 63 6f 6c 6c 65 63 74 20 74 68 65 sages.and.locations,.collect.the
bf80 6d 20 69 6e 20 61 20 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 m.in.a.list.....................
bfa0 20 20 3b 3b 20 6f 66 20 6f 62 6a 65 63 74 73 2c 20 61 6e 64 20 63 61 6c 6c 20 60 72 65 70 6f 72 ..;;.of.objects,.and.call.`repor
bfc0 74 2d 66 6e 27 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c t-fn'........................(cl
bfe0 2d 6c 6f 6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 68 69 -loop........................whi
c000 6c 65 20 28 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 2d 72 65 67 65 78 70 0a 20 20 20 20 20 20 le.(search-forward-regexp.......
c020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 68 69 73 20 ........................;;.This.
c040 72 65 67 65 78 20 6e 65 65 64 73 20 74 6f 20 6d 61 74 63 68 20 74 68 65 20 77 68 6f 6c 65 20 65 regex.needs.to.match.the.whole.e
c060 72 72 6f 72 2e 20 20 57 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rror...We.......................
c080 20 20 20 20 20 20 20 20 3b 3b 20 61 6c 73 6f 20 6e 65 65 64 20 61 20 63 61 70 74 75 72 65 20 67 ........;;.also.need.a.capture.g
c0a0 72 6f 75 70 20 66 6f 72 20 74 68 65 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 0a 20 20 20 20 20 roup.for.the.error.message......
c0c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 28 74 68 61 .........................;;.(tha
c0e0 74 27 73 20 67 72 6f 75 70 20 31 20 68 65 72 65 29 20 61 6e 64 20 74 68 65 20 6c 69 6e 65 20 6e t's.group.1.here).and.the.line.n
c100 75 6d 62 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 umber...........................
c120 20 20 20 20 3b 3b 20 28 67 72 6f 75 70 20 32 29 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....;;.(group.2)................
c140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 78 20 6c 69 6e 65 2d 73 74 61 72 74 20 22 ................(rx.line-start."
c160 57 68 69 6c 65 20 70 61 72 73 69 6e 67 20 66 69 6c 65 20 5c 22 22 20 28 6f 6e 65 2d 6f 72 2d 6d While.parsing.file.\"".(one-or-m
c180 6f 72 65 20 28 6e 6f 74 20 77 68 69 74 65 73 70 61 63 65 29 29 20 22 20 6c 69 6e 65 20 22 20 28 ore.(not.whitespace)).".line.".(
c1a0 67 72 6f 75 70 2d 6e 20 32 20 28 6f 6e 65 2d 6f 72 2d 6d 6f 72 65 20 6e 75 6d 29 29 20 22 3a 5c group-n.2.(one-or-more.num)).":\
c1c0 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n"..............................
c1e0 20 20 20 20 20 28 7a 65 72 6f 2d 6f 72 2d 6d 6f 72 65 20 6c 69 6e 65 2d 73 74 61 72 74 20 22 57 .....(zero-or-more.line-start."W
c200 68 69 6c 65 20 22 20 28 6f 6e 65 2d 6f 72 2d 6d 6f 72 65 20 6e 6f 74 2d 6e 65 77 6c 69 6e 65 29 hile.".(one-or-more.not-newline)
c220 20 22 5c 6e 22 20 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."\n".).........................
c240 20 20 20 20 20 20 20 20 20 20 28 6d 69 6e 69 6d 61 6c 2d 6d 61 74 63 68 20 28 7a 65 72 6f 2d 6f ..........(minimal-match.(zero-o
c260 72 2d 6d 6f 72 65 20 6c 69 6e 65 2d 73 74 61 72 74 20 28 7a 65 72 6f 2d 6f 72 2d 6d 6f 72 65 20 r-more.line-start.(zero-or-more.
c280 6e 6f 74 2d 6e 65 77 6c 69 6e 65 29 20 22 5c 6e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 not-newline)."\n")).............
c2a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 72 6f 75 70 2d 6e 20 31 ......................(group-n.1
c2c0 20 22 45 72 72 6f 72 3a 20 22 20 28 6f 6e 65 2d 6f 72 2d 6d 6f 72 65 20 6e 6f 74 2d 6e 65 77 6c ."Error:.".(one-or-more.not-newl
c2e0 69 6e 65 29 20 22 5c 6e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ine)."\n")).....................
c300 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..........nil.t)................
c320 20 20 20 20 20 20 20 20 66 6f 72 20 6d 73 67 20 3d 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 ........for.msg.=.(match-string.
c340 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 62 1)........................for.(b
c360 65 67 20 2e 20 65 6e 64 29 20 3d 20 28 66 6c 79 6d 61 6b 65 2d 64 69 61 67 2d 72 65 67 69 6f 6e eg...end).=.(flymake-diag-region
c380 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
c3a0 20 20 20 20 20 20 20 20 20 20 20 73 6f 75 72 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...........source...............
c3c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 ............................(str
c3e0 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32 29 29 29 ing-to-number.(match-string.2)))
c400 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 74 79 70 65 ........................for.type
c420 20 3d 20 3a 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .=.:error.......................
c440 20 63 6f 6c 6c 65 63 74 20 28 66 6c 79 6d 61 6b 65 2d 6d 61 6b 65 2d 64 69 61 67 6e 6f 73 74 69 .collect.(flymake-make-diagnosti
c460 63 20 73 6f 75 72 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 c.source........................
c480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
c4a0 20 62 65 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .beg............................
c4c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 .............................end
c4e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
c500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 79 70 65 0a 20 20 .........................type...
c520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
c540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 73 67 29 0a 20 20 20 20 20 ......................msg)......
c560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 6f 20 64 69 61 67 73 0a 20 20 20 ..................into.diags....
c580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 28 66 75 6e ....................finally.(fun
c5a0 63 61 6c 6c 20 72 65 70 6f 72 74 2d 66 6e 20 64 69 61 67 73 29 29 29 0a 20 20 20 20 20 20 20 20 call.report-fn.diags))).........
c5c0 20 20 20 20 20 20 20 20 20 20 28 66 6c 79 6d 61 6b 65 2d 6c 6f 67 20 3a 77 61 72 6e 69 6e 67 20 ..........(flymake-log.:warning.
c5e0 22 43 61 6e 63 65 6c 69 6e 67 20 6f 62 73 6f 6c 65 74 65 20 63 68 65 63 6b 20 25 73 22 0a 20 20 "Canceling.obsolete.check.%s"...
c600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f .............................pro
c620 63 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 43 6c 65 61 6e 75 70 20 74 68 65 c))...............;;.Cleanup.the
c640 20 74 65 6d 70 6f 72 61 72 79 20 62 75 66 66 65 72 20 75 73 65 64 20 74 6f 20 68 6f 6c 64 20 74 .temporary.buffer.used.to.hold.t
c660 68 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 63 68 65 63 6b 27 73 20 6f 75 74 70 he...............;;.check's.outp
c680 75 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 28 ut................(kill-buffer.(
c6a0 70 72 6f 63 65 73 73 2d 62 75 66 66 65 72 20 70 72 6f 63 29 29 29 29 29 29 29 29 29 29 0a 0a 3b process-buffer.proc))))))))))..;
c6c0 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 66 6c 79 6d ;;###autoload.(defun.ledger-flym
c6e0 61 6b 65 2d 65 6e 61 62 6c 65 20 28 29 0a 20 20 22 45 6e 61 62 6c 65 20 60 66 6c 79 6d 61 6b 65 ake-enable.()..."Enable.`flymake
c700 2d 6d 6f 64 65 27 20 69 6e 20 60 6c 65 64 67 65 72 2d 6d 6f 64 65 27 20 62 75 66 66 65 72 73 2e -mode'.in.`ledger-mode'.buffers.
c720 22 0a 20 20 28 75 6e 6c 65 73 73 20 28 3e 20 65 6d 61 63 73 2d 6d 61 6a 6f 72 2d 76 65 72 73 69 "...(unless.(>.emacs-major-versi
c740 6f 6e 20 32 35 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 4c 65 64 67 65 72 2d 66 6c 79 6d 61 6b on.25).....(error."Ledger-flymak
c760 65 20 72 65 71 75 69 72 65 73 20 45 6d 61 63 73 20 76 65 72 73 69 6f 6e 20 32 36 20 6f 72 20 68 e.requires.Emacs.version.26.or.h
c780 69 67 68 65 72 22 29 29 0a 20 20 3b 3b 20 41 64 64 20 60 6c 65 64 67 65 72 2d 66 6c 79 6d 61 6b igher"))...;;.Add.`ledger-flymak
c7a0 65 27 20 74 6f 20 60 66 6c 79 6d 61 6b 65 2d 64 69 61 67 6e 6f 73 74 69 63 2d 66 75 6e 63 74 69 e'.to.`flymake-diagnostic-functi
c7c0 6f 6e 73 27 20 73 6f 20 74 68 61 74 20 66 6c 79 6d 61 6b 65 20 63 61 6e 0a 20 20 3b 3b 20 77 6f ons'.so.that.flymake.can...;;.wo
c7e0 72 6b 20 69 6e 20 6c 65 64 67 65 72 2d 6d 6f 64 65 3a 0a 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 rk.in.ledger-mode:...(add-hook.'
c800 66 6c 79 6d 61 6b 65 2d 64 69 61 67 6e 6f 73 74 69 63 2d 66 75 6e 63 74 69 6f 6e 73 20 27 6c 65 flymake-diagnostic-functions.'le
c820 64 67 65 72 2d 66 6c 79 6d 61 6b 65 20 6e 69 6c 20 74 29 0a 20 20 28 66 6c 79 6d 61 6b 65 2d 6d dger-flymake.nil.t)...(flymake-m
c840 6f 64 65 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 6c 65 64 67 65 72 2d 66 6c 79 6d 61 6b 65 29 ode))..(provide.'ledger-flymake)
c860 0a 0a 3b 3b 3b 20 6c 65 64 67 65 72 2d 66 6c 79 6d 61 6b 65 2e 65 6c 20 65 6e 64 73 20 68 65 72 ..;;;.ledger-flymake.el.ends.her
c880 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e...............................
c8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
c9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ca00 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 31 2e 31 34 33 35 2f 6c 65 64 67 65 72 ledger-mode-20240411.1435/ledger
ca20 2d 6e 61 76 69 67 61 74 65 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -navigate.el....................
ca40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ca60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
ca80 30 30 31 35 37 34 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 35 36 31 00 20 30 00 00 00 0015743.00000000000.016561..0...
caa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cb00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
cb20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
cb40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cb60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cb80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cbc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cbe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cc00 3b 3b 3b 20 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2e 65 6c 20 2d 2d 2d 20 50 72 6f 76 69 ;;;.ledger-navigate.el.---.Provi
cc20 64 65 20 6e 61 76 69 67 61 74 69 6f 6e 20 73 65 72 76 69 63 65 73 20 74 68 72 6f 75 67 68 20 74 de.navigation.services.through.t
cc40 68 65 20 6c 65 64 67 65 72 20 62 75 66 66 65 72 2e 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 he.ledger.buffer...-*-.lexical-b
cc60 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 inding:.t;.-*-..;;.Copyright.(C)
cc80 20 32 30 31 34 2d 32 30 31 35 20 43 72 61 69 67 20 45 61 72 6c 73 20 28 65 6e 64 65 72 77 38 38 .2014-2015.Craig.Earls.(enderw88
cca0 20 41 54 20 67 6d 61 69 6c 20 44 4f 54 20 63 6f 6d 29 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 .AT.gmail.DOT.com)..;;.This.file
ccc0 20 69 73 20 6e 6f 74 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 54 .is.not.part.of.GNU.Emacs...;;.T
cce0 68 69 73 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 his.is.free.software;.you.can.re
cd00 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 20 75 distribute.it.and/or.modify.it.u
cd20 6e 64 65 72 0a 3b 3b 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e nder.;;.the.terms.of.the.GNU.Gen
cd40 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 eral.Public.License.as.published
cd60 20 62 79 20 74 68 65 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 .by.the.Free.;;.Software.Foundat
cd80 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 32 2c 20 6f 72 20 28 61 74 20 79 6f ion;.either.version.2,.or.(at.yo
cda0 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 0a 3b 3b 20 76 65 72 73 69 6f 6e 2e ur.option).any.later.;;.version.
cdc0 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 .;;.;;.This.is.distributed.in.th
cde0 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 e.hope.that.it.will.be.useful,.b
ce00 75 74 20 57 49 54 48 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 ut.WITHOUT.;;.ANY.WARRANTY;.with
ce20 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 out.even.the.implied.warranty.of
ce40 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 0a 3b 3b 20 46 49 54 4e 45 53 53 20 46 .MERCHANTABILITY.or.;;.FITNESS.F
ce60 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 OR.A.PARTICULAR.PURPOSE...See.th
ce80 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 e.GNU.General.Public.License.;;.
cea0 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 for.more.details..;;.;;.You.shou
cec0 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 ld.have.received.a.copy.of.the.G
cee0 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f NU.General.Public.License.;;.alo
cf00 6e 67 20 77 69 74 68 20 47 4e 55 20 45 6d 61 63 73 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 ng.with.GNU.Emacs;.see.the.file.
cf20 43 4f 50 59 49 4e 47 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b COPYING...If.not,.write.to.the.;
cf40 3b 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e ;.Free.Software.Foundation,.Inc.
cf60 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f ,.51.Franklin.Street,.Fifth.Floo
cf80 72 2c 20 42 6f 73 74 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 20 55 53 41 2e r,.Boston,.;;.MA.02110-1301.USA.
cfa0 0a 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 0a 0a 3b 3b 3b 20 43 6f 64 65 3a ...;;;.Commentary:.;;..;;;.Code:
cfc0 0a 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 72 65 67 65 78 29 0a 28 72 65 71 75 69 ..(require.'ledger-regex).(requi
cfe0 72 65 20 27 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 re.'ledger-context)..(defun.ledg
d000 65 72 2d 6e 61 76 69 67 61 74 65 2d 6e 65 78 74 2d 78 61 63 74 20 28 29 0a 20 20 22 4d 6f 76 65 er-navigate-next-xact.()..."Move
d020 20 70 6f 69 6e 74 20 74 6f 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 6e 65 78 74 20 78 61 63 74 .point.to.beginning.of.next.xact
d040 2e 22 0a 20 20 3b 3b 20 6d 61 6b 65 20 73 75 72 65 20 77 65 20 61 63 74 75 61 6c 6c 79 20 6d 6f ."...;;.make.sure.we.actually.mo
d060 76 65 20 74 6f 20 74 68 65 20 6e 65 78 74 20 78 61 63 74 2c 20 65 76 65 6e 20 69 66 20 77 65 20 ve.to.the.next.xact,.even.if.we.
d080 61 72 65 20 74 68 65 0a 20 20 3b 3b 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 6f 6e 65 20 6e 6f are.the...;;.beginning.of.one.no
d0a0 77 2e 0a 20 20 28 69 66 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 6c 65 64 67 65 72 2d 70 61 79 65 w....(if.(looking-at.ledger-paye
d0c0 65 2d 61 6e 79 2d 73 74 61 74 75 73 2d 72 65 67 65 78 29 0a 20 20 20 20 20 20 28 66 6f 72 77 61 e-any-status-regex).......(forwa
d0e0 72 64 2d 6c 69 6e 65 29 29 0a 20 20 28 69 66 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 rd-line))...(if.(re-search-forwa
d100 72 64 20 20 6c 65 64 67 65 72 2d 70 61 79 65 65 2d 61 6e 79 2d 73 74 61 74 75 73 2d 72 65 67 65 rd..ledger-payee-any-status-rege
d120 78 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 x.nil.t).......(goto-char.(match
d140 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 -beginning.0)).....(goto-char.(p
d160 6f 69 6e 74 2d 6d 61 78 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6e 61 76 69 oint-max))))..(defun.ledger-navi
d180 67 61 74 65 2d 73 74 61 72 74 2d 78 61 63 74 2d 6f 72 2d 64 69 72 65 63 74 69 76 65 2d 70 20 28 gate-start-xact-or-directive-p.(
d1a0 29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 61 74 20 74 68 65 20 62 65 67 69 6e 6e 69 6e )..."Return.t.if.at.the.beginnin
d1c0 67 20 6c 69 6e 65 20 6f 66 20 61 6e 20 78 61 63 74 20 6f 72 20 64 69 72 65 63 74 69 76 65 2e 0a g.line.of.an.xact.or.directive..
d1e0 0a 41 73 73 75 6d 65 73 20 70 6f 69 6e 74 20 69 73 20 61 74 20 74 68 65 20 62 65 67 69 6e 6e 69 .Assumes.point.is.at.the.beginni
d200 6e 67 20 6f 66 20 61 20 6c 69 6e 65 2e 22 0a 20 20 28 6e 6f 74 20 28 6c 6f 6f 6b 69 6e 67 2d 61 ng.of.a.line."...(not.(looking-a
d220 74 20 22 5b 20 5c 74 5d 5c 5c 7c 5c 5c 28 5e 24 5c 5c 29 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 t."[.\t]\\|\\(^$\\)")))..(defun.
d240 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 6e 65 78 74 2d 78 61 63 74 2d 6f 72 2d 64 69 72 ledger-navigate-next-xact-or-dir
d260 65 63 74 69 76 65 20 28 29 0a 20 20 22 4d 6f 76 65 20 74 6f 20 74 68 65 20 62 65 67 69 6e 6e 69 ective.()..."Move.to.the.beginni
d280 6e 67 20 6f 66 20 74 68 65 20 6e 65 78 74 20 78 61 63 74 20 6f 72 20 64 69 72 65 63 74 69 76 65 ng.of.the.next.xact.or.directive
d2a0 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d ."...(interactive)...(beginning-
d2c0 6f 66 2d 6c 69 6e 65 29 0a 20 20 28 69 66 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d of-line)...(if.(ledger-navigate-
d2e0 73 74 61 72 74 2d 78 61 63 74 2d 6f 72 2d 64 69 72 65 63 74 69 76 65 2d 70 29 20 3b 20 69 66 20 start-xact-or-directive-p).;.if.
d300 77 65 20 61 72 65 20 74 68 65 20 73 74 61 72 74 20 6f 66 20 61 6e 20 78 61 63 74 2c 20 6d 6f 76 we.are.the.start.of.an.xact,.mov
d320 65 20 66 6f 72 77 61 72 64 20 74 6f 20 74 68 65 20 6e 65 78 74 20 78 61 63 74 0a 20 20 20 20 20 e.forward.to.the.next.xact......
d340 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 29 0a 20 .(progn.........(forward-line)..
d360 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d .......(unless.(ledger-navigate-
d380 73 74 61 72 74 2d 78 61 63 74 2d 6f 72 2d 64 69 72 65 63 74 69 76 65 2d 70 29 20 3b 20 77 65 20 start-xact-or-directive-p).;.we.
d3a0 68 61 76 65 20 6d 6f 76 65 64 20 66 6f 72 77 61 72 64 20 61 6e 64 20 61 72 65 20 6e 6f 74 20 61 have.moved.forward.and.are.not.a
d3c0 74 20 61 6e 6f 74 68 65 72 20 78 61 63 74 2c 20 72 65 63 75 72 73 65 20 66 6f 72 77 61 72 64 0a t.another.xact,.recurse.forward.
d3e0 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 6e 65 78 74 2d ..........(ledger-navigate-next-
d400 78 61 63 74 2d 6f 72 2d 64 69 72 65 63 74 69 76 65 29 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 xact-or-directive))).....(while.
d420 28 6e 6f 74 20 28 6f 72 20 28 65 6f 62 70 29 20 20 3b 20 77 65 20 64 69 64 6e 27 74 20 73 74 61 (not.(or.(eobp)..;.we.didn't.sta
d440 72 74 20 6f 66 66 20 61 74 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 61 6e 20 78 61 rt.off.at.the.beginning.of.an.xa
d460 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6e ct.....................(ledger-n
d480 61 76 69 67 61 74 65 2d 73 74 61 72 74 2d 78 61 63 74 2d 6f 72 2d 64 69 72 65 63 74 69 76 65 2d avigate-start-xact-or-directive-
d4a0 70 29 29 29 0a 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 29 29 29 29 0a 0a 28 64 p))).......(forward-line))))..(d
d4c0 65 66 75 6e 20 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 70 72 65 76 2d 78 61 63 74 2d 6f efun.ledger-navigate-prev-xact-o
d4e0 72 2d 64 69 72 65 63 74 69 76 65 20 28 29 0a 20 20 22 4d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 r-directive.()..."Move.point.to.
d500 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 70 72 65 76 69 6f 75 73 20 78 61 63 74 2e 22 0a 20 20 28 beginning.of.previous.xact."...(
d520 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 63 6f 6e 74 65 78 74 20 28 63 interactive)...(let.((context.(c
d540 61 72 20 28 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 2d 61 74 2d 70 6f 69 6e 74 29 29 29 29 0a ar.(ledger-context-at-point)))).
d560 20 20 20 20 28 77 68 65 6e 20 28 65 71 75 61 6c 20 63 6f 6e 74 65 78 74 20 27 61 63 63 74 2d 74 ....(when.(equal.context.'acct-t
d580 72 61 6e 73 61 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 ransaction).......(ledger-naviga
d5a0 74 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 78 61 63 74 29 29 0a 20 20 20 20 28 62 65 67 69 te-beginning-of-xact)).....(begi
d5c0 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 62 61 nning-of-line).....(re-search-ba
d5e0 63 6b 77 61 72 64 20 22 5e 5b 5b 3a 67 72 61 70 68 3a 5d 5d 22 20 6e 69 6c 20 74 29 29 29 0a 0a ckward."^[[:graph:]]".nil.t)))..
d600 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 62 65 67 69 6e 6e 69 6e 67 (defun.ledger-navigate-beginning
d620 2d 6f 66 2d 78 61 63 74 20 28 29 0a 20 20 22 4d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 74 68 65 -of-xact.()..."Move.point.to.the
d640 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 78 61 63 74 2e 22 .beginning.of.the.current.xact."
d660 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 3b 3b 20 6e 65 65 64 20 74 6f 20 73 74 ...(interactive)...;;.need.to.st
d680 61 72 74 20 61 74 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 61 20 6c 69 6e 65 20 69 art.at.the.beginning.of.a.line.i
d6a0 6e 20 63 61 73 65 20 77 65 20 61 72 65 20 69 6e 20 74 68 65 20 66 69 72 73 74 20 6c 69 6e 65 20 n.case.we.are.in.the.first.line.
d6c0 6f 66 20 61 6e 20 78 61 63 74 20 61 6c 72 65 61 64 79 2e 0a 20 20 28 62 65 67 69 6e 6e 69 6e 67 of.an.xact.already....(beginning
d6e0 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 28 6c 65 74 20 28 28 73 72 65 67 20 28 63 6f 6e 63 61 74 20 -of-line)...(let.((sreg.(concat.
d700 22 5e 5b 3d 7e 5b 3a 64 69 67 69 74 3a 5d 5d 22 29 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 "^[=~[:digit:]]"))).....(unless.
d720 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 73 72 65 67 29 0a 20 20 20 20 20 20 28 72 65 2d 73 65 61 72 (looking-at.sreg).......(re-sear
d740 63 68 2d 62 61 63 6b 77 61 72 64 20 73 72 65 67 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 28 62 ch-backward.sreg.nil.t).......(b
d760 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 29 29 0a 20 20 28 70 6f 69 6e 74 29 29 0a 0a eginning-of-line)))...(point))..
d780 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 65 6e 64 2d 6f 66 2d 78 61 (defun.ledger-navigate-end-of-xa
d7a0 63 74 20 28 29 0a 20 20 22 4d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 65 6e 64 20 6f 66 20 78 61 ct.()..."Move.point.to.end.of.xa
d7c0 63 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 64 67 65 72 2d 6e ct."...(interactive)...(ledger-n
d7e0 61 76 69 67 61 74 65 2d 6e 65 78 74 2d 78 61 63 74 2d 6f 72 2d 64 69 72 65 63 74 69 76 65 29 0a avigate-next-xact-or-directive).
d800 20 20 28 72 65 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 20 22 2e 24 22 29 0a 20 20 28 65 ..(re-search-backward.".$")...(e
d820 6e 64 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 28 70 6f 69 6e 74 29 29 0a 0a 28 64 65 66 75 6e 20 6c nd-of-line)...(point))..(defun.l
d840 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 74 6f 2d 6c 69 6e 65 20 28 6c 69 6e 65 2d 6e 75 6d edger-navigate-to-line.(line-num
d860 62 65 72 29 0a 20 20 22 52 61 70 69 64 6c 79 20 6d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 6c 69 ber)..."Rapidly.move.point.to.li
d880 6e 65 20 4c 49 4e 45 2d 4e 55 4d 42 45 52 2e 22 0a 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 ne.LINE-NUMBER."...(goto-char.(p
d8a0 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 28 31 2d 20 6c oint-min))...(forward-line.(1-.l
d8c0 69 6e 65 2d 6e 75 6d 62 65 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6e 61 76 ine-number)))..(defun.ledger-nav
d8e0 69 67 61 74 65 2d 66 69 6e 64 2d 78 61 63 74 2d 65 78 74 65 6e 74 73 20 28 70 6f 73 29 0a 20 20 igate-find-xact-extents.(pos)...
d900 22 52 65 74 75 72 6e 20 6c 69 73 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 70 6f 69 6e 74 20 66 6f "Return.list.containing.point.fo
d920 72 20 62 65 67 69 6e 6e 69 6e 67 20 61 6e 64 20 65 6e 64 20 6f 66 20 78 61 63 74 20 63 6f 6e 74 r.beginning.and.end.of.xact.cont
d940 61 69 6e 69 6e 67 20 50 4f 53 2e 0a 52 65 71 75 69 72 65 73 20 65 6d 70 74 79 20 6c 69 6e 65 20 aining.POS..Requires.empty.line.
d960 73 65 70 61 72 61 74 69 6e 67 20 78 61 63 74 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 separating.xacts."...(interactiv
d980 65 20 22 64 22 29 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 67 6f e."d")...(save-excursion.....(go
d9a0 74 6f 2d 63 68 61 72 20 70 6f 73 29 0a 20 20 20 20 28 6c 69 73 74 20 28 6c 65 64 67 65 72 2d 6e to-char.pos).....(list.(ledger-n
d9c0 61 76 69 67 61 74 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 78 61 63 74 29 0a 20 20 20 20 20 avigate-beginning-of-xact)......
d9e0 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 65 6e 64 2d 6f 66 2d 78 61 63 .....(ledger-navigate-end-of-xac
da00 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 73 6b t))))..(defun.ledger-navigate-sk
da20 69 70 2d 6c 69 6e 65 73 2d 62 61 63 6b 77 61 72 64 73 20 28 72 65 29 0a 20 20 22 4d 6f 76 65 20 ip-lines-backwards.(re)..."Move.
da40 62 61 63 6b 77 61 72 64 73 20 69 66 20 6e 65 63 65 73 73 61 72 79 20 75 6e 74 69 6c 20 74 68 65 backwards.if.necessary.until.the
da60 20 6c 69 6e 65 20 62 65 67 69 6e 6e 69 6e 67 20 64 6f 65 73 20 6e 6f 74 20 6d 61 74 63 68 20 52 .line.beginning.does.not.match.R
da80 45 2e 22 0a 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 28 77 68 69 E."...(beginning-of-line)...(whi
daa0 6c 65 20 28 61 6e 64 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 2d 70 20 72 65 29 0a 20 20 20 20 20 20 le.(and.(looking-at-p.re).......
dac0 20 20 20 20 20 20 20 20 28 7a 65 72 6f 70 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 2d 31 29 ........(zerop.(forward-line.-1)
dae0 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 73 6b 69 ))))..(defun.ledger-navigate-ski
db00 70 2d 6c 69 6e 65 73 2d 66 6f 72 77 61 72 64 73 20 28 72 65 29 0a 20 20 22 4d 6f 76 65 20 66 6f p-lines-forwards.(re)..."Move.fo
db20 72 77 61 72 64 73 20 69 66 20 6e 65 63 65 73 73 61 72 79 20 75 6e 74 69 6c 20 74 68 65 20 6c 69 rwards.if.necessary.until.the.li
db40 6e 65 20 62 65 67 69 6e 6e 69 6e 67 20 64 6f 65 73 20 6e 6f 74 20 6d 61 74 63 68 20 52 45 2e 22 ne.beginning.does.not.match.RE."
db60 0a 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 28 77 68 69 6c 65 20 ...(beginning-of-line)...(while.
db80 28 61 6e 64 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 2d 70 20 72 65 29 0a 20 20 20 20 20 20 20 20 20 (and.(looking-at-p.re)..........
dba0 20 20 20 20 20 28 7a 65 72 6f 70 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 29 29 29 29 .....(zerop.(forward-line.1)))))
dbc0 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 66 69 6e 64 2d 64 69 ..(defun.ledger-navigate-find-di
dbe0 72 65 63 74 69 76 65 2d 65 78 74 65 6e 74 73 20 28 70 6f 73 29 0a 20 20 22 52 65 74 75 72 6e 20 rective-extents.(pos)..."Return.
dc00 74 68 65 20 65 78 74 65 6e 74 73 20 6f 66 20 74 68 65 20 64 69 72 65 63 74 69 76 65 20 61 74 20 the.extents.of.the.directive.at.
dc20 50 4f 53 2e 22 0a 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 6f 73 29 0a 20 20 28 6c 65 74 20 28 POS."...(goto-char.pos)...(let.(
dc40 28 62 65 67 69 6e 20 28 70 72 6f 67 6e 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 73 (begin.(progn.(ledger-navigate-s
dc60 6b 69 70 2d 6c 69 6e 65 73 2d 62 61 63 6b 77 61 72 64 73 20 22 5b 20 5c 74 5d 5c 5c 7c 65 6e 64 kip-lines-backwards."[.\t]\\|end
dc80 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c 28 3f 3a 63 6f 6d 6d 65 6e 74 5c 5c 7c 74 65 73 74 5c [[:blank:]]+\\(?:comment\\|test\
dca0 5c 29 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e \)").......................(poin
dcc0 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 65 6e 64 20 28 70 72 6f 67 6e 20 28 66 6f 72 77 61 72 t))).........(end.(progn.(forwar
dce0 64 2d 6c 69 6e 65 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c d-line.1).....................(l
dd00 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 73 6b 69 70 2d 6c 69 6e 65 73 2d 66 6f 72 77 61 72 edger-navigate-skip-lines-forwar
dd20 64 73 20 22 5b 20 5c 74 5d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ds."[.\t]").....................
dd40 28 31 2d 20 28 70 6f 69 6e 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6d 6d 65 6e 74 2d (1-.(point)))).........(comment-
dd60 72 65 20 22 20 2a 3b 22 29 29 0a 20 20 20 20 3b 3b 20 68 61 6e 64 6c 65 20 62 6c 6f 63 6b 20 63 re.".*;")).....;;.handle.block.c
dd80 6f 6d 6d 65 6e 74 73 20 68 65 72 65 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 62 65 67 69 omments.here.....(goto-char.begi
dda0 6e 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 63 n).....(cond......((looking-at.c
ddc0 6f 6d 6d 65 6e 74 2d 72 65 29 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 omment-re).......(ledger-navigat
dde0 65 2d 73 6b 69 70 2d 6c 69 6e 65 73 2d 62 61 63 6b 77 61 72 64 73 20 63 6f 6d 6d 65 6e 74 2d 72 e-skip-lines-backwards.comment-r
de00 65 29 0a 20 20 20 20 20 20 3b 3b 20 57 65 20 61 72 65 20 65 69 74 68 65 72 20 61 74 20 74 68 65 e).......;;.We.are.either.at.the
de20 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 62 75 66 66 65 72 2c 20 6f 72 20 77 65 20 .beginning.of.the.buffer,.or.we.
de40 66 6f 75 6e 64 0a 20 20 20 20 20 20 3b 3b 20 61 20 6c 69 6e 65 20 6f 75 74 73 69 64 65 20 74 68 found.......;;.a.line.outside.th
de60 65 20 63 6f 6d 6d 65 6e 74 2c 20 6f 72 20 62 6f 74 68 2e 20 20 49 66 20 77 65 20 61 72 65 20 6f e.comment,.or.both...If.we.are.o
de80 75 74 73 69 64 65 0a 20 20 20 20 20 20 3b 3b 20 74 68 65 20 63 6f 6d 6d 65 6e 74 20 74 68 65 6e utside.......;;.the.comment.then
dea0 20 77 65 20 6e 65 65 64 20 74 6f 20 6d 6f 76 65 20 66 6f 72 77 61 72 64 20 61 20 6c 69 6e 65 2e .we.need.to.move.forward.a.line.
dec0 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 63 6f 6d 6d 65 .......(unless.(looking-at.comme
dee0 6e 74 2d 72 65 29 0a 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 0a nt-re).........(forward-line.1).
df00 20 20 20 20 20 20 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 29 0a 20 20 20 ........(beginning-of-line))....
df20 20 20 20 28 73 65 74 71 20 62 65 67 69 6e 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 28 67 ...(setq.begin.(point)).......(g
df40 6f 74 6f 2d 63 68 61 72 20 70 6f 73 29 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 oto-char.pos).......(ledger-navi
df60 67 61 74 65 2d 73 6b 69 70 2d 6c 69 6e 65 73 2d 66 6f 72 77 61 72 64 73 20 63 6f 6d 6d 65 6e 74 gate-skip-lines-forwards.comment
df80 2d 72 65 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 65 6e 64 20 28 70 6f 69 6e 74 29 29 29 0a 20 -re).......(setq.end.(point)))..
dfa0 20 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 28 3f 3a 63 6f 6d 6d 65 6e 74 5c 5c ....((looking-at."\\(?:comment\\
dfc0 7c 74 65 73 74 5c 5c 29 5c 5c 3e 22 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 65 6e 64 20 28 6f |test\\)\\>").......(setq.end.(o
dfe0 72 20 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 r.(save-match-data..............
e000 20 20 20 20 20 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5e 65 6e .........(re-search-forward."^en
e020 64 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c 28 3f 3a 63 6f 6d 6d 65 6e 74 5c 5c 7c 74 65 73 74 d[[:blank:]]+\\(?:comment\\|test
e040 5c 5c 29 5c 5c 5f 3e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 \\)\\_>")).....................(
e060 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 29 0a 20 20 20 20 28 6c 69 73 74 20 62 65 67 69 6e 20 65 point-max))))).....(list.begin.e
e080 6e 64 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 62 6c nd)))..(defun.ledger-navigate-bl
e0a0 6f 63 6b 2d 63 6f 6d 6d 65 6e 74 20 28 70 6f 73 29 0a 20 20 22 4d 6f 76 65 20 70 61 73 74 20 74 ock-comment.(pos)..."Move.past.t
e0c0 68 65 20 62 6c 6f 63 6b 20 63 6f 6d 6d 65 6e 74 20 61 74 20 50 4f 53 2c 20 61 6e 64 20 72 65 74 he.block.comment.at.POS,.and.ret
e0e0 75 72 6e 20 69 74 73 20 65 78 74 65 6e 74 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 urn.its.extents."...(interactive
e100 20 22 64 22 29 0a 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 6f 73 29 0a 20 20 28 6c 65 74 20 28 ."d")...(goto-char.pos)...(let.(
e120 28 62 65 67 69 6e 20 28 70 72 6f 67 6e 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 (begin.(progn.(beginning-of-line
e140 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 29 ).......................(point))
e160 29 0a 20 20 20 20 20 20 20 20 28 65 6e 64 20 28 70 72 6f 67 6e 20 28 65 6e 64 2d 6f 66 2d 6c 69 ).........(end.(progn.(end-of-li
e180 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 29 ne).....................(point))
e1a0 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6d 6d 65 6e 74 2d 72 65 20 22 20 2a 3b 22 29 29 0a 20 20 ).........(comment-re.".*;"))...
e1c0 20 20 3b 3b 20 68 61 6e 64 6c 65 20 62 6c 6f 63 6b 20 63 6f 6d 6d 65 6e 74 73 20 68 65 72 65 0a ..;;.handle.block.comments.here.
e1e0 20 20 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 28 77 68 65 ....(beginning-of-line).....(whe
e200 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 63 6f 6d 6d 65 6e 74 2d 72 65 29 0a 20 20 20 20 20 20 n.(looking-at.comment-re).......
e220 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 73 6b 69 70 2d 6c 69 6e 65 73 2d 62 61 63 6b (ledger-navigate-skip-lines-back
e240 77 61 72 64 73 20 63 6f 6d 6d 65 6e 74 2d 72 65 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 62 65 wards.comment-re).......(setq.be
e260 67 69 6e 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 6f gin.(point)).......(goto-char.po
e280 73 29 0a 20 20 20 20 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 s).......(beginning-of-line)....
e2a0 20 20 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 73 6b 69 70 2d 6c 69 6e 65 73 2d 66 ...(ledger-navigate-skip-lines-f
e2c0 6f 72 77 61 72 64 73 20 63 6f 6d 6d 65 6e 74 2d 72 65 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 orwards.comment-re).......(setq.
e2e0 65 6e 64 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 28 6c 69 73 74 20 62 65 67 69 6e 20 65 6e end.(point))).....(list.begin.en
e300 64 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 66 69 d)))...(defun.ledger-navigate-fi
e320 6e 64 2d 65 6c 65 6d 65 6e 74 2d 65 78 74 65 6e 74 73 20 28 70 6f 73 29 0a 20 20 22 52 65 74 75 nd-element-extents.(pos)..."Retu
e340 72 6e 20 6c 69 73 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 62 65 67 69 6e 6e 69 6e 67 20 61 6e 64 rn.list.containing.beginning.and
e360 20 65 6e 64 20 6f 66 20 74 68 65 20 65 6e 74 69 74 79 20 73 75 72 72 6f 75 6e 64 69 6e 67 20 50 .end.of.the.entity.surrounding.P
e380 4f 53 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 64 22 29 0a 20 20 28 73 61 76 65 OS."...(interactive."d")...(save
e3a0 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 6f 73 29 0a 20 -excursion.....(goto-char.pos)..
e3c0 20 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 28 6c 65 64 67 ...(beginning-of-line).....(ledg
e3e0 65 72 2d 6e 61 76 69 67 61 74 65 2d 73 6b 69 70 2d 6c 69 6e 65 73 2d 62 61 63 6b 77 61 72 64 73 er-navigate-skip-lines-backwards
e400 20 22 5b 20 5c 74 5d 5c 5c 7c 65 6e 64 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c 28 3f 3a 63 6f ."[.\t]\\|end[[:blank:]]+\\(?:co
e420 6d 6d 65 6e 74 5c 5c 7c 74 65 73 74 5c 5c 29 5c 5c 5f 3e 22 29 0a 20 20 20 20 28 69 66 20 28 6c mment\\|test\\)\\_>").....(if.(l
e440 6f 6f 6b 69 6e 67 2d 61 74 20 22 5b 3d 7e 30 2d 39 5c 5c 5b 5d 22 29 0a 20 20 20 20 20 20 20 20 ooking-at."[=~0-9\\[]").........
e460 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 66 69 6e 64 2d 78 61 63 74 2d 65 78 74 65 6e (ledger-navigate-find-xact-exten
e480 74 73 20 70 6f 73 29 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 66 ts.pos).......(ledger-navigate-f
e4a0 69 6e 64 2d 64 69 72 65 63 74 69 76 65 2d 65 78 74 65 6e 74 73 20 70 6f 73 29 29 29 29 0a 0a 28 ind-directive-extents.pos))))..(
e4c0 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 6e 65 78 74 2d 75 6e 63 6c 65 defun.ledger-navigate-next-uncle
e4e0 61 72 65 64 20 28 29 0a 20 20 22 4d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 74 68 65 20 6e 65 78 ared.()..."Move.point.to.the.nex
e500 74 20 75 6e 63 6c 65 61 72 65 64 20 74 72 61 6e 73 61 63 74 69 6f 6e 2e 22 0a 20 20 28 69 6e 74 t.uncleared.transaction."...(int
e520 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 6c 65 eractive)...(when.(looking-at.le
e540 64 67 65 72 2d 70 61 79 65 65 2d 75 6e 63 6c 65 61 72 65 64 2d 72 65 67 65 78 29 0a 20 20 20 20 dger-payee-uncleared-regex).....
e560 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 29 29 0a 20 20 28 69 66 20 28 72 65 2d 73 65 61 72 63 68 (forward-line))...(if.(re-search
e580 2d 66 6f 72 77 61 72 64 20 6c 65 64 67 65 72 2d 70 61 79 65 65 2d 75 6e 63 6c 65 61 72 65 64 2d -forward.ledger-payee-uncleared-
e5a0 72 65 67 65 78 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 28 70 72 6f 67 6e 20 28 62 65 67 69 6e regex.nil.t).......(progn.(begin
e5c0 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e ning-of-line)..............(poin
e5e0 74 29 29 0a 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 20 6e 65 78 74 20 75 6e 63 t)).....(user-error."No.next.unc
e600 6c 65 61 72 65 64 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 leared.transactions")))..(defun.
e620 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 70 72 65 76 69 6f 75 73 2d 75 6e 63 6c 65 61 72 ledger-navigate-previous-unclear
e640 65 64 20 28 29 0a 20 20 22 4d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 74 68 65 20 70 72 65 76 69 ed.()..."Move.point.to.the.previ
e660 6f 75 73 20 75 6e 63 6c 65 61 72 65 64 20 74 72 61 6e 73 61 63 74 69 6f 6e 2e 22 0a 20 20 28 69 ous.uncleared.transaction."...(i
e680 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e 20 28 65 71 75 61 6c 20 28 63 61 72 20 nteractive)...(when.(equal.(car.
e6a0 28 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 2d 61 74 2d 70 6f 69 6e 74 29 29 20 27 61 63 63 74 (ledger-context-at-point)).'acct
e6c0 2d 74 72 61 6e 73 61 63 74 69 6f 6e 29 0a 20 20 20 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 -transaction).....(ledger-naviga
e6e0 74 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 78 61 63 74 29 29 0a 20 20 28 69 66 20 28 72 65 te-beginning-of-xact))...(if.(re
e700 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 20 6c 65 64 67 65 72 2d 70 61 79 65 65 2d 75 6e -search-backward.ledger-payee-un
e720 63 6c 65 61 72 65 64 2d 72 65 67 65 78 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 28 70 72 6f 67 cleared-regex.nil.t).......(prog
e740 6e 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 n.(beginning-of-line)...........
e760 20 20 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 20 ...(point)).....(user-error."No.
e780 70 72 65 76 69 6f 75 73 20 75 6e 63 6c 65 61 72 65 64 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 22 previous.uncleared.transactions"
e7a0 29 29 29 0a 0a 0a 28 70 72 6f 76 69 64 65 20 27 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 29 )))...(provide.'ledger-navigate)
e7c0 0a 0a 3b 3b 3b 20 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2e 65 6c 20 65 6e 64 73 20 68 65 ..;;;.ledger-navigate.el.ends.he
e7e0 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 re..............................
e800 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 31 2e 31 34 33 35 2f 6c 65 64 67 65 72 ledger-mode-20240411.1435/ledger
e820 2d 69 6e 69 74 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -init.el........................
e840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e860 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
e880 30 30 30 37 32 37 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 37 33 31 00 20 30 00 00 00 0007277.00000000000.015731..0...
e8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e900 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
e920 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
e940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
e9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea00 3b 3b 3b 20 6c 65 64 67 65 72 2d 69 6e 69 74 2e 65 6c 20 2d 2d 2d 20 48 65 6c 70 65 72 20 63 6f ;;;.ledger-init.el.---.Helper.co
ea20 64 65 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 74 68 65 20 22 6c 65 64 67 65 72 22 20 63 6f 6d de.for.use.with.the."ledger".com
ea40 6d 61 6e 64 2d 6c 69 6e 65 20 74 6f 6f 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 mand-line.tool..-*-.lexical-bind
ea60 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 ing:.t;.-*-..;;.Copyright.(C).20
ea80 30 33 2d 32 30 31 36 20 4a 6f 68 6e 20 57 69 65 67 6c 65 79 20 28 6a 6f 68 6e 77 20 41 54 20 67 03-2016.John.Wiegley.(johnw.AT.g
eaa0 6e 75 20 44 4f 54 20 6f 72 67 29 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 6e 6f 74 nu.DOT.org)..;;.This.file.is.not
eac0 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 54 68 69 73 20 69 73 20 .part.of.GNU.Emacs...;;.This.is.
eae0 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 free.software;.you.can.redistrib
eb00 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 20 75 6e 64 65 72 0a 3b 3b ute.it.and/or.modify.it.under.;;
eb20 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 .the.terms.of.the.GNU.General.Pu
eb40 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 blic.License.as.published.by.the
eb60 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 .Free.;;.Software.Foundation;.ei
eb80 74 68 65 72 20 76 65 72 73 69 6f 6e 20 32 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 ther.version.2,.or.(at.your.opti
eba0 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 0a 3b 3b 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 on).any.later.;;.version..;;.;;.
ebc0 54 68 69 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 This.is.distributed.in.the.hope.
ebe0 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 that.it.will.be.useful,.but.WITH
ec00 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 OUT.;;.ANY.WARRANTY;.without.eve
ec20 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 n.the.implied.warranty.of.MERCHA
ec40 4e 54 41 42 49 4c 49 54 59 20 6f 72 0a 3b 3b 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 NTABILITY.or.;;.FITNESS.FOR.A.PA
ec60 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 RTICULAR.PURPOSE...See.the.GNU.G
ec80 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 66 6f 72 20 6d 6f 72 eneral.Public.License.;;.for.mor
eca0 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 e.details..;;.;;.You.should.have
ecc0 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 .received.a.copy.of.the.GNU.Gene
ece0 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 ral.Public.License.;;.along.with
ed00 20 47 4e 55 20 45 6d 61 63 73 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 .GNU.Emacs;.see.the.file.COPYING
ed20 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 20 ...If.not,.write.to.the.;;.Free.
ed40 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 Software.Foundation,.Inc.,.51.Fr
ed60 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 anklin.Street,.Fifth.Floor,.Bost
ed80 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 on,.;;.MA.02110-1301.USA...;;;.C
eda0 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 20 44 65 74 65 72 6d 69 6e 65 20 74 68 65 20 6c 65 64 67 ommentary:.;;.Determine.the.ledg
edc0 65 72 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 0a 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 er.environment..(require.'ledger
ede0 2d 72 65 67 65 78 29 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c -regex)..;;;.Code:..(defcustom.l
ee00 65 64 67 65 72 2d 69 6e 69 74 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 7e 2f 2e 6c 65 64 67 65 72 72 edger-init-file-name."~/.ledgerr
ee20 63 22 0a 20 20 22 4c 6f 63 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 6c 65 64 67 65 72 20 69 6e 69 c"..."Location.of.the.ledger.ini
ee40 74 69 61 6c 69 7a 61 74 69 6f 6e 20 66 69 6c 65 2e 20 20 6e 69 6c 20 69 66 20 79 6f 75 20 64 6f tialization.file...nil.if.you.do
ee60 6e 27 74 20 68 61 76 65 20 6f 6e 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65 20 n't.have.one."...:type.'(choice.
ee80 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 44 6f 20 6e 6f 74 20 72 65 61 64 20 6c 65 64 67 65 72 20 (const.:tag."Do.not.read.ledger.
eea0 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 66 69 6c 65 22 20 6e 69 6c 29 0a 20 20 20 20 20 20 initialization.file".nil).......
eec0 20 20 20 20 20 20 20 20 20 20 20 66 69 6c 65 29 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 ...........file)...:group.'ledge
eee0 72 2d 65 78 65 63 29 0a 0a 28 64 65 66 76 61 72 20 6c 65 64 67 65 72 2d 65 6e 76 69 72 6f 6e 6d r-exec)..(defvar.ledger-environm
ef00 65 6e 74 2d 61 6c 69 73 74 20 6e 69 6c 0a 20 20 22 56 61 72 69 61 62 6c 65 20 74 6f 20 68 6f 6c ent-alist.nil..."Variable.to.hol
ef20 64 20 64 65 74 61 69 6c 73 20 61 62 6f 75 74 20 6c 65 64 67 65 72 2d 6d 6f 64 65 27 73 20 65 6e d.details.about.ledger-mode's.en
ef40 76 69 72 6f 6e 6d 65 6e 74 2e 0a 0a 41 64 64 69 6e 67 20 74 68 65 20 64 6f 74 74 65 64 20 70 61 vironment...Adding.the.dotted.pa
ef60 69 72 20 28 5c 22 64 65 63 69 6d 61 6c 2d 63 6f 6d 6d 61 5c 22 20 2e 20 74 29 20 77 69 6c 6c 20 ir.(\"decimal-comma\"...t).will.
ef80 74 65 6c 6c 20 6c 65 64 67 65 72 0a 74 6f 20 74 72 65 61 74 20 63 6f 6d 6d 61 73 20 61 73 20 64 tell.ledger.to.treat.commas.as.d
efa0 65 63 69 6d 61 6c 20 73 65 70 61 72 61 74 6f 72 2e 0a 0a 54 68 69 73 20 76 61 72 69 61 62 6c 65 ecimal.separator...This.variable
efc0 20 69 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 70 6f 70 75 6c 61 74 65 64 20 62 79 0a 60 .is.automatically.populated.by.`
efe0 6c 65 64 67 65 72 2d 69 6e 69 74 2d 6c 6f 61 64 2d 69 6e 69 74 2d 66 69 6c 65 27 2c 20 77 68 69 ledger-init-load-init-file',.whi
f000 63 68 20 69 73 20 63 61 6c 6c 65 64 20 69 6e 20 74 68 65 20 62 6f 64 79 20 6f 66 0a 60 6c 65 64 ch.is.called.in.the.body.of.`led
f020 67 65 72 2d 6d 6f 64 65 27 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6c 65 64 67 65 72 2d 69 ger-mode'.")..(defconst.ledger-i
f040 73 6f 2d 64 61 74 65 2d 66 6f 72 6d 61 74 20 22 25 59 2d 25 6d 2d 25 64 22 0a 20 20 22 54 68 65 so-date-format."%Y-%m-%d"..."The
f060 20 66 6f 72 6d 61 74 20 66 6f 72 20 49 53 4f 20 38 36 30 31 20 64 61 74 65 73 2e 22 29 0a 0a 28 .format.for.ISO.8601.dates.")..(
f080 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 64 65 66 61 75 6c 74 2d 64 61 74 65 2d 66 6f defcustom.ledger-default-date-fo
f0a0 72 6d 61 74 20 22 25 59 2f 25 6d 2f 25 64 22 0a 20 20 22 54 68 65 20 64 61 74 65 20 66 6f 72 6d rmat."%Y/%m/%d"..."The.date.form
f0c0 61 74 20 74 68 61 74 20 6c 65 64 67 65 72 20 75 73 65 73 20 74 68 72 6f 75 67 68 6f 75 74 2e 0a at.that.ledger.uses.throughout..
f0e0 53 65 74 20 74 68 69 73 20 74 6f 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 60 6c 65 64 67 65 72 Set.this.to.the.value.of.`ledger
f100 2d 69 73 6f 2d 64 61 74 65 2d 66 6f 72 6d 61 74 27 20 69 66 20 79 6f 75 20 70 72 65 66 65 72 0a -iso-date-format'.if.you.prefer.
f120 49 53 4f 20 38 36 30 31 20 64 61 74 65 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 ISO.8601.dates."...:type.'string
f140 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 6c 65 64 67 65 72 2d 6d 6f 64 ...:package-version.'(ledger-mod
f160 65 20 2e 20 22 34 2e 30 2e 30 22 29 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 29 0a 0a e..."4.0.0")...:group.'ledger)..
f180 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 66 6f 72 6d 61 74 2d 64 61 74 65 20 28 26 6f 70 74 69 (defun.ledger-format-date.(&opti
f1a0 6f 6e 61 6c 20 64 61 74 65 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
f1c0 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
f1e0 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
f200 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.
f220 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
f240 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...
f260 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-
f280 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
f2a0 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
f2c0 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
f2e0 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.
f300 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
f320 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)
f340 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
f360 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
f380 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
f3a0 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
f3c0 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
f3e0 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
f400 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
f420 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
f440 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.
f460 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-
f480 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.
f4a0 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..
f4c0 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.
f4e0 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)....
f500 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.(
f520 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.(
f540 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)))...........
f560 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.
f580 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)...........
f5a0 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
f5c0 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)...................
f5e0 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))..................
f600 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
f620 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)
f640 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.
f660 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)............
f680 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..........
f6a0 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)))...........
f6c0 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)))......
f6e0 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))))
f700 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
f720 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
f740 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
f760 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)...
f780 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
f7a0 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
f7c0 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
f7e0 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-
f800 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).
f820 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
f840 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
f860 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
f880 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)
f8a0 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..
f8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f900 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f920 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
f9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fa00 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 31 2e 31 34 33 35 2f 6c 65 64 67 65 72 ledger-mode-20240411.1435/ledger
fa20 2d 78 61 63 74 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -xact.el........................
fa40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fa60 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
fa80 30 30 32 31 32 35 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 37 31 34 00 20 30 00 00 00 0021254.00000000000.015714..0...
faa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 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...................
fb20 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...................
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 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
fc20 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
fc40 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
fc60 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
fc80 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
fca0 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
fcc0 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.
fce0 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
fd00 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.;;
fd20 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
fd40 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
fd60 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
fd80 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
fda0 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..;;.;;.
fdc0 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.
fde0 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
fe00 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
fe20 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
fe40 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
fe60 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
fe80 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
fea0 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
fec0 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
fee0 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
ff00 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
ff20 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.
ff40 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
ff60 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
ff80 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....;;;.
ffa0 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
ffc0 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...;;;.
ffe0 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
10000 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
10020 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
10040 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
10060 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
10080 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
100a0 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
100c0 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
100e0 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-
10100 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
10120 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.
10140 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
10160 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
10180 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,
101a0 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
101c0 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
101e0 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
10200 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
10220 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").
10240 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
10260 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.(
10280 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-
102a0 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
102c0 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
102e0 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
10300 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
10320 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...
10340 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
10360 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
10380 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
103a0 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
103c0 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
103e0 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
10400 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
10420 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
10440 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.
10460 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
10480 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
104a0 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)).............(
104c0 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
104e0 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
10500 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
10520 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).
10540 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
10560 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................
10580 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.
105a0 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-
105c0 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
105e0 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
10600 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
10620 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-
10640 78 61 63 74 2d 63 6f 6e 74 65 78 74 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 63 6f xact-context.()..."Return.the.co
10660 6e 74 65 78 74 20 6f 66 20 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 63 6f 6e 74 61 69 6e ntext.of.the.transaction.contain
10680 69 6e 67 20 70 6f 69 6e 74 20 6f 72 20 6e 69 6c 2e 22 0a 20 20 28 6c 65 74 20 28 28 69 20 30 29 ing.point.or.nil."...(let.((i.0)
106a0 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 65 71 20 28 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 ).....(while.(eq.(ledger-context
106c0 2d 6c 69 6e 65 2d 74 79 70 65 20 28 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 2d 6f 74 68 65 72 -line-type.(ledger-context-other
106e0 2d 6c 69 6e 65 20 69 29 29 20 27 61 63 63 74 2d 74 72 61 6e 73 61 63 74 69 6f 6e 29 0a 20 20 20 -line.i)).'acct-transaction)....
10700 20 20 20 28 73 65 74 71 20 69 20 28 2d 20 69 20 31 29 29 29 0a 20 20 20 20 28 6c 65 74 20 28 28 ...(setq.i.(-.i.1))).....(let.((
10720 63 6f 6e 74 65 78 74 2d 69 6e 66 6f 20 28 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 2d 6f 74 68 context-info.(ledger-context-oth
10740 65 72 2d 6c 69 6e 65 20 69 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 28 6c 65 er-line.i))).......(when.(eq.(le
10760 64 67 65 72 2d 63 6f 6e 74 65 78 74 2d 6c 69 6e 65 2d 74 79 70 65 20 63 6f 6e 74 65 78 74 2d 69 dger-context-line-type.context-i
10780 6e 66 6f 29 20 27 78 61 63 74 29 0a 20 20 20 20 20 20 20 20 63 6f 6e 74 65 78 74 2d 69 6e 66 6f nfo).'xact).........context-info
107a0 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 78 61 63 74 2d 70 61 79 65 65 20 28 ))))..(defun.ledger-xact-payee.(
107c0 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 70 61 79 65 65 20 6f 66 20 74 68 65 20 74 72 61 )..."Return.the.payee.of.the.tra
107e0 6e 73 61 63 74 69 6f 6e 20 63 6f 6e 74 61 69 6e 69 6e 67 20 70 6f 69 6e 74 20 6f 72 20 6e 69 6c nsaction.containing.point.or.nil
10800 2e 22 0a 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 78 61 63 74 2d 63 6f 6e 74 65 78 74 20 28 6c ."...(when-let.((xact-context.(l
10820 65 64 67 65 72 2d 78 61 63 74 2d 63 6f 6e 74 65 78 74 29 29 29 0a 20 20 20 20 28 6c 65 64 67 65 edger-xact-context))).....(ledge
10840 72 2d 63 6f 6e 74 65 78 74 2d 66 69 65 6c 64 2d 76 61 6c 75 65 20 78 61 63 74 2d 63 6f 6e 74 65 r-context-field-value.xact-conte
10860 78 74 20 27 70 61 79 65 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 78 61 63 74 xt.'payee)))..(defun.ledger-xact
10880 2d 64 61 74 65 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 64 61 74 65 20 6f 66 20 74 -date.()..."Return.the.date.of.t
108a0 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 63 6f 6e 74 61 69 6e 69 6e 67 20 70 6f 69 6e 74 20 he.transaction.containing.point.
108c0 6f 72 20 6e 69 6c 2e 22 0a 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 78 61 63 74 2d 63 6f 6e 74 or.nil."...(when-let.((xact-cont
108e0 65 78 74 20 28 6c 65 64 67 65 72 2d 78 61 63 74 2d 63 6f 6e 74 65 78 74 29 29 29 0a 20 20 20 20 ext.(ledger-xact-context))).....
10900 28 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 2d 66 69 65 6c 64 2d 76 61 6c 75 65 20 78 61 63 74 (ledger-context-field-value.xact
10920 2d 63 6f 6e 74 65 78 74 20 27 64 61 74 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 -context.'date)))..(defun.ledger
10940 2d 78 61 63 74 2d 66 69 6e 64 2d 73 6c 6f 74 20 28 6d 6f 6d 65 6e 74 29 0a 20 20 22 46 69 6e 64 -xact-find-slot.(moment)..."Find
10960 20 74 68 65 20 72 69 67 68 74 20 70 6c 61 63 65 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 20 66 .the.right.place.in.the.buffer.f
10980 6f 72 20 61 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 61 74 20 4d 4f 4d 45 4e 54 2e 0a 4d 4f 4d 45 or.a.transaction.at.MOMENT..MOME
109a0 4e 54 20 69 73 20 61 6e 20 65 6e 63 6f 64 65 64 20 64 61 74 65 22 0a 20 20 28 6c 65 74 20 28 6c NT.is.an.encoded.date"...(let.(l
109c0 61 73 74 2d 78 61 63 74 2d 73 74 61 72 74 29 0a 20 20 20 20 28 63 61 74 63 68 20 27 66 6f 75 6e ast-xact-start).....(catch.'foun
109e0 64 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 78 61 63 74 2d 69 74 65 72 61 74 65 2d 74 72 61 d.......(ledger-xact-iterate-tra
10a00 6e 73 61 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 73 74 61 72 74 20 nsactions........(lambda.(start.
10a20 64 61 74 65 20 5f 6d 61 72 6b 20 5f 64 65 73 63 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 74 71 date._mark._desc)..........(setq
10a40 20 6c 61 73 74 2d 78 61 63 74 2d 73 74 61 72 74 20 73 74 61 72 74 29 0a 20 20 20 20 20 20 20 20 .last-xact-start.start).........
10a60 20 28 77 68 65 6e 20 28 74 69 6d 65 2d 6c 65 73 73 2d 70 20 6d 6f 6d 65 6e 74 20 64 61 74 65 29 .(when.(time-less-p.moment.date)
10a80 0a 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 66 6f 75 6e 64 20 74 29 29 29 29 29 ............(throw.'found.t)))))
10aa0 0a 20 20 20 20 3b 3b 20 49 66 20 77 65 20 61 72 65 20 69 6e 73 65 72 74 69 6e 67 20 61 74 20 74 .....;;.If.we.are.inserting.at.t
10ac0 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 62 75 66 66 65 72 2c 20 69 6e 73 65 72 74 20 61 6e 20 he.end.of.the.buffer,.insert.an.
10ae0 65 78 74 72 61 20 6e 65 77 6c 69 6e 65 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 65 6f extra.newline.....(when.(and.(eo
10b00 62 70 29 20 6c 61 73 74 2d 78 61 63 74 2d 73 74 61 72 74 29 0a 20 20 20 20 20 20 28 6c 65 74 20 bp).last-xact-start).......(let.
10b20 28 28 65 6e 64 20 28 63 61 64 72 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 66 69 6e ((end.(cadr.(ledger-navigate-fin
10b40 64 2d 78 61 63 74 2d 65 78 74 65 6e 74 73 20 6c 61 73 74 2d 78 61 63 74 2d 73 74 61 72 74 29 29 d-xact-extents.last-xact-start))
10b60 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)......
10b80 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 0a 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 ...(insert."\n").........(forwar
10ba0 64 2d 6c 69 6e 65 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 78 61 63 74 2d d-line)))))..(defun.ledger-xact-
10bc0 69 74 65 72 61 74 65 2d 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 28 63 61 6c 6c 62 61 63 6b 29 0a iterate-transactions.(callback).
10be0 20 20 22 49 74 65 72 61 74 65 20 74 68 72 6f 75 67 68 20 65 61 63 68 20 74 72 61 6e 73 61 63 74 .."Iterate.through.each.transact
10c00 69 6f 6e 20 63 61 6c 6c 20 43 41 4c 4c 42 41 43 4b 20 66 6f 72 20 65 61 63 68 2e 22 0a 20 20 28 ion.call.CALLBACK.for.each."...(
10c20 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 28 6c 65 74 2a 20 28 goto-char.(point-min))...(let*.(
10c40 28 6e 6f 77 20 28 63 75 72 72 65 6e 74 2d 74 69 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 (now.(current-time))..........(c
10c60 75 72 72 65 6e 74 2d 79 65 61 72 20 28 6e 74 68 20 35 20 28 64 65 63 6f 64 65 2d 74 69 6d 65 20 urrent-year.(nth.5.(decode-time.
10c80 6e 6f 77 29 29 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 6e 6f 74 20 28 65 6f 62 70 29 29 0a now)))).....(while.(not.(eobp)).
10ca0 20 20 20 20 20 20 28 77 68 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 6c 65 64 67 65 72 2d 69 ......(when.(looking-at.ledger-i
10cc0 74 65 72 61 74 65 2d 72 65 67 65 78 70 29 0a 20 20 20 20 20 20 20 20 28 69 66 2d 6c 65 74 20 28 terate-regexp).........(if-let.(
10ce0 28 79 65 61 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 29 29 29 0a 20 20 20 20 20 20 20 (year.(match-string.1)))........
10d00 20 20 20 20 20 28 73 65 74 71 20 63 75 72 72 65 6e 74 2d 79 65 61 72 20 28 73 74 72 69 6e 67 2d .....(setq.current-year.(string-
10d20 74 6f 2d 6e 75 6d 62 65 72 20 79 65 61 72 29 29 20 3b 61 20 59 20 64 69 72 65 63 74 69 76 65 20 to-number.year)).;a.Y.directive.
10d40 77 61 73 20 66 6f 75 6e 64 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 73 74 61 72 74 was.found...........(let.((start
10d60 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 .(match-beginning.0))...........
10d80 20 20 20 20 20 20 28 79 65 61 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 28 2b 20 6c 65 64 ......(year.(match-string.(+.led
10da0 67 65 72 2d 72 65 67 65 78 2d 69 74 65 72 61 74 65 2d 67 72 6f 75 70 2d 61 63 74 75 61 6c 2d 64 ger-regex-iterate-group-actual-d
10dc0 61 74 65 20 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 6f 6e 74 68 20 ate.1))).................(month.
10de0 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 (string-to-number.(match-string.
10e00 28 2b 20 6c 65 64 67 65 72 2d 72 65 67 65 78 2d 69 74 65 72 61 74 65 2d 67 72 6f 75 70 2d 61 63 (+.ledger-regex-iterate-group-ac
10e20 74 75 61 6c 2d 64 61 74 65 20 32 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tual-date.2)))).................
10e40 28 64 61 79 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 6d 61 74 63 68 2d 73 74 (day.(string-to-number.(match-st
10e60 72 69 6e 67 20 28 2b 20 6c 65 64 67 65 72 2d 72 65 67 65 78 2d 69 74 65 72 61 74 65 2d 67 72 6f ring.(+.ledger-regex-iterate-gro
10e80 75 70 2d 61 63 74 75 61 6c 2d 64 61 74 65 20 33 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 up-actual-date.3))))............
10ea0 20 20 20 20 20 28 73 74 61 74 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 6c 65 64 67 65 72 .....(state.(match-string.ledger
10ec0 2d 72 65 67 65 78 2d 69 74 65 72 61 74 65 2d 67 72 6f 75 70 2d 73 74 61 74 65 29 29 0a 20 20 20 -regex-iterate-group-state))....
10ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 61 79 65 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e .............(payee.(match-strin
10f00 67 20 6c 65 64 67 65 72 2d 72 65 67 65 78 2d 69 74 65 72 61 74 65 2d 67 72 6f 75 70 2d 70 61 79 g.ledger-regex-iterate-group-pay
10f20 65 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 79 65 61 72 20 ee))).............(if.(and.year.
10f40 28 3e 20 28 6c 65 6e 67 74 68 20 79 65 61 72 29 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 (>.(length.year).0))............
10f60 20 20 20 20 20 28 73 65 74 71 20 79 65 61 72 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 .....(setq.year.(string-to-numbe
10f80 72 20 79 65 61 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 63 r.year))).............(funcall.c
10fa0 61 6c 6c 62 61 63 6b 20 73 74 61 72 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 allback.start...................
10fc0 20 20 20 28 65 6e 63 6f 64 65 2d 74 69 6d 65 20 30 20 30 20 30 20 64 61 79 20 6d 6f 6e 74 68 0a ...(encode-time.0.0.0.day.month.
10fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
11000 20 20 28 6f 72 20 79 65 61 72 20 63 75 72 72 65 6e 74 2d 79 65 61 72 29 29 0a 20 20 20 20 20 20 ..(or.year.current-year)).......
11020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 74 65 20 70 61 79 65 65 29 29 29 29 0a 20 ...............state.payee))))..
11040 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 29 29 29 29 0a 0a 28 64 65 66 63 75 73 74 .....(forward-line))))..(defcust
11060 6f 6d 20 6c 65 64 67 65 72 2d 63 6f 70 79 2d 74 72 61 6e 73 61 63 74 69 6f 6e 2d 69 6e 73 65 72 om.ledger-copy-transaction-inser
11080 74 2d 62 6c 61 6e 6b 2d 6c 69 6e 65 2d 61 66 74 65 72 20 6e 69 6c 0a 20 20 22 57 68 65 6e 20 6e t-blank-line-after.nil..."When.n
110a0 6f 6e 2d 6e 69 6c 2c 20 69 6e 73 65 72 74 20 61 20 62 6c 61 6e 6b 20 6c 69 6e 65 20 61 66 74 65 on-nil,.insert.a.blank.line.afte
110c0 72 20 60 6c 65 64 67 65 72 2d 63 6f 70 79 2d 74 72 61 6e 73 61 63 74 69 6f 6e 2d 61 74 2d 70 6f r.`ledger-copy-transaction-at-po
110e0 69 6e 74 27 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 int'."...:type.'boolean...:group
11100 20 27 6c 65 64 67 65 72 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 63 6f 70 79 2d 74 72 .'ledger)..(defun.ledger-copy-tr
11120 61 6e 73 61 63 74 69 6f 6e 2d 61 74 2d 70 6f 69 6e 74 20 28 64 61 74 65 29 0a 20 20 22 41 73 6b ansaction-at-point.(date)..."Ask
11140 20 66 6f 72 20 61 20 6e 65 77 20 44 41 54 45 20 61 6e 64 20 63 6f 70 79 20 74 68 65 20 74 72 61 .for.a.new.DATE.and.copy.the.tra
11160 6e 73 61 63 74 69 6f 6e 20 75 6e 64 65 72 20 70 6f 69 6e 74 20 74 6f 20 74 68 61 74 20 64 61 74 nsaction.under.point.to.that.dat
11180 65 2e 0a 4c 65 61 76 65 20 70 6f 69 6e 74 20 6f 6e 20 74 68 65 20 66 69 72 73 74 20 61 6d 6f 75 e..Leave.point.on.the.first.amou
111a0 6e 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 73 74 20 28 6c 65 64 67 65 nt."...(interactive.(list.(ledge
111c0 72 2d 72 65 61 64 2d 64 61 74 65 20 22 43 6f 70 79 20 74 6f 20 64 61 74 65 3a 20 22 29 29 29 0a r-read-date."Copy.to.date:."))).
111e0 20 20 28 6c 65 74 2a 20 28 28 65 78 74 65 6e 74 73 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 ..(let*.((extents.(ledger-naviga
11200 74 65 2d 66 69 6e 64 2d 78 61 63 74 2d 65 78 74 65 6e 74 73 20 28 70 6f 69 6e 74 29 29 29 0a 20 te-find-xact-extents.(point)))..
11220 20 20 20 20 20 20 20 20 28 74 72 61 6e 73 61 63 74 69 6f 6e 20 28 62 75 66 66 65 72 2d 73 75 62 ........(transaction.(buffer-sub
11240 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 28 63 61 72 20 65 78 74 65 6e 74 string-no-properties.(car.extent
11260 73 29 20 28 63 61 64 72 20 65 78 74 65 6e 74 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 65 6e s).(cadr.extents)))..........(en
11280 63 6f 64 65 64 2d 64 61 74 65 20 28 6c 65 64 67 65 72 2d 70 61 72 73 65 2d 69 73 6f 2d 64 61 74 coded-date.(ledger-parse-iso-dat
112a0 65 20 64 61 74 65 29 29 29 0a 20 20 20 20 28 70 75 73 68 2d 6d 61 72 6b 29 0a 20 20 20 20 28 6c e.date))).....(push-mark).....(l
112c0 65 64 67 65 72 2d 78 61 63 74 2d 66 69 6e 64 2d 73 6c 6f 74 20 65 6e 63 6f 64 65 64 2d 64 61 74 edger-xact-find-slot.encoded-dat
112e0 65 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 74 72 61 6e 73 61 63 74 69 6f 6e 0a 20 20 20 20 20 e).....(insert.transaction......
11300 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 6c 65 64 67 65 72 2d 63 6f 70 79 2d 74 72 61 6e .......(if.(and.ledger-copy-tran
11320 73 61 63 74 69 6f 6e 2d 69 6e 73 65 72 74 2d 62 6c 61 6e 6b 2d 6c 69 6e 65 2d 61 66 74 65 72 20 saction-insert-blank-line-after.
11340 28 6e 6f 74 20 28 65 6f 62 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c (not.(eobp)))................."\
11360 6e 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 22 29 29 0a 20 20 20 20 28 62 n\n"..............."\n")).....(b
11380 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 20 2d 31 29 0a 20 20 20 20 28 6c 65 64 67 65 72 eginning-of-line.-1).....(ledger
113a0 2d 6e 61 76 69 67 61 74 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 78 61 63 74 29 0a 20 20 20 -navigate-beginning-of-xact)....
113c0 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 6c 65 64 67 65 72 2d 69 73 6f 2d 64 .(re-search-forward.ledger-iso-d
113e0 61 74 65 2d 72 65 67 65 78 70 29 0a 20 20 20 20 28 72 65 70 6c 61 63 65 2d 6d 61 74 63 68 20 64 ate-regexp).....(replace-match.d
11400 61 74 65 29 0a 20 20 20 20 28 6c 65 64 67 65 72 2d 6e 65 78 74 2d 61 6d 6f 75 6e 74 29 0a 20 20 ate).....(ledger-next-amount)...
11420 20 20 28 69 66 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5b 2d 30 2d 39 5d ..(if.(re-search-forward."[-0-9]
11440 22 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 2d 62 65 67 ").........(goto-char.(match-beg
11460 69 6e 6e 69 6e 67 20 30 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 64 65 6c inning.0)))))..(defun.ledger-del
11480 65 74 65 2d 63 75 72 72 65 6e 74 2d 74 72 61 6e 73 61 63 74 69 6f 6e 20 28 70 6f 73 29 0a 20 20 ete-current-transaction.(pos)...
114a0 22 44 65 6c 65 74 65 20 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 73 75 72 72 6f 75 6e 64 "Delete.the.transaction.surround
114c0 69 6e 67 20 50 4f 53 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 64 22 29 0a 20 20 ing.POS."...(interactive."d")...
114e0 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
11500 69 6e 64 2d 78 61 63 74 2d 65 78 74 65 6e 74 73 20 70 6f 73 29 29 29 0a 20 20 20 20 28 64 65 6c ind-xact-extents.pos))).....(del
11520 65 74 65 2d 72 65 67 69 6f 6e 20 28 63 61 72 20 62 6f 75 6e 64 73 29 20 28 63 61 64 72 20 62 6f ete-region.(car.bounds).(cadr.bo
11540 75 6e 64 73 29 29 29 0a 20 20 28 64 65 6c 65 74 65 2d 62 6c 61 6e 6b 2d 6c 69 6e 65 73 29 29 0a unds)))...(delete-blank-lines)).
11560 0a 28 64 65 66 76 61 72 20 6c 65 64 67 65 72 2d 61 64 64 2d 74 72 61 6e 73 61 63 74 69 6f 6e 2d .(defvar.ledger-add-transaction-
11580 6c 61 73 74 2d 64 61 74 65 20 6e 69 6c 0a 20 20 22 4c 61 73 74 20 64 61 74 65 20 65 6e 74 65 72 last-date.nil..."Last.date.enter
115a0 65 64 20 75 73 69 6e 67 20 60 6c 65 64 67 65 72 2d 72 65 61 64 2d 74 72 61 6e 73 61 63 74 69 6f ed.using.`ledger-read-transactio
115c0 6e 27 2e 22 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 61 64 2d 74 72 61 6e 73 61 n'.")..(defun.ledger-read-transa
115e0 63 74 69 6f 6e 20 28 29 0a 20 20 22 52 65 61 64 20 74 68 65 20 74 65 78 74 20 6f 66 20 61 20 74 ction.()..."Read.the.text.of.a.t
11600 72 61 6e 73 61 63 74 69 6f 6e 2c 20 77 68 69 63 68 20 69 73 20 61 74 20 6c 65 61 73 74 20 74 68 ransaction,.which.is.at.least.th
11620 65 20 63 75 72 72 65 6e 74 20 64 61 74 65 2e 22 0a 20 20 28 6c 65 74 20 28 28 64 61 74 65 20 28 e.current.date."...(let.((date.(
11640 6c 65 64 67 65 72 2d 72 65 61 64 2d 64 61 74 65 20 22 44 61 74 65 3a 20 22 29 29 29 0a 20 20 20 ledger-read-date."Date:.")))....
11660 20 28 63 6f 6e 63 61 74 20 64 61 74 65 20 22 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 .(concat.date.".".............(w
11680 68 65 6e 20 6c 65 64 67 65 72 2d 61 64 64 2d 74 72 61 6e 73 61 63 74 69 6f 6e 2d 70 72 6f 6d 70 hen.ledger-add-transaction-promp
116a0 74 2d 66 6f 72 2d 74 65 78 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 61 64 2d 73 t-for-text...............(read-s
116c0 74 72 69 6e 67 20 28 63 6f 6e 63 61 74 20 22 78 61 63 74 20 22 20 64 61 74 65 20 22 3a 20 22 29 tring.(concat."xact.".date.":.")
116e0 20 6e 69 6c 20 27 6c 65 64 67 65 72 2d 6d 69 6e 69 62 75 66 66 65 72 2d 68 69 73 74 6f 72 79 29 .nil.'ledger-minibuffer-history)
11700 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 70 61 72 73 65 2d 69 73 6f 2d 64 61 ))))..(defun.ledger-parse-iso-da
11720 74 65 20 28 64 61 74 65 29 0a 20 20 22 54 72 79 20 74 6f 20 70 61 72 73 65 20 44 41 54 45 20 75 te.(date)..."Try.to.parse.DATE.u
11740 73 69 6e 67 20 60 6c 65 64 67 65 72 2d 69 73 6f 2d 64 61 74 65 2d 72 65 67 65 78 70 27 20 61 6e sing.`ledger-iso-date-regexp'.an
11760 64 20 72 65 74 75 72 6e 20 61 20 74 69 6d 65 20 76 61 6c 75 65 20 6f 72 20 6e 69 6c 2e 22 0a 20 d.return.a.time.value.or.nil."..
11780 20 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 28 77 68 65 6e 20 28 73 74 72 .(save-match-data.....(when.(str
117a0 69 6e 67 2d 6d 61 74 63 68 20 6c 65 64 67 65 72 2d 69 73 6f 2d 64 61 74 65 2d 72 65 67 65 78 70 ing-match.ledger-iso-date-regexp
117c0 20 64 61 74 65 29 0a 20 20 20 20 20 20 28 65 6e 63 6f 64 65 2d 74 69 6d 65 20 30 20 30 20 30 20 .date).......(encode-time.0.0.0.
117e0 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 (string-to-number.(match-string.
11800 34 20 64 61 74 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 4.date))....................(str
11820 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 33 20 64 61 ing-to-number.(match-string.3.da
11840 74 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d te))....................(string-
11860 74 6f 2d 6e 75 6d 62 65 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32 20 64 61 74 65 29 29 to-number.(match-string.2.date))
11880 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 61 64 64 2d 74 72 61 6e 73 61 63 74 ))))..(defun.ledger-add-transact
118a0 69 6f 6e 20 28 74 72 61 6e 73 61 63 74 69 6f 6e 2d 74 65 78 74 20 26 6f 70 74 69 6f 6e 61 6c 20 ion.(transaction-text.&optional.
118c0 69 6e 73 65 72 74 2d 61 74 2d 70 6f 69 6e 74 29 0a 20 20 22 55 73 65 20 6c 65 64 67 65 72 20 78 insert-at-point)..."Use.ledger.x
118e0 61 63 74 20 54 52 41 4e 53 41 43 54 49 4f 4e 2d 54 45 58 54 20 74 6f 20 61 64 64 20 61 20 74 72 act.TRANSACTION-TEXT.to.add.a.tr
11900 61 6e 73 61 63 74 69 6f 6e 20 74 6f 20 74 68 65 20 62 75 66 66 65 72 2e 0a 49 66 20 49 4e 53 45 ansaction.to.the.buffer..If.INSE
11920 52 54 2d 41 54 2d 50 4f 49 4e 54 20 69 73 20 6e 6f 6e 2d 6e 69 6c 20 69 6e 73 65 72 74 20 74 68 RT-AT-POINT.is.non-nil.insert.th
11940 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 74 68 65 72 65 2c 0a 6f 74 68 65 72 77 69 73 65 20 63 e.transaction.there,.otherwise.c
11960 61 6c 6c 20 60 6c 65 64 67 65 72 2d 78 61 63 74 2d 66 69 6e 64 2d 73 6c 6f 74 27 20 74 6f 20 69 all.`ledger-xact-find-slot'.to.i
11980 6e 73 65 72 74 20 69 74 20 61 74 20 74 68 65 0a 63 6f 72 72 65 63 74 20 63 68 72 6f 6e 6f 6c 6f nsert.it.at.the.correct.chronolo
119a0 67 69 63 61 6c 20 70 6c 61 63 65 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 2e 0a 0a 49 6e 74 65 gical.place.in.the.buffer...Inte
119c0 72 61 63 74 69 76 65 6c 79 2c 20 74 68 65 20 64 61 74 65 20 69 73 20 72 65 71 75 65 73 74 65 64 ractively,.the.date.is.requested
119e0 20 76 69 61 20 60 6c 65 64 67 65 72 2d 72 65 61 64 2d 64 61 74 65 27 20 61 6e 64 0a 74 68 65 20 .via.`ledger-read-date'.and.the.
11a00 5c 5c 5b 75 6e 69 76 65 72 73 61 6c 2d 61 72 67 75 6d 65 6e 74 5d 20 65 6e 61 62 6c 65 73 20 49 \\[universal-argument].enables.I
11a20 4e 53 45 52 54 2d 41 54 2d 50 4f 49 4e 54 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 NSERT-AT-POINT."...(interactive.
11a40 28 6c 69 73 74 20 28 6c 65 64 67 65 72 2d 72 65 61 64 2d 74 72 61 6e 73 61 63 74 69 6f 6e 29 20 (list.(ledger-read-transaction).
11a60 63 75 72 72 65 6e 74 2d 70 72 65 66 69 78 2d 61 72 67 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 61 current-prefix-arg))...(let*.((a
11a80 72 67 73 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 rgs.(with-temp-buffer...........
11aa0 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 74 72 61 6e 73 61 63 74 69 6f 6e 2d 74 65 78 74 29 .......(insert.transaction-text)
11ac0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 73 68 65 6c 6c 2d 70 61 72 73 65 2d ..................(eshell-parse-
11ae0 61 72 67 75 6d 65 6e 74 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 arguments.(point-min).(point-max
11b00 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 62 75 66 20 28 63 75 72 72 65 ))))..........(ledger-buf.(curre
11b20 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 70 61 72 61 74 6f 72 20 nt-buffer))..........(separator.
11b40 22 5c 6e 22 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 69 6e 73 65 72 74 2d 61 74 2d 70 6f 69 "\n")).....(unless.insert-at-poi
11b60 6e 74 0a 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 64 61 74 65 20 28 63 61 72 20 61 72 67 73 29 nt.......(let*.((date.(car.args)
11b80 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 61 72 73 65 64 2d 64 61 74 65 20 28 6c 65 64 )..............(parsed-date.(led
11ba0 67 65 72 2d 70 61 72 73 65 2d 69 73 6f 2d 64 61 74 65 20 64 61 74 65 29 29 29 0a 20 20 20 20 20 ger-parse-iso-date.date)))......
11bc0 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 61 64 64 2d 74 72 61 6e 73 61 63 74 69 6f 6e 2d ...(setq.ledger-add-transaction-
11be0 6c 61 73 74 2d 64 61 74 65 20 70 61 72 73 65 64 2d 64 61 74 65 29 0a 20 20 20 20 20 20 20 20 28 last-date.parsed-date).........(
11c00 70 75 73 68 2d 6d 61 72 6b 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 54 4f 44 4f 3a 20 77 68 61 74 push-mark).........;;.TODO:.what
11c20 20 61 62 6f 75 74 20 77 68 65 6e 20 69 74 20 63 61 6e 27 74 20 62 65 20 70 61 72 73 65 64 3f 0a .about.when.it.can't.be.parsed?.
11c40 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 78 61 63 74 2d 66 69 6e 64 2d 73 6c 6f 74 20 28 ........(ledger-xact-find-slot.(
11c60 6f 72 20 70 61 72 73 65 64 2d 64 61 74 65 20 64 61 74 65 29 29 0a 20 20 20 20 20 20 20 20 28 77 or.parsed-date.date)).........(w
11c80 68 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 6e 2a 5c 5c 27 22 29 0a 20 20 20 20 20 20 hen.(looking-at."\n*\\'").......
11ca0 20 20 20 20 28 73 65 74 71 20 73 65 70 61 72 61 74 6f 72 20 22 22 29 29 29 29 0a 20 20 20 20 28 ....(setq.separator."")))).....(
11cc0 69 66 20 28 63 64 72 20 61 72 67 73 29 0a 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 if.(cdr.args).........(save-excu
11ce0 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 0a 20 20 20 20 20 20 20 20 rsion...........(insert.........
11d00 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 ...(with-temp-buffer............
11d20 20 20 28 61 70 70 6c 79 20 23 27 6c 65 64 67 65 72 2d 65 78 65 63 2d 6c 65 64 67 65 72 20 6c 65 ..(apply.#'ledger-exec-ledger.le
11d40 64 67 65 72 2d 62 75 66 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 22 78 61 63 74 22 dger-buf.(current-buffer)."xact"
11d60 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 27 65 76 .....................(mapcar.'ev
11d80 61 6c 20 61 72 67 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 al.args))..............(goto-cha
11da0 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 r.(point-min))..............(led
11dc0 67 65 72 2d 70 6f 73 74 2d 61 6c 69 67 6e 2d 70 6f 73 74 69 6e 67 73 20 28 70 6f 69 6e 74 2d 6d ger-post-align-postings.(point-m
11de0 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 in).(point-max))..............(b
11e00 75 66 66 65 72 2d 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 73 65 70 61 72 61 uffer-string))............separa
11e20 74 6f 72 29 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 63 61 72 20 61 72 67 73 29 20 22 tor)).......(insert.(car.args)."
11e40 20 22 29 0a 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 20 28 69 6e 73 65 72 .").......(save-excursion.(inser
11e60 74 20 22 5c 6e 22 20 73 65 70 61 72 61 74 6f 72 29 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 t."\n".separator)))))..(provide.
11e80 27 6c 65 64 67 65 72 2d 78 61 63 74 29 0a 0a 3b 3b 3b 20 6c 65 64 67 65 72 2d 78 61 63 74 2e 65 'ledger-xact)..;;;.ledger-xact.e
11ea0 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 l.ends.here.....................
11ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
11fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12000 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 31 2e 31 34 33 35 2f 6c 65 64 67 65 72 ledger-mode-20240411.1435/ledger
12020 2d 73 6f 72 74 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -sort.el........................
12040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12060 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
12080 30 30 30 37 36 31 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 37 34 35 00 20 30 00 00 00 0007611.00000000000.015745..0...
120a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
120c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
120e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12100 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...................
12120 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...................
12140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 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
12220 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
12240 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
12260 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
12280 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
122a0 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
122c0 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.
122e0 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
12300 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.;;
12320 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
12340 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
12360 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
12380 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
123a0 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..;;.;;.
123c0 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.
123e0 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
12400 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
12420 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
12440 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
12460 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
12480 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
124a0 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
124c0 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
124e0 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
12500 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
12520 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.
12540 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
12560 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
12580 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.....;;;
125a0 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
125c0 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
125e0 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
12600 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
12620 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.
12640 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
12660 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
12680 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
126a0 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
126c0 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
126e0 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
12700 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
12720 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
12740 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.(
12760 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.
12780 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)...
127a0 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.(
127c0 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
127e0 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
12800 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
12820 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)..
12840 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
12860 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
12880 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.
128a0 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."...
128c0 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.
128e0 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)).....
12900 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)....
12920 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
12940 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
12960 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
12980 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
129a0 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
129c0 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
129e0 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
12a00 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
12a20 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
12a40 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
12a60 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
12a80 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
12aa0 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
12ac0 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)))))).
12ae0 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.
12b00 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
12b20 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."
12b40 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
12b60 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...;
12b80 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
12ba0 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
12bc0 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
12be0 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)))...
12c00 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
12c20 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)
12c40 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
12c60 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.
12c80 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.........
12ca0 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.
12cc0 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
12ce0 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
12d00 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
12d20 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
12d40 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
12d60 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)
12d80 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
12da0 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
12dc0 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)......
12de0 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)..
12e00 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
12e20 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
12e40 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
12e60 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)).....
12e80 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)..
12ea0 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)..........
12ec0 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
12ee0 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.......
12f00 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
12f20 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
12f40 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........
12f60 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))))..
12f80 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)).....
12fa0 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)....
12fc0 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.
12fe0 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
13000 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
13020 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)...(
13040 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
13060 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.(
13080 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
130a0 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).....
130c0 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
130e0 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
13100 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))...
13120 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
13140 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
13160 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
13180 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........................
131a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
131c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
131e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13200 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 31 2e 31 34 33 35 2f 6c 65 64 67 65 72 ledger-mode-20240411.1435/ledger
13220 2d 6f 63 63 75 72 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -occur.el.......................
13240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13260 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
13280 30 30 31 35 33 36 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 30 37 32 00 20 30 00 00 00 0015361.00000000000.016072..0...
132a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
132c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
132e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13300 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...................
13320 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...................
13340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 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
13420 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
13440 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
13460 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
13480 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.
134a0 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
134c0 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
134e0 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
13500 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.;
13520 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
13540 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
13560 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
13580 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
135a0 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..;;.;;
135c0 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
135e0 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
13600 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
13620 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
13640 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
13660 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.
13680 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
136a0 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
136c0 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
136e0 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
13700 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
13720 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
13740 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
13760 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
13780 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...;;;.
137a0 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
137c0 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
137e0 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
13800 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
13820 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
13840 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.
13860 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
13880 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
138a0 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
138c0 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
138e0 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
13900 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
13920 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.
13940 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
13960 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
13980 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
139a0 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..
139c0 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-
139e0 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
13a00 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
13a20 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
13a40 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.
13a60 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
13a80 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
13aa0 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
13ac0 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
13ae0 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
13b00 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-
13b20 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
13b40 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.
13b60 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
13b80 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
13ba0 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
13bc0 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
13be0 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
13c00 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
13c20 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
13c40 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
13c60 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.
13c80 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
13ca0 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
13cc0 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.
13ce0 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.
13d00 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.
13d20 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)..........
13d40 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
13d60 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..
13d80 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
13da0 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
13dc0 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
13de0 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
13e00 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"
13e20 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
13e40 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
13e60 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
13e80 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
13ea0 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..............
13ec0 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.
13ee0 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))))..
13f00 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
13f20 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)...
13f40 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
13f60 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
13f80 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
13fa0 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
13fc0 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
13fe0 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
14000 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
14020 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
14040 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
14060 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
14080 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
140a0 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."
140c0 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
140e0 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
14100 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.(
14120 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,.
14140 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.
14160 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
14180 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
141a0 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
141c0 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
141e0 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
14200 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
14220 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
14240 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,
14260 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
14280 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).......
142a0 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)).
142c0 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)))
142e0 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
14300 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
14320 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.......
14340 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
14360 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
14380 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
143a0 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
143c0 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
143e0 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
14400 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
14420 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.
14440 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
14460 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))).
14480 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
144a0 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).....(
144c0 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
144e0 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
14500 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)
14520 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
14540 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
14560 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
14580 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
145a0 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
145c0 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
145e0 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-
14600 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
14620 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
14640 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)..
14660 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
14680 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
146a0 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.
146c0 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.
146e0 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
14700 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.
14720 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.
14740 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).......
14760 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
14780 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
147a0 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
147c0 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
147e0 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
14800 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
14820 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)..
14840 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.
14860 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-
14880 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
148a0 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-
148c0 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))))..
148e0 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
14900 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
14920 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
14940 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
14960 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)
14980 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
149a0 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
149c0 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
149e0 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
14a00 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
14a20 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))....
14a40 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
14a60 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
14a80 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
14aa0 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
14ac0 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.
14ae0 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
14b00 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.(
14b20 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
14b40 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
14b60 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
14b80 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
14ba0 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.......
14bc0 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)))).
14be0 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
14c00 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.
14c20 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
14c40 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
14c60 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
14c80 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
14ca0 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.
14cc0 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)).....
14ce0 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
14d00 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
14d20 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
14d40 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
14d60 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
14d80 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)
14da0 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-
14dc0 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
14de0 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
14e00 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
14e20 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)
14e40 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.
14e60 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
14e80 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.
14ea0 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
14ec0 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
14ee0 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................
14f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
14fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15000 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 31 2e 31 34 33 35 2f 6c 65 64 67 65 72 ledger-mode-20240411.1435/ledger
15020 2d 63 6f 6d 6d 6f 64 69 74 69 65 73 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -commodities.el.................
15040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15060 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
15080 30 30 31 35 33 31 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 37 32 37 33 00 20 30 00 00 00 0015316.00000000000.017273..0...
150a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
150c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
150e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15100 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...................
15120 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...................
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 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
15220 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
15240 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
15260 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
15280 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
152a0 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
152c0 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
152e0 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
15300 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
15320 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
15340 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
15360 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
15380 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
153a0 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.
153c0 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
153e0 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
15400 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
15420 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
15440 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
15460 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
15480 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.;;.
154a0 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
154c0 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
154e0 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
15500 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.
15520 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.;
15540 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.
15560 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
15580 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.
155a0 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
155c0 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.
155e0 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
15600 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
15620 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.
15640 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
15660 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
15680 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
156a0 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
156c0 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
156e0 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.
15700 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"
15720 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-
15740 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.
15760 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
15780 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.
157a0 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
157c0 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
157e0 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)
15800 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
15820 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
15840 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
15860 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
15880 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
158a0 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
158c0 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....
158e0 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
15900 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)
15920 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").................
15940 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
15960 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
15980 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
159a0 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-
159c0 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
159e0 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
15a00 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
15a20 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
15a40 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
15a60 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-
15a80 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)
15aa0 0a 20 20 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
15ac0 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....
15ae0 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
15b00 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))).....(
15b20 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
15b40 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
15b60 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
15b80 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........
15ba0 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."\"\\(.*
15bc0 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.
15be0 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
15c00 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...
15c20 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
15c40 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).......................
15c60 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))))..............
15c80 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.........
15ca0 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)..
15cc0 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..........
15ce0 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
15d00 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
15d20 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
15d40 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)))...........
15d60 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
15d80 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
15da0 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
15dc0 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.
15de0 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
15e00 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,
15e20 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.
15e40 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
15e60 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,
15e80 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.
15ea0 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
15ec0 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...
15ee0 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
15f00 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
15f20 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)
15f40 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
15f60 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
15f80 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).(
15fa0 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-
15fc0 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).......
15fe0 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
16000 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,...
16020 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.
16040 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
16060 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
16080 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
160a0 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.(
160c0 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-
160e0 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-
16100 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
16120 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
16140 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
16160 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."..........................
16180 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
161a0 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.
161c0 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).
161e0 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
16200 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
16220 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
16240 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.
16260 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
16280 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
162a0 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.
162c0 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
162e0 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
16300 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)
16320 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
16340 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
16360 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
16380 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))))..
163a0 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.
163c0 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
163e0 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
16400 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.
16420 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
16440 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)).
16460 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
16480 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
164a0 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."
164c0 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:
164e0 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
16500 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
16520 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
16540 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)).
16560 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.
16580 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)...
165a0 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
165c0 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
165e0 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.
16600 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
16620 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..
16640 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
16660 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
16680 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..........
166a0 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
166c0 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))..
166e0 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
16700 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
16720 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.(
16740 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
16760 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
16780 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
167a0 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))).....
167c0 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
167e0 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
16800 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
16820 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
16840 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
16860 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
16880 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
168a0 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...........
168c0 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
168e0 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
16900 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).....
16920 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.","
16940 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
16960 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
16980 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
169a0 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
169c0 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,
169e0 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
16a00 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
16a20 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
16a40 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
16a60 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
16a80 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
16aa0 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
16ac0 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.
16ae0 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.
16b00 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
16b20 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...
16b40 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.".(".
16b60 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
16b80 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
16ba0 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).....
16bc0 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
16be0 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.(
16c00 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
16c20 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).......
16c40 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
16c60 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
16c80 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
16ca0 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
16cc0 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...................
16ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16d00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16e00 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 31 2e 31 34 33 35 2f 6c 65 64 67 65 72 ledger-mode-20240411.1435/ledger
16e20 2d 6d 6f 64 65 2d 70 6b 67 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -mode-pkg.el....................
16e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16e60 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
16e80 30 30 30 30 33 34 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 34 35 37 00 20 30 00 00 00 0000346.00000000000.016457..0...
16ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
16ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 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...................
16f20 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...................
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 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
17020 30 32 34 30 34 31 31 2e 31 34 33 35 22 20 22 48 65 6c 70 65 72 20 63 6f 64 65 20 66 6f 72 20 75 0240411.1435"."Helper.code.for.u
17040 73 65 20 77 69 74 68 20 74 68 65 20 5c 22 6c 65 64 67 65 72 5c 22 20 63 6f 6d 6d 61 6e 64 2d 6c se.with.the.\"ledger\".command-l
17060 69 6e 65 20 74 6f 6f 6c 22 0a 20 20 27 28 28 65 6d 61 63 73 20 22 32 35 2e 31 22 29 29 0a 20 20 ine.tool"...'((emacs."25.1"))...
17080 3a 63 6f 6d 6d 69 74 20 22 33 63 36 37 64 35 32 39 36 62 35 36 62 61 35 38 34 63 63 63 37 35 63 :commit."3c67d5296b56ba584ccc75c
170a0 64 34 31 30 30 64 32 62 35 35 37 65 30 39 30 31 38 22 29 0a 3b 3b 20 4c 6f 63 61 6c 20 56 61 72 d4100d2b557e09018").;;.Local.Var
170c0 69 61 62 6c 65 73 3a 0a 3b 3b 20 6e 6f 2d 62 79 74 65 2d 63 6f 6d 70 69 6c 65 3a 20 74 0a 3b 3b iables:.;;.no-byte-compile:.t.;;
170e0 20 45 6e 64 3a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .End:...........................
17100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 31 2e 31 34 33 35 2f 6c 65 64 67 65 72 ledger-mode-20240411.1435/ledger
17220 2d 6d 6f 64 65 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -mode.el........................
17240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17260 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
17280 30 30 33 33 30 37 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 37 30 30 00 20 30 00 00 00 0033070.00000000000.015700..0...
172a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
172c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
172e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17300 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...................
17320 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...................
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 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
17420 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
17440 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
17460 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
17480 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
174a0 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
174c0 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-
174e0 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
17500 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
17520 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
17540 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
17560 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
17580 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
175a0 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
175c0 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.
175e0 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
17600 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
17620 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
17640 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
17660 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
17680 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
176a0 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.;;.
176c0 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
176e0 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
17700 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
17720 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.
17740 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.;
17760 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.
17780 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
177a0 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.
177c0 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.
177e0 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
17800 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
17820 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
17840 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
17860 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
17880 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
178a0 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
178c0 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...;;;.
178e0 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).(
17900 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
17920 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
17940 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)
17960 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
17980 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
179a0 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)
179c0 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
179e0 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
17a00 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
17a20 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).
17a40 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.
17a60 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-
17a80 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
17aa0 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
17ac0 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-
17ae0 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
17b00 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
17b20 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
17b40 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
17b60 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
17b80 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)..(
17ba0 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"...
17bc0 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
17be0 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-
17c00 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
17c20 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)...
17c40 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."
17c60 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
17c80 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
17ca0 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
17cc0 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)..."
17ce0 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
17d00 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
17d20 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
17d40 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
17d60 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
17d80 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
17da0 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.
17dc0 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.
17de0 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-
17e00 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)))..
17e20 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
17e40 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
17e60 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
17e80 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
17ea0 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
17ec0 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
17ee0 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
17f00 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
17f20 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
17f40 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.
17f60 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
17f80 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.(
17fa0 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)).......
17fc0 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
17fe0 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))).....
18000 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
18020 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.....................
18040 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
18060 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..............................
18080 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
180a0 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))...........................
180c0 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-
180e0 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
18100 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.
18120 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
18140 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
18160 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.........
18180 20 20 20 20 20 20 20 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 ...............................(
181a0 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
181c0 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)))..........................
181e0 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
18200 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))...........................
18220 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
18240 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
18260 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
18280 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
182a0 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',
182c0 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
182e0 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
18300 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)).....................
18320 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
18340 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
18360 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)...
18380 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
183a0 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.
183c0 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
183e0 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."
18400 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."):.")............."
18420 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
18440 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
18460 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-
18480 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
184a0 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
184c0 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
184e0 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
18500 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
18520 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
18540 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
18560 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
18580 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
185a0 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
185c0 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
185e0 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
18600 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
18620 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
18640 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
18660 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
18680 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
186a0 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
186c0 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.
186e0 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
18700 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])
18720 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
18740 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.
18760 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*.((
18780 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
187a0 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
187c0 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.
187e0 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
18800 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:.
18820 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
18840 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)))
18860 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
18880 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.
188a0 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
188c0 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...
188e0 20 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
18900 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
18920 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)))..................
18940 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)......
18960 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
18980 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).(
189a0 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)))................
189c0 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
189e0 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......
18a00 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
18a20 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
18a40 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
18a60 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
18a80 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
18aa0 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
18ac0 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)))...
18ae0 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
18b00 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
18b20 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
18b40 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").....................(
18b60 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.(
18b80 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)))))).
18ba0 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
18bc0 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
18be0 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-
18c00 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
18c20 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
18c40 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
18c60 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.
18c80 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)...(
18ca0 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
18cc0 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
18ce0 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.....
18d00 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
18d20 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
18d40 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)
18d60 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
18d80 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
18da0 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)....
18dc0 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
18de0 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
18e00 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)))..................
18e20 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................
18e40 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.....................
18e60 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
18e80 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
18ea0 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)....
18ec0 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]"
18ee0 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................
18f00 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........
18f20 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
18f40 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.....................
18f60 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
18f80 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."\\]")..................
18fa0 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)................
18fc0 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
18fe0 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
19000 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
19020 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
19040 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
19060 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
19080 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.
190a0 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.
190c0 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
190e0 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
19100 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-
19120 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
19140 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
19160 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
19180 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
191a0 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))
191c0 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
191e0 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.
19200 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
19220 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
19240 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
19260 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......
19280 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).........
192a0 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)...........
192c0 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
192e0 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
19300 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
19320 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))......
19340 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))..
19360 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
19380 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).
193a0 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
193c0 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."..;.
193e0 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
19400 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
19420 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
19440 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
19460 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.
19480 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
194a0 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
194c0 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
194e0 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
19500 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
19520 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
19540 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
19560 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
19580 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
195a0 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
195c0 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
195e0 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
19600 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)
19620 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).....
19640 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
19660 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
19680 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
196a0 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
196c0 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)
196e0 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)......
19700 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)
19720 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-
19740 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
19760 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))
19780 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.?\;."
197a0 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
197c0 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)..."
197e0 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
19800 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-
19820 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
19840 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
19860 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
19880 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.(
198a0 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
198c0 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
198e0 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
19900 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.
19920 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
19940 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.
19960 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
19980 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
199a0 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
199c0 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
199e0 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
19a00 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
19a20 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
19a40 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
19a60 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
19a80 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.
19aa0 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
19ac0 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.(
19ae0 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
19b00 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.(
19b20 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-
19b40 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
19b60 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
19b80 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
19ba0 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
19bc0 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-
19be0 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
19c00 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.
19c20 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
19c40 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
19c60 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
19c80 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
19ca0 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
19cc0 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
19ce0 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
19d00 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
19d20 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").
19d40 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
19d60 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").#'
19d80 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-
19da0 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
19dc0 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
19de0 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
19e00 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.
19e20 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
19e40 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
19e60 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
19e80 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).
19ea0 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").
19ec0 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)......;
19ee0 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
19f00 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
19f20 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
19f40 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
19f60 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
19f80 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
19fa0 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"...
19fc0 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
19fe0 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
1a000 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
1a020 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
1a040 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
1a060 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]....."---"..
1a080 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"
1a0a0 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].....[
1a0c0 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)".
1a0e0 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
1a100 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"
1a120 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]....
1a140 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
1a160 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]....."-
1a180 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
1a1a0 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]....."---"....
1a1c0 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
1a1e0 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].
1a200 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-
1a220 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]....."---
1a240 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
1a260 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
1a280 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
1a2a0 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].....
1a2c0 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
1a2e0 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]....."--
1a300 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
1a320 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.
1a340 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
1a360 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
1a380 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
1a3a0 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
1a3c0 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
1a3e0 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
1a400 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
1a420 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
1a440 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
1a460 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-
1a480 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.
1a4a0 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
1a4c0 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
1a4e0 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.().
1a500 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.'
1a520 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
1a540 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
1a560 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
1a580 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
1a5a0 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
1a5c0 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
1a5e0 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].
1a600 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
1a620 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].....[
1a640 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
1a660 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
1a680 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
1a6a0 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
1a6c0 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."..
1a6e0 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.
1a700 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
1a720 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
1a740 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
1a760 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
1a780 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
1a7a0 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.
1a7c0 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
1a7e0 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.'
1a800 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
1a820 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
1a840 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
1a860 20 74 29 0a 0a 20 20 28 6c 65 64 67 65 72 2d 69 6e 69 74 2d 6c 6f 61 64 2d 69 6e 69 74 2d 66 69 .t)....(ledger-init-load-init-fi
1a880 6c 65 29 0a 20 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 63 6f 6d 6d 65 6e 74 2d 73 74 61 72 74 20 le)...(setq-local.comment-start.
1a8a0 22 3b 22 29 0a 20 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 69 6e 64 65 6e 74 2d 6c 69 6e 65 2d 66 ";")...(setq-local.indent-line-f
1a8c0 75 6e 63 74 69 6f 6e 20 23 27 6c 65 64 67 65 72 2d 69 6e 64 65 6e 74 2d 6c 69 6e 65 29 0a 20 20 unction.#'ledger-indent-line)...
1a8e0 28 73 65 74 71 2d 6c 6f 63 61 6c 20 69 6e 64 65 6e 74 2d 72 65 67 69 6f 6e 2d 66 75 6e 63 74 69 (setq-local.indent-region-functi
1a900 6f 6e 20 27 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 6c 69 67 6e 2d 70 6f 73 74 69 6e 67 73 29 0a on.'ledger-post-align-postings).
1a920 20 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 64 65 66 75 6e ..(setq-local.beginning-of-defun
1a940 2d 66 75 6e 63 74 69 6f 6e 20 23 27 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 62 65 67 69 -function.#'ledger-navigate-begi
1a960 6e 6e 69 6e 67 2d 6f 66 2d 78 61 63 74 29 0a 20 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 65 6e 64 nning-of-xact)...(setq-local.end
1a980 2d 6f 66 2d 64 65 66 75 6e 2d 66 75 6e 63 74 69 6f 6e 20 23 27 6c 65 64 67 65 72 2d 6e 61 76 69 -of-defun-function.#'ledger-navi
1a9a0 67 61 74 65 2d 65 6e 64 2d 6f 66 2d 78 61 63 74 29 29 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f gate-end-of-xact))..;;;###autolo
1a9c0 61 64 0a 28 61 64 64 2d 74 6f 2d 6c 69 73 74 20 27 61 75 74 6f 2d 6d 6f 64 65 2d 61 6c 69 73 74 ad.(add-to-list.'auto-mode-alist
1a9e0 20 27 28 22 5c 5c 2e 6c 65 64 67 65 72 5c 5c 27 22 20 2e 20 6c 65 64 67 65 72 2d 6d 6f 64 65 29 .'("\\.ledger\\'"...ledger-mode)
1aa00 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 6c 65 64 67 65 72 2d 6d 6f 64 65 29 0a 0a 3b 3b 3b 20 6c )..(provide.'ledger-mode)..;;;.l
1aa20 65 64 67 65 72 2d 6d 6f 64 65 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 edger-mode.el.ends.here.........
1aa40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1aa60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1aa80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1aaa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1aac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1aae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ab00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ab20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ab40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ab60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ab80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1aba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1abc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1abe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ac00 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 31 2e 31 34 33 35 2f 6c 65 64 67 65 72 ledger-mode-20240411.1435/ledger
1ac20 2d 72 65 70 6f 72 74 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -report.el......................
1ac40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1ac60 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
1ac80 30 30 36 34 37 33 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 33 30 34 00 20 30 00 00 00 0064736.00000000000.016304..0...
1aca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1acc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 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...................
1ad20 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...................
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 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.
1ae20 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
1ae40 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
1ae60 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).
1ae80 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
1aea0 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
1aec0 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
1aee0 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
1af00 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.
1af20 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.
1af40 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
1af60 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;.
1af80 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
1afa0 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..;;.;
1afc0 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
1afe0 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
1b000 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
1b020 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
1b040 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.
1b060 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
1b080 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
1b0a0 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
1b0c0 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
1b0e0 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
1b100 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
1b120 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
1b140 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.
1b160 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
1b180 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....;;
1b1a0 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
1b1c0 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
1b1e0 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
1b200 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
1b220 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
1b240 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
1b260 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
1b280 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
1b2a0 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
1b2c0 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
1b2e0 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)).
1b300 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
1b320 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
1b340 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
1b360 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
1b380 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
1b3a0 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)).
1b3c0 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..."
1b3e0 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
1b400 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)..
1b420 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...'(("
1b440 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
1b460 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
1b480 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
1b4a0 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).
1b4c0 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"."
1b4e0 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.
1b500 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
1b520 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
1b540 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
1b560 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
1b580 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
1b5a0 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..
1b5c0 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
1b5e0 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
1b600 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
1b620 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
1b640 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
1b660 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
1b680 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.
1b6a0 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
1b6c0 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
1b6e0 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
1b700 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
1b720 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
1b740 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
1b760 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").
1b780 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.:
1b7a0 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.'
1b7c0 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
1b7e0 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...'((
1b800 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
1b820 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).....
1b840 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
1b860 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".
1b880 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
1b8a0 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-
1b8c0 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)
1b8e0 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
1b900 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
1b920 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
1b940 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"..
1b960 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
1b980 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
1b9a0 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
1b9c0 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
1b9e0 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
1ba00 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
1ba20 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
1ba40 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
1ba60 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.
1ba80 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
1baa0 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
1bac0 6e 61 74 65 64 20 28 6e 6f 20 71 75 6f 74 69 6e 67 29 2e 22 0a 20 20 3a 74 79 70 65 20 27 61 6c nated.(no.quoting)."...:type.'al
1bae0 69 73 74 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 0a 0a 28 64 ist...:group.'ledger-report)..(d
1bb00 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 61 75 74 6f 2d 72 65 66 72 efcustom.ledger-report-auto-refr
1bb20 65 73 68 20 74 0a 20 20 22 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 61 75 74 6f 6d 61 74 69 63 61 6c esh.t..."If.non-nil,.automatical
1bb40 6c 79 20 72 65 72 75 6e 20 74 68 65 20 72 65 70 6f 72 74 20 77 68 65 6e 20 74 68 65 20 6c 65 64 ly.rerun.the.report.when.the.led
1bb60 67 65 72 20 62 75 66 66 65 72 20 69 73 20 73 61 76 65 64 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 ger.buffer.is.saved."...:type.'b
1bb80 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 0a oolean...:group.'ledger-report).
1bba0 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 61 75 74 6f 2d 72 .(defcustom.ledger-report-auto-r
1bbc0 65 66 72 65 73 68 2d 73 74 69 63 6b 79 2d 63 75 72 73 6f 72 20 6e 69 6c 0a 20 20 22 49 66 20 6e efresh-sticky-cursor.nil..."If.n
1bbe0 6f 6e 2d 6e 69 6c 2c 20 6b 65 65 70 20 63 75 72 73 6f 72 27 73 20 72 65 6c 61 74 69 76 65 20 70 on-nil,.keep.cursor's.relative.p
1bc00 6f 73 69 74 69 6f 6e 20 61 66 74 65 72 20 61 75 74 6f 2d 72 65 66 72 65 73 68 2e 22 0a 20 20 3a osition.after.auto-refresh."...:
1bc20 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 type.'boolean...:group.'ledger-r
1bc40 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
1bc60 2d 6c 69 6e 6b 73 2d 69 6e 2d 72 65 67 69 73 74 65 72 20 74 0a 20 20 22 49 66 20 6e 6f 6e 2d 6e -links-in-register.t..."If.non-n
1bc80 69 6c 2c 20 6c 69 6e 6b 20 65 6e 74 72 69 65 73 20 69 6e 20 5c 22 72 65 67 69 73 74 65 72 5c 22 il,.link.entries.in.\"register\"
1bca0 20 72 65 70 6f 72 74 73 20 74 6f 20 65 6e 74 72 69 65 73 20 69 6e 20 74 68 65 20 6c 65 64 67 65 .reports.to.entries.in.the.ledge
1bcc0 72 20 62 75 66 66 65 72 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 r.buffer."...:type.'boolean...:g
1bce0 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
1bd00 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 75 73 65 2d 6e 61 74 69 76 65 2d 68 69 67 68 6c 69 .ledger-report-use-native-highli
1bd20 67 68 74 69 6e 67 20 74 0a 20 20 22 57 68 65 6e 20 6e 6f 6e 2d 6e 69 6c 2c 20 75 73 65 20 6c 65 ghting.t..."When.non-nil,.use.le
1bd40 64 67 65 72 27 73 20 6e 61 74 69 76 65 20 68 69 67 68 6c 69 67 68 74 69 6e 67 20 69 6e 20 72 65 dger's.native.highlighting.in.re
1bd60 70 6f 72 74 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 70 61 63 6b ports."...:type.'boolean...:pack
1bd80 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 6c 65 64 67 65 72 2d 6d 6f 64 65 20 2e 20 22 34 2e 30 age-version.'(ledger-mode..."4.0
1bda0 2e 30 22 29 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 0a 0a 28 .0")...:group.'ledger-report)..(
1bdc0 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 74 69 76 65 2d 68 defcustom.ledger-report-native-h
1bde0 69 67 68 6c 69 67 68 74 69 6e 67 2d 61 72 67 75 6d 65 6e 74 73 20 27 28 22 2d 2d 63 6f 6c 6f 72 ighlighting-arguments.'("--color
1be00 22 20 22 2d 2d 66 6f 72 63 65 2d 63 6f 6c 6f 72 22 29 0a 20 20 22 4c 69 73 74 20 6f 66 20 6c 65 "."--force-color")..."List.of.le
1be20 64 67 65 72 20 61 72 67 73 20 6e 65 65 64 65 64 20 62 79 20 60 6c 65 64 67 65 72 2d 72 65 70 6f dger.args.needed.by.`ledger-repo
1be40 72 74 2d 75 73 65 2d 6e 61 74 69 76 65 2d 68 69 67 68 6c 69 67 68 74 69 6e 67 27 2e 0a 0a 49 66 rt-use-native-highlighting'...If
1be60 20 79 6f 75 20 61 72 65 20 75 73 69 6e 67 20 68 6c 65 64 67 65 72 20 69 6e 73 74 65 61 64 20 6f .you.are.using.hledger.instead.o
1be80 66 20 6c 65 64 67 65 72 2c 20 79 6f 75 20 6d 69 67 68 74 20 77 61 6e 74 20 74 6f 20 73 65 74 0a f.ledger,.you.might.want.to.set.
1bea0 74 68 69 73 20 76 61 72 69 61 62 6c 65 20 74 6f 20 60 28 5c 22 2d 2d 63 6f 6c 6f 72 3d 61 6c 77 this.variable.to.`(\"--color=alw
1bec0 61 79 73 5c 22 29 27 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 72 65 70 65 61 74 20 73 74 72 69 6e ays\")'."...:type.'(repeat.strin
1bee0 67 29 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 0a 0a 28 64 65 g)...:group.'ledger-report)..(de
1bf00 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 61 75 74 6f 2d 77 69 64 74 68 fcustom.ledger-report-auto-width
1bf20 20 74 0a 20 20 22 57 68 65 6e 20 6e 6f 6e 2d 6e 69 6c 2c 20 74 65 6c 6c 20 6c 65 64 67 65 72 20 .t..."When.non-nil,.tell.ledger.
1bf40 61 62 6f 75 74 20 74 68 65 20 77 69 64 74 68 20 6f 66 20 74 68 65 20 72 65 70 6f 72 74 20 77 69 about.the.width.of.the.report.wi
1bf60 6e 64 6f 77 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 70 61 63 6b 61 ndow."...:type.'boolean...:packa
1bf80 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 6c 65 64 67 65 72 2d 6d 6f 64 65 20 2e 20 22 34 2e 30 2e ge-version.'(ledger-mode..."4.0.
1bfa0 30 22 29 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 0a 0a 28 64 0")...:group.'ledger-report)..(d
1bfc0 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 75 73 65 2d 68 65 61 64 65 efcustom.ledger-report-use-heade
1bfe0 72 2d 6c 69 6e 65 20 6e 69 6c 0a 20 20 22 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 69 6e 64 69 63 61 r-line.nil..."If.non-nil,.indica
1c000 74 65 20 72 65 70 6f 72 74 20 6e 61 6d 65 2f 63 6f 6d 6d 61 6e 64 20 69 6e 20 74 68 65 20 60 68 te.report.name/command.in.the.`h
1c020 65 61 64 65 72 2d 6c 69 6e 65 27 2e 0a 54 68 65 20 72 65 70 6f 72 74 20 6e 61 6d 65 2f 63 6f 6d eader-line'..The.report.name/com
1c040 6d 61 6e 64 20 77 6f 6e 27 74 20 62 65 20 70 72 69 6e 74 65 64 20 69 6e 20 74 68 65 20 62 75 66 mand.won't.be.printed.in.the.buf
1c060 66 65 72 2e 20 20 53 65 65 0a 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 68 65 61 64 65 72 2d fer...See.`ledger-report-header-
1c080 6c 69 6e 65 2d 66 6e 27 20 66 6f 72 20 68 6f 77 20 74 6f 20 63 75 73 74 6f 6d 69 7a 65 20 74 68 line-fn'.for.how.to.customize.th
1c0a0 65 0a 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 72 65 70 6f 72 74 65 64 2e 22 0a 20 20 3a 74 79 70 65 e.information.reported."...:type
1c0c0 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 6c .'boolean...:package-version.'(l
1c0e0 65 64 67 65 72 2d 6d 6f 64 65 20 2e 20 22 34 2e 30 2e 30 22 29 0a 20 20 3a 67 72 6f 75 70 20 27 edger-mode..."4.0.0")...:group.'
1c100 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
1c120 72 2d 72 65 70 6f 72 74 2d 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6e 20 23 27 6c 65 64 67 65 72 r-report-header-line-fn.#'ledger
1c140 2d 72 65 70 6f 72 74 2d 2d 68 65 61 64 65 72 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 22 45 76 61 6c -report--header-function..."Eval
1c160 75 61 74 65 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 69 6e 20 74 68 65 20 60 68 65 61 64 65 uate.this.function.in.the.`heade
1c180 72 2d 6c 69 6e 65 27 20 6f 66 20 74 68 65 20 72 65 70 6f 72 74 20 62 75 66 66 65 72 2e 0a 60 6c r-line'.of.the.report.buffer..`l
1c1a0 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 75 73 65 2d 68 65 61 64 65 72 2d 6c 69 6e 65 27 20 6d 75 edger-report-use-header-line'.mu
1c1c0 73 74 20 62 65 20 6e 6f 6e 2d 6e 69 6c 20 66 6f 72 20 74 68 69 73 20 74 6f 20 68 61 76 65 20 61 st.be.non-nil.for.this.to.have.a
1c1e0 6e 79 20 65 66 66 65 63 74 2e 22 0a 20 20 3a 74 79 70 65 20 27 66 75 6e 63 74 69 6f 6e 0a 20 20 ny.effect."...:type.'function...
1c200 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..
1c220 20 22 34 2e 30 2e 30 22 29 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 ."4.0.0")...:group.'ledger-repor
1c240 74 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 73 t)..(defcustom.ledger-report-res
1c260 69 7a 65 2d 77 69 6e 64 6f 77 20 74 0a 20 20 22 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 72 65 73 69 ize-window.t..."If.non-nil,.resi
1c280 7a 65 20 74 68 65 20 72 65 70 6f 72 74 20 77 69 6e 64 6f 77 2e 0a 43 61 6c 6c 73 20 60 73 68 72 ze.the.report.window..Calls.`shr
1c2a0 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
1c2c0 27 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 70 61 63 6b 61 67 65 2d '."...:type.'boolean...:package-
1c2e0 76 65 72 73 69 6f 6e 20 27 28 6c 65 64 67 65 72 2d 6d 6f 64 65 20 2e 20 22 34 2e 30 2e 30 22 29 version.'(ledger-mode..."4.0.0")
1c300 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 0a 0a 28 64 65 66 63 ...:group.'ledger-report)..(defc
1c320 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 75 73 65 2d 73 74 72 69 63 74 20 6e ustom.ledger-report-use-strict.n
1c340 69 6c 0a 20 20 22 57 68 65 6e 20 6e 6f 6e 2d 6e 69 6c 2c 20 60 6c 65 64 67 65 72 2d 6d 6f 64 65 il..."When.non-nil,.`ledger-mode
1c360 27 20 77 69 6c 6c 20 75 73 65 20 2d 2d 73 74 72 69 63 74 20 77 68 65 6e 20 72 75 6e 6e 69 6e 67 '.will.use.--strict.when.running
1c380 20 72 65 70 6f 72 74 73 3f 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 70 .reports?"...:type.'boolean...:p
1c3a0 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 6c 65 64 67 65 72 2d 6d 6f 64 65 20 2e 20 22 ackage-version.'(ledger-mode..."
1c3c0 34 2e 30 2e 30 22 29 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 4.0.0")...:group.'ledger-report)
1c3e0 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 61 66 74 65 72 ..(defcustom.ledger-report-after
1c400 2d 72 65 70 6f 72 74 2d 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 48 6f 6f 6b 20 72 75 6e 20 61 66 74 -report-hook.nil..."Hook.run.aft
1c420 65 72 20 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 27 20 68 61 73 20 63 72 65 61 74 65 64 20 74 er.`ledger-report'.has.created.t
1c440 68 65 20 62 75 66 66 65 72 20 61 6e 64 20 72 65 70 6f 72 74 2e 22 0a 20 20 3a 74 79 70 65 20 27 he.buffer.and.report."...:type.'
1c460 62 6f 6f 6c 65 61 6e 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 6c 65 64 boolean...:package-version.'(led
1c480 67 65 72 2d 6d 6f 64 65 20 2e 20 22 34 2e 30 2e 30 22 29 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 ger-mode..."4.0.0")...:group.'le
1c4a0 64 67 65 72 2d 72 65 70 6f 72 74 29 0a 0a 28 64 65 66 76 61 72 20 6c 65 64 67 65 72 2d 72 65 70 dger-report)..(defvar.ledger-rep
1c4c0 6f 72 74 2d 62 75 66 66 65 72 2d 6e 61 6d 65 20 22 2a 4c 65 64 67 65 72 20 52 65 70 6f 72 74 2a ort-buffer-name."*Ledger.Report*
1c4e0 22 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d ")..(defvar-local.ledger-report-
1c500 6e 61 6d 65 20 6e 69 6c 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6c 65 64 67 65 72 2d 72 name.nil).(defvar-local.ledger-r
1c520 65 70 6f 72 74 2d 63 6d 64 20 6e 69 6c 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6c 65 64 eport-cmd.nil).(defvar-local.led
1c540 67 65 72 2d 72 65 70 6f 72 74 2d 73 61 76 65 64 20 6e 69 6c 29 0a 28 64 65 66 76 61 72 2d 6c 6f ger-report-saved.nil).(defvar-lo
1c560 63 61 6c 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 75 72 72 65 6e 74 2d 6d 6f 6e 74 68 20 cal.ledger-report-current-month.
1c580 6e 69 6c 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 nil).(defvar-local.ledger-report
1c5a0 2d 69 73 2d 72 65 76 65 72 73 65 64 20 6e 69 6c 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 -is-reversed.nil).(defvar-local.
1c5c0 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 75 72 73 6f 72 2d 6c 69 6e 65 2d 6e 75 6d 62 65 72 ledger-report-cursor-line-number
1c5e0 20 6e 69 6c 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 .nil).(defvar-local.ledger-repor
1c600 74 2d 6c 65 64 67 65 72 2d 62 75 66 20 6e 69 6c 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 t-ledger-buf.nil).(defvar-local.
1c620 6c 65 64 67 65 72 2d 6d 61 73 74 65 72 2d 66 69 6c 65 20 6e 69 6c 0a 20 20 22 54 68 65 20 6d 61 ledger-master-file.nil..."The.ma
1c640 73 74 65 72 20 66 69 6c 65 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 ster.file.for.the.current.buffer
1c660 2e 0a 53 65 65 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 66 75 6e 63 ..See.documentation.for.the.func
1c680 74 69 6f 6e 20 60 6c 65 64 67 65 72 2d 6d 61 73 74 65 72 2d 66 69 6c 65 27 22 29 0a 0a 28 64 65 tion.`ledger-master-file'")..(de
1c6a0 66 76 61 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 2d 70 72 6f 6d 70 74 2d 68 fvar.ledger-report-name-prompt-h
1c6c0 69 73 74 6f 72 79 20 6e 69 6c 29 0a 28 64 65 66 76 61 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 istory.nil).(defvar.ledger-repor
1c6e0 74 2d 63 6d 64 2d 70 72 6f 6d 70 74 2d 68 69 73 74 6f 72 79 20 6e 69 6c 29 0a 28 64 65 66 76 61 t-cmd-prompt-history.nil).(defva
1c700 72 20 6c 65 64 67 65 72 2d 6d 69 6e 69 62 75 66 66 65 72 2d 68 69 73 74 6f 72 79 20 6e 69 6c 29 r.ledger-minibuffer-history.nil)
1c720 0a 28 64 65 66 76 61 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6d 6f 64 65 2d 61 62 62 72 .(defvar.ledger-report-mode-abbr
1c740 65 76 2d 74 61 62 6c 65 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d ev-table)..(defun.ledger-report-
1c760 72 65 76 65 72 73 65 2d 72 65 70 6f 72 74 20 28 29 0a 20 20 22 52 65 76 65 72 73 65 20 74 68 65 reverse-report.()..."Reverse.the
1c780 20 6f 72 64 65 72 20 6f 66 20 74 68 65 20 72 65 70 6f 72 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 .order.of.the.report."...(intera
1c7a0 63 74 69 76 65 29 0a 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 76 65 72 73 65 2d ctive)...(ledger-report-reverse-
1c7c0 6c 69 6e 65 73 29 0a 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 69 73 2d lines)...(setq.ledger-report-is-
1c7e0 72 65 76 65 72 73 65 64 20 28 6e 6f 74 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 69 73 2d 72 reversed.(not.ledger-report-is-r
1c800 65 76 65 72 73 65 64 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 eversed)))..(defun.ledger-report
1c820 2d 72 65 76 65 72 73 65 2d 6c 69 6e 65 73 20 28 29 0a 20 20 22 52 65 76 65 72 73 65 20 74 68 65 -reverse-lines.()..."Reverse.the
1c840 20 6c 69 6e 65 73 20 69 6e 20 74 68 65 20 6c 65 64 67 65 72 20 72 65 70 6f 72 74 20 62 75 66 66 .lines.in.the.ledger.report.buff
1c860 65 72 2e 22 0a 20 20 28 77 69 74 68 2d 73 69 6c 65 6e 74 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e er."...(with-silent-modification
1c880 73 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 s.....(goto-char.(point-min))...
1c8a0 20 20 28 75 6e 6c 65 73 73 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 75 73 65 2d 68 65 61 64 ..(unless.ledger-report-use-head
1c8c0 65 72 2d 6c 69 6e 65 0a 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 70 61 72 61 67 72 61 70 68 er-line.......(forward-paragraph
1c8e0 29 0a 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 29 29 0a 20 20 20 20 28 73 61 76 ).......(forward-line)).....(sav
1c900 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 72 65 76 65 72 73 65 2d 72 65 67 69 6f e-excursion.......(reverse-regio
1c920 6e 20 28 70 6f 69 6e 74 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 29 0a 0a 28 64 65 66 75 n.(point).(point-max)))))..(defu
1c940 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6d 61 79 62 65 2d 73 68 72 69 6e 6b 2d 77 69 6e n.ledger-report-maybe-shrink-win
1c960 64 6f 77 20 28 29 0a 20 20 22 53 68 72 69 6e 6b 20 77 69 6e 64 6f 77 20 69 66 20 60 6c 65 64 67 dow.()..."Shrink.window.if.`ledg
1c980 65 72 2d 72 65 70 6f 72 74 2d 72 65 73 69 7a 65 2d 77 69 6e 64 6f 77 27 20 69 73 20 6e 6f 6e 2d er-report-resize-window'.is.non-
1c9a0 6e 69 6c 2e 22 0a 20 20 28 77 68 65 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 73 69 nil."...(when.ledger-report-resi
1c9c0 7a 65 2d 77 69 6e 64 6f 77 0a 20 20 20 20 28 73 68 72 69 6e 6b 2d 77 69 6e 64 6f 77 2d 69 66 2d ze-window.....(shrink-window-if-
1c9e0 6c 61 72 67 65 72 2d 74 68 61 6e 2d 62 75 66 66 65 72 29 29 29 0a 0a 28 64 65 66 76 61 72 20 6c larger-than-buffer)))..(defvar.l
1ca00 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6d 6f 64 65 2d 6d 61 70 0a 20 20 28 6c 65 74 20 28 28 6d edger-report-mode-map...(let.((m
1ca20 61 70 20 28 6d 61 6b 65 2d 73 70 61 72 73 65 2d 6b 65 79 6d 61 70 29 29 29 0a 20 20 20 20 28 64 ap.(make-sparse-keymap))).....(d
1ca40 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 72 22 29 20 23 27 6c 65 64 67 65 72 efine-key.map.(kbd."r").#'ledger
1ca60 2d 72 65 70 6f 72 74 2d 72 65 64 6f 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 -report-redo).....(define-key.ma
1ca80 70 20 28 6b 62 64 20 22 52 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 76 65 p.(kbd."R").#'ledger-report-reve
1caa0 72 73 65 2d 72 65 70 6f 72 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 rse-report).....(define-key.map.
1cac0 28 6b 62 64 20 22 73 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 73 61 76 65 29 0a (kbd."s").#'ledger-report-save).
1cae0 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 53 22 29 20 23 27 ....(define-key.map.(kbd."S").#'
1cb00 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d ledger-report).....(define-key.m
1cb20 61 70 20 28 6b 62 64 20 22 65 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 65 64 69 ap.(kbd."e").#'ledger-report-edi
1cb40 74 2d 72 65 70 6f 72 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b t-report).....(define-key.map.(k
1cb60 62 64 20 22 45 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 65 64 69 74 2d 72 65 70 bd."E").#'ledger-report-edit-rep
1cb80 6f 72 74 73 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 orts).....(define-key.map.(kbd."
1cba0 71 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 71 75 69 74 29 0a 20 20 20 20 28 64 q").#'ledger-report-quit).....(d
1cbc0 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 6c 20 43 2d 72 22 efine-key.map.(kbd."C-c.C-l.C-r"
1cbe0 29 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 64 6f 29 0a 20 20 20 20 28 64 65 66 ).#'ledger-report-redo).....(def
1cc00 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 6c 20 43 2d 53 2d 73 22 ine-key.map.(kbd."C-c.C-l.C-S-s"
1cc20 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
1cc40 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 6c 20 43 2d 65 22 29 20 ine-key.map.(kbd."C-c.C-l.C-e").
1cc60 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 65 64 69 74 2d 72 65 70 6f 72 74 29 0a 20 20 20 #'ledger-report-edit-report)....
1cc80 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 6f 20 43 .(define-key.map.(kbd."C-c.C-o.C
1cca0 2d 72 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 0a 20 20 20 20 28 64 65 66 69 6e -r").#'ledger-report).....(defin
1ccc0 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 4d 2d 70 22 29 20 23 27 6c 65 64 67 65 72 2d 72 e-key.map.(kbd."M-p").#'ledger-r
1cce0 65 70 6f 72 74 2d 70 72 65 76 69 6f 75 73 2d 6d 6f 6e 74 68 29 0a 20 20 20 20 28 64 65 66 69 6e eport-previous-month).....(defin
1cd00 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 4d 2d 6e 22 29 20 23 27 6c 65 64 67 65 72 2d 72 e-key.map.(kbd."M-n").#'ledger-r
1cd20 65 70 6f 72 74 2d 6e 65 78 74 2d 6d 6f 6e 74 68 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 eport-next-month).....(define-ke
1cd40 79 20 6d 61 70 20 28 6b 62 64 20 22 24 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d y.map.(kbd."$").#'ledger-report-
1cd60 74 6f 67 67 6c 65 2d 64 65 66 61 75 6c 74 2d 63 6f 6d 6d 6f 64 69 74 79 29 0a 20 20 20 20 6d 61 toggle-default-commodity).....ma
1cd80 70 29 0a 20 20 22 4b 65 79 6d 61 70 20 66 6f 72 20 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d p)..."Keymap.for.`ledger-report-
1cda0 6d 6f 64 65 27 2e 22 29 0a 0a 28 65 61 73 79 2d 6d 65 6e 75 2d 64 65 66 69 6e 65 20 6c 65 64 67 mode'.")..(easy-menu-define.ledg
1cdc0 65 72 2d 72 65 70 6f 72 74 2d 6d 6f 64 65 2d 6d 65 6e 75 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 er-report-mode-menu.ledger-repor
1cde0 74 2d 6d 6f 64 65 2d 6d 61 70 0a 20 20 22 4c 65 64 67 65 72 20 72 65 70 6f 72 74 20 6d 65 6e 75 t-mode-map..."Ledger.report.menu
1ce00 2e 22 0a 20 20 27 28 22 52 65 70 6f 72 74 73 22 0a 20 20 20 20 5b 22 53 65 6c 65 63 74 20 52 65 ."...'("Reports".....["Select.Re
1ce20 70 6f 72 74 22 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 5d 0a 20 20 20 20 5b 22 53 61 76 65 20 port".ledger-report].....["Save.
1ce40 52 65 70 6f 72 74 22 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 73 61 76 65 5d 0a 20 20 20 20 Report".ledger-report-save].....
1ce60 5b 22 45 64 69 74 20 43 75 72 72 65 6e 74 20 52 65 70 6f 72 74 22 20 6c 65 64 67 65 72 2d 72 65 ["Edit.Current.Report".ledger-re
1ce80 70 6f 72 74 2d 65 64 69 74 2d 72 65 70 6f 72 74 5d 0a 20 20 20 20 5b 22 45 64 69 74 20 41 6c 6c port-edit-report].....["Edit.All
1cea0 20 52 65 70 6f 72 74 73 22 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 65 64 69 74 2d 72 65 70 .Reports".ledger-report-edit-rep
1cec0 6f 72 74 73 5d 0a 20 20 20 20 5b 22 52 65 2d 72 75 6e 20 52 65 70 6f 72 74 22 20 6c 65 64 67 65 orts].....["Re-run.Report".ledge
1cee0 72 2d 72 65 70 6f 72 74 2d 72 65 64 6f 5d 0a 20 20 20 20 22 2d 2d 2d 22 0a 20 20 20 20 5b 22 52 r-report-redo]....."---".....["R
1cf00 65 76 65 72 73 65 20 72 65 70 6f 72 74 20 6f 72 64 65 72 22 20 6c 65 64 67 65 72 2d 72 65 70 6f everse.report.order".ledger-repo
1cf20 72 74 2d 72 65 76 65 72 73 65 2d 72 65 70 6f 72 74 5d 0a 20 20 20 20 22 2d 2d 2d 22 0a 20 20 20 rt-reverse-report]....."---"....
1cf40 20 5b 22 53 63 72 6f 6c 6c 20 55 70 22 20 73 63 72 6f 6c 6c 2d 75 70 5d 0a 20 20 20 20 5b 22 56 .["Scroll.Up".scroll-up].....["V
1cf60 69 73 69 74 20 53 6f 75 72 63 65 22 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 76 69 73 69 74 isit.Source".ledger-report-visit
1cf80 2d 73 6f 75 72 63 65 5d 0a 20 20 20 20 5b 22 53 63 72 6f 6c 6c 20 44 6f 77 6e 22 20 73 63 72 6f -source].....["Scroll.Down".scro
1cfa0 6c 6c 2d 64 6f 77 6e 5d 0a 20 20 20 20 22 2d 2d 2d 22 0a 20 20 20 20 5b 22 51 75 69 74 22 20 6c ll-down]....."---".....["Quit".l
1cfc0 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 71 75 69 74 5d 0a 20 20 20 20 29 29 0a 0a 28 64 65 66 69 edger-report-quit].....))..(defi
1cfe0 6e 65 2d 64 65 72 69 76 65 64 2d 6d 6f 64 65 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6d 6f ne-derived-mode.ledger-report-mo
1d000 64 65 20 73 70 65 63 69 61 6c 2d 6d 6f 64 65 20 22 4c 65 64 67 65 72 2d 52 65 70 6f 72 74 22 0a de.special-mode."Ledger-Report".
1d020 20 20 22 41 20 6d 6f 64 65 20 66 6f 72 20 76 69 65 77 69 6e 67 20 6c 65 64 67 65 72 20 72 65 70 .."A.mode.for.viewing.ledger.rep
1d040 6f 72 74 73 2e 22 0a 20 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 72 65 76 65 72 74 2d 62 75 66 66 orts."...(setq-local.revert-buff
1d060 65 72 2d 66 75 6e 63 74 69 6f 6e 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 64 6f er-function.#'ledger-report-redo
1d080 29 0a 20 20 28 68 61 63 6b 2d 64 69 72 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 73 2d 6e 6f )...(hack-dir-local-variables-no
1d0a0 6e 2d 66 69 6c 65 2d 62 75 66 66 65 72 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6c 65 64 67 65 n-file-buffer))..(defconst.ledge
1d0c0 72 2d 72 65 70 6f 72 74 2d 2d 65 78 74 72 61 2d 61 72 67 73 2d 6d 61 72 6b 65 72 20 22 5b 5b 6c r-report--extra-args-marker."[[l
1d0e0 65 64 67 65 72 2d 6d 6f 64 65 2d 66 6c 61 67 73 5d 5d 22 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 edger-mode-flags]]")..(defun.led
1d100 67 65 72 2d 72 65 70 6f 72 74 2d 62 69 6e 61 72 79 2d 66 6f 72 6d 61 74 2d 73 70 65 63 69 66 69 ger-report-binary-format-specifi
1d120 65 72 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 70 61 74 68 20 74 6f 20 6c 65 64 67 er.()..."Return.the.path.to.ledg
1d140 65 72 2c 20 70 6c 75 73 20 61 20 6d 61 72 6b 65 72 20 66 6f 72 20 65 78 74 72 61 20 61 72 67 75 er,.plus.a.marker.for.extra.argu
1d160 6d 65 6e 74 73 2e 22 0a 20 20 28 6c 69 73 74 20 28 73 68 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 ments."...(list.(shell-quote-arg
1d180 75 6d 65 6e 74 20 6c 65 64 67 65 72 2d 62 69 6e 61 72 79 2d 70 61 74 68 29 0a 20 20 20 20 20 20 ument.ledger-binary-path).......
1d1a0 20 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 65 78 74 72 61 2d 61 72 67 73 2d 6d 61 72 6b ..ledger-report--extra-args-mark
1d1c0 65 72 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 74 61 67 6e 61 er))..(defun.ledger-report-tagna
1d1e0 6d 65 2d 66 6f 72 6d 61 74 2d 73 70 65 63 69 66 69 65 72 20 28 29 0a 20 20 22 52 65 74 75 72 6e me-format-specifier.()..."Return
1d200 20 61 20 76 61 6c 69 64 20 6d 65 74 61 2d 64 61 74 61 20 74 61 67 20 6e 61 6d 65 2e 22 0a 20 20 .a.valid.meta-data.tag.name."...
1d220 3b 3b 20 49 74 20 69 73 20 69 6e 74 65 6e 64 65 64 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 73 68 6f ;;.It.is.intended.completion.sho
1d240 75 6c 64 20 62 65 20 61 76 61 69 6c 61 62 6c 65 20 6f 6e 20 65 78 69 73 74 69 6e 67 20 74 61 67 uld.be.available.on.existing.tag
1d260 0a 20 20 3b 3b 20 6e 61 6d 65 73 2c 20 62 75 74 20 69 74 20 72 65 6d 61 69 6e 73 20 74 6f 20 62 ...;;.names,.but.it.remains.to.b
1d280 65 20 69 6d 70 6c 65 6d 65 6e 74 65 64 2e 0a 20 20 28 6c 65 64 67 65 72 2d 72 65 61 64 2d 73 74 e.implemented....(ledger-read-st
1d2a0 72 69 6e 67 2d 77 69 74 68 2d 64 65 66 61 75 6c 74 20 22 54 61 67 20 4e 61 6d 65 22 20 6e 69 6c ring-with-default."Tag.Name".nil
1d2c0 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 74 61 67 76 61 6c 75 ))..(defun.ledger-report-tagvalu
1d2e0 65 2d 66 6f 72 6d 61 74 2d 73 70 65 63 69 66 69 65 72 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 e-format-specifier.()..."Return.
1d300 61 20 76 61 6c 69 64 20 6d 65 74 61 2d 64 61 74 61 20 74 61 67 20 6e 61 6d 65 2e 22 0a 20 20 3b a.valid.meta-data.tag.name."...;
1d320 3b 20 49 74 20 69 73 20 69 6e 74 65 6e 64 65 64 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 73 68 6f 75 ;.It.is.intended.completion.shou
1d340 6c 64 20 62 65 20 61 76 61 69 6c 61 62 6c 65 20 6f 6e 20 65 78 69 73 74 69 6e 67 20 74 61 67 0a ld.be.available.on.existing.tag.
1d360 20 20 3b 3b 20 76 61 6c 75 65 73 2c 20 62 75 74 20 69 74 20 72 65 6d 61 69 6e 73 20 74 6f 20 62 ..;;.values,.but.it.remains.to.b
1d380 65 20 69 6d 70 6c 65 6d 65 6e 74 65 64 2e 0a 20 20 28 6c 65 64 67 65 72 2d 72 65 61 64 2d 73 74 e.implemented....(ledger-read-st
1d3a0 72 69 6e 67 2d 77 69 74 68 2d 64 65 66 61 75 6c 74 20 22 54 61 67 20 56 61 6c 75 65 22 20 6e 69 ring-with-default."Tag.Value".ni
1d3c0 6c 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 61 64 2d 6e l))..(defun.ledger-report-read-n
1d3e0 61 6d 65 20 28 29 0a 20 20 22 52 65 61 64 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 61 20 6c 65 64 ame.()..."Read.the.name.of.a.led
1d400 67 65 72 20 72 65 70 6f 72 74 20 74 6f 20 75 73 65 2c 20 77 69 74 68 20 63 6f 6d 70 6c 65 74 69 ger.report.to.use,.with.completi
1d420 6f 6e 2e 0a 0a 54 68 65 20 65 6d 70 74 79 20 73 74 72 69 6e 67 20 61 6e 64 20 75 6e 6b 6e 6f 77 on...The.empty.string.and.unknow
1d440 6e 20 6e 61 6d 65 73 20 61 72 65 20 61 6c 6c 6f 77 65 64 2e 22 0a 20 20 28 63 6f 6d 70 6c 65 74 n.names.are.allowed."...(complet
1d460 69 6e 67 2d 72 65 61 64 20 22 52 65 70 6f 72 74 20 6e 61 6d 65 3a 20 22 0a 20 20 20 20 20 20 20 ing-read."Report.name:."........
1d480 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 20 6e 69 6c 20 6e ............ledger-reports.nil.n
1d4a0 69 6c 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6c 65 64 67 65 il.nil....................'ledge
1d4c0 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 2d 70 72 6f 6d 70 74 2d 68 69 73 74 6f 72 79 20 6e 69 6c r-report-name-prompt-history.nil
1d4e0 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 20 28 72 65 70 6f 72 74 ))..(defun.ledger-report.(report
1d500 2d 6e 61 6d 65 20 65 64 69 74 29 0a 20 20 22 52 75 6e 20 61 20 75 73 65 72 2d 73 70 65 63 69 66 -name.edit)..."Run.a.user-specif
1d520 69 65 64 20 72 65 70 6f 72 74 20 66 72 6f 6d 20 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 27 ied.report.from.`ledger-reports'
1d540 2e 0a 0a 50 72 6f 6d 70 74 73 20 74 68 65 20 75 73 65 72 20 66 6f 72 20 74 68 65 20 52 45 50 4f ...Prompts.the.user.for.the.REPO
1d560 52 54 2d 4e 41 4d 45 20 6f 66 20 74 68 65 20 72 65 70 6f 72 74 20 74 6f 20 72 75 6e 20 6f 72 0a RT-NAME.of.the.report.to.run.or.
1d580 45 44 49 54 2e 20 20 49 66 20 6e 6f 20 6e 61 6d 65 20 69 73 20 65 6e 74 65 72 65 64 2c 20 74 68 EDIT...If.no.name.is.entered,.th
1d5a0 65 20 75 73 65 72 20 77 69 6c 6c 20 62 65 20 70 72 6f 6d 70 74 65 64 20 66 6f 72 20 61 0a 63 6f e.user.will.be.prompted.for.a.co
1d5c0 6d 6d 61 6e 64 20 6c 69 6e 65 20 74 6f 20 72 75 6e 2e 20 20 54 68 65 20 63 6f 6d 6d 61 6e 64 20 mmand.line.to.run...The.command.
1d5e0 6c 69 6e 65 20 73 70 65 63 69 66 69 65 64 20 6f 72 20 61 73 73 6f 63 69 61 74 65 64 0a 77 69 74 line.specified.or.associated.wit
1d600 68 20 74 68 65 20 73 65 6c 65 63 74 65 64 20 72 65 70 6f 72 74 20 6e 61 6d 65 20 69 73 20 72 75 h.the.selected.report.name.is.ru
1d620 6e 20 61 6e 64 20 74 68 65 20 6f 75 74 70 75 74 20 69 73 20 6d 61 64 65 0a 61 76 61 69 6c 61 62 n.and.the.output.is.made.availab
1d640 6c 65 20 69 6e 20 61 6e 6f 74 68 65 72 20 62 75 66 66 65 72 20 66 6f 72 20 76 69 65 77 69 6e 67 le.in.another.buffer.for.viewing
1d660 2e 20 20 49 66 20 61 20 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 20 69 73 0a 67 69 76 65 6e ...If.a.prefix.argument.is.given
1d680 20 61 6e 64 20 74 68 65 20 75 73 65 72 20 73 65 6c 65 63 74 73 20 61 20 76 61 6c 69 64 20 72 65 .and.the.user.selects.a.valid.re
1d6a0 70 6f 72 74 20 6e 61 6d 65 2c 20 74 68 65 20 75 73 65 72 20 69 73 0a 70 72 6f 6d 70 74 65 64 20 port.name,.the.user.is.prompted.
1d6c0 77 69 74 68 20 74 68 65 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 63 6f 6d 6d 61 6e 64 20 6c with.the.corresponding.command.l
1d6e0 69 6e 65 20 66 6f 72 20 65 64 69 74 69 6e 67 20 62 65 66 6f 72 65 0a 74 68 65 20 63 6f 6d 6d 61 ine.for.editing.before.the.comma
1d700 6e 64 20 69 73 20 72 75 6e 2e 0a 0a 54 68 65 20 6f 75 74 70 75 74 20 62 75 66 66 65 72 20 77 69 nd.is.run...The.output.buffer.wi
1d720 6c 6c 20 62 65 20 69 6e 20 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6d 6f 64 65 27 2c 20 77 ll.be.in.`ledger-report-mode',.w
1d740 68 69 63 68 20 64 65 66 69 6e 65 73 0a 63 6f 6d 6d 61 6e 64 73 20 66 6f 72 20 73 61 76 69 6e 67 hich.defines.commands.for.saving
1d760 20 61 20 6e 65 77 20 6e 61 6d 65 64 20 72 65 70 6f 72 74 20 62 61 73 65 64 20 6f 6e 20 74 68 65 .a.new.named.report.based.on.the
1d780 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 0a 75 73 65 64 20 74 6f 20 67 65 6e 65 72 61 74 65 20 74 .command.line.used.to.generate.t
1d7a0 68 65 20 62 75 66 66 65 72 2c 20 6e 61 76 69 67 61 74 69 6e 67 20 74 68 65 20 62 75 66 66 65 72 he.buffer,.navigating.the.buffer
1d7c0 2c 20 65 74 63 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 28 70 72 6f 67 6e ,.etc."...(interactive....(progn
1d7e0 0a 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 62 75 66 66 65 72 2d 6d 6f 64 69 66 69 65 ......(when.(and.(buffer-modifie
1d800 64 2d 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 79 2d 6f 72 2d 6e 2d 70 20 22 d-p).................(y-or-n-p."
1d820 42 75 66 66 65 72 20 6d 6f 64 69 66 69 65 64 2c 20 73 61 76 65 20 69 74 3f 20 22 29 29 0a 20 20 Buffer.modified,.save.it?."))...
1d840 20 20 20 20 20 28 73 61 76 65 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 28 6c 65 74 20 28 28 .....(save-buffer))......(let.((
1d860 72 6e 61 6d 65 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 61 64 2d 6e 61 6d 65 29 29 rname.(ledger-report-read-name))
1d880 0a 20 20 20 20 20 20 20 20 20 20 20 28 65 64 69 74 20 28 6e 6f 74 20 28 6e 75 6c 6c 20 63 75 72 ............(edit.(not.(null.cur
1d8a0 72 65 6e 74 2d 70 72 65 66 69 78 2d 61 72 67 29 29 29 29 0a 20 20 20 20 20 20 20 28 6c 69 73 74 rent-prefix-arg))))........(list
1d8c0 20 72 6e 61 6d 65 20 65 64 69 74 29 29 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 66 69 6c 65 20 28 .rname.edit))))...(let*.((file.(
1d8e0 6c 65 64 67 65 72 2d 6d 61 73 74 65 72 2d 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 62 ledger-master-file))..........(b
1d900 75 66 20 28 66 69 6e 64 2d 66 69 6c 65 2d 6e 6f 73 65 6c 65 63 74 20 66 69 6c 65 29 29 29 0a 20 uf.(find-file-noselect.file)))..
1d920 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 ...(with-current-buffer.........
1d940 28 70 6f 70 2d 74 6f 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 (pop-to-buffer.(get-buffer-creat
1d960 65 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 0a 20 20 e.ledger-report-buffer-name))...
1d980 20 20 20 20 28 77 69 74 68 2d 73 69 6c 65 6e 74 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 0a 20 ....(with-silent-modifications..
1d9a0 20 20 20 20 20 20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 28 6c .......(erase-buffer).........(l
1d9c0 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 edger-report-mode).........(setq
1d9e0 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 73 61 76 65 64 20 6e 69 6c 29 0a 20 20 20 20 20 20 .ledger-report-saved.nil).......
1da00 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6c 65 64 67 65 72 2d 62 75 66 ..(setq.ledger-report-ledger-buf
1da20 20 62 75 66 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 .buf).........(setq.ledger-repor
1da40 74 2d 6e 61 6d 65 20 72 65 70 6f 72 74 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 t-name.report-name).........(set
1da60 71 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 69 73 2d 72 65 76 65 72 73 65 64 20 6e 69 6c 29 q.ledger-report-is-reversed.nil)
1da80 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 75 72 .........(setq.ledger-report-cur
1daa0 72 65 6e 74 2d 6d 6f 6e 74 68 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 rent-month.nil).........(setq.le
1dac0 64 67 65 72 2d 6d 61 73 74 65 72 2d 66 69 6c 65 20 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 28 dger-master-file.file).........(
1dae0 6c 65 64 67 65 72 2d 64 6f 2d 72 65 70 6f 72 74 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d ledger-do-report.(ledger-report-
1db00 63 6d 64 20 72 65 70 6f 72 74 2d 6e 61 6d 65 20 65 64 69 74 29 29 29 0a 20 20 20 20 20 20 28 6c cmd.report-name.edit))).......(l
1db20 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6d 61 79 62 65 2d 73 68 72 69 6e 6b 2d 77 69 6e 64 6f 77 edger-report-maybe-shrink-window
1db40 29 0a 20 20 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 ).......(run-hooks.'ledger-repor
1db60 74 2d 61 66 74 65 72 2d 72 65 70 6f 72 74 2d 68 6f 6f 6b 29 0a 20 20 20 20 20 20 28 6d 65 73 73 t-after-report-hook).......(mess
1db80 61 67 65 20 28 73 75 62 73 74 69 74 75 74 65 2d 63 6f 6d 6d 61 6e 64 2d 6b 65 79 73 20 28 63 6f age.(substitute-command-keys.(co
1dba0 6e 63 61 74 20 22 5c 5c 5b 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 71 75 69 74 5d 20 74 6f 20 ncat."\\[ledger-report-quit].to.
1dbc0 71 75 69 74 3b 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 quit;.".........................
1dbe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 5b 6c 65 64 67 ........................"\\[ledg
1dc00 65 72 2d 72 65 70 6f 72 74 2d 72 65 64 6f 5d 20 74 6f 20 72 65 64 6f 3b 20 22 0a 20 20 20 20 20 er-report-redo].to.redo;."......
1dc20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1dc40 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 5b 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 65 64 69 ..........."\\[ledger-report-edi
1dc60 74 2d 72 65 70 6f 72 74 5d 20 74 6f 20 65 64 69 74 3b 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 t-report].to.edit;."............
1dc80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1dca0 20 20 20 20 20 22 5c 5c 5b 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 73 61 76 65 5d 20 74 6f 20 ....."\\[ledger-report-save].to.
1dcc0 73 61 76 65 3b 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 save;.".........................
1dce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 5b 73 63 72 6f ........................"\\[scro
1dd00 6c 6c 2d 75 70 2d 63 6f 6d 6d 61 6e 64 5d 20 61 6e 64 20 5c 5c 5b 73 63 72 6f 6c 6c 2d 64 6f 77 ll-up-command].and.\\[scroll-dow
1dd20 6e 2d 63 6f 6d 6d 61 6e 64 5d 20 74 6f 20 73 63 72 6f 6c 6c 22 29 29 29 29 29 29 0a 0a 28 64 65 n-command].to.scroll"))))))..(de
1dd40 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 68 65 61 64 65 72 2d 66 75 6e 63 74 69 fun.ledger-report--header-functi
1dd60 6f 6e 20 28 29 0a 20 20 22 43 6f 6d 70 75 74 65 20 74 68 65 20 73 74 72 69 6e 67 20 74 6f 20 62 on.()..."Compute.the.string.to.b
1dd80 65 20 75 73 65 64 20 61 73 20 74 68 65 20 68 65 61 64 65 72 20 69 6e 20 74 68 65 20 60 6c 65 64 e.used.as.the.header.in.the.`led
1dda0 67 65 72 2d 72 65 70 6f 72 74 27 20 62 75 66 66 65 72 2e 22 0a 20 20 28 66 6f 72 6d 61 74 20 22 ger-report'.buffer."...(format."
1ddc0 4c 65 64 67 65 72 20 52 65 70 6f 72 74 3a 20 25 73 20 2d 2d 20 42 75 66 66 65 72 3a 20 25 73 20 Ledger.Report:.%s.--.Buffer:.%s.
1dde0 2d 2d 20 43 6f 6d 6d 61 6e 64 3a 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 --.Command:.%s"...........(prope
1de00 72 74 69 7a 65 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 20 27 66 61 63 65 20 27 rtize.ledger-report-name.'face.'
1de20 66 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6e 73 74 61 6e 74 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 font-lock-constant-face)........
1de40 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 20 6c 65 64 67 ...(propertize.(buffer-name.ledg
1de60 65 72 2d 72 65 70 6f 72 74 2d 6c 65 64 67 65 72 2d 62 75 66 29 20 27 66 61 63 65 20 27 66 6f 6e er-report-ledger-buf).'face.'fon
1de80 74 2d 6c 6f 63 6b 2d 73 74 72 69 6e 67 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 t-lock-string-face)...........(p
1dea0 72 6f 70 65 72 74 69 7a 65 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 20 27 66 61 63 ropertize.ledger-report-cmd.'fac
1dec0 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 63 6f 6d 6d 65 6e 74 2d 66 61 63 65 29 29 29 0a 0a 28 64 e.'font-lock-comment-face)))..(d
1dee0 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 2d 65 78 69 73 74 73 20 28 efun.ledger-report-name-exists.(
1df00 6e 61 6d 65 29 0a 20 20 22 43 68 65 63 6b 20 74 6f 20 73 65 65 20 69 66 20 74 68 65 20 67 69 76 name)..."Check.to.see.if.the.giv
1df20 65 6e 20 72 65 70 6f 72 74 20 4e 41 4d 45 20 65 78 69 73 74 73 2e 0a 0a 49 66 20 65 78 69 73 74 en.report.NAME.exists...If.exist
1df40 73 2c 20 72 65 74 75 72 6e 73 20 74 68 65 20 6f 62 6a 65 63 74 20 6e 61 6d 69 6e 67 20 74 68 65 s,.returns.the.object.naming.the
1df60 20 72 65 70 6f 72 74 2c 20 6f 74 68 65 72 77 69 73 65 0a 72 65 74 75 72 6e 73 20 6e 69 6c 2e 22 .report,.otherwise.returns.nil."
1df80 0a 20 20 28 75 6e 6c 65 73 73 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 6e 61 6d 65 29 ...(unless.(string-empty-p.name)
1dfa0 0a 20 20 20 20 28 63 61 72 20 28 61 73 73 6f 63 20 6e 61 6d 65 20 6c 65 64 67 65 72 2d 72 65 70 .....(car.(assoc.name.ledger-rep
1dfc0 6f 72 74 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 2d orts))))..(defun.ledger-reports-
1dfe0 61 64 64 20 28 6e 61 6d 65 20 63 6d 64 29 0a 20 20 22 41 64 64 20 61 20 6e 65 77 20 72 65 70 6f add.(name.cmd)..."Add.a.new.repo
1e000 72 74 20 4e 41 4d 45 20 61 6e 64 20 43 4d 44 20 74 6f 20 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 rt.NAME.and.CMD.to.`ledger-repor
1e020 74 73 27 2e 22 0a 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 20 28 63 6f ts'."...(setq.ledger-reports.(co
1e040 6e 73 20 28 6c 69 73 74 20 6e 61 6d 65 20 63 6d 64 29 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 ns.(list.name.cmd).ledger-report
1e060 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 2d 63 75 73 74 s)))..(defun.ledger-reports-cust
1e080 6f 6d 2d 73 61 76 65 20 28 29 0a 20 20 22 53 61 76 65 20 74 68 65 20 60 6c 65 64 67 65 72 2d 72 om-save.()..."Save.the.`ledger-r
1e0a0 65 70 6f 72 74 73 27 20 76 61 72 69 61 62 6c 65 20 75 73 69 6e 67 20 74 68 65 20 63 75 73 74 6f eports'.variable.using.the.custo
1e0c0 6d 69 7a 65 20 66 72 61 6d 65 77 6f 72 6b 2e 22 0a 20 20 28 63 75 73 74 6f 6d 69 7a 65 2d 73 61 mize.framework."...(customize-sa
1e0e0 76 65 2d 76 61 72 69 61 62 6c 65 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 20 6c 65 64 67 ve-variable.'ledger-reports.ledg
1e100 65 72 2d 72 65 70 6f 72 74 73 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f er-reports))..(defun.ledger-repo
1e120 72 74 2d 72 65 61 64 2d 63 6f 6d 6d 61 6e 64 20 28 72 65 70 6f 72 74 2d 63 6d 64 29 0a 20 20 22 rt-read-command.(report-cmd)..."
1e140 52 65 61 64 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 74 6f 20 63 72 65 61 74 65 20 Read.the.command.line.to.create.
1e160 61 20 72 65 70 6f 72 74 20 66 72 6f 6d 20 52 45 50 4f 52 54 2d 43 4d 44 2e 22 0a 20 20 28 72 65 a.report.from.REPORT-CMD."...(re
1e180 61 64 2d 66 72 6f 6d 2d 6d 69 6e 69 62 75 66 66 65 72 20 22 52 65 70 6f 72 74 20 63 6f 6d 6d 61 ad-from-minibuffer."Report.comma
1e1a0 6e 64 20 6c 69 6e 65 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nd.line:."......................
1e1c0 20 20 20 28 69 66 20 28 6e 75 6c 6c 20 72 65 70 6f 72 74 2d 63 6d 64 29 20 22 6c 65 64 67 65 72 ...(if.(null.report-cmd)."ledger
1e1e0 20 22 20 72 65 70 6f 72 74 2d 63 6d 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .".report-cmd)..................
1e200 20 20 20 20 20 20 20 6e 69 6c 20 6e 69 6c 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d .......nil.nil.'ledger-report-cm
1e220 64 2d 70 72 6f 6d 70 74 2d 68 69 73 74 6f 72 79 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 d-prompt-history))..(defun.ledge
1e240 72 2d 72 65 70 6f 72 74 2d 6c 65 64 67 65 72 2d 66 69 6c 65 2d 66 6f 72 6d 61 74 2d 73 70 65 63 r-report-ledger-file-format-spec
1e260 69 66 69 65 72 20 28 29 0a 20 20 22 53 75 62 73 74 69 74 75 74 65 20 74 68 65 20 66 75 6c 6c 20 ifier.()..."Substitute.the.full.
1e280 70 61 74 68 20 74 6f 20 6d 61 73 74 65 72 20 6f 72 20 63 75 72 72 65 6e 74 20 6c 65 64 67 65 72 path.to.master.or.current.ledger
1e2a0 20 66 69 6c 65 2e 0a 0a 54 68 65 20 6d 61 73 74 65 72 20 66 69 6c 65 20 6e 61 6d 65 20 69 73 20 .file...The.master.file.name.is.
1e2c0 64 65 74 65 72 6d 69 6e 65 64 20 62 79 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 0a 60 6c 65 64 67 determined.by.the.function.`ledg
1e2e0 65 72 2d 6d 61 73 74 65 72 2d 66 69 6c 65 27 2c 20 77 68 69 63 68 20 64 65 70 65 6e 64 73 20 6f er-master-file',.which.depends.o
1e300 6e 20 74 68 65 20 76 61 72 69 61 62 6c 65 20 6f 66 20 74 68 65 20 73 61 6d 65 0a 6e 61 6d 65 2e n.the.variable.of.the.same.name.
1e320 20 20 49 66 20 69 74 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 69 74 20 69 73 20 75 73 65 64 2c 20 ..If.it.is.non-nil,.it.is.used,.
1e340 6f 74 68 65 72 77 69 73 65 20 74 68 65 20 63 75 72 72 65 6e 74 0a 62 75 66 66 65 72 27 73 20 66 otherwise.the.current.buffer's.f
1e360 69 6c 65 20 69 73 20 75 73 65 64 2e 22 0a 20 20 28 6c 65 64 67 65 72 2d 6d 61 73 74 65 72 2d 66 ile.is.used."...(ledger-master-f
1e380 69 6c 65 29 29 0a 0a 3b 3b 20 47 65 6e 65 72 61 6c 20 68 65 6c 70 65 72 20 66 75 6e 63 74 69 6f ile))..;;.General.helper.functio
1e3a0 6e 73 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6d 61 73 74 65 72 2d 66 69 6c 65 20 28 29 ns..(defun.ledger-master-file.()
1e3c0 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 6d 61 73 74 65 72 20 66 69 6c 65 20 66 6f 72 20 61 ..."Return.the.master.file.for.a
1e3e0 20 6c 65 64 67 65 72 20 66 69 6c 65 2e 0a 0a 54 68 65 20 6d 61 73 74 65 72 20 66 69 6c 65 20 69 .ledger.file...The.master.file.i
1e400 73 20 65 69 74 68 65 72 20 74 68 65 20 66 69 6c 65 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e s.either.the.file.for.the.curren
1e420 74 20 6c 65 64 67 65 72 20 62 75 66 66 65 72 0a 6f 72 20 74 68 65 20 66 69 6c 65 20 73 70 65 63 t.ledger.buffer.or.the.file.spec
1e440 69 66 69 65 64 20 62 79 20 74 68 65 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 76 61 72 69 61 62 ified.by.the.buffer-local.variab
1e460 6c 65 0a 60 6c 65 64 67 65 72 2d 6d 61 73 74 65 72 2d 66 69 6c 65 27 2e 20 20 54 79 70 69 63 61 le.`ledger-master-file'...Typica
1e480 6c 6c 79 20 74 68 69 73 20 76 61 72 69 61 62 6c 65 20 77 6f 75 6c 64 20 62 65 20 73 65 74 20 69 lly.this.variable.would.be.set.i
1e4a0 6e 20 61 0a 66 69 6c 65 20 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 20 63 6f 6d 6d 65 6e 74 20 n.a.file.local.variable.comment.
1e4c0 62 6c 6f 63 6b 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20 61 20 6c 65 64 67 65 72 20 66 69 6c block.at.the.end.of.a.ledger.fil
1e4e0 65 0a 77 68 69 63 68 20 69 73 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 73 6f 6d 65 20 6f 74 68 65 e.which.is.included.in.some.othe
1e500 72 20 66 69 6c 65 2e 22 0a 20 20 28 69 66 20 6c 65 64 67 65 72 2d 6d 61 73 74 65 72 2d 66 69 6c r.file."...(if.ledger-master-fil
1e520 65 0a 20 20 20 20 20 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 6c 65 64 67 65 72 e.......(expand-file-name.ledger
1e540 2d 6d 61 73 74 65 72 2d 66 69 6c 65 29 0a 20 20 20 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e -master-file).....(buffer-file-n
1e560 61 6d 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 70 61 79 ame)))..(defun.ledger-report-pay
1e580 65 65 2d 66 6f 72 6d 61 74 2d 73 70 65 63 69 66 69 65 72 20 28 29 0a 20 20 22 53 75 62 73 74 69 ee-format-specifier.()..."Substi
1e5a0 74 75 74 65 20 61 20 70 61 79 65 65 20 6e 61 6d 65 2e 0a 0a 54 68 65 20 75 73 65 72 20 69 73 20 tute.a.payee.name...The.user.is.
1e5c0 70 72 6f 6d 70 74 65 64 20 74 6f 20 65 6e 74 65 72 20 61 20 70 61 79 65 65 20 61 6e 64 20 74 68 prompted.to.enter.a.payee.and.th
1e5e0 61 74 20 69 73 20 73 75 62 73 74 69 74 75 74 65 64 2e 0a 49 66 20 70 6f 69 6e 74 20 69 73 20 69 at.is.substituted..If.point.is.i
1e600 6e 20 61 6e 20 78 61 63 74 2c 20 74 68 65 20 70 61 79 65 65 20 66 6f 72 20 74 68 61 74 20 78 61 n.an.xact,.the.payee.for.that.xa
1e620 63 74 20 69 73 20 75 73 65 64 20 61 73 20 74 68 65 0a 64 65 66 61 75 6c 74 2e 22 0a 20 20 28 6c ct.is.used.as.the.default."...(l
1e640 65 64 67 65 72 2d 72 65 61 64 2d 70 61 79 65 65 2d 77 69 74 68 2d 70 72 6f 6d 70 74 20 22 50 61 edger-read-payee-with-prompt."Pa
1e660 79 65 65 22 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 61 63 63 yee"))..(defun.ledger-report-acc
1e680 6f 75 6e 74 2d 66 6f 72 6d 61 74 2d 73 70 65 63 69 66 69 65 72 20 28 29 0a 20 20 22 53 75 62 73 ount-format-specifier.()..."Subs
1e6a0 74 69 74 75 74 65 20 61 6e 20 61 63 63 6f 75 6e 74 20 6e 61 6d 65 2e 0a 0a 54 68 65 20 75 73 65 titute.an.account.name...The.use
1e6c0 72 20 69 73 20 70 72 6f 6d 70 74 65 64 20 74 6f 20 65 6e 74 65 72 20 61 6e 20 61 63 63 6f 75 6e r.is.prompted.to.enter.an.accoun
1e6e0 74 20 6e 61 6d 65 2c 20 77 68 69 63 68 20 63 61 6e 20 62 65 20 61 6e 79 0a 72 65 67 75 6c 61 72 t.name,.which.can.be.any.regular
1e700 20 65 78 70 72 65 73 73 69 6f 6e 20 69 64 65 6e 74 69 66 79 69 6e 67 20 61 6e 20 61 63 63 6f 75 .expression.identifying.an.accou
1e720 6e 74 2e 20 20 49 66 20 70 6f 69 6e 74 20 69 73 20 6f 6e 20 61 6e 0a 61 63 63 6f 75 6e 74 20 70 nt...If.point.is.on.an.account.p
1e740 6f 73 74 69 6e 67 20 6c 69 6e 65 20 66 6f 72 20 61 6e 20 78 61 63 74 2c 20 74 68 65 20 66 75 6c osting.line.for.an.xact,.the.ful
1e760 6c 20 61 63 63 6f 75 6e 74 20 6e 61 6d 65 20 6f 6e 20 74 68 61 74 0a 6c 69 6e 65 20 69 73 20 74 l.account.name.on.that.line.is.t
1e780 68 65 20 64 65 66 61 75 6c 74 2e 22 0a 20 20 28 6c 65 64 67 65 72 2d 72 65 61 64 2d 61 63 63 6f he.default."...(ledger-read-acco
1e7a0 75 6e 74 2d 77 69 74 68 2d 70 72 6f 6d 70 74 20 22 41 63 63 6f 75 6e 74 22 29 29 0a 0a 28 64 65 unt-with-prompt."Account"))..(de
1e7c0 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 63 75 72 72 65 6e 74 2d 6d 6f 6e 74 68 fun.ledger-report--current-month
1e7e0 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 63 75 72 72 65 6e 74 20 6d 6f 6e 74 68 20 61 73 20 28 .()..."Return.current.month.as.(
1e800 59 45 41 52 20 2e 20 4d 4f 4e 54 48 2d 49 4e 44 45 58 29 2e 0a 0a 4d 4f 4e 54 48 2d 49 4e 44 45 YEAR...MONTH-INDEX)...MONTH-INDE
1e820 58 20 72 61 6e 67 65 73 20 66 72 6f 6d 20 31 20 28 4a 61 6e 75 61 72 79 29 20 74 6f 20 31 32 20 X.ranges.from.1.(January).to.12.
1e840 28 44 65 63 65 6d 62 65 72 29 20 61 6e 64 20 59 45 41 52 20 69 73 0a 61 20 6e 75 6d 62 65 72 2e (December).and.YEAR.is.a.number.
1e860 22 0a 20 20 28 6c 65 74 2a 20 28 28 74 69 6d 65 2d 70 61 72 74 73 20 28 64 65 63 6f 64 65 2d 74 "...(let*.((time-parts.(decode-t
1e880 69 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 79 65 61 72 20 28 6e 74 68 20 35 20 74 69 6d 65 ime))..........(year.(nth.5.time
1e8a0 2d 70 61 72 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 28 6d 6f 6e 74 68 2d 69 6e 64 65 78 20 28 -parts))..........(month-index.(
1e8c0 6e 74 68 20 34 20 74 69 6d 65 2d 70 61 72 74 73 29 29 29 0a 20 20 20 20 28 63 6f 6e 73 20 79 65 nth.4.time-parts))).....(cons.ye
1e8e0 61 72 20 6d 6f 6e 74 68 2d 69 6e 64 65 78 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 ar.month-index)))..(defun.ledger
1e900 2d 72 65 70 6f 72 74 2d 2d 6e 6f 72 6d 61 6c 69 7a 65 2d 6d 6f 6e 74 68 20 28 6d 6f 6e 74 68 29 -report--normalize-month.(month)
1e920 0a 20 20 22 52 65 74 75 72 6e 20 28 59 45 41 52 20 2e 20 4e 45 57 2d 4d 4f 4e 54 48 29 20 77 68 ..."Return.(YEAR...NEW-MONTH).wh
1e940 65 72 65 20 4e 45 57 2d 4d 4f 4e 54 48 20 69 73 20 62 65 74 77 65 65 6e 20 31 20 61 6e 64 20 31 ere.NEW-MONTH.is.between.1.and.1
1e960 32 2e 0a 0a 4d 4f 4e 54 48 20 69 73 20 6f 66 20 74 68 65 20 66 6f 72 6d 20 28 59 45 41 52 20 2e 2...MONTH.is.of.the.form.(YEAR..
1e980 20 49 4e 44 45 58 29 20 77 68 65 72 65 20 49 4e 44 45 58 20 69 73 20 61 6e 20 69 6e 74 65 67 65 .INDEX).where.INDEX.is.an.intege
1e9a0 72 2e 0a 54 68 65 20 70 75 72 70 6f 73 65 20 6f 66 20 74 68 69 73 20 6d 65 74 68 6f 64 20 69 73 r..The.purpose.of.this.method.is
1e9c0 20 74 68 65 6e 20 74 6f 20 63 6f 6e 76 65 72 74 20 61 6e 79 20 79 65 61 72 2f 6d 6f 6e 74 68 20 .then.to.convert.any.year/month.
1e9e0 70 61 69 72 0a 74 6f 20 61 20 6d 65 61 6e 69 6e 67 66 75 6c 20 64 61 74 65 2c 20 65 2e 67 2e 2c pair.to.a.meaningful.date,.e.g.,
1ea00 20 66 72 6f 6d 20 28 32 30 31 38 20 2e 20 2d 32 29 20 74 6f 20 28 32 30 31 37 20 2e 20 31 30 29 .from.(2018...-2).to.(2017...10)
1ea20 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 6d 6f 6e 74 68 2d 69 6e 64 65 78 20 28 63 64 72 20 6d 6f ."...(let*.((month-index.(cdr.mo
1ea40 6e 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 28 79 65 61 72 2d 73 68 69 66 74 20 20 28 2f 20 28 nth))..........(year-shift..(/.(
1ea60 31 2d 20 6d 6f 6e 74 68 2d 69 6e 64 65 78 29 20 31 32 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 1-.month-index).12))).....(when.
1ea80 28 3c 3d 20 6d 6f 6e 74 68 2d 69 6e 64 65 78 20 30 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 79 (<=.month-index.0).......(setq.y
1eaa0 65 61 72 2d 73 68 69 66 74 20 28 31 2d 20 79 65 61 72 2d 73 68 69 66 74 29 29 29 0a 20 20 20 20 ear-shift.(1-.year-shift))).....
1eac0 28 63 6f 6e 73 20 28 2b 20 28 63 61 72 20 6d 6f 6e 74 68 29 20 79 65 61 72 2d 73 68 69 66 74 29 (cons.(+.(car.month).year-shift)
1eae0 0a 20 20 20 20 20 20 20 20 20 20 28 31 2b 20 28 6d 6f 64 20 28 31 2d 20 6d 6f 6e 74 68 2d 69 6e ...........(1+.(mod.(1-.month-in
1eb00 64 65 78 29 20 31 32 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f dex).12)))))..(defun.ledger-repo
1eb20 72 74 2d 2d 73 68 69 66 74 2d 6d 6f 6e 74 68 20 28 6d 6f 6e 74 68 20 73 68 69 66 74 29 0a 20 20 rt--shift-month.(month.shift)...
1eb40 22 52 65 74 75 72 6e 20 28 59 45 41 52 20 2e 20 4e 45 57 2d 4d 4f 4e 54 48 29 20 77 68 65 72 65 "Return.(YEAR...NEW-MONTH).where
1eb60 20 4e 45 57 2d 4d 4f 4e 54 48 20 69 73 20 4d 4f 4e 54 48 2b 53 48 49 46 54 2e 0a 0a 4d 4f 4e 54 .NEW-MONTH.is.MONTH+SHIFT...MONT
1eb80 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).
1eba0 77 68 65 72 65 20 49 4e 44 45 58 20 72 61 6e 67 65 73 20 66 72 6f 6d 0a 31 20 28 4a 61 6e 75 61 where.INDEX.ranges.from.1.(Janua
1ebc0 72 79 29 20 74 6f 20 31 32 20 28 44 65 63 65 6d 62 65 72 29 20 61 6e 64 20 59 45 41 52 20 69 73 ry).to.12.(December).and.YEAR.is
1ebe0 20 61 20 6e 75 6d 62 65 72 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 79 65 61 72 20 28 63 61 72 20 .a.number."...(let*.((year.(car.
1ec00 6d 6f 6e 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 28 6e 65 77 2d 6d 6f 6e 74 68 20 28 2b 20 28 month))..........(new-month.(+.(
1ec20 63 64 72 20 6d 6f 6e 74 68 29 20 73 68 69 66 74 29 29 29 0a 20 20 20 20 28 6c 65 64 67 65 72 2d cdr.month).shift))).....(ledger-
1ec40 72 65 70 6f 72 74 2d 2d 6e 6f 72 6d 61 6c 69 7a 65 2d 6d 6f 6e 74 68 20 28 63 6f 6e 73 20 79 65 report--normalize-month.(cons.ye
1ec60 61 72 20 6e 65 77 2d 6d 6f 6e 74 68 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d ar.new-month))))..(defun.ledger-
1ec80 72 65 70 6f 72 74 2d 6d 6f 6e 74 68 2d 66 6f 72 6d 61 74 2d 73 70 65 63 69 66 69 65 72 20 28 29 report-month-format-specifier.()
1eca0 0a 20 20 22 53 75 62 73 74 69 74 75 74 65 20 63 75 72 72 65 6e 74 20 6d 6f 6e 74 68 2e 22 0a 20 ..."Substitute.current.month."..
1ecc0 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 6f 72 20 6c 65 64 67 65 72 .(with-current-buffer.(or.ledger
1ece0 2d 72 65 70 6f 72 74 2d 62 75 66 66 65 72 2d 6e 61 6d 65 20 28 63 75 72 72 65 6e 74 2d 62 75 66 -report-buffer-name.(current-buf
1ed00 66 65 72 29 29 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 6d 6f 6e 74 68 20 28 6f 72 20 6c 65 64 67 fer)).....(let*.((month.(or.ledg
1ed20 65 72 2d 72 65 70 6f 72 74 2d 63 75 72 72 65 6e 74 2d 6d 6f 6e 74 68 20 28 6c 65 64 67 65 72 2d er-report-current-month.(ledger-
1ed40 72 65 70 6f 72 74 2d 2d 63 75 72 72 65 6e 74 2d 6d 6f 6e 74 68 29 29 29 0a 20 20 20 20 20 20 20 report--current-month)))........
1ed60 20 20 20 20 28 79 65 61 72 20 28 63 61 72 20 6d 6f 6e 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 ....(year.(car.month))..........
1ed80 20 20 28 6d 6f 6e 74 68 2d 69 6e 64 65 78 20 28 63 64 72 20 6d 6f 6e 74 68 29 29 29 0a 20 20 20 ..(month-index.(cdr.month)))....
1eda0 20 20 20 28 66 6f 72 6d 61 74 20 22 25 73 2d 25 73 22 20 79 65 61 72 20 6d 6f 6e 74 68 2d 69 6e ...(format."%s-%s".year.month-in
1edc0 64 65 78 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 65 78 dex))))..(defun.ledger-report-ex
1ede0 70 61 6e 64 2d 66 6f 72 6d 61 74 2d 73 70 65 63 69 66 69 65 72 73 20 28 72 65 70 6f 72 74 2d 63 pand-format-specifiers.(report-c
1ee00 6d 64 29 0a 20 20 22 45 78 70 61 6e 64 20 66 6f 72 6d 61 74 20 73 70 65 63 69 66 69 65 72 73 20 md)..."Expand.format.specifiers.
1ee20 69 6e 20 52 45 50 4f 52 54 2d 43 4d 44 20 77 69 74 68 20 74 68 69 6e 67 20 75 6e 64 65 72 20 70 in.REPORT-CMD.with.thing.under.p
1ee40 6f 69 6e 74 2e 22 0a 20 20 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 28 6c oint."...(save-match-data.....(l
1ee60 65 74 20 28 28 65 78 70 61 6e 64 65 64 2d 63 6d 64 20 72 65 70 6f 72 74 2d 63 6d 64 29 29 0a 20 et.((expanded-cmd.report-cmd))..
1ee80 20 20 20 20 20 28 73 65 74 2d 6d 61 74 63 68 2d 64 61 74 61 20 28 6c 69 73 74 20 30 20 30 29 29 .....(set-match-data.(list.0.0))
1eea0 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 25 28 5c .......(while.(string-match."%(\
1eec0 5c 28 5b 5e 29 5d 2a 5c 5c 29 29 22 20 65 78 70 61 6e 64 65 64 2d 63 6d 64 0a 20 20 20 20 20 20 \([^)]*\\))".expanded-cmd.......
1eee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3e 20 28 6c 65 6e .....................(if.(>.(len
1ef00 67 74 68 20 65 78 70 61 6e 64 65 64 2d 63 6d 64 29 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 gth.expanded-cmd).(match-end.0))
1ef20 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1ef40 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (match-end.0)...................
1ef60 20 20 20 20 20 20 20 20 20 20 20 28 31 2d 20 28 6c 65 6e 67 74 68 20 65 78 70 61 6e 64 65 64 2d ...........(1-.(length.expanded-
1ef80 63 6d 64 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 73 70 65 63 69 66 69 65 cmd)))).........(let*.((specifie
1efa0 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 20 65 78 70 61 6e 64 65 64 2d 63 6d 64 29 29 r.(match-string.1.expanded-cmd))
1efc0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 20 28 63 64 72 20 28 61 73 73 6f 63 20 73 ................(f.(cdr.(assoc.s
1efe0 70 65 63 69 66 69 65 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 66 6f 72 6d 61 74 2d 73 70 pecifier.ledger-report-format-sp
1f000 65 63 69 66 69 65 72 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 66 20 66 0a 20 20 20 ecifiers))))...........(if.f....
1f020 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a 20 28 28 61 72 67 20 28 73 61 76 65 2d 6d 61 74 ...........(let*.((arg.(save-mat
1f040 63 68 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ch-data.........................
1f060 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 6c 65 64 67 65 72 2d ....(with-current-buffer.ledger-
1f080 72 65 70 6f 72 74 2d 6c 65 64 67 65 72 2d 62 75 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 report-ledger-buf...............
1f0a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 66 29 29 29 29 0a 20 ................(funcall.f))))..
1f0c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 71 75 6f 74 65 64 20 28 69 66 20 ....................(quoted.(if.
1f0e0 28 6c 69 73 74 70 20 61 72 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (listp.arg).....................
1f100 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 6f 6e 63 61 74 20 23 27 69 64 65 6e 74 69 .............(mapconcat.#'identi
1f120 74 79 20 61 72 67 20 22 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ty.arg.".").....................
1f140 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 ...........(save-match-data.....
1f160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 68 .............................(sh
1f180 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 20 61 72 67 29 29 29 29 29 0a 20 20 20 20 ell-quote-argument.arg))))).....
1f1a0 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 65 78 70 61 6e 64 65 64 2d 63 6d 64 20 28 ............(setq.expanded-cmd.(
1f1c0 72 65 70 6c 61 63 65 2d 6d 61 74 63 68 20 71 75 6f 74 65 64 20 74 20 74 20 65 78 70 61 6e 64 65 replace-match.quoted.t.t.expande
1f1e0 64 2d 63 6d 64 29 29 29 29 29 29 0a 20 20 20 20 20 20 65 78 70 61 6e 64 65 64 2d 63 6d 64 29 29 d-cmd)))))).......expanded-cmd))
1f200 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 63 6d 64 2d 6e 65 65 )..(defun.ledger-report--cmd-nee
1f220 64 73 2d 6c 69 6e 6b 73 2d 70 20 28 63 6d 64 29 0a 20 20 22 43 68 65 63 6b 20 6c 69 6e 6b 73 20 ds-links-p.(cmd)..."Check.links.
1f240 73 68 6f 75 6c 64 20 62 65 20 61 64 64 65 64 20 74 6f 20 74 68 65 20 72 65 70 6f 72 74 20 70 72 should.be.added.to.the.report.pr
1f260 6f 64 75 63 65 64 20 62 79 20 43 4d 44 2e 22 0a 20 20 3b 3b 20 2d 2d 73 75 62 74 6f 74 61 6c 20 oduced.by.CMD."...;;.--subtotal.
1f280 72 65 70 6f 72 74 73 20 64 6f 20 6e 6f 74 20 70 72 6f 64 75 63 65 20 69 64 65 6e 74 69 66 69 61 reports.do.not.produce.identifia
1f2a0 62 6c 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 2c 20 73 6f 0a 20 20 3b 3b 20 64 6f 6e 27 74 20 ble.transactions,.so...;;.don't.
1f2c0 70 72 65 70 65 6e 64 20 6c 6f 63 61 74 69 6f 6e 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 6f 72 prepend.location.information.for
1f2e0 20 74 68 65 6d 0a 20 20 28 61 6e 64 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5c 5c 3c 72 .them...(and.(string-match."\\<r
1f300 65 67 5c 5c 28 69 73 74 65 72 5c 5c 29 3f 5c 5c 3e 22 20 63 6d 64 29 0a 20 20 20 20 20 20 20 6c eg\\(ister\\)?\\>".cmd)........l
1f320 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6c 69 6e 6b 73 2d 69 6e 2d 72 65 67 69 73 74 65 72 0a 20 edger-report-links-in-register..
1f340 20 20 20 20 20 20 28 6e 6f 74 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 2d 2d 73 75 62 74 ......(not.(string-match."--subt
1f360 6f 74 61 6c 22 20 63 6d 64 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 otal".cmd))))..(defun.ledger-rep
1f380 6f 72 74 2d 2d 63 6f 6d 70 75 74 65 2d 65 78 74 72 61 2d 61 72 67 73 20 28 72 65 70 6f 72 74 2d ort--compute-extra-args.(report-
1f3a0 63 6d 64 29 0a 20 20 22 43 6f 6d 70 75 74 65 20 65 78 74 72 61 20 61 72 67 73 20 74 6f 20 61 64 cmd)..."Compute.extra.args.to.ad
1f3c0 64 20 74 6f 20 52 45 50 4f 52 54 2d 43 4d 44 2e 22 0a 20 20 60 28 2c 40 28 77 68 65 6e 20 28 6c d.to.REPORT-CMD."...`(,@(when.(l
1f3e0 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 63 6d 64 2d 6e 65 65 64 73 2d 6c 69 6e 6b 73 2d 70 20 edger-report--cmd-needs-links-p.
1f400 72 65 70 6f 72 74 2d 63 6d 64 29 0a 20 20 20 20 20 20 20 20 27 28 22 2d 2d 70 72 65 70 65 6e 64 report-cmd).........'("--prepend
1f420 2d 66 6f 72 6d 61 74 3d 25 28 66 69 6c 65 6e 61 6d 65 29 3a 25 28 62 65 67 5f 6c 69 6e 65 29 3a -format=%(filename):%(beg_line):
1f440 22 29 29 0a 20 20 20 20 2c 40 28 77 68 65 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 61 75 ")).....,@(when.ledger-report-au
1f460 74 6f 2d 77 69 64 74 68 0a 20 20 20 20 20 20 20 20 60 28 22 2d 2d 63 6f 6c 75 6d 6e 73 22 20 2c to-width.........`("--columns".,
1f480 28 66 6f 72 6d 61 74 20 22 25 64 22 20 28 77 69 6e 64 6f 77 2d 6d 61 78 2d 63 68 61 72 73 2d 70 (format."%d".(window-max-chars-p
1f4a0 65 72 2d 6c 69 6e 65 29 29 29 29 0a 20 20 20 20 2c 40 28 77 68 65 6e 20 6c 65 64 67 65 72 2d 72 er-line)))).....,@(when.ledger-r
1f4c0 65 70 6f 72 74 2d 75 73 65 2d 6e 61 74 69 76 65 2d 68 69 67 68 6c 69 67 68 74 69 6e 67 0a 20 20 eport-use-native-highlighting...
1f4e0 20 20 20 20 20 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 74 69 76 65 2d 68 69 67 68 6c ......ledger-report-native-highl
1f500 69 67 68 74 69 6e 67 2d 61 72 67 75 6d 65 6e 74 73 29 0a 20 20 20 20 2c 40 28 77 68 65 6e 20 6c ighting-arguments).....,@(when.l
1f520 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 75 73 65 2d 73 74 72 69 63 74 0a 20 20 20 20 20 20 20 20 edger-report-use-strict.........
1f540 27 28 22 2d 2d 73 74 72 69 63 74 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d '("--strict"))))..(defun.ledger-
1f560 72 65 70 6f 72 74 2d 63 6d 64 20 28 72 65 70 6f 72 74 2d 6e 61 6d 65 20 65 64 69 74 29 0a 20 20 report-cmd.(report-name.edit)...
1f580 22 47 65 74 20 74 68 65 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 74 6f 20 72 75 6e 20 74 68 65 "Get.the.command.line.to.run.the
1f5a0 20 72 65 70 6f 72 74 20 6e 61 6d 65 20 52 45 50 4f 52 54 2d 4e 41 4d 45 2e 0a 4f 70 74 69 6f 6e .report.name.REPORT-NAME..Option
1f5c0 61 6c 6c 79 20 45 44 49 54 20 74 68 65 20 63 6f 6d 6d 61 6e 64 2e 22 0a 20 20 28 6c 65 74 20 28 ally.EDIT.the.command."...(let.(
1f5e0 28 72 65 70 6f 72 74 2d 63 6d 64 20 28 63 61 72 20 28 63 64 72 20 28 61 73 73 6f 63 20 72 65 70 (report-cmd.(car.(cdr.(assoc.rep
1f600 6f 72 74 2d 6e 61 6d 65 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 29 29 29 29 29 0a 20 20 20 ort-name.ledger-reports)))))....
1f620 20 3b 3b 20 6c 6f 67 69 63 20 66 6f 72 20 73 75 62 73 74 69 74 75 74 69 6f 6e 20 67 6f 65 73 20 .;;.logic.for.substitution.goes.
1f640 68 65 72 65 0a 20 20 20 20 28 77 68 65 6e 20 28 6f 72 20 28 6e 75 6c 6c 20 72 65 70 6f 72 74 2d here.....(when.(or.(null.report-
1f660 63 6d 64 29 20 65 64 69 74 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 72 65 70 6f 72 74 2d 63 6d cmd).edit).......(setq.report-cm
1f680 64 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 61 64 2d 63 6f 6d 6d 61 6e 64 20 72 65 d.(ledger-report-read-command.re
1f6a0 70 6f 72 74 2d 63 6d 64 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 port-cmd)).......(setq.ledger-re
1f6c0 70 6f 72 74 2d 73 61 76 65 64 20 6e 69 6c 29 29 20 3b 3b 20 74 68 69 73 20 69 73 20 61 20 6e 65 port-saved.nil)).;;.this.is.a.ne
1f6e0 77 20 72 65 70 6f 72 74 2c 20 6f 72 20 65 64 69 74 65 64 20 72 65 70 6f 72 74 0a 20 20 20 20 28 w.report,.or.edited.report.....(
1f700 73 65 74 71 20 72 65 70 6f 72 74 2d 63 6d 64 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 65 setq.report-cmd.(ledger-report-e
1f720 78 70 61 6e 64 2d 66 6f 72 6d 61 74 2d 73 70 65 63 69 66 69 65 72 73 20 72 65 70 6f 72 74 2d 63 xpand-format-specifiers.report-c
1f740 6d 64 29 29 0a 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 md)).....(setq.ledger-report-cmd
1f760 20 72 65 70 6f 72 74 2d 63 6d 64 29 0a 20 20 20 20 28 6f 72 20 28 73 74 72 69 6e 67 2d 65 6d 70 .report-cmd).....(or.(string-emp
1f780 74 79 2d 70 20 72 65 70 6f 72 74 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 ty-p.report-name).........(ledge
1f7a0 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 2d 65 78 69 73 74 73 20 72 65 70 6f 72 74 2d 6e 61 6d 65 r-report-name-exists.report-name
1f7c0 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 ).........(progn...........(ledg
1f7e0 65 72 2d 72 65 70 6f 72 74 73 2d 61 64 64 20 72 65 70 6f 72 74 2d 6e 61 6d 65 20 72 65 70 6f 72 er-reports-add.report-name.repor
1f800 74 2d 63 6d 64 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 t-cmd)...........(ledger-reports
1f820 2d 63 75 73 74 6f 6d 2d 73 61 76 65 29 29 29 0a 20 20 20 20 72 65 70 6f 72 74 2d 63 6d 64 29 29 -custom-save))).....report-cmd))
1f840 0a 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 6f 6e 2d 74 79 70 65 20 27 6c 65 64 67 65 72 2d 72 65 ..(define-button-type.'ledger-re
1f860 70 6f 72 74 2d 72 65 67 69 73 74 65 72 2d 65 6e 74 72 79 0a 20 20 27 66 6f 6c 6c 6f 77 2d 6c 69 port-register-entry...'follow-li
1f880 6e 6b 20 74 0a 20 20 27 66 61 63 65 20 6e 69 6c 20 3b 3b 20 4f 74 68 65 72 77 69 73 65 20 6d 61 nk.t...'face.nil.;;.Otherwise.ma
1f8a0 6b 65 2d 74 65 78 74 2d 62 75 74 74 6f 6e 20 72 65 70 6c 61 63 65 73 20 4c 65 64 67 65 72 27 73 ke-text-button.replaces.Ledger's
1f8c0 20 6e 61 74 69 76 65 20 68 69 67 68 6c 69 67 68 74 69 6e 67 0a 20 20 27 61 63 74 69 6f 6e 20 28 .native.highlighting...'action.(
1f8e0 6c 61 6d 62 64 61 20 28 5f 62 75 74 74 6f 6e 29 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d lambda.(_button).(ledger-report-
1f900 76 69 73 69 74 2d 73 6f 75 72 63 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 visit-source)))..(defun.ledger-r
1f920 65 70 6f 72 74 2d 2d 63 68 61 6e 67 65 2d 6d 6f 6e 74 68 20 28 73 68 69 66 74 29 0a 20 20 22 52 eport--change-month.(shift)..."R
1f940 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.
1f960 66 72 6f 6d 20 63 75 72 72 65 6e 74 20 6d 6f 6e 74 68 20 2b 20 53 48 49 46 54 2e 22 0a 20 20 28 from.current.month.+.SHIFT."...(
1f980 6c 65 74 2a 20 28 28 63 75 72 72 65 6e 74 2d 6d 6f 6e 74 68 20 28 6f 72 20 6c 65 64 67 65 72 2d let*.((current-month.(or.ledger-
1f9a0 72 65 70 6f 72 74 2d 63 75 72 72 65 6e 74 2d 6d 6f 6e 74 68 20 28 6c 65 64 67 65 72 2d 72 65 70 report-current-month.(ledger-rep
1f9c0 6f 72 74 2d 2d 63 75 72 72 65 6e 74 2d 6d 6f 6e 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 ort--current-month)))..........(
1f9e0 70 72 65 76 69 6f 75 73 2d 6d 6f 6e 74 68 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 73 previous-month.(ledger-report--s
1fa00 68 69 66 74 2d 6d 6f 6e 74 68 20 63 75 72 72 65 6e 74 2d 6d 6f 6e 74 68 20 73 68 69 66 74 29 29 hift-month.current-month.shift))
1fa20 29 0a 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 75 72 72 65 6e ).....(setq.ledger-report-curren
1fa40 74 2d 6d 6f 6e 74 68 20 70 72 65 76 69 6f 75 73 2d 6d 6f 6e 74 68 29 0a 20 20 20 20 28 6c 65 64 t-month.previous-month).....(led
1fa60 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d ger-report-cmd.ledger-report-nam
1fa80 65 20 6e 69 6c 29 0a 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 64 6f 29 29 e.nil).....(ledger-report-redo))
1faa0 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 61 64 64 2d 6c 69 6e )..(defun.ledger-report--add-lin
1fac0 6b 73 20 28 29 0a 20 20 22 52 65 70 6c 61 63 65 20 66 69 6c 65 20 61 6e 64 20 6c 69 6e 65 20 61 ks.()..."Replace.file.and.line.a
1fae0 6e 6e 6f 74 61 74 69 6f 6e 73 20 77 69 74 68 20 62 75 74 74 6f 6e 73 2e 22 0a 20 20 28 77 68 69 nnotations.with.buttons."...(whi
1fb00 6c 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5e 5c 5c 28 5c 5c 28 3f 3a le.(re-search-forward."^\\(\\(?:
1fb20 2f 5c 5c 7c 5b 61 2d 7a 41 2d 5a 5d 3a 5b 5c 5c 2f 5d 5c 5c 29 5b 5e 3a 5d 2b 5c 5c 29 3f 3a 5c /\\|[a-zA-Z]:[\\/]\\)[^:]+\\)?:\
1fb40 5c 28 5b 30 2d 39 5d 2b 5c 5c 29 3f 3a 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 28 6c 65 74 20 28 \([0-9]+\\)?:".nil.t).....(let.(
1fb60 28 66 69 6c 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 29 29 0a 20 20 20 20 20 20 20 20 (file.(match-string.1)).........
1fb80 20 20 28 6c 69 6e 65 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 6d 61 74 63 68 ..(line.(string-to-number.(match
1fba0 2d 73 74 72 69 6e 67 20 32 29 29 29 29 0a 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 -string.2)))).......(delete-regi
1fbc0 6f 6e 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 20 28 6d 61 74 63 68 2d 65 6e on.(match-beginning.0).(match-en
1fbe0 64 20 30 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 66 69 6c 65 20 6c 69 6e 65 d.0)).......(when.(and.file.line
1fc00 29 0a 20 20 20 20 20 20 20 20 28 61 64 64 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 69 65 73 20 28 ).........(add-text-properties.(
1fc20 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 20 28 6c 69 6e 65 2d 65 line-beginning-position).(line-e
1fc40 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nd-position)....................
1fc60 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 27 6c 65 64 67 65 72 2d 73 6f 75 72 63 65 20 28 ..........(list.'ledger-source.(
1fc80 63 6f 6e 73 20 66 69 6c 65 20 6c 69 6e 65 29 29 29 0a 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d cons.file.line))).........(make-
1fca0 74 65 78 74 2d 62 75 74 74 6f 6e 0a 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 2d 62 65 67 69 6e text-button..........(line-begin
1fcc0 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f ning-position).(line-end-positio
1fce0 6e 29 0a 20 20 20 20 20 20 20 20 20 27 74 79 70 65 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 n)..........'type.'ledger-report
1fd00 2d 72 65 67 69 73 74 65 72 2d 65 6e 74 72 79 0a 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 2d 65 -register-entry..........'help-e
1fd20 63 68 6f 20 28 66 6f 72 6d 61 74 20 22 6d 6f 75 73 65 2d 32 2c 20 52 45 54 3a 20 56 69 73 69 74 cho.(format."mouse-2,.RET:.Visit
1fd40 20 25 73 3a 25 64 22 20 66 69 6c 65 20 6c 69 6e 65 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 41 .%s:%d".file.line)).........;;.A
1fd60 70 70 65 6e 64 69 6e 67 20 74 68 65 20 66 61 63 65 20 70 72 65 73 65 72 76 65 73 20 4c 65 64 67 ppending.the.face.preserves.Ledg
1fd80 65 72 27 73 20 6e 61 74 69 76 65 20 68 69 67 68 6c 69 67 68 74 69 6e 67 0a 20 20 20 20 20 20 20 er's.native.highlighting........
1fda0 20 28 66 6f 6e 74 2d 6c 6f 63 6b 2d 61 70 70 65 6e 64 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 .(font-lock-append-text-property
1fdc0 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 20 28 6c 69 6e 65 .(line-beginning-position).(line
1fde0 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -end-position)..................
1fe00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 66 61 63 65 20 27 6c 65 .......................'face.'le
1fe20 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)
1fe40 0a 20 20 20 20 20 20 20 20 28 65 6e 64 2d 6f 66 2d 6c 69 6e 65 29 29 29 29 29 0a 0a 28 64 65 66 .........(end-of-line)))))..(def
1fe60 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 63 6f 6d 70 75 74 65 2d 68 65 61 64 65 72 un.ledger-report--compute-header
1fe80 2d 6c 69 6e 65 20 28 63 6d 64 29 0a 20 20 22 43 61 6c 6c 20 60 6c 65 64 67 65 72 2d 72 65 70 6f -line.(cmd)..."Call.`ledger-repo
1fea0 72 74 2d 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6e 27 20 77 69 74 68 20 60 6c 65 64 67 65 72 2d rt-header-line-fn'.with.`ledger-
1fec0 72 65 70 6f 72 74 2d 63 6d 64 27 20 62 6f 75 6e 64 20 74 6f 20 43 4d 44 2e 22 0a 20 20 28 6c 65 report-cmd'.bound.to.CMD."...(le
1fee0 74 20 28 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 20 63 6d 64 29 29 0a 20 20 20 20 t.((ledger-report-cmd.cmd)).....
1ff00 28 66 75 6e 63 61 6c 6c 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 68 65 61 64 65 72 2d 6c 69 (funcall.ledger-report-header-li
1ff20 6e 65 2d 66 6e 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 64 6f 2d 72 65 70 6f 72 ne-fn)))..(defun.ledger-do-repor
1ff40 74 20 28 63 6d 64 29 0a 20 20 22 52 75 6e 20 61 20 72 65 70 6f 72 74 20 63 6f 6d 6d 61 6e 64 20 t.(cmd)..."Run.a.report.command.
1ff60 6c 69 6e 65 20 43 4d 44 2e 0a 43 4d 44 20 6d 61 79 20 63 6f 6e 74 61 69 6e 20 61 20 28 73 68 65 line.CMD..CMD.may.contain.a.(she
1ff80 6c 6c 2d 71 75 6f 74 65 64 29 20 76 65 72 73 69 6f 6e 20 6f 66 0a 60 6c 65 64 67 65 72 2d 72 65 ll-quoted).version.of.`ledger-re
1ffa0 70 6f 72 74 2d 2d 65 78 74 72 61 2d 61 72 67 73 2d 6d 61 72 6b 65 72 27 2c 20 77 68 69 63 68 20 port--extra-args-marker',.which.
1ffc0 77 69 6c 6c 20 62 65 20 72 65 70 6c 61 63 65 64 20 62 79 0a 61 72 67 75 6d 65 6e 74 73 20 72 65 will.be.replaced.by.arguments.re
1ffe0 74 75 72 6e 65 64 20 62 79 20 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 63 6f 6d 70 75 74 turned.by.`ledger-report--comput
20000 65 2d 65 78 74 72 61 2d 61 72 67 73 27 2e 22 0a 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f e-extra-args'."...(goto-char.(po
20020 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 6d 61 72 6b 65 72 20 6c 65 64 67 65 int-min))...(let*.((marker.ledge
20040 72 2d 72 65 70 6f 72 74 2d 2d 65 78 74 72 61 2d 61 72 67 73 2d 6d 61 72 6b 65 72 29 0a 20 20 20 r-report--extra-args-marker)....
20060 20 20 20 20 20 20 28 6d 61 72 6b 65 72 2d 72 65 20 28 63 6f 6e 63 61 74 20 22 20 2a 22 20 28 72 ......(marker-re.(concat.".*".(r
20080 65 67 65 78 70 2d 71 75 6f 74 65 20 6d 61 72 6b 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 egexp-quote.marker)))..........(
200a0 61 72 67 73 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 63 6f 6d 70 75 74 65 2d 65 78 74 args.(ledger-report--compute-ext
200c0 72 61 2d 61 72 67 73 20 63 6d 64 29 29 0a 20 20 20 20 20 20 20 20 20 28 61 72 67 73 2d 73 74 72 ra-args.cmd))..........(args-str
200e0 20 28 63 6f 6e 63 61 74 20 22 20 22 20 28 6d 61 70 63 6f 6e 63 61 74 20 23 27 73 68 65 6c 6c 2d .(concat.".".(mapconcat.#'shell-
20100 71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 20 61 72 67 73 20 22 20 22 29 29 29 0a 20 20 20 20 20 quote-argument.args.".")))......
20120 20 20 20 20 28 63 6c 65 61 6e 2d 63 6d 64 20 28 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 ....(clean-cmd.(replace-regexp-i
20140 6e 2d 73 74 72 69 6e 67 20 6d 61 72 6b 65 72 2d 72 65 20 22 22 20 63 6d 64 20 74 20 74 29 29 0a n-string.marker-re."".cmd.t.t)).
20160 20 20 20 20 20 20 20 20 20 28 72 65 61 6c 2d 63 6d 64 20 28 72 65 70 6c 61 63 65 2d 72 65 67 65 .........(real-cmd.(replace-rege
20180 78 70 2d 69 6e 2d 73 74 72 69 6e 67 20 6d 61 72 6b 65 72 2d 72 65 20 61 72 67 73 2d 73 74 72 20 xp-in-string.marker-re.args-str.
201a0 63 6d 64 20 74 20 74 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 68 65 61 64 65 72 2d 6c 69 6e 65 cmd.t.t))).....(setq.header-line
201c0 2d 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 6c 65 64 67 65 72 2d 72 65 -format...........(and.ledger-re
201e0 70 6f 72 74 2d 75 73 65 2d 68 65 61 64 65 72 2d 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 20 20 20 port-use-header-line............
20200 20 20 20 20 60 28 3a 65 76 61 6c 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 63 6f 6d 70 ....`(:eval.(ledger-report--comp
20220 75 74 65 2d 68 65 61 64 65 72 2d 6c 69 6e 65 20 2c 63 6c 65 61 6e 2d 63 6d 64 29 29 29 29 0a 20 ute-header-line.,clean-cmd))))..
20240 20 20 20 28 75 6e 6c 65 73 73 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 75 73 65 2d 68 65 61 ...(unless.ledger-report-use-hea
20260 64 65 72 2d 6c 69 6e 65 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 66 6f 72 6d 61 74 20 22 der-line.......(insert.(format."
20280 52 65 70 6f 72 74 3a 20 25 73 5c 6e 22 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 Report:.%s\n".ledger-report-name
202a0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 6d 61 74 20 22 43 6f 6d 6d 61 6e 64 )...............(format."Command
202c0 3a 20 25 73 5c 6e 22 20 63 6c 65 61 6e 2d 63 6d 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 :.%s\n".clean-cmd)..............
202e0 20 28 6d 61 6b 65 2d 73 74 72 69 6e 67 20 28 2d 20 28 77 69 6e 64 6f 77 2d 77 69 64 74 68 29 20 .(make-string.(-.(window-width).
20300 31 29 20 3f 3d 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 5c 6e 22 29 29 0a 20 20 1).?=)..............."\n\n"))...
20320 20 20 28 6c 65 74 2a 20 28 28 72 65 70 6f 72 74 20 28 73 68 65 6c 6c 2d 63 6f 6d 6d 61 6e 64 2d ..(let*.((report.(shell-command-
20340 74 6f 2d 73 74 72 69 6e 67 20 72 65 61 6c 2d 63 6d 64 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 to-string.real-cmd))).......(whe
20360 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 75 73 65 2d 6e 61 74 69 76 65 2d 68 69 67 68 6c n.ledger-report-use-native-highl
20380 69 67 68 74 69 6e 67 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 65 70 6f 72 74 20 28 61 6e ighting.........(setq.report.(an
203a0 73 69 2d 63 6f 6c 6f 72 2d 61 70 70 6c 79 20 72 65 70 6f 72 74 29 29 29 0a 20 20 20 20 20 20 28 si-color-apply.report))).......(
203c0 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 72 save-excursion.........(insert.r
203e0 65 70 6f 72 74 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 6c 65 64 67 65 72 2d 72 65 70 6f eport)).......(when.(ledger-repo
20400 72 74 2d 2d 63 6d 64 2d 6e 65 65 64 73 2d 6c 69 6e 6b 73 2d 70 20 63 6d 64 29 0a 20 20 20 20 20 rt--cmd-needs-links-p.cmd)......
20420 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 ...(save-excursion...........(le
20440 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 61 64 64 2d 6c 69 6e 6b 73 29 29 29 29 29 29 0a 0a 28 64 dger-report--add-links))))))..(d
20460 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 76 69 73 69 74 2d 73 6f 75 72 63 65 20 efun.ledger-report-visit-source.
20480 28 29 0a 20 20 22 56 69 73 69 74 20 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 75 6e 64 65 ()..."Visit.the.transaction.unde
204a0 72 20 70 6f 69 6e 74 20 69 6e 20 74 68 65 20 72 65 70 6f 72 74 20 77 69 6e 64 6f 77 2e 22 0a 20 r.point.in.the.report.window."..
204c0 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 2a 20 28 28 70 72 6f 70 20 28 67 .(interactive)...(let*.((prop.(g
204e0 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 70 6f 69 6e 74 29 20 27 6c 65 64 67 65 72 et-text-property.(point).'ledger
20500 2d 73 6f 75 72 63 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 20 28 63 61 72 20 70 72 -source))..........(file.(car.pr
20520 6f 70 29 29 0a 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 28 63 64 72 20 70 72 6f 70 29 29 29 op))..........(line.(cdr.prop)))
20540 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 66 69 6c 65 20 6c 69 6e 65 29 0a 20 20 20 20 20 .....(when.(and.file.line)......
20560 20 28 66 69 6e 64 2d 66 69 6c 65 2d 6f 74 68 65 72 2d 77 69 6e 64 6f 77 20 66 69 6c 65 29 0a 20 .(find-file-other-window.file)..
20580 20 20 20 20 20 28 77 69 64 65 6e 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 .....(widen).......(goto-char.(p
205a0 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 28 oint-min)).......(forward-line.(
205c0 31 2d 20 6c 69 6e 65 29 29 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 1-.line)).......(ledger-navigate
205e0 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 78 61 63 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c -beginning-of-xact))))..(defun.l
20600 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 67 6f 74 6f 20 28 29 0a 20 20 22 47 6f 74 6f 20 74 68 65 edger-report-goto.()..."Goto.the
20620 20 6c 65 64 67 65 72 20 72 65 70 6f 72 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 .ledger.report.buffer."...(inter
20640 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 72 62 75 66 20 28 67 65 74 2d 62 75 66 66 65 active)...(let.((rbuf.(get-buffe
20660 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 29 0a 20 r.ledger-report-buffer-name)))..
20680 20 20 20 28 69 66 20 28 6e 6f 74 20 72 62 75 66 29 0a 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 ...(if.(not.rbuf).........(error
206a0 20 22 54 68 65 72 65 20 69 73 20 6e 6f 20 6c 65 64 67 65 72 20 72 65 70 6f 72 74 20 62 75 66 66 ."There.is.no.ledger.report.buff
206c0 65 72 22 29 29 0a 20 20 20 20 28 70 6f 70 2d 74 6f 2d 62 75 66 66 65 72 20 72 62 75 66 29 0a 20 er")).....(pop-to-buffer.rbuf)..
206e0 20 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6d 61 79 62 65 2d 73 68 72 69 6e 6b 2d 77 ...(ledger-report-maybe-shrink-w
20700 69 6e 64 6f 77 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 indow)))..(defun.ledger-report-r
20720 65 64 6f 20 28 26 6f 70 74 69 6f 6e 61 6c 20 5f 69 67 6e 6f 72 65 2d 61 75 74 6f 20 5f 6e 6f 63 edo.(&optional._ignore-auto._noc
20740 6f 6e 66 69 72 6d 29 0a 20 20 22 52 65 64 6f 20 74 68 65 20 72 65 70 6f 72 74 20 69 6e 20 74 68 onfirm)..."Redo.the.report.in.th
20760 65 20 63 75 72 72 65 6e 74 20 6c 65 64 67 65 72 20 72 65 70 6f 72 74 20 62 75 66 66 65 72 2e 0a e.current.ledger.report.buffer..
20780 49 47 4e 4f 52 45 2d 41 55 54 4f 20 61 6e 64 20 4e 4f 43 4f 4e 46 49 52 4d 20 61 72 65 20 66 6f IGNORE-AUTO.and.NOCONFIRM.are.fo
207a0 72 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 77 69 74 68 0a 60 72 65 76 65 72 74 2d 62 75 66 r.compatibility.with.`revert-buf
207c0 66 65 72 2d 66 75 6e 63 74 69 6f 6e 27 20 61 6e 64 20 61 72 65 20 63 75 72 72 65 6e 74 6c 79 20 fer-function'.and.are.currently.
207e0 69 67 6e 6f 72 65 64 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 75 6e 6c ignored."...(interactive)...(unl
20800 65 73 73 20 28 6f 72 20 28 64 65 72 69 76 65 64 2d 6d 6f 64 65 2d 70 20 27 6c 65 64 67 65 72 2d ess.(or.(derived-mode-p.'ledger-
20820 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 72 69 76 65 64 2d 6d 6f 64 mode)...............(derived-mod
20840 65 2d 70 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6d 6f 64 65 29 29 0a 20 20 20 20 28 75 e-p.'ledger-report-mode)).....(u
20860 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 74 20 69 6e 20 61 20 6c 65 64 67 65 72 2d 6d 6f 64 65 20 ser-error."Not.in.a.ledger-mode.
20880 6f 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6d 6f 64 65 20 62 75 66 66 65 72 22 29 29 0a or.ledger-report-mode.buffer")).
208a0 20 20 28 6c 65 74 20 28 28 63 75 72 2d 62 75 66 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 ..(let.((cur-buf.(current-buffer
208c0 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 ))).....(when.(and.ledger-report
208e0 2d 61 75 74 6f 2d 72 65 66 72 65 73 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 -auto-refresh................(ge
20900 74 2d 62 75 66 66 65 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 62 75 66 66 65 72 2d 6e 61 t-buffer.ledger-report-buffer-na
20920 6d 65 29 29 0a 20 20 20 20 20 20 28 70 6f 70 2d 74 6f 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 me)).......(pop-to-buffer.(get-b
20940 75 66 66 65 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 uffer.ledger-report-buffer-name)
20960 29 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6d 61 79 62 65 2d 73 68 72 ).......(ledger-report-maybe-shr
20980 69 6e 6b 2d 77 69 6e 64 6f 77 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 ink-window).......(setq.ledger-r
209a0 65 70 6f 72 74 2d 63 75 72 73 6f 72 2d 6c 69 6e 65 2d 6e 75 6d 62 65 72 20 28 6c 69 6e 65 2d 6e eport-cursor-line-number.(line-n
209c0 75 6d 62 65 72 2d 61 74 2d 70 6f 73 29 29 0a 20 20 20 20 20 20 28 77 69 74 68 2d 73 69 6c 65 6e umber-at-pos)).......(with-silen
209e0 74 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 28 65 72 61 73 65 2d 62 t-modifications.........(erase-b
20a00 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 64 6f 2d 72 65 70 6f 72 74 uffer).........(ledger-do-report
20a20 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 .ledger-report-cmd).........(whe
20a40 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 69 73 2d 72 65 76 65 72 73 65 64 0a 20 20 20 20 n.ledger-report-is-reversed.....
20a60 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 76 65 72 73 65 2d 6c 69 6e ......(ledger-report-reverse-lin
20a80 65 73 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 es)).........(when.ledger-report
20aa0 2d 61 75 74 6f 2d 72 65 66 72 65 73 68 2d 73 74 69 63 6b 79 2d 63 75 72 73 6f 72 0a 20 20 20 20 -auto-refresh-sticky-cursor.....
20ac0 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 28 2d 20 6c 65 64 67 65 72 2d 72 65 ......(forward-line.(-.ledger-re
20ae0 70 6f 72 74 2d 63 75 72 73 6f 72 2d 6c 69 6e 65 2d 6e 75 6d 62 65 72 20 35 29 29 29 29 0a 20 20 port-cursor-line-number.5))))...
20b00 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 61 66 ....(run-hooks.'ledger-report-af
20b20 74 65 72 2d 72 65 70 6f 72 74 2d 68 6f 6f 6b 29 0a 20 20 20 20 20 20 28 70 6f 70 2d 74 6f 2d 62 ter-report-hook).......(pop-to-b
20b40 75 66 66 65 72 20 63 75 72 2d 62 75 66 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 uffer.cur-buf))))..(defun.ledger
20b60 2d 72 65 70 6f 72 74 2d 71 75 69 74 20 28 29 0a 20 20 22 51 75 69 74 20 74 68 65 20 6c 65 64 67 -report-quit.()..."Quit.the.ledg
20b80 65 72 20 72 65 70 6f 72 74 20 62 75 66 66 65 72 20 61 6e 64 20 6b 69 6c 6c 20 69 74 73 20 62 75 er.report.buffer.and.kill.its.bu
20ba0 66 66 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 75 6e 6c 65 73 73 ffer."...(interactive)...(unless
20bc0 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 20 28 67 65 74 2d 62 75 66 66 65 72 20 6c 65 64 67 .(buffer-live-p.(get-buffer.ledg
20be0 65 72 2d 72 65 70 6f 72 74 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 0a 20 20 20 20 28 75 73 65 er-report-buffer-name)).....(use
20c00 72 2d 65 72 72 6f 72 20 22 4e 6f 20 6c 65 64 67 65 72 20 72 65 70 6f 72 74 20 62 75 66 66 65 72 r-error."No.ledger.report.buffer
20c20 22 29 29 0a 20 20 28 71 75 69 74 2d 77 69 6e 64 6f 77 73 2d 6f 6e 20 6c 65 64 67 65 72 2d 72 65 "))...(quit-windows-on.ledger-re
20c40 70 6f 72 74 2d 62 75 66 66 65 72 2d 6e 61 6d 65 20 27 6b 69 6c 6c 29 29 0a 0a 28 64 65 66 69 6e port-buffer-name.'kill))..(defin
20c60 65 2d 6f 62 73 6f 6c 65 74 65 2d 66 75 6e 63 74 69 6f 6e 2d 61 6c 69 61 73 20 27 6c 65 64 67 65 e-obsolete-function-alias.'ledge
20c80 72 2d 72 65 70 6f 72 74 2d 6b 69 6c 6c 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 71 75 r-report-kill.#'ledger-report-qu
20ca0 69 74 20 22 32 30 31 38 2d 30 33 2d 31 38 22 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d it."2018-03-18")..(defun.ledger-
20cc0 72 65 70 6f 72 74 2d 65 64 69 74 2d 72 65 70 6f 72 74 73 20 28 29 0a 20 20 22 45 64 69 74 20 74 report-edit-reports.()..."Edit.t
20ce0 68 65 20 64 65 66 69 6e 65 64 20 6c 65 64 67 65 72 20 72 65 70 6f 72 74 73 2e 22 0a 20 20 28 69 he.defined.ledger.reports."...(i
20d00 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 63 75 73 74 6f 6d 69 7a 65 2d 76 61 72 69 61 62 6c nteractive)...(customize-variabl
20d20 65 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 e.'ledger-reports))..(defun.ledg
20d40 65 72 2d 72 65 70 6f 72 74 2d 65 64 69 74 2d 72 65 70 6f 72 74 20 28 29 0a 20 20 22 45 64 69 74 er-report-edit-report.()..."Edit
20d60 20 74 68 65 20 63 75 72 72 65 6e 74 20 72 65 70 6f 72 74 20 63 6f 6d 6d 61 6e 64 20 69 6e 20 74 .the.current.report.command.in.t
20d80 68 65 20 6d 69 6e 69 20 62 75 66 66 65 72 20 61 6e 64 20 72 65 2d 72 75 6e 20 74 68 65 20 72 65 he.mini.buffer.and.re-run.the.re
20da0 70 6f 72 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 73 65 74 71 20 6c port."...(interactive)...(setq.l
20dc0 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d edger-report-cmd.(ledger-report-
20de0 72 65 61 64 2d 63 6f 6d 6d 61 6e 64 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 29 29 read-command.ledger-report-cmd))
20e00 0a 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 64 6f 29 29 0a 0a 28 64 65 66 69 6e ...(ledger-report-redo))..(defin
20e20 65 2d 6f 62 73 6f 6c 65 74 65 2d 66 75 6e 63 74 69 6f 6e 2d 61 6c 69 61 73 20 27 6c 65 64 67 65 e-obsolete-function-alias.'ledge
20e40 72 2d 72 65 70 6f 72 74 2d 73 65 6c 65 63 74 2d 72 65 70 6f 72 74 20 23 27 6c 65 64 67 65 72 2d r-report-select-report.#'ledger-
20e60 72 65 70 6f 72 74 20 22 6c 65 64 67 65 72 20 34 2e 30 2e 30 22 29 0a 0a 28 64 65 66 75 6e 20 6c report."ledger.4.0.0")..(defun.l
20e80 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 61 64 2d 6e 65 77 2d 6e 61 6d 65 20 28 29 0a 20 20 edger-report-read-new-name.()...
20ea0 22 52 65 61 64 20 74 68 65 20 6e 61 6d 65 20 66 6f 72 20 61 20 6e 65 77 20 72 65 70 6f 72 74 20 "Read.the.name.for.a.new.report.
20ec0 66 72 6f 6d 20 74 68 65 20 6d 69 6e 69 62 75 66 66 65 72 2e 22 0a 20 20 28 6c 65 74 20 28 28 6e from.the.minibuffer."...(let.((n
20ee0 61 6d 65 20 22 22 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 ame."")).....(while.(string-empt
20f00 79 2d 70 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6e 61 6d 65 20 28 72 65 61 64 y-p.name).......(setq.name.(read
20f20 2d 66 72 6f 6d 2d 6d 69 6e 69 62 75 66 66 65 72 20 22 52 65 70 6f 72 74 20 6e 61 6d 65 3a 20 22 -from-minibuffer."Report.name:."
20f40 20 6e 69 6c 20 6e 69 6c 20 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .nil.nil.nil....................
20f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6c 65 64 67 65 72 2d 72 65 70 6f ....................'ledger-repo
20f80 72 74 2d 6e 61 6d 65 2d 70 72 6f 6d 70 74 2d 68 69 73 74 6f 72 79 29 29 29 0a 20 20 20 20 6e 61 rt-name-prompt-history))).....na
20fa0 6d 65 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 73 61 76 65 20 me))..(defun.ledger-report-save.
20fc0 28 29 0a 20 20 22 53 61 76 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 72 65 70 6f 72 74 20 63 6f ()..."Save.the.current.report.co
20fe0 6d 6d 61 6e 64 20 6c 69 6e 65 20 61 73 20 61 20 6e 61 6d 65 64 20 72 65 70 6f 72 74 2e 22 0a 20 mmand.line.as.a.named.report."..
21000 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d .(interactive)...(ledger-report-
21020 67 6f 74 6f 29 0a 20 20 28 77 68 65 6e 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 6c 65 goto)...(when.(string-empty-p.le
21040 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 29 0a 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 dger-report-name).....(setq.ledg
21060 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 er-report-name.(ledger-report-re
21080 61 64 2d 6e 65 77 2d 6e 61 6d 65 29 29 29 0a 0a 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 65 78 ad-new-name)))....(when-let.((ex
210a0 69 73 74 69 6e 67 2d 6e 61 6d 65 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 2d isting-name.(ledger-report-name-
210c0 65 78 69 73 74 73 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 29 29 29 0a 20 20 20 exists.ledger-report-name)))....
210e0 20 28 63 6f 6e 64 20 28 28 79 2d 6f 72 2d 6e 2d 70 20 28 66 6f 72 6d 61 74 20 22 4f 76 65 72 77 .(cond.((y-or-n-p.(format."Overw
21100 72 69 74 65 20 65 78 69 73 74 69 6e 67 20 72 65 70 6f 72 74 20 6e 61 6d 65 64 20 27 25 73 27 3f rite.existing.report.named.'%s'?
21120 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."..............................
21140 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 ledger-report-name))............
21160 28 69 66 20 28 73 74 72 69 6e 67 2d 65 71 75 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 (if.(string-equal...............
21180 20 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 ..ledger-report-cmd.............
211a0 20 20 20 20 28 63 61 72 20 28 63 64 72 20 28 61 73 73 71 20 65 78 69 73 74 69 6e 67 2d 6e 61 6d ....(car.(cdr.(assq.existing-nam
211c0 65 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 e.ledger-reports))))............
211e0 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 4e 6f 74 68 69 6e 67 20 74 6f 20 73 61 76 65 2e 20 43 ....(message."Nothing.to.save..C
21200 75 72 72 65 6e 74 20 63 6f 6d 6d 61 6e 64 20 69 73 20 69 64 65 6e 74 69 63 61 6c 20 74 6f 20 65 urrent.command.is.identical.to.e
21220 78 69 73 74 69 6e 67 20 73 61 76 65 64 20 6f 6e 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 xisting.saved.one").............
21240 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 0a 20 20 20 20 20 20 20 20 20 20 .(setq.ledger-reports...........
21260 20 20 20 20 20 20 20 20 20 28 61 73 73 71 2d 64 65 6c 65 74 65 2d 61 6c 6c 20 65 78 69 73 74 69 .........(assq-delete-all.existi
21280 6e 67 2d 6e 61 6d 65 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 29 29 0a 20 20 20 20 20 20 20 ng-name.ledger-reports))........
212a0 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 2d 61 64 64 20 6c 65 64 67 65 72 ......(ledger-reports-add.ledger
212c0 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 29 0a -report-name.ledger-report-cmd).
212e0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 2d 63 75 73 .............(ledger-reports-cus
21300 74 6f 6d 2d 73 61 76 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 tom-save)))...........(t........
21320 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 20 28 6c 65 ....(setq.ledger-report-name.(le
21340 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 61 64 2d 6e 65 77 2d 6e 61 6d 65 29 29 0a 20 20 20 20 dger-report-read-new-name)).....
21360 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 2d 61 64 64 20 6c 65 64 67 65 .......(ledger-reports-add.ledge
21380 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 29 r-report-name.ledger-report-cmd)
213a0 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 2d 63 75 73 74 ............(ledger-reports-cust
213c0 6f 6d 2d 73 61 76 65 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f om-save)))))..(defun.ledger-repo
213e0 72 74 2d 70 72 65 76 69 6f 75 73 2d 6d 6f 6e 74 68 20 28 29 0a 20 20 22 52 65 62 75 69 6c 64 20 rt-previous-month.()..."Rebuild.
21400 72 65 70 6f 72 74 20 77 69 74 68 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 66 72 6f 6d 20 74 68 report.with.transactions.from.th
21420 65 20 70 72 65 76 69 6f 75 73 20 6d 6f 6e 74 68 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 e.previous.month."...(interactiv
21440 65 29 0a 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 63 68 61 6e 67 65 2d 6d 6f 6e 74 e)...(ledger-report--change-mont
21460 68 20 2d 31 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 65 78 h.-1))..(defun.ledger-report-nex
21480 74 2d 6d 6f 6e 74 68 20 28 29 0a 20 20 22 52 65 62 75 69 6c 64 20 72 65 70 6f 72 74 20 77 69 74 t-month.()..."Rebuild.report.wit
214a0 68 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 66 72 6f 6d 20 74 68 65 20 6e 65 78 74 20 6d 6f 6e h.transactions.from.the.next.mon
214c0 74 68 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 64 67 65 72 2d 72 th."...(interactive)...(ledger-r
214e0 65 70 6f 72 74 2d 2d 63 68 61 6e 67 65 2d 6d 6f 6e 74 68 20 31 29 29 0a 0a 28 64 65 66 75 6e 20 eport--change-month.1))..(defun.
21500 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 74 6f 67 67 6c 65 2d 64 65 66 61 75 6c 74 2d 63 6f 6d ledger-report-toggle-default-com
21520 6d 6f 64 69 74 79 20 28 29 0a 20 20 22 54 6f 67 67 6c 65 20 65 78 63 68 61 6e 67 65 20 6f 66 20 modity.()..."Toggle.exchange.of.
21540 72 65 70 6f 72 74 65 64 20 61 6d 6f 75 6e 74 73 20 74 6f 20 60 6c 65 64 67 65 72 2d 72 65 63 6f reported.amounts.to.`ledger-reco
21560 6e 63 69 6c 65 2d 64 65 66 61 75 6c 74 2d 63 6f 6d 6d 6f 64 69 74 79 27 2e 22 0a 20 20 28 69 6e ncile-default-commodity'."...(in
21580 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 64 65 72 69 76 65 64 2d 6d 6f teractive)...(unless.(derived-mo
215a0 64 65 2d 70 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6d 6f 64 65 29 0a 20 20 20 20 28 75 de-p.'ledger-report-mode).....(u
215c0 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 74 20 61 20 6c 65 64 67 65 72 20 72 65 70 6f 72 74 20 62 ser-error."Not.a.ledger.report.b
215e0 75 66 66 65 72 22 29 29 0a 20 20 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 uffer"))...(save-match-data.....
21600 28 69 66 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 (if.(string-match..........(conc
21620 61 74 20 28 72 78 20 28 6f 72 20 22 2d 2d 65 78 63 68 61 6e 67 65 22 20 22 2d 58 22 29 20 28 31 at.(rx.(or."--exchange"."-X").(1
21640 2b 20 73 70 61 63 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 67 65 +.space))..................(rege
21660 78 70 2d 71 75 6f 74 65 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 64 65 66 61 75 6c xp-quote.ledger-reconcile-defaul
21680 74 2d 63 6f 6d 6d 6f 64 69 74 79 29 29 0a 20 20 20 20 20 20 20 20 20 6c 65 64 67 65 72 2d 72 65 t-commodity))..........ledger-re
216a0 70 6f 72 74 2d 63 6d 64 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 port-cmd).........(setq.ledger-r
216c0 65 70 6f 72 74 2d 63 6d 64 20 28 72 65 70 6c 61 63 65 2d 6d 61 74 63 68 20 22 22 20 6e 69 6c 20 eport-cmd.(replace-match."".nil.
216e0 6e 69 6c 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 29 29 0a 20 20 20 20 20 20 28 73 nil.ledger-report-cmd)).......(s
21700 65 74 71 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 20 28 63 6f 6e 63 61 74 20 6c 65 etq.ledger-report-cmd.(concat.le
21720 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 dger-report-cmd.................
21740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 20 2d 2d 65 78 63 68 61 6e ......................".--exchan
21760 67 65 20 22 20 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 64 65 66 61 75 6c 74 2d 63 6f ge.".ledger-reconcile-default-co
21780 6d 6d 6f 64 69 74 79 29 29 29 29 0a 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 64 mmodity))))...(ledger-report-red
217a0 6f 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 0a 0a 3b o))..(provide.'ledger-report)..;
217c0 3b 3b 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 ;;.ledger-report.el.ends.here...
217e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21800 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 31 2e 31 34 33 35 2f 6c 65 64 67 65 72 ledger-mode-20240411.1435/ledger
21820 2d 66 6f 6e 74 69 66 79 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -fontify.el.....................
21840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21860 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
21880 30 30 30 33 37 33 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 34 34 30 00 20 30 00 00 00 0003736.00000000000.016440..0...
218a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
218c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
218e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21900 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...................
21920 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...................
21940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
219a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 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
21a20 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
21a40 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;.
21a60 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
21a80 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
21aa0 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
21ac0 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.
21ae0 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
21b00 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.
21b20 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.
21b40 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
21b60 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.
21b80 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
21ba0 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.
21bc0 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.
21be0 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.;
21c00 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
21c20 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
21c40 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
21c60 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
21c80 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
21ca0 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
21cc0 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
21ce0 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.
21d00 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
21d20 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
21d40 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
21d60 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,.;
21d80 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
21da0 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
21dc0 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
21de0 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
21e00 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
21e20 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...;;;.
21e40 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
21e60 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
21e80 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.
21ea0 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
21ec0 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
21ee0 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-
21f00 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
21f20 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...
21f40 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.
21f60 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...
21f80 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
21fa0 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
21fc0 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
21fe0 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
22000 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
22020 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.(
22040 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
22060 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)))).....
22080 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
220a0 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
220c0 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))))
220e0 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
22100 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).............
22120 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
22140 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-
22160 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
22180 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)))
221a0 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)..;;
221c0 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...
221e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22200 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 31 2e 31 34 33 35 2f 6c 65 64 67 65 72 ledger-mode-20240411.1435/ledger
22220 2d 63 6f 6e 74 65 78 74 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -context.el.....................
22240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22260 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
22280 30 30 32 33 33 37 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 34 34 32 00 20 30 00 00 00 0023370.00000000000.016442..0...
222a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
222c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
222e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22300 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...................
22320 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...................
22340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
223a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
223c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 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
22420 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".
22440 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
22460 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)
22480 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
224a0 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.
224c0 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.
224e0 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
22500 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
22520 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
22540 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.
22560 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;
22580 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
225a0 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..;;.
225c0 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
225e0 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
22600 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.
22620 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
22640 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
22660 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
22680 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.
226a0 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
226c0 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
226e0 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
22700 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
22720 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
22740 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
22760 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
22780 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....;
227a0 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
227c0 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
227e0 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
22800 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
22820 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.;;
22840 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
22860 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
22880 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
228a0 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
228c0 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."\\(
228e0 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
22900 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."[\\[(]?\\(.*?\\)[])
22920 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-
22940 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
22960 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-
22980 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-
229a0 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
229c0 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
229e0 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
22a00 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-
22a20 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-
22a40 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
22a60 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."\\(?:
22a80 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]*\\(.*?\
22aa0 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
22ac0 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
22ae0 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\\}[
22b00 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]\\)
22b20 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]
22b40 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
22b60 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."\\((.*)\\)?
22b80 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
22ba0 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
22bc0 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).
22be0 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.
22c00 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.(
22c20 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
22c40 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
22c60 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.
22c80 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
22ca0 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
22cc0 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
22ce0 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
22d00 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.(&
22d20 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.
22d40 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
22d60 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.".
22d80 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
22da0 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)
22dc0 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
22de0 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
22e00 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
22e20 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
22e40 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
22e60 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.
22e80 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)......
22ea0 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
22ec0 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.
22ee0 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)..............
22f00 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
22f20 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
22f40 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
22f60 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
22f80 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)........
22fa0 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
22fc0 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.
22fe0 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)..........................
23000 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
23020 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).............
23040 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
23060 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)))......
23080 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
230a0 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
230c0 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).....................
230e0 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
23100 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
23120 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
23140 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
23160 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)............................
23180 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
231a0 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.
231c0 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
231e0 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)............
23200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 ...........................(ledg
23220 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
23240 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
23260 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).
23280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
232a0 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
232c0 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
232e0 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
23300 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)..............................
23320 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
23340 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
23360 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
23380 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)............................
233a0 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
233c0 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.
233e0 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)..
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 20 20 20 20 20 ................................
23420 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.
23440 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
23460 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).....................
23480 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
234a0 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
234c0 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).................
234e0 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
23500 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
23520 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).....................
23540 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
23560 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
23580 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
235a0 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)..............................
235c0 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
235e0 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
23600 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)...............
23620 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-
23640 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
23660 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).............
23680 20 20 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
236a0 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
236c0 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)....................
236e0 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
23700 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))))
23720 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
23740 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
23760 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.
23780 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.
237a0 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
237c0 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
237e0 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
23800 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
23820 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
23840 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
23860 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
23880 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.
238a0 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
238c0 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
238e0 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)...
23900 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
23920 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
23940 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
23960 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.............
23980 20 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..
239a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
239c0 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)........
239e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
23a00 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
23a20 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))........................
23a40 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
23a60 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)))))))).............
23a80 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)..............
23aa0 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).................
23ac0 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))...........
23ae0 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)))
23b00 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.
23b20 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
23b40 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.
23b60 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,.
23b80 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
23ba0 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
23bc0 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.
23be0 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.(
23c00 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
23c20 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
23c40 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-
23c60 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-+(.
23c80 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
23ca0 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))..........
23cc0 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
23ce0 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-+\\)?[[
23d00 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
23d20 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))...
23d40 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
23d60 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\\
23d80 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-+")
23da0 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
23dc0 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)..........
23de0 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
23e00 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
23e20 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
23e40 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
23e60 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.
23e80 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
23ea0 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
23ec0 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
23ee0 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
23f00 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
23f20 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
23f40 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)......
23f60 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))
23f80 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).
23fa0 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))............
23fc0 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))......
23fe0 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.'(?\.
24000 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
24020 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
24040 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
24060 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
24080 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
240a0 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
240c0 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-
240e0 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
24100 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)).............
24120 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.?\~).......
24140 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))
24160 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
24180 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-
241a0 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
241c0 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.?\;)...............
241e0 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))............
24200 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).......
24220 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)
24240 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
24260 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
24280 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))...............
242a0 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)..........
242c0 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.
242e0 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.
24300 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)................'(
24320 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)).....
24340 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)
24360 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
24380 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))...............(
243a0 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)...........
243c0 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))....
243e0 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
24400 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
24420 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
24440 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
24460 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))............
24480 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).......
244a0 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)
244c0 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..............
244e0 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
24500 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
24520 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
24540 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
24560 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.
24580 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
245a0 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
245c0 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
245e0 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
24600 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
24620 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
24640 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
24660 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
24680 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.
246a0 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
246c0 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
246e0 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
24700 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
24720 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.
24740 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))
24760 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
24780 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
247a0 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-
247c0 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
247e0 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
24800 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
24820 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
24840 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)
24860 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-
24880 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
248a0 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
248c0 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))
248e0 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
24900 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-
24920 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
24940 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
24960 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-
24980 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
249a0 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
249c0 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
249e0 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
24a00 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
24a20 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-
24a40 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-
24a60 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
24a80 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
24aa0 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
24ac0 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
24ae0 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.........
24b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24c00 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 31 2e 31 34 33 35 2f 6c 65 64 67 65 72 ledger-mode-20240411.1435/ledger
24c20 2d 74 65 73 74 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -test.el........................
24c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24c60 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
24c80 30 30 31 31 34 36 35 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 37 33 37 00 20 30 00 00 00 0011465.00000000000.015737..0...
24ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
24d00 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...................
24d20 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...................
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 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
24e20 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
24e40 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
24e60 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
24e80 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
24ea0 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.
24ec0 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
24ee0 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
24f00 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.;;.
24f20 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
24f40 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.
24f60 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
24f80 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
24fa0 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
24fc0 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
24fe0 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
25000 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
25020 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
25040 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
25060 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
25080 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
250a0 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.
250c0 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
250e0 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.
25100 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.
25120 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
25140 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
25160 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
25180 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
251a0 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
251c0 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
251e0 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
25200 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
25220 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
25240 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
25260 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
25280 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-
252a0 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
252c0 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.
252e0 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...:
25300 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.
25320 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
25340 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.
25360 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
25380 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
253a0 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)..;;;;;;;;;;;;;;;
253c0 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 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
253e0 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 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.
25400 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.()...
25420 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
25440 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.
25460 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).....
25480 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
254a0 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-
254c0 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)..
254e0 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)).......
25500 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:"
25520 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
25540 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
25560 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
25580 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
255a0 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
255c0 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-+\\([^-]+\\
255e0 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
25600 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
25620 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-
25640 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).
25660 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
25680 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
256a0 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
256c0 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)
256e0 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).....
25700 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
25720 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
25740 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
25760 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).(
25780 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
257a0 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))
257c0 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.().
257e0 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
25800 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")))....
25820 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."\\`\\([^-]
25840 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
25860 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)).........
25880 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-
258a0 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
258c0 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).........
258e0 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)).......
25900 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."#
25920 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).....
25940 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)
25960 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)..
25980 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))).
259a0 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
259c0 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
259e0 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
25a00 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."").............
25a20 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
25a40 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))))))..
25a60 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))
25a80 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
25aa0 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)..........
25ac0 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))....
25ae0 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).......
25b00 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)))......
25b20 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
25b40 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.
25b60 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.
25b80 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."")......................
25ba0 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
25bc0 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))))))).........(
25be0 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..........
25c00 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
25c20 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").......................
25c40 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
25c60 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"...........................
25c80 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
25ca0 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
25cc0 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...........
25ce0 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
25d00 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")........
25d20 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...
25d40 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")...........(
25d60 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"))....
25d80 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")....
25da0 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
25dc0 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
25de0 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
25e00 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
25e20 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
25e40 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
25e60 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.\\(.+?\\)\\(.->.*\\)
25e80 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.
25ea0 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
25ec0 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
25ee0 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-
25f00 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".............
25f20 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.(
25f40 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
25f60 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.
25f80 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".................
25fa0 20 20 20 20 20 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
25fc0 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)).....
25fe0 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
26000 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).
26020 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
26040 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.
26060 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)........
26080 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..............
260a0 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."\
260c0 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))........
260e0 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)))))))..
26100 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
26120 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............
26140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
261a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
261c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
261e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26200 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 31 2e 31 34 33 35 2f 6c 65 64 67 65 72 ledger-mode-20240411.1435/ledger
26220 2d 63 6f 6d 70 6c 65 74 65 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -complete.el....................
26240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26260 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
26280 30 30 33 37 33 31 35 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 35 37 32 00 20 30 00 00 00 0037315.00000000000.016572..0...
262a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
262c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
262e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26300 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...................
26320 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...................
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 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
26420 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"
26440 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-
26460 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
26480 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.
264a0 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
264c0 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
264e0 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
26500 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
26520 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
26540 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
26560 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
26580 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.
265a0 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..;;
265c0 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
265e0 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.
26600 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
26620 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
26640 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.
26660 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
26680 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
266a0 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.
266c0 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.
266e0 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.
26700 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
26720 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
26740 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
26760 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,.
26780 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...;
267a0 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
267c0 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
267e0 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-
26800 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)
26820 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
26840 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
26860 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
26880 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
268a0 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...
268c0 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
268e0 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.
26900 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
26920 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
26940 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
26960 72 72 65 6e 74 20 66 69 6c 65 2e 0a 53 65 65 20 6c 65 64 67 65 72 27 73 0a 5c 22 61 63 63 6f 75 rrent.file..See.ledger's.\"accou
26980 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
269a0 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
269c0 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)..........
269e0 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..
26a00 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
26a20 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...
26a40 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
26a60 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
26a80 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
26aa0 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
26ac0 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
26ae0 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
26b00 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
26b20 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.
26b40 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)................
26b60 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
26b80 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
26ba0 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
26bc0 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
26be0 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
26c00 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
26c20 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.`
26c40 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'.
26c60 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."
26c80 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
26ca0 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)...............
26cc0 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...
26ce0 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..
26d00 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
26d20 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
26d40 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
26d60 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.
26d80 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
26da0 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."..
26dc0 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
26de0 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
26e00 65 20 2e 20 22 34 2e 30 2e 30 22 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 70 61 72 e..."4.0.0"))..(defun.ledger-par
26e20 73 65 2d 61 72 67 75 6d 65 6e 74 73 20 28 29 0a 20 20 22 50 61 72 73 65 20 77 68 69 74 65 73 70 se-arguments.()..."Parse.whitesp
26e40 61 63 65 20 73 65 70 61 72 61 74 65 64 20 61 72 67 75 6d 65 6e 74 73 20 69 6e 20 74 68 65 20 63 ace.separated.arguments.in.the.c
26e60 75 72 72 65 6e 74 20 72 65 67 69 6f 6e 2e 22 0a 20 20 3b 3b 20 46 49 58 4d 45 3a 20 57 65 20 64 urrent.region."...;;.FIXME:.We.d
26e80 6f 6e 27 74 20 75 73 65 20 70 63 6f 6d 70 6c 65 74 65 20 61 6e 79 6d 6f 72 65 2e 0a 20 20 3b 3b on't.use.pcomplete.anymore....;;
26ea0 20 54 68 69 73 20 69 73 20 6d 6f 72 65 20 63 6f 6d 70 6c 65 78 20 74 68 61 6e 20 69 74 20 61 70 .This.is.more.complex.than.it.ap
26ec0 70 65 61 72 73 0a 20 20 3b 3b 20 74 6f 20 6e 65 65 64 2c 20 73 6f 20 74 68 61 74 20 69 74 20 63 pears...;;.to.need,.so.that.it.c
26ee0 61 6e 20 77 6f 72 6b 20 77 69 74 68 20 70 63 6f 6d 70 6c 65 74 65 2e 20 20 53 65 65 0a 20 20 3b an.work.with.pcomplete...See...;
26f00 3b 20 70 63 6f 6d 70 6c 65 74 65 2d 70 61 72 73 65 2d 61 72 67 75 6d 65 6e 74 73 2d 66 75 6e 63 ;.pcomplete-parse-arguments-func
26f20 74 69 6f 6e 20 66 6f 72 20 64 65 74 61 69 6c 73 0a 20 20 28 6c 65 74 2a 20 28 28 62 65 67 69 6e tion.for.details...(let*.((begin
26f40 20 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(save-match-data...............
26f60 20 20 20 20 28 69 66 20 28 6c 6f 6f 6b 69 6e 67 2d 62 61 63 6b 20 28 63 6f 6e 63 61 74 20 22 5e ....(if.(looking-back.(concat."^
26f80 5c 5c 28 22 20 6c 65 64 67 65 72 2d 69 73 6f 2d 64 61 74 65 2d 72 65 67 65 78 70 20 22 3d 5c 5c \\(".ledger-iso-date-regexp."=\\
26fa0 7c 5c 5c 29 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 |\\)"...........................
26fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 64 67 65 72 2d 69 6e 63 6f 6d 70 6c ..................ledger-incompl
26fe0 65 74 65 2d 64 61 74 65 2d 72 65 67 65 78 70 29 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 20 20 ete-date-regexp).nil)...........
27000 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 74 63 68 2d 65 6e 64 20 31 29 0a 20 20 20 20 20 20 ............(match-end.1).......
27020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 ..............(save-excursion...
27040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 74 68 69 6e ....................(ledger-thin
27060 67 2d 61 74 2d 70 6f 69 6e 74 29 20 3b 3b 20 6c 65 61 76 65 20 70 6f 69 6e 74 20 61 74 20 62 65 g-at-point).;;.leave.point.at.be
27080 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 69 6e 67 20 75 6e 64 65 72 20 70 6f 69 6e 74 0a 20 20 20 ginning.of.thing.under.point....
270a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 29 29 29 29 0a 20 ...................(point)))))..
270c0 20 20 20 20 20 20 20 20 28 65 6e 64 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 62 ........(end.(point))..........b
270e0 65 67 69 6e 73 20 61 72 67 73 29 0a 20 20 20 20 3b 3b 20 74 6f 20 73 75 70 70 6f 72 74 20 65 6e egins.args).....;;.to.support.en
27100 64 20 6f 66 20 6c 69 6e 65 20 6d 65 74 61 64 61 74 61 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 d.of.line.metadata.....(save-exc
27120 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 73 65 61 72 63 68 2d 62 61 63 6b 77 ursion.......(when.(search-backw
27140 61 72 64 20 22 3b 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ard.";".........................
27160 20 20 20 20 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 20 74 .....(line-beginning-position).t
27180 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 62 65 67 69 6e 20 28 6d 61 74 63 68 2d 62 65 67 ).........(setq.begin.(match-beg
271a0 69 6e 6e 69 6e 67 20 30 29 29 29 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e inning.0)))).....(save-excursion
271c0 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 62 65 67 69 6e 29 0a 20 20 20 20 20 20 28 .......(goto-char.begin).......(
271e0 77 68 65 6e 20 28 3c 20 28 70 6f 69 6e 74 29 20 65 6e 64 29 0a 20 20 20 20 20 20 20 20 28 73 6b when.(<.(point).end).........(sk
27200 69 70 2d 63 68 61 72 73 2d 66 6f 72 77 61 72 64 20 22 20 5c 74 5c 6e 22 29 0a 20 20 20 20 20 20 ip-chars-forward.".\t\n").......
27220 20 20 28 73 65 74 71 20 62 65 67 69 6e 73 20 28 63 6f 6e 73 20 28 70 6f 69 6e 74 29 20 62 65 67 ..(setq.begins.(cons.(point).beg
27240 69 6e 73 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 61 72 67 73 20 28 63 6f 6e 73 20 28 ins)).........(setq.args.(cons.(
27260 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 0a 20 buffer-substring-no-properties..
27280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 62 65 .........................(car.be
272a0 67 69 6e 73 29 20 65 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 gins).end)......................
272c0 20 20 20 20 61 72 67 73 29 29 29 0a 20 20 20 20 20 20 28 63 6f 6e 73 20 28 72 65 76 65 72 73 65 ....args))).......(cons.(reverse
272e0 20 61 72 67 73 29 20 28 72 65 76 65 72 73 65 20 62 65 67 69 6e 73 29 29 29 29 29 0a 0a 0a 28 64 .args).(reverse.begins)))))...(d
27300 65 66 75 6e 20 6c 65 64 67 65 72 2d 70 61 79 65 65 73 2d 69 6e 2d 62 75 66 66 65 72 20 28 29 0a efun.ledger-payees-in-buffer.().
27320 20 20 22 53 63 61 6e 20 62 75 66 66 65 72 20 61 6e 64 20 72 65 74 75 72 6e 20 6c 69 73 74 20 6f .."Scan.buffer.and.return.list.o
27340 66 20 61 6c 6c 20 70 61 79 65 65 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 6f 72 69 67 69 6e 20 28 f.all.payees."...(let.((origin.(
27360 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 70 61 79 65 65 73 2d 6c 69 73 74 29 0a 20 20 20 point)).........payees-list)....
27380 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
273a0 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 2d r.(point-min)).......(while.(re-
273c0 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 6c 65 64 67 65 72 2d 70 61 79 65 65 2d 6e 61 6d 65 search-forward.ledger-payee-name
273e0 2d 6f 72 2d 64 69 72 65 63 74 69 76 65 2d 72 65 67 65 78 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 -or-directive-regex.nil.t)......
27400 20 20 20 28 75 6e 6c 65 73 73 20 28 61 6e 64 20 28 3e 3d 20 6f 72 69 67 69 6e 20 28 6d 61 74 63 ...(unless.(and.(>=.origin.(matc
27420 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 h-beginning.0)).................
27440 20 20 20 20 20 28 3c 20 6f 72 69 67 69 6e 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 29 0a 20 .....(<.origin.(match-end.0)))..
27460 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6f 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 .........(push.(or.(match-string
27480 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 31 29 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 2d -no-properties.1).(match-string-
274a0 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 no-properties.2))...............
274c0 20 20 70 61 79 65 65 73 2d 6c 69 73 74 29 29 29 29 0a 20 20 20 20 3b 3b 20 74 6f 20 74 68 65 20 ..payees-list)))).....;;.to.the.
274e0 6c 69 73 74 0a 20 20 20 20 28 73 6f 72 74 20 28 64 65 6c 65 74 65 2d 64 75 70 73 20 70 61 79 65 list.....(sort.(delete-dups.paye
27500 65 73 2d 6c 69 73 74 29 20 23 27 73 74 72 69 6e 67 2d 6c 65 73 73 70 29 29 29 0a 0a 28 64 65 66 es-list).#'string-lessp)))..(def
27520 75 6e 20 6c 65 64 67 65 72 2d 70 61 79 65 65 73 2d 6c 69 73 74 20 28 29 0a 20 20 22 52 65 74 75 un.ledger-payees-list.()..."Retu
27540 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20 6b 6e 6f 77 6e 20 61 63 63 6f 75 6e 74 20 6e rn.a.list.of.all.known.account.n
27560 61 6d 65 73 20 61 73 20 73 74 72 69 6e 67 73 2e 0a 4c 6f 6f 6b 73 20 69 6e 20 60 6c 65 64 67 65 ames.as.strings..Looks.in.`ledge
27580 72 2d 70 61 79 65 65 73 2d 66 69 6c 65 27 20 69 66 20 73 65 74 2c 20 6f 74 68 65 72 77 69 73 65 r-payees-file'.if.set,.otherwise
275a0 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 66 20 6c 65 64 67 .the.current.buffer."...(if.ledg
275c0 65 72 2d 70 61 79 65 65 73 2d 66 69 6c 65 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 20 6c 65 er-payees-file.......(let.((f.le
275e0 64 67 65 72 2d 70 61 79 65 65 73 2d 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 dger-payees-file)).........(with
27600 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 2d 66 -temp-buffer...........(insert-f
27620 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 20 66 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 ile-contents.f)...........(ledge
27640 72 2d 70 61 79 65 65 73 2d 69 6e 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 28 6c 65 64 67 65 r-payees-in-buffer))).....(ledge
27660 72 2d 70 61 79 65 65 73 2d 69 6e 2d 62 75 66 66 65 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 r-payees-in-buffer)))..(defun.le
27680 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 69 6e 2d 62 75 66 66 65 72 20 28 29 0a 20 20 22 52 65 dger-accounts-in-buffer.()..."Re
276a0 74 75 72 6e 20 61 6e 20 61 6c 69 73 74 20 6f 66 20 61 63 63 6f 75 6e 74 73 20 69 6e 20 74 68 65 turn.an.alist.of.accounts.in.the
276c0 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 0a 54 68 65 20 60 63 61 72 27 20 6f 66 20 65 61 .current.buffer..The.`car'.of.ea
276e0 63 68 20 65 6c 65 6d 65 6e 74 20 69 73 20 74 68 65 20 61 63 63 6f 75 6e 74 20 6e 61 6d 65 20 61 ch.element.is.the.account.name.a
27700 6e 64 20 74 68 65 20 60 63 64 72 27 20 69 73 20 61 6e 0a 61 6c 69 73 74 20 77 68 65 72 65 20 74 nd.the.`cdr'.is.an.alist.where.t
27720 68 65 20 6b 65 79 20 69 73 20 61 20 73 75 62 64 69 72 65 63 74 69 76 65 20 73 75 63 68 20 61 73 he.key.is.a.subdirective.such.as
27740 20 5c 22 61 73 73 65 72 74 5c 22 20 61 6e 64 20 74 68 65 0a 76 61 6c 75 65 20 28 69 66 20 61 6e .\"assert\".and.the.value.(if.an
27760 79 29 20 69 73 20 74 68 65 20 61 73 73 6f 63 69 61 74 65 64 20 64 61 74 61 2e 20 20 49 6e 20 6f y).is.the.associated.data...In.o
27780 74 68 65 72 20 77 6f 72 64 73 2c 20 69 66 20 79 6f 75 27 76 65 0a 64 65 63 6c 61 72 65 64 20 61 ther.words,.if.you've.declared.a
277a0 6e 20 61 63 63 6f 75 6e 74 20 6c 69 6b 65 20 73 6f 3a 0a 0a 61 63 63 6f 75 6e 74 20 41 73 73 65 n.account.like.so:..account.Asse
277c0 74 73 3a 43 68 65 63 6b 69 6e 67 0a 20 20 20 20 61 73 73 65 72 74 20 63 6f 6d 6d 6f 64 69 74 79 ts:Checking.....assert.commodity
277e0 20 3d 3d 20 5c 22 24 5c 22 0a 20 20 20 20 64 65 66 61 75 6c 74 0a 0a 54 68 65 6e 20 6f 6e 65 20 .==.\"$\".....default..Then.one.
27800 6f 66 20 74 68 65 20 65 6c 65 6d 65 6e 74 73 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 of.the.elements.this.function.re
27820 74 75 72 6e 73 20 77 69 6c 6c 20 62 65 0a 5c 28 5c 22 41 73 73 65 74 73 3a 43 68 65 63 6b 69 6e turns.will.be.\(\"Assets:Checkin
27840 67 5c 22 0a 20 20 28 5c 22 64 65 66 61 75 6c 74 5c 22 29 0a 20 20 28 5c 22 61 73 73 65 72 74 5c g\"...(\"default\")...(\"assert\
27860 22 20 2e 20 5c 22 63 6f 6d 6d 6f 64 69 74 79 20 3d 3d 20 5c 22 24 5c 22 5c 22 29 29 22 0a 20 20 "...\"commodity.==.\"$\"\"))"...
27880 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.(
278a0 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 28 6c 65 74 20 28 61 63 63 6f 75 6e 74 2d 6c 69 point-min)).....(let.(account-li
278c0 73 74 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 65 6e 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 st...........(seen.(make-hash-ta
278e0 62 6c 65 20 3a 74 65 73 74 20 23 27 65 71 75 61 6c 20 3a 73 69 7a 65 20 31 29 29 29 0a 20 20 20 ble.:test.#'equal.:size.1)))....
27900 20 20 20 3b 3b 20 46 69 72 73 74 2c 20 63 6f 6e 73 69 64 65 72 20 61 63 63 6f 75 6e 74 73 20 64 ...;;.First,.consider.accounts.d
27920 65 63 6c 61 72 65 64 20 77 69 74 68 20 22 61 63 63 6f 75 6e 74 22 20 64 69 72 65 63 74 69 76 65 eclared.with."account".directive
27940 73 2c 20 77 68 69 63 68 20 6d 61 79 20 6f 72 0a 20 20 20 20 20 20 3b 3b 20 6d 61 79 20 6e 6f 74 s,.which.may.or.......;;.may.not
27960 20 68 61 76 65 20 61 73 73 6f 63 69 61 74 65 64 20 64 61 74 61 2e 20 54 68 65 20 64 61 74 61 20 .have.associated.data..The.data.
27980 69 73 20 6f 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 6c 69 6e 65 73 20 75 70 20 74 6f 20 is.on.the.following.lines.up.to.
279a0 61 0a 20 20 20 20 20 20 3b 3b 20 6c 69 6e 65 20 6e 6f 74 20 73 74 61 72 74 69 6e 67 20 77 69 74 a.......;;.line.not.starting.wit
279c0 68 20 77 68 69 74 65 73 70 61 63 65 2e 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 2d 73 h.whitespace........(while.(re-s
279e0 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 2d 64 69 72 earch-forward.ledger-account-dir
27a00 65 63 74 69 76 65 2d 72 65 67 65 78 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 ective-regex.nil.t).........(let
27a20 20 28 28 61 63 63 6f 75 6e 74 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 .((account.(match-string-no-prop
27a40 65 72 74 69 65 73 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 73 20 erties.1))...............(lines.
27a60 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 0a (buffer-substring-no-properties.
27a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 0a 20 20 ......................(point)...
27aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 20 28 6c 65 64 67 ....................(progn.(ledg
27ac0 65 72 2d 6e 61 76 69 67 61 74 65 2d 6e 65 78 74 2d 78 61 63 74 2d 6f 72 2d 64 69 72 65 63 74 69 er-navigate-next-xact-or-directi
27ae0 76 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ve).............................
27b00 20 28 70 6f 69 6e 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 61 74 61 29 0a .(point))))...............data).
27b20 20 20 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 64 20 28 73 70 6c 69 74 2d 73 74 72 69 ..........(dolist.(d.(split-stri
27b40 6e 67 20 6c 69 6e 65 73 20 22 5c 6e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 ng.lines."\n")).............(set
27b60 71 20 64 20 28 73 74 72 69 6e 67 2d 74 72 69 6d 20 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 q.d.(string-trim.d))............
27b80 20 28 75 6e 6c 65 73 73 20 28 73 74 72 69 6e 67 3d 20 64 20 22 22 29 0a 20 20 20 20 20 20 20 20 .(unless.(string=.d."").........
27ba0 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 20 22 20 64 29 0a 20 ......(if.(string-match.".".d)..
27bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 28 73 75 .................(push.(cons.(su
27be0 62 73 74 72 69 6e 67 20 64 20 30 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 bstring.d.0.(match-beginning.0))
27c00 0a 20 20 20 20 20 20 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 ...............................(
27c20 73 75 62 73 74 72 69 6e 67 20 64 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 20 6e 69 6c 29 29 0a substring.d.(match-end.0).nil)).
27c40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 61 74 61 29 0a 20 20 ........................data)...
27c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 64 20 6e 69 6c 29 ..............(push.(cons.d.nil)
27c80 20 64 61 74 61 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 .data))))...........(push.(cons.
27ca0 61 63 63 6f 75 6e 74 20 64 61 74 61 29 20 61 63 63 6f 75 6e 74 2d 6c 69 73 74 29 0a 20 20 20 20 account.data).account-list).....
27cc0 20 20 20 20 20 20 28 70 75 74 68 61 73 68 20 61 63 63 6f 75 6e 74 20 74 20 73 65 65 6e 29 29 29 ......(puthash.account.t.seen)))
27ce0 0a 20 20 20 20 20 20 3b 3b 20 4e 65 78 74 2c 20 67 61 74 68 65 72 20 61 6c 6c 20 61 63 63 6f 75 .......;;.Next,.gather.all.accou
27d00 6e 74 73 20 64 65 63 6c 61 72 65 64 20 69 6e 20 70 6f 73 74 69 6e 67 73 0a 20 20 20 20 20 20 28 nts.declared.in.postings.......(
27d20 75 6e 6c 65 73 73 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 46 49 58 4d 45 3a 20 50 65 6f 70 6c unless...........;;.FIXME:.Peopl
27d40 65 20 77 68 6f 20 68 61 76 65 20 73 65 74 20 60 6c 65 64 67 65 72 2d 66 6c 79 6d 61 6b 65 2d 62 e.who.have.set.`ledger-flymake-b
27d60 65 2d 70 65 64 61 6e 74 69 63 27 20 74 6f 20 6e 6f 6e 2d 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 e-pedantic'.to.non-nil..........
27d80 20 3b 3b 20 70 72 6f 62 61 62 6c 79 20 64 6f 6e 27 74 20 77 61 6e 74 20 61 63 63 6f 75 6e 74 73 .;;.probably.don't.want.accounts
27da0 20 66 72 6f 6d 20 70 6f 73 74 69 6e 67 73 2c 20 6a 75 73 74 20 74 68 6f 73 65 20 64 65 63 6c 61 .from.postings,.just.those.decla
27dc0 72 65 64 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 77 69 74 68 20 64 69 72 65 63 74 69 76 65 73 red...........;;.with.directives
27de0 2e 20 20 42 75 74 20 74 68 65 20 6e 61 6d 65 20 69 73 20 61 20 6c 69 74 74 6c 65 20 6d 69 73 6c ...But.the.name.is.a.little.misl
27e00 65 61 64 69 6e 67 2e 20 20 53 68 6f 75 6c 64 20 77 65 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 eading...Should.we...........;;.
27e20 6d 61 6b 65 20 61 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 62 65 2d 70 65 64 61 6e 74 69 63 20 61 make.a.ledger-mode-be-pedantic.a
27e40 6e 64 20 75 73 65 20 74 68 61 74 20 69 6e 73 74 65 61 64 3f 0a 20 20 20 20 20 20 20 20 20 20 28 nd.use.that.instead?...........(
27e60 62 6f 75 6e 64 2d 61 6e 64 2d 74 72 75 65 2d 70 20 6c 65 64 67 65 72 2d 66 6c 79 6d 61 6b 65 2d bound-and-true-p.ledger-flymake-
27e80 62 65 2d 70 65 64 61 6e 74 69 63 29 0a 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 78 61 63 be-pedantic).........(ledger-xac
27ea0 74 2d 69 74 65 72 61 74 65 2d 74 72 61 6e 73 61 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 t-iterate-transactions..........
27ec0 28 6c 61 6d 62 64 61 20 28 5f 70 6f 73 20 5f 64 61 74 65 20 5f 73 74 61 74 65 20 5f 70 61 79 65 (lambda.(_pos._date._state._paye
27ee0 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 65 6e 64 20 28 73 61 76 65 2d 65 e)............(let.((end.(save-e
27f00 78 63 75 72 73 69 6f 6e 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 65 6e 64 2d 6f 66 xcursion.(ledger-navigate-end-of
27f20 2d 78 61 63 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d -xact))))..............(forward-
27f40 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 2d 73 65 line)..............(while.(re-se
27f60 61 72 63 68 2d 66 6f 72 77 61 72 64 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 2d 61 6e 79 2d arch-forward.ledger-account-any-
27f80 73 74 61 74 75 73 2d 72 65 67 65 78 20 65 6e 64 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 status-regex.end.t).............
27fa0 20 20 20 28 6c 65 74 20 28 28 61 63 63 6f 75 6e 74 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 2d ...(let.((account.(match-string-
27fc0 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 no-properties.1)))..............
27fe0 20 20 20 20 28 75 6e 6c 65 73 73 20 28 67 65 74 68 61 73 68 20 61 63 63 6f 75 6e 74 20 73 65 65 ....(unless.(gethash.account.see
28000 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 74 68 61 73 68 20 61 n)....................(puthash.a
28020 63 63 6f 75 6e 74 20 74 20 73 65 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ccount.t.seen)..................
28040 20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 61 63 63 6f 75 6e 74 20 6e 69 6c 29 20 61 63 63 6f 75 ..(push.(cons.account.nil).accou
28060 6e 74 2d 6c 69 73 74 29 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 28 73 6f 72 74 20 61 63 63 6f nt-list)))))))).......(sort.acco
28080 75 6e 74 2d 6c 69 73 74 20 28 6c 61 6d 62 64 61 20 28 61 20 62 29 20 28 73 74 72 69 6e 67 2d 6c unt-list.(lambda.(a.b).(string-l
280a0 65 73 73 70 20 28 63 61 72 20 61 29 20 28 63 61 72 20 62 29 29 29 29 29 29 29 0a 0a 28 64 65 66 essp.(car.a).(car.b)))))))..(def
280c0 75 6e 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 6c 69 73 74 2d 69 6e 2d 62 75 66 66 65 un.ledger-accounts-list-in-buffe
280e0 72 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20 6b 6e 6f r.()..."Return.a.list.of.all.kno
28100 77 6e 20 61 63 63 6f 75 6e 74 20 6e 61 6d 65 73 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 wn.account.names.in.the.current.
28120 62 75 66 66 65 72 20 61 73 20 73 74 72 69 6e 67 73 2e 0a 43 6f 6e 73 69 64 65 72 73 20 62 6f 74 buffer.as.strings..Considers.bot
28140 68 20 61 63 63 6f 75 6e 74 73 20 6c 69 73 74 65 64 20 69 6e 20 70 6f 73 74 69 6e 67 73 20 61 6e h.accounts.listed.in.postings.an
28160 64 20 74 68 6f 73 65 20 64 65 63 6c 61 72 65 64 0a 77 69 74 68 20 5c 22 61 63 63 6f 75 6e 74 5c d.those.declared.with.\"account\
28180 22 20 64 69 72 65 63 74 69 76 65 73 2e 22 0a 20 20 28 6c 65 74 20 28 28 61 63 63 6f 75 6e 74 73 ".directives."...(let.((accounts
281a0 20 28 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 69 6e 2d 62 75 66 66 65 72 29 29 29 0a 20 .(ledger-accounts-in-buffer)))..
281c0 20 20 20 28 77 68 65 6e 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 65 78 63 6c 75 64 65 ...(when.ledger-accounts-exclude
281e0 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 28 73 65 74 71 20 61 63 63 6f 75 6e 74 73 20 28 -function.......(setq.accounts.(
28200 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 65 78 63 cl-remove-if.ledger-accounts-exc
28220 6c 75 64 65 2d 66 75 6e 63 74 69 6f 6e 20 61 63 63 6f 75 6e 74 73 29 29 29 0a 20 20 20 20 28 6d lude-function.accounts))).....(m
28240 61 70 63 61 72 20 23 27 63 61 72 20 61 63 63 6f 75 6e 74 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 apcar.#'car.accounts)))..(defun.
28260 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 6c 69 73 74 20 28 29 0a 20 20 22 52 65 74 75 72 ledger-accounts-list.()..."Retur
28280 6e 20 61 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20 6b 6e 6f 77 6e 20 61 63 63 6f 75 6e 74 20 6e 61 n.a.list.of.all.known.account.na
282a0 6d 65 73 20 61 73 20 73 74 72 69 6e 67 73 2e 0a 4c 6f 6f 6b 73 20 69 6e 20 60 6c 65 64 67 65 72 mes.as.strings..Looks.in.`ledger
282c0 2d 61 63 63 6f 75 6e 74 73 2d 66 69 6c 65 27 20 69 66 20 73 65 74 2c 20 6f 74 68 65 72 77 69 73 -accounts-file'.if.set,.otherwis
282e0 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 66 20 6c 65 64 e.the.current.buffer."...(if.led
28300 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 66 69 6c 65 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 ger-accounts-file.......(let.((f
28320 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 .ledger-accounts-file)).........
28340 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 (with-temp-buffer...........(ins
28360 65 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 20 66 29 0a 20 20 20 20 20 20 20 20 20 20 28 ert-file-contents.f)...........(
28380 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 6c 69 73 74 2d 69 6e 2d 62 75 66 66 65 72 29 29 ledger-accounts-list-in-buffer))
283a0 29 0a 20 20 20 20 28 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 6c 69 73 74 2d 69 6e 2d 62 ).....(ledger-accounts-list-in-b
283c0 75 66 66 65 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 66 69 6e 64 2d 61 63 63 uffer)))..(defun.ledger-find-acc
283e0 6f 75 6e 74 73 2d 69 6e 2d 62 75 66 66 65 72 20 28 29 0a 20 20 28 6c 65 74 20 28 28 61 63 63 6f ounts-in-buffer.()...(let.((acco
28400 75 6e 74 2d 74 72 65 65 20 28 6c 69 73 74 20 74 29 29 0a 20 20 20 20 20 20 20 20 28 61 63 63 6f unt-tree.(list.t)).........(acco
28420 75 6e 74 2d 65 6c 65 6d 65 6e 74 73 20 6e 69 6c 29 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 unt-elements.nil)).....(save-exc
28440 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d ursion.......(goto-char.(point-m
28460 69 6e 29 29 0a 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 61 63 63 6f 75 6e 74 20 28 6c 65 in))........(dolist.(account.(le
28480 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 28 6c 65 dger-accounts-list)).........(le
284a0 74 20 28 28 72 6f 6f 74 20 61 63 63 6f 75 6e 74 2d 74 72 65 65 29 29 0a 20 20 20 20 20 20 20 20 t.((root.account-tree)).........
284c0 20 20 28 73 65 74 71 20 61 63 63 6f 75 6e 74 2d 65 6c 65 6d 65 6e 74 73 0a 20 20 20 20 20 20 20 ..(setq.account-elements........
284e0 20 20 20 20 20 20 20 20 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 .........(split-string..........
28500 20 20 20 20 20 20 20 20 61 63 63 6f 75 6e 74 20 22 3a 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 ........account.":"))...........
28520 28 77 68 69 6c 65 20 61 63 63 6f 75 6e 74 2d 65 6c 65 6d 65 6e 74 73 0a 20 20 20 20 20 20 20 20 (while.account-elements.........
28540 20 20 20 20 28 6c 65 74 20 28 28 78 61 63 74 20 28 61 73 73 6f 63 20 28 63 61 72 20 61 63 63 6f ....(let.((xact.(assoc.(car.acco
28560 75 6e 74 2d 65 6c 65 6d 65 6e 74 73 29 20 72 6f 6f 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 unt-elements).root)))...........
28580 20 20 20 20 28 69 66 20 78 61 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ....(if.xact...................(
285a0 73 65 74 71 20 72 6f 6f 74 20 28 63 64 72 20 78 61 63 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 setq.root.(cdr.xact))...........
285c0 20 20 20 20 20 20 28 73 65 74 71 20 78 61 63 74 20 28 63 6f 6e 73 20 28 63 61 72 20 61 63 63 6f ......(setq.xact.(cons.(car.acco
285e0 75 6e 74 2d 65 6c 65 6d 65 6e 74 73 29 20 28 6c 69 73 74 20 74 29 29 29 0a 20 20 20 20 20 20 20 unt-elements).(list.t)))........
28600 20 20 20 20 20 20 20 20 20 28 6e 63 6f 6e 63 20 72 6f 6f 74 20 28 6c 69 73 74 20 78 61 63 74 29 .........(nconc.root.(list.xact)
28620 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 6f 6f 74 20 28 63 64 ).................(setq.root.(cd
28640 72 20 78 61 63 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 61 63 63 r.xact)))).............(setq.acc
28660 6f 75 6e 74 2d 65 6c 65 6d 65 6e 74 73 20 28 63 64 72 20 61 63 63 6f 75 6e 74 2d 65 6c 65 6d 65 ount-elements.(cdr.account-eleme
28680 6e 74 73 29 29 29 29 29 29 0a 20 20 20 20 61 63 63 6f 75 6e 74 2d 74 72 65 65 29 29 0a 0a 28 64 nts)))))).....account-tree))..(d
286a0 65 66 75 6e 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 74 72 65 65 20 28 29 0a 20 20 22 efun.ledger-accounts-tree.()..."
286c0 52 65 74 75 72 6e 20 61 20 74 72 65 65 20 6f 66 20 61 6c 6c 20 61 63 63 6f 75 6e 74 73 20 69 6e Return.a.tree.of.all.accounts.in
286e0 20 74 68 65 20 62 75 66 66 65 72 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 63 75 72 72 65 6e 74 20 .the.buffer."...(let*.((current.
28700 28 63 61 61 72 20 28 6c 65 64 67 65 72 2d 70 61 72 73 65 2d 61 72 67 75 6d 65 6e 74 73 29 29 29 (caar.(ledger-parse-arguments)))
28720 0a 20 20 20 20 20 20 20 20 20 28 65 6c 65 6d 65 6e 74 73 20 28 61 6e 64 20 63 75 72 72 65 6e 74 ..........(elements.(and.current
28740 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 63 75 72 72 65 6e 74 20 22 3a 22 29 29 29 0a 20 20 .(split-string.current.":")))...
28760 20 20 20 20 20 20 20 28 72 6f 6f 74 20 28 6c 65 64 67 65 72 2d 66 69 6e 64 2d 61 63 63 6f 75 6e .......(root.(ledger-find-accoun
28780 74 73 2d 69 6e 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 72 65 66 69 78 20 ts-in-buffer))..........(prefix.
287a0 6e 69 6c 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 63 64 72 20 65 6c 65 6d 65 6e 74 73 29 0a nil)).....(while.(cdr.elements).
287c0 20 20 20 20 20 20 28 6c 65 74 20 28 28 78 61 63 74 20 28 61 73 73 6f 63 20 28 63 61 72 20 65 6c ......(let.((xact.(assoc.(car.el
287e0 65 6d 65 6e 74 73 29 20 72 6f 6f 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 78 61 63 74 ements).root))).........(if.xact
28800 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 70 72 65 66 69 78 20 28 63 6f 6e 63 61 .............(setq.prefix.(conca
28820 74 20 70 72 65 66 69 78 20 28 61 6e 64 20 70 72 65 66 69 78 20 22 3a 22 29 0a 20 20 20 20 20 20 t.prefix.(and.prefix.":").......
28840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 ...........................(car.
28860 65 6c 65 6d 65 6e 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 6f 6f elements))...................roo
28880 74 20 28 63 64 72 20 78 61 63 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 6f t.(cdr.xact))...........(setq.ro
288a0 6f 74 20 6e 69 6c 20 65 6c 65 6d 65 6e 74 73 20 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 28 73 65 ot.nil.elements.nil))).......(se
288c0 74 71 20 65 6c 65 6d 65 6e 74 73 20 28 63 64 72 20 65 6c 65 6d 65 6e 74 73 29 29 29 0a 20 20 20 tq.elements.(cdr.elements)))....
288e0 20 28 73 65 74 71 20 72 6f 6f 74 20 28 64 65 6c 65 74 65 20 28 6c 69 73 74 20 28 63 61 72 20 65 .(setq.root.(delete.(list.(car.e
28900 6c 65 6d 65 6e 74 73 29 20 74 29 20 72 6f 6f 74 29 29 0a 20 20 20 20 28 61 6e 64 20 72 6f 6f 74 lements).t).root)).....(and.root
28920 0a 20 20 20 20 20 20 20 20 20 28 73 6f 72 74 0a 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 ..........(sort...........(mapca
28940 72 20 28 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 r.(function....................(
28960 6c 61 6d 62 64 61 20 28 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 lambda.(x)......................
28980 28 6c 65 74 20 28 28 74 65 72 6d 20 28 69 66 20 70 72 65 66 69 78 0a 20 20 20 20 20 20 20 20 20 (let.((term.(if.prefix..........
289a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e ............................(con
289c0 63 61 74 20 70 72 65 66 69 78 20 22 3a 22 20 28 63 61 72 20 78 29 29 0a 20 20 20 20 20 20 20 20 cat.prefix.":".(car.x)).........
289e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 ...........................(car.
28a00 78 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 x))))........................(if
28a20 20 28 3e 20 28 6c 65 6e 67 74 68 20 28 63 64 72 20 78 29 29 20 31 29 0a 20 20 20 20 20 20 20 20 .(>.(length.(cdr.x)).1).........
28a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 74 65 72 6d 20 ...................(concat.term.
28a60 22 3a 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 65 ":")..........................te
28a80 72 6d 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 64 72 20 72 6f rm))))...................(cdr.ro
28aa0 6f 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 27 73 74 72 69 6e 67 2d 6c 65 73 73 70 29 29 29 29 ot))...........'string-lessp))))
28ac0 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 63 6f 6d 70 6c 65 74 65 2d 64 61 74 65 20 28 6d ..(defun.ledger-complete-date.(m
28ae0 6f 6e 74 68 2d 73 74 72 69 6e 67 20 64 61 79 2d 73 74 72 69 6e 67 29 0a 20 20 22 43 6f 6d 70 6c onth-string.day-string)..."Compl
28b00 65 74 65 20 61 20 64 61 74 65 2e 22 0a 20 20 28 6c 65 74 2a 0a 20 20 20 20 20 20 28 28 6e 6f 77 ete.a.date."...(let*.......((now
28b20 20 28 63 75 72 72 65 6e 74 2d 74 69 6d 65 29 29 0a 20 20 20 20 20 20 20 28 64 65 63 6f 64 65 64 .(current-time))........(decoded
28b40 20 28 64 65 63 6f 64 65 2d 74 69 6d 65 20 6e 6f 77 29 29 0a 20 20 20 20 20 20 20 28 74 68 69 73 .(decode-time.now))........(this
28b60 2d 6d 6f 6e 74 68 20 28 6e 74 68 20 34 20 64 65 63 6f 64 65 64 29 29 0a 20 20 20 20 20 20 20 28 -month.(nth.4.decoded))........(
28b80 74 68 69 73 2d 79 65 61 72 20 28 6e 74 68 20 35 20 64 65 63 6f 64 65 64 29 29 0a 20 20 20 20 20 this-year.(nth.5.decoded))......
28ba0 20 20 28 6c 61 73 74 2d 6d 6f 6e 74 68 20 28 69 66 20 28 3e 20 74 68 69 73 2d 6d 6f 6e 74 68 20 ..(last-month.(if.(>.this-month.
28bc0 31 29 20 28 31 2d 20 74 68 69 73 2d 6d 6f 6e 74 68 29 20 31 32 29 29 0a 20 20 20 20 20 20 20 28 1).(1-.this-month).12))........(
28be0 6c 61 73 74 2d 79 65 61 72 20 28 31 2d 20 74 68 69 73 2d 79 65 61 72 29 29 0a 20 20 20 20 20 20 last-year.(1-.this-year)).......
28c00 20 28 6c 61 73 74 2d 6d 6f 6e 74 68 2d 79 65 61 72 20 28 69 66 20 28 3e 20 74 68 69 73 2d 6d 6f .(last-month-year.(if.(>.this-mo
28c20 6e 74 68 20 31 29 20 74 68 69 73 2d 79 65 61 72 20 6c 61 73 74 2d 79 65 61 72 29 29 0a 20 20 20 nth.1).this-year.last-year))....
28c40 20 20 20 20 28 6d 6f 6e 74 68 20 28 61 6e 64 20 6d 6f 6e 74 68 2d 73 74 72 69 6e 67 0a 20 20 20 ....(month.(and.month-string....
28c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 ................(string-to-numbe
28c80 72 20 6d 6f 6e 74 68 2d 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 28 64 61 79 20 28 73 r.month-string)))........(day.(s
28ca0 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 64 61 79 2d 73 74 72 69 6e 67 29 29 0a 20 20 20 tring-to-number.day-string))....
28cc0 20 20 20 20 28 64 61 74 65 73 20 28 6c 69 73 74 20 28 65 6e 63 6f 64 65 2d 74 69 6d 65 20 30 20 ....(dates.(list.(encode-time.0.
28ce0 30 20 30 20 64 61 79 20 28 6f 72 20 6d 6f 6e 74 68 20 74 68 69 73 2d 6d 6f 6e 74 68 29 20 74 68 0.0.day.(or.month.this-month).th
28d00 69 73 2d 79 65 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 is-year).....................(if
28d20 20 6d 6f 6e 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 .month.........................(
28d40 65 6e 63 6f 64 65 2d 74 69 6d 65 20 30 20 30 20 30 20 64 61 79 20 6d 6f 6e 74 68 20 6c 61 73 74 encode-time.0.0.0.day.month.last
28d60 2d 79 65 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6e -year).......................(en
28d80 63 6f 64 65 2d 74 69 6d 65 20 30 20 30 20 30 20 64 61 79 20 6c 61 73 74 2d 6d 6f 6e 74 68 20 6c code-time.0.0.0.day.last-month.l
28da0 61 73 74 2d 6d 6f 6e 74 68 2d 79 65 61 72 29 29 29 29 29 0a 20 20 20 20 28 6c 61 6d 62 64 61 20 ast-month-year))))).....(lambda.
28dc0 28 5f 73 74 72 69 6e 67 20 5f 70 72 65 64 69 63 61 74 65 20 5f 61 6c 6c 29 0a 20 20 20 20 20 20 (_string._predicate._all).......
28de0 28 63 6f 6e 63 61 74 20 28 6c 65 64 67 65 72 2d 66 6f 72 6d 61 74 2d 64 61 74 65 0a 20 20 20 20 (concat.(ledger-format-date.....
28e00 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 66 69 6e 64 2d 69 66 20 28 6c 61 6d 62 64 61 20 28 ...........(cl-find-if.(lambda.(
28e20 64 61 74 65 29 20 28 6e 6f 74 20 28 74 69 6d 65 2d 6c 65 73 73 2d 70 20 6e 6f 77 20 64 61 74 65 date).(not.(time-less-p.now.date
28e40 29 29 29 20 64 61 74 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 ))).dates))...............(and.(
28e60 3d 20 28 70 6f 69 6e 74 29 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 20 22 =.(point).(line-end-position))."
28e80 20 22 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 63 6f 6d 70 6c 65 74 65 2d .")))))..(defun.ledger-complete-
28ea0 65 66 66 65 63 74 69 76 65 2d 64 61 74 65 0a 20 20 20 20 28 74 78 2d 79 65 61 72 2d 73 74 72 69 effective-date.....(tx-year-stri
28ec0 6e 67 20 74 78 2d 6d 6f 6e 74 68 2d 73 74 72 69 6e 67 20 74 78 2d 64 61 79 2d 73 74 72 69 6e 67 ng.tx-month-string.tx-day-string
28ee0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 6f 6e 74 68 2d 73 74 72 69 6e .....................month-strin
28f00 67 20 64 61 79 2d 73 74 72 69 6e 67 29 0a 20 20 22 43 6f 6d 70 6c 65 74 65 20 61 6e 20 65 66 66 g.day-string)..."Complete.an.eff
28f20 65 63 74 69 76 65 20 64 61 74 65 2e 22 0a 20 20 28 6c 65 74 2a 0a 20 20 20 20 20 20 28 28 74 78 ective.date."...(let*.......((tx
28f40 2d 79 65 61 72 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 74 78 2d 79 65 61 72 2d -year.(string-to-number.tx-year-
28f60 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 20 20 28 74 78 2d 6d 6f 6e 74 68 20 28 73 74 72 69 6e string))........(tx-month.(strin
28f80 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 74 78 2d 6d 6f 6e 74 68 2d 73 74 72 69 6e 67 29 29 0a 20 20 g-to-number.tx-month-string))...
28fa0 20 20 20 20 20 28 74 78 2d 64 61 79 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 74 .....(tx-day.(string-to-number.t
28fc0 78 2d 64 61 79 2d 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 20 20 28 74 78 2d 64 61 74 65 20 28 x-day-string))........(tx-date.(
28fe0 65 6e 63 6f 64 65 2d 74 69 6d 65 20 30 20 30 20 30 20 74 78 2d 64 61 79 20 74 78 2d 6d 6f 6e 74 encode-time.0.0.0.tx-day.tx-mont
29000 68 20 74 78 2d 79 65 61 72 29 29 0a 20 20 20 20 20 20 20 28 6e 65 78 74 2d 6d 6f 6e 74 68 20 28 h.tx-year))........(next-month.(
29020 69 66 20 28 3c 20 74 78 2d 6d 6f 6e 74 68 20 31 32 29 20 28 31 2b 20 74 78 2d 6d 6f 6e 74 68 29 if.(<.tx-month.12).(1+.tx-month)
29040 20 31 29 29 0a 20 20 20 20 20 20 20 28 6e 65 78 74 2d 79 65 61 72 20 28 31 2b 20 74 78 2d 79 65 .1))........(next-year.(1+.tx-ye
29060 61 72 29 29 0a 20 20 20 20 20 20 20 28 6e 65 78 74 2d 6d 6f 6e 74 68 2d 79 65 61 72 20 28 69 66 ar))........(next-month-year.(if
29080 20 28 3c 20 74 78 2d 6d 6f 6e 74 68 20 31 32 29 20 74 78 2d 79 65 61 72 20 6e 65 78 74 2d 79 65 .(<.tx-month.12).tx-year.next-ye
290a0 61 72 29 29 0a 20 20 20 20 20 20 20 28 6d 6f 6e 74 68 20 28 61 6e 64 20 6d 6f 6e 74 68 2d 73 74 ar))........(month.(and.month-st
290c0 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d ring....................(string-
290e0 74 6f 2d 6e 75 6d 62 65 72 20 6d 6f 6e 74 68 2d 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20 20 to-number.month-string))).......
29100 20 28 64 61 79 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 64 61 79 2d 73 74 72 69 .(day.(string-to-number.day-stri
29120 6e 67 29 29 0a 20 20 20 20 20 20 20 28 64 61 74 65 73 20 28 6c 69 73 74 20 28 65 6e 63 6f 64 65 ng))........(dates.(list.(encode
29140 2d 74 69 6d 65 20 30 20 30 20 30 20 64 61 79 20 28 6f 72 20 6d 6f 6e 74 68 20 74 78 2d 6d 6f 6e -time.0.0.0.day.(or.month.tx-mon
29160 74 68 29 20 74 78 2d 79 65 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 th).tx-year)....................
29180 20 28 69 66 20 6d 6f 6e 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .(if.month......................
291a0 20 20 20 28 65 6e 63 6f 64 65 2d 74 69 6d 65 20 30 20 30 20 30 20 64 61 79 20 6d 6f 6e 74 68 20 ...(encode-time.0.0.0.day.month.
291c0 6e 65 78 74 2d 79 65 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 next-year)......................
291e0 20 28 65 6e 63 6f 64 65 2d 74 69 6d 65 20 30 20 30 20 30 20 64 61 79 20 6e 65 78 74 2d 6d 6f 6e .(encode-time.0.0.0.day.next-mon
29200 74 68 20 6e 65 78 74 2d 6d 6f 6e 74 68 2d 79 65 61 72 29 29 29 29 29 0a 20 20 20 20 28 6c 61 6d th.next-month-year))))).....(lam
29220 62 64 61 20 28 5f 73 74 72 69 6e 67 20 5f 70 72 65 64 69 63 61 74 65 20 5f 61 6c 6c 29 0a 20 20 bda.(_string._predicate._all)...
29240 20 20 20 20 28 63 6f 6e 63 61 74 20 28 6c 65 64 67 65 72 2d 66 6f 72 6d 61 74 2d 64 61 74 65 0a ....(concat.(ledger-format-date.
29260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 66 69 6e 64 2d 69 66 20 28 6c 61 6d 62 ...............(cl-find-if.(lamb
29280 64 61 20 28 64 61 74 65 29 20 28 6e 6f 74 20 28 74 69 6d 65 2d 6c 65 73 73 2d 70 20 64 61 74 65 da.(date).(not.(time-less-p.date
292a0 20 74 78 2d 64 61 74 65 29 29 29 20 64 61 74 65 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 .tx-date))).dates)).............
292c0 20 20 28 61 6e 64 20 28 3d 20 28 70 6f 69 6e 74 29 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 ..(and.(=.(point).(line-end-posi
292e0 74 69 6f 6e 29 29 20 22 20 22 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 63 tion)).".")))))..(defun.ledger-c
29300 6f 6d 70 6c 65 74 65 2d 61 74 2d 70 6f 69 6e 74 20 28 29 0a 20 20 22 44 6f 20 61 70 70 72 6f 70 omplete-at-point.()..."Do.approp
29320 72 69 61 74 65 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 74 68 69 6e 67 20 61 riate.completion.for.the.thing.a
29340 74 20 70 6f 69 6e 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 65 6e 64 20 28 70 6f 69 6e 74 29 29 0a t.point."...(let.((end.(point)).
29360 20 20 20 20 20 20 20 20 73 74 61 72 74 20 63 6f 6c 6c 65 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 ........start.collection........
29380 20 72 65 61 6c 69 67 6e 2d 61 66 74 65 72 0a 20 20 20 20 20 20 20 20 64 65 6c 65 74 65 2d 73 75 .realign-after.........delete-su
293a0 66 66 69 78 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 3b 3b 20 44 61 74 65 0a 20 20 20 20 20 20 20 ffix).....(cond.(;;.Date........
293c0 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d 62 61 63 6b 20 28 63 6f 6e 63 61 74 20 22 5e 22 20 6c 65 ....(looking-back.(concat."^".le
293e0 64 67 65 72 2d 69 6e 63 6f 6d 70 6c 65 74 65 2d 64 61 74 65 2d 72 65 67 65 78 70 29 20 28 6c 69 dger-incomplete-date-regexp).(li
29400 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 ne-beginning-position)).........
29420 20 20 20 28 73 65 74 71 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 28 6c 65 64 67 65 72 2d 63 6f 6d 70 ...(setq.collection.(ledger-comp
29440 6c 65 74 65 2d 64 61 74 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 29 20 28 6d 61 74 63 lete-date.(match-string.1).(matc
29460 68 2d 73 74 72 69 6e 67 20 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 h-string.2))..................st
29480 61 72 74 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 0a 20 20 20 20 20 20 20 20 art.(match-beginning.0).........
294a0 20 20 20 20 20 20 20 20 20 64 65 6c 65 74 65 2d 73 75 66 66 69 78 20 28 73 61 76 65 2d 6d 61 74 .........delete-suffix.(save-mat
294c0 63 68 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ch-data.........................
294e0 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 28 72 78 20 28 .........(when.(looking-at.(rx.(
29500 6f 6e 65 2d 6f 72 2d 6d 6f 72 65 20 28 6f 72 20 64 69 67 69 74 20 28 61 6e 79 20 3f 2f 20 3f 2d one-or-more.(or.digit.(any.?/.?-
29520 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 )))))...........................
29540 20 20 20 20 20 20 20 20 20 28 6c 65 6e 67 74 68 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 30 .........(length.(match-string.0
29560 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 3b 3b 20 45 66 66 65 63 74 69 76 65 20 64 ))))))...........(;;.Effective.d
29580 61 74 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d 62 61 63 6b 20 28 63 ates............(looking-back.(c
295a0 6f 6e 63 61 74 20 22 5e 22 20 6c 65 64 67 65 72 2d 69 73 6f 2d 64 61 74 65 2d 72 65 67 65 78 70 oncat."^".ledger-iso-date-regexp
295c0 20 22 3d 22 20 6c 65 64 67 65 72 2d 69 6e 63 6f 6d 70 6c 65 74 65 2d 64 61 74 65 2d 72 65 67 65 ."=".ledger-incomplete-date-rege
295e0 78 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 xp)..........................(li
29600 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 ne-beginning-position)).........
29620 20 20 20 28 73 65 74 71 20 73 74 61 72 74 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 ...(setq.start.(line-beginning-p
29640 6f 73 69 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6c 6c 65 osition))............(setq.colle
29660 63 74 69 6f 6e 20 28 6c 65 64 67 65 72 2d 63 6f 6d 70 6c 65 74 65 2d 65 66 66 65 63 74 69 76 65 ction.(ledger-complete-effective
29680 2d 64 61 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -date...........................
296a0 20 20 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32 29 20 28 6d 61 74 63 68 2d 73 74 72 69 6e ...(match-string.2).(match-strin
296c0 67 20 33 29 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 34 29 0a 20 20 20 20 20 20 20 20 20 20 g.3).(match-string.4)...........
296e0 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
29700 20 35 29 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 36 29 29 29 29 0a 20 20 20 20 20 20 20 20 .5).(match-string.6)))).........
29720 20 20 28 3b 3b 20 50 61 79 65 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 28 65 71 20 27 74 72 61 ..(;;.Payees............(eq.'tra
29740 6e 73 61 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 nsaction................(save-ex
29760 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 28 70 72 6f 67 31 20 cursion..................(prog1.
29780 28 6c 65 64 67 65 72 2d 74 68 69 6e 67 2d 61 74 2d 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 (ledger-thing-at-point).........
297a0 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 74 61 72 74 20 28 70 6f 69 6e 74 29 29 29 ...........(setq.start.(point)))
297c0 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 69 6f 6e 20 23 ))............(setq.collection.#
297e0 27 6c 65 64 67 65 72 2d 70 61 79 65 65 73 2d 6c 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 'ledger-payees-list))...........
29800 28 3b 3b 20 41 63 63 6f 75 6e 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 (;;.Accounts............(save-ex
29820 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 61 63 6b 2d 74 6f 2d 69 6e cursion..............(back-to-in
29840 64 65 6e 74 61 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 6b 69 70 2d 63 68 dentation)..............(skip-ch
29860 61 72 73 2d 66 6f 72 77 61 72 64 20 22 28 5b 22 29 20 3b 3b 20 66 6f 72 20 76 69 72 74 75 61 6c ars-forward."([").;;.for.virtual
29880 20 61 63 63 6f 75 6e 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 74 61 .accounts..............(setq.sta
298a0 72 74 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 64 65 rt.(point)))............(setq.de
298c0 6c 65 74 65 2d 73 75 66 66 69 78 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 lete-suffix.(save-excursion.....
298e0 20 20 20 20 20 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 .............................(wh
29900 65 6e 20 28 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 2d 72 65 67 65 78 70 20 28 72 78 20 28 6f en.(search-forward-regexp.(rx.(o
29920 72 20 65 6f 6c 20 28 6f 72 20 3f 5c 74 20 28 72 65 70 65 61 74 20 32 20 73 70 61 63 65 29 29 29 r.eol.(or.?\t.(repeat.2.space)))
29940 29 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)........
29960 20 20 20 20 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 2d 20 28 ............................(-.(
29980 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 20 65 6e 64 29 29 29 0a 20 20 20 20 20 20 match-beginning.0).end))).......
299a0 20 20 20 20 20 20 20 20 20 20 20 72 65 61 6c 69 67 6e 2d 61 66 74 65 72 20 74 0a 20 20 20 20 20 ...........realign-after.t......
299c0 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 28 69 66 20 6c 65 64 67 65 ............collection.(if.ledge
299e0 72 2d 63 6f 6d 70 6c 65 74 65 2d 69 6e 2d 73 74 65 70 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 r-complete-in-steps.............
29a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 23 27 6c 65 64 67 65 72 2d 61 63 63 ....................#'ledger-acc
29a20 6f 75 6e 74 73 2d 74 72 65 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ounts-tree......................
29a40 20 20 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 .........#'ledger-accounts-list)
29a60 29 29 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 ))).....(when.collection.......(
29a80 6c 65 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 let.((prefix.(buffer-substring-n
29aa0 6f 2d 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 o-properties.start.end))).......
29ac0 20 20 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 ..(list.start.end...............
29ae0 28 69 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 (if.(functionp.collection)......
29b00 20 20 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 .............(completion-table-w
29b20 69 74 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 ith-cache....................(la
29b40 6d 62 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 mbda.(_)......................(c
29b60 6c 2d 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 l-remove-if.(apply-partially.'st
29b80 72 69 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 ring=.prefix).(funcall.collectio
29ba0 6e 29 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 n)))).................collection
29bc0 29 0a 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 )...............:exit-function.(
29be0 6c 61 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 lambda.(&rest._)................
29c00 20 20 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 ................(when.delete-suf
29c20 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 20 20 20 fix.............................
29c40 20 20 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 .....(delete-char.delete-suffix)
29c60 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 )...............................
29c80 20 28 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 .(when.(and.realign-after.ledger
29ca0 2d 70 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 -post-auto-align)...............
29cc0 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 70 6f 73 74 2d ...................(ledger-post-
29ce0 61 6c 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 align-postings.(line-beginning-p
29d00 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 29 29 29 0a osition).(line-end-position)))).
29d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 69 67 6e 6f 72 65 29 29 29 29 29 0a 0a 28 64 65 66 ..............'ignore)))))..(def
29d40 75 6e 20 6c 65 64 67 65 72 2d 74 72 69 6d 2d 74 72 61 69 6c 69 6e 67 2d 77 68 69 74 65 73 70 61 un.ledger-trim-trailing-whitespa
29d60 63 65 20 28 73 74 72 29 0a 20 20 28 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 ce.(str)...(replace-regexp-in-st
29d80 72 69 6e 67 20 22 5b 20 5c 74 5d 2a 24 22 20 22 22 20 73 74 72 29 29 0a 0a 28 64 65 66 75 6e 20 ring."[.\t]*$"."".str))..(defun.
29da0 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 20 28 29 0a 20 20 ledger-fully-complete-xact.()...
29dc0 22 43 6f 6d 70 6c 65 74 65 73 20 61 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 69 66 20 74 68 65 72 "Completes.a.transaction.if.ther
29de0 65 20 69 73 20 61 6e 6f 74 68 65 72 20 6d 61 74 63 68 69 6e 67 20 70 61 79 65 65 20 69 6e 20 74 e.is.another.matching.payee.in.t
29e00 68 65 20 62 75 66 66 65 72 2e 0a 0a 49 6e 74 65 72 61 63 74 69 76 65 6c 79 2c 20 69 66 20 70 6f he.buffer...Interactively,.if.po
29e20 69 6e 74 20 69 73 20 61 66 74 65 72 20 61 20 70 61 79 65 65 2c 20 63 6f 6d 70 6c 65 74 65 20 74 int.is.after.a.payee,.complete.t
29e40 68 65 0a 74 72 61 6e 73 61 63 74 69 6f 6e 20 77 69 74 68 20 74 68 65 20 64 65 74 61 69 6c 73 20 he.transaction.with.the.details.
29e60 66 72 6f 6d 20 74 68 65 20 6c 61 73 74 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 74 6f 20 74 68 61 from.the.last.transaction.to.tha
29e80 74 0a 70 61 79 65 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 t.payee."...(interactive)...(let
29ea0 2a 20 28 28 6e 61 6d 65 20 28 6c 65 64 67 65 72 2d 74 72 69 6d 2d 74 72 61 69 6c 69 6e 67 2d 77 *.((name.(ledger-trim-trailing-w
29ec0 68 69 74 65 73 70 61 63 65 20 28 63 61 61 72 20 28 6c 65 64 67 65 72 2d 70 61 72 73 65 2d 61 72 hitespace.(caar.(ledger-parse-ar
29ee0 67 75 6d 65 6e 74 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 72 65 73 74 2d 6f 66 2d 6e 61 guments))))..........(rest-of-na
29f00 6d 65 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 78 61 63 74 73 29 0a 20 20 20 20 28 73 61 me.name)..........xacts).....(sa
29f20 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 27 74 72 ve-excursion.......(when.(eq.'tr
29f40 61 6e 73 61 63 74 69 6f 6e 20 28 6c 65 64 67 65 72 2d 74 68 69 6e 67 2d 61 74 2d 70 6f 69 6e 74 ansaction.(ledger-thing-at-point
29f60 29 29 0a 20 20 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 6e 74 )).........(delete-region.(point
29f80 29 20 28 2b 20 28 6c 65 6e 67 74 68 20 6e 61 6d 65 29 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 ).(+.(length.name).(point)))....
29fa0 20 20 20 20 20 3b 3b 20 53 65 61 72 63 68 20 62 61 63 6b 77 61 72 64 20 66 6f 72 20 61 20 6d 61 .....;;.Search.backward.for.a.ma
29fc0 74 63 68 69 6e 67 20 70 61 79 65 65 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 72 65 2d 73 tching.payee.........(when.(re-s
29fe0 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 earch-backward................(c
2a000 6f 6e 63 61 74 20 22 5e 5b 30 2d 39 2f 2e 3d 2d 5d 2b 5c 5c 28 5c 5c 73 2d 2b 5c 5c 2a 5c 5c 29 oncat."^[0-9/.=-]+\\(\\s-+\\*\\)
2a020 3f 5c 5c 28 5c 5c 73 2d 2b 28 2e 2a 3f 29 5c 5c 29 3f 5c 5c 73 2d 2b 5c 5c 28 2e 2a 22 0a 20 20 ?\\(\\s-+(.*?)\\)?\\s-+\\(.*"...
2a040 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 78 70 2d 71 75 6f .....................(regexp-quo
2a060 74 65 20 6e 61 6d 65 29 20 22 2e 2a 5c 5c 29 22 20 29 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 te.name).".*\\)".).nil.t).......
2a080 20 20 20 20 28 73 65 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 ....(setq.rest-of-name.(match-st
2a0a0 72 69 6e 67 20 33 29 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 ring.3))...........;;.Start.copy
2a0c0 69 6e 67 20 74 68 65 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 ing.the.postings...........(forw
2a0e0 61 72 64 2d 6c 69 6e 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 ard-line)...........(setq.xacts.
2a100 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 (buffer-substring-no-properties.
2a120 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 65 6e 64 2d 6f 66 2d (point).(ledger-navigate-end-of-
2a140 78 61 63 74 29 29 29 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 xact)))))).....;;.Insert.rest-of
2a160 2d 6e 61 6d 65 20 61 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 -name.and.the.postings.....(save
2a180 2d 65 78 63 75 72 73 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 -excursion.......(insert.rest-of
2a1a0 2d 6e 61 6d 65 20 3f 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 -name.?\n).......(insert.xacts).
2a1c0 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 2d 70 20 22 5c 6e 5c ......(unless.(looking-at-p."\n\
2a1e0 6e 22 29 0a 20 20 20 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 n").........(insert."\n"))).....
2a200 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6c (forward-line).....(goto-char.(l
2a220 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 72 65 ine-end-position)).....(when.(re
2a240 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 20 22 5c 5c 28 5c 74 5c 5c 7c 20 5b 20 5c 74 5d -search-backward."\\(\t\\|.[.\t]
2a260 5c 5c 29 22 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 \\)".nil.t).......(goto-char.(ma
2a280 74 63 68 2d 65 6e 64 20 30 29 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 6c 65 64 67 65 72 tch-end.0)))))..(provide.'ledger
2a2a0 2d 63 6f 6d 70 6c 65 74 65 29 0a 0a 3b 3b 3b 20 6c 65 64 67 65 72 2d 63 6f 6d 70 6c 65 74 65 2e -complete)..;;;.ledger-complete.
2a2c0 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....................
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 31 2e 31 34 33 35 2f 6c 65 64 67 65 72 ledger-mode-20240411.1435/ledger
2a420 2d 6d 6f 64 65 2e 69 6e 66 6f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -mode.info......................
2a440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a460 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
2a480 30 32 30 36 35 31 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 32 33 36 00 20 30 00 00 00 0206512.00000000000.016236..0...
2a4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a500 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...................
2a520 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...................
2a540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a600 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
2a620 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.
2a640 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....
2a660 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
2a680 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.
2a6a0 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,.
2a6c0 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
2a6e0 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
2a700 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:.....
2a720 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
2a740 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
2a760 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
2a780 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
2a7a0 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
2a7c0 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.
2a7e0 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
2a800 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
2a820 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
2a840 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
2a860 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
2a880 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
2a8a0 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
2a8c0 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.
2a8e0 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
2a900 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
2a920 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
2a940 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
2a960 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
2a980 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.
2a9a0 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
2a9c0 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.
2a9e0 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
2aa00 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
2aa20 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
2aa40 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
2aa60 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
2aa80 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
2aaa0 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
2aac0 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
2aae0 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
2ab00 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
2ab20 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
2ab40 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
2ab60 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
2ab80 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
2aba0 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
2abc0 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
2abe0 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.
2ac00 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
2ac20 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.
2ac40 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
2ac60 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
2ac80 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)..........
2aca0 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
2acc0 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
2ace0 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
2ad00 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:.(
2ad20 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.*****
2ad40 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
2ad60 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
2ad80 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
2ada0 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
2adc0 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.
2ade0 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
2ae00 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
2ae20 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
2ae40 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
2ae60 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
2ae80 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
2aea0 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
2aec0 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
2aee0 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
2af00 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
2af20 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:
2af40 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
2af60 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
2af80 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::.*
2afa0 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
2afc0 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
2afe0 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
2b000 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
2b020 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:.
2b040 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,..
2b060 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
2b080 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.*************************
2b0a0 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
2b0c0 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::..
2b0e0 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:
2b100 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
2b120 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
2b140 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
2b160 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.
2b180 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
2b1a0 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
2b1c0 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
2b1e0 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
2b200 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
2b220 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,.
2b240 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
2b260 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
2b280 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..
2b2a0 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
2b2c0 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
2b2e0 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
2b300 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
2b320 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...................
2b340 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
2b360 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-
2b380 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
2b3a0 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
2b3c0 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
2b3e0 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
2b400 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..
2b420 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
2b440 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
2b460 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
2b480 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
2b4a0 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,..
2b4c0 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
2b4e0 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.
2b500 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
2b520 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.
2b540 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
2b560 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
2b580 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
2b5a0 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....
2b5c0 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:.
2b5e0 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
2b600 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.
2b620 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.
2b640 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....
2b660 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
2b680 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
2b6a0 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
2b6c0 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
2b6e0 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.
2b700 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
2b720 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::.*
2b740 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::.*.
2b760 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
2b780 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:.
2b7a0 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
2b7c0 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.
2b7e0 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
2b800 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.
2b820 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.
2b840 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..
2b860 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
2b880 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
2b8a0 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
2b8c0 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
2b8e0 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...
2b900 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
2b920 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
2b940 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
2b960 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
2b980 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...
2b9a0 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
2b9c0 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
2b9e0 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
2ba00 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
2ba20 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
2ba40 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
2ba60 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.
2ba80 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
2baa0 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
2bac0 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
2bae0 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
2bb00 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.
2bb20 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
2bb40 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
2bb60 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
2bb80 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
2bba0 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
2bbc0 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
2bbe0 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
2bc00 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
2bc20 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.----------------
2bc40 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
2bc60 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.
2bc80 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
2bca0 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
2bcc0 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
2bce0 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
2bd00 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.
2bd20 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......
2bd40 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.
2bd60 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
2bd80 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
2bda0 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
2bdc0 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
2bde0 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
2be00 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
2be20 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
2be40 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
2be60 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
2be80 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
2bea0 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.
2bec0 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
2bee0 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
2bf00 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
2bf20 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
2bf40 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
2bf60 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
2bf80 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
2bfa0 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
2bfc0 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
2bfe0 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
2c000 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::......
2c020 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.
2c040 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
2c060 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
2c080 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
2c0a0 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.
2c0c0 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
2c0e0 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
2c100 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
2c120 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
2c140 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
2c160 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
2c180 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
2c1a0 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
2c1c0 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
2c1e0 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.
2c200 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..
2c220 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
2c240 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
2c260 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
2c280 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
2c2a0 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.---
2c2c0 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
2c2e0 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
2c300 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
2c320 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
2c340 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
2c360 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......
2c380 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
2c3a0 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
2c3c0 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
2c3e0 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
2c400 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::
2c420 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....
2c440 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
2c460 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......
2c480 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
2c4a0 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
2c4c0 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
2c4e0 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.
2c500 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...
2c520 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
2c540 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
2c560 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
2c580 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
2c5a0 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
2c5c0 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.
2c5e0 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
2c600 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.
2c620 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
2c640 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-
2c660 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
2c680 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.
2c6a0 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
2c6c0 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.
2c6e0 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.
2c700 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
2c720 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
2c740 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
2c760 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
2c780 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
2c7a0 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
2c7c0 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.
2c7e0 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.
2c800 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-
2c820 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
2c840 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
2c860 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
2c880 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:
2c8a0 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
2c8c0 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
2c8e0 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
2c900 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
2c920 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.*******************.
2c940 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
2c960 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::.*.
2c980 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
2c9a0 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
2c9c0 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::.
2c9e0 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
2ca00 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
2ca20 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
2ca40 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
2ca60 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
2ca80 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,..
2caa0 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
2cac0 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.=============
2cae0 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
2cb00 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
2cb20 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
2cb40 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
2cb60 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....
2cb80 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
2cba0 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
2cbc0 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
2cbe0 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
2cc00 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
2cc20 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
2cc40 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....
2cc60 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:.
2cc80 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
2cca0 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
2ccc0 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
2cce0 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
2cd00 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
2cd20 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
2cd40 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::
2cd60 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
2cd80 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
2cda0 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
2cdc0 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.
2cde0 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..
2ce00 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
2ce20 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
2ce40 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..
2ce60 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.
2ce80 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...
2cea0 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
2cec0 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
2cee0 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
2cf00 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
2cf20 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:..
2cf40 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
2cf60 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.()......
2cf80 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
2cfa0 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)............
2cfc0 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
2cfe0 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).................
2d000 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-
2d020 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.
2d040 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
2d060 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
2d080 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
2d0a0 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
2d0c0 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
2d0e0 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
2d100 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...,.
2d120 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
2d140 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
2d160 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
2d180 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
2d1a0 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....
2d1c0 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
2d1e0 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
2d200 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::.*
2d220 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
2d240 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
2d260 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
2d280 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,.
2d2a0 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:
2d2c0 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
2d2e0 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
2d300 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.------------------------------
2d320 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
2d340 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
2d360 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
2d380 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
2d3a0 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
2d3c0 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
2d3e0 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
2d400 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
2d420 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.
2d440 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
2d460 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
2d480 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.
2d4a0 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..
2d4c0 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
2d4e0 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
2d500 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
2d520 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.
2d540 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...
2d560 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
2d580 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
2d5a0 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.....
2d5c0 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
2d5e0 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
2d600 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
2d620 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.
2d640 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.------
2d660 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.
2d680 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.
2d6a0 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
2d6c0 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.
2d6e0 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
2d700 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.
2d720 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
2d740 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
2d760 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
2d780 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.
2d7a0 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
2d7c0 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
2d7e0 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
2d800 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,
2d820 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
2d840 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
2d860 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.==================
2d880 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
2d8a0 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.
2d8c0 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
2d8e0 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
2d900 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
2d920 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
2d940 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
2d960 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_
2d980 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.
2d9a0 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
2d9c0 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
2d9e0 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
2da00 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
2da20 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.
2da40 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
2da60 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
2da80 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
2daa0 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
2dac0 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
2dae0 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
2db00 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
2db20 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.
2db40 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
2db60 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
2db80 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
2dba0 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
2dbc0 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.
2dbe0 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
2dc00 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
2dc20 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
2dc40 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
2dc60 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
2dc80 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
2dca0 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.
2dcc0 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
2dce0 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
2dd00 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
2dd20 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
2dd40 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
2dd60 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
2dd80 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
2dda0 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...
2ddc0 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
2dde0 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
2de00 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
2de20 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
2de40 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
2de60 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
2de80 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
2dea0 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
2dec0 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
2dee0 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.=====
2df00 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
2df20 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.
2df40 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
2df60 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
2df80 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
2dfa0 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
2dfc0 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
2dfe0 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
2e000 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
2e020 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
2e040 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
2e060 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,
2e080 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.....
2e0a0 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
2e0c0 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
2e0e0 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
2e100 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
2e120 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
2e140 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
2e160 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
2e180 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
2e1a0 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
2e1c0 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
2e1e0 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
2e200 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
2e220 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
2e240 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.....
2e260 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
2e280 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
2e2a0 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
2e2c0 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
2e2e0 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
2e300 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
2e320 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
2e340 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
2e360 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
2e380 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
2e3a0 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
2e3c0 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
2e3e0 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....*.
2e400 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
2e420 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.
2e440 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
2e460 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
2e480 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
2e4a0 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
2e4c0 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.
2e4e0 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
2e500 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
2e520 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
2e540 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
2e560 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
2e580 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
2e5a0 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.===========================..
2e5c0 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
2e5e0 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
2e600 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
2e620 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
2e640 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
2e660 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
2e680 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
2e6a0 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......
2e6c0 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
2e6e0 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
2e700 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
2e720 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
2e740 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
2e760 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
2e780 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
2e7a0 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
2e7c0 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
2e7e0 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.=========
2e800 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
2e820 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
2e840 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.
2e860 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
2e880 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...
2e8a0 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
2e8c0 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
2e8e0 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
2e900 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
2e920 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,..
2e940 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
2e960 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:
2e980 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.
2e9a0 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.===================
2e9c0 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
2e9e0 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
2ea00 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
2ea20 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
2ea40 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
2ea60 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
2ea80 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
2eaa0 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..
2eac0 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....
2eae0 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.
2eb00 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
2eb20 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
2eb40 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
2eb60 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
2eb80 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
2eba0 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.
2ebc0 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
2ebe0 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
2ec00 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..
2ec20 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,.
2ec40 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
2ec60 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
2ec80 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
2eca0 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
2ecc0 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
2ece0 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
2ed00 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
2ed20 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
2ed40 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
2ed60 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
2ed80 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:.
2eda0 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
2edc0 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
2ede0 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.
2ee00 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
2ee20 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.
2ee40 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
2ee60 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
2ee80 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.
2eea0 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
2eec0 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
2eee0 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
2ef00 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:.
2ef20 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
2ef40 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.
2ef60 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
2ef80 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
2efa0 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
2efc0 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
2efe0 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.
2f000 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..
2f020 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
2f040 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
2f060 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
2f080 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
2f0a0 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
2f0c0 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
2f0e0 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.
2f100 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
2f120 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.
2f140 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.
2f160 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
2f180 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.
2f1a0 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..
2f1c0 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
2f1e0 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
2f200 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
2f220 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
2f240 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
2f260 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
2f280 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
2f2a0 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
2f2c0 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
2f2e0 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
2f300 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
2f320 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
2f340 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....
2f360 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:..
2f380 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
2f3a0 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.
2f3c0 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
2f3e0 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
2f400 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
2f420 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..
2f440 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
2f460 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
2f480 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.
2f4a0 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
2f4c0 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
2f4e0 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$..
2f500 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
2f520 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
2f540 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
2f560 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.
2f580 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
2f5a0 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.
2f5c0 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
2f5e0 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
2f600 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
2f620 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
2f640 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
2f660 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
2f680 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
2f6a0 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
2f6c0 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.**
2f6e0 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:..*
2f700 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
2f720 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
2f740 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
2f760 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
2f780 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::.
2f7a0 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
2f7c0 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
2f7e0 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::.*
2f800 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:
2f820 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
2f840 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
2f860 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,.
2f880 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
2f8a0 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
2f8c0 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.===========
2f8e0 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.
2f900 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
2f920 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
2f940 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
2f960 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
2f980 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
2f9a0 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
2f9c0 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
2f9e0 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
2fa00 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.
2fa20 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._
2fa40 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
2fa60 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
2fa80 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
2faa0 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
2fac0 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
2fae0 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
2fb00 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
2fb20 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....
2fb40 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
2fb60 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
2fb80 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
2fba0 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.
2fbc0 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:.
2fbe0 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
2fc00 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.
2fc20 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
2fc40 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.
2fc60 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
2fc80 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.================
2fca0 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
2fcc0 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
2fce0 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
2fd00 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
2fd20 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
2fd40 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
2fd60 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
2fd80 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
2fda0 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.
2fdc0 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
2fde0 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
2fe00 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
2fe20 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
2fe40 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
2fe60 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
2fe80 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
2fea0 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
2fec0 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....
2fee0 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
2ff00 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....
2ff20 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
2ff40 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
2ff60 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
2ff80 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
2ffa0 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
2ffc0 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
2ffe0 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
30000 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
30020 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
30040 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.
30060 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
30080 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.
300a0 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
300c0 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....$....(
300e0 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..
30100 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
30120 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
30140 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
30160 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
30180 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
301a0 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
301c0 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
301e0 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
30200 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
30220 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
30240 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
30260 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
30280 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
302a0 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
302c0 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
302e0 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.
30300 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-
30320 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
30340 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
30360 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
30380 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,..
303a0 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
303c0 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.========
303e0 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
30400 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
30420 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
30440 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
30460 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
30480 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
304a0 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
304c0 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
304e0 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
30500 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.
30520 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.
30540 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
30560 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.
30580 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
305a0 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
305c0 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
305e0 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
30600 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
30620 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
30640 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
30660 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
30680 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 .===============================
306a0 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
306c0 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
306e0 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
30700 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
30720 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.
30740 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
30760 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
30780 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
307a0 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
307c0 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
307e0 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
30800 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.
30820 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-
30840 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
30860 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
30880 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
308a0 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
308c0 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
308e0 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
30900 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.===============
30920 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
30940 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
30960 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
30980 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
309a0 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
309c0 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
309e0 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
30a00 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
30a20 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
30a40 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
30a60 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
30a80 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
30aa0 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....
30ac0 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
30ae0 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
30b00 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
30b20 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
30b40 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
30b60 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.
30b80 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
30ba0 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.=======
30bc0 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 ================================
30be0 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
30c00 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
30c20 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
30c40 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....
30c60 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
30c80 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
30ca0 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
30cc0 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
30ce0 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
30d00 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
30d20 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
30d40 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
30d60 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
30d80 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
30da0 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
30dc0 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
30de0 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.===============
30e00 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
30e20 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
30e40 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...
30e60 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.
30e80 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
30ea0 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
30ec0 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
30ee0 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
30f00 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
30f20 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
30f40 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
30f60 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
30f80 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
30fa0 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
30fc0 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.=========
30fe0 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
31000 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
31020 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,.
31040 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
31060 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
31080 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
310a0 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
310c0 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,..
310e0 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.***
31100 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
31120 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
31140 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.
31160 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
31180 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
311a0 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
311c0 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
311e0 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
31200 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.===============
31220 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
31240 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
31260 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.
31280 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
312a0 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
312c0 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
312e0 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
31300 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
31320 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
31340 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
31360 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....
31380 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
313a0 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
313c0 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
313e0 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
31400 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
31420 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
31440 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....
31460 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
31480 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..
314a0 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.
314c0 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
314e0 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
31500 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
31520 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*....
31540 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*..
31560 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.
31580 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.
315a0 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
315c0 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...
315e0 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
31600 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
31620 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
31640 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
31660 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
31680 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...
316a0 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
316c0 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
316e0 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
31700 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
31720 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
31740 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
31760 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
31780 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
317a0 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.======
317c0 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
317e0 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.
31800 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
31820 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
31840 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.
31860 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
31880 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.
318a0 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.
318c0 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
318e0 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.
31900 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
31920 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
31940 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
31960 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,.
31980 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
319a0 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
319c0 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
319e0 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.
31a00 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
31a20 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
31a40 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
31a60 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...
31a80 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
31aa0 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
31ac0 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.
31ae0 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.
31b00 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-
31b20 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
31b40 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
31b60 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
31b80 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
31ba0 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
31bc0 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
31be0 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
31c00 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
31c20 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
31c40 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
31c60 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
31c80 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
31ca0 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
31cc0 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
31ce0 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
31d00 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
31d20 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.--------------------
31d40 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.
31d60 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
31d80 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
31da0 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
31dc0 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
31de0 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
31e00 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
31e20 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
31e40 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
31e60 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
31e80 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
31ea0 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
31ec0 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
31ee0 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
31f00 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
31f20 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..
31f40 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-
31f60 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
31f80 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..
31fa0 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
31fc0 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
31fe0 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
32000 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
32020 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
32040 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.
32060 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
32080 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
320a0 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.
320c0 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.%(
320e0 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).\...
32100 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').=~/
32120 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
32140 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
32160 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
32180 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
321a0 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
321c0 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
321e0 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
32200 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:.....
32220 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
32240 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
32260 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
32280 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....
322a0 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.
322c0 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
322e0 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
32300 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,..
32320 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
32340 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.
32360 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.
32380 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 --------------------------------
323a0 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
323c0 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
323e0 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.
32400 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
32420 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
32440 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...
32460 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
32480 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....
324a0 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):%(
324c0 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
324e0 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..
32500 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
32520 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.
32540 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
32560 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
32580 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...
325a0 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:
325c0 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:.
325e0 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:
32600 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
32620 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.=================
32640 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
32660 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
32680 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
326a0 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
326c0 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.
326e0 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,.
32700 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.
32720 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
32740 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
32760 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
32780 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.
327a0 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.
327c0 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
327e0 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
32800 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
32820 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.
32840 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
32860 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
32880 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
328a0 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
328c0 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.
328e0 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.*******************
32900 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
32920 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.
32940 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._
32960 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.
32980 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
329a0 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
329c0 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
329e0 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
32a00 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
32a20 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
32a40 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
32a60 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.
32a80 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
32aa0 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.
32ac0 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
32ae0 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
32b00 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
32b20 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...
32b40 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
32b60 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...*.
32b80 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
32ba0 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
32bc0 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
32be0 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
32c00 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.
32c20 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
32c40 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.=============
32c60 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
32c80 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.
32ca0 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.
32cc0 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
32ce0 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.
32d00 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.
32d20 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
32d40 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.
32d60 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
32d80 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
32da0 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
32dc0 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
32de0 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
32e00 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
32e20 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
32e40 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
32e60 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
32e80 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
32ea0 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
32ec0 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
32ee0 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.------------------------
32f00 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
32f20 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
32f40 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
32f60 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...
32f80 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
32fa0 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
32fc0 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
32fe0 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
33000 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
33020 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.
33040 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
33060 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.....
33080 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
330a0 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
330c0 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
330e0 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....
33100 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
33120 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
33140 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
33160 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.
33180 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
331a0 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
331c0 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
331e0 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
33200 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
33220 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
33240 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.
33260 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
33280 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..
332a0 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
332c0 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.-----------------
332e0 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
33300 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
33320 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
33340 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..
33360 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
33380 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
333a0 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
333c0 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
333e0 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
33400 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
33420 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.
33440 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
33460 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
33480 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
334a0 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
334c0 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
334e0 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
33500 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.
33520 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
33540 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
33560 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
33580 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,.
335a0 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...
335c0 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
335e0 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
33600 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.
33620 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....
33640 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
33660 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,..
33680 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,..
336a0 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
336c0 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
336e0 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
33700 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.******************
33720 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.
33740 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.
33760 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
33780 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
337a0 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
337c0 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
337e0 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
33800 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
33820 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.===========================
33840 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
33860 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.
33880 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.
338a0 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.
338c0 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
338e0 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
33900 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
33920 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
33940 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
33960 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
33980 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
339a0 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
339c0 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
339e0 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...
33a00 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
33a20 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
33a40 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
33a60 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
33a80 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
33aa0 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.================
33ac0 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
33ae0 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
33b00 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::.*.
33b20 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
33b40 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
33b60 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
33b80 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
33ba0 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
33bc0 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
33be0 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
33c00 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
33c20 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
33c40 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
33c60 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
33c80 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
33ca0 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
33cc0 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.-----------------------------
33ce0 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
33d00 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
33d20 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
33d40 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
33d60 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
33d80 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
33da0 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
33dc0 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
33de0 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
33e00 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
33e20 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.
33e40 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
33e60 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
33e80 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
33ea0 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,
33ec0 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
33ee0 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
33f00 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
33f20 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
33f40 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.---------
33f60 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 --------------------------------
33f80 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
33fa0 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
33fc0 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..
33fe0 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
34000 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
34020 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.
34040 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....
34060 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
34080 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....
340a0 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.
340c0 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
340e0 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
34100 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.
34120 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
34140 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
34160 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.
34180 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
341a0 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.....
341c0 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.....
341e0 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
34200 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
34220 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....!
34240 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
34260 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....*...
34280 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
342a0 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
342c0 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
342e0 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
34300 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
34320 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
34340 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
34360 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.....
34380 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
343a0 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
343c0 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
343e0 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..
34400 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
34420 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...
34440 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.
34460 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.
34480 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
344a0 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
344c0 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
344e0 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
34500 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
34520 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,.
34540 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....
34560 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
34580 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
345a0 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
345c0 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
345e0 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
34600 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
34620 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
34640 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
34660 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...
34680 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
346a0 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...
346c0 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
346e0 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)
34700 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
34720 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...
34740 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
34760 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.
34780 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
347a0 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
347c0 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.
347e0 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
34800 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
34820 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
34840 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.
34860 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).
34880 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
348a0 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
348c0 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
348e0 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).....
34900 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
34920 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
34940 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
34960 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
34980 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
349a0 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........
349c0 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
349e0 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.....
34a00 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
34a20 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
34a40 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
34a60 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
34a80 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:.
34aa0 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
34ac0 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
34ae0 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 .-------------------------------
34b00 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.....
34b20 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
34b40 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
34b60 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
34b80 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
34ba0 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...
34bc0 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
34be0 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
34c00 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
34c20 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.
34c40 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......
34c60 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........
34c80 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
34ca0 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*.
34cc0 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
34ce0 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
34d00 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
34d20 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
34d40 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
34d60 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
34d80 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
34da0 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.----------------------
34dc0 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:.
34de0 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
34e00 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.........
34e20 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
34e40 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
34e60 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
34e80 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
34ea0 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
34ec0 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....
34ee0 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......
34f00 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....!
34f20 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
34f40 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
34f60 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
34f80 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..
34fa0 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.
34fc0 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
34fe0 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
35000 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
35020 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-
35040 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
35060 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
35080 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.
350a0 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
350c0 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
350e0 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
35100 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
35120 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
35140 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
35160 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
35180 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
351a0 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
351c0 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
351e0 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
35200 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*.....
35220 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
35240 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
35260 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
35280 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*.
352a0 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-
352c0 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.........
352e0 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....!...
35300 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
35320 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
35340 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.......
35360 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
35380 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
353a0 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
353c0 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
353e0 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
35400 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
35420 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
35440 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
35460 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.------
35480 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 -------------------------------.
354a0 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
354c0 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
354e0 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
35500 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-
35520 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........
35540 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
35560 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..
35580 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
355a0 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
355c0 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....
355e0 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.....
35600 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
35620 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.....
35640 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
35660 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
35680 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
356a0 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
356c0 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.....
356e0 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
35700 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,.
35720 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
35740 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
35760 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
35780 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.
357a0 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.------------
357c0 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
357e0 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.
35800 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.
35820 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.........
35840 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...
35860 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........
35880 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
358a0 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
358c0 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-
358e0 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
35900 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
35920 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
35940 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
35960 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.
35980 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
359a0 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.-------------------------
359c0 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
359e0 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
35a00 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.
35a20 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.........
35a40 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
35a60 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
35a80 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
35aa0 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
35ac0 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.
35ae0 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
35b00 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.---------------
35b20 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
35b40 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
35b60 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
35b80 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...
35ba0 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...
35bc0 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-
35be0 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.
35c00 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
35c20 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
35c40 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
35c60 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
35c80 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
35ca0 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
35cc0 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
35ce0 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
35d00 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.***
35d20 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 ********************************
35d40 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
35d60 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
35d80 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
35da0 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-
35dc0 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
35de0 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
35e00 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
35e20 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.*****************
35e40 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 ********************************
35e60 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
35e80 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.
35ea0 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
35ec0 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
35ee0 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
35f00 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.***
35f20 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
35f40 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:.
35f60 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
35f80 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
35fa0 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-
35fc0 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.
35fe0 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.
36000 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
36020 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.
36040 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
36060 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
36080 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:.
360a0 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
360c0 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
360e0 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
36100 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
36120 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.
36140 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
36160 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
36180 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
361a0 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
361c0 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
361e0 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-
36200 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,
36220 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
36240 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
36260 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.**********
36280 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
362a0 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:............................
362c0 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........
362e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36300 20 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..
36320 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:......................
36340 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.....
36360 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:..........
36380 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
363a0 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
363c0 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
363e0 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...
36400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36420 20 20 20 20 20 20 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
36440 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:.
36460 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
36480 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...............
364a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
364c0 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
364e0 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:.......
36500 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.
36520 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36560 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:
36580 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
365a0 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..............
365c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
365e0 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
36600 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:........
36620 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
36640 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......................
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 20 20 20 20 20 20 20 ................................
36680 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
366a0 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
366c0 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.
366e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
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 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:
36740 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
36760 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..............
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 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 63 ...................(line..6).*.c
367c0 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:.............
367e0 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.
36800 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...........................
36820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36840 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:.........
36860 20 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
36880 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
368a0 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:......................
368c0 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
368e0 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.........................
36900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36920 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:....
36940 20 20 20 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
36960 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................
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 20 20 ................................
369a0 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
369c0 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:..............
369e0 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.
36a00 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:.............
36a20 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.
36a40 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:............
36a60 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.....
36a80 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:....
36aa0 20 20 20 20 20 20 20 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
36ac0 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............
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 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).*
36b20 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:.......................
36b40 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...
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 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c ..............................(l
36ba0 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:..............
36bc0 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
36be0 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
36c00 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
36c20 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.......
36c40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36c60 20 20 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.
36c80 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:...
36ca0 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
36cc0 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...........................
36ce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36d00 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
36d20 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
36d40 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................
36d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36d80 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
36da0 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:..........
36dc0 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...
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 20 ................................
36e00 20 20 20 20 20 20 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
36e20 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
36e40 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
36e60 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.................
36e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36ea0 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
36ec0 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
36ee0 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
36f00 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
36f20 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.............................
36f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36f60 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,.
36f80 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
36fa0 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..
36fc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36fe0 20 20 20 20 20 20 20 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 ...............................(
37000 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
37020 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
37040 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.....................
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 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,.
370a0 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
370c0 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.......
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 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 ..........................(line.
37120 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:...
37140 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
37160 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....................
37180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
371a0 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,
371c0 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:...............
371e0 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).
37200 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:......
37220 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.
37240 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37280 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:....
372a0 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
372c0 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........................
372e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37300 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
37320 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
37340 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
37360 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:.............
37380 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
373a0 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:...
373c0 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
373e0 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.............................
37400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37420 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
37440 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
37460 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...................
37480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
374a0 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
374c0 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:.........
374e0 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)
37500 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:.....
37520 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
37540 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...............................
37560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37580 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
375a0 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
375c0 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
375e0 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
37600 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............
37620 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37640 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).*
37660 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:.......
37680 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.
376a0 0a 20 20 20 20 20 20 20 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 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
376e0 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
37700 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
37720 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:.
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 20 20 20 4d 61 72 6b ............................Mark
37760 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
37780 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
377a0 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
377c0 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
377e0 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
37800 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.***********************
37820 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
37840 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:...................
37860 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
37880 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 ................................
378a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
378c0 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
378e0 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
37900 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........
37920 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37940 20 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
37960 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
37980 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
379a0 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..........................
379c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
379e0 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
37a00 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
37a20 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......
37a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37a60 20 20 20 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
37a80 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:
37aa0 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
37ac0 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..................
37ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37b00 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
37b20 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:..........
37b40 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
37b60 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..............................
37b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37ba0 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
37bc0 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
37be0 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..........
37c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37c20 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)
37c40 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:....
37c60 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
37c80 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......................
37ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37cc0 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
37ce0 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:
37d00 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
37d20 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...............................
37d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37d60 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
37d80 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
37da0 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...........
37dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37de0 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).
37e00 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
37e20 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
37e40 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....................
37e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37e80 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-
37ea0 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:.......
37ec0 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
37ee0 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 ................................
37f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37f20 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
37f40 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
37f60 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............
37f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37fa0 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).*
37fc0 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-
37fe0 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
38000 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........................
38020 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38040 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
38060 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
38080 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....
380a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
380c0 20 20 20 20 20 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
380e0 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
38100 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
38120 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................
38140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38160 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
38180 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:........
381a0 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
381c0 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............................
381e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38200 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
38220 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
38240 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..............
38260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38280 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
382a0 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:...........
382c0 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.
382e0 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...........................
38300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38320 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-
38340 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.
38360 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...
38380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
383a0 20 20 20 20 20 20 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
383c0 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
383e0 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
38400 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........................
38420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38440 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
38460 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
38480 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............
384a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
384c0 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).*
384e0 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
38500 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
38520 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 ................................
38540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38560 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
38580 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
385a0 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.....................
385c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
385e0 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
38600 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
38620 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.
38640 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38680 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
386a0 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
386c0 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...................
386e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38700 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
38720 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:...............
38740 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
38760 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...............................
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 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
387c0 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
387e0 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............
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 28 6c 69 6e 65 20 20 38 29 0a 2a .....................(line..8).*
38840 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
38860 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
38880 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.........................
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 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-
388e0 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
38900 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
38920 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
38940 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.
38960 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...........................
38980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
389a0 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
389c0 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.
389e0 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........
38a00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38a20 20 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
38a40 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
38a60 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
38a80 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............
38aa0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38ac0 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).*
38ae0 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:
38b00 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
38b20 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....................
38b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38b60 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-
38b80 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:...
38ba0 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
38bc0 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............................
38be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38c00 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
38c20 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
38c40 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....
38c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38c80 20 20 20 20 20 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
38ca0 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
38cc0 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
38ce0 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..........
38d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38d20 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)
38d40 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
38d60 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
38d80 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.............................
38da0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38dc0 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
38de0 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
38e00 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.....
38e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38e40 20 20 20 20 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
38e60 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-
38e80 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
38ea0 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............
38ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38ee0 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).*
38f00 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
38f20 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
38f40 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....................
38f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38f80 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-
38fa0 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.
38fc0 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
38fe0 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.......................
39000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39020 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
39040 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
39060 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
39080 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...............................
390a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
390c0 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
390e0 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
39100 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.......
39120 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39140 20 20 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.
39160 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
39180 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
391a0 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...............
391c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
391e0 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
39200 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:.........
39220 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
39240 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..........................
39260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39280 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
392a0 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
392c0 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.....
392e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e ............................(lin
39320 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
39340 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
39360 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................
39380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
393a0 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
393c0 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:....................
393e0 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..
39400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39420 20 20 20 20 20 20 20 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 ...............................(
39440 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>:..
39460 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.
39480 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.............
394a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
394c0 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).*.
394e0 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:........
39500 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
39520 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..........................
39540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39560 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
39580 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
395a0 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.......
395c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
395e0 20 20 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.
39600 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-
39620 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
39640 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....................
39660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39680 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-
396a0 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:...........
396c0 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.
396e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39720 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
39740 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
39760 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
39780 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.********
397a0 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:..*.
397c0 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:..............................
397e0 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
39800 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...
39820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
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 28 6c ..............................(l
39860 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:..............
39880 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......
398a0 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:.....
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 45 64 69 74 69 6e ..........................Editin
398e0 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.
39900 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:............................
39920 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..
39940 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>:...............
39960 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.............
39980 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>:......
399a0 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
399c0 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.<
399e0 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
39a00 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
39a20 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...........................
39a40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39a60 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>:..
39a80 20 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
39aa0 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................
39ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39ae0 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
39b00 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:...........................
39b20 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.......
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 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 ..........................(line.
39b80 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:..................
39ba0 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
39bc0 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:.........
39be0 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.
39c00 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.
39c20 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
39c40 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...........
39c60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39c80 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).
39ca0 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:......................
39cc0 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.............(
39ce0 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>:.........
39d00 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
39d20 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........................
39d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39d60 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:...
39d80 20 20 20 20 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
39da0 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-
39dc0 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:......................
39de0 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......
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 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
39e40 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:.............
39e60 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
39e80 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........................
39ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39ec0 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
39ee0 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
39f00 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...............
39f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39f40 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-
39f60 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:......................
39f80 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
39fa0 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>:.........
39fc0 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
39fe0 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.............................
3a000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3a020 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:........
3a040 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
3a060 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....................
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 20 20 20 20 20 20 20 20 ................................
3a0a0 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
3a0c0 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 :...............................
3a0e0 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).
3a100 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>:..................
3a120 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
3a140 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..............................
3a160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3a180 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:.........
3a1a0 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
3a1c0 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:
3a1e0 20 20 20 20 20 20 20 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
3a200 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.
3a220 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............................
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 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:.......
3a280 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
3a2a0 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:....
3a2c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3a2e0 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
3a300 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.........
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 20 20 20 20 20 20 ................................
3a340 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
3a360 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:..........................
3a380 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
3a3a0 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...........................
3a3c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3a3e0 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:............
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 43 68 61 6e 67 69 6e .........................Changin
3a420 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........
3a440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3a460 20 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..
3a480 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:...........
3a4a0 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
3a4c0 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..........................
3a4e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3a500 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:.........
3a520 20 20 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
3a540 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...............
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 20 20 20 20 20 ................................
3a580 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-
3a5a0 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:..............................
3a5c0 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....
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 20 20 20 20 20 20 20 28 6c 69 .............................(li
3a620 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:.....................
3a640 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..
3a660 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>:........
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 46 69 6e 61 6c 69 7a .........................Finaliz
3a6a0 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................
3a6c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3a6e0 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:.
3a700 20 20 20 20 20 20 20 20 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 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......
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 20 28 6c 69 6e 65 ...........................(line
3a780 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:.....................
3a7a0 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.
3a7c0 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...........
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 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a ......................(line..6).
3a820 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:............................
3a840 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
3a860 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.............................
3a880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3a8a0 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:............
3a8c0 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
3a8e0 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>
3a900 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 :...............................
3a920 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.......
3a940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3a960 20 20 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.
3a980 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:........................
3a9a0 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
3a9c0 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.....................
3a9e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3aa00 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:....
3aa20 20 20 20 20 20 20 20 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
3aa40 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).*
3aa60 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:.............................
3aa80 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
3aaa0 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
3aac0 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
3aae0 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
3ab00 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
3ab20 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
3ab40 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
3ab60 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
3ab80 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
3aba0 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
3abc0 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
3abe0 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
3ac00 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:.
3ac20 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
3ac40 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
3ac60 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
3ac80 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:.
3aca0 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
3acc0 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.
3ace0 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
3ad00 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
3ad20 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
3ad40 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
3ad60 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
3ad80 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
3ada0 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
3adc0 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
3ade0 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
3ae00 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
3ae20 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
3ae40 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.
3ae60 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
3ae80 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
3aea0 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.
3aec0 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
3aee0 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
3af00 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
3af20 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
3af40 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
3af60 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
3af80 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.
3afa0 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
3afc0 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.
3afe0 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
3b000 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
3b020 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
3b040 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
3b060 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
3b080 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.
3b0a0 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
3b0c0 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
3b0e0 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
3b100 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.
3b120 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
3b140 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
3b160 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
3b180 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
3b1a0 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
3b1c0 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
3b1e0 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
3b200 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
3b220 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
3b240 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
3b260 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
3b280 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.
3b2a0 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
3b2c0 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.
3b2e0 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
3b300 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
3b320 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
3b340 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:.......................
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 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 31 2e 31 34 33 35 2f 6c 65 64 67 65 72 ledger-mode-20240411.1435/ledger
3b420 2d 72 65 63 6f 6e 63 69 6c 65 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -reconcile.el...................
3b440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b460 00 00 00 00 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
3b480 30 30 37 30 34 36 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 37 32 37 00 20 30 00 00 00 0070464.00000000000.016727..0...
3b4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b500 00 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...................
3b520 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...................
3b540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b600 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
3b620 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
3b640 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
3b660 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.(
3b680 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
3b6a0 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
3b6c0 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
3b6e0 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
3b700 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
3b720 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
3b740 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
3b760 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
3b780 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
3b7a0 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..;
3b7c0 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.
3b7e0 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
3b800 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
3b820 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
3b840 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
3b860 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.
3b880 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
3b8a0 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
3b8c0 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
3b8e0 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
3b900 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
3b920 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.;;.
3b940 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.,.
3b960 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,
3b980 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...
3b9a0 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
3b9c0 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
3b9e0 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
3ba00 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
3ba20 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
3ba40 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
3ba60 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
3ba80 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).
3baa0 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
3bac0 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
3bae0 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
3bb00 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)
3bb20 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-
3bb40 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
3bb60 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
3bb80 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
3bba0 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
3bbc0 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.
3bbe0 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
3bc00 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-
3bc20 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
3bc40 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
3bc60 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
3bc80 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
3bca0 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
3bcc0 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
3bce0 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
3bd00 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
3bd20 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
3bd40 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
3bd60 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
3bd80 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")
3bda0 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
3bdc0 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.
3bde0 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
3be00 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
3be20 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
3be40 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,
3be60 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
3be80 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
3bea0 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
3bec0 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
3bee0 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
3bf00 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
3bf20 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
3bf40 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.
3bf60 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
3bf80 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
3bfa0 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
3bfc0 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
3bfe0 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
3c000 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
3c020 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...
3c040 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
3c060 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
3c080 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
3c0a0 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
3c0c0 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
3c0e0 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
3c100 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
3c120 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
3c140 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
3c160 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).
3c180 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
3c1a0 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-
3c1c0 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
3c1e0 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.
3c200 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'."..
3c220 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-
3c240 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
3c260 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
3c280 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."
3c2a0 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.
3c2c0 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
3c2e0 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
3c300 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
3c320 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
3c340 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
3c360 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
3c380 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
3c3a0 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.
3c3c0 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
3c3e0 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
3c400 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
3c420 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
3c440 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)
3c460 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
3c480 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
3c4a0 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.
3c4c0 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
3c4e0 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,
3c500 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
3c520 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.
3c540 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
3c560 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
3c580 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.
3c5a0 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;
3c5c0 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.
3c5e0 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
3c600 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
3c620 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
3c640 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.'
3c660 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
3c680 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-
3c6a0 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.
3c6c0 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
3c6e0 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
3c700 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
3c720 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.
3c740 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-
3c760 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
3c780 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.
3c7a0 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
3c7c0 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
3c7e0 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
3c800 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
3c820 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
3c840 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
3c860 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
3c880 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
3c8a0 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...
3c8c0 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
3c8e0 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
3c900 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
3c920 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
3c940 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
3c960 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
3c980 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
3c9a0 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
3c9c0 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
3c9e0 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
3ca00 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
3ca20 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-
3ca40 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
3ca60 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
3ca80 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
3caa0 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
3cac0 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
3cae0 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
3cb00 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
3cb20 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
3cb40 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
3cb60 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
3cb80 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
3cba0 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
3cbc0 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
3cbe0 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
3cc00 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
3cc20 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
3cc40 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
3cc60 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
3cc80 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
3cca0 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
3ccc0 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
3cce0 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
3cd00 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
3cd20 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
3cd40 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-
3cd60 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)
3cd80 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
3cda0 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
3cdc0 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.
3cde0 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.((
3ce00 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)))
3ce20 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
3ce40 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.
3ce60 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
3ce80 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
3cea0 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."..
3cec0 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
3cee0 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
3cf00 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
3cf20 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
3cf40 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
3cf60 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
3cf80 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)
3cfa0 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
3cfc0 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
3cfe0 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
3d000 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
3d020 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)
3d040 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
3d060 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."
3d080 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.(-
3d0a0 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.
3d0c0 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.(
3d0e0 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
3d100 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.
3d120 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."...
3d140 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
3d160 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
3d180 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
3d1a0 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))
3d1c0 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
3d1e0 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
3d200 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
3d220 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
3d240 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."..
3d260 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
3d280 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
3d2a0 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
3d2c0 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.
3d2e0 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.
3d300 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.
3d320 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
3d340 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
3d360 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
3d380 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
3d3a0 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...
3d3c0 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
3d3e0 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)..................
3d400 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
3d420 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
3d440 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".................
3d460 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
3d480 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
3d4a0 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
3d4c0 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
3d4e0 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
3d500 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
3d520 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
3d540 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-
3d560 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
3d580 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-
3d5a0 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
3d5c0 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
3d5e0 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
3d600 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.((
3d620 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
3d640 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
3d660 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-
3d680 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))).....
3d6a0 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...............
3d6c0 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
3d6e0 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
3d700 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
3d720 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
3d740 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
3d760 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".......................
3d780 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-
3d7a0 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).................
3d7c0 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
3d7e0 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)))............
3d800 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
3d820 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".........................
3d840 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
3d860 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
3d880 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.
3d8a0 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
3d8c0 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
3d8e0 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
3d900 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
3d920 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
3d940 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
3d960 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
3d980 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
3d9a0 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
3d9c0 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)).
3d9e0 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
3da00 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
3da20 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
3da40 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
3da60 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
3da80 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,
3daa0 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
3dac0 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-
3dae0 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
3db00 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
3db20 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
3db40 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
3db60 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.
3db80 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
3dba0 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
3dbc0 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.
3dbe0 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
3dc00 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).............(
3dc20 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
3dc40 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))
3dc60 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
3dc80 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
3dca0 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.
3dcc0 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
3dce0 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
3dd00 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."...
3dd20 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
3dd40 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
3dd60 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)).........(
3dd80 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
3dda0 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
3ddc0 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
3dde0 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-
3de00 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
3de20 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)).
3de40 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).........(
3de60 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
3de80 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
3dea0 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.......................
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 27 70 65 6e 64 69 ..........................'pendi
3dee0 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..............................
3df00 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)))....
3df20 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.&
3df40 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.........(
3df60 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
3df80 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
3dfa0 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.
3dfc0 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
3dfe0 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).........
3e000 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-
3e020 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).......................
3e040 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)).
3e060 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
3e080 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
3e0a0 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)...
3e0c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3e0e0 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).............
3e100 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
3e120 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
3e140 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.)))............
3e160 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)..........
3e180 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
3e1a0 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)..............
3e1c0 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
3e1e0 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)........................
3e200 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
3e220 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
3e240 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........
3e260 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
3e280 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)............
3e2a0 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
3e2c0 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)......................
3e2e0 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
3e300 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
3e320 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
3e340 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).....(
3e360 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
3e380 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.()...
3e3a0 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
3e3c0 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
3e3e0 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
3e400 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-
3e420 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
3e440 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
3e460 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.........
3e480 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
3e4a0 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
3e4c0 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
3e4e0 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)...
3e500 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)....
3e520 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))......
3e540 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.
3e560 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
3e580 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.
3e5a0 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
3e5c0 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
3e5e0 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)
3e600 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))...
3e620 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
3e640 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)))
3e660 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
3e680 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
3e6a0 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
3e6c0 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
3e6e0 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)).......
3e700 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-
3e720 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-
3e740 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
3e760 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
3e780 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
3e7a0 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
3e7c0 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
3e7e0 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
3e800 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."
3e820 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
3e840 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
3e860 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.'
3e880 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)))...(
3e8a0 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
3e8c0 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-
3e8e0 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
3e900 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
3e920 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
3e940 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
3e960 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
3e980 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
3e9a0 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).
3e9c0 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
3e9e0 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
3ea00 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
3ea20 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).........(
3ea40 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
3ea60 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
3ea80 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))).......
3eaa0 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))....
3eac0 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
3eae0 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)...................
3eb00 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
3eb20 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
3eb40 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
3eb60 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
3eb80 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
3eba0 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
3ebc0 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
3ebe0 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-
3ec00 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
3ec20 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*.
3ec40 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+.(
3ec60 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
3ec80 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..............
3eca0 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
3ecc0 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)..............
3ece0 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
3ed00 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
3ed20 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
3ed40 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....
3ed60 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
3ed80 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
3eda0 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))....
3edc0 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
3ede0 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-
3ee00 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
3ee20 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.
3ee40 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.
3ee60 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
3ee80 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)))))..
3eea0 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.()
3eec0 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."...(
3eee0 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
3ef00 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
3ef20 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
3ef40 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
3ef60 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
3ef80 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.
3efa0 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))))...(
3efc0 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.()
3efe0 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.
3f000 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
3f020 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
3f040 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
3f060 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
3f080 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
3f0a0 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
3f0c0 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.
3f0e0 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.
3f100 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
3f120 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
3f140 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
3f160 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
3f180 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).
3f1a0 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
3f1c0 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
3f1e0 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
3f200 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))........
3f220 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
3f240 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
3f260 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)...
3f280 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
3f2a0 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
3f2c0 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
3f2e0 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
3f300 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
3f320 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
3f340 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
3f360 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
3f380 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.......
3f3a0 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
3f3c0 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
3f3e0 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
3f400 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).
3f420 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
3f440 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
3f460 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
3f480 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
3f4a0 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
3f4c0 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
3f4e0 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
3f500 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
3f520 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
3f540 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.
3f560 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
3f580 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
3f5a0 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
3f5c0 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)
3f5e0 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
3f600 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-
3f620 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
3f640 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
3f660 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....
3f680 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).
3f6a0 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
3f6c0 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
3f6e0 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-
3f700 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
3f720 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
3f740 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
3f760 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
3f780 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.
3f7a0 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.
3f7c0 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))..................
3f7e0 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.....
3f800 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.(
3f820 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.
3f840 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
3f860 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...........
3f880 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
3f8a0 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
3f8c0 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
3f8e0 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
3f900 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..............;;
3f920 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
3f940 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
3f960 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..
3f980 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...........
3f9a0 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))).....
3f9c0 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
3f9e0 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
3fa00 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.
3fa20 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
3fa40 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)
3fa60 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
3fa80 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.
3faa0 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.
3fac0 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."(\
3fae0 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
3fb00 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
3fb20 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
3fb40 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
3fb60 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
3fb80 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."(.*?)"."
3fba0 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))).....
3fbc0 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
3fbe0 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)
3fc00 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
3fc20 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
3fc40 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
3fc60 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
3fc80 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
3fca0 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
3fcc0 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))..................
3fce0 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
3fd00 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..
3fd20 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
3fd40 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
3fd60 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))......
3fd80 20 20 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.
3fda0 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
3fdc0 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............
3fde0 20 20 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
3fe00 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
3fe20 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))..........
3fe40 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-
3fe60 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
3fe80 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..................
3fea0 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))
3fec0 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.(
3fee0 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)).....................
3ff00 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
3ff20 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
3ff40 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...............................
3ff60 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
3ff80 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
3ffa0 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."...(
3ffc0 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))
3ffe0 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))........
40000 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
40020 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
40040 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
40060 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...............................
40080 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..................
400a0 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.......
400c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
400e0 20 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............
40100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 74 .............................(nt
40120 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).......................
40140 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
40160 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..
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 20 20 20 20 20 20 20 ................................
401a0 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
401c0 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..................
401e0 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
40200 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.................
40220 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
40240 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.........
40260 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
40280 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...........
402a0 20 20 20 20 20 20 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
402c0 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-
402e0 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)..........................
40300 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-
40320 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...................
40340 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
40360 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................
40380 20 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-
403a0 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
403c0 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).............................
403e0 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)))))..
40400 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
40420 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
40440 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.
40460 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.
40480 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*.
404a0 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
404c0 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*.(
404e0 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
40500 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
40520 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.
40540 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
40560 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)"
40580 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
405a0 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
405c0 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
405e0 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).............................
40600 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
40620 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)....
40640 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))
40660 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
40680 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."("))..........
406a0 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))))).
406c0 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-
406e0 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
40700 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)))....
40720 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
40740 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
40760 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)).......
40780 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
407a0 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
407c0 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
407e0 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
40800 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
40820 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
40840 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
40860 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.
40880 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
408a0 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)).
408c0 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).
408e0 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)...
40900 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
40920 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
40940 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
40960 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
40980 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
409a0 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
409c0 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
409e0 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
40a00 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
40a20 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
40a40 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
40a60 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
40a80 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
40aa0 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-
40ac0 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
40ae0 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.
40b00 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
40b20 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
40b40 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
40b60 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
40b80 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
40ba0 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
40bc0 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
40be0 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
40c00 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
40c20 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
40c40 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
40c60 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
40c80 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
40ca0 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
40cc0 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
40ce0 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
40d00 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
40d20 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
40d40 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
40d60 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
40d80 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
40da0 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-
40dc0 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.........
40de0 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
40e00 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........................
40e20 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...
40e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
40e60 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............
40e80 20 20 20 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
40ea0 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.............
40ec0 20 20 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
40ee0 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........................
40f00 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
40f20 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....
40f40 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))
40f60 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
40f80 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
40fa0 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
40fc0 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
40fe0 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
41000 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
41020 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...
41040 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
41060 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
41080 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.
410a0 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
410c0 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)..
410e0 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
41100 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.(>.(
41120 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
41140 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
41160 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
41180 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
411a0 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
411c0 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
411e0 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
41200 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
41220 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
41240 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
41260 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.
41280 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
412a0 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")
412c0 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)
412e0 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
41300 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))).....
41320 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
41340 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.
41360 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
41380 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
413a0 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-
413c0 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)......
413e0 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))
41400 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
41420 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.....
41440 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
41460 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
41480 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)).
414a0 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
414c0 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
414e0 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
41500 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-
41520 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...
41540 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
41560 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.........................
41580 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
415a0 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))....
415c0 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
415e0 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
41600 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
41620 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
41640 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
41660 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
41680 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
416a0 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
416c0 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
416e0 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-
41700 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
41720 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)))...
41740 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
41760 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
41780 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-
417a0 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-
417c0 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.
417e0 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)
41800 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
41820 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)...........(
41840 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
41860 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
41880 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
418a0 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
418c0 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.
418e0 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."
41900 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-
41920 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
41940 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
41960 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)
41980 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))..
419a0 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
419c0 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)
419e0 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.
41a00 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
41a20 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-
41a40 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-
41a60 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
41a80 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.(
41aa0 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))).....
41ac0 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
41ae0 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
41b00 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
41b20 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
41b40 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
41b60 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
41b80 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
41ba0 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
41bc0 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
41be0 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
41c00 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-
41c20 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
41c40 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)...
41c60 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
41c80 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
41ca0 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
41cc0 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
41ce0 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
41d00 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
41d20 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"
41d40 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
41d60 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"
41d80 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).....(
41da0 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
41dc0 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
41de0 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
41e00 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
41e20 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
41e40 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)......
41e60 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").
41e80 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
41ea0 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
41ec0 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
41ee0 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
41f00 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
41f20 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
41f40 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
41f60 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
41f80 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
41fa0 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
41fc0 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
41fe0 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
42000 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
42020 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
42040 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
42060 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
42080 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].....["
420a0 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
420c0 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
420e0 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
42100 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
42120 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
42140 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
42160 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
42180 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]...
421a0 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
421c0 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-
421e0 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
42200 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
42220 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
42240 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
42260 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
42280 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
422a0 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
422c0 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
422e0 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.
42300 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].
42320 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
42340 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
42360 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]....."---"...
42380 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].....[
423a0 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-
423c0 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
423e0 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
42400 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].....)).
42420 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
42440 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
42460 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
42480 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
424a0 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
424c0 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
424e0 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
42500 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
42520 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
42540 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
42560 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
42580 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
425a0 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.........
425c0 20 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
425e0 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...........................
42600 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
42620 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...................
42640 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
42660 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
42680 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)..........................
426a0 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
426c0 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
426e0 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
42700 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
42720 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.............
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 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 31 2e 31 34 33 35 2f 64 69 72 00 00 00 ledger-mode-20240411.1435/dir...
42820 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42860 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
42880 30 30 30 31 31 33 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 36 36 37 00 20 30 00 00 00 0001134.00000000000.013667..0...
428a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
428c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
428e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42900 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...................
42920 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...................
42940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
429a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
429c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
429e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42a00 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
42a20 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
42a40 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
42a60 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
42a80 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
42aa0 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
42ac0 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
42ae0 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
42b00 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
42b20 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
42b40 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,.
42b60 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
42b80 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
42ba0 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
42bc0 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.
42be0 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
42c00 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
42c20 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)
42c40 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.....
42c60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42c80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42d20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 31 2e 31 34 33 35 2f 6c 65 64 67 65 72 ledger-mode-20240411.1435/ledger
42e20 2d 72 65 67 65 78 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -regex.el.......................
42e40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42e60 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
42e80 30 30 33 33 30 36 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 30 37 34 00 20 30 00 00 00 0033067.00000000000.016074..0...
42ea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42ec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42f00 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...................
42f20 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...................
42f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43000 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
43020 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
43040 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
43060 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
43080 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.
430a0 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
430c0 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
430e0 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
43100 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.;
43120 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
43140 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
43160 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
43180 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
431a0 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..;;.;;
431c0 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
431e0 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
43200 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
43220 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
43240 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
43260 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.
43280 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
432a0 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
432c0 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
432e0 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
43300 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
43320 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
43340 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
43360 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
43380 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....;;;
433a0 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
433c0 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
433e0 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-
43400 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
43420 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
43440 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-
43460 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
43480 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
434a0 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,]
434c0 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.
434e0 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..."\\
43500 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.
43520 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..."^[;#|\\*
43540 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
43560 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
43580 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
435a0 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.
435c0 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
435e0 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..."
43600 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
43620 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
43640 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]+[-/][-
43660 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-+\\*\\)?\\(?:\\
43680 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-*\
436a0 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
436c0 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]+[
436e0 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-+\\(([^)]+
43700 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-*\\(;
43720 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
43740 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]+[-/][-
43760 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-+\\(([^)]+)\\
43780 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-*\\(;\\|
437a0 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
437c0 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]+[-/][-/
437e0 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-+\\)?\
43800 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-*\\(;\\|$\\)")..
43820 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
43840 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]+\\
43860 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
43880 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
438a0 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
438c0 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
438e0 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
43900 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..
43920 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
43940 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..."
43960 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]+\\(?:.[^][
43980 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
439a0 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.
439c0 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
439e0 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
43a00 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
43a20 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
43a40 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."[])]?")).
43a60 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
43a80 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]+\\(
43aa0 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
43ac0 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))..;;.
43ae0 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
43b00 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
43b20 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
43b40 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
43b60 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
43b80 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\\|%
43ba0 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-
43bc0 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
43be0 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
43c00 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."\\(^[.
43c20 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
43c40 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
43c60 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
43c80 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
43ca0 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))
43cc0 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
43ce0 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)...
43d00 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
43d20 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.".
43d40 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))...
43d60 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-
43d80 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....
43da0 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
43dc0 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
43de0 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
43e00 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
43e20 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).......
43e40 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................
43e60 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-"
43e80 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).............
43ea0 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
43ec0 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
43ee0 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
43f00 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)........
43f20 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
43f40 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
43f60 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.............
43f80 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.
43fa0 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.......
43fc0 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
43fe0 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"
44000 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)))........
44020 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...
44040 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...............`
44060 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
44080 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
440a0 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)))..............
440c0 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)........
440e0 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
44100 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)...
44120 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....
44140 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.
44160 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
44180 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)..............................
441a0 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"))................
441c0 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
441e0 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
44200 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).......
44220 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)).......
44240 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)...
44260 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)).
44280 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
442a0 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
442c0 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
442e0 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
44300 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.(
44320 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))...............
44340 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)...........
44360 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))..
44380 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)
443a0 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
443c0 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
443e0 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))))...........
44400 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............
44420 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.
44440 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)))..........
44460 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)).
44480 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...
444a0 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
444c0 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
444e0 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-".
44500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
44520 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
44540 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)...........................
44560 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
44580 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........
445a0 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.......
445c0 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................
445e0 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-"
44600 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).............
44620 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
44640 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)))...............
44660 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....................(
44680 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....................
446a0 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...................
446c0 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.................
446e0 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-"
44700 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).........
44720 20 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
44740 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))........
44760 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-
44780 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)....
447a0 20 20 20 20 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
447c0 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...
447e0 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..
44800 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...........
44820 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-
44840 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)......
44860 20 20 20 20 20 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 ............................."-"
44880 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)))............
448a0 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)........
448c0 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
448e0 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."....
44900 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)..
44920 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.....
44940 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
44960 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).
44980 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
449a0 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)))..
449c0 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)))).......
449e0 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
44a00 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-
44a20 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
44a40 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
44a60 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.
44a80 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.?-.?/
44aa0 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
44ac0 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))..............
44ae0 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
44b00 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))).............
44b20 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
44b40 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
44b60 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
44b80 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
44ba0 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....`
44bc0 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
44be0 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.?
44c00 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
44c20 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
44c40 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".
44c60 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.
44c80 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
44ca0 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
44cc0 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
44ce0 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
44d00 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
44d20 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.(+?
44d40 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
44d60 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
44d80 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
44da0 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
44dc0 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)))..."
44de0 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
44e00 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
44e20 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
44e40 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
44e60 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-
44e80 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).?\;..........
44ea0 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)
44ec0 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
44ee0 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
44f00 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).....
44f20 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
44f40 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
44f60 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
44f80 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......
44fa0 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
44fc0 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.(
44fe0 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
45000 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.(+
45020 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
45040 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).(+
45060 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.
45080 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)).......
450a0 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
450c0 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
450e0 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
45100 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
45120 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...
45140 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
45160 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
45180 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.?\[.?\(
451a0 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
451c0 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
451e0 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.?\[.?\()))
45200 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
45220 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....`(
45240 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-
45260 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
45280 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).......
452a0 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.?\].?\))))))...""
452c0 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
452e0 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.
45300 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
45320 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.?\"))).?\")..
45340 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.
45360 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....
45380 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 ....................?-.?\[.?\]..
453a0 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 ......................?..?,.?\;.
453c0 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 ?+.?*.?/.?^.??.?:.?&.?|.?!.?=...
453e0 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 .....................?\<.?\>.?\{
45400 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
45420 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
45440 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
45460 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
45480 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
454a0 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.
454c0 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).....
454e0 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
45500 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
45520 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....`
45540 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
45560 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
45580 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-
455a0 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
455c0 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.,
455e0 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
45600 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)..
45620 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
45640 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)).......
45660 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
45680 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).............
456a0 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)................
456c0 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-
456e0 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
45700 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
45720 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.(*.
45740 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.?\
45760 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
45780 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).?\})..............
457a0 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
457c0 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).?\])................
457e0 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.?\))).?\)))))
45800 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
45820 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.
45840 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
45860 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)........
45880 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
458a0 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
458c0 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
458e0 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.
45900 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
45920 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
45940 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
45960 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.(
45980 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
459a0 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...(
459c0 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
459e0 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
45a00 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)
45a20 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
45a40 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)..
45a60 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
45a80 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)..........
45aa0 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
45ac0 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)))..............(
45ae0 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
45b00 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)))..."
45b20 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
45b40 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
45b60 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
45b80 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.
45ba0 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."\
45bc0 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]*[-+=]?.*
45be0 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
45c00 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.".*\\)?"...........;
45c20 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.
45c40 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.....
45c60 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
45c80 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
45ca0 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
45cc0 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
45ce0 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
45d00 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
45d20 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
45d40 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
45d60 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
45d80 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
45da0 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............"\\([-+=]?.
45dc0 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,.]+?\\)\\)".
45de0 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)]+\\)?"..
45e00 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
45e20 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."\\)?"..........."\\(
45e40 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;]+?\\)?"......
45e60 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]*\\)?
45e80 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
45ea0 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")))).
45ec0 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
45ee0 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)))...""
45f00 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
45f20 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.(
45f40 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")..................
45f60 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.?-))....
45f80 20 20 20 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
45fa0 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))........
45fc0 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.,
45fe0 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)........
46000 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.(
46020 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
46040 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)))........................
46060 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
46080 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))).........
460a0 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).
460c0 20 20 20 20 20 20 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
460e0 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).....
46100 20 20 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
46120 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))))
46140 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
46160 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
46180 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..
461a0 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))
461c0 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
461e0 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
46200 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\\}\
46220 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
46240 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
46260 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.......
46280 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
462a0 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
462c0 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...
462e0 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]+\\([*!]\\)\\
46300 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..........
46320 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]+\\((.*?)\\)\\)?"..;
46340 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..........."\\(?
46360 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,
46380 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..........."\\(?:\\(?:\
463a0 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]*\\
463c0 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....
463e0 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
46400 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:]
46420 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.......
46440 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
46460 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..........."\\(\\([*!]\\)?"...
46480 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....
464a0 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:]]*\\(.*?\\)\\)
464c0 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..........
464e0 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
46500 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]*?\
46520 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
46540 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\\|[[:
46560 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,\\}\\)"..........."
46580 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
465a0 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...........))....(
465c0 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-
465e0 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]")...
46600 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
46620 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..........
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46680 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 31 2e 31 34 33 35 2f 6c 65 64 67 65 72 ledger-mode-20240411.1435/ledger
46820 2d 73 74 61 74 65 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -state.el.......................
46840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46860 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
46880 30 30 32 33 30 37 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 31 30 32 00 20 30 00 00 00 0023077.00000000000.016102..0...
468a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
468c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
468e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46900 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...................
46920 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...................
46940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
469a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
469c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
469e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46a00 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
46a20 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
46a40 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
46a60 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
46a80 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.
46aa0 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
46ac0 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
46ae0 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
46b00 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.;
46b20 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
46b40 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
46b60 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
46b80 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
46ba0 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..;;.;;
46bc0 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
46be0 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
46c00 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
46c20 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
46c40 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
46c60 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.
46c80 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
46ca0 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
46cc0 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
46ce0 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
46d00 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
46d20 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
46d40 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
46d60 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
46d80 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....;;;
46da0 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
46dc0 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
46de0 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.'
46e00 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
46e20 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
46e40 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
46e60 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
46e80 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."...
46ea0 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)
46ec0 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
46ee0 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.
46f00 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
46f20 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-
46f40 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
46f60 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)).
46f80 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./
46fa0 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
46fc0 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.
46fe0 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).............
47000 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
47020 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
47040 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
47060 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.".
47080 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
470a0 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)).....
470c0 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
470e0 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
47100 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."\\*
47120 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.(
47140 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)))))..(
47160 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
47180 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
471a0 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...
471c0 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).....
471e0 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 ......"!"........."*")....."")).
47200 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.(
47220 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
47240 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
47260 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
47280 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)......
472a0 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
472c0 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
472e0 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
47300 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
47320 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.....
47340 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
47360 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
47380 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
473a0 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.";".
473c0 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.
473e0 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
47400 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).
47420 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.
47440 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
47460 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
47480 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
474a0 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
474c0 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.
474e0 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
47500 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
47520 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
47540 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.
47560 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
47580 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
475a0 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
475c0 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
475e0 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
47600 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
47620 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
47640 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
47660 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
47680 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
476a0 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
476c0 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.
476e0 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
47700 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....
47720 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
47740 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......
47760 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.
47780 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
477a0 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.....
477c0 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./=\\-
477e0 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-
47800 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
47820 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.....
47840 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.
47860 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).'(?\*.?\!))........
47880 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
478a0 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))))....
478c0 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
478e0 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
47900 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.
47920 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-
47940 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.((
47960 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)))........
47980 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)..........
479a0 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)
479c0 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
479e0 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).
47a00 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-
47a20 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
47a40 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
47a60 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.
47a80 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
47aa0 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
47ac0 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
47ae0 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
47b00 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)).....
47b20 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
47b40 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).".")........
47b60 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.".
47b80 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).......
47ba0 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."..")
47bc0 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
47be0 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))...
47c00 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)))...
47c20 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.
47c40 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
47c60 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
47c80 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.(
47ca0 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)).......
47cc0 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]")......
47ce0 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")...
47d00 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))......
47d20 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
47d40 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))))....
47d60 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."*!."
47d80 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
47da0 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.(>
47dc0 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-
47de0 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))............
47e00 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..............
47e20 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
47e40 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)..............
47e60 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
47e80 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
47ea0 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.
47ec0 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.(
47ee0 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)).............
47f00 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..................
47f20 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.."*.").............
47f40 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
47f60 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
47f80 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))..........
47fa0 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.................
47fc0 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.."!.")..............
47fe0 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))
48000 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.........
48020 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.."*.")........
48040 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
48060 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
48080 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
480a0 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]\\)"
480c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
480e0 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))
48100 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..........
48120 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")......
48140 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))...
48160 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.".[.
48180 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-
481a0 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
481c0 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
481e0 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
48200 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))))......
48220 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
48240 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
48260 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
48280 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
482a0 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
482c0 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
482e0 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.....
48300 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
48320 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
48340 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)......
48360 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).............(
48380 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
483a0 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]
483c0 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
483e0 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
48400 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
48420 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
48440 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)).....
48460 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...........
48480 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
484a0 0a 20 20 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
484c0 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
484e0 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)).........
48500 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))))
48520 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)).....
48540 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
48560 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
48580 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))...........(
485a0 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.(
485c0 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]").............
485e0 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")......
48600 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)))....
48620 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."
48640 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
48660 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))).............
48680 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)...........
486a0 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
486c0 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
486e0 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]\\)
48700 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 "...............................
48720 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
48740 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.
48760 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.?.)))))).....
48780 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)).........
487a0 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))......
487c0 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./=
487e0 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..........
48800 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
48820 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
48840 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
48860 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
48880 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
488a0 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]\\)"
488c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
488e0 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)........
48900 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
48920 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").................(
48940 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))................(
48960 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]")...........
48980 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))..........
489a0 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.".").........
489c0 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)))))))...
489e0 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
48a00 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)..
48a20 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
48a40 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
48a60 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
48a80 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.(
48aa0 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
48ac0 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))........
48ae0 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))...
48b00 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
48b20 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).(
48b40 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
48b60 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..
48b80 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........
48ba0 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).............
48bc0 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).............
48be0 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)..........
48c00 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-+[*!
48c20 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
48c40 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))......
48c60 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))).......
48c80 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)........
48ca0 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
48cc0 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
48ce0 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
48d00 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
48d20 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
48d40 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
48d60 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
48d80 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.(
48da0 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]")........
48dc0 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-
48de0 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
48e00 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
48e20 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
48e40 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
48e60 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)............
48e80 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.(
48ea0 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)).........
48ec0 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
48ee0 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
48f00 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))..........
48f20 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.".*")..............
48f40 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
48f60 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)).........
48f80 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
48fa0 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).
48fc0 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
48fe0 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
49000 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).
49020 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..
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
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 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 31 31 2e 31 34 33 35 2f 6c 65 64 67 65 72 ledger-mode-20240411.1435/ledger
49220 2d 66 6f 6e 74 73 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -fonts.el.......................
49240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49260 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
49280 30 30 36 31 30 30 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 31 30 35 00 20 30 00 00 00 0061006.00000000000.016105..0...
492a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
492c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
492e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49300 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...................
49320 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...................
49340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
493a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
493c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
493e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49400 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
49420 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
49440 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
49460 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
49480 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.
494a0 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
494c0 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
494e0 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
49500 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.;
49520 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
49540 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
49560 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
49580 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
495a0 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..;;.;;
495c0 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
495e0 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
49600 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
49620 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
49640 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
49660 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.
49680 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
496a0 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
496c0 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
496e0 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
49700 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
49720 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
49740 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
49760 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
49780 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.....;;
497a0 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
497c0 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
497e0 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
49800 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
49820 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
49840 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.
49860 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
49880 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
498a0 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
498c0 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
498e0 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.
49900 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
49920 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
49940 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...`
49960 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-
49980 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
499a0 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
499c0 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
499e0 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
49a00 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
49a20 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.
49a40 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
49a60 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-
49a80 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
49aa0 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
49ac0 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"
49ae0 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
49b00 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
49b20 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
49b40 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
49b60 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
49b80 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.
49ba0 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
49bc0 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
49be0 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
49c00 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...`((
49c20 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
49c40 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
49c60 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
49c80 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
49ca0 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
49cc0 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).'
49ce0 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
49d00 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
49d20 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"
49d40 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
49d60 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...`(
49d80 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
49da0 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
49dc0 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
49de0 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...`
49e00 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
49e20 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
49e40 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
49e60 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
49e80 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
49ea0 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
49ec0 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"...
49ee0 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.
49f00 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
49f20 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
49f40 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.
49f60 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
49f80 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
49fa0 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.:
49fc0 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-
49fe0 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
4a000 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
4a020 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
4a040 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
4a060 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-
4a080 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
4a0a0 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
4a0c0 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
4a0e0 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
4a100 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
4a120 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.
4a140 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-
4a160 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...`(
4a180 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
4a1a0 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
4a1c0 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
4a1e0 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-
4a200 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
4a220 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
4a240 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
4a260 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
4a280 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
4a2a0 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
4a2c0 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
4a2e0 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
4a300 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
4a320 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
4a340 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.
4a360 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
4a380 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
4a3a0 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
4a3c0 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.
4a3e0 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
4a400 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
4a420 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
4a440 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
4a460 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
4a480 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
4a4a0 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-
4a4c0 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
4a4e0 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
4a500 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
4a520 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
4a540 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
4a560 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
4a580 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
4a5a0 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
4a5c0 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..
4a5e0 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
4a600 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.
4a620 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
4a640 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
4a660 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.:
4a680 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
4a6a0 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
4a6c0 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
4a6e0 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
4a700 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
4a720 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
4a740 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
4a760 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
4a780 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.
4a7a0 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
4a7c0 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
4a7e0 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
4a800 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
4a820 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
4a840 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
4a860 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
4a880 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
4a8a0 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.:
4a8c0 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
4a8e0 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
4a900 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
4a920 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
4a940 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
4a960 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
4a980 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
4a9a0 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-
4a9c0 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
4a9e0 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
4aa00 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"...:
4aa20 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
4aa40 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.
4aa60 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
4aa80 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
4aaa0 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
4aac0 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...`
4aae0 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
4ab00 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
4ab20 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
4ab40 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-
4ab60 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
4ab80 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
4aba0 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"..
4abc0 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
4abe0 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.
4ac00 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
4ac20 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
4ac40 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)
4ac60 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
4ac80 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
4aca0 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
4acc0 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"
4ace0 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
4ad00 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
4ad20 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-
4ad40 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
4ad60 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-
4ad80 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
4ada0 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
4adc0 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
4ade0 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
4ae00 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
4ae20 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
4ae40 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
4ae60 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
4ae80 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
4aea0 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
4aec0 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-
4aee0 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
4af00 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
4af20 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"...:
4af40 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
4af60 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
4af80 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
4afa0 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
4afc0 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
4afe0 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
4b000 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-
4b020 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
4b040 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
4b060 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-
4b080 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
4b0a0 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
4b0c0 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
4b0e0 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
4b100 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-
4b120 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
4b140 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
4b160 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
4b180 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).
4b1a0 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
4b1c0 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))
4b1e0 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
4b200 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)..
4b220 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
4b240 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
4b260 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.
4b280 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"...:
4b2a0 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
4b2c0 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..
4b2e0 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
4b300 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.
4b320 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
4b340 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
4b360 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
4b380 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
4b3a0 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
4b3c0 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
4b3e0 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...`((
4b400 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
4b420 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
4b440 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
4b460 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
4b480 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
4b4a0 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))..."
4b4c0 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
4b4e0 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
4b500 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-
4b520 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
4b540 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.
4b560 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
4b580 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
4b5a0 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.
4b5c0 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))..."
4b5e0 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
4b600 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
4b620 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
4b640 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
4b660 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
4b680 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"...
4b6a0 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.
4b6c0 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...`
4b6e0 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
4b700 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.
4b720 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
4b740 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
4b760 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))
4b780 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
4b7a0 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
4b7c0 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
4b7e0 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))...
4b800 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
4b820 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)..(
4b840 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
4b860 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
4b880 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
4b8a0 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"...
4b8c0 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.
4b8e0 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...`
4b900 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
4b920 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
4b940 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".
4b960 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
4b980 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
4b9a0 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
4b9c0 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.
4b9e0 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-
4ba00 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
4ba20 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))
4ba40 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
4ba60 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)
4ba80 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
4baa0 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
4bac0 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
4bae0 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"..
4bb00 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
4bb20 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...`((
4bb40 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))
4bb60 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
4bb80 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).
4bba0 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-
4bbc0 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
4bbe0 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
4bc00 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,
4bc20 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
4bc40 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-
4bc60 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
4bc80 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))
4bca0 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
4bcc0 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)
4bce0 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
4bd00 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
4bd20 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".
4bd40 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
4bd60 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
4bd80 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
4bda0 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.
4bdc0 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
4bde0 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
4be00 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.
4be20 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
4be40 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
4be60 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
4be80 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
4bea0 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.:
4bec0 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
4bee0 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
4bf00 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
4bf20 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
4bf40 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...`((
4bf60 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
4bf80 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
4bfa0 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
4bfc0 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-
4bfe0 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
4c000 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
4c020 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
4c040 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
4c060 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
4c080 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
4c0a0 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
4c0c0 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
4c0e0 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
4c100 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
4c120 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
4c140 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
4c160 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-
4c180 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
4c1a0 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.
4c1c0 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
4c1e0 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"..
4c200 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
4c220 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.:
4c240 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
4c260 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.
4c280 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
4c2a0 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
4c2c0 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
4c2e0 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
4c300 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-
4c320 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
4c340 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
4c360 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
4c380 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
4c3a0 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
4c3c0 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
4c3e0 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
4c400 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
4c420 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
4c440 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
4c460 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
4c480 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
4c4a0 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
4c4c0 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
4c4e0 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
4c500 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
4c520 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
4c540 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
4c560 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
4c580 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
4c5a0 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
4c5c0 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
4c5e0 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
4c600 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
4c620 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.'
4c640 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
4c660 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
4c680 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
4c6a0 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
4c6c0 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.
4c6e0 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
4c700 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
4c720 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.
4c740 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.
4c760 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
4c780 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
4c7a0 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
4c7c0 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))))).....(
4c7e0 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
4c800 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
4c820 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))..........
4c840 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
4c860 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
4c880 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
4c8a0 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
4c8c0 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
4c8e0 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
4c900 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.
4c920 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
4c940 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
4c960 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.
4c980 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
4c9a0 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")).......(
4c9c0 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)))
4c9e0 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
4ca00 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.
4ca20 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
4ca40 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
4ca60 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
4ca80 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...)...
4caa0 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
4cac0 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
4cae0 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
4cb00 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
4cb20 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.`
4cb40 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
4cb60 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
4cb80 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
4cba0 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
4cbc0 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
4cbe0 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
4cc00 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))..............
4cc20 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-
4cc40 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)).............
4cc60 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
4cc80 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-
4cca0 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...`(("^[;#%|*].*$"
4ccc0 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)...
4cce0 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:
4cd00 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
4cd20 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)...
4cd40 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-
4cd60 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
4cd80 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.........'(("^[.
4cda0 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
4cdc0 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]
4cde0 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:]]+\\(.
4ce00 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
4ce20 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)......
4ce40 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-
4ce60 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))...........("^[.\
4ce80 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:]]+\
4cea0 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
4cec0 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)..
4cee0 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
4cf00 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))..........
4cf20 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
4cf40 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:]]+\\(.*\\)\\)?$"............
4cf60 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-
4cf80 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
4cfa0 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))....
4cfc0 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\\)\\(?:
4cfe0 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:]]+\\(.*\\)\\)?$"......
4d000 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
4d020 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
4d040 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.
4d060 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
4d080 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:]]+\\(.*\\)\
4d0a0 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
4d0c0 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).........
4d0e0 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
4d100 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))...........("
4d120 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:]
4d140 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.'
4d160 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)
4d180 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
4d1a0 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)).....
4d1c0 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\\)\\>.
4d1e0 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
4d200 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))))).....("
4d220 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:]]+\\(
4d240 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]*\\)\\(?:=\\(.*\\)\\)?\\)?
4d260 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
4d280 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
4d2a0 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)..
4d2c0 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
4d2e0 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
4d300 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:]]
4d320 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
4d340 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:]]+\\(.*\\)\\)
4d360 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\\)\\
4d380 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:]]+\\(.*\\)\\)?\\)\\
4d3a0 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
4d3c0 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
4d3e0 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.:
4d400 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-
4d420 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.'
4d440 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
4d460 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-
4d480 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)).....("
4d4a0 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:]]+\\
4d4c0 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
4d4e0 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
4d500 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
4d520 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\
4d540 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:]]+\\(.*\\)\
4d560 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
4d580 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
4d5a0 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.:
4d5c0 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\\)"..
4d5e0 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:]]+\
4d600 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:]]*"......
4d620 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:]]*\\(.
4d640 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-
4d660 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.'
4d680 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
4d6a0 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
4d6c0 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.
4d6e0 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\\)"..............."
4d700 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:]]+\\(.*?\\)".....
4d720 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]\
4d740 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,\\}\\)\\(.*\\)\\)?\\)?$")...
4d760 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
4d780 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-
4d7a0 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)..
4d7c0 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
4d7e0 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
4d800 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:]]+\\(.*\\)\\)
4d820 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
4d840 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
4d860 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
4d880 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
4d8a0 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\\)\\>"..............."[^
4d8c0 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
4d8e0 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\\)\\>
4d900 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
4d920 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\\)\
4d940 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:]]+\\(.*\\)\\)?$"..
4d960 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
4d980 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
4d9a0 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)
4d9c0 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
4d9e0 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]+\\(;.*\\)"
4da00 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)).
4da20 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\\)\\(
4da40 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:]]+\\(.*\\)\\)?$"....
4da60 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
4da80 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
4daa0 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)
4dac0 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\\
4dae0 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:]]+\\(.*\\)\\)?$"
4db00 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
4db20 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
4db40 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
4db60 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
4db80 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\\)\\>.*"..........
4dba0 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
4dbc0 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
4dbe0 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
4dc00 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)))
4dc20 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:]
4dc40 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
4dc60 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.
4dc80 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
4dca0 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."^\\
4dcc0 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\\)"...............
4dce0 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]*?\\)
4dd00 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:]]*"..............."\\(
4dd20 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:]]*\\(.*\\)\\)?\\)?$
4dd40 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
4dd60 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
4dd80 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)..
4dda0 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-
4ddc0 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."^
4dde0 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\\)"..............."\\(?:[
4de00 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\\)".........
4de20 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
4de40 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\\)\\>.*\\)?\\)?$").....
4de60 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
4de80 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
4dea0 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.'
4dec0 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
4dee0 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\\)\
4df00 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:]]+\\(.*\\)\\)?$"..
4df20 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
4df40 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
4df60 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))....
4df80 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:]]+\
4dfa0 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
4dfc0 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.
4dfe0 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
4e000 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\\)\
4e020 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
4e040 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:]]+\\(.*\\)\\
4e060 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
4e080 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
4e0a0 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
4e0c0 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
4e0e0 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)).....("^
4e100 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:]]+\\
4e120 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
4e140 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)......(
4e160 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-
4e180 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\\)\\
4e1a0 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:]]+\\(.*\\)\\)?$"...
4e1c0 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
4e1e0 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
4e200 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
4e220 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:]]+\\(.*\\)\\
4e240 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-
4e260 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-
4e280 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)..
4e2a0 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
4e2c0 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]+\\(;.*\\)".(
4e2e0 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))...
4e300 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\\)\\(?
4e320 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:]]+\\(.*\\)\\)?$".....
4e340 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
4e360 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
4e380 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
4e3a0 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\\
4e3c0 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:]]+\\(.*\\)\\)?$"
4e3e0 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
4e400 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.'
4e420 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))
4e440 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\\)"....
4e460 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:]]+\\(
4e480 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]+"..............."
4e4a0 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:]][^[:
4e4c0 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]*\\)?\\)".............
4e4e0 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:]]+\\(\".*?\"\\
4e500 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]+\\)"............
4e520 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:]]+\\(.*\\)\\)
4e540 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
4e560 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.
4e580 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
4e5a0 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
4e5c0 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.
4e5e0 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
4e600 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
4e620 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
4e640 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).....
4e660 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
4e680 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
4e6a0 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]+\\
4e6c0 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
4e6e0 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
4e700 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:]]+\\(.*\\)\
4e720 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
4e740 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)..........
4e760 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
4e780 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))...........("^[
4e7a0 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:]
4e7c0 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.'
4e7e0 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
4e800 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
4e820 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))))
4e840 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]\\)".
4e860 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:]]+
4e880 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]+".............
4e8a0 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:]\
4e8c0 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]+\\)?\\)"..............."\\(?:
4e8e0 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:]]+\\(.*?\\)"..........
4e900 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,\
4e920 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 \}\\)\\(.*?\\)"..............."\
4e940 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,\\}\\)\\
4e960 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 (;.*\\)\\)?\\)?\\)?\\)?$")......
4e980 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
4e9a0 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
4e9c0 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)......
4e9e0 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
4ea00 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-
4ea20 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............
4ea40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4ea60 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
4ea80 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
4eaa0 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.
4eac0 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
4eae0 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..............................
4eb00 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-
4eb20 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)
4eb40 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
4eb60 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]\\)\
4eb80 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
4eba0 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
4ebc0 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:]]+\\(.*\\)
4ebe0 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
4ec00 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
4ec20 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))......
4ec40 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.
4ec60 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
4ec80 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
4eca0 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."^\\(?:\\([=
4ecc0 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
4ece0 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...................."
4ed00 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
4ed20 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]+\\(
4ed40 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
4ed60 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....................".*\\)"..
4ed80 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
4eda0 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
4edc0 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.
4ede0 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 ...................)............
4ee00 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
4ee20 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
4ee40 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).............
4ee60 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)).
4ee80 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)
4eea0 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
4eec0 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
4eee0 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..................
4ef00 20 20 20 20 20 20 20 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
4ef20 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))))
4ef40 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."^\\(?:\\(\\([=
4ef60 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
4ef80 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...............
4efa0 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]*\\)"....
4efc0 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............
4efe0 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.
4f000 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,
4f020 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
4f040 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
4f060 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).............
4f080 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)).
4f0a0 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)
4f0c0 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
4f0e0 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)).........
4f100 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
4f120 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)......
4f140 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
4f160 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
4f180 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
4f1a0 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.......................
4f1c0 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
4f1e0 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.................
4f200 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
4f220 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)).......
4f240 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
4f260 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)......,@(
4f280 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.......
4f2a0 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]+\\(;.*\\)".........
4f2c0 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)
4f2e0 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
4f300 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.
4f320 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.
4f340 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
4f360 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
4f380 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.........
4f3a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4f3c0 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
4f3e0 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...................
4f400 20 20 20 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
4f420 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))...
4f440 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)...........
4f460 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
4f480 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
4f4a0 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......................
4f4c0 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
4f4e0 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.
4f500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4f520 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
4f540 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
4f560 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
4f580 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))))))...
4f5a0 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
4f5c0 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-
4f5e0 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
4f600 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...........................
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 ................................