summaryrefslogtreecommitdiff
path: root/localrepo/ledger-mode-20240423.445.tar
blob: 81dcaa21ebf472b0faadd8f3fe02aa2b149e73b0 (plain)
ofshex dumpascii
0000 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 32 33 2e 34 34 35 2f 00 00 00 00 00 00 00 ledger-mode-20240423.445/.......
0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0060 00 00 00 00 30 30 30 30 37 35 35 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000755.0000000.0000000.0000
0080 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 31 31 32 00 20 35 00 00 00 0000000.00000000000.013112..5...
00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
00e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0100 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
0120 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
0140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
01e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0200 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 32 33 2e 34 34 35 2f 6c 65 64 67 65 72 2d ledger-mode-20240423.445/ledger-
0220 74 65 78 69 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 texi.el.........................
0240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0260 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
0280 30 30 31 35 33 32 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 36 34 36 00 20 30 00 00 00 0015320.00000000000.015646..0...
02a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
02e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0300 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
0320 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
0340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
03e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
0400 3b 3b 3b 20 6c 65 64 67 65 72 2d 74 65 78 69 2e 65 6c 20 2d 2d 2d 20 48 65 6c 70 65 72 20 63 6f ;;;.ledger-texi.el.---.Helper.co
0420 64 65 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 74 68 65 20 22 6c 65 64 67 65 72 22 20 63 6f 6d de.for.use.with.the."ledger".com
0440 6d 61 6e 64 2d 6c 69 6e 65 20 74 6f 6f 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 mand-line.tool..-*-.lexical-bind
0460 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 ing:.t;.-*-..;;.Copyright.(C).20
0480 30 33 2d 32 30 31 36 20 4a 6f 68 6e 20 57 69 65 67 6c 65 79 20 28 6a 6f 68 6e 77 20 41 54 20 67 03-2016.John.Wiegley.(johnw.AT.g
04a0 6e 75 20 44 4f 54 20 6f 72 67 29 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 6e 6f 74 nu.DOT.org)..;;.This.file.is.not
04c0 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 54 68 69 73 20 69 73 20 .part.of.GNU.Emacs...;;.This.is.
04e0 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 free.software;.you.can.redistrib
0500 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 20 75 6e 64 65 72 0a 3b 3b ute.it.and/or.modify.it.under.;;
0520 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 .the.terms.of.the.GNU.General.Pu
0540 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 blic.License.as.published.by.the
0560 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 .Free.;;.Software.Foundation;.ei
0580 74 68 65 72 20 76 65 72 73 69 6f 6e 20 32 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 ther.version.2,.or.(at.your.opti
05a0 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 0a 3b 3b 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 on).any.later.;;.version..;;.;;.
05c0 54 68 69 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 This.is.distributed.in.the.hope.
05e0 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 that.it.will.be.useful,.but.WITH
0600 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 OUT.;;.ANY.WARRANTY;.without.eve
0620 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 n.the.implied.warranty.of.MERCHA
0640 4e 54 41 42 49 4c 49 54 59 20 6f 72 0a 3b 3b 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 NTABILITY.or.;;.FITNESS.FOR.A.PA
0660 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 RTICULAR.PURPOSE...See.the.GNU.G
0680 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 66 6f 72 20 6d 6f 72 eneral.Public.License.;;.for.mor
06a0 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 e.details..;;.;;.You.should.have
06c0 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 .received.a.copy.of.the.GNU.Gene
06e0 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 ral.Public.License.;;.along.with
0700 20 47 4e 55 20 45 6d 61 63 73 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 .GNU.Emacs;.see.the.file.COPYING
0720 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 20 ...If.not,.write.to.the.;;.Free.
0740 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 Software.Foundation,.Inc.,.51.Fr
0760 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 anklin.Street,.Fifth.Floor,.Bost
0780 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 on,.;;.MA.02110-1301.USA...;;;.C
07a0 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 28 64 65 66 76 61 72 ommentary:.;;..;;;.Code:.(defvar
07c0 20 6c 65 64 67 65 72 2d 62 69 6e 61 72 79 2d 70 61 74 68 29 0a 0a 28 64 65 66 67 72 6f 75 70 20 .ledger-binary-path)..(defgroup.
07e0 6c 65 64 67 65 72 2d 74 65 78 69 20 6e 69 6c 0a 20 20 22 4f 70 74 69 6f 6e 73 20 66 6f 72 20 77 ledger-texi.nil..."Options.for.w
0800 6f 72 6b 69 6e 67 20 6f 6e 20 4c 65 64 67 65 72 20 74 65 78 69 20 64 6f 63 75 6d 65 6e 74 61 74 orking.on.Ledger.texi.documentat
0820 69 6f 6e 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 29 0a 0a 28 64 65 66 63 75 73 74 ion"...:group.'ledger)..(defcust
0840 6f 6d 20 6c 65 64 67 65 72 2d 74 65 78 69 2d 73 61 6d 70 6c 65 2d 64 6f 63 2d 70 61 74 68 20 22 om.ledger-texi-sample-doc-path."
0860 7e 2f 6c 65 64 67 65 72 2f 64 6f 63 2f 73 61 6d 70 6c 65 2e 64 61 74 22 0a 20 20 22 4c 6f 63 61 ~/ledger/doc/sample.dat"..."Loca
0880 74 69 6f 6e 20 66 6f 72 20 73 61 6d 70 6c 65 20 64 61 74 61 20 74 6f 20 62 65 20 75 73 65 64 20 tion.for.sample.data.to.be.used.
08a0 69 6e 20 74 65 78 69 20 74 65 73 74 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 66 69 6c 65 0a 20 20 in.texi.tests."...:type.'file...
08c0 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 74 65 78 69 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d :group.'ledger-texi)..(defcustom
08e0 20 6c 65 64 67 65 72 2d 74 65 78 69 2d 6e 6f 72 6d 61 6c 69 7a 61 74 69 6f 6e 2d 61 72 67 73 20 .ledger-texi-normalization-args.
0900 22 2d 2d 61 72 67 73 2d 6f 6e 6c 79 20 2d 2d 63 6f 6c 75 6d 6e 73 20 38 30 22 0a 20 20 22 54 65 "--args-only.--columns.80"..."Te
0920 78 69 20 6e 6f 72 6d 61 6c 69 7a 61 74 69 6f 6e 20 66 6f 72 20 70 72 6f 64 75 63 69 6e 67 20 6c xi.normalization.for.producing.l
0940 65 64 67 65 72 20 6f 75 74 70 75 74 2e 22 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 0a 20 edger.output."...:type.'string..
0960 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 74 65 78 69 29 0a 0a 28 64 65 66 75 6e 20 6c 65 .:group.'ledger-texi)..(defun.le
0980 64 67 65 72 2d 75 70 64 61 74 65 2d 74 65 73 74 20 28 29 0a 20 20 28 69 6e 74 65 72 61 63 74 69 dger-update-test.()...(interacti
09a0 76 65 29 0a 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 ve)...(goto-char.(point-min))...
09c0 28 6c 65 74 20 28 28 63 6f 6d 6d 61 6e 64 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 (let.((command.(buffer-substring
09e0 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 .(point-min).(line-end-position)
0a00 29 29 29 0a 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5e 3c 3c 3c ))).....(re-search-forward."^<<<
0a20 5c 6e 22 29 0a 20 20 20 20 28 6c 65 74 20 28 28 62 65 67 20 28 70 6f 69 6e 74 29 29 20 65 6e 64 \n").....(let.((beg.(point)).end
0a40 29 0a 20 20 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5e 3e 3e 3e ).......(re-search-forward."^>>>
0a60 22 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 65 6e 64 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e ").......(setq.end.(match-beginn
0a80 69 6e 67 20 30 29 29 0a 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 0a 20 ing.0)).......(forward-line.1)..
0aa0 20 20 20 20 20 28 6c 65 74 20 28 28 6f 75 74 70 75 74 2d 62 65 67 20 28 70 6f 69 6e 74 29 29 29 .....(let.((output-beg.(point)))
0ac0 0a 20 20 20 20 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5e 3e 3e .........(re-search-forward."^>>
0ae0 3e 22 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 2d 62 65 >").........(goto-char.(match-be
0b00 67 69 6e 6e 69 6e 67 20 30 29 29 0a 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 ginning.0)).........(delete-regi
0b20 6f 6e 20 6f 75 74 70 75 74 2d 62 65 67 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 28 on.output-beg.(point)).........(
0b40 61 70 70 6c 79 20 23 27 63 61 6c 6c 2d 70 72 6f 63 65 73 73 2d 72 65 67 69 6f 6e 0a 20 20 20 20 apply.#'call-process-region.....
0b60 20 20 20 20 20 20 20 20 20 20 20 62 65 67 20 65 6e 64 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d ...........beg.end.(expand-file-
0b80 6e 61 6d 65 20 22 7e 2f 50 72 6f 64 75 63 74 73 2f 6c 65 64 67 65 72 2f 64 65 62 75 67 2f 6c 65 name."~/Products/ledger/debug/le
0ba0 64 67 65 72 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 74 20 6e 69 6c 0a dger")................nil.t.nil.
0bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 2d 66 22 20 22 2d 22 20 22 2d 2d 61 72 67 73 2d ..............."-f"."-"."--args-
0be0 6f 6e 6c 79 22 20 22 2d 2d 63 6f 6c 75 6d 6e 73 3d 38 30 22 20 22 2d 2d 6e 6f 2d 63 6f 6c 6f 72 only"."--columns=80"."--no-color
0c00 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 63 "................(split-string.c
0c20 6f 6d 6d 61 6e 64 20 22 20 22 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d ommand."."))))))..(defun.ledger-
0c40 74 65 78 69 2d 77 72 69 74 65 2d 74 65 73 74 20 28 6e 61 6d 65 20 63 6f 6d 6d 61 6e 64 20 69 6e texi-write-test.(name.command.in
0c60 70 75 74 20 6f 75 74 70 75 74 20 26 6f 70 74 69 6f 6e 61 6c 20 63 61 74 65 67 6f 72 79 29 0a 20 put.output.&optional.category)..
0c80 20 28 6c 65 74 20 28 28 62 75 66 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 0a 20 .(let.((buf.(current-buffer)))..
0ca0 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 66 69 6e 64 2d 66 69 ...(with-current-buffer.(find-fi
0cc0 6c 65 2d 6e 6f 73 65 6c 65 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 le-noselect.....................
0ce0 20 20 20 20 20 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 28 63 6f 6e 63 61 74 20 ......(expand-file-name.(concat.
0d00 6e 61 6d 65 20 22 2e 74 65 73 74 22 29 20 63 61 74 65 67 6f 72 79 29 29 0a 20 20 20 20 20 20 28 name.".test").category)).......(
0d20 65 72 61 73 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 63 61 73 65 2d erase-buffer).......(let.((case-
0d40 66 6f 6c 64 2d 73 65 61 72 63 68 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 73 fold-search.nil)).........(if.(s
0d60 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5c 5c 24 4c 45 44 47 45 52 5c 5c 73 2d 2b 22 20 63 6f 6d tring-match."\\$LEDGER\\s-+".com
0d80 6d 61 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6d 6d 61 6e 64 20 mand).............(setq.command.
0da0 28 72 65 70 6c 61 63 65 2d 6d 61 74 63 68 20 22 22 20 74 20 74 20 63 6f 6d 6d 61 6e 64 29 29 29 (replace-match."".t.t.command)))
0dc0 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 20 2d 66 20 .........(if.(string-match.".-f.
0de0 5c 5c 24 5c 5c 28 5b 2d 61 2d 7a 5d 2b 5c 5c 29 22 20 63 6f 6d 6d 61 6e 64 29 0a 20 20 20 20 20 \\$\\([-a-z]+\\)".command)......
0e00 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6d 6d 61 6e 64 20 28 72 65 70 6c 61 63 65 2d 6d 61 .......(setq.command.(replace-ma
0e20 74 63 68 20 22 22 20 74 20 74 20 63 6f 6d 6d 61 6e 64 29 29 29 29 0a 20 20 20 20 20 20 28 69 6e tch."".t.t.command)))).......(in
0e40 73 65 72 74 20 63 6f 6d 6d 61 6e 64 20 3f 5c 6e 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 sert.command.?\n).......(insert.
0e60 22 3c 3c 3c 22 20 3f 5c 6e 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 69 6e 70 75 74 29 0a "<<<".?\n).......(insert.input).
0e80 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 3e 3e 3e 31 22 20 3f 5c 6e 29 0a 20 20 20 20 20 20 ......(insert.">>>1".?\n).......
0ea0 28 69 6e 73 65 72 74 20 6f 75 74 70 75 74 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 3e (insert.output).......(insert.">
0ec0 3e 3e 32 22 20 3f 5c 6e 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 3d 3d 3d 20 30 22 20 >>2".?\n).......(insert."===.0".
0ee0 3f 5c 6e 29 0a 20 20 20 20 20 20 28 73 61 76 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 28 ?\n).......(save-buffer).......(
0f00 75 6e 6c 65 73 73 20 28 65 71 20 62 75 66 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 unless.(eq.buf.(current-buffer))
0f20 0a 20 20 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 28 63 75 72 72 65 6e 74 2d 62 .........(kill-buffer.(current-b
0f40 75 66 66 65 72 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 74 65 78 69 2d uffer))))))..(defun.ledger-texi-
0f60 75 70 64 61 74 65 2d 74 65 73 74 20 28 29 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 update-test.()...(interactive)..
0f80 20 28 6c 65 74 20 28 28 64 65 74 61 69 6c 73 20 28 6c 65 64 67 65 72 2d 74 65 78 69 2d 74 65 73 .(let.((details.(ledger-texi-tes
0fa0 74 2d 64 65 74 61 69 6c 73 29 29 0a 20 20 20 20 20 20 20 20 28 6e 61 6d 65 20 28 66 69 6c 65 2d t-details)).........(name.(file-
0fc0 6e 61 6d 65 2d 73 61 6e 73 2d 65 78 74 65 6e 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 name-sans-extension.............
0fe0 20 20 20 28 66 69 6c 65 2d 6e 61 6d 65 2d 6e 6f 6e 64 69 72 65 63 74 6f 72 79 20 28 62 75 66 66 ...(file-name-nondirectory.(buff
1000 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 29 29 29 29 29 0a 20 20 20 20 28 6c 65 64 67 65 72 2d 74 65 er-file-name))))).....(ledger-te
1020 78 69 2d 77 72 69 74 65 2d 74 65 73 74 0a 20 20 20 20 20 6e 61 6d 65 20 28 6e 74 68 20 30 20 64 xi-write-test......name.(nth.0.d
1040 65 74 61 69 6c 73 29 0a 20 20 20 20 20 28 6e 74 68 20 31 20 64 65 74 61 69 6c 73 29 0a 20 20 20 etails)......(nth.1.details)....
1060 20 20 28 6c 65 64 67 65 72 2d 74 65 78 69 2d 69 6e 76 6f 6b 65 2d 63 6f 6d 6d 61 6e 64 0a 20 20 ..(ledger-texi-invoke-command...
1080 20 20 20 20 28 6c 65 64 67 65 72 2d 74 65 78 69 2d 65 78 70 61 6e 64 2d 63 6f 6d 6d 61 6e 64 0a ....(ledger-texi-expand-command.
10a0 20 20 20 20 20 20 20 28 6e 74 68 20 30 20 64 65 74 61 69 6c 73 29 0a 20 20 20 20 20 20 20 28 6c .......(nth.0.details)........(l
10c0 65 64 67 65 72 2d 74 65 78 69 2d 77 72 69 74 65 2d 74 65 73 74 2d 64 61 74 61 20 6e 61 6d 65 20 edger-texi-write-test-data.name.
10e0 28 6e 74 68 20 31 20 64 65 74 61 69 6c 73 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 (nth.1.details)))))))..(defun.le
1100 64 67 65 72 2d 74 65 78 69 2d 74 65 73 74 2d 64 65 74 61 69 6c 73 20 28 29 0a 20 20 28 67 6f 74 dger-texi-test-details.()...(got
1120 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 28 6c 65 74 20 28 28 63 6f 6d o-char.(point-min))...(let.((com
1140 6d 61 6e 64 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 28 70 6f 69 6e 74 29 20 28 mand.(buffer-substring.(point).(
1160 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 29 0a 20 20 20 20 20 20 20 20 69 6e 70 line-end-position))).........inp
1180 75 74 20 6f 75 74 70 75 74 29 0a 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 ut.output).....(re-search-forwar
11a0 64 20 22 5e 3c 3c 3c 22 29 0a 20 20 20 20 28 6c 65 74 20 28 28 69 6e 70 75 74 2d 62 65 67 20 28 d."^<<<").....(let.((input-beg.(
11c0 31 2b 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 29 29 0a 20 20 20 20 20 20 28 72 65 2d 73 65 1+.(match-end.0)))).......(re-se
11e0 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5e 3e 3e 3e 31 22 29 0a 20 20 20 20 20 20 28 6c 65 74 arch-forward."^>>>1").......(let
1200 20 28 28 6f 75 74 70 75 74 2d 62 65 67 20 28 31 2b 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 .((output-beg.(1+.(match-end.0))
1220 29 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 69 6e 70 75 74 20 28 62 75 66 66 65 72 2d 73 )).........(setq.input.(buffer-s
1240 75 62 73 74 72 69 6e 67 20 69 6e 70 75 74 2d 62 65 67 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e ubstring.input-beg.(match-beginn
1260 69 6e 67 20 30 29 29 29 0a 20 20 20 20 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 ing.0))).........(re-search-forw
1280 61 72 64 20 22 5e 3e 3e 3e 32 22 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6f 75 74 70 75 ard."^>>>2").........(setq.outpu
12a0 74 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 20 6f 75 74 70 75 74 2d 62 65 67 20 28 t.(buffer-substring.output-beg.(
12c0 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 29 0a 20 20 20 20 20 20 20 20 28 6c 69 match-beginning.0))).........(li
12e0 73 74 20 63 6f 6d 6d 61 6e 64 20 69 6e 70 75 74 20 6f 75 74 70 75 74 29 29 29 29 29 0a 0a 28 64 st.command.input.output)))))..(d
1300 65 66 75 6e 20 6c 65 64 67 65 72 2d 74 65 78 69 2d 65 78 70 61 6e 64 2d 63 6f 6d 6d 61 6e 64 20 efun.ledger-texi-expand-command.
1320 28 63 6f 6d 6d 61 6e 64 20 64 61 74 61 2d 66 69 6c 65 29 0a 20 20 28 69 66 20 28 73 74 72 69 6e (command.data-file)...(if.(strin
1340 67 2d 6d 61 74 63 68 20 22 5c 5c 24 4c 45 44 47 45 52 22 20 63 6f 6d 6d 61 6e 64 29 0a 20 20 20 g-match."\\$LEDGER".command)....
1360 20 20 20 28 72 65 70 6c 61 63 65 2d 6d 61 74 63 68 20 28 66 6f 72 6d 61 74 20 22 25 73 20 2d 66 ...(replace-match.(format."%s.-f
1380 20 5c 22 25 73 5c 22 20 25 73 22 20 6c 65 64 67 65 72 2d 62 69 6e 61 72 79 2d 70 61 74 68 0a 20 .\"%s\".%s".ledger-binary-path..
13a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 61 74 61 ............................data
13c0 2d 66 69 6c 65 20 6c 65 64 67 65 72 2d 74 65 78 69 2d 6e 6f 72 6d 61 6c 69 7a 61 74 69 6f 6e 2d -file.ledger-texi-normalization-
13e0 61 72 67 73 29 20 74 20 74 20 63 6f 6d 6d 61 6e 64 29 0a 20 20 20 20 28 63 6f 6e 63 61 74 20 28 args).t.t.command).....(concat.(
1400 66 6f 72 6d 61 74 20 22 25 73 20 2d 66 20 5c 22 25 73 5c 22 20 25 73 20 22 20 6c 65 64 67 65 72 format."%s.-f.\"%s\".%s.".ledger
1420 2d 62 69 6e 61 72 79 2d 70 61 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -binary-path....................
1440 20 64 61 74 61 2d 66 69 6c 65 20 6c 65 64 67 65 72 2d 74 65 78 69 2d 6e 6f 72 6d 61 6c 69 7a 61 .data-file.ledger-texi-normaliza
1460 74 69 6f 6e 2d 61 72 67 73 29 20 63 6f 6d 6d 61 6e 64 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 tion-args).command)))..(defun.le
1480 64 67 65 72 2d 74 65 78 69 2d 69 6e 76 6f 6b 65 2d 63 6f 6d 6d 61 6e 64 20 28 63 6f 6d 6d 61 6e dger-texi-invoke-command.(comman
14a0 64 29 0a 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 20 28 73 68 65 6c 6c 2d 63 6f d)...(with-temp-buffer.(shell-co
14c0 6d 6d 61 6e 64 20 63 6f 6d 6d 61 6e 64 20 74 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 mmand.command.t.(current-buffer)
14e0 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3d 20 28 70 6f ).....................(if.(=.(po
1500 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 int-min).(point-max))...........
1520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 ..............(progn............
1540 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 2d 6d 61 72 6b 20 6e 69 6c 20 74 29 ...............(push-mark.nil.t)
1560 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 ...........................(mess
1580 61 67 65 20 22 43 6f 6d 6d 61 6e 64 20 27 25 73 27 20 79 69 65 6c 64 65 64 20 6e 6f 20 72 65 73 age."Command.'%s'.yielded.no.res
15a0 75 6c 74 20 61 74 20 25 64 22 20 63 6f 6d 6d 61 6e 64 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 ult.at.%d".command.(point)).....
15c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 69 6e 67 29 29 0a 20 20 ......................(ding))...
15e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 74 72 69 ....................(buffer-stri
1600 6e 67 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 74 65 78 69 2d 77 72 69 74 65 ng))))..(defun.ledger-texi-write
1620 2d 74 65 73 74 2d 64 61 74 61 20 28 6e 61 6d 65 20 69 6e 70 75 74 29 0a 20 20 28 6c 65 74 20 28 -test-data.(name.input)...(let.(
1640 28 70 61 74 68 20 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 6e 61 6d 65 20 74 65 6d (path.(expand-file-name.name.tem
1660 70 6f 72 61 72 79 2d 66 69 6c 65 2d 64 69 72 65 63 74 6f 72 79 29 29 29 0a 20 20 20 20 28 77 69 porary-file-directory))).....(wi
1680 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 66 69 6e 64 2d 66 69 6c 65 2d 6e 6f 73 th-current-buffer.(find-file-nos
16a0 65 6c 65 63 74 20 70 61 74 68 29 0a 20 20 20 20 20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72 29 elect.path).......(erase-buffer)
16c0 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 69 6e 70 75 74 29 0a 20 20 20 20 20 20 28 73 61 76 .......(insert.input).......(sav
16e0 65 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 70 61 74 68 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 e-buffer)).....path))..(defun.le
1700 64 67 65 72 2d 74 65 78 69 2d 75 70 64 61 74 65 2d 65 78 61 6d 70 6c 65 73 20 28 29 0a 20 20 28 dger-texi-update-examples.()...(
1720 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 interactive)...(save-excursion..
1740 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 28 ...(goto-char.(point-min)).....(
1760 77 68 69 6c 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5e 40 63 20 5c 5c while.(re-search-forward."^@c.\\
1780 28 5c 5c 28 3f 3a 73 6d 5c 5c 29 3f 65 78 5c 5c 29 20 5c 5c 28 5c 5c 53 2d 2b 5c 5c 29 3a 20 5c (\\(?:sm\\)?ex\\).\\(\\S-+\\):.\
17a0 5c 28 2e 2a 5c 5c 29 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 73 65 63 \(.*\\)".nil.t).......(let.((sec
17c0 74 69 6f 6e 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 tion.(match-string.1))..........
17e0 20 20 20 28 65 78 61 6d 70 6c 65 2d 6e 61 6d 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32 ...(example-name.(match-string.2
1800 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6d 6d 61 6e 64 20 28 6d 61 74 63 68 2d 73 )).............(command.(match-s
1820 74 72 69 6e 67 20 33 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 64 61 74 61 2d 66 69 6c 65 tring.3)).............(data-file
1840 20 6c 65 64 67 65 72 2d 74 65 78 69 2d 73 61 6d 70 6c 65 2d 64 6f 63 2d 70 61 74 68 29 29 0a 20 .ledger-texi-sample-doc-path))..
1860 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 .......(goto-char.(match-end.0))
1880 0a 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 .........(forward-line).........
18a0 28 77 68 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 40 5c 5c 28 5c 5c 28 3f 3a 73 6d 61 6c (when.(looking-at."@\\(\\(?:smal
18c0 6c 5c 5c 29 3f 65 78 61 6d 70 6c 65 5c 5c 29 22 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 l\\)?example\\)")...........(let
18e0 20 28 28 62 65 67 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 .((beg.(point))).............(re
1900 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5e 40 65 6e 64 20 5c 5c 28 5c 5c 28 3f 3a 73 -search-forward."^@end.\\(\\(?:s
1920 6d 61 6c 6c 5c 5c 29 3f 65 78 61 6d 70 6c 65 5c 5c 29 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 mall\\)?example\\)")............
1940 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 62 65 67 20 28 31 2b 20 28 70 6f 69 6e 74 29 29 .(delete-region.beg.(1+.(point))
1960 29 29 29 0a 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6c 65 74 20 28 28 63 61 73 65 2d 66 )))..........(when.(let.((case-f
1980 6f 6c 64 2d 73 65 61 72 63 68 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 old-search.nil))................
19a0 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 20 2d 66 20 5c 5c 24 5c 5c 28 5b 2d 61 2d 7a 5d .(string-match.".-f.\\$\\([-a-z]
19c0 2b 5c 5c 29 22 20 63 6f 6d 6d 61 6e 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 +\\)".command))...........(let.(
19e0 28 6c 61 62 65 6c 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 20 63 6f 6d 6d 61 6e 64 29 29 (label.(match-string.1.command))
1a00 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6d 6d 61 6e 64 20 28 72 65 70 ).............(setq.command.(rep
1a20 6c 61 63 65 2d 6d 61 74 63 68 20 22 22 20 74 20 74 20 63 6f 6d 6d 61 6e 64 29 29 0a 20 20 20 20 lace-match."".t.t.command)).....
1a40 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 ........(save-excursion.........
1a60 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 ......(goto-char.(point-min))...
1a80 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 28 66 6f 72 ............(search-forward.(for
1aa0 6d 61 74 20 22 40 63 20 64 61 74 61 3a 20 25 73 22 20 6c 61 62 65 6c 29 29 0a 20 20 20 20 20 20 mat."@c.data:.%s".label)).......
1ac0 20 20 20 20 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 40 5c 5c 28 ........(re-search-forward."@\\(
1ae0 5c 5c 28 3f 3a 73 6d 61 6c 6c 5c 5c 29 3f 65 78 61 6d 70 6c 65 5c 5c 29 22 29 0a 20 20 20 20 20 \\(?:small\\)?example\\)")......
1b00 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 .........(forward-line).........
1b20 20 20 20 20 20 20 28 6c 65 74 20 28 28 62 65 67 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 ......(let.((beg.(point)))......
1b40 20 20 20 20 20 20 20 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 40 ...........(re-search-forward."@
1b60 65 6e 64 20 5c 5c 28 5c 5c 28 3f 3a 73 6d 61 6c 6c 5c 5c 29 3f 65 78 61 6d 70 6c 65 5c 5c 29 22 end.\\(\\(?:small\\)?example\\)"
1b80 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 64 61 74 61 2d 66 69 6c ).................(setq.data-fil
1ba0 65 20 28 6c 65 64 67 65 72 2d 74 65 78 69 2d 77 72 69 74 65 2d 74 65 73 74 2d 64 61 74 61 0a 20 e.(ledger-texi-write-test-data..
1bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1be0 28 66 6f 72 6d 61 74 20 22 25 73 2e 64 61 74 22 20 6c 61 62 65 6c 29 0a 20 20 20 20 20 20 20 20 (format."%s.dat".label).........
1c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 .........................(buffer
1c20 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 -substring-no-properties........
1c40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 62 65 67 20 28 ...........................beg.(
1c60 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 29 29 29 29 29 29 0a 0a 20 20 20 20 20 match-beginning.0)))))))).......
1c80 20 20 20 28 6c 65 74 20 28 28 73 65 63 74 69 6f 6e 2d 6e 61 6d 65 20 28 69 66 20 28 73 74 72 69 ...(let.((section-name.(if.(stri
1ca0 6e 67 3d 20 73 65 63 74 69 6f 6e 20 22 73 6d 65 78 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ng=.section."smex").............
1cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 73 6d 61 6c 6c 65 78 61 6d 70 6c ...................."smallexampl
1ce0 65 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e"..............................
1d00 20 22 65 78 61 6d 70 6c 65 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6f 75 74 70 ."example"))...............(outp
1d20 75 74 20 28 6c 65 64 67 65 72 2d 74 65 78 69 2d 69 6e 76 6f 6b 65 2d 63 6f 6d 6d 61 6e 64 0a 20 ut.(ledger-texi-invoke-command..
1d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 74 65 ......................(ledger-te
1d60 78 69 2d 65 78 70 61 6e 64 2d 63 6f 6d 6d 61 6e 64 20 63 6f 6d 6d 61 6e 64 20 64 61 74 61 2d 66 xi-expand-command.command.data-f
1d80 69 6c 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 40 22 20 73 65 ile))))...........(insert."@".se
1da0 63 74 69 6f 6e 2d 6e 61 6d 65 20 3f 5c 6e 20 6f 75 74 70 75 74 0a 20 20 20 20 20 20 20 20 20 20 ction-name.?\n.output...........
1dc0 20 20 20 20 20 20 20 20 22 40 65 6e 64 20 22 20 73 65 63 74 69 6f 6e 2d 6e 61 6d 65 20 3f 5c 6e ........"@end.".section-name.?\n
1de0 29 29 0a 0a 20 20 20 20 20 20 20 20 3b 3b 20 55 70 64 61 74 65 20 74 68 65 20 72 65 67 72 65 73 ))..........;;.Update.the.regres
1e00 73 69 6f 6e 20 74 65 73 74 20 61 73 73 6f 63 69 61 74 65 64 20 77 69 74 68 20 74 68 69 73 20 65 sion.test.associated.with.this.e
1e20 78 61 6d 70 6c 65 0a 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 74 65 78 69 2d 77 72 69 74 xample.........(ledger-texi-writ
1e40 65 2d 74 65 73 74 20 65 78 61 6d 70 6c 65 2d 6e 61 6d 65 20 63 6f 6d 6d 61 6e 64 20 6e 69 6c 20 e-test.example-name.command.nil.
1e60 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nil.............................
1e80 20 20 20 20 22 2e 2e 2f 74 65 73 74 2f 6d 61 6e 75 61 6c 22 29 29 29 29 29 0a 0a 28 70 72 6f 76 ...."../test/manual")))))..(prov
1ea0 69 64 65 20 27 6c 65 64 67 65 72 2d 74 65 78 69 29 0a 0a 3b 3b 3b 20 6c 65 64 67 65 72 2d 74 65 ide.'ledger-texi)..;;;.ledger-te
1ec0 78 69 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 xi.el.ends.here.................
1ee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1f80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2000 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 32 33 2e 34 34 35 2f 6c 65 64 67 65 72 2d ledger-mode-20240423.445/ledger-
2020 63 68 65 63 6b 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 check.el........................
2040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2060 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
2080 30 30 31 32 33 32 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 37 35 31 00 20 30 00 00 00 0012322.00000000000.015751..0...
20a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
20e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2100 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
2120 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
2140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2200 3b 3b 3b 20 6c 65 64 67 65 72 2d 63 68 65 63 6b 2e 65 6c 20 2d 2d 2d 20 48 65 6c 70 65 72 20 63 ;;;.ledger-check.el.---.Helper.c
2220 6f 64 65 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 74 68 65 20 22 6c 65 64 67 65 72 22 20 63 6f ode.for.use.with.the."ledger".co
2240 6d 6d 61 6e 64 2d 6c 69 6e 65 20 74 6f 6f 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e mmand-line.tool..-*-.lexical-bin
2260 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 ding:.t;.-*-..;;.Copyright.(C).2
2280 30 31 35 20 43 72 61 69 67 20 45 61 72 6c 73 20 28 65 6e 64 65 72 77 38 38 20 41 54 20 67 6d 61 015.Craig.Earls.(enderw88.AT.gma
22a0 69 6c 20 44 4f 54 20 63 6f 6d 29 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 6e 6f 74 il.DOT.com)..;;.This.file.is.not
22c0 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 54 68 69 73 20 69 73 20 .part.of.GNU.Emacs...;;.This.is.
22e0 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 free.software;.you.can.redistrib
2300 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 20 75 6e 64 65 72 0a 3b 3b ute.it.and/or.modify.it.under.;;
2320 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 .the.terms.of.the.GNU.General.Pu
2340 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 blic.License.as.published.by.the
2360 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 .Free.;;.Software.Foundation;.ei
2380 74 68 65 72 20 76 65 72 73 69 6f 6e 20 32 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 ther.version.2,.or.(at.your.opti
23a0 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 0a 3b 3b 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 on).any.later.;;.version..;;.;;.
23c0 54 68 69 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 This.is.distributed.in.the.hope.
23e0 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 that.it.will.be.useful,.but.WITH
2400 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 OUT.;;.ANY.WARRANTY;.without.eve
2420 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 n.the.implied.warranty.of.MERCHA
2440 4e 54 41 42 49 4c 49 54 59 20 6f 72 0a 3b 3b 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 NTABILITY.or.;;.FITNESS.FOR.A.PA
2460 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 RTICULAR.PURPOSE...See.the.GNU.G
2480 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 66 6f 72 20 6d 6f 72 eneral.Public.License.;;.for.mor
24a0 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 e.details..;;.;;.You.should.have
24c0 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 .received.a.copy.of.the.GNU.Gene
24e0 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 ral.Public.License.;;.along.with
2500 20 47 4e 55 20 45 6d 61 63 73 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 .GNU.Emacs;.see.the.file.COPYING
2520 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 20 ...If.not,.write.to.the.;;.Free.
2540 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 Software.Foundation,.Inc.,.51.Fr
2560 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 anklin.Street,.Fifth.Floor,.Bost
2580 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 on,.;;.MA.02110-1301.USA...;;;.C
25a0 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 20 20 50 72 6f 76 69 64 65 20 73 65 63 69 61 6c 20 6d 6f ommentary:.;;..Provide.secial.mo
25c0 64 65 20 74 6f 20 63 6f 72 72 65 63 74 20 65 72 72 6f 72 73 20 69 6e 20 6c 65 64 67 65 72 20 77 de.to.correct.errors.in.ledger.w
25e0 68 65 6e 20 72 75 6e 6e 69 6e 67 20 77 69 74 68 20 2d 2d 73 74 72 69 63 74 20 61 6e 64 20 2d 2d hen.running.with.--strict.and.--
2600 65 78 70 6c 69 63 69 74 0a 3b 3b 0a 3b 3b 20 41 64 61 70 74 65 64 20 74 6f 20 6c 65 64 67 65 72 explicit.;;.;;.Adapted.to.ledger
2620 20 6d 6f 64 65 20 62 79 20 43 72 61 69 67 20 45 61 72 6c 73 20 3c 65 6e 64 65 72 77 38 38 20 61 .mode.by.Craig.Earls.<enderw88.a
2640 74 20 67 6d 61 69 6c 20 64 6f 74 20 63 6f 6d 3e 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 72 65 t.gmail.dot.com>..;;;.Code:..(re
2660 71 75 69 72 65 20 27 65 61 73 79 6d 65 6e 75 29 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 quire.'easymenu).(require.'ledge
2680 72 2d 6e 61 76 69 67 61 74 65 29 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 72 65 70 r-navigate).(require.'ledger-rep
26a0 6f 72 74 29 20 3b 20 66 6f 72 20 6c 65 64 67 65 72 2d 6d 61 73 74 65 72 2d 66 69 6c 65 0a 0a 0a ort).;.for.ledger-master-file...
26c0 28 64 65 66 76 61 72 20 6c 65 64 67 65 72 2d 63 68 65 63 6b 2d 62 75 66 66 65 72 2d 6e 61 6d 65 (defvar.ledger-check-buffer-name
26e0 20 22 2a 4c 65 64 67 65 72 20 43 68 65 63 6b 2a 22 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c ."*Ledger.Check*").(defvar-local
2700 20 6c 65 64 67 65 72 2d 63 68 65 63 6b 2d 2d 6f 72 69 67 69 6e 61 6c 2d 77 69 6e 64 6f 77 2d 63 .ledger-check--original-window-c
2720 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 6e 69 6c 29 0a 0a 0a 0a 0a 28 64 65 66 76 61 72 20 6c 65 onfiguration.nil).....(defvar.le
2740 64 67 65 72 2d 63 68 65 63 6b 2d 6d 6f 64 65 2d 6d 61 70 0a 20 20 28 6c 65 74 20 28 28 6d 61 70 dger-check-mode-map...(let.((map
2760 20 28 6d 61 6b 65 2d 73 70 61 72 73 65 2d 6b 65 79 6d 61 70 29 29 29 0a 20 20 20 20 28 64 65 66 .(make-sparse-keymap))).....(def
2780 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 52 45 54 22 29 20 23 27 6c 65 64 67 65 72 ine-key.map.(kbd."RET").#'ledger
27a0 2d 72 65 70 6f 72 74 2d 76 69 73 69 74 2d 73 6f 75 72 63 65 29 0a 20 20 20 20 28 64 65 66 69 6e -report-visit-source).....(defin
27c0 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 71 22 29 20 23 27 6c 65 64 67 65 72 2d 63 68 65 e-key.map.(kbd."q").#'ledger-che
27e0 63 6b 2d 71 75 69 74 29 0a 20 20 20 20 6d 61 70 29 0a 20 20 22 4b 65 79 6d 61 70 20 66 6f 72 20 ck-quit).....map)..."Keymap.for.
2800 60 6c 65 64 67 65 72 2d 63 68 65 63 6b 2d 6d 6f 64 65 27 2e 22 29 0a 0a 28 65 61 73 79 2d 6d 65 `ledger-check-mode'.")..(easy-me
2820 6e 75 2d 64 65 66 69 6e 65 20 6c 65 64 67 65 72 2d 63 68 65 63 6b 2d 6d 6f 64 65 2d 6d 65 6e 75 nu-define.ledger-check-mode-menu
2840 20 6c 65 64 67 65 72 2d 63 68 65 63 6b 2d 6d 6f 64 65 2d 6d 61 70 0a 20 20 22 4c 65 64 67 65 72 .ledger-check-mode-map..."Ledger
2860 20 63 68 65 63 6b 20 6d 65 6e 75 2e 22 0a 20 20 27 28 22 43 68 65 63 6b 22 0a 20 20 20 20 3b 3b .check.menu."...'("Check".....;;
2880 20 5b 22 52 65 2d 72 75 6e 20 43 68 65 63 6b 22 20 6c 65 64 67 65 72 2d 63 68 65 63 6b 2d 72 65 .["Re-run.Check".ledger-check-re
28a0 64 6f 5d 0a 20 20 20 20 22 2d 2d 2d 22 0a 20 20 20 20 5b 22 56 69 73 69 74 20 53 6f 75 72 63 65 do]....."---".....["Visit.Source
28c0 22 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 76 69 73 69 74 2d 73 6f 75 72 63 65 5d 0a 20 20 ".ledger-report-visit-source]...
28e0 20 20 22 2d 2d 2d 22 0a 20 20 20 20 5b 22 51 75 69 74 22 20 6c 65 64 67 65 72 2d 63 68 65 63 6b .."---".....["Quit".ledger-check
2900 2d 71 75 69 74 5d 0a 20 20 20 20 29 29 0a 0a 28 64 65 66 69 6e 65 2d 64 65 72 69 76 65 64 2d 6d -quit].....))..(define-derived-m
2920 6f 64 65 20 6c 65 64 67 65 72 2d 63 68 65 63 6b 2d 6d 6f 64 65 20 74 65 78 74 2d 6d 6f 64 65 20 ode.ledger-check-mode.text-mode.
2940 22 4c 65 64 67 65 72 2d 43 68 65 63 6b 22 0a 20 20 22 41 20 6d 6f 64 65 20 66 6f 72 20 76 69 65 "Ledger-Check"..."A.mode.for.vie
2960 77 69 6e 67 20 6c 65 64 67 65 72 20 65 72 72 6f 72 73 20 61 6e 64 20 77 61 72 6e 69 6e 67 73 2e wing.ledger.errors.and.warnings.
2980 22 29 0a 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 64 6f 2d 63 68 65 63 6b 20 28 29 0a 20 ")...(defun.ledger-do-check.()..
29a0 20 22 52 75 6e 20 61 20 63 68 65 63 6b 20 63 6f 6d 6d 61 6e 64 20 2e 22 0a 20 20 28 67 6f 74 6f ."Run.a.check.command.."...(goto
29c0 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 28 6c 65 74 20 28 28 64 61 74 61 -char.(point-min))...(let.((data
29e0 2d 70 6f 73 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 28 68 61 76 65 2d 77 61 72 6e -pos.(point)).........(have-warn
2a00 69 6e 67 73 20 6e 69 6c 29 29 0a 20 20 20 20 28 73 68 65 6c 6c 2d 63 6f 6d 6d 61 6e 64 0a 20 20 ings.nil)).....(shell-command...
2a20 20 20 20 3b 3b 20 20 6c 65 64 67 65 72 20 62 61 6c 61 6e 63 65 20 63 6f 6d 6d 61 6e 64 20 77 69 ...;;..ledger.balance.command.wi
2a40 6c 6c 20 6a 75 73 74 20 72 65 74 75 72 6e 20 65 6d 70 74 79 20 69 66 20 79 6f 75 20 67 69 76 65 ll.just.return.empty.if.you.give
2a60 20 69 74 0a 20 20 20 20 20 3b 3b 20 20 61 6e 20 61 63 63 6f 75 6e 74 20 6e 61 6d 65 20 74 68 61 .it......;;..an.account.name.tha
2a80 74 20 64 6f 65 73 6e 27 74 20 65 78 69 73 74 2e 20 20 49 20 77 69 6c 6c 20 61 73 73 75 6d 65 20 t.doesn't.exist...I.will.assume.
2aa0 74 68 61 74 20 6e 6f 0a 20 20 20 20 20 3b 3b 20 20 6f 6e 65 20 77 69 6c 6c 20 65 76 65 72 20 68 that.no......;;..one.will.ever.h
2ac0 61 76 65 20 61 6e 20 61 63 63 6f 75 6e 74 20 6e 61 6d 65 64 20 22 65 33 34 32 61 73 64 32 31 33 ave.an.account.named."e342asd213
2ae0 31 22 2e 20 20 49 66 0a 20 20 20 20 20 3b 3b 20 20 73 6f 6d 65 6f 6e 65 73 20 64 6f 65 73 2c 20 1"...If......;;..someones.does,.
2b00 74 68 69 73 20 77 69 6c 6c 20 70 72 6f 62 61 62 6c 79 20 73 74 69 6c 6c 20 77 6f 72 6b 20 66 6f this.will.probably.still.work.fo
2b20 72 20 74 68 65 6d 2e 0a 20 20 20 20 20 3b 3b 20 20 49 20 73 68 6f 75 6c 64 20 6f 6e 6c 79 20 68 r.them.......;;..I.should.only.h
2b40 69 67 68 6c 69 67 68 74 20 65 72 72 6f 72 20 61 6e 64 20 77 61 72 6e 69 6e 67 20 6c 69 6e 65 73 ighlight.error.and.warning.lines
2b60 2e 0a 20 20 20 20 20 22 6c 65 64 67 65 72 20 62 61 6c 20 65 33 34 32 61 73 64 32 31 33 31 20 2d ......."ledger.bal.e342asd2131.-
2b80 2d 73 74 72 69 63 74 20 2d 2d 65 78 70 6c 69 63 69 74 20 22 0a 20 20 20 20 20 74 20 6e 69 6c 29 -strict.--explicit."......t.nil)
2ba0 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 64 61 74 61 2d 70 6f 73 29 0a 0a 20 20 20 20 3b .....(goto-char.data-pos)......;
2bc0 3b 20 66 6f 72 6d 61 74 20 63 68 65 63 6b 20 72 65 70 6f 72 74 20 74 6f 20 6d 61 6b 65 20 69 74 ;.format.check.report.to.make.it
2be0 20 6e 61 76 69 67 61 74 65 20 74 68 65 20 66 69 6c 65 0a 0a 20 20 20 20 28 77 68 69 6c 65 20 28 .navigate.the.file......(while.(
2c00 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5e 2e 2a 3a 20 5c 22 5c 5c 28 2e 2a 5c re-search-forward."^.*:.\"\\(.*\
2c20 5c 29 5c 22 2c 20 6c 69 6e 65 20 5c 5c 28 5b 30 2d 39 5d 2b 5c 5c 29 22 20 6e 69 6c 20 74 29 0a \)\",.line.\\([0-9]+\\)".nil.t).
2c40 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 69 6c 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 ......(let.((file.(match-string.
2c60 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 28 73 74 72 69 6e 67 2d 74 6f 1)).............(line.(string-to
2c80 2d 6e 75 6d 62 65 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32 29 29 29 29 0a 20 20 20 20 -number.(match-string.2)))).....
2ca0 20 20 20 20 28 77 68 65 6e 20 66 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 2d 74 65 ....(when.file...........(set-te
2cc0 78 74 2d 70 72 6f 70 65 72 74 69 65 73 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f xt-properties.(line-beginning-po
2ce0 73 69 74 69 6f 6e 29 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 0a 20 20 20 20 sition).(line-end-position).....
2d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 ...........................(list
2d20 20 27 6c 65 64 67 65 72 2d 73 6f 75 72 63 65 20 28 63 6f 6e 73 20 66 69 6c 65 20 28 73 61 76 65 .'ledger-source.(cons.file.(save
2d40 2d 77 69 6e 64 6f 77 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -window-excursion...............
2d60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 ...................(save-excursi
2da0 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 on..............................
2dc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2de0 20 20 20 20 20 20 28 66 69 6e 64 2d 66 69 6c 65 20 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 20 ......(find-file.file)..........
2e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 64 65 6e ..........................(widen
2e40 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 )...............................
2e60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2e80 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 74 6f 2d 6c 69 6e 65 20 6c 69 .....(ledger-navigate-to-line.li
2ea0 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ne).............................
2ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
2ee0 20 20 20 20 20 20 20 28 70 6f 69 6e 74 2d 6d 61 72 6b 65 72 29 29 29 29 29 29 0a 20 20 20 20 20 .......(point-marker))))))......
2f00 20 20 20 20 20 28 61 64 64 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 69 65 73 20 28 6c 69 6e 65 2d .....(add-text-properties.(line-
2f20 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f beginning-position).(line-end-po
2f40 73 69 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 sition).........................
2f60 20 20 20 20 20 20 20 28 6c 69 73 74 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 61 63 65 20 27 6c 65 .......(list.'font-lock-face.'le
2f80 64 67 65 72 2d 66 6f 6e 74 2d 72 65 70 6f 72 74 2d 63 6c 69 63 6b 61 62 6c 65 2d 66 61 63 65 29 dger-font-report-clickable-face)
2fa0 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 68 61 76 65 2d 77 61 72 6e 69 6e 67 73 20 )...........(setq.have-warnings.
2fc0 27 74 72 75 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6e 64 2d 6f 66 2d 6c 69 6e 65 29 29 29 'true)...........(end-of-line)))
2fe0 29 0a 20 20 20 20 28 69 66 20 28 6e 6f 74 20 68 61 76 65 2d 77 61 72 6e 69 6e 67 73 29 0a 20 20 ).....(if.(not.have-warnings)...
3000 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 4e 6f 20 65 72 72 6f 72 73 20 6f 72 20 77 61 72 6e ......(insert."No.errors.or.warn
3020 69 6e 67 73 20 72 65 70 6f 72 74 65 64 2e 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 ings.reported."))))..(defun.ledg
3040 65 72 2d 63 68 65 63 6b 2d 67 6f 74 6f 20 28 29 0a 20 20 22 47 6f 74 6f 20 74 68 65 20 6c 65 64 er-check-goto.()..."Goto.the.led
3060 67 65 72 20 63 68 65 63 6b 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 ger.check.buffer."...(interactiv
3080 65 29 0a 20 20 28 6c 65 74 20 28 28 72 62 75 66 20 28 67 65 74 2d 62 75 66 66 65 72 20 6c 65 64 e)...(let.((rbuf.(get-buffer.led
30a0 67 65 72 2d 63 68 65 63 6b 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 28 69 66 ger-check-buffer-name))).....(if
30c0 20 28 6e 6f 74 20 72 62 75 66 29 0a 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 54 68 65 72 .(not.rbuf).........(error."Ther
30e0 65 20 69 73 20 6e 6f 20 6c 65 64 67 65 72 20 63 68 65 63 6b 20 62 75 66 66 65 72 22 29 29 0a 20 e.is.no.ledger.check.buffer"))..
3100 20 20 20 28 70 6f 70 2d 74 6f 2d 62 75 66 66 65 72 20 72 62 75 66 29 0a 20 20 20 20 28 73 68 72 ...(pop-to-buffer.rbuf).....(shr
3120 69 6e 6b 2d 77 69 6e 64 6f 77 2d 69 66 2d 6c 61 72 67 65 72 2d 74 68 61 6e 2d 62 75 66 66 65 72 ink-window-if-larger-than-buffer
3140 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 63 68 65 63 6b 2d 71 75 69 74 20 28 29 )))..(defun.ledger-check-quit.()
3160 0a 20 20 22 51 75 69 74 20 74 68 65 20 6c 65 64 67 65 72 20 63 68 65 63 6b 20 62 75 66 66 65 72 ..."Quit.the.ledger.check.buffer
3180 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 64 67 65 72 2d 63 68 65 ."...(interactive)...(ledger-che
31a0 63 6b 2d 67 6f 74 6f 29 0a 20 20 28 73 65 74 2d 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 61 ck-goto)...(set-window-configura
31c0 74 69 6f 6e 20 6c 65 64 67 65 72 2d 63 68 65 63 6b 2d 2d 6f 72 69 67 69 6e 61 6c 2d 77 69 6e 64 tion.ledger-check--original-wind
31e0 6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 29 0a 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 ow-configuration)...(kill-buffer
3200 20 28 67 65 74 2d 62 75 66 66 65 72 20 6c 65 64 67 65 72 2d 63 68 65 63 6b 2d 62 75 66 66 65 72 .(get-buffer.ledger-check-buffer
3220 2d 6e 61 6d 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 63 68 65 63 6b 2d 62 75 -name)))..(defun.ledger-check-bu
3240 66 66 65 72 20 28 26 6f 70 74 69 6f 6e 61 6c 20 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 22 ffer.(&optional.interactive)..."
3260 43 68 65 63 6b 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 66 6f 72 20 65 72 72 Check.the.current.buffer.for.err
3280 6f 72 73 2e 0a 0a 52 75 6e 73 20 6c 65 64 67 65 72 20 77 69 74 68 20 2d 2d 65 78 70 6c 69 63 69 ors...Runs.ledger.with.--explici
32a0 74 20 61 6e 64 20 2d 2d 73 74 72 69 63 74 20 72 65 70 6f 72 74 20 65 72 72 6f 72 73 20 61 6e 64 t.and.--strict.report.errors.and
32c0 20 61 73 73 69 73 74 0a 77 69 74 68 20 66 69 78 69 6e 67 20 74 68 65 6d 2e 0a 0a 54 68 65 20 6f .assist.with.fixing.them...The.o
32e0 75 74 70 75 74 20 62 75 66 66 65 72 20 77 69 6c 6c 20 62 65 20 69 6e 20 60 6c 65 64 67 65 72 2d utput.buffer.will.be.in.`ledger-
3300 63 68 65 63 6b 2d 6d 6f 64 65 27 2c 20 77 68 69 63 68 20 64 65 66 69 6e 65 73 0a 63 6f 6d 6d 61 check-mode',.which.defines.comma
3320 6e 64 73 20 66 6f 72 20 6e 61 76 69 67 61 74 69 6e 67 20 74 68 65 20 62 75 66 66 65 72 20 74 6f nds.for.navigating.the.buffer.to
3340 20 74 68 65 20 65 72 72 6f 72 73 20 66 6f 75 6e 64 2c 20 65 74 63 2e 0a 0a 57 68 65 6e 20 49 4e .the.errors.found,.etc...When.IN
3360 54 45 52 41 43 54 49 56 45 20 69 73 20 6e 6f 6e 2d 6e 69 6c 20 28 69 2e 65 2e 2c 20 77 68 65 6e TERACTIVE.is.non-nil.(i.e.,.when
3380 20 63 61 6c 6c 65 64 20 69 6e 74 65 72 61 63 74 69 76 65 6c 79 29 2c 0a 70 72 6f 6d 70 74 20 74 .called.interactively),.prompt.t
33a0 6f 20 73 61 76 65 20 69 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 69 73 20 o.save.if.the.current.buffer.is.
33c0 6d 6f 64 69 66 69 65 64 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 70 22 29 0a 20 modified."...(interactive."p")..
33e0 20 28 77 68 65 6e 20 28 61 6e 64 20 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 20 20 20 20 20 .(when.(and.interactive.........
3400 20 20 20 20 20 28 62 75 66 66 65 72 2d 6d 6f 64 69 66 69 65 64 2d 70 29 0a 20 20 20 20 20 20 20 .....(buffer-modified-p)........
3420 20 20 20 20 20 20 28 79 2d 6f 72 2d 6e 2d 70 20 22 42 75 66 66 65 72 20 6d 6f 64 69 66 69 65 64 ......(y-or-n-p."Buffer.modified
3440 2c 20 73 61 76 65 20 69 74 3f 20 22 29 29 0a 20 20 20 20 28 73 61 76 65 2d 62 75 66 66 65 72 29 ,.save.it?.")).....(save-buffer)
3460 29 0a 20 20 28 6c 65 74 20 28 28 5f 62 75 66 20 28 66 69 6e 64 2d 66 69 6c 65 2d 6e 6f 73 65 6c )...(let.((_buf.(find-file-nosel
3480 65 63 74 20 28 6c 65 64 67 65 72 2d 6d 61 73 74 65 72 2d 66 69 6c 65 29 29 29 0a 20 20 20 20 20 ect.(ledger-master-file)))......
34a0 20 20 20 28 63 62 75 66 20 28 67 65 74 2d 62 75 66 66 65 72 20 6c 65 64 67 65 72 2d 63 68 65 63 ...(cbuf.(get-buffer.ledger-chec
34c0 6b 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 28 77 63 66 67 20 28 63 k-buffer-name)).........(wcfg.(c
34e0 75 72 72 65 6e 74 2d 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 29 29 29 0a 20 urrent-window-configuration)))..
3500 20 20 20 28 69 66 20 63 62 75 66 0a 20 20 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 ...(if.cbuf.........(kill-buffer
3520 20 63 62 75 66 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 .cbuf)).....(with-current-buffer
3540 0a 20 20 20 20 20 20 20 20 28 70 6f 70 2d 74 6f 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 .........(pop-to-buffer.(get-buf
3560 66 65 72 2d 63 72 65 61 74 65 20 6c 65 64 67 65 72 2d 63 68 65 63 6b 2d 62 75 66 66 65 72 2d 6e fer-create.ledger-check-buffer-n
3580 61 6d 65 29 29 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 63 68 65 63 6b 2d 6d 6f 64 65 29 0a ame)).......(ledger-check-mode).
35a0 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 63 68 65 63 6b 2d 2d 6f 72 69 67 69 6e ......(setq.ledger-check--origin
35c0 61 6c 2d 77 69 6e 64 6f 77 2d 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 77 63 66 67 29 0a 20 20 al-window-configuration.wcfg)...
35e0 20 20 20 20 28 6c 65 64 67 65 72 2d 64 6f 2d 63 68 65 63 6b 29 0a 20 20 20 20 20 20 28 73 68 72 ....(ledger-do-check).......(shr
3600 69 6e 6b 2d 77 69 6e 64 6f 77 2d 69 66 2d 6c 61 72 67 65 72 2d 74 68 61 6e 2d 62 75 66 66 65 72 ink-window-if-larger-than-buffer
3620 29 0a 20 20 20 20 20 20 28 73 65 74 2d 62 75 66 66 65 72 2d 6d 6f 64 69 66 69 65 64 2d 70 20 6e ).......(set-buffer-modified-p.n
3640 69 6c 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 62 75 66 66 65 72 2d 72 65 61 64 2d 6f 6e 6c 79 il).......(setq.buffer-read-only
3660 20 74 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 71 20 74 6f 20 71 75 69 74 3b 20 72 .t).......(message."q.to.quit;.r
3680 20 74 6f 20 72 65 64 6f 3b 20 6b 20 74 6f 20 6b 69 6c 6c 22 29 29 29 29 0a 0a 0a 28 70 72 6f 76 .to.redo;.k.to.kill"))))...(prov
36a0 69 64 65 20 27 6c 65 64 67 65 72 2d 63 68 65 63 6b 29 0a 0a 3b 3b 3b 20 6c 65 64 67 65 72 2d 63 ide.'ledger-check)..;;;.ledger-c
36c0 68 65 63 6b 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 heck.el.ends.here...............
36e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3700 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3720 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
37e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3800 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 32 33 2e 34 34 35 2f 6c 65 64 67 65 72 2d ledger-mode-20240423.445/ledger-
3820 73 63 68 65 64 75 6c 65 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 schedule.el.....................
3840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3860 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
3880 30 30 33 35 30 30 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 34 36 37 00 20 30 00 00 00 0035001.00000000000.016467..0...
38a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
38e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3900 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
3920 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
3940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
39e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3a00 3b 3b 3b 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2e 65 6c 20 2d 2d 2d 20 48 65 6c 70 65 ;;;.ledger-schedule.el.---.Helpe
3a20 72 20 63 6f 64 65 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 74 68 65 20 22 6c 65 64 67 65 72 22 r.code.for.use.with.the."ledger"
3a40 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 74 6f 6f 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d .command-line.tool..-*-.lexical-
3a60 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 binding:.t;.-*-..;;.Copyright.(C
3a80 29 20 32 30 31 33 20 43 72 61 69 67 20 45 61 72 6c 73 20 28 65 6e 64 65 72 77 38 38 20 61 74 20 ).2013.Craig.Earls.(enderw88.at.
3aa0 67 6d 61 69 6c 20 64 6f 74 20 63 6f 6d 29 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 gmail.dot.com)..;;.This.file.is.
3ac0 6e 6f 74 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 54 68 69 73 20 not.part.of.GNU.Emacs...;;.This.
3ae0 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 is.free.software;.you.can.redist
3b00 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 0a 3b 3b 20 75 6e ribute.it.and/or.modify.it.;;.un
3b20 64 65 72 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c der.the.terms.of.the.GNU.General
3b40 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 0a .Public.License.as.published.by.
3b60 3b 3b 20 74 68 65 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b ;;.the.Free.Software.Foundation;
3b80 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 32 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f .either.version.2,.or.(at.your.o
3ba0 70 74 69 6f 6e 29 0a 3b 3b 20 61 6e 79 20 6c 61 74 65 72 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a ption).;;.any.later.version..;;.
3bc0 3b 3b 20 54 68 69 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f ;;.This.is.distributed.in.the.ho
3be0 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 pe.that.it.will.be.useful,.but.W
3c00 49 54 48 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 ITHOUT.;;.ANY.WARRANTY;.without.
3c20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 even.the.implied.warranty.of.MER
3c40 43 48 41 4e 54 41 42 49 4c 49 54 59 0a 3b 3b 20 6f 72 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 CHANTABILITY.;;.or.FITNESS.FOR.A
3c60 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e .PARTICULAR.PURPOSE...See.the.GN
3c80 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 0a 3b 3b 20 4c 69 63 65 6e 73 65 20 66 6f 72 20 U.General.Public.;;.License.for.
3ca0 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 more.details..;;.;;.You.should.h
3cc0 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 ave.received.a.copy.of.the.GNU.G
3ce0 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 eneral.Public.License.;;.along.w
3d00 69 74 68 20 47 4e 55 20 45 6d 61 63 73 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 ith.GNU.Emacs;.see.the.file.COPY
3d20 49 4e 47 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 ING...If.not,.write.to.the.;;.Fr
3d40 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 ee.Software.Foundation,.Inc.,.51
3d60 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 .Franklin.Street,.Fifth.Floor,.B
3d80 6f 73 74 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 20 55 53 41 2e 0a 0a 3b 3b oston,.;;.MA.02110-1301.USA...;;
3da0 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 6d 6f 64 75 6c 65 20 ;.Commentary:.;;.;;.This.module.
3dc0 70 72 6f 76 69 64 65 73 20 66 6f 72 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 61 64 64 69 6e provides.for.automatically.addin
3de0 67 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 74 6f 20 61 0a 3b 3b 20 6c 65 64 67 65 72 20 62 75 g.transactions.to.a.;;.ledger.bu
3e00 66 66 65 72 20 6f 6e 20 61 20 70 65 72 69 6f 64 69 63 20 62 61 73 69 73 2e 20 20 52 65 63 75 72 ffer.on.a.periodic.basis...Recur
3e20 72 65 6e 63 65 20 65 78 70 72 65 73 73 69 6f 6e 73 20 61 72 65 0a 3b 3b 20 69 6e 73 70 69 72 65 rence.expressions.are.;;.inspire
3e40 64 20 62 79 20 4d 61 72 74 69 6e 20 46 6f 77 6c 65 72 27 73 20 22 52 65 63 75 72 72 69 6e 67 20 d.by.Martin.Fowler's."Recurring.
3e60 45 76 65 6e 74 73 20 66 6f 72 20 43 61 6c 65 6e 64 61 72 73 22 2c 0a 3b 3b 20 6d 61 72 74 69 6e Events.for.Calendars",.;;.martin
3e80 66 6f 77 6c 65 72 2e 63 6f 6d 2f 61 70 73 75 70 70 2f 72 65 63 75 72 72 69 6e 67 2e 70 64 66 0a fowler.com/apsupp/recurring.pdf.
3ea0 0a 3b 3b 20 75 73 65 20 28 66 73 65 74 20 27 56 41 52 4e 41 4d 45 20 28 6d 61 63 72 6f 20 61 72 .;;.use.(fset.'VARNAME.(macro.ar
3ec0 67 73 29 29 20 74 6f 20 70 75 74 20 74 68 65 20 6d 61 63 72 6f 20 64 65 66 69 6e 69 74 69 6f 6e gs)).to.put.the.macro.definition
3ee0 20 69 6e 20 74 68 65 0a 3b 3b 20 66 75 6e 63 74 69 6f 6e 20 73 6c 6f 74 20 6f 66 20 74 68 65 20 .in.the.;;.function.slot.of.the.
3f00 73 79 6d 62 6f 6c 20 56 41 52 4e 41 4d 45 2e 20 20 54 68 65 6e 20 75 73 65 20 56 41 52 4e 41 4d symbol.VARNAME...Then.use.VARNAM
3f20 45 20 61 73 20 74 68 65 0a 3b 3b 20 66 75 6e 63 74 69 6f 6e 20 77 69 74 68 6f 75 74 20 68 61 76 E.as.the.;;.function.without.hav
3f40 65 20 74 6f 20 75 73 65 20 66 75 6e 63 61 6c 6c 2e 0a 0a 0a 28 72 65 71 75 69 72 65 20 27 6c 65 e.to.use.funcall....(require.'le
3f60 64 67 65 72 2d 69 6e 69 74 29 0a 28 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 0a 0a 28 64 dger-init).(require.'cl-lib)..(d
3f80 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6c 65 64 67 65 72 2d 6d 6f 64 65 20 22 6c 65 64 eclare-function.ledger-mode."led
3fa0 67 65 72 2d 6d 6f 64 65 22 29 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 64 65 66 67 72 6f 75 70 20 ger-mode").;;;.Code:..(defgroup.
3fc0 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 20 6e 69 6c 0a 20 20 22 53 75 70 70 6f 72 74 20 66 ledger-schedule.nil..."Support.f
3fe0 6f 72 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 72 65 63 6f 6d 6d 65 6e 64 61 74 69 6f 6e 20 or.automatically.recommendation.
4000 74 72 61 6e 73 61 63 74 69 6f 6e 73 2e 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 29 transactions."...:group.'ledger)
4020 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 62 75 66 ..(defcustom.ledger-schedule-buf
4040 66 65 72 2d 6e 61 6d 65 20 22 2a 4c 65 64 67 65 72 20 53 63 68 65 64 75 6c 65 2a 22 0a 20 20 22 fer-name."*Ledger.Schedule*"..."
4060 4e 61 6d 65 20 66 6f 72 20 74 68 65 20 73 63 68 65 64 75 6c 65 20 62 75 66 66 65 72 2e 22 0a 20 Name.for.the.schedule.buffer."..
4080 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d .:type.'string...:group.'ledger-
40a0 73 63 68 65 64 75 6c 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 73 63 68 schedule)..(defcustom.ledger-sch
40c0 65 64 75 6c 65 2d 6c 6f 6f 6b 2d 62 61 63 6b 77 61 72 64 20 37 0a 20 20 22 4e 75 6d 62 65 72 20 edule-look-backward.7..."Number.
40e0 6f 66 20 64 61 79 73 20 74 6f 20 6c 6f 6f 6b 20 62 61 63 6b 20 69 6e 20 74 69 6d 65 20 66 6f 72 of.days.to.look.back.in.time.for
4100 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 69 6e 74 65 67 65 72 .transactions."...:type.'integer
4120 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 29 0a 0a 28 64 65 ...:group.'ledger-schedule)..(de
4140 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 6c 6f 6f 6b 2d 66 6f 72 fcustom.ledger-schedule-look-for
4160 77 61 72 64 20 31 34 0a 20 20 22 4e 75 6d 62 65 72 20 6f 66 20 64 61 79 73 20 61 75 74 6f 20 6c ward.14..."Number.of.days.auto.l
4180 6f 6f 6b 20 66 6f 72 77 61 72 64 20 74 6f 20 72 65 63 6f 6d 6d 65 6e 64 20 74 72 61 6e 73 61 63 ook.forward.to.recommend.transac
41a0 74 69 6f 6e 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 69 6e 74 65 67 65 72 0a 20 20 3a 67 72 6f 75 tions."...:type.'integer...:grou
41c0 70 20 27 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 p.'ledger-schedule)..(defcustom.
41e0 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 66 69 6c 65 20 22 7e 2f 6c 65 64 67 65 72 2d 73 ledger-schedule-file."~/ledger-s
4200 63 68 65 64 75 6c 65 2e 6c 65 64 67 65 72 22 0a 20 20 22 46 69 6c 65 20 74 6f 20 66 69 6e 64 20 chedule.ledger"..."File.to.find.
4220 73 63 68 65 64 75 6c 65 64 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 2e 22 0a 20 20 3a 74 79 70 65 scheduled.transactions."...:type
4240 20 27 66 69 6c 65 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 .'file...:group.'ledger-schedule
4260 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 77 65 )..(defcustom.ledger-schedule-we
4280 65 6b 2d 64 61 79 73 20 27 28 28 22 4d 6f 22 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ek-days.'(("Mo".1)..............
42a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 54 75 22 20 ..........................("Tu".
42c0 32 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2)..............................
42e0 20 20 20 20 20 20 20 20 20 20 28 22 57 65 22 20 33 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..........("We".3)..............
4300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 54 68 22 20 ..........................("Th".
4320 34 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4)..............................
4340 20 20 20 20 20 20 20 20 20 20 28 22 46 72 22 20 35 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..........("Fr".5)..............
4360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 22 53 61 22 20 ..........................("Sa".
4380 36 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6)..............................
43a0 20 20 20 20 20 20 20 20 20 20 28 22 53 75 22 20 30 29 29 0a 20 20 22 4c 69 73 74 20 6f 66 20 77 ..........("Su".0))..."List.of.w
43c0 65 65 6b 64 61 79 20 61 62 62 72 65 76 69 61 74 69 6f 6e 73 2e 0a 54 68 65 72 65 20 6d 75 73 74 eekday.abbreviations..There.must
43e0 20 62 65 20 65 78 61 63 74 6c 79 20 73 65 76 65 6e 20 65 6e 74 72 69 65 73 20 65 61 63 68 20 77 .be.exactly.seven.entries.each.w
4400 69 74 68 20 61 20 74 77 6f 20 63 68 61 72 61 63 74 65 72 0a 61 62 62 72 65 76 69 61 74 69 6f 6e ith.a.two.character.abbreviation
4420 20 66 6f 72 20 61 20 64 61 79 20 61 6e 64 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 74 68 61 .for.a.day.and.the.number.of.tha
4440 74 20 64 61 79 20 69 6e 20 74 68 65 20 77 65 65 6b 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 61 6c t.day.in.the.week."...:type.'(al
4460 69 73 74 20 3a 6b 65 79 2d 74 79 70 65 20 73 74 72 69 6e 67 20 3a 76 61 6c 75 65 2d 74 79 70 65 ist.:key-type.string.:value-type
4480 20 28 67 72 6f 75 70 20 69 6e 74 65 67 65 72 29 29 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 .(group.integer))...:group.'ledg
44a0 65 72 2d 73 63 68 65 64 75 6c 65 29 0a 0a 28 64 65 66 73 75 62 73 74 20 6c 65 64 67 65 72 2d 62 er-schedule)..(defsubst.ledger-b
44c0 65 74 77 65 65 6e 20 28 76 61 6c 20 6c 6f 77 20 68 69 67 68 29 0a 20 20 22 52 65 74 75 72 6e 20 etween.(val.low.high)..."Return.
44e0 54 52 55 45 20 69 66 20 56 41 4c 20 3e 3d 20 4c 4f 57 20 61 6e 64 20 3c 3d 20 48 49 47 48 2e 22 TRUE.if.VAL.>=.LOW.and.<=.HIGH."
4500 0a 20 20 28 64 65 63 6c 61 72 65 20 28 6f 62 73 6f 6c 65 74 65 20 3c 3d 20 22 4c 65 64 67 65 72 ...(declare.(obsolete.<=."Ledger
4520 2d 6d 6f 64 65 20 76 34 2e 30 2e 31 22 29 29 0a 20 20 28 3c 3d 20 6c 6f 77 20 76 61 6c 20 68 69 -mode.v4.0.1"))...(<=.low.val.hi
4540 67 68 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 64 61 79 gh))..(defun.ledger-schedule-day
4560 73 2d 69 6e 2d 6d 6f 6e 74 68 20 28 6d 6f 6e 74 68 20 79 65 61 72 29 0a 20 20 22 52 65 74 75 72 s-in-month.(month.year)..."Retur
4580 6e 20 6e 75 6d 62 65 72 20 6f 66 20 64 61 79 73 20 69 6e 20 74 68 65 20 4d 4f 4e 54 48 2c 20 4d n.number.of.days.in.the.MONTH,.M
45a0 4f 4e 54 48 20 69 73 20 66 72 6f 6d 20 31 20 74 6f 20 31 32 2e 0a 49 66 20 59 45 41 52 20 69 73 ONTH.is.from.1.to.12..If.YEAR.is
45c0 20 6e 69 6c 2c 20 61 73 73 75 6d 65 20 69 74 20 69 73 20 6e 6f 74 20 61 20 6c 65 61 70 20 79 65 .nil,.assume.it.is.not.a.leap.ye
45e0 61 72 22 0a 20 20 28 69 66 20 28 3c 3d 20 31 20 6d 6f 6e 74 68 20 31 32 29 0a 20 20 20 20 20 20 ar"...(if.(<=.1.month.12).......
4600 28 69 66 20 28 61 6e 64 20 79 65 61 72 20 28 64 61 74 65 2d 6c 65 61 70 2d 79 65 61 72 2d 70 20 (if.(and.year.(date-leap-year-p.
4620 79 65 61 72 29 20 28 3d 20 32 20 6d 6f 6e 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 32 39 0a year).(=.2.month))...........29.
4640 20 20 20 20 20 20 20 20 28 6e 74 68 20 28 31 2d 20 6d 6f 6e 74 68 29 20 27 28 33 31 20 32 38 20 ........(nth.(1-.month).'(31.28.
4660 33 31 20 33 30 20 33 31 20 33 30 20 33 31 20 33 31 20 33 30 20 33 31 20 33 30 20 33 31 29 29 29 31.30.31.30.31.31.30.31.30.31)))
4680 0a 20 20 20 20 28 65 72 72 6f 72 20 22 4d 6f 6e 74 68 20 6f 75 74 20 6f 66 20 72 61 6e 67 65 2c .....(error."Month.out.of.range,
46a0 20 4d 4f 4e 54 48 3d 25 53 22 20 6d 6f 6e 74 68 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 .MONTH=%S".month)))..(defun.ledg
46c0 65 72 2d 73 63 68 65 64 75 6c 65 2d 65 6e 63 6f 64 65 2d 64 61 79 2d 6f 66 2d 77 65 65 6b 20 28 er-schedule-encode-day-of-week.(
46e0 64 61 79 2d 73 74 72 69 6e 67 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 6e 75 6d 65 72 69 day-string)..."Return.the.numeri
4700 63 61 6c 20 64 61 79 20 6f 66 20 77 65 65 6b 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 74 6f cal.day.of.week.corresponding.to
4720 20 44 41 59 2d 53 54 52 49 4e 47 2e 22 0a 20 20 28 63 61 64 72 20 28 61 73 73 6f 63 20 64 61 79 .DAY-STRING."...(cadr.(assoc.day
4740 2d 73 74 72 69 6e 67 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 77 65 65 6b 2d 64 61 79 -string.ledger-schedule-week-day
4760 73 29 29 29 0a 0a 3b 3b 20 4d 61 63 72 6f 73 20 74 6f 20 68 61 6e 64 6c 65 20 64 61 74 65 20 65 s)))..;;.Macros.to.handle.date.e
4780 78 70 72 65 73 73 69 6f 6e 73 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 xpressions..(defun.ledger-schedu
47a0 6c 65 2d 63 6f 6e 73 74 72 61 69 6e 2d 64 61 79 2d 69 6e 2d 6d 6f 6e 74 68 20 28 63 6f 75 6e 74 le-constrain-day-in-month.(count
47c0 20 64 61 79 2d 6f 66 2d 77 65 65 6b 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 66 6f 72 6d 20 74 .day-of-week)..."Return.a.form.t
47e0 68 61 74 20 72 65 74 75 72 6e 73 20 54 52 55 45 20 66 6f 72 20 74 68 65 20 20 74 68 65 20 43 4f hat.returns.TRUE.for.the..the.CO
4800 55 4e 54 20 44 41 59 2d 4f 46 2d 57 45 45 4b 2e 0a 46 6f 72 20 65 78 61 6d 70 6c 65 2c 20 72 65 UNT.DAY-OF-WEEK..For.example,.re
4820 74 75 72 6e 20 74 72 75 65 20 69 66 20 64 61 74 65 20 69 73 20 74 68 65 20 33 72 64 20 54 68 75 turn.true.if.date.is.the.3rd.Thu
4840 72 73 64 61 79 20 6f 66 20 74 68 65 0a 6d 6f 6e 74 68 2e 20 20 4e 65 67 61 74 69 76 65 20 43 4f rsday.of.the.month...Negative.CO
4860 55 4e 54 20 73 74 61 72 74 73 20 66 72 6f 6d 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 6d UNT.starts.from.the.end.of.the.m
4880 6f 6e 74 68 2e 20 28 45 51 0a 43 4f 55 4e 54 20 30 29 20 6d 65 61 6e 73 20 45 56 45 52 59 20 64 onth..(EQ.COUNT.0).means.EVERY.d
48a0 61 79 2d 6f 66 2d 77 65 65 6b 20 28 65 67 2e 20 65 76 65 72 79 20 53 61 74 75 72 64 61 79 29 22 ay-of-week.(eg..every.Saturday)"
48c0 0a 20 20 28 69 66 20 28 61 6e 64 20 28 3c 3d 20 2d 36 20 63 6f 75 6e 74 20 36 29 20 28 3c 3d 20 ...(if.(and.(<=.-6.count.6).(<=.
48e0 30 20 64 61 79 2d 6f 66 2d 77 65 65 6b 20 36 29 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 20 28 28 0.day-of-week.6)).......(cond.((
4900 7a 65 72 6f 70 20 63 6f 75 6e 74 29 20 3b 3b 20 52 65 74 75 72 6e 20 74 72 75 65 20 69 66 20 64 zerop.count).;;.Return.true.if.d
4920 61 79 2d 6f 66 2d 77 65 65 6b 20 6d 61 74 63 68 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ay-of-week.matches..............
4940 60 28 65 71 20 28 6e 74 68 20 36 20 28 64 65 63 6f 64 65 2d 74 69 6d 65 20 64 61 74 65 29 29 20 `(eq.(nth.6.(decode-time.date)).
4960 2c 64 61 79 2d 6f 66 2d 77 65 65 6b 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 28 3e 20 63 ,day-of-week)).............((>.c
4980 6f 75 6e 74 20 30 29 20 3b 3b 20 50 6f 73 69 74 69 76 65 20 63 6f 75 6e 74 0a 20 20 20 20 20 20 ount.0).;;.Positive.count.......
49a0 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 64 65 63 6f 64 65 64 20 28 63 6c 2d 67 65 6e 73 79 6d .......(let.((decoded.(cl-gensym
49c0 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 6c 65 74 20 28 28 2c 64 65 63 6f )))................`(let.((,deco
49e0 64 65 64 20 28 64 65 63 6f 64 65 2d 74 69 6d 65 20 64 61 74 65 29 29 29 0a 20 20 20 20 20 20 20 ded.(decode-time.date)))........
4a00 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 65 71 20 28 6e 74 68 20 36 20 2c 64 65 63 6f ...........(and.(eq.(nth.6.,deco
4a20 64 65 64 29 20 2c 64 61 79 2d 6f 66 2d 77 65 65 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ded).,day-of-week)..............
4a40 20 20 20 20 20 20 20 20 20 20 28 3c 3d 20 2c 28 2a 20 28 31 2d 20 63 6f 75 6e 74 29 20 37 29 0a ..........(<=.,(*.(1-.count).7).
4a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 74 68 20 ...........................(nth.
4a80 33 20 2c 64 65 63 6f 64 65 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3.,decoded).....................
4aa0 20 20 20 20 20 20 20 2c 28 2a 20 63 6f 75 6e 74 20 37 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 .......,(*.count.7))))))........
4ac0 20 20 20 20 20 28 28 3c 20 63 6f 75 6e 74 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 .....((<.count.0)..............(
4ae0 6c 65 74 20 28 28 64 61 79 73 2d 69 6e 2d 6d 6f 6e 74 68 20 28 63 6c 2d 67 65 6e 73 79 6d 29 29 let.((days-in-month.(cl-gensym))
4b00 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 63 6f 64 65 64 20 28 63 6c ....................(decoded.(cl
4b20 2d 67 65 6e 73 79 6d 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 6c 65 74 2a -gensym)))................`(let*
4b40 20 28 28 2c 64 65 63 6f 64 65 64 20 28 64 65 63 6f 64 65 2d 74 69 6d 65 20 64 61 74 65 29 29 0a .((,decoded.(decode-time.date)).
4b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2c 64 61 79 73 2d 69 6e .......................(,days-in
4b80 2d 6d 6f 6e 74 68 20 28 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 64 61 79 73 2d 69 6e 2d -month.(ledger-schedule-days-in-
4ba0 6d 6f 6e 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 month...........................
4bc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 74 68 20 34 20 2c 64 65 63 6f 64 65 64 29 0a 20 ..............(nth.4.,decoded)..
4be0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4c00 20 20 20 20 20 20 20 28 6e 74 68 20 35 20 2c 64 65 63 6f 64 65 64 29 29 29 29 0a 20 20 20 20 20 .......(nth.5.,decoded))))......
4c20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 65 71 20 28 6e 74 68 20 36 20 2c 64 65 .............(and.(eq.(nth.6.,de
4c40 63 6f 64 65 64 29 20 2c 64 61 79 2d 6f 66 2d 77 65 65 6b 29 0a 20 20 20 20 20 20 20 20 20 20 20 coded).,day-of-week)............
4c60 20 20 20 20 20 20 20 20 20 20 20 20 28 3c 3d 20 28 2b 20 2c 64 61 79 73 2d 69 6e 2d 6d 6f 6e 74 ............(<=.(+.,days-in-mont
4c80 68 20 2c 28 2a 20 63 6f 75 6e 74 20 37 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 h.,(*.count.7)).................
4ca0 20 20 20 20 20 20 20 20 20 20 20 28 6e 74 68 20 33 20 2c 64 65 63 6f 64 65 64 29 0a 20 20 20 20 ...........(nth.3.,decoded).....
4cc0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2b 20 2c 64 61 79 73 2d .......................(+.,days-
4ce0 69 6e 2d 6d 6f 6e 74 68 20 2c 28 2a 20 28 31 2b 20 63 6f 75 6e 74 29 20 37 29 29 29 29 29 29 29 in-month.,(*.(1+.count).7)))))))
4d00 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 .............(t..............(er
4d20 72 6f 72 20 22 43 4f 55 4e 54 20 6f 75 74 20 6f 66 20 72 61 6e 67 65 2c 20 43 4f 55 4e 54 3d 25 ror."COUNT.out.of.range,.COUNT=%
4d40 53 22 20 63 6f 75 6e 74 29 29 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 49 6e 76 61 6c 69 64 20 S".count))).....(error."Invalid.
4d60 61 72 67 75 6d 65 6e 74 20 74 6f 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 64 61 79 2d argument.to.ledger-schedule-day-
4d80 69 6e 2d 6d 6f 6e 74 68 2d 6d 61 63 72 6f 20 25 53 20 25 53 22 0a 20 20 20 20 20 20 20 20 20 20 in-month-macro.%S.%S"...........
4da0 20 63 6f 75 6e 74 0a 20 20 20 20 20 20 20 20 20 20 20 64 61 79 2d 6f 66 2d 77 65 65 6b 29 29 29 .count............day-of-week)))
4dc0 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 63 6f 6e 73 74 72 61 ..(defun.ledger-schedule-constra
4de0 69 6e 2d 65 76 65 72 79 2d 63 6f 75 6e 74 2d 64 61 79 20 28 64 61 79 2d 6f 66 2d 77 65 65 6b 20 in-every-count-day.(day-of-week.
4e00 73 6b 69 70 20 73 74 61 72 74 2d 64 61 74 65 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 66 6f 72 skip.start-date)..."Return.a.for
4e20 6d 20 74 68 61 74 20 69 73 20 74 72 75 65 20 66 6f 72 20 65 76 65 72 79 20 44 41 59 2d 4f 46 2d m.that.is.true.for.every.DAY-OF-
4e40 57 45 45 4b 2e 0a 53 6b 69 70 73 20 53 4b 49 50 2c 20 61 6e 64 20 73 74 61 72 74 73 20 6f 6e 20 WEEK..Skips.SKIP,.and.starts.on.
4e60 53 54 41 52 54 2d 44 41 54 45 2e 0a 46 6f 72 20 65 78 61 6d 70 6c 65 20 65 76 65 72 79 20 73 65 START-DATE..For.example.every.se
4e80 63 6f 6e 64 20 46 72 69 64 61 79 2c 20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 6d 6f 6e 74 68 cond.Friday,.regardless.of.month
4ea0 2e 22 0a 20 20 28 6c 65 74 20 28 28 73 74 61 72 74 2d 64 61 79 20 28 6e 74 68 20 36 20 28 64 65 ."...(let.((start-day.(nth.6.(de
4ec0 63 6f 64 65 2d 74 69 6d 65 20 73 74 61 72 74 2d 64 61 74 65 29 29 29 29 0a 20 20 20 20 28 69 66 code-time.start-date)))).....(if
4ee0 20 28 65 71 20 73 74 61 72 74 2d 64 61 79 20 64 61 79 2d 6f 66 2d 77 65 65 6b 29 20 20 3b 3b 20 .(eq.start-day.day-of-week)..;;.
4f00 67 6f 6f 64 2c 20 63 61 6e 20 70 72 6f 63 65 65 64 0a 20 20 20 20 20 20 20 20 60 28 7a 65 72 6f good,.can.proceed.........`(zero
4f20 70 20 28 6d 6f 64 20 28 2d 20 28 74 69 6d 65 2d 74 6f 2d 64 61 79 73 20 64 61 74 65 29 20 2c 28 p.(mod.(-.(time-to-days.date).,(
4f40 74 69 6d 65 2d 74 6f 2d 64 61 79 73 20 73 74 61 72 74 2d 64 61 74 65 29 29 20 2c 28 2a 20 73 6b time-to-days.start-date)).,(*.sk
4f60 69 70 20 37 29 29 29 0a 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 53 54 41 52 54 2d 44 41 54 45 ip.7))).......(error."START-DATE
4f80 20 64 61 79 20 6f 66 20 77 65 65 6b 20 64 6f 65 73 6e 27 74 20 6d 61 74 63 68 20 44 41 59 2d 4f .day.of.week.doesn't.match.DAY-O
4fa0 46 2d 57 45 45 4b 22 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 73 63 68 65 64 F-WEEK"))))..(defun.ledger-sched
4fc0 75 6c 65 2d 63 6f 6e 73 74 72 61 69 6e 2d 64 61 74 65 2d 72 61 6e 67 65 20 28 6d 6f 6e 74 68 31 ule-constrain-date-range.(month1
4fe0 20 64 61 79 31 20 6d 6f 6e 74 68 32 20 64 61 79 32 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 66 .day1.month2.day2)..."Return.a.f
5000 6f 72 6d 20 6f 66 20 44 41 54 45 20 74 68 61 74 20 69 73 20 74 72 75 65 20 69 66 20 44 41 54 45 orm.of.DATE.that.is.true.if.DATE
5020 20 66 61 6c 6c 73 20 62 65 74 77 65 65 6e 20 74 77 6f 20 64 61 74 65 73 2e 0a 54 68 65 20 64 61 .falls.between.two.dates..The.da
5040 74 65 73 20 61 72 65 20 67 69 76 65 6e 20 62 79 20 74 68 65 20 70 61 69 72 73 20 4d 4f 4e 54 48 tes.are.given.by.the.pairs.MONTH
5060 31 20 44 41 59 31 20 61 6e 64 20 4d 4f 4e 54 48 32 20 44 41 59 32 2e 22 0a 20 20 28 6c 65 74 20 1.DAY1.and.MONTH2.DAY2."...(let.
5080 28 28 64 65 63 6f 64 65 64 20 28 63 6c 2d 67 65 6e 73 79 6d 29 29 0a 20 20 20 20 20 20 20 20 28 ((decoded.(cl-gensym)).........(
50a0 74 61 72 67 65 74 2d 6d 6f 6e 74 68 20 28 63 6c 2d 67 65 6e 73 79 6d 29 29 0a 20 20 20 20 20 20 target-month.(cl-gensym)).......
50c0 20 20 28 74 61 72 67 65 74 2d 64 61 79 20 28 63 6c 2d 67 65 6e 73 79 6d 29 29 29 0a 20 20 20 20 ..(target-day.(cl-gensym))).....
50e0 60 28 6c 65 74 2a 20 28 28 2c 64 65 63 6f 64 65 64 20 28 64 65 63 6f 64 65 2d 74 69 6d 65 20 64 `(let*.((,decoded.(decode-time.d
5100 61 74 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 2c 74 61 72 67 65 74 2d 6d 6f 6e 74 68 ate)).............(,target-month
5120 20 28 6e 74 68 20 34 20 64 65 63 6f 64 65 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 2c .(nth.4.decoded)).............(,
5140 74 61 72 67 65 74 2d 64 61 79 20 28 6e 74 68 20 33 20 64 65 63 6f 64 65 64 29 29 29 0a 20 20 20 target-day.(nth.3.decoded)))....
5160 20 20 20 20 28 61 6e 64 20 28 61 6e 64 20 28 3e 20 2c 74 61 72 67 65 74 2d 6d 6f 6e 74 68 20 2c ....(and.(and.(>.,target-month.,
5180 6d 6f 6e 74 68 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3c 20 2c 74 61 72 month1)..................(<.,tar
51a0 67 65 74 2d 6d 6f 6e 74 68 20 2c 6d 6f 6e 74 68 32 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 get-month.,month2)).............
51c0 28 61 6e 64 20 28 3e 20 2c 74 61 72 67 65 74 2d 64 61 79 20 2c 64 61 79 31 29 0a 20 20 20 20 20 (and.(>.,target-day.,day1)......
51e0 20 20 20 20 20 20 20 20 20 20 20 20 28 3c 20 2c 74 61 72 67 65 74 2d 64 61 79 20 2c 64 61 79 32 ............(<.,target-day.,day2
5200 29 29 29 29 29 29 0a 0a 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 ))))))....(defun.ledger-schedule
5220 2d 73 63 61 6e 2d 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 28 73 63 68 65 64 75 6c 65 2d 66 69 6c -scan-transactions.(schedule-fil
5240 65 29 0a 20 20 22 53 63 61 6e 20 53 43 48 45 44 55 4c 45 2d 46 49 4c 45 20 61 6e 64 20 72 65 74 e)..."Scan.SCHEDULE-FILE.and.ret
5260 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 77 69 74 68 20 urn.a.list.of.transactions.with.
5280 64 61 74 65 20 70 72 65 64 69 63 61 74 65 73 2e 0a 54 68 65 20 63 61 72 20 6f 66 20 65 61 63 68 date.predicates..The.car.of.each
52a0 20 69 74 65 6d 20 69 73 20 61 20 66 75 6e 63 74 69 6f 6e 20 6f 66 20 64 61 74 65 20 74 68 61 74 .item.is.a.function.of.date.that
52c0 20 72 65 74 75 72 6e 73 20 74 72 75 65 20 69 66 0a 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e .returns.true.if.the.transaction
52e0 20 73 68 6f 75 6c 64 20 62 65 20 6c 6f 67 67 65 64 20 66 6f 72 20 74 68 61 74 20 64 61 79 2e 22 .should.be.logged.for.that.day."
5300 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 66 46 69 6c 65 20 6e 61 6d 65 3a 20 22 29 0a ...(interactive."fFile.name:.").
5320 20 20 28 6c 65 74 20 28 28 78 61 63 74 2d 6c 69 73 74 20 28 6c 69 73 74 29 29 29 0a 20 20 20 20 ..(let.((xact-list.(list))).....
5340 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 28 66 69 (with-current-buffer.........(fi
5360 6e 64 2d 66 69 6c 65 2d 6e 6f 73 65 6c 65 63 74 20 73 63 68 65 64 75 6c 65 2d 66 69 6c 65 29 0a nd-file-noselect.schedule-file).
5380 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 ......(goto-char.(point-min))...
53a0 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5e ....(while.(re-search-forward."^
53c0 5c 5c 5b 5c 5c 28 2e 2a 5c 5c 29 5c 5c 5d 20 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 \\[\\(.*\\)\\].".nil.t).........
53e0 28 6c 65 74 20 28 28 64 61 74 65 2d 64 65 73 63 72 69 70 74 6f 72 20 22 22 29 0a 20 20 20 20 20 (let.((date-descriptor."")......
5400 20 20 20 20 20 20 20 20 20 28 74 72 61 6e 73 61 63 74 69 6f 6e 20 6e 69 6c 29 0a 20 20 20 20 20 .........(transaction.nil)......
5420 20 20 20 20 20 20 20 20 20 28 78 61 63 74 2d 73 74 61 72 74 20 28 6d 61 74 63 68 2d 65 6e 64 20 .........(xact-start.(match-end.
5440 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 64 61 74 65 2d 64 65 73 63 72 69 0)))...........(setq.date-descri
5460 70 74 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 73 63 68 ptor.................(ledger-sch
5480 65 64 75 6c 65 2d 72 65 61 64 2d 64 65 73 63 72 69 70 74 6f 72 2d 74 72 65 65 0a 20 20 20 20 20 edule-read-descriptor-tree......
54a0 20 20 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f ............(buffer-substring-no
54c0 2d 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d -properties...................(m
54e0 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 atch-beginning.0)...............
5500 20 20 20 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 ....(match-end.0))))...........(
5520 66 6f 72 77 61 72 64 2d 70 61 72 61 67 72 61 70 68 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 forward-paragraph)...........(se
5540 74 71 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 28 6c 69 73 74 20 64 61 74 65 2d 64 65 73 63 72 69 tq.transaction.(list.date-descri
5560 70 74 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ptor............................
5580 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 .......(buffer-substring-no-prop
55a0 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 erties..........................
55c0 20 20 20 20 20 20 20 20 20 20 78 61 63 74 2d 73 74 61 72 74 0a 20 20 20 20 20 20 20 20 20 20 20 ..........xact-start............
55e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 29 ........................(point))
5600 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 78 61 63 74 2d 6c 69 73 74 20 28 63 6f ))...........(setq.xact-list.(co
5620 6e 73 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 78 61 63 74 2d 6c 69 73 74 29 29 29 29 0a 20 20 20 ns.transaction.xact-list))))....
5640 20 20 20 78 61 63 74 2d 6c 69 73 74 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 73 ...xact-list)))..(defun.ledger-s
5660 63 68 65 64 75 6c 65 2d 72 65 61 64 2d 64 65 73 63 72 69 70 74 6f 72 2d 74 72 65 65 20 28 64 65 chedule-read-descriptor-tree.(de
5680 73 63 72 69 70 74 6f 72 2d 73 74 72 69 6e 67 29 0a 20 20 22 52 65 61 64 20 44 45 53 43 52 49 50 scriptor-string)..."Read.DESCRIP
56a0 54 4f 52 2d 53 54 52 49 4e 47 20 61 6e 64 20 72 65 74 75 72 6e 20 61 20 66 6f 72 6d 20 74 68 61 TOR-STRING.and.return.a.form.tha
56c0 74 20 65 76 61 6c 75 61 74 65 73 20 64 61 74 65 73 2e 22 0a 20 20 28 6c 65 64 67 65 72 2d 73 63 t.evaluates.dates."...(ledger-sc
56e0 68 65 64 75 6c 65 2d 74 72 61 6e 73 66 6f 72 6d 2d 61 75 74 6f 2d 74 72 65 65 0a 20 20 20 28 73 hedule-transform-auto-tree....(s
5700 70 6c 69 74 2d 73 74 72 69 6e 67 0a 20 20 20 20 28 73 75 62 73 74 72 69 6e 67 20 64 65 73 63 72 plit-string.....(substring.descr
5720 69 70 74 6f 72 2d 73 74 72 69 6e 67 20 31 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5d 22 iptor-string.1.(string-match."]"
5740 20 64 65 73 63 72 69 70 74 6f 72 2d 73 74 72 69 6e 67 29 29 20 22 20 22 29 29 29 0a 0a 28 64 65 .descriptor-string)).".")))..(de
5760 66 75 6e 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 74 72 61 6e 73 66 6f 72 6d 2d 61 75 fun.ledger-schedule-transform-au
5780 74 6f 2d 74 72 65 65 20 28 64 65 73 63 72 69 70 74 6f 72 2d 73 74 72 69 6e 67 2d 6c 69 73 74 29 to-tree.(descriptor-string-list)
57a0 0a 20 20 22 54 61 6b 65 20 44 45 53 43 52 49 50 54 4f 52 2d 53 54 52 49 4e 47 2d 4c 49 53 54 2c ..."Take.DESCRIPTOR-STRING-LIST,
57c0 20 61 6e 64 20 72 65 74 75 72 6e 20 61 20 73 74 72 69 6e 67 20 77 69 74 68 20 61 20 6c 61 6d 62 .and.return.a.string.with.a.lamb
57e0 64 61 20 66 75 6e 63 74 69 6f 6e 20 6f 66 20 64 61 74 65 2e 22 0a 20 20 3b 3b 20 75 73 65 20 66 da.function.of.date."...;;.use.f
5800 75 6e 63 61 6c 6c 20 74 6f 20 75 73 65 20 74 68 65 20 6c 61 6d 62 64 61 20 66 75 6e 63 74 69 6f uncall.to.use.the.lambda.functio
5820 6e 20 73 70 69 74 20 6f 75 74 20 68 65 72 65 0a 20 20 28 69 66 20 28 63 6f 6e 73 70 20 64 65 73 n.spit.out.here...(if.(consp.des
5840 63 72 69 70 74 6f 72 2d 73 74 72 69 6e 67 2d 6c 69 73 74 29 0a 20 20 20 20 20 20 28 6c 65 74 20 criptor-string-list).......(let.
5860 28 72 65 73 75 6c 74 29 0a 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 63 6f 6e 73 70 20 64 (result).........(while.(consp.d
5880 65 73 63 72 69 70 74 6f 72 2d 73 74 72 69 6e 67 2d 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 escriptor-string-list)..........
58a0 20 28 6c 65 74 20 28 28 6e 65 77 63 61 72 20 28 63 61 72 20 64 65 73 63 72 69 70 74 6f 72 2d 73 .(let.((newcar.(car.descriptor-s
58c0 74 72 69 6e 67 2d 6c 69 73 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 63 tring-list))).............(if.(c
58e0 6f 6e 73 70 20 6e 65 77 63 61 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 onsp.newcar).................(se
5900 74 71 20 6e 65 77 63 61 72 20 28 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 74 72 61 6e 73 tq.newcar.(ledger-schedule-trans
5920 66 6f 72 6d 2d 61 75 74 6f 2d 74 72 65 65 20 28 63 61 72 20 64 65 73 63 72 69 70 74 6f 72 2d 73 form-auto-tree.(car.descriptor-s
5940 74 72 69 6e 67 2d 6c 69 73 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6e 65 tring-list)))).............;;.ne
5960 77 63 61 72 20 6d 61 79 20 62 65 20 61 20 63 6f 6e 73 20 6e 6f 77 2c 20 61 66 74 65 72 20 6c 65 wcar.may.be.a.cons.now,.after.le
5980 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 74 72 61 6e 73 66 72 6f 6d 2d 61 75 74 6f 2d 74 72 65 dger-schedule-transfrom-auto-tre
59a0 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 63 6f 6e 73 70 20 6e 65 77 63 61 72 29 e.............(if.(consp.newcar)
59c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 6e 65 77 63 61 72 20 72 65 .................(push.newcar.re
59e0 73 75 6c 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 74 68 69 73 20 69 73 20 77 sult)...............;;.this.is.w
5a00 68 65 72 65 20 77 65 20 61 63 74 75 61 6c 6c 79 20 74 75 72 6e 20 74 68 65 20 73 74 72 69 6e 67 here.we.actually.turn.the.string
5a20 20 64 65 73 63 72 69 70 74 6f 72 20 69 6e 74 6f 20 75 73 65 66 75 6c 20 6c 69 73 70 0a 20 20 20 .descriptor.into.useful.lisp....
5a40 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c ...........(push.(ledger-schedul
5a60 65 2d 63 6f 6d 70 69 6c 65 2d 63 6f 6e 73 74 72 61 69 6e 74 73 20 6e 65 77 63 61 72 29 20 72 65 e-compile-constraints.newcar).re
5a80 73 75 6c 74 29 29 20 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 64 65 73 63 72 69 70 sult)).)...........(setq.descrip
5aa0 74 6f 72 2d 73 74 72 69 6e 67 2d 6c 69 73 74 20 28 63 64 72 20 64 65 73 63 72 69 70 74 6f 72 2d tor-string-list.(cdr.descriptor-
5ac0 73 74 72 69 6e 67 2d 6c 69 73 74 29 29 29 0a 0a 20 20 20 20 20 20 20 20 3b 3b 20 74 69 65 20 75 string-list)))..........;;.tie.u
5ae0 70 20 61 6c 6c 20 74 68 65 20 63 6c 61 75 73 65 73 20 69 6e 20 61 20 62 69 67 20 6f 72 20 6c 61 p.all.the.clauses.in.a.big.or.la
5b00 6d 62 64 61 2c 20 61 6e 64 20 72 65 74 75 72 6e 0a 20 20 20 20 20 20 20 20 3b 3b 20 74 68 65 20 mbda,.and.return.........;;.the.
5b20 6c 61 6d 62 64 61 20 66 75 6e 63 74 69 6f 6e 20 61 73 20 6c 69 73 74 20 74 6f 20 62 65 20 65 78 lambda.function.as.list.to.be.ex
5b40 65 63 75 74 65 64 20 62 79 20 66 75 6e 63 61 6c 6c 0a 20 20 20 20 20 20 20 20 60 28 6c 61 6d 62 ecuted.by.funcall.........`(lamb
5b60 64 61 20 28 64 61 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 2c 28 6e 63 6f 6e 63 20 28 6c 69 da.(date)............,(nconc.(li
5b80 73 74 20 27 6f 72 29 20 28 6e 72 65 76 65 72 73 65 20 72 65 73 75 6c 74 29 20 64 65 73 63 72 69 st.'or).(nreverse.result).descri
5ba0 70 74 6f 72 2d 73 74 72 69 6e 67 2d 6c 69 73 74 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 ptor-string-list)))))..(defun.le
5bc0 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 63 6f 6d 70 69 6c 65 2d 63 6f 6e 73 74 72 61 69 6e 74 dger-schedule-compile-constraint
5be0 73 20 28 64 65 73 63 72 69 70 74 6f 72 2d 73 74 72 69 6e 67 29 0a 20 20 22 52 65 74 75 72 6e 20 s.(descriptor-string)..."Return.
5c00 61 20 6c 69 73 74 20 77 69 74 68 20 74 68 65 20 79 65 61 72 2c 20 6d 6f 6e 74 68 20 61 6e 64 20 a.list.with.the.year,.month.and.
5c20 64 61 79 20 66 69 65 6c 64 73 20 73 70 6c 69 74 2e 22 0a 20 20 28 6c 65 74 20 28 28 66 69 65 6c day.fields.split."...(let.((fiel
5c40 64 73 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 64 65 73 63 72 69 70 74 6f 72 2d 73 74 72 69 ds.(split-string.descriptor-stri
5c60 6e 67 20 22 5b 2f 5c 5c 2d 5d 22 20 74 29 29 29 0a 20 20 20 20 28 6c 69 73 74 20 27 61 6e 64 0a ng."[/\\-]".t))).....(list.'and.
5c80 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 63 6f 6e 73 74 ..........(ledger-schedule-const
5ca0 72 61 69 6e 2d 64 61 79 20 28 6e 74 68 20 30 20 66 69 65 6c 64 73 29 20 28 6e 74 68 20 31 20 66 rain-day.(nth.0.fields).(nth.1.f
5cc0 69 65 6c 64 73 29 20 28 6e 74 68 20 32 20 66 69 65 6c 64 73 29 29 0a 20 20 20 20 20 20 20 20 20 ields).(nth.2.fields))..........
5ce0 20 28 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 63 6f 6e 73 74 72 61 69 6e 2d 79 65 61 72 .(ledger-schedule-constrain-year
5d00 20 28 6e 74 68 20 30 20 66 69 65 6c 64 73 29 20 28 6e 74 68 20 31 20 66 69 65 6c 64 73 29 20 28 .(nth.0.fields).(nth.1.fields).(
5d20 6e 74 68 20 32 20 66 69 65 6c 64 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 nth.2.fields))...........(ledger
5d40 2d 73 63 68 65 64 75 6c 65 2d 63 6f 6e 73 74 72 61 69 6e 2d 6d 6f 6e 74 68 20 28 6e 74 68 20 30 -schedule-constrain-month.(nth.0
5d60 20 66 69 65 6c 64 73 29 20 28 6e 74 68 20 31 20 66 69 65 6c 64 73 29 20 28 6e 74 68 20 32 20 66 .fields).(nth.1.fields).(nth.2.f
5d80 69 65 6c 64 73 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 ields)))))..(defun.ledger-schedu
5da0 6c 65 2d 63 6f 6e 73 74 72 61 69 6e 2d 79 65 61 72 20 28 79 65 61 72 2d 64 65 73 63 20 6d 6f 6e le-constrain-year.(year-desc.mon
5dc0 74 68 2d 64 65 73 63 20 64 61 79 2d 64 65 73 63 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 66 6f th-desc.day-desc)..."Return.a.fo
5de0 72 6d 20 74 68 61 74 20 63 6f 6e 73 74 72 61 69 6e 73 20 74 68 65 20 79 65 61 72 2e 0a 0a 59 45 rm.that.constrains.the.year...YE
5e00 41 52 2d 44 45 53 43 2c 20 4d 4f 4e 54 48 2d 44 45 53 43 2c 20 61 6e 64 20 44 41 59 2d 44 45 53 AR-DESC,.MONTH-DESC,.and.DAY-DES
5e20 43 20 61 72 65 20 74 68 65 20 73 74 72 69 6e 67 20 70 6f 72 74 69 6f 6e 73 20 6f 66 20 74 68 65 C.are.the.string.portions.of.the
5e40 0a 64 61 74 65 20 64 65 73 63 72 69 70 74 6f 72 2e 22 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 .date.descriptor."...(cond....((
5e60 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5b 41 2d 5a 61 2d 7a 5d 22 20 64 61 79 2d 64 65 73 63 string-match."[A-Za-z]".day-desc
5e80 29 20 74 29 20 3b 20 74 68 65 72 65 20 69 73 20 61 6e 20 61 64 76 61 6e 63 65 64 20 64 61 79 20 ).t).;.there.is.an.advanced.day.
5ea0 64 65 73 63 72 69 70 74 6f 72 20 77 68 69 63 68 20 6f 76 65 72 72 69 64 65 73 20 74 68 65 20 79 descriptor.which.overrides.the.y
5ec0 65 61 72 0a 20 20 20 28 28 73 74 72 69 6e 67 3d 20 79 65 61 72 2d 64 65 73 63 20 22 2a 22 29 20 ear....((string=.year-desc."*").
5ee0 74 29 0a 20 20 20 28 28 2f 3d 20 30 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 79 t)....((/=.0.(string-to-number.y
5f00 65 61 72 2d 64 65 73 63 29 29 0a 20 20 20 20 60 28 6d 65 6d 71 20 28 6e 74 68 20 35 20 28 64 65 ear-desc)).....`(memq.(nth.5.(de
5f20 63 6f 64 65 2d 74 69 6d 65 20 64 61 74 65 29 29 20 27 2c 28 6d 61 70 63 61 72 20 27 73 74 72 69 code-time.date)).',(mapcar.'stri
5f40 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 79 65 61 72 2d ng-to-number.(split-string.year-
5f60 64 65 73 63 20 22 2c 22 29 29 29 29 0a 20 20 20 28 74 0a 20 20 20 20 28 65 72 72 6f 72 20 22 49 desc.","))))....(t.....(error."I
5f80 6d 70 72 6f 70 65 72 6c 79 20 73 70 65 63 69 66 69 65 64 20 79 65 61 72 20 63 6f 6e 73 74 72 61 mproperly.specified.year.constra
5fa0 69 6e 74 3a 20 25 73 20 25 73 20 25 73 22 20 79 65 61 72 2d 64 65 73 63 20 6d 6f 6e 74 68 2d 64 int:.%s.%s.%s".year-desc.month-d
5fc0 65 73 63 20 64 61 79 2d 64 65 73 63 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d esc.day-desc))))..(defun.ledger-
5fe0 73 63 68 65 64 75 6c 65 2d 63 6f 6e 73 74 72 61 69 6e 2d 6d 6f 6e 74 68 20 28 79 65 61 72 2d 64 schedule-constrain-month.(year-d
6000 65 73 63 20 6d 6f 6e 74 68 2d 64 65 73 63 20 64 61 79 2d 64 65 73 63 29 0a 20 20 22 52 65 74 75 esc.month-desc.day-desc)..."Retu
6020 72 6e 20 61 20 66 6f 72 6d 20 74 68 61 74 20 63 6f 6e 73 74 72 61 69 6e 73 20 74 68 65 20 6d 6f rn.a.form.that.constrains.the.mo
6040 6e 74 68 2e 0a 0a 59 45 41 52 2d 44 45 53 43 2c 20 4d 4f 4e 54 48 2d 44 45 53 43 2c 20 61 6e 64 nth...YEAR-DESC,.MONTH-DESC,.and
6060 20 44 41 59 2d 44 45 53 43 20 61 72 65 20 74 68 65 20 73 74 72 69 6e 67 20 70 6f 72 74 69 6f 6e .DAY-DESC.are.the.string.portion
6080 73 20 6f 66 20 74 68 65 0a 64 61 74 65 20 64 65 73 63 72 69 70 74 6f 72 2e 22 0a 20 20 28 63 6f s.of.the.date.descriptor."...(co
60a0 6e 64 0a 20 20 20 28 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5b 41 2d 5a 61 2d 7a 5d 22 20 nd....((string-match."[A-Za-z]".
60c0 64 61 79 2d 64 65 73 63 29 20 74 29 20 3b 20 74 68 65 72 65 20 69 73 20 61 6e 20 61 64 76 61 6e day-desc).t).;.there.is.an.advan
60e0 63 65 64 20 64 61 79 20 64 65 73 63 72 69 70 74 6f 72 20 77 68 69 63 68 20 6f 76 65 72 72 69 64 ced.day.descriptor.which.overrid
6100 65 73 20 74 68 65 20 6d 6f 6e 74 68 0a 20 20 20 28 28 73 74 72 69 6e 67 3d 20 6d 6f 6e 74 68 2d es.the.month....((string=.month-
6120 64 65 73 63 20 22 2a 22 29 0a 20 20 20 20 74 29 20 20 3b 3b 20 61 6c 77 61 79 73 20 6d 61 74 63 desc."*").....t)..;;.always.matc
6140 68 0a 20 20 20 28 28 73 74 72 69 6e 67 3d 20 6d 6f 6e 74 68 2d 64 65 73 63 20 22 45 22 29 20 20 h....((string=.month-desc."E")..
6160 3b 3b 20 45 76 65 6e 0a 20 20 20 20 60 28 63 6c 2d 65 76 65 6e 70 20 28 6e 74 68 20 34 20 28 64 ;;.Even.....`(cl-evenp.(nth.4.(d
6180 65 63 6f 64 65 2d 74 69 6d 65 20 64 61 74 65 29 29 29 29 0a 20 20 20 28 28 73 74 72 69 6e 67 3d ecode-time.date))))....((string=
61a0 20 6d 6f 6e 74 68 2d 64 65 73 63 20 22 4f 22 29 20 20 3b 3b 20 4f 64 64 0a 20 20 20 20 60 28 63 .month-desc."O")..;;.Odd.....`(c
61c0 6c 2d 6f 64 64 70 20 28 6e 74 68 20 34 20 28 64 65 63 6f 64 65 2d 74 69 6d 65 20 64 61 74 65 29 l-oddp.(nth.4.(decode-time.date)
61e0 29 29 29 0a 20 20 20 28 28 2f 3d 20 30 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 )))....((/=.0.(string-to-number.
6200 6d 6f 6e 74 68 2d 64 65 73 63 29 29 20 3b 3b 20 53 74 61 72 74 73 20 77 69 74 68 20 6e 75 6d 62 month-desc)).;;.Starts.with.numb
6220 65 72 0a 20 20 20 20 60 28 6d 65 6d 71 20 28 6e 74 68 20 34 20 28 64 65 63 6f 64 65 2d 74 69 6d er.....`(memq.(nth.4.(decode-tim
6240 65 20 64 61 74 65 29 29 20 27 2c 28 6d 61 70 63 61 72 20 27 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 e.date)).',(mapcar.'string-to-nu
6260 6d 62 65 72 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 6d 6f 6e 74 68 2d 64 65 73 63 20 22 2c mber.(split-string.month-desc.",
6280 22 29 29 29 29 0a 20 20 20 28 74 0a 20 20 20 20 28 65 72 72 6f 72 20 22 49 6d 70 72 6f 70 65 72 "))))....(t.....(error."Improper
62a0 6c 79 20 73 70 65 63 69 66 69 65 64 20 6d 6f 6e 74 68 20 63 6f 6e 73 74 72 61 69 6e 74 3a 20 25 ly.specified.month.constraint:.%
62c0 73 20 25 73 20 25 73 22 20 79 65 61 72 2d 64 65 73 63 20 6d 6f 6e 74 68 2d 64 65 73 63 20 64 61 s.%s.%s".year-desc.month-desc.da
62e0 79 2d 64 65 73 63 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 y-desc))))..(defun.ledger-schedu
6300 6c 65 2d 63 6f 6e 73 74 72 61 69 6e 2d 64 61 79 20 28 79 65 61 72 2d 64 65 73 63 20 6d 6f 6e 74 le-constrain-day.(year-desc.mont
6320 68 2d 64 65 73 63 20 64 61 79 2d 64 65 73 63 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 66 6f 72 h-desc.day-desc)..."Return.a.for
6340 6d 20 74 68 61 74 20 63 6f 6e 73 74 72 61 69 6e 73 20 74 68 65 20 64 61 79 2e 0a 0a 59 45 41 52 m.that.constrains.the.day...YEAR
6360 2d 44 45 53 43 2c 20 4d 4f 4e 54 48 2d 44 45 53 43 2c 20 61 6e 64 20 44 41 59 2d 44 45 53 43 20 -DESC,.MONTH-DESC,.and.DAY-DESC.
6380 61 72 65 20 74 68 65 20 73 74 72 69 6e 67 20 70 6f 72 74 69 6f 6e 73 20 6f 66 20 74 68 65 0a 64 are.the.string.portions.of.the.d
63a0 61 74 65 20 64 65 73 63 72 69 70 74 6f 72 2e 22 0a 20 20 28 63 6f 6e 64 20 28 28 73 74 72 69 6e ate.descriptor."...(cond.((strin
63c0 67 3d 20 64 61 79 2d 64 65 73 63 20 22 2a 22 29 0a 20 20 20 20 20 20 20 20 20 74 29 0a 20 20 20 g=.day-desc."*")..........t)....
63e0 20 20 20 20 20 28 28 73 74 72 69 6e 67 3d 20 64 61 79 2d 64 65 73 63 20 22 4c 22 29 0a 20 20 20 .....((string=.day-desc."L")....
6400 20 20 20 20 20 20 60 28 3d 20 28 6e 74 68 20 33 20 28 64 65 63 6f 64 65 2d 74 69 6d 65 20 64 61 ......`(=.(nth.3.(decode-time.da
6420 74 65 29 29 20 28 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 64 61 79 73 2d 69 6e 2d 6d 6f te)).(ledger-schedule-days-in-mo
6440 6e 74 68 20 28 6e 74 68 20 34 20 28 64 65 63 6f 64 65 2d 74 69 6d 65 20 64 61 74 65 29 29 20 28 nth.(nth.4.(decode-time.date)).(
6460 6e 74 68 20 35 20 28 64 65 63 6f 64 65 2d 74 69 6d 65 20 64 61 74 65 29 29 29 29 29 0a 20 20 20 nth.5.(decode-time.date)))))....
6480 20 20 20 20 20 28 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5b 41 2d 5a 61 2d 7a 5d 22 20 64 .....((string-match."[A-Za-z]".d
64a0 61 79 2d 64 65 73 63 29 20 20 3b 3b 20 54 68 65 72 65 20 69 73 20 73 6f 6d 65 74 68 69 6e 67 20 ay-desc)..;;.There.is.something.
64c0 6f 74 68 65 72 20 74 68 61 6e 20 64 69 67 69 74 73 20 61 6e 64 20 63 6f 6d 6d 61 73 0a 20 20 20 other.than.digits.and.commas....
64e0 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 70 61 72 73 65 2d 63 6f 6d ......(ledger-schedule-parse-com
6500 70 6c 65 78 2d 64 61 74 65 20 79 65 61 72 2d 64 65 73 63 20 6d 6f 6e 74 68 2d 64 65 73 63 20 64 plex-date.year-desc.month-desc.d
6520 61 79 2d 64 65 73 63 29 29 0a 20 20 20 20 20 20 20 20 28 28 2f 3d 20 30 20 28 73 74 72 69 6e 67 ay-desc)).........((/=.0.(string
6540 2d 74 6f 2d 6e 75 6d 62 65 72 20 64 61 79 2d 64 65 73 63 29 29 0a 20 20 20 20 20 20 20 20 20 60 -to-number.day-desc))..........`
6560 28 6d 65 6d 71 20 28 6e 74 68 20 33 20 28 64 65 63 6f 64 65 2d 74 69 6d 65 20 64 61 74 65 29 29 (memq.(nth.3.(decode-time.date))
6580 20 27 2c 28 6d 61 70 63 61 72 20 27 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 73 70 .',(mapcar.'string-to-number.(sp
65a0 6c 69 74 2d 73 74 72 69 6e 67 20 64 61 79 2d 64 65 73 63 20 22 2c 22 29 29 29 29 0a 20 20 20 20 lit-string.day-desc.",")))).....
65c0 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 49 6d 70 72 6f 70 65 72 ....(t..........(error."Improper
65e0 6c 79 20 73 70 65 63 69 66 69 65 64 20 64 61 79 20 63 6f 6e 73 74 72 61 69 6e 74 3a 20 25 73 20 ly.specified.day.constraint:.%s.
6600 25 73 20 25 73 22 20 79 65 61 72 2d 64 65 73 63 20 6d 6f 6e 74 68 2d 64 65 73 63 20 64 61 79 2d %s.%s".year-desc.month-desc.day-
6620 64 65 73 63 29 29 29 29 0a 0a 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 desc))))....(defun.ledger-schedu
6640 6c 65 2d 70 61 72 73 65 2d 63 6f 6d 70 6c 65 78 2d 64 61 74 65 20 28 79 65 61 72 2d 64 65 73 63 le-parse-complex-date.(year-desc
6660 20 6d 6f 6e 74 68 2d 64 65 73 63 20 64 61 79 2d 64 65 73 63 29 0a 20 20 22 50 61 72 73 65 20 64 .month-desc.day-desc)..."Parse.d
6680 61 79 20 64 65 73 63 72 69 70 74 6f 72 73 20 74 68 61 74 20 68 61 76 65 20 72 65 70 65 61 74 73 ay.descriptors.that.have.repeats
66a0 2e 22 0a 20 20 28 6c 65 74 20 28 28 79 65 61 72 73 20 28 6d 61 70 63 61 72 20 27 73 74 72 69 6e ."...(let.((years.(mapcar.'strin
66c0 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 79 65 61 72 2d 64 g-to-number.(split-string.year-d
66e0 65 73 63 20 22 2c 22 29 29 29 0a 20 20 20 20 20 20 20 20 28 6d 6f 6e 74 68 73 20 28 6d 61 70 63 esc.","))).........(months.(mapc
6700 61 72 20 27 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 73 70 6c 69 74 2d 73 74 72 69 ar.'string-to-number.(split-stri
6720 6e 67 20 6d 6f 6e 74 68 2d 64 65 73 63 20 22 2c 22 29 29 29 0a 20 20 20 20 20 20 20 20 28 64 61 ng.month-desc.","))).........(da
6740 79 2d 70 61 72 74 73 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 64 61 79 2d 64 65 73 63 20 22 y-parts.(split-string.day-desc."
6760 5c 5c 2b 22 29 29 0a 20 20 20 20 20 20 20 20 28 65 76 65 72 79 2d 6e 74 68 20 28 73 74 72 69 6e \\+")).........(every-nth.(strin
6780 67 2d 6d 61 74 63 68 20 22 5c 5c 2b 22 20 64 61 79 2d 64 65 73 63 29 29 29 0a 20 20 20 20 28 69 g-match."\\+".day-desc))).....(i
67a0 66 20 65 76 65 72 79 2d 6e 74 68 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 62 61 73 65 2d f.every-nth.........(let.((base-
67c0 64 61 79 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 63 61 72 20 64 61 79 2d 70 day.(string-to-number.(car.day-p
67e0 61 72 74 73 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 63 72 65 6d 65 6e 74 arts)))...............(increment
6800 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 73 75 62 73 74 72 69 6e 67 20 28 63 .(string-to-number.(substring.(c
6820 61 64 72 20 64 61 79 2d 70 61 72 74 73 29 20 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 adr.day-parts).0................
6840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
6860 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5b 41 2d 5a 61 2d 7a 5d 22 20 .......(string-match."[A-Za-z]".
6880 28 63 61 64 72 20 64 61 79 2d 70 61 72 74 73 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 (cadr.day-parts)))))............
68a0 20 20 20 28 64 61 79 2d 6f 66 2d 77 65 65 6b 20 28 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 ...(day-of-week.(ledger-schedule
68c0 2d 65 6e 63 6f 64 65 2d 64 61 79 2d 6f 66 2d 77 65 65 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 -encode-day-of-week.............
68e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 75 62 73 74 72 69 6e 67 20 28 63 61 64 72 ................(substring.(cadr
6900 20 64 61 79 2d 70 61 72 74 73 29 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5b 41 2d 5a 61 .day-parts).(string-match."[A-Za
6920 2d 7a 5d 22 20 28 63 61 64 72 20 64 61 79 2d 70 61 72 74 73 29 29 29 29 29 29 0a 20 20 20 20 20 -z]".(cadr.day-parts))))))......
6940 20 20 20 20 20 28 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 63 6f 6e 73 74 72 61 69 6e 2d .....(ledger-schedule-constrain-
6960 65 76 65 72 79 2d 63 6f 75 6e 74 2d 64 61 79 20 64 61 79 2d 6f 66 2d 77 65 65 6b 20 69 6e 63 72 every-count-day.day-of-week.incr
6980 65 6d 65 6e 74 20 28 65 6e 63 6f 64 65 2d 74 69 6d 65 20 30 20 30 20 30 20 62 61 73 65 2d 64 61 ement.(encode-time.0.0.0.base-da
69a0 79 20 28 63 61 72 20 6d 6f 6e 74 68 73 29 20 28 63 61 72 20 79 65 61 72 73 29 29 29 29 0a 20 20 y.(car.months).(car.years))))...
69c0 20 20 20 20 28 6c 65 74 20 28 28 63 6f 75 6e 74 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 ....(let.((count.(string-to-numb
69e0 65 72 20 28 73 75 62 73 74 72 69 6e 67 20 28 63 61 72 20 64 61 79 2d 70 61 72 74 73 29 20 30 20 er.(substring.(car.day-parts).0.
6a00 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 64 61 79 2d 6f 66 2d 77 65 65 6b 20 28 6c 1))).............(day-of-week.(l
6a20 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 65 6e 63 6f 64 65 2d 64 61 79 2d 6f 66 2d 77 65 65 edger-schedule-encode-day-of-wee
6a40 6b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 75 62 k...........................(sub
6a60 73 74 72 69 6e 67 20 28 63 61 72 20 64 61 79 2d 70 61 72 74 73 29 20 28 73 74 72 69 6e 67 2d 6d string.(car.day-parts).(string-m
6a80 61 74 63 68 20 22 5b 41 2d 5a 61 2d 7a 5d 22 20 28 63 61 72 20 64 61 79 2d 70 61 72 74 73 29 29 atch."[A-Za-z]".(car.day-parts))
6aa0 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 63 6f )))).........(ledger-schedule-co
6ac0 6e 73 74 72 61 69 6e 2d 64 61 79 2d 69 6e 2d 6d 6f 6e 74 68 20 63 6f 75 6e 74 20 64 61 79 2d 6f nstrain-day-in-month.count.day-o
6ae0 66 2d 77 65 65 6b 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 73 63 68 65 64 f-week)))))..(defun.ledger-sched
6b00 75 6c 65 2d 6c 69 73 74 2d 75 70 63 6f 6d 69 6e 67 2d 78 61 63 74 73 20 28 63 61 6e 64 69 64 61 ule-list-upcoming-xacts.(candida
6b20 74 65 2d 69 74 65 6d 73 20 65 61 72 6c 79 20 68 6f 72 69 7a 6f 6e 29 0a 20 20 22 53 65 61 72 63 te-items.early.horizon)..."Searc
6b40 68 20 43 41 4e 44 49 44 41 54 45 2d 49 54 45 4d 53 20 66 6f 72 20 78 61 63 74 73 20 74 68 61 74 h.CANDIDATE-ITEMS.for.xacts.that
6b60 20 6f 63 63 75 72 20 77 69 74 68 69 6e 20 74 68 65 20 67 69 76 65 6e 20 70 65 72 69 6f 64 2e 0a .occur.within.the.given.period..
6b80 54 68 65 20 70 65 72 69 6f 64 20 72 75 6e 73 20 66 72 6f 6d 20 28 74 6f 64 61 79 20 2d 20 45 41 The.period.runs.from.(today.-.EA
6ba0 52 4c 59 29 20 74 6f 20 28 74 6f 64 61 79 20 2b 20 48 4f 52 49 5a 4f 4e 29 2e 22 0a 20 20 28 6c RLY).to.(today.+.HORIZON)."...(l
6bc0 65 74 20 28 28 73 74 61 72 74 2d 64 61 74 65 20 28 74 69 6d 65 2d 73 75 62 74 72 61 63 74 20 28 et.((start-date.(time-subtract.(
6be0 63 75 72 72 65 6e 74 2d 74 69 6d 65 29 20 28 64 61 79 73 2d 74 6f 2d 74 69 6d 65 20 65 61 72 6c current-time).(days-to-time.earl
6c00 79 29 29 29 0a 20 20 20 20 20 20 20 20 74 65 73 74 2d 64 61 74 65 20 69 74 65 6d 73 29 0a 20 20 y))).........test-date.items)...
6c20 20 20 28 63 6c 2d 6c 6f 6f 70 20 66 6f 72 20 64 61 79 20 66 72 6f 6d 20 30 20 74 6f 20 28 2b 20 ..(cl-loop.for.day.from.0.to.(+.
6c40 65 61 72 6c 79 20 68 6f 72 69 7a 6f 6e 29 20 62 79 20 31 20 64 6f 0a 20 20 20 20 20 20 20 20 20 early.horizon).by.1.do..........
6c60 20 20 20 20 28 73 65 74 71 20 74 65 73 74 2d 64 61 74 65 20 28 74 69 6d 65 2d 61 64 64 20 73 74 ....(setq.test-date.(time-add.st
6c80 61 72 74 2d 64 61 74 65 20 28 64 61 79 73 2d 74 6f 2d 74 69 6d 65 20 64 61 79 29 29 29 0a 20 20 art-date.(days-to-time.day)))...
6ca0 20 20 20 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 63 61 6e 64 69 64 61 74 65 20 63 61 ...........(dolist.(candidate.ca
6cc0 6e 64 69 64 61 74 65 2d 69 74 65 6d 73 20 69 74 65 6d 73 29 0a 20 20 20 20 20 20 20 20 20 20 20 ndidate-items.items)............
6ce0 20 20 20 20 28 69 66 20 28 66 75 6e 63 61 6c 6c 20 28 63 61 72 20 63 61 6e 64 69 64 61 74 65 29 ....(if.(funcall.(car.candidate)
6d00 20 74 65 73 74 2d 64 61 74 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 .test-date)....................(
6d20 73 65 74 71 20 69 74 65 6d 73 20 28 61 70 70 65 6e 64 20 69 74 65 6d 73 20 28 6c 69 73 74 20 28 setq.items.(append.items.(list.(
6d40 6c 69 73 74 20 74 65 73 74 2d 64 61 74 65 20 28 63 61 64 72 20 63 61 6e 64 69 64 61 74 65 29 29 list.test-date.(cadr.candidate))
6d60 29 29 29 29 29 29 0a 20 20 20 20 69 74 65 6d 73 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 )))))).....items))..(defun.ledge
6d80 72 2d 73 63 68 65 64 75 6c 65 2d 63 72 65 61 74 65 2d 61 75 74 6f 2d 62 75 66 66 65 72 20 28 63 r-schedule-create-auto-buffer.(c
6da0 61 6e 64 69 64 61 74 65 2d 69 74 65 6d 73 20 65 61 72 6c 79 20 68 6f 72 69 7a 6f 6e 29 0a 20 20 andidate-items.early.horizon)...
6dc0 22 46 6f 72 6d 61 74 20 43 41 4e 44 49 44 41 54 45 2d 49 54 45 4d 53 20 66 6f 72 20 64 69 73 70 "Format.CANDIDATE-ITEMS.for.disp
6de0 6c 61 79 2e 22 0a 20 20 28 6c 65 74 20 28 28 63 61 6e 64 69 64 61 74 65 73 20 28 6c 65 64 67 65 lay."...(let.((candidates.(ledge
6e00 72 2d 73 63 68 65 64 75 6c 65 2d 6c 69 73 74 2d 75 70 63 6f 6d 69 6e 67 2d 78 61 63 74 73 20 63 r-schedule-list-upcoming-xacts.c
6e20 61 6e 64 69 64 61 74 65 2d 69 74 65 6d 73 20 65 61 72 6c 79 20 68 6f 72 69 7a 6f 6e 29 29 0a 20 andidate-items.early.horizon))..
6e40 20 20 20 20 20 20 20 28 73 63 68 65 64 75 6c 65 2d 62 75 66 20 28 67 65 74 2d 62 75 66 66 65 72 .......(schedule-buf.(get-buffer
6e60 2d 63 72 65 61 74 65 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 62 75 66 66 65 72 2d 6e -create.ledger-schedule-buffer-n
6e80 61 6d 65 29 29 29 0a 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 ame))).....(with-current-buffer.
6ea0 73 63 68 65 64 75 6c 65 2d 62 75 66 0a 20 20 20 20 20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72 schedule-buf.......(erase-buffer
6ec0 29 0a 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 63 61 6e 64 69 64 61 74 65 20 63 61 6e 64 69 ).......(dolist.(candidate.candi
6ee0 64 61 74 65 73 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 6c 65 64 67 65 72 2d 66 dates).........(insert.(ledger-f
6f00 6f 72 6d 61 74 2d 64 61 74 65 20 28 63 61 72 20 63 61 6e 64 69 64 61 74 65 29 20 29 20 22 20 22 ormat-date.(car.candidate).)."."
6f20 20 28 63 61 64 72 20 63 61 6e 64 69 64 61 74 65 29 20 22 5c 6e 22 29 29 0a 20 20 20 20 20 20 28 .(cadr.candidate)."\n")).......(
6f40 6c 65 64 67 65 72 2d 6d 6f 64 65 29 29 0a 20 20 20 20 28 6c 65 6e 67 74 68 20 63 61 6e 64 69 64 ledger-mode)).....(length.candid
6f60 61 74 65 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d ates)))..(defun.ledger-schedule-
6f80 75 70 63 6f 6d 69 6e 67 20 28 66 69 6c 65 20 6c 6f 6f 6b 2d 62 61 63 6b 77 61 72 64 20 6c 6f 6f upcoming.(file.look-backward.loo
6fa0 6b 2d 66 6f 72 77 61 72 64 29 0a 20 20 22 47 65 6e 65 72 61 74 65 20 75 70 63 6f 6d 69 6e 67 20 k-forward)..."Generate.upcoming.
6fc0 74 72 61 6e 73 61 63 74 69 6f 6e 73 2e 0a 0a 46 49 4c 45 20 69 73 20 74 68 65 20 66 69 6c 65 20 transactions...FILE.is.the.file.
6fe0 63 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 73 63 68 65 64 75 6c 65 64 20 74 72 61 6e 73 61 63 containing.the.scheduled.transac
7000 74 69 6f 6e 2c 0a 64 65 66 61 75 6c 74 20 74 6f 20 60 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c tion,.default.to.`ledger-schedul
7020 65 2d 66 69 6c 65 27 2e 0a 4c 4f 4f 4b 2d 42 41 43 4b 57 41 52 44 20 69 73 20 74 68 65 20 6e 75 e-file'..LOOK-BACKWARD.is.the.nu
7040 6d 62 65 72 20 6f 66 20 64 61 79 73 20 69 6e 20 74 68 65 20 70 61 73 74 20 74 6f 20 6c 6f 6f 6b mber.of.days.in.the.past.to.look
7060 20 61 74 0a 64 65 66 61 75 6c 74 20 74 6f 20 60 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d .at.default.to.`ledger-schedule-
7080 6c 6f 6f 6b 2d 62 61 63 6b 77 61 72 64 27 0a 4c 4f 4f 4b 2d 46 4f 52 57 41 52 44 20 69 73 20 74 look-backward'.LOOK-FORWARD.is.t
70a0 68 65 20 6e 75 6d 62 65 72 20 6f 66 20 64 61 79 73 20 69 6e 20 74 68 65 20 66 75 74 75 72 65 20 he.number.of.days.in.the.future.
70c0 74 6f 20 6c 6f 6f 6b 20 61 74 0a 64 65 66 61 75 6c 74 20 74 6f 20 60 6c 65 64 67 65 72 2d 73 63 to.look.at.default.to.`ledger-sc
70e0 68 65 64 75 6c 65 2d 6c 6f 6f 6b 2d 66 6f 72 77 61 72 64 27 0a 0a 55 73 65 20 61 20 70 72 65 66 hedule-look-forward'..Use.a.pref
7100 69 78 20 61 72 67 20 74 6f 20 63 68 61 6e 67 65 20 74 68 65 20 64 65 66 61 75 6c 74 20 76 61 6c ix.arg.to.change.the.default.val
7120 75 65 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 69 66 20 63 75 72 72 65 6e 74 2d 70 ue"...(interactive.(if.current-p
7140 72 65 66 69 78 2d 61 72 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 refix-arg....................(li
7160 73 74 20 28 72 65 61 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 53 63 68 65 64 75 6c 65 20 46 69 6c st.(read-file-name."Schedule.Fil
7180 65 3a 20 22 20 28 29 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 66 69 6c 65 20 74 29 0a e:.".().ledger-schedule-file.t).
71a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 61 64 2d 6e .........................(read-n
71c0 75 6d 62 65 72 20 22 4c 6f 6f 6b 20 62 61 63 6b 77 61 72 64 3a 20 22 20 6c 65 64 67 65 72 2d 73 umber."Look.backward:.".ledger-s
71e0 63 68 65 64 75 6c 65 2d 6c 6f 6f 6b 2d 62 61 63 6b 77 61 72 64 29 0a 20 20 20 20 20 20 20 20 20 chedule-look-backward)..........
7200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 61 64 2d 6e 75 6d 62 65 72 20 22 4c 6f ................(read-number."Lo
7220 6f 6b 20 66 6f 72 77 61 72 64 3a 20 22 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 6c 6f ok.forward:.".ledger-schedule-lo
7240 6f 6b 2d 66 6f 72 77 61 72 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c ok-forward))..................(l
7260 69 73 74 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 66 69 6c 65 20 6c 65 64 67 65 72 2d ist.ledger-schedule-file.ledger-
7280 73 63 68 65 64 75 6c 65 2d 6c 6f 6f 6b 2d 62 61 63 6b 77 61 72 64 20 6c 65 64 67 65 72 2d 73 63 schedule-look-backward.ledger-sc
72a0 68 65 64 75 6c 65 2d 6c 6f 6f 6b 2d 66 6f 72 77 61 72 64 29 29 29 0a 20 20 28 75 6e 6c 65 73 73 hedule-look-forward)))...(unless
72c0 20 28 61 6e 64 20 66 69 6c 65 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 66 69 6c 65 29 29 .(and.file.(file-exists-p.file))
72e0 0a 20 20 20 20 28 65 72 72 6f 72 20 22 43 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 6c 65 64 67 .....(error."Could.not.find.ledg
7300 65 72 20 73 63 68 65 64 75 6c 65 20 66 69 6c 65 20 61 74 20 25 73 22 20 66 69 6c 65 29 29 0a 20 er.schedule.file.at.%s".file))..
7320 20 28 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 63 72 65 61 74 65 2d 61 75 74 6f 2d 62 75 .(ledger-schedule-create-auto-bu
7340 66 66 65 72 0a 20 20 20 28 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 73 63 61 6e 2d 74 72 ffer....(ledger-schedule-scan-tr
7360 61 6e 73 61 63 74 69 6f 6e 73 20 66 69 6c 65 29 0a 20 20 20 6c 6f 6f 6b 2d 62 61 63 6b 77 61 72 ansactions.file)....look-backwar
7380 64 0a 20 20 20 6c 6f 6f 6b 2d 66 6f 72 77 61 72 64 29 0a 20 20 28 70 6f 70 2d 74 6f 2d 62 75 66 d....look-forward)...(pop-to-buf
73a0 66 65 72 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 fer.ledger-schedule-buffer-name)
73c0 29 0a 0a 0a 28 70 72 6f 76 69 64 65 20 27 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 29 0a 0a )...(provide.'ledger-schedule)..
73e0 3b 3b 3b 20 6c 65 64 67 65 72 2d 73 63 68 65 64 75 6c 65 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 ;;;.ledger-schedule.el.ends.here
7400 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7420 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
74a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
74c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
74e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
75a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
75c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
75e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7600 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 32 33 2e 34 34 35 2f 6c 65 64 67 65 72 2d ledger-mode-20240423.445/ledger-
7620 65 78 65 63 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 exec.el.........................
7640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7660 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
7680 30 30 31 31 37 34 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 36 32 36 00 20 30 00 00 00 0011743.00000000000.015626..0...
76a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
76c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
76e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7700 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
7720 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
7740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
77a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
77c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
77e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
7800 3b 3b 3b 20 6c 65 64 67 65 72 2d 65 78 65 63 2e 65 6c 20 2d 2d 2d 20 48 65 6c 70 65 72 20 63 6f ;;;.ledger-exec.el.---.Helper.co
7820 64 65 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 74 68 65 20 22 6c 65 64 67 65 72 22 20 63 6f 6d de.for.use.with.the."ledger".com
7840 6d 61 6e 64 2d 6c 69 6e 65 20 74 6f 6f 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 mand-line.tool..-*-.lexical-bind
7860 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 ing:.t;.-*-..;;.Copyright.(C).20
7880 30 33 2d 32 30 31 36 20 4a 6f 68 6e 20 57 69 65 67 6c 65 79 20 28 6a 6f 68 6e 77 20 41 54 20 67 03-2016.John.Wiegley.(johnw.AT.g
78a0 6e 75 20 44 4f 54 20 6f 72 67 29 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 6e 6f 74 nu.DOT.org)..;;.This.file.is.not
78c0 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 54 68 69 73 20 69 73 20 .part.of.GNU.Emacs...;;.This.is.
78e0 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 free.software;.you.can.redistrib
7900 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 20 75 6e 64 65 72 0a 3b 3b ute.it.and/or.modify.it.under.;;
7920 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 .the.terms.of.the.GNU.General.Pu
7940 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 blic.License.as.published.by.the
7960 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 .Free.;;.Software.Foundation;.ei
7980 74 68 65 72 20 76 65 72 73 69 6f 6e 20 32 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 ther.version.2,.or.(at.your.opti
79a0 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 0a 3b 3b 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 on).any.later.;;.version..;;.;;.
79c0 54 68 69 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 This.is.distributed.in.the.hope.
79e0 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 that.it.will.be.useful,.but.WITH
7a00 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 OUT.;;.ANY.WARRANTY;.without.eve
7a20 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 n.the.implied.warranty.of.MERCHA
7a40 4e 54 41 42 49 4c 49 54 59 20 6f 72 0a 3b 3b 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 NTABILITY.or.;;.FITNESS.FOR.A.PA
7a60 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 RTICULAR.PURPOSE...See.the.GNU.G
7a80 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 66 6f 72 20 6d 6f 72 eneral.Public.License.;;.for.mor
7aa0 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 e.details..;;.;;.You.should.have
7ac0 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 .received.a.copy.of.the.GNU.Gene
7ae0 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 ral.Public.License.;;.along.with
7b00 20 47 4e 55 20 45 6d 61 63 73 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 .GNU.Emacs;.see.the.file.COPYING
7b20 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 20 ...If.not,.write.to.the.;;.Free.
7b40 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 Software.Foundation,.Inc.,.51.Fr
7b60 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 anklin.Street,.Fifth.Floor,.Bost
7b80 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 20 55 53 41 2e 0a 0a 0a 3b 3b 3b 20 on,.;;.MA.02110-1301.USA....;;;.
7ba0 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 20 43 6f 64 65 20 66 6f 72 20 65 78 65 63 75 74 69 6e Commentary:.;;.Code.for.executin
7bc0 67 20 6c 65 64 67 65 72 20 73 79 6e 63 68 72 6f 6e 6f 75 73 6c 79 2e 0a 0a 3b 3b 3b 20 43 6f 64 g.ledger.synchronously...;;;.Cod
7be0 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 69 6e 69 74 29 20 20 20 20 20 20 e:..(require.'ledger-init)......
7c00 20 20 20 20 20 20 20 20 20 20 20 20 3b 66 6f 72 20 60 6c 65 64 67 65 72 2d 64 65 66 61 75 6c 74 ............;for.`ledger-default
7c20 2d 64 61 74 65 2d 66 6f 72 6d 61 74 27 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e -date-format'..(declare-function
7c40 20 6c 65 64 67 65 72 2d 6d 61 73 74 65 72 2d 66 69 6c 65 20 22 6c 65 64 67 65 72 2d 72 65 70 6f .ledger-master-file."ledger-repo
7c60 72 74 22 20 28 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6c 65 64 67 65 72 2d 76 65 72 73 69 6f rt".())..(defconst.ledger-versio
7c80 6e 2d 6e 65 65 64 65 64 20 22 33 2e 30 2e 30 22 0a 20 20 22 54 68 65 20 76 65 72 73 69 6f 6e 20 n-needed."3.0.0"..."The.version.
7ca0 6f 66 20 6c 65 64 67 65 72 20 65 78 65 63 75 74 61 62 6c 65 20 6e 65 65 64 65 64 20 66 6f 72 20 of.ledger.executable.needed.for.
7cc0 69 6e 74 65 72 61 63 74 69 76 65 20 66 65 61 74 75 72 65 73 2e 22 29 0a 0a 28 64 65 66 76 61 72 interactive.features.")..(defvar
7ce0 20 6c 65 64 67 65 72 2d 77 6f 72 6b 73 20 6e 69 6c 0a 20 20 22 4e 6f 6e 2d 6e 69 6c 20 69 66 20 .ledger-works.nil..."Non-nil.if.
7d00 74 68 65 20 6c 65 64 67 65 72 20 62 69 6e 61 72 79 20 63 61 6e 20 73 75 70 70 6f 72 74 20 60 6c the.ledger.binary.can.support.`l
7d20 65 64 67 65 72 2d 6d 6f 64 65 27 20 69 6e 74 65 72 61 63 74 69 76 65 20 66 65 61 74 75 72 65 73 edger-mode'.interactive.features
7d40 2e 22 29 0a 0a 28 64 65 66 67 72 6f 75 70 20 6c 65 64 67 65 72 2d 65 78 65 63 20 6e 69 6c 0a 20 .")..(defgroup.ledger-exec.nil..
7d60 20 22 49 6e 74 65 72 66 61 63 65 20 74 6f 20 74 68 65 20 4c 65 64 67 65 72 20 63 6f 6d 6d 61 6e ."Interface.to.the.Ledger.comman
7d80 64 2d 6c 69 6e 65 20 61 63 63 6f 75 6e 74 69 6e 67 20 70 72 6f 67 72 61 6d 2e 22 0a 20 20 3a 67 d-line.accounting.program."...:g
7da0 72 6f 75 70 20 27 6c 65 64 67 65 72 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 roup.'ledger)..(defcustom.ledger
7dc0 2d 6d 6f 64 65 2d 73 68 6f 75 6c 64 2d 63 68 65 63 6b 2d 76 65 72 73 69 6f 6e 20 74 0a 20 20 22 -mode-should-check-version.t..."
7de0 53 68 6f 75 6c 64 20 4c 65 64 67 65 72 2d 6d 6f 64 65 20 76 65 72 69 66 79 20 74 68 61 74 20 74 Should.Ledger-mode.verify.that.t
7e00 68 65 20 65 78 65 63 75 74 61 62 6c 65 20 69 73 20 77 6f 72 6b 69 6e 67 3f 22 0a 20 20 3a 74 79 he.executable.is.working?"...:ty
7e20 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 65 78 65 pe.'boolean...:group.'ledger-exe
7e40 63 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 62 69 6e 61 72 79 2d 70 61 74 c)..(defcustom.ledger-binary-pat
7e60 68 20 22 6c 65 64 67 65 72 22 0a 20 20 22 50 61 74 68 20 74 6f 20 74 68 65 20 6c 65 64 67 65 72 h."ledger"..."Path.to.the.ledger
7e80 20 65 78 65 63 75 74 61 62 6c 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 66 69 6c 65 0a 20 20 3a 72 .executable."...:type.'file...:r
7ea0 69 73 6b 79 20 74 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 65 78 65 63 29 0a 0a 28 isky.t...:group.'ledger-exec)..(
7ec0 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 65 78 65 63 2d 68 61 6e 64 6c 65 2d 65 72 72 6f 72 20 28 defun.ledger-exec-handle-error.(
7ee0 6c 65 64 67 65 72 2d 65 72 72 66 69 6c 65 29 0a 20 20 22 44 65 61 6c 20 77 69 74 68 20 6c 65 64 ledger-errfile)..."Deal.with.led
7f00 67 65 72 20 65 72 72 6f 72 73 20 63 6f 6e 74 61 69 6e 65 64 20 69 6e 20 4c 45 44 47 45 52 2d 45 ger.errors.contained.in.LEDGER-E
7f20 52 52 46 49 4c 45 2e 22 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 RRFILE."...(with-current-buffer.
7f40 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 22 2a 4c 65 64 67 65 72 20 45 72 72 6f (get-buffer-create."*Ledger.Erro
7f60 72 2a 22 29 0a 20 20 20 20 28 6c 65 74 20 28 28 62 75 66 66 65 72 2d 72 65 61 64 2d 6f 6e 6c 79 r*").....(let.((buffer-read-only
7f80 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 28 70 6f 69 .nil)).......(delete-region.(poi
7fa0 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 0a 20 20 20 20 20 20 28 69 6e 73 65 nt-min).(point-max)).......(inse
7fc0 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 20 6c 65 64 67 65 72 2d 65 72 72 66 69 6c 65 29 rt-file-contents.ledger-errfile)
7fe0 29 0a 20 20 20 20 28 76 69 65 77 2d 6d 6f 64 65 29 0a 20 20 20 20 28 73 65 74 71 20 62 75 66 66 ).....(view-mode).....(setq.buff
8000 65 72 2d 72 65 61 64 2d 6f 6e 6c 79 20 74 29 0a 20 20 20 20 28 63 75 72 72 65 6e 74 2d 62 75 66 er-read-only.t).....(current-buf
8020 66 65 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 65 78 65 63 2d 73 75 63 63 65 fer)))..(defun.ledger-exec-succe
8040 73 73 2d 70 20 28 65 78 69 74 2d 63 6f 64 65 20 6c 65 64 67 65 72 2d 6f 75 74 70 75 74 2d 62 75 ss-p.(exit-code.ledger-output-bu
8060 66 66 65 72 29 0a 20 20 22 52 65 74 75 72 6e 20 6e 6f 6e 2d 6e 69 6c 20 69 66 20 45 58 49 54 2d ffer)..."Return.non-nil.if.EXIT-
8080 43 4f 44 45 20 61 6e 64 20 4c 45 44 47 45 52 2d 4f 55 54 50 55 54 2d 42 55 46 46 45 52 20 69 6e CODE.and.LEDGER-OUTPUT-BUFFER.in
80a0 64 69 63 61 74 65 20 73 75 63 63 65 73 73 2e 22 0a 20 20 28 61 6e 64 20 28 7a 65 72 6f 70 20 65 dicate.success."...(and.(zerop.e
80c0 78 69 74 2d 63 6f 64 65 29 0a 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 xit-code)........(with-current-b
80e0 75 66 66 65 72 20 6c 65 64 67 65 72 2d 6f 75 74 70 75 74 2d 62 75 66 66 65 72 0a 20 20 20 20 20 uffer.ledger-output-buffer......
8100 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 ....(goto-char.(point-min)).....
8120 20 20 20 20 20 28 6e 6f 74 20 28 61 6e 64 20 28 3e 20 28 62 75 66 66 65 72 2d 73 69 7a 65 29 20 .....(not.(and.(>.(buffer-size).
8140 31 29 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 28 72 65 67 65 78 70 2d 71 75 6f 74 65 20 22 57 68 1).(looking-at.(regexp-quote."Wh
8160 69 6c 65 22 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 65 78 65 63 2d ile")))))))..(defun.ledger-exec-
8180 6c 65 64 67 65 72 20 28 69 6e 70 75 74 2d 62 75 66 66 65 72 20 26 6f 70 74 69 6f 6e 61 6c 20 6f ledger.(input-buffer.&optional.o
81a0 75 74 70 75 74 2d 62 75 66 66 65 72 20 26 72 65 73 74 20 61 72 67 73 29 0a 20 20 22 52 75 6e 20 utput-buffer.&rest.args)..."Run.
81c0 4c 65 64 67 65 72 20 75 73 69 6e 67 20 49 4e 50 55 54 2d 42 55 46 46 45 52 2e 0a 4f 70 74 69 6f Ledger.using.INPUT-BUFFER..Optio
81e0 6e 61 6c 6c 79 20 63 61 70 74 75 72 65 20 6f 75 74 70 75 74 20 69 6e 20 4f 55 54 50 55 54 2d 42 nally.capture.output.in.OUTPUT-B
8200 55 46 46 45 52 2c 20 61 6e 64 20 70 61 73 73 20 41 52 47 53 20 6f 6e 20 74 68 65 0a 63 6f 6d 6d UFFER,.and.pass.ARGS.on.the.comm
8220 61 6e 64 20 6c 69 6e 65 2e 20 20 52 65 74 75 72 6e 73 20 4f 55 54 50 55 54 2d 42 55 46 46 45 52 and.line...Returns.OUTPUT-BUFFER
8240 20 69 66 20 6c 65 64 67 65 72 20 73 75 63 63 65 65 64 65 64 2c 0a 6f 74 68 65 72 77 69 73 65 20 .if.ledger.succeeded,.otherwise.
8260 74 68 65 20 65 72 72 6f 72 20 6f 75 74 70 75 74 20 69 73 20 64 69 73 70 6c 61 79 65 64 20 61 6e the.error.output.is.displayed.an
8280 64 20 61 6e 20 65 72 72 6f 72 20 69 73 20 72 61 69 73 65 64 2e 22 0a 20 20 28 75 6e 6c 65 73 73 d.an.error.is.raised."...(unless
82a0 20 28 61 6e 64 20 6c 65 64 67 65 72 2d 62 69 6e 61 72 79 2d 70 61 74 68 0a 20 20 20 20 20 20 20 .(and.ledger-binary-path........
82c0 20 20 20 20 20 20 20 20 28 6f 72 20 28 61 6e 64 20 28 66 69 6c 65 2d 65 78 69 73 74 73 2d 70 20 ........(or.(and.(file-exists-p.
82e0 6c 65 64 67 65 72 2d 62 69 6e 61 72 79 2d 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 ledger-binary-path).............
8300 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 65 78 65 63 75 74 61 62 6c 65 2d 70 20 6c ............(file-executable-p.l
8320 65 64 67 65 72 2d 62 69 6e 61 72 79 2d 70 61 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 edger-binary-path)).............
8340 20 20 20 20 20 20 20 28 65 78 65 63 75 74 61 62 6c 65 2d 66 69 6e 64 20 6c 65 64 67 65 72 2d 62 .......(executable-find.ledger-b
8360 69 6e 61 72 79 2d 70 61 74 68 29 29 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 60 6c 65 64 67 65 inary-path))).....(error."`ledge
8380 72 2d 62 69 6e 61 72 79 2d 70 61 74 68 27 20 28 76 61 6c 75 65 3a 20 25 73 29 20 69 73 20 6e 6f r-binary-path'.(value:.%s).is.no
83a0 74 20 65 78 65 63 75 74 61 62 6c 65 22 20 6c 65 64 67 65 72 2d 62 69 6e 61 72 79 2d 70 61 74 68 t.executable".ledger-binary-path
83c0 29 29 0a 20 20 28 6c 65 74 20 28 28 62 75 66 20 28 6f 72 20 69 6e 70 75 74 2d 62 75 66 66 65 72 ))...(let.((buf.(or.input-buffer
83e0 20 28 66 69 6e 64 2d 66 69 6c 65 2d 6e 6f 73 65 6c 65 63 74 20 28 6c 65 64 67 65 72 2d 6d 61 73 .(find-file-noselect.(ledger-mas
8400 74 65 72 2d 66 69 6c 65 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 6f 75 74 62 75 66 20 28 6f 72 ter-file)))).........(outbuf.(or
8420 20 6f 75 74 70 75 74 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .output-buffer..................
8440 20 20 20 28 67 65 6e 65 72 61 74 65 2d 6e 65 77 2d 62 75 66 66 65 72 20 22 20 2a 6c 65 64 67 65 ...(generate-new-buffer.".*ledge
8460 72 2d 74 6d 70 2a 22 29 29 29 0a 20 20 20 20 20 20 20 20 28 65 72 72 66 69 6c 65 20 28 6d 61 6b r-tmp*"))).........(errfile.(mak
8480 65 2d 74 65 6d 70 2d 66 69 6c 65 20 22 6c 65 64 67 65 72 2d 65 72 72 6f 72 73 22 29 29 29 0a 20 e-temp-file."ledger-errors")))..
84a0 20 20 20 28 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63 74 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 ...(unwind-protect.........(with
84c0 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 62 75 66 0a 20 20 20 20 20 20 20 20 20 20 28 6c -current-buffer.buf...........(l
84e0 65 74 20 28 28 65 78 69 74 2d 63 6f 64 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 et.((exit-code..................
8500 28 6c 65 74 20 28 28 63 6f 64 69 6e 67 2d 73 79 73 74 65 6d 2d 66 6f 72 2d 77 72 69 74 65 20 27 (let.((coding-system-for-write.'
8520 75 74 66 2d 38 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 utf-8)........................(c
8540 6f 64 69 6e 67 2d 73 79 73 74 65 6d 2d 66 6f 72 2d 72 65 61 64 20 27 75 74 66 2d 38 29 29 0a 20 oding-system-for-read.'utf-8))..
8560 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 70 70 6c 79 20 23 27 63 61 6c 6c 2d ..................(apply.#'call-
8580 70 72 6f 63 65 73 73 2d 72 65 67 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 process-region..................
85a0 20 20 20 20 20 20 20 20 20 28 61 70 70 65 6e 64 20 28 6c 69 73 74 20 28 70 6f 69 6e 74 2d 6d 69 .........(append.(list.(point-mi
85c0 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n).(point-max)..................
85e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 64 67 65 72 2d 62 69 .......................ledger-bi
8600 6e 61 72 79 2d 70 61 74 68 20 6e 69 6c 20 28 6c 69 73 74 20 6f 75 74 62 75 66 20 65 72 72 66 69 nary-path.nil.(list.outbuf.errfi
8620 6c 65 29 20 6e 69 6c 20 22 2d 66 22 20 22 2d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 le).nil."-f"."-")...............
8640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 73 74 20 22 2d 2d 64 61 74 ....................(list."--dat
8660 65 2d 66 6f 72 6d 61 74 22 20 6c 65 64 67 65 72 2d 64 65 66 61 75 6c 74 2d 64 61 74 65 2d 66 6f e-format".ledger-default-date-fo
8680 72 6d 61 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rmat)...........................
86a0 20 20 20 20 20 20 20 20 61 72 67 73 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 ........args))))).............(i
86c0 66 20 28 6c 65 64 67 65 72 2d 65 78 65 63 2d 73 75 63 63 65 73 73 2d 70 20 65 78 69 74 2d 63 6f f.(ledger-exec-success-p.exit-co
86e0 64 65 20 6f 75 74 62 75 66 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6f 75 74 62 75 de.outbuf).................outbu
8700 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 69 73 70 6c 61 79 2d 62 75 66 66 65 72 20 f...............(display-buffer.
8720 28 6c 65 64 67 65 72 2d 65 78 65 63 2d 68 61 6e 64 6c 65 2d 65 72 72 6f 72 20 65 72 72 66 69 6c (ledger-exec-handle-error.errfil
8740 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 4c 65 64 67 65 72 e))...............(error."Ledger
8760 20 65 78 65 63 75 74 69 6f 6e 20 66 61 69 6c 65 64 22 29 29 29 29 0a 20 20 20 20 20 20 28 64 65 .execution.failed")))).......(de
8780 6c 65 74 65 2d 66 69 6c 65 20 65 72 72 66 69 6c 65 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 lete-file.errfile))))..(defun.le
87a0 64 67 65 72 2d 76 65 72 73 69 6f 6e 2d 67 72 65 61 74 65 72 2d 70 20 28 6e 65 65 64 65 64 29 0a dger-version-greater-p.(needed).
87c0 20 20 22 56 65 72 69 66 79 20 74 68 65 20 6c 65 64 67 65 72 20 62 69 6e 61 72 79 20 76 65 72 73 .."Verify.the.ledger.binary.vers
87e0 69 6f 6e 20 69 73 20 61 74 20 6c 65 61 73 74 20 4e 45 45 44 45 44 2e 22 0a 20 20 28 6c 65 74 20 ion.is.at.least.NEEDED."...(let.
8800 28 28 76 65 72 73 69 6f 6e 2d 73 74 72 69 6e 67 73 20 27 28 29 29 29 0a 20 20 20 20 28 77 69 74 ((version-strings.'())).....(wit
8820 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 6c 65 64 67 65 h-temp-buffer.......(when.(ledge
8840 72 2d 65 78 65 63 2d 6c 65 64 67 65 72 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 28 r-exec-ledger.(current-buffer).(
8860 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 20 22 2d 2d 76 65 72 73 69 6f 6e 22 29 0a 20 20 20 current-buffer)."--version")....
8880 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 .....(goto-char.(point-min))....
88a0 20 20 20 20 20 28 64 65 6c 65 74 65 2d 68 6f 72 69 7a 6f 6e 74 61 6c 2d 73 70 61 63 65 29 0a 20 .....(delete-horizontal-space)..
88c0 20 20 20 20 20 20 20 28 73 65 74 71 20 76 65 72 73 69 6f 6e 2d 73 74 72 69 6e 67 73 20 28 73 70 .......(setq.version-strings.(sp
88e0 6c 69 74 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 lit-string......................
8900 20 20 20 20 20 20 20 20 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 ..........(buffer-substring-no-p
8920 72 6f 70 65 72 74 69 65 73 20 28 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 roperties.(point)...............
8940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
8960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 0a .................(point-max)))).
8980 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 28 ........(if.(and.(string-match.(
89a0 72 65 67 65 78 70 2d 71 75 6f 74 65 20 22 4c 65 64 67 65 72 22 29 20 28 63 61 72 20 76 65 72 73 regexp-quote."Ledger").(car.vers
89c0 69 6f 6e 2d 73 74 72 69 6e 67 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ion-strings))..................(
89e0 6f 72 20 28 73 74 72 69 6e 67 3d 20 6e 65 65 64 65 64 20 28 63 61 64 72 20 76 65 72 73 69 6f 6e or.(string=.needed.(cadr.version
8a00 2d 73 74 72 69 6e 67 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -strings))......................
8a20 28 73 74 72 69 6e 67 3c 20 6e 65 65 64 65 64 20 28 63 61 64 72 20 76 65 72 73 69 6f 6e 2d 73 74 (string<.needed.(cadr.version-st
8a40 72 69 6e 67 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 74 20 3b 3b 20 73 75 63 63 65 rings)))).............t.;;.succe
8a60 73 73 0a 20 20 20 20 20 20 20 20 20 20 6e 69 6c 29 29 29 29 29 20 3b 3b 66 61 69 6c 75 72 65 0a ss...........nil))))).;;failure.
8a80 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 63 68 65 63 6b 2d 76 65 72 73 69 6f 6e 20 28 29 0a .(defun.ledger-check-version.().
8aa0 20 20 22 56 65 72 69 66 79 20 74 68 61 74 20 6c 65 64 67 65 72 20 77 6f 72 6b 73 20 61 6e 64 20 .."Verify.that.ledger.works.and.
8ac0 69 73 20 6d 6f 64 65 72 6e 20 65 6e 6f 75 67 68 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 is.modern.enough."...(interactiv
8ae0 65 29 0a 20 20 28 69 66 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 73 68 6f 75 6c 64 2d 63 68 65 63 e)...(if.ledger-mode-should-chec
8b00 6b 2d 76 65 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 69 66 20 28 73 65 74 71 20 6c 65 64 67 65 72 k-version.......(if.(setq.ledger
8b20 2d 77 6f 72 6b 73 20 28 6c 65 64 67 65 72 2d 76 65 72 73 69 6f 6e 2d 67 72 65 61 74 65 72 2d 70 -works.(ledger-version-greater-p
8b40 20 6c 65 64 67 65 72 2d 76 65 72 73 69 6f 6e 2d 6e 65 65 64 65 64 29 29 0a 20 20 20 20 20 20 20 .ledger-version-needed))........
8b60 20 20 20 28 6d 65 73 73 61 67 65 20 22 47 6f 6f 64 20 4c 65 64 67 65 72 20 56 65 72 73 69 6f 6e ...(message."Good.Ledger.Version
8b80 22 29 0a 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 42 61 64 20 4c 65 64 67 65 72 20 ").........(message."Bad.Ledger.
8ba0 56 65 72 73 69 6f 6e 22 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 6c 65 64 67 65 72 2d 65 Version"))))..(provide.'ledger-e
8bc0 78 65 63 29 0a 0a 3b 3b 3b 20 6c 65 64 67 65 72 2d 65 78 65 63 2e 65 6c 20 65 6e 64 73 20 68 65 xec)..;;;.ledger-exec.el.ends.he
8be0 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 re..............................
8c00 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 32 33 2e 34 34 35 2f 6c 65 64 67 65 72 2d ledger-mode-20240423.445/ledger-
8c20 70 6f 73 74 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 post.el.........................
8c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8c60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
8c80 30 30 31 37 32 36 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 36 37 30 00 20 30 00 00 00 0017261.00000000000.015670..0...
8ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
8d20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
8d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
8e00 3b 3b 3b 20 6c 65 64 67 65 72 2d 70 6f 73 74 2e 65 6c 20 2d 2d 2d 20 48 65 6c 70 65 72 20 63 6f ;;;.ledger-post.el.---.Helper.co
8e20 64 65 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 74 68 65 20 22 6c 65 64 67 65 72 22 20 63 6f 6d de.for.use.with.the."ledger".com
8e40 6d 61 6e 64 2d 6c 69 6e 65 20 74 6f 6f 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 mand-line.tool..-*-.lexical-bind
8e60 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 ing:.t;.-*-..;;.Copyright.(C).20
8e80 30 33 2d 32 30 31 36 20 4a 6f 68 6e 20 57 69 65 67 6c 65 79 20 28 6a 6f 68 6e 77 20 41 54 20 67 03-2016.John.Wiegley.(johnw.AT.g
8ea0 6e 75 20 44 4f 54 20 6f 72 67 29 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 6e 6f 74 nu.DOT.org)..;;.This.file.is.not
8ec0 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 54 68 69 73 20 69 73 20 .part.of.GNU.Emacs...;;.This.is.
8ee0 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 free.software;.you.can.redistrib
8f00 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 20 75 6e 64 65 72 0a 3b 3b ute.it.and/or.modify.it.under.;;
8f20 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 .the.terms.of.the.GNU.General.Pu
8f40 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 blic.License.as.published.by.the
8f60 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 .Free.;;.Software.Foundation;.ei
8f80 74 68 65 72 20 76 65 72 73 69 6f 6e 20 32 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 ther.version.2,.or.(at.your.opti
8fa0 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 0a 3b 3b 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 on).any.later.;;.version..;;.;;.
8fc0 54 68 69 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 This.is.distributed.in.the.hope.
8fe0 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 that.it.will.be.useful,.but.WITH
9000 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 OUT.;;.ANY.WARRANTY;.without.eve
9020 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 n.the.implied.warranty.of.MERCHA
9040 4e 54 41 42 49 4c 49 54 59 20 6f 72 0a 3b 3b 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 NTABILITY.or.;;.FITNESS.FOR.A.PA
9060 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 RTICULAR.PURPOSE...See.the.GNU.G
9080 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 66 6f 72 20 6d 6f 72 eneral.Public.License.;;.for.mor
90a0 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 e.details..;;.;;.You.should.have
90c0 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 .received.a.copy.of.the.GNU.Gene
90e0 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 ral.Public.License.;;.along.with
9100 20 47 4e 55 20 45 6d 61 63 73 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 .GNU.Emacs;.see.the.file.COPYING
9120 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 20 ...If.not,.write.to.the.;;.Free.
9140 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 Software.Foundation,.Inc.,.51.Fr
9160 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 anklin.Street,.Fifth.Floor,.Bost
9180 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 20 55 53 41 2e 0a 0a 0a 3b 3b 3b 20 on,.;;.MA.02110-1301.USA....;;;.
91a0 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 20 55 74 69 6c 69 74 79 20 66 75 6e 63 74 69 6f 6e 73 Commentary:.;;.Utility.functions
91c0 20 66 6f 72 20 64 65 61 6c 69 6e 67 20 77 69 74 68 20 70 6f 73 74 69 6e 67 73 2e 0a 0a 28 72 65 .for.dealing.with.postings...(re
91e0 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 72 65 67 65 78 29 0a 28 72 65 71 75 69 72 65 20 27 6c quire.'ledger-regex).(require.'l
9200 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 29 0a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 edger-navigate)..(declare-functi
9220 6f 6e 20 63 61 6c 63 2d 72 65 6e 75 6d 62 65 72 2d 73 74 61 63 6b 20 22 63 61 6c 63 22 20 28 29 on.calc-renumber-stack."calc".()
9240 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6c 65 64 67 65 72 2d 73 74 72 69 6e ).(declare-function.ledger-strin
9260 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 22 6c 65 64 67 65 72 2d 63 6f 6d 6d 6f 64 69 74 69 65 73 22 g-to-number."ledger-commodities"
9280 20 28 73 74 72 20 26 6f 70 74 69 6f 6e 61 6c 20 64 65 63 69 6d 61 6c 2d 63 6f 6d 6d 61 29 29 0a .(str.&optional.decimal-comma)).
92a0 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 64 65 66 67 72 6f 75 70 20 6c 65 64 67 65 72 2d 70 6f 73 .;;;.Code:..(defgroup.ledger-pos
92c0 74 20 6e 69 6c 0a 20 20 22 4f 70 74 69 6f 6e 73 20 66 6f 72 20 63 6f 6e 74 72 6f 6c 6c 69 6e 67 t.nil..."Options.for.controlling
92e0 20 68 6f 77 20 4c 65 64 67 65 72 2d 6d 6f 64 65 20 64 65 61 6c 73 20 77 69 74 68 20 70 6f 73 74 .how.Ledger-mode.deals.with.post
9300 69 6e 67 73 20 61 6e 64 20 63 6f 6d 70 6c 65 74 69 6f 6e 22 0a 20 20 3a 67 72 6f 75 70 20 27 6c ings.and.completion"...:group.'l
9320 65 64 67 65 72 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 edger)..(defcustom.ledger-post-a
9340 63 63 6f 75 6e 74 2d 61 6c 69 67 6e 6d 65 6e 74 2d 63 6f 6c 75 6d 6e 20 34 0a 20 20 22 54 68 65 ccount-alignment-column.4..."The
9360 20 63 6f 6c 75 6d 6e 20 4c 65 64 67 65 72 2d 6d 6f 64 65 20 61 74 74 65 6d 70 74 73 20 74 6f 20 .column.Ledger-mode.attempts.to.
9380 61 6c 69 67 6e 20 61 63 63 6f 75 6e 74 73 20 74 6f 2e 22 0a 20 20 3a 74 79 70 65 20 27 69 6e 74 align.accounts.to."...:type.'int
93a0 65 67 65 72 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 70 6f 73 74 0a 20 20 3a 73 61 eger...:group.'ledger-post...:sa
93c0 66 65 20 27 69 6e 74 65 67 65 72 70 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 fe.'integerp)..(defcustom.ledger
93e0 2d 70 6f 73 74 2d 61 6d 6f 75 6e 74 2d 61 6c 69 67 6e 6d 65 6e 74 2d 63 6f 6c 75 6d 6e 20 35 32 -post-amount-alignment-column.52
9400 0a 20 20 22 54 68 65 20 63 6f 6c 75 6d 6e 20 4c 65 64 67 65 72 2d 6d 6f 64 65 20 61 74 74 65 6d ..."The.column.Ledger-mode.attem
9420 70 74 73 20 74 6f 20 61 6c 69 67 6e 20 61 6d 6f 75 6e 74 73 20 74 6f 2e 22 0a 20 20 3a 74 79 70 pts.to.align.amounts.to."...:typ
9440 65 20 27 69 6e 74 65 67 65 72 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 70 6f 73 74 e.'integer...:group.'ledger-post
9460 0a 20 20 3a 73 61 66 65 20 27 69 6e 74 65 67 65 72 70 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 ...:safe.'integerp)..(defcustom.
9480 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 6d 6f 75 6e 74 2d 61 6c 69 67 6e 6d 65 6e 74 2d 61 74 20 ledger-post-amount-alignment-at.
94a0 3a 65 6e 64 0a 20 20 22 50 6f 73 69 74 69 6f 6e 20 61 74 20 77 68 69 63 68 20 74 68 65 20 61 6d :end..."Position.at.which.the.am
94c0 6f 75 6e 74 20 69 73 20 61 6c 69 67 6e 65 64 2e 0a 0a 43 61 6e 20 62 65 20 3a 65 6e 64 20 74 6f ount.is.aligned...Can.be.:end.to
94e0 20 61 6c 69 67 6e 20 6f 6e 20 74 68 65 20 6c 61 73 74 20 6e 75 6d 62 65 72 20 6f 66 20 74 68 65 .align.on.the.last.number.of.the
9500 20 61 6d 6f 75 6e 74 20 28 63 61 6e 20 62 65 0a 66 6f 6c 6c 6f 77 65 64 20 62 79 20 75 6e 61 6c .amount.(can.be.followed.by.unal
9520 69 67 6e 65 64 20 63 6f 6d 6d 6f 64 69 74 79 29 20 6f 72 20 3a 64 65 63 69 6d 61 6c 20 74 6f 20 igned.commodity).or.:decimal.to.
9540 61 6c 69 67 6e 20 61 74 20 74 68 65 0a 64 65 63 69 6d 61 6c 20 73 65 70 61 72 61 74 6f 72 2e 22 align.at.the.decimal.separator."
9560 0a 20 20 3a 74 79 70 65 20 27 28 72 61 64 69 6f 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 61 6c ...:type.'(radio.(const.:tag."al
9580 69 67 6e 20 61 74 20 74 68 65 20 65 6e 64 20 6f 66 20 61 6d 6f 75 6e 74 22 20 3a 65 6e 64 29 0a ign.at.the.end.of.amount".:end).
95a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 61 6c 69 ................(const.:tag."ali
95c0 67 6e 20 61 74 20 74 68 65 20 64 65 63 69 6d 61 6c 20 73 65 70 61 72 61 74 6f 72 22 20 3a 64 65 gn.at.the.decimal.separator".:de
95e0 63 69 6d 61 6c 29 29 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 70 6f 73 74 0a 20 20 cimal))...:group.'ledger-post...
9600 3a 73 61 66 65 20 28 6c 61 6d 62 64 61 20 28 78 29 20 28 6d 65 6d 71 20 78 20 27 28 3a 65 6e 64 :safe.(lambda.(x).(memq.x.'(:end
9620 20 3a 64 65 63 69 6d 61 6c 29 29 29 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 .:decimal))))..(defcustom.ledger
9640 2d 70 6f 73 74 2d 61 75 74 6f 2d 61 6c 69 67 6e 20 74 0a 20 20 22 57 68 65 6e 20 6e 6f 6e 2d 6e -post-auto-align.t..."When.non-n
9660 69 6c 2c 20 72 65 61 6c 69 67 6e 20 70 6f 73 74 20 61 6d 6f 75 6e 74 73 20 77 68 65 6e 20 69 6e il,.realign.post.amounts.when.in
9680 64 65 6e 74 69 6e 67 20 6f 72 20 63 6f 6d 70 6c 65 74 69 6e 67 2e 22 0a 20 20 3a 74 79 70 65 20 denting.or.completing."...:type.
96a0 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 70 6f 73 74 0a 20 'boolean...:group.'ledger-post..
96c0 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 6c 65 64 67 65 72 2d 6d 6f 64 65 20 .:package-version.'(ledger-mode.
96e0 2e 20 22 34 2e 30 2e 30 22 29 0a 20 20 3a 73 61 66 65 20 27 62 6f 6f 6c 65 61 6e 70 29 0a 0a 28 .."4.0.0")...:safe.'booleanp)..(
9700 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6e 65 78 74 2d 61 6d 6f 75 6e 74 20 28 26 6f 70 74 69 6f defun.ledger-next-amount.(&optio
9720 6e 61 6c 20 65 6e 64 29 0a 20 20 22 4d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 74 68 65 20 6e 65 nal.end)..."Move.point.to.the.ne
9740 78 74 20 61 6d 6f 75 6e 74 2c 20 61 73 20 6c 6f 6e 67 20 61 73 20 69 74 20 69 73 20 6e 6f 74 20 xt.amount,.as.long.as.it.is.not.
9760 70 61 73 74 20 45 4e 44 2e 0a 52 65 74 75 72 6e 20 74 68 65 20 77 69 64 74 68 20 6f 66 20 74 68 past.END..Return.the.width.of.th
9780 65 20 61 6d 6f 75 6e 74 20 66 69 65 6c 64 20 61 73 20 61 6e 20 69 6e 74 65 67 65 72 20 61 6e 64 e.amount.field.as.an.integer.and
97a0 20 6c 65 61 76 65 0a 70 6f 69 6e 74 20 61 74 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 .leave.point.at.beginning.of.the
97c0 20 63 6f 6d 6d 6f 64 69 74 79 2e 22 0a 20 20 3b 3b 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c .commodity."...;;(beginning-of-l
97e0 69 6e 65 29 0a 20 20 28 6c 65 74 20 28 28 63 61 73 65 2d 66 6f 6c 64 2d 73 65 61 72 63 68 20 6e ine)...(let.((case-fold-search.n
9800 69 6c 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 il)).....(when.(re-search-forwar
9820 64 20 6c 65 64 67 65 72 2d 61 6d 6f 75 6e 74 2d 72 65 67 65 78 20 65 6e 64 20 74 29 0a 20 20 20 d.ledger-amount-regex.end.t)....
9840 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 ...(goto-char.(match-beginning.0
9860 29 29 0a 20 20 20 20 20 20 28 73 6b 69 70 2d 73 79 6e 74 61 78 2d 66 6f 72 77 61 72 64 20 22 20 )).......(skip-syntax-forward.".
9880 22 29 0a 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 28 28 65 71 20 6c 65 64 67 65 ").......(cond........((eq.ledge
98a0 72 2d 70 6f 73 74 2d 61 6d 6f 75 6e 74 2d 61 6c 69 67 6e 6d 65 6e 74 2d 61 74 20 3a 65 6e 64 29 r-post-amount-alignment-at.:end)
98c0 0a 20 20 20 20 20 20 20 20 28 2d 20 28 6f 72 20 28 6d 61 74 63 68 2d 65 6e 64 20 34 29 20 28 6d .........(-.(or.(match-end.4).(m
98e0 61 74 63 68 2d 65 6e 64 20 33 29 29 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 28 28 atch-end.3)).(point)))........((
9900 65 71 20 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 6d 6f 75 6e 74 2d 61 6c 69 67 6e 6d 65 6e 74 2d eq.ledger-post-amount-alignment-
9920 61 74 20 3a 64 65 63 69 6d 61 6c 29 0a 20 20 20 20 20 20 20 20 28 2d 20 28 6d 61 74 63 68 2d 65 at.:decimal).........(-.(match-e
9940 6e 64 20 33 29 20 28 70 6f 69 6e 74 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 nd.3).(point)))))))..(defun.ledg
9960 65 72 2d 6e 65 78 74 2d 61 63 63 6f 75 6e 74 20 28 26 6f 70 74 69 6f 6e 61 6c 20 65 6e 64 29 0a er-next-account.(&optional.end).
9980 20 20 22 4d 6f 76 65 20 74 6f 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 .."Move.to.the.beginning.of.the.
99a0 70 6f 73 74 69 6e 67 2c 20 6f 72 20 73 74 61 74 75 73 20 6d 61 72 6b 65 72 2e 0a 52 65 74 75 72 posting,.or.status.marker..Retur
99c0 6e 20 74 68 65 20 63 6f 6c 75 6d 6e 20 6f 66 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 n.the.column.of.the.beginning.of
99e0 20 74 68 65 20 61 63 63 6f 75 6e 74 20 61 6e 64 20 6c 65 61 76 65 20 70 6f 69 6e 74 0a 61 74 20 .the.account.and.leave.point.at.
9a00 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 61 63 63 6f 75 6e 74 2e 0a 4c 6f 6f 6b 73 20 6f 6e 6c 79 beginning.of.account..Looks.only
9a20 20 61 73 20 66 61 72 20 61 73 20 45 4e 44 2c 20 69 66 20 73 75 70 70 6c 69 65 64 2c 20 6f 74 68 .as.far.as.END,.if.supplied,.oth
9a40 65 72 77 69 73 65 20 60 70 6f 69 6e 74 2d 6d 61 78 27 2e 22 0a 20 20 28 6c 65 74 20 28 28 65 6e erwise.`point-max'."...(let.((en
9a60 64 20 28 6f 72 20 65 6e 64 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 0a 20 20 20 20 28 69 66 d.(or.end.(point-max)))).....(if
9a80 20 28 3e 20 65 6e 64 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 .(>.end.(point)).........(when.(
9aa0 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 re-search-forward.ledger-account
9ac0 2d 61 6e 79 2d 73 74 61 74 75 73 2d 72 65 67 65 78 20 28 31 2b 20 65 6e 64 29 20 74 29 0a 20 20 -any-status-regex.(1+.end).t)...
9ae0 20 20 20 20 20 20 20 20 3b 3b 20 74 68 65 20 31 2b 20 69 73 20 74 6f 20 6d 61 6b 65 20 73 75 72 ........;;.the.1+.is.to.make.sur
9b00 65 20 77 65 20 63 61 6e 20 63 61 74 63 68 20 74 68 65 20 6e 65 77 6c 69 6e 65 0a 20 20 20 20 20 e.we.can.catch.the.newline......
9b20 20 20 20 20 20 28 69 66 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 31 29 0a 20 20 20 .....(if.(match-beginning.1)....
9b40 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 2d 62 65 67 ...........(goto-char.(match-beg
9b60 69 6e 6e 69 6e 67 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 inning.1)).............(goto-cha
9b80 72 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 32 29 29 29 0a 20 20 20 20 20 20 20 20 r.(match-beginning.2))).........
9ba0 20 20 28 63 75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c ..(current-column)))))..(defun.l
9bc0 65 64 67 65 72 2d 70 6f 73 74 2d 61 6c 69 67 6e 2d 78 61 63 74 20 28 70 6f 73 29 0a 20 20 22 41 edger-post-align-xact.(pos)..."A
9be0 6c 69 67 6e 20 61 6c 6c 20 74 68 65 20 70 6f 73 74 69 6e 67 20 69 6e 20 74 68 65 20 78 61 63 74 lign.all.the.posting.in.the.xact
9c00 20 61 74 20 50 4f 53 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 64 22 29 0a 20 20 .at.POS."...(interactive."d")...
9c20 28 6c 65 74 20 28 28 62 6f 75 6e 64 73 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 66 (let.((bounds.(ledger-navigate-f
9c40 69 6e 64 2d 78 61 63 74 2d 65 78 74 65 6e 74 73 20 70 6f 73 29 29 29 0a 20 20 20 20 28 6c 65 64 ind-xact-extents.pos))).....(led
9c60 67 65 72 2d 70 6f 73 74 2d 61 6c 69 67 6e 2d 70 6f 73 74 69 6e 67 73 20 28 63 61 72 20 62 6f 75 ger-post-align-postings.(car.bou
9c80 6e 64 73 29 20 28 63 61 64 72 20 62 6f 75 6e 64 73 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 nds).(cadr.bounds))))..(defun.le
9ca0 64 67 65 72 2d 70 6f 73 74 2d 61 6c 69 67 6e 2d 70 6f 73 74 69 6e 67 73 20 28 62 65 67 20 65 6e dger-post-align-postings.(beg.en
9cc0 64 29 0a 20 20 22 41 6c 69 67 6e 20 61 6c 6c 20 61 63 63 6f 75 6e 74 73 20 61 6e 64 20 61 6d 6f d)..."Align.all.accounts.and.amo
9ce0 75 6e 74 73 20 62 65 74 77 65 65 6e 20 42 45 47 20 61 6e 64 20 45 4e 44 2e 0a 54 68 65 20 63 75 unts.between.BEG.and.END..The.cu
9d00 72 72 65 6e 74 20 72 65 67 69 6f 6e 20 69 73 20 75 73 65 64 2c 20 6f 72 2c 20 69 66 20 6e 6f 20 rrent.region.is.used,.or,.if.no.
9d20 72 65 67 69 6f 6e 2c 20 74 68 65 20 63 75 72 72 65 6e 74 20 6c 69 6e 65 2e 22 0a 20 20 28 69 6e region,.the.current.line."...(in
9d40 74 65 72 61 63 74 69 76 65 20 22 72 22 29 0a 20 20 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 74 teractive."r")...(save-match-dat
9d60 61 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 6c 65 74 a.....(save-excursion.......(let
9d80 20 28 28 69 6e 68 69 62 69 74 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 2d 68 6f 6f 6b 73 20 74 29 .((inhibit-modification-hooks.t)
9da0 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 45 78 74 65 6e 64 20 72 65 67 69 6f 6e 20 74 6f .............;;.Extend.region.to
9dc0 20 77 68 6f 6c 65 20 6c 69 6e 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 62 65 67 20 28 73 .whole.lines.............(beg.(s
9de0 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 20 28 67 6f 74 6f 2d 63 68 61 72 20 62 65 67 29 20 28 6c ave-excursion.(goto-char.beg).(l
9e00 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 29 29 0a 20 20 20 20 20 20 ine-beginning-position))).......
9e20 20 20 20 20 20 20 28 65 6e 64 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 20 28 67 6f 74 6f ......(end.(save-excursion.(goto
9e40 2d 63 68 61 72 20 65 6e 64 29 20 28 6d 6f 76 65 2d 65 6e 64 2d 6f 66 2d 6c 69 6e 65 20 31 29 20 -char.end).(move-end-of-line.1).
9e60 28 70 6f 69 6e 74 2d 6d 61 72 6b 65 72 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 75 6e 74 61 62 (point-marker)))).........(untab
9e80 69 66 79 20 62 65 67 20 65 6e 64 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 ify.beg.end).........(goto-char.
9ea0 62 65 67 29 0a 20 20 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 3c 20 28 70 6f 69 6e 74 29 20 65 beg).........(while.(<.(point).e
9ec0 6e 64 29 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 2d nd)...........(when.(looking-at-
9ee0 70 20 22 20 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 66 69 78 20 73 70 61 63 65 73 p.".").............;;.fix.spaces
9f00 20 61 74 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 6c 69 6e 65 3a 0a 20 20 20 20 20 20 20 20 20 .at.beginning.of.line:..........
9f20 20 20 20 28 6a 75 73 74 2d 6f 6e 65 2d 73 70 61 63 65 20 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 ...(just-one-space.ledger-post-a
9f40 63 63 6f 75 6e 74 2d 61 6c 69 67 6e 6d 65 6e 74 2d 63 6f 6c 75 6d 6e 29 0a 20 20 20 20 20 20 20 ccount-alignment-column)........
9f60 20 20 20 20 20 3b 3b 20 66 69 78 20 73 70 61 63 65 73 20 62 65 66 6f 72 65 20 61 6d 6f 75 6e 74 .....;;.fix.spaces.before.amount
9f80 20 69 66 20 61 6e 79 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 72 65 2d 73 .if.any:.............(when.(re-s
9fa0 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5c 74 5c 5c 7c 20 20 5c 5c 7c 20 5c 74 22 20 28 6c earch-forward."\t\\|..\\|.\t".(l
9fc0 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 ine-end-position).t)............
9fe0 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 ...(goto-char.(match-beginning.0
a000 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 61 63 63 74 2d 65 6e 64 ))...............(let.((acct-end
a020 2d 63 6f 6c 75 6d 6e 20 28 63 75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 29 0a 20 20 20 20 20 20 -column.(current-column)).......
a040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6d 74 2d 77 69 64 74 68 20 28 6c 65 64 67 65 72 ..............(amt-width.(ledger
a060 2d 6e 65 78 74 2d 61 6d 6f 75 6e 74 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 -next-amount.(line-end-position)
a080 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 61 6d 74 2d 61 64 6a 75 73 )).....................amt-adjus
a0a0 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 61 6d 74 2d 77 69 64 t).................(when.amt-wid
a0c0 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 2f 3d 20 30 20 28 th...................(if.(/=.0.(
a0e0 73 65 74 71 20 61 6d 74 2d 61 64 6a 75 73 74 20 28 2d 20 28 69 66 20 28 3e 20 28 2d 20 6c 65 64 setq.amt-adjust.(-.(if.(>.(-.led
a100 67 65 72 2d 70 6f 73 74 2d 61 6d 6f 75 6e 74 2d 61 6c 69 67 6e 6d 65 6e 74 2d 63 6f 6c 75 6d 6e ger-post-amount-alignment-column
a120 20 61 6d 74 2d 77 69 64 74 68 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .amt-width).....................
a140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
a160 20 20 20 28 2b 20 32 20 61 63 63 74 2d 65 6e 64 2d 63 6f 6c 75 6d 6e 29 29 0a 20 20 20 20 20 20 ...(+.2.acct-end-column)).......
a180 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
a1a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 6d 6f 75 6e 74 ..............ledger-post-amount
a1c0 2d 61 6c 69 67 6e 6d 65 6e 74 2d 63 6f 6c 75 6d 6e 20 3b 3b 77 65 20 68 61 76 65 20 72 6f 6f 6d -alignment-column.;;we.have.room
a1e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
a200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 2b 20 61 63 63 74 2d 65 6e 64 2d 63 ...................(+.acct-end-c
a220 6f 6c 75 6d 6e 20 32 20 61 6d 74 2d 77 69 64 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 olumn.2.amt-width)).............
a240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
a260 20 20 20 20 61 6d 74 2d 77 69 64 74 68 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....amt-width...................
a280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 ..............................(c
a2a0 75 72 72 65 6e 74 2d 63 6f 6c 75 6d 6e 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 urrent-column))))...............
a2c0 20 20 20 20 20 20 20 20 28 69 66 20 28 3e 20 61 6d 74 2d 61 64 6a 75 73 74 20 30 29 0a 20 20 20 ........(if.(>.amt-adjust.0)....
a2e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 28 .......................(insert.(
a300 6d 61 6b 65 2d 73 74 72 69 6e 67 20 61 6d 74 2d 61 64 6a 75 73 74 20 3f 20 29 29 0a 20 20 20 20 make-string.amt-adjust.?.)).....
a320 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 63 68 61 72 ....................(delete-char
a340 20 61 6d 74 2d 61 64 6a 75 73 74 29 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f .amt-adjust)))))))...........(fo
a360 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 rward-line.1))))))..(defun.ledge
a380 72 2d 69 6e 64 65 6e 74 2d 6c 69 6e 65 20 28 29 0a 20 20 22 49 6e 64 65 6e 74 20 74 68 65 20 63 r-indent-line.()..."Indent.the.c
a3a0 75 72 72 65 6e 74 20 6c 69 6e 65 2e 22 0a 20 20 3b 3b 20 45 6e 73 75 72 65 20 69 6e 64 65 6e 74 urrent.line."...;;.Ensure.indent
a3c0 20 69 66 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 6c 69 6e 65 20 77 61 73 20 69 6e 64 65 6e 74 .if.the.previous.line.was.indent
a3e0 65 64 0a 20 20 28 6c 65 74 20 28 28 69 6e 64 65 6e 74 2d 6c 65 76 65 6c 20 28 73 61 76 65 2d 65 ed...(let.((indent-level.(save-e
a400 78 63 75 72 73 69 6f 6e 20 28 69 66 20 28 61 6e 64 20 28 7a 65 72 6f 70 20 28 66 6f 72 77 61 72 xcursion.(if.(and.(zerop.(forwar
a420 64 2d 6c 69 6e 65 20 2d 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 d-line.-1)).....................
a440 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 6d 71 ...........................(memq
a460 20 28 6c 65 64 67 65 72 2d 74 68 69 6e 67 2d 61 74 2d 70 6f 69 6e 74 29 20 27 28 74 72 61 6e 73 .(ledger-thing-at-point).'(trans
a480 61 63 74 69 6f 6e 20 70 6f 73 74 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 action.posting)))...............
a4a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 64 67 ............................ledg
a4c0 65 72 2d 70 6f 73 74 2d 61 63 63 6f 75 6e 74 2d 61 6c 69 67 6e 6d 65 6e 74 2d 63 6f 6c 75 6d 6e er-post-account-alignment-column
a4e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
a500 20 20 20 20 20 20 20 20 20 30 29 29 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 28 3d 20 28 63 .........0)))).....(unless.(=.(c
a520 75 72 72 65 6e 74 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 29 20 69 6e 64 65 6e 74 2d 6c 65 76 65 6c urrent-indentation).indent-level
a540 29 0a 20 20 20 20 20 20 28 62 61 63 6b 2d 74 6f 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 29 0a 20 20 ).......(back-to-indentation)...
a560 20 20 20 20 28 64 65 6c 65 74 65 2d 68 6f 72 69 7a 6f 6e 74 61 6c 2d 73 70 61 63 65 20 74 29 0a ....(delete-horizontal-space.t).
a580 20 20 20 20 20 20 28 69 6e 64 65 6e 74 2d 74 6f 20 69 6e 64 65 6e 74 2d 6c 65 76 65 6c 29 29 29 ......(indent-to.indent-level)))
a5a0 0a 20 20 28 77 68 65 6e 20 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 75 74 6f 2d 61 6c 69 67 6e 0a ...(when.ledger-post-auto-align.
a5c0 20 20 20 20 28 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 6c 69 67 6e 2d 70 6f 73 74 69 6e 67 73 20 ....(ledger-post-align-postings.
a5e0 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 20 28 6c 69 6e 65 2d (line-beginning-position).(line-
a600 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d end-position))))..(defun.ledger-
a620 70 6f 73 74 2d 61 6c 69 67 6e 2d 64 77 69 6d 20 28 29 0a 20 20 22 41 6c 69 67 6e 20 61 6c 6c 20 post-align-dwim.()..."Align.all.
a640 74 68 65 20 70 6f 73 74 69 6e 67 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 78 61 63 74 20 the.posting.of.the.current.xact.
a660 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 72 65 67 69 6f 6e 2e 0a 0a 49 66 20 74 68 65 20 70 or.the.current.region...If.the.p
a680 6f 69 6e 74 20 69 73 20 69 6e 20 61 20 63 6f 6d 6d 65 6e 74 2c 20 66 69 6c 6c 20 74 68 65 20 63 oint.is.in.a.comment,.fill.the.c
a6a0 6f 6d 6d 65 6e 74 20 70 61 72 61 67 72 61 70 68 20 61 73 0a 72 65 67 75 6c 61 72 20 74 65 78 74 omment.paragraph.as.regular.text
a6c0 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 63 6f 6e 64 0a 20 20 20 28 28 ."...(interactive)...(cond....((
a6e0 6e 74 68 20 34 20 28 73 79 6e 74 61 78 2d 70 70 73 73 29 29 0a 20 20 20 20 28 63 61 6c 6c 2d 69 nth.4.(syntax-ppss)).....(call-i
a700 6e 74 65 72 61 63 74 69 76 65 6c 79 20 27 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 6c 69 67 6e 2d nteractively.'ledger-post-align-
a720 70 6f 73 74 69 6e 67 73 29 0a 20 20 20 20 28 66 69 6c 6c 2d 70 61 72 61 67 72 61 70 68 29 29 0a postings).....(fill-paragraph)).
a740 20 20 20 28 28 75 73 65 2d 72 65 67 69 6f 6e 2d 70 29 20 28 63 61 6c 6c 2d 69 6e 74 65 72 61 63 ...((use-region-p).(call-interac
a760 74 69 76 65 6c 79 20 27 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 6c 69 67 6e 2d 70 6f 73 74 69 6e tively.'ledger-post-align-postin
a780 67 73 29 29 0a 20 20 20 28 74 20 28 63 61 6c 6c 2d 69 6e 74 65 72 61 63 74 69 76 65 6c 79 20 27 gs))....(t.(call-interactively.'
a7a0 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 6c 69 67 6e 2d 78 61 63 74 29 29 29 29 0a 0a 28 64 65 66 ledger-post-align-xact))))..(def
a7c0 75 6e 20 6c 65 64 67 65 72 2d 70 6f 73 74 2d 65 64 69 74 2d 61 6d 6f 75 6e 74 20 28 29 0a 20 20 un.ledger-post-edit-amount.()...
a7e0 22 43 61 6c 6c 20 60 63 61 6c 63 27 20 61 6e 64 20 70 75 73 68 20 74 68 65 20 61 6d 6f 75 6e 74 "Call.`calc'.and.push.the.amount
a800 20 69 6e 20 74 68 65 20 70 6f 73 74 69 6e 67 20 74 6f 20 74 68 65 20 74 6f 70 20 6f 66 20 73 74 .in.the.posting.to.the.top.of.st
a820 61 63 6b 2c 20 69 66 20 61 6e 79 2e 0a 0a 49 6e 20 74 68 65 20 63 61 6c 63 20 62 75 66 66 65 72 ack,.if.any...In.the.calc.buffer
a840 2c 20 70 72 65 73 73 20 79 20 74 6f 20 75 73 65 20 74 68 65 20 74 6f 70 20 76 61 6c 75 65 20 69 ,.press.y.to.use.the.top.value.i
a860 6e 20 74 68 65 20 73 74 61 63 6b 20 61 73 0a 74 68 65 20 61 6d 6f 75 6e 74 20 61 6e 64 20 72 65 n.the.stack.as.the.amount.and.re
a880 74 75 72 6e 20 74 6f 20 6c 65 64 67 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 turn.to.ledger."...(interactive)
a8a0 0a 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 28 77 68 65 6e 20 28 ...(beginning-of-line)...(when.(
a8c0 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 6c 65 64 67 65 72 2d 70 6f 73 74 2d 6c 69 re-search-forward.ledger-post-li
a8e0 6e 65 2d 72 65 67 65 78 70 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 20 74 29 ne-regexp.(line-end-position).t)
a900 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 2d 65 6e 64 20 6c 65 64 67 65 .....(goto-char.(match-end.ledge
a920 72 2d 72 65 67 65 78 2d 70 6f 73 74 2d 6c 69 6e 65 2d 67 72 6f 75 70 2d 61 63 63 6f 75 6e 74 29 r-regex-post-line-group-account)
a940 29 20 3b 3b 20 67 6f 20 74 6f 20 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 61 63 63 6f 75 6e ).;;.go.to.the.end.of.the.accoun
a960 74 0a 20 20 20 20 3b 3b 20 64 65 74 65 72 6d 69 6e 65 20 69 66 20 74 68 65 72 65 20 69 73 20 61 t.....;;.determine.if.there.is.a
a980 6e 20 61 6d 6f 75 6e 74 20 74 6f 20 65 64 69 74 0a 20 20 20 20 28 69 66 20 28 72 65 2d 73 65 61 n.amount.to.edit.....(if.(re-sea
a9a0 72 63 68 2d 66 6f 72 77 61 72 64 20 6c 65 64 67 65 72 2d 61 6d 6f 75 6e 74 2d 72 65 67 65 78 70 rch-forward.ledger-amount-regexp
a9c0 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 20 74 29 0a 20 20 20 20 20 20 20 20 .(line-end-position).t).........
a9e0 28 6c 65 74 20 28 28 76 61 6c 2d 73 74 72 69 6e 67 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 (let.((val-string.(match-string.
aa00 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 0)))...........(goto-char.(match
aa20 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 -beginning.0))...........(delete
aa40 2d 72 65 67 69 6f 6e 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 20 28 6d 61 74 -region.(match-beginning.0).(mat
aa60 63 68 2d 65 6e 64 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 2d 6d 61 72 6b 20 ch-end.0))...........(push-mark.
aa80 28 70 6f 69 6e 74 29 20 27 6e 6f 6d 73 67 29 0a 20 20 20 20 20 20 20 20 20 20 28 63 61 6c 63 29 (point).'nomsg)...........(calc)
aaa0 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 65 64 69 74 20 74 68 65 20 61 6d 6f 75 6e 74 2c 20 66 ...........;;.edit.the.amount,.f
aac0 69 72 73 74 20 72 65 6d 6f 76 69 6e 67 20 74 68 6f 75 73 61 6e 64 73 20 73 65 70 61 72 61 74 6f irst.removing.thousands.separato
aae0 72 73 20 61 6e 64 20 63 6f 6e 76 65 72 74 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 64 rs.and.converting...........;;.d
ab00 65 63 69 6d 61 6c 20 63 6f 6d 6d 61 73 20 74 6f 20 63 61 6c 63 27 73 20 69 6e 70 75 74 20 66 6f ecimal.commas.to.calc's.input.fo
ab20 72 6d 61 74 0a 20 20 20 20 20 20 20 20 20 20 28 63 61 6c 63 2d 65 76 61 6c 20 28 6e 75 6d 62 65 rmat...........(calc-eval.(numbe
ab40 72 2d 74 6f 2d 73 74 72 69 6e 67 20 28 6c 65 64 67 65 72 2d 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 r-to-string.(ledger-string-to-nu
ab60 6d 62 65 72 20 76 61 6c 2d 73 74 72 69 6e 67 29 29 20 27 70 75 73 68 29 0a 20 20 20 20 20 20 20 mber.val-string)).'push)........
ab80 20 20 20 28 63 61 6c 63 2d 72 65 6e 75 6d 62 65 72 2d 73 74 61 63 6b 29 29 0a 20 20 20 20 20 20 ...(calc-renumber-stack)).......
aba0 3b 3b 20 6d 61 6b 65 20 73 75 72 65 20 74 68 65 72 65 20 61 72 65 20 74 77 6f 20 73 70 61 63 65 ;;.make.sure.there.are.two.space
abc0 73 20 61 66 74 65 72 20 74 68 65 20 61 63 63 6f 75 6e 74 20 6e 61 6d 65 20 61 6e 64 20 67 6f 20 s.after.the.account.name.and.go.
abe0 74 6f 20 63 61 6c 63 0a 20 20 20 20 20 20 28 69 66 20 28 73 65 61 72 63 68 2d 62 61 63 6b 77 61 to.calc.......(if.(search-backwa
ac00 72 64 20 22 20 20 22 20 28 2d 20 28 70 6f 69 6e 74 29 20 33 29 20 74 29 0a 20 20 20 20 20 20 20 rd."..".(-.(point).3).t)........
ac20 20 20 20 28 65 6e 64 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 ...(end-of-line).........(insert
ac40 20 22 20 20 22 29 29 0a 20 20 20 20 20 20 28 70 75 73 68 2d 6d 61 72 6b 20 28 70 6f 69 6e 74 29 ."..")).......(push-mark.(point)
ac60 20 27 6e 6f 6d 73 67 29 0a 20 20 20 20 20 20 28 63 61 6c 63 29 29 29 29 0a 0a 28 70 72 6f 76 69 .'nomsg).......(calc))))..(provi
ac80 64 65 20 27 6c 65 64 67 65 72 2d 70 6f 73 74 29 0a 0a 0a 0a 3b 3b 3b 20 6c 65 64 67 65 72 2d 70 de.'ledger-post)....;;;.ledger-p
aca0 6f 73 74 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ost.el.ends.here................
acc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ace0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ad00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ad20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ad40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ad60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ad80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ada0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
adc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ade0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ae00 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 32 33 2e 34 34 35 2f 6c 65 64 67 65 72 2d ledger-mode-20240423.445/ledger-
ae20 66 6c 79 6d 61 6b 65 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 flymake.el......................
ae40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ae60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
ae80 30 30 31 35 32 30 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 33 32 34 00 20 30 00 00 00 0015202.00000000000.016324..0...
aea0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aec0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
aee0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
af00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
af20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
af40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
af60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
af80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
afa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
afc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
afe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
b000 3b 3b 3b 20 6c 65 64 67 65 72 2d 66 6c 79 6d 61 6b 65 2e 65 6c 20 2d 2d 2d 20 41 20 6c 65 64 67 ;;;.ledger-flymake.el.---.A.ledg
b020 65 72 20 46 6c 79 6d 61 6b 65 20 62 61 63 6b 65 6e 64 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d er.Flymake.backend..-*-.lexical-
b040 62 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 binding:.t;.-*-..;;.Copyright.(C
b060 29 20 32 30 31 38 20 4a 2e 20 41 6c 65 78 61 6e 64 65 72 20 42 72 61 6e 68 61 6d 20 28 61 6c 65 ).2018.J..Alexander.Branham.(ale
b080 78 20 44 4f 54 20 62 72 61 6e 68 61 6d 20 41 54 20 67 6d 61 69 6c 20 44 4f 54 20 63 6f 6d 29 0a x.DOT.branham.AT.gmail.DOT.com).
b0a0 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 6e 6f 74 20 70 61 72 74 20 6f 66 20 47 4e 55 .;;.This.file.is.not.part.of.GNU
b0c0 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 54 68 69 73 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 .Emacs...;;.This.is.free.softwar
b0e0 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f e;.you.can.redistribute.it.and/o
b100 72 20 6d 6f 64 69 66 79 20 69 74 20 75 6e 64 65 72 0a 3b 3b 20 74 68 65 20 74 65 72 6d 73 20 6f r.modify.it.under.;;.the.terms.o
b120 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 f.the.GNU.General.Public.License
b140 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 20 46 72 65 65 0a 3b 3b 20 53 6f 66 .as.published.by.the.Free.;;.Sof
b160 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e tware.Foundation;.either.version
b180 20 33 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 .3,.or.(at.your.option).any.late
b1a0 72 0a 3b 3b 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 69 73 20 64 69 73 74 r.;;.version..;;.;;.This.is.dist
b1c0 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c ributed.in.the.hope.that.it.will
b1e0 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 .be.useful,.but.WITHOUT.;;.ANY.W
b200 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 ARRANTY;.without.even.the.implie
b220 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 d.warranty.of.MERCHANTABILITY.or
b240 0a 3b 3b 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 .;;.FITNESS.FOR.A.PARTICULAR.PUR
b260 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 POSE...See.the.GNU.General.Publi
b280 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b c.License.;;.for.more.details..;
b2a0 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 ;.;;.You.should.have.received.a.
b2c0 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c copy.of.the.GNU.General.Public.L
b2e0 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 20 47 4e 55 20 45 6d 61 63 73 3b 20 icense.;;.along.with.GNU.Emacs;.
b300 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 2e 20 20 49 66 20 6e 6f 74 2c 20 77 see.the.file.COPYING...If.not,.w
b320 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 rite.to.the.;;.Free.Software.Fou
b340 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 ndation,.Inc.,.51.Franklin.Stree
b360 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 t,.Fifth.Floor,.Boston,.;;.MA.02
b380 31 31 30 2d 31 33 30 31 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 110-1301.USA...;;;.Commentary:.;
b3a0 3b 20 46 6c 79 6d 61 6b 65 20 69 73 20 74 68 65 20 62 75 69 6c 74 2d 69 6e 20 45 6d 61 63 73 20 ;.Flymake.is.the.built-in.Emacs.
b3c0 70 61 63 6b 61 67 65 20 74 6f 20 73 75 70 70 6f 72 74 20 6f 6e 2d 74 68 65 2d 66 6c 79 20 73 79 package.to.support.on-the-fly.sy
b3e0 6e 74 61 78 20 63 68 65 63 6b 69 6e 67 2e 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 61 64 64 73 ntax.checking..;;.This.file.adds
b400 20 73 75 70 70 6f 72 74 20 66 6f 72 20 66 6c 79 6d 61 6b 65 20 74 6f 20 60 6c 65 64 67 65 72 2d .support.for.flymake.to.`ledger-
b420 6d 6f 64 65 27 2e 20 20 45 6e 61 62 6c 65 20 69 74 20 62 79 20 63 61 6c 6c 69 6e 67 0a 3b 3b 20 mode'...Enable.it.by.calling.;;.
b440 60 6c 65 64 67 65 72 2d 66 6c 79 6d 61 6b 65 2d 65 6e 61 62 6c 65 27 20 66 72 6f 6d 20 61 20 66 `ledger-flymake-enable'.from.a.f
b460 69 6c 65 2d 76 69 73 69 74 69 6e 67 20 6c 65 64 67 65 72 20 62 75 66 66 65 72 2e 20 20 54 6f 20 ile-visiting.ledger.buffer...To.
b480 65 6e 61 62 6c 65 20 69 74 0a 3b 3b 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 2c 20 70 75 74 20 enable.it.;;.automatically,.put.
b4a0 74 68 69 73 20 69 6e 20 79 6f 75 72 20 2e 65 6d 61 63 73 3a 0a 3b 3b 0a 3b 3b 20 20 20 20 20 28 this.in.your..emacs:.;;.;;.....(
b4c0 61 64 64 2d 68 6f 6f 6b 20 27 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 68 6f 6f 6b 20 23 27 6c 65 64 add-hook.'ledger-mode-hook.#'led
b4e0 67 65 72 2d 66 6c 79 6d 61 6b 65 2d 65 6e 61 62 6c 65 29 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 28 ger-flymake-enable)..;;;.Code:.(
b500 72 65 71 75 69 72 65 20 27 63 6c 2d 6c 69 62 29 0a 28 72 65 71 75 69 72 65 20 27 66 6c 79 6d 61 require.'cl-lib).(require.'flyma
b520 6b 65 29 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 65 78 65 63 29 20 20 20 20 20 20 ke).(require.'ledger-exec)......
b540 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 66 6f 72 20 60 6c 65 64 67 65 72 2d 62 69 6e 61 72 79 ............;.for.`ledger-binary
b560 2d 70 61 74 68 27 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 20 -path'.(require.'ledger-report).
b580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 66 6f 72 20 60 6c 65 64 67 65 72 2d 6d 61 73 ...............;.for.`ledger-mas
b5a0 74 65 72 2d 66 69 6c 65 27 0a 0a 3b 3b 20 54 6f 20 73 69 6c 65 6e 63 65 20 62 79 74 65 20 63 6f ter-file'..;;.To.silence.byte.co
b5c0 6d 70 69 6c 65 72 20 77 61 72 6e 69 6e 67 73 20 69 6e 20 45 6d 61 63 73 20 32 35 20 61 6e 64 20 mpiler.warnings.in.Emacs.25.and.
b5e0 6f 6c 64 65 72 3a 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e 63 74 69 6f 6e 20 66 6c 79 6d 61 6b 65 older:.(declare-function.flymake
b600 2d 64 69 61 67 2d 72 65 67 69 6f 6e 20 22 66 6c 79 6d 61 6b 65 22 20 28 62 75 66 66 65 72 20 6c -diag-region."flymake".(buffer.l
b620 69 6e 65 20 26 6f 70 74 69 6f 6e 61 6c 20 63 6f 6c 29 29 0a 28 64 65 63 6c 61 72 65 2d 66 75 6e ine.&optional.col)).(declare-fun
b640 63 74 69 6f 6e 20 66 6c 79 6d 61 6b 65 2d 6d 61 6b 65 2d 64 69 61 67 6e 6f 73 74 69 63 20 22 66 ction.flymake-make-diagnostic."f
b660 6c 79 6d 61 6b 65 22 20 28 62 75 66 66 65 72 20 62 65 67 20 65 6e 64 20 74 79 70 65 20 74 65 78 lymake".(buffer.beg.end.type.tex
b680 74 20 26 6f 70 74 69 6f 6e 61 6c 20 64 61 74 61 20 6f 76 65 72 6c 61 79 2d 70 72 6f 70 65 72 74 t.&optional.data.overlay-propert
b6a0 69 65 73 29 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6c 65 64 67 65 72 2d 2d 66 6c 79 ies))..(defvar-local.ledger--fly
b6c0 6d 61 6b 65 2d 70 72 6f 63 20 6e 69 6c 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 make-proc.nil)..(defcustom.ledge
b6e0 72 2d 66 6c 79 6d 61 6b 65 2d 62 65 2d 70 65 64 61 6e 74 69 63 20 6e 69 6c 0a 20 20 22 49 66 20 r-flymake-be-pedantic.nil..."If.
b700 6e 6f 6e 2d 6e 69 6c 2c 20 70 61 73 73 20 74 68 65 20 2d 2d 70 65 64 61 6e 74 69 63 20 66 6c 61 non-nil,.pass.the.--pedantic.fla
b720 67 20 66 6f 72 20 6c 65 64 67 65 72 20 74 6f 20 74 68 65 20 66 6c 79 6d 61 6b 65 20 62 61 63 6b g.for.ledger.to.the.flymake.back
b740 65 6e 64 2e 0a 49 66 20 2d 2d 70 65 64 61 6e 74 69 63 20 69 73 20 69 6e 20 79 6f 75 72 20 6c 65 end..If.--pedantic.is.in.your.le
b760 64 67 65 72 72 63 20 66 69 6c 65 2c 20 74 68 65 6e 20 2d 2d 70 65 64 61 6e 74 69 63 20 67 65 74 dgerrc.file,.then.--pedantic.get
b780 73 0a 70 61 73 73 65 64 20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 74 68 65 20 76 61 6c 75 65 s.passed.regardless.of.the.value
b7a0 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 ."...:type.'boolean...:package-v
b7c0 65 72 73 69 6f 6e 20 27 28 6c 65 64 67 65 72 2d 6d 6f 64 65 20 2e 20 22 34 2e 30 2e 30 22 29 0a ersion.'(ledger-mode..."4.0.0").
b7e0 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 ..:group.'ledger)..(defcustom.le
b800 64 67 65 72 2d 66 6c 79 6d 61 6b 65 2d 62 65 2d 65 78 70 6c 69 63 69 74 20 6e 69 6c 0a 20 20 22 dger-flymake-be-explicit.nil..."
b820 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 70 61 73 73 20 74 68 65 20 2d 2d 65 78 70 6c 69 63 69 74 20 If.non-nil,.pass.the.--explicit.
b840 66 6c 61 67 20 66 6f 72 20 6c 65 64 67 65 72 20 74 6f 20 74 68 65 20 66 6c 79 6d 61 6b 65 20 62 flag.for.ledger.to.the.flymake.b
b860 61 63 6b 65 6e 64 2e 0a 49 66 20 2d 2d 65 78 70 6c 69 63 69 74 20 69 73 20 69 6e 20 79 6f 75 72 ackend..If.--explicit.is.in.your
b880 20 6c 65 64 67 65 72 72 63 20 66 69 6c 65 2c 20 74 68 65 6e 20 2d 2d 65 78 70 6c 69 63 69 74 20 .ledgerrc.file,.then.--explicit.
b8a0 67 65 74 73 0a 70 61 73 73 65 64 20 72 65 67 61 72 64 6c 65 73 73 20 6f 66 20 74 68 65 20 76 61 gets.passed.regardless.of.the.va
b8c0 6c 75 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 70 61 63 6b 61 67 lue."...:type.'boolean...:packag
b8e0 65 2d 76 65 72 73 69 6f 6e 20 27 28 6c 65 64 67 65 72 2d 6d 6f 64 65 20 2e 20 22 34 2e 30 2e 30 e-version.'(ledger-mode..."4.0.0
b900 22 29 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 29 0a 0a 3b 3b 20 42 61 73 65 64 20 6f ")...:group.'ledger)..;;.Based.o
b920 6e 20 74 68 65 20 65 78 61 6d 70 6c 65 20 66 72 6f 6d 20 46 6c 79 6d 61 6b 65 27 73 20 69 6e 66 n.the.example.from.Flymake's.inf
b940 6f 3a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 66 6c 79 6d 61 6b 65 20 28 72 65 70 6f 72 74 o:.(defun.ledger-flymake.(report
b960 2d 66 6e 20 26 72 65 73 74 20 5f 61 72 67 73 29 0a 20 20 22 41 20 46 6c 79 6d 61 6b 65 20 62 61 -fn.&rest._args)..."A.Flymake.ba
b980 63 6b 65 6e 64 20 66 6f 72 20 60 6c 65 64 67 65 72 2d 6d 6f 64 65 27 2e 0a 0a 46 6c 79 6d 61 6b ckend.for.`ledger-mode'...Flymak
b9a0 65 20 63 61 6c 6c 73 20 74 68 69 73 20 77 69 74 68 20 52 45 50 4f 52 54 2d 46 4e 20 61 73 20 6e e.calls.this.with.REPORT-FN.as.n
b9c0 65 65 64 65 64 2e 22 0a 20 20 28 75 6e 6c 65 73 73 20 28 65 78 65 63 75 74 61 62 6c 65 2d 66 69 eeded."...(unless.(executable-fi
b9e0 6e 64 20 6c 65 64 67 65 72 2d 62 69 6e 61 72 79 2d 70 61 74 68 29 0a 20 20 20 20 28 65 72 72 6f nd.ledger-binary-path).....(erro
ba00 72 20 22 43 61 6e 6e 6f 74 20 66 69 6e 64 20 6c 65 64 67 65 72 22 29 29 0a 20 20 3b 3b 20 49 66 r."Cannot.find.ledger"))...;;.If
ba20 20 61 20 6c 69 76 65 20 70 72 6f 63 65 73 73 20 6c 61 75 6e 63 68 65 64 20 69 6e 20 61 6e 20 65 .a.live.process.launched.in.an.e
ba40 61 72 6c 69 65 72 20 63 68 65 63 6b 20 77 61 73 20 66 6f 75 6e 64 2c 20 74 68 61 74 0a 20 20 3b arlier.check.was.found,.that...;
ba60 3b 20 70 72 6f 63 65 73 73 20 69 73 20 6b 69 6c 6c 65 64 2e 20 20 57 68 65 6e 20 74 68 61 74 20 ;.process.is.killed...When.that.
ba80 70 72 6f 63 65 73 73 27 73 20 73 65 6e 74 69 6e 65 6c 20 65 76 65 6e 74 75 61 6c 6c 79 20 72 75 process's.sentinel.eventually.ru
baa0 6e 73 2c 0a 20 20 3b 3b 20 69 74 20 77 69 6c 6c 20 6e 6f 74 69 63 65 20 69 74 73 20 6f 62 73 6f ns,...;;.it.will.notice.its.obso
bac0 6c 65 74 69 6f 6e 2c 20 73 69 6e 63 65 20 69 74 20 68 61 76 65 20 73 69 6e 63 65 20 72 65 73 65 letion,.since.it.have.since.rese
bae0 74 0a 20 20 3b 3b 20 60 6c 65 64 67 65 72 2d 66 6c 79 6d 61 6b 65 2d 70 72 6f 63 27 20 74 6f 20 t...;;.`ledger-flymake-proc'.to.
bb00 61 20 64 69 66 66 65 72 65 6e 74 20 76 61 6c 75 65 0a 20 20 28 77 68 65 6e 20 28 70 72 6f 63 65 a.different.value...(when.(proce
bb20 73 73 2d 6c 69 76 65 2d 70 20 6c 65 64 67 65 72 2d 2d 66 6c 79 6d 61 6b 65 2d 70 72 6f 63 29 0a ss-live-p.ledger--flymake-proc).
bb40 20 20 20 20 28 6b 69 6c 6c 2d 70 72 6f 63 65 73 73 20 6c 65 64 67 65 72 2d 2d 66 6c 79 6d 61 6b ....(kill-process.ledger--flymak
bb60 65 2d 70 72 6f 63 29 29 0a 20 20 3b 3b 20 53 61 76 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 e-proc))...;;.Save.the.current.b
bb80 75 66 66 65 72 2c 20 74 68 65 20 6e 61 72 72 6f 77 69 6e 67 20 72 65 73 74 72 69 63 74 69 6f 6e uffer,.the.narrowing.restriction
bba0 2c 20 72 65 6d 6f 76 65 20 61 6e 79 0a 20 20 3b 3b 20 6e 61 72 72 6f 77 69 6e 67 20 72 65 73 74 ,.remove.any...;;.narrowing.rest
bbc0 72 69 63 74 69 6f 6e 2e 0a 20 20 28 6c 65 74 2a 20 28 28 73 6f 75 72 63 65 20 28 63 75 72 72 65 riction....(let*.((source.(curre
bbe0 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 20 28 6f 72 20 28 nt-buffer))..........(file.(or.(
bc00 6c 65 64 67 65 72 2d 6d 61 73 74 65 72 2d 66 69 6c 65 29 20 28 62 75 66 66 65 72 2d 66 69 6c 65 ledger-master-file).(buffer-file
bc20 2d 6e 61 6d 65 29 29 29 29 0a 20 20 20 20 28 73 61 76 65 2d 72 65 73 74 72 69 63 74 69 6f 6e 0a -name)))).....(save-restriction.
bc40 20 20 20 20 20 20 28 77 69 64 65 6e 29 0a 20 20 20 20 20 20 3b 3b 20 52 65 73 65 74 20 74 68 65 ......(widen).......;;.Reset.the
bc60 20 60 6c 65 64 67 65 72 2d 2d 66 6c 79 6d 61 6b 65 2d 70 72 6f 63 27 20 70 72 6f 63 65 73 73 20 .`ledger--flymake-proc'.process.
bc80 74 6f 20 61 20 6e 65 77 20 70 72 6f 63 65 73 73 0a 20 20 20 20 20 20 3b 3b 20 63 61 6c 6c 69 6e to.a.new.process.......;;.callin
bca0 67 20 74 68 65 20 6c 65 64 67 65 72 20 74 6f 6f 6c 2e 0a 20 20 20 20 20 20 28 73 65 74 71 0a 20 g.the.ledger.tool........(setq..
bcc0 20 20 20 20 20 20 6c 65 64 67 65 72 2d 2d 66 6c 79 6d 61 6b 65 2d 70 72 6f 63 0a 20 20 20 20 20 ......ledger--flymake-proc......
bce0 20 20 28 6d 61 6b 65 2d 70 72 6f 63 65 73 73 0a 20 20 20 20 20 20 20 20 3a 6e 61 6d 65 20 22 6c ..(make-process.........:name."l
bd00 65 64 67 65 72 2d 66 6c 79 6d 61 6b 65 22 20 3a 6e 6f 71 75 65 72 79 20 74 20 3a 63 6f 6e 6e 65 edger-flymake".:noquery.t.:conne
bd20 63 74 69 6f 6e 2d 74 79 70 65 20 27 70 69 70 65 0a 20 20 20 20 20 20 20 20 3a 62 75 66 66 65 72 ction-type.'pipe.........:buffer
bd40 20 28 67 65 6e 65 72 61 74 65 2d 6e 65 77 2d 62 75 66 66 65 72 20 22 20 2a 6c 65 64 67 65 72 2d .(generate-new-buffer.".*ledger-
bd60 66 6c 79 6d 61 6b 65 2a 22 29 0a 20 20 20 20 20 20 20 20 3a 63 6f 6d 6d 61 6e 64 20 28 63 6c 2d flymake*").........:command.(cl-
bd80 72 65 6d 6f 76 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 0a 20 20 20 remove...................nil....
bda0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 2c 6c 65 64 67 65 72 2d 62 69 6e 61 72 79 2d ...............`(,ledger-binary-
bdc0 70 61 74 68 20 22 2d 66 22 20 2c 66 69 6c 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 path."-f".,file.................
bde0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 28 77 68 65 6e 20 6c ........................,(when.l
be00 65 64 67 65 72 2d 66 6c 79 6d 61 6b 65 2d 62 65 2d 70 65 64 61 6e 74 69 63 20 22 2d 2d 70 65 64 edger-flymake-be-pedantic."--ped
be20 61 6e 74 69 63 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 antic").........................
be40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2c 28 77 68 65 6e 20 6c 65 64 67 65 72 2d 66 6c ................,(when.ledger-fl
be60 79 6d 61 6b 65 2d 62 65 2d 65 78 70 6c 69 63 69 74 20 22 2d 2d 65 78 70 6c 69 63 69 74 22 29 0a ymake-be-explicit."--explicit").
be80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
bea0 20 20 20 20 20 20 20 20 22 62 61 6c 61 6e 63 65 22 29 29 0a 20 20 20 20 20 20 20 20 3a 73 65 6e ........"balance")).........:sen
bec0 74 69 6e 65 6c 0a 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 70 72 6f 63 20 5f 65 76 65 tinel.........(lambda.(proc._eve
bee0 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 43 68 65 63 6b 20 74 68 61 74 20 74 68 65 20 nt)...........;;.Check.that.the.
bf00 70 72 6f 63 65 73 73 20 68 61 73 20 69 6e 64 65 65 64 20 65 78 69 74 65 64 2c 20 61 73 20 69 74 process.has.indeed.exited,.as.it
bf20 20 6d 69 67 68 74 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 62 65 20 73 69 6d 70 6c 79 20 73 75 .might...........;;.be.simply.su
bf40 73 70 65 6e 64 65 64 2e 0a 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 27 65 78 spended............(when.(eq.'ex
bf60 69 74 20 28 70 72 6f 63 65 73 73 2d 73 74 61 74 75 73 20 70 72 6f 63 29 29 0a 20 20 20 20 20 20 it.(process-status.proc)).......
bf80 20 20 20 20 20 20 28 75 6e 77 69 6e 64 2d 70 72 6f 74 65 63 74 0a 20 20 20 20 20 20 20 20 20 20 ......(unwind-protect...........
bfa0 20 20 20 20 20 20 3b 3b 20 4f 6e 6c 79 20 70 72 6f 63 65 65 64 20 69 66 20 60 70 72 6f 63 27 20 ......;;.Only.proceed.if.`proc'.
bfc0 69 73 20 74 68 65 20 73 61 6d 65 20 61 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b is.the.same.as.................;
bfe0 3b 20 60 6c 65 64 67 65 72 2d 2d 66 6c 79 6d 61 6b 65 2d 70 72 6f 63 27 2c 20 77 68 69 63 68 20 ;.`ledger--flymake-proc',.which.
c000 69 6e 64 69 63 61 74 65 73 20 74 68 61 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b indicates.that.................;
c020 3b 20 60 70 72 6f 63 27 20 69 73 20 6e 6f 74 20 61 6e 20 6f 62 73 6f 6c 65 74 65 20 70 72 6f 63 ;.`proc'.is.not.an.obsolete.proc
c040 65 73 73 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 77 69 74 68 2d 63 ess..................(if.(with-c
c060 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 73 6f 75 72 63 65 20 28 65 71 20 70 72 6f 63 20 6c 65 urrent-buffer.source.(eq.proc.le
c080 64 67 65 72 2d 2d 66 6c 79 6d 61 6b 65 2d 70 72 6f 63 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 dger--flymake-proc))............
c0a0 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 70 .........(with-current-buffer.(p
c0c0 72 6f 63 65 73 73 2d 62 75 66 66 65 72 20 70 72 6f 63 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 rocess-buffer.proc).............
c0e0 20 20 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 ..........(goto-char.(point-min)
c100 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 50 61 72 73 65 ).......................;;.Parse
c120 20 74 68 65 20 6f 75 74 70 75 74 20 62 75 66 66 65 72 20 66 6f 72 20 64 69 61 67 6e 6f 73 74 69 .the.output.buffer.for.diagnosti
c140 63 27 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6d 65 73 c's.......................;;.mes
c160 73 61 67 65 73 20 61 6e 64 20 6c 6f 63 61 74 69 6f 6e 73 2c 20 63 6f 6c 6c 65 63 74 20 74 68 65 sages.and.locations,.collect.the
c180 6d 20 69 6e 20 61 20 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 m.in.a.list.....................
c1a0 20 20 3b 3b 20 6f 66 20 6f 62 6a 65 63 74 73 2c 20 61 6e 64 20 63 61 6c 6c 20 60 72 65 70 6f 72 ..;;.of.objects,.and.call.`repor
c1c0 74 2d 66 6e 27 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c t-fn'........................(cl
c1e0 2d 6c 6f 6f 70 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 68 69 -loop........................whi
c200 6c 65 20 28 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 2d 72 65 67 65 78 70 0a 20 20 20 20 20 20 le.(search-forward-regexp.......
c220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 54 68 69 73 20 ........................;;.This.
c240 72 65 67 65 78 20 6e 65 65 64 73 20 74 6f 20 6d 61 74 63 68 20 74 68 65 20 77 68 6f 6c 65 20 65 regex.needs.to.match.the.whole.e
c260 72 72 6f 72 2e 20 20 57 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rror...We.......................
c280 20 20 20 20 20 20 20 20 3b 3b 20 61 6c 73 6f 20 6e 65 65 64 20 61 20 63 61 70 74 75 72 65 20 67 ........;;.also.need.a.capture.g
c2a0 72 6f 75 70 20 66 6f 72 20 74 68 65 20 65 72 72 6f 72 20 6d 65 73 73 61 67 65 0a 20 20 20 20 20 roup.for.the.error.message......
c2c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 28 74 68 61 .........................;;.(tha
c2e0 74 27 73 20 67 72 6f 75 70 20 31 20 68 65 72 65 29 20 61 6e 64 20 74 68 65 20 6c 69 6e 65 20 6e t's.group.1.here).and.the.line.n
c300 75 6d 62 65 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 umber...........................
c320 20 20 20 20 3b 3b 20 28 67 72 6f 75 70 20 32 29 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ....;;.(group.2)................
c340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 78 20 6c 69 6e 65 2d 73 74 61 72 74 20 22 ................(rx.line-start."
c360 57 68 69 6c 65 20 70 61 72 73 69 6e 67 20 66 69 6c 65 20 5c 22 22 20 28 6f 6e 65 2d 6f 72 2d 6d While.parsing.file.\"".(one-or-m
c380 6f 72 65 20 28 6e 6f 74 20 77 68 69 74 65 73 70 61 63 65 29 29 20 22 20 6c 69 6e 65 20 22 20 28 ore.(not.whitespace)).".line.".(
c3a0 67 72 6f 75 70 2d 6e 20 32 20 28 6f 6e 65 2d 6f 72 2d 6d 6f 72 65 20 6e 75 6d 29 29 20 22 3a 5c group-n.2.(one-or-more.num)).":\
c3c0 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n"..............................
c3e0 20 20 20 20 20 28 7a 65 72 6f 2d 6f 72 2d 6d 6f 72 65 20 6c 69 6e 65 2d 73 74 61 72 74 20 22 57 .....(zero-or-more.line-start."W
c400 68 69 6c 65 20 22 20 28 6f 6e 65 2d 6f 72 2d 6d 6f 72 65 20 6e 6f 74 2d 6e 65 77 6c 69 6e 65 29 hile.".(one-or-more.not-newline)
c420 20 22 5c 6e 22 20 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."\n".).........................
c440 20 20 20 20 20 20 20 20 20 20 28 6d 69 6e 69 6d 61 6c 2d 6d 61 74 63 68 20 28 7a 65 72 6f 2d 6f ..........(minimal-match.(zero-o
c460 72 2d 6d 6f 72 65 20 6c 69 6e 65 2d 73 74 61 72 74 20 28 7a 65 72 6f 2d 6f 72 2d 6d 6f 72 65 20 r-more.line-start.(zero-or-more.
c480 6e 6f 74 2d 6e 65 77 6c 69 6e 65 29 20 22 5c 6e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 not-newline)."\n")).............
c4a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 72 6f 75 70 2d 6e 20 31 ......................(group-n.1
c4c0 20 22 45 72 72 6f 72 3a 20 22 20 28 6f 6e 65 2d 6f 72 2d 6d 6f 72 65 20 6e 6f 74 2d 6e 65 77 6c ."Error:.".(one-or-more.not-newl
c4e0 69 6e 65 29 20 22 5c 6e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ine)."\n")).....................
c500 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..........nil.t)................
c520 20 20 20 20 20 20 20 20 66 6f 72 20 6d 73 67 20 3d 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 ........for.msg.=.(match-string.
c540 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 28 62 1)........................for.(b
c560 65 67 20 2e 20 65 6e 64 29 20 3d 20 28 66 6c 79 6d 61 6b 65 2d 64 69 61 67 2d 72 65 67 69 6f 6e eg...end).=.(flymake-diag-region
c580 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
c5a0 20 20 20 20 20 20 20 20 20 20 20 73 6f 75 72 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ...........source...............
c5c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 ............................(str
c5e0 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32 29 29 29 ing-to-number.(match-string.2)))
c600 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 20 74 79 70 65 ........................for.type
c620 20 3d 20 3a 65 72 72 6f 72 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .=.:error.......................
c640 20 63 6f 6c 6c 65 63 74 20 28 66 6c 79 6d 61 6b 65 2d 6d 61 6b 65 2d 64 69 61 67 6e 6f 73 74 69 .collect.(flymake-make-diagnosti
c660 63 20 73 6f 75 72 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 c.source........................
c680 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
c6a0 20 62 65 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .beg............................
c6c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 65 6e 64 .............................end
c6e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
c700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 79 70 65 0a 20 20 .........................type...
c720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
c740 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6d 73 67 29 0a 20 20 20 20 20 ......................msg)......
c760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 6e 74 6f 20 64 69 61 67 73 0a 20 20 20 ..................into.diags....
c780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 69 6e 61 6c 6c 79 20 28 66 75 6e ....................finally.(fun
c7a0 63 61 6c 6c 20 72 65 70 6f 72 74 2d 66 6e 20 64 69 61 67 73 29 29 29 0a 20 20 20 20 20 20 20 20 call.report-fn.diags))).........
c7c0 20 20 20 20 20 20 20 20 20 20 28 66 6c 79 6d 61 6b 65 2d 6c 6f 67 20 3a 77 61 72 6e 69 6e 67 20 ..........(flymake-log.:warning.
c7e0 22 43 61 6e 63 65 6c 69 6e 67 20 6f 62 73 6f 6c 65 74 65 20 63 68 65 63 6b 20 25 73 22 0a 20 20 "Canceling.obsolete.check.%s"...
c800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 72 6f .............................pro
c820 63 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 43 6c 65 61 6e 75 70 20 74 68 65 c))...............;;.Cleanup.the
c840 20 74 65 6d 70 6f 72 61 72 79 20 62 75 66 66 65 72 20 75 73 65 64 20 74 6f 20 68 6f 6c 64 20 74 .temporary.buffer.used.to.hold.t
c860 68 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3b 3b 20 63 68 65 63 6b 27 73 20 6f 75 74 70 he...............;;.check's.outp
c880 75 74 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6b 69 6c 6c 2d 62 75 66 66 65 72 20 28 ut................(kill-buffer.(
c8a0 70 72 6f 63 65 73 73 2d 62 75 66 66 65 72 20 70 72 6f 63 29 29 29 29 29 29 29 29 29 29 0a 0a 3b process-buffer.proc))))))))))..;
c8c0 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 66 6c 79 6d ;;###autoload.(defun.ledger-flym
c8e0 61 6b 65 2d 65 6e 61 62 6c 65 20 28 29 0a 20 20 22 45 6e 61 62 6c 65 20 60 66 6c 79 6d 61 6b 65 ake-enable.()..."Enable.`flymake
c900 2d 6d 6f 64 65 27 20 69 6e 20 60 6c 65 64 67 65 72 2d 6d 6f 64 65 27 20 62 75 66 66 65 72 73 2e -mode'.in.`ledger-mode'.buffers.
c920 22 0a 20 20 28 75 6e 6c 65 73 73 20 28 3e 20 65 6d 61 63 73 2d 6d 61 6a 6f 72 2d 76 65 72 73 69 "...(unless.(>.emacs-major-versi
c940 6f 6e 20 32 35 29 0a 20 20 20 20 28 65 72 72 6f 72 20 22 4c 65 64 67 65 72 2d 66 6c 79 6d 61 6b on.25).....(error."Ledger-flymak
c960 65 20 72 65 71 75 69 72 65 73 20 45 6d 61 63 73 20 76 65 72 73 69 6f 6e 20 32 36 20 6f 72 20 68 e.requires.Emacs.version.26.or.h
c980 69 67 68 65 72 22 29 29 0a 20 20 3b 3b 20 41 64 64 20 60 6c 65 64 67 65 72 2d 66 6c 79 6d 61 6b igher"))...;;.Add.`ledger-flymak
c9a0 65 27 20 74 6f 20 60 66 6c 79 6d 61 6b 65 2d 64 69 61 67 6e 6f 73 74 69 63 2d 66 75 6e 63 74 69 e'.to.`flymake-diagnostic-functi
c9c0 6f 6e 73 27 20 73 6f 20 74 68 61 74 20 66 6c 79 6d 61 6b 65 20 63 61 6e 0a 20 20 3b 3b 20 77 6f ons'.so.that.flymake.can...;;.wo
c9e0 72 6b 20 69 6e 20 6c 65 64 67 65 72 2d 6d 6f 64 65 3a 0a 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 rk.in.ledger-mode:...(add-hook.'
ca00 66 6c 79 6d 61 6b 65 2d 64 69 61 67 6e 6f 73 74 69 63 2d 66 75 6e 63 74 69 6f 6e 73 20 27 6c 65 flymake-diagnostic-functions.'le
ca20 64 67 65 72 2d 66 6c 79 6d 61 6b 65 20 6e 69 6c 20 74 29 0a 20 20 28 66 6c 79 6d 61 6b 65 2d 6d dger-flymake.nil.t)...(flymake-m
ca40 6f 64 65 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 6c 65 64 67 65 72 2d 66 6c 79 6d 61 6b 65 29 ode))..(provide.'ledger-flymake)
ca60 0a 0a 3b 3b 3b 20 6c 65 64 67 65 72 2d 66 6c 79 6d 61 6b 65 2e 65 6c 20 65 6e 64 73 20 68 65 72 ..;;;.ledger-flymake.el.ends.her
ca80 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e...............................
caa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cb00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cb20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cb40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cb60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cb80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cbc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cbe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cc00 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 32 33 2e 34 34 35 2f 6c 65 64 67 65 72 2d ledger-mode-20240423.445/ledger-
cc20 6e 61 76 69 67 61 74 65 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 navigate.el.....................
cc40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cc60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
cc80 30 30 31 35 37 34 33 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 35 30 34 00 20 30 00 00 00 0015743.00000000000.016504..0...
cca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ccc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cd00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
cd20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
cd40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cd60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cd80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cda0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cdc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
cde0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ce00 3b 3b 3b 20 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2e 65 6c 20 2d 2d 2d 20 50 72 6f 76 69 ;;;.ledger-navigate.el.---.Provi
ce20 64 65 20 6e 61 76 69 67 61 74 69 6f 6e 20 73 65 72 76 69 63 65 73 20 74 68 72 6f 75 67 68 20 74 de.navigation.services.through.t
ce40 68 65 20 6c 65 64 67 65 72 20 62 75 66 66 65 72 2e 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 he.ledger.buffer...-*-.lexical-b
ce60 69 6e 64 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 inding:.t;.-*-..;;.Copyright.(C)
ce80 20 32 30 31 34 2d 32 30 31 35 20 43 72 61 69 67 20 45 61 72 6c 73 20 28 65 6e 64 65 72 77 38 38 .2014-2015.Craig.Earls.(enderw88
cea0 20 41 54 20 67 6d 61 69 6c 20 44 4f 54 20 63 6f 6d 29 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 .AT.gmail.DOT.com)..;;.This.file
cec0 20 69 73 20 6e 6f 74 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 54 .is.not.part.of.GNU.Emacs...;;.T
cee0 68 69 73 20 69 73 20 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 his.is.free.software;.you.can.re
cf00 64 69 73 74 72 69 62 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 20 75 distribute.it.and/or.modify.it.u
cf20 6e 64 65 72 0a 3b 3b 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e nder.;;.the.terms.of.the.GNU.Gen
cf40 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 eral.Public.License.as.published
cf60 20 62 79 20 74 68 65 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 .by.the.Free.;;.Software.Foundat
cf80 69 6f 6e 3b 20 65 69 74 68 65 72 20 76 65 72 73 69 6f 6e 20 32 2c 20 6f 72 20 28 61 74 20 79 6f ion;.either.version.2,.or.(at.yo
cfa0 75 72 20 6f 70 74 69 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 0a 3b 3b 20 76 65 72 73 69 6f 6e 2e ur.option).any.later.;;.version.
cfc0 0a 3b 3b 0a 3b 3b 20 54 68 69 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 .;;.;;.This.is.distributed.in.th
cfe0 65 20 68 6f 70 65 20 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 e.hope.that.it.will.be.useful,.b
d000 75 74 20 57 49 54 48 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 ut.WITHOUT.;;.ANY.WARRANTY;.with
d020 6f 75 74 20 65 76 65 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 out.even.the.implied.warranty.of
d040 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 20 6f 72 0a 3b 3b 20 46 49 54 4e 45 53 53 20 46 .MERCHANTABILITY.or.;;.FITNESS.F
d060 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 OR.A.PARTICULAR.PURPOSE...See.th
d080 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 e.GNU.General.Public.License.;;.
d0a0 66 6f 72 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 for.more.details..;;.;;.You.shou
d0c0 6c 64 20 68 61 76 65 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 ld.have.received.a.copy.of.the.G
d0e0 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f NU.General.Public.License.;;.alo
d100 6e 67 20 77 69 74 68 20 47 4e 55 20 45 6d 61 63 73 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 ng.with.GNU.Emacs;.see.the.file.
d120 43 4f 50 59 49 4e 47 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b COPYING...If.not,.write.to.the.;
d140 3b 20 46 72 65 65 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e ;.Free.Software.Foundation,.Inc.
d160 2c 20 35 31 20 46 72 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f ,.51.Franklin.Street,.Fifth.Floo
d180 72 2c 20 42 6f 73 74 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 20 55 53 41 2e r,.Boston,.;;.MA.02110-1301.USA.
d1a0 0a 0a 0a 3b 3b 3b 20 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 0a 0a 3b 3b 3b 20 43 6f 64 65 3a ...;;;.Commentary:.;;..;;;.Code:
d1c0 0a 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 72 65 67 65 78 29 0a 28 72 65 71 75 69 ..(require.'ledger-regex).(requi
d1e0 72 65 20 27 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 re.'ledger-context)..(defun.ledg
d200 65 72 2d 6e 61 76 69 67 61 74 65 2d 6e 65 78 74 2d 78 61 63 74 20 28 29 0a 20 20 22 4d 6f 76 65 er-navigate-next-xact.()..."Move
d220 20 70 6f 69 6e 74 20 74 6f 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 6e 65 78 74 20 78 61 63 74 .point.to.beginning.of.next.xact
d240 2e 22 0a 20 20 3b 3b 20 6d 61 6b 65 20 73 75 72 65 20 77 65 20 61 63 74 75 61 6c 6c 79 20 6d 6f ."...;;.make.sure.we.actually.mo
d260 76 65 20 74 6f 20 74 68 65 20 6e 65 78 74 20 78 61 63 74 2c 20 65 76 65 6e 20 69 66 20 77 65 20 ve.to.the.next.xact,.even.if.we.
d280 61 72 65 20 74 68 65 0a 20 20 3b 3b 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 6f 6e 65 20 6e 6f are.the...;;.beginning.of.one.no
d2a0 77 2e 0a 20 20 28 69 66 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 6c 65 64 67 65 72 2d 70 61 79 65 w....(if.(looking-at.ledger-paye
d2c0 65 2d 61 6e 79 2d 73 74 61 74 75 73 2d 72 65 67 65 78 29 0a 20 20 20 20 20 20 28 66 6f 72 77 61 e-any-status-regex).......(forwa
d2e0 72 64 2d 6c 69 6e 65 29 29 0a 20 20 28 69 66 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 rd-line))...(if.(re-search-forwa
d300 72 64 20 20 6c 65 64 67 65 72 2d 70 61 79 65 65 2d 61 6e 79 2d 73 74 61 74 75 73 2d 72 65 67 65 rd..ledger-payee-any-status-rege
d320 78 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 x.nil.t).......(goto-char.(match
d340 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 -beginning.0)).....(goto-char.(p
d360 6f 69 6e 74 2d 6d 61 78 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6e 61 76 69 oint-max))))..(defun.ledger-navi
d380 67 61 74 65 2d 73 74 61 72 74 2d 78 61 63 74 2d 6f 72 2d 64 69 72 65 63 74 69 76 65 2d 70 20 28 gate-start-xact-or-directive-p.(
d3a0 29 0a 20 20 22 52 65 74 75 72 6e 20 74 20 69 66 20 61 74 20 74 68 65 20 62 65 67 69 6e 6e 69 6e )..."Return.t.if.at.the.beginnin
d3c0 67 20 6c 69 6e 65 20 6f 66 20 61 6e 20 78 61 63 74 20 6f 72 20 64 69 72 65 63 74 69 76 65 2e 0a g.line.of.an.xact.or.directive..
d3e0 0a 41 73 73 75 6d 65 73 20 70 6f 69 6e 74 20 69 73 20 61 74 20 74 68 65 20 62 65 67 69 6e 6e 69 .Assumes.point.is.at.the.beginni
d400 6e 67 20 6f 66 20 61 20 6c 69 6e 65 2e 22 0a 20 20 28 6e 6f 74 20 28 6c 6f 6f 6b 69 6e 67 2d 61 ng.of.a.line."...(not.(looking-a
d420 74 20 22 5b 20 5c 74 5d 5c 5c 7c 5c 5c 28 5e 24 5c 5c 29 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 t."[.\t]\\|\\(^$\\)")))..(defun.
d440 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 6e 65 78 74 2d 78 61 63 74 2d 6f 72 2d 64 69 72 ledger-navigate-next-xact-or-dir
d460 65 63 74 69 76 65 20 28 29 0a 20 20 22 4d 6f 76 65 20 74 6f 20 74 68 65 20 62 65 67 69 6e 6e 69 ective.()..."Move.to.the.beginni
d480 6e 67 20 6f 66 20 74 68 65 20 6e 65 78 74 20 78 61 63 74 20 6f 72 20 64 69 72 65 63 74 69 76 65 ng.of.the.next.xact.or.directive
d4a0 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d ."...(interactive)...(beginning-
d4c0 6f 66 2d 6c 69 6e 65 29 0a 20 20 28 69 66 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d of-line)...(if.(ledger-navigate-
d4e0 73 74 61 72 74 2d 78 61 63 74 2d 6f 72 2d 64 69 72 65 63 74 69 76 65 2d 70 29 20 3b 20 69 66 20 start-xact-or-directive-p).;.if.
d500 77 65 20 61 72 65 20 74 68 65 20 73 74 61 72 74 20 6f 66 20 61 6e 20 78 61 63 74 2c 20 6d 6f 76 we.are.the.start.of.an.xact,.mov
d520 65 20 66 6f 72 77 61 72 64 20 74 6f 20 74 68 65 20 6e 65 78 74 20 78 61 63 74 0a 20 20 20 20 20 e.forward.to.the.next.xact......
d540 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 29 0a 20 .(progn.........(forward-line)..
d560 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d .......(unless.(ledger-navigate-
d580 73 74 61 72 74 2d 78 61 63 74 2d 6f 72 2d 64 69 72 65 63 74 69 76 65 2d 70 29 20 3b 20 77 65 20 start-xact-or-directive-p).;.we.
d5a0 68 61 76 65 20 6d 6f 76 65 64 20 66 6f 72 77 61 72 64 20 61 6e 64 20 61 72 65 20 6e 6f 74 20 61 have.moved.forward.and.are.not.a
d5c0 74 20 61 6e 6f 74 68 65 72 20 78 61 63 74 2c 20 72 65 63 75 72 73 65 20 66 6f 72 77 61 72 64 0a t.another.xact,.recurse.forward.
d5e0 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 6e 65 78 74 2d ..........(ledger-navigate-next-
d600 78 61 63 74 2d 6f 72 2d 64 69 72 65 63 74 69 76 65 29 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 xact-or-directive))).....(while.
d620 28 6e 6f 74 20 28 6f 72 20 28 65 6f 62 70 29 20 20 3b 20 77 65 20 64 69 64 6e 27 74 20 73 74 61 (not.(or.(eobp)..;.we.didn't.sta
d640 72 74 20 6f 66 66 20 61 74 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 61 6e 20 78 61 rt.off.at.the.beginning.of.an.xa
d660 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6e ct.....................(ledger-n
d680 61 76 69 67 61 74 65 2d 73 74 61 72 74 2d 78 61 63 74 2d 6f 72 2d 64 69 72 65 63 74 69 76 65 2d avigate-start-xact-or-directive-
d6a0 70 29 29 29 0a 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 29 29 29 29 0a 0a 28 64 p))).......(forward-line))))..(d
d6c0 65 66 75 6e 20 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 70 72 65 76 2d 78 61 63 74 2d 6f efun.ledger-navigate-prev-xact-o
d6e0 72 2d 64 69 72 65 63 74 69 76 65 20 28 29 0a 20 20 22 4d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 r-directive.()..."Move.point.to.
d700 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 70 72 65 76 69 6f 75 73 20 78 61 63 74 2e 22 0a 20 20 28 beginning.of.previous.xact."...(
d720 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 28 28 63 6f 6e 74 65 78 74 20 28 63 interactive)...(let.((context.(c
d740 61 72 20 28 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 2d 61 74 2d 70 6f 69 6e 74 29 29 29 29 0a ar.(ledger-context-at-point)))).
d760 20 20 20 20 28 77 68 65 6e 20 28 65 71 75 61 6c 20 63 6f 6e 74 65 78 74 20 27 61 63 63 74 2d 74 ....(when.(equal.context.'acct-t
d780 72 61 6e 73 61 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 ransaction).......(ledger-naviga
d7a0 74 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 78 61 63 74 29 29 0a 20 20 20 20 28 62 65 67 69 te-beginning-of-xact)).....(begi
d7c0 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 62 61 nning-of-line).....(re-search-ba
d7e0 63 6b 77 61 72 64 20 22 5e 5b 5b 3a 67 72 61 70 68 3a 5d 5d 22 20 6e 69 6c 20 74 29 29 29 0a 0a ckward."^[[:graph:]]".nil.t)))..
d800 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 62 65 67 69 6e 6e 69 6e 67 (defun.ledger-navigate-beginning
d820 2d 6f 66 2d 78 61 63 74 20 28 29 0a 20 20 22 4d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 74 68 65 -of-xact.()..."Move.point.to.the
d840 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 78 61 63 74 2e 22 .beginning.of.the.current.xact."
d860 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 3b 3b 20 6e 65 65 64 20 74 6f 20 73 74 ...(interactive)...;;.need.to.st
d880 61 72 74 20 61 74 20 74 68 65 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 61 20 6c 69 6e 65 20 69 art.at.the.beginning.of.a.line.i
d8a0 6e 20 63 61 73 65 20 77 65 20 61 72 65 20 69 6e 20 74 68 65 20 66 69 72 73 74 20 6c 69 6e 65 20 n.case.we.are.in.the.first.line.
d8c0 6f 66 20 61 6e 20 78 61 63 74 20 61 6c 72 65 61 64 79 2e 0a 20 20 28 62 65 67 69 6e 6e 69 6e 67 of.an.xact.already....(beginning
d8e0 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 28 6c 65 74 20 28 28 73 72 65 67 20 28 63 6f 6e 63 61 74 20 -of-line)...(let.((sreg.(concat.
d900 22 5e 5b 3d 7e 5b 3a 64 69 67 69 74 3a 5d 5d 22 29 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 "^[=~[:digit:]]"))).....(unless.
d920 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 73 72 65 67 29 0a 20 20 20 20 20 20 28 72 65 2d 73 65 61 72 (looking-at.sreg).......(re-sear
d940 63 68 2d 62 61 63 6b 77 61 72 64 20 73 72 65 67 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 28 62 ch-backward.sreg.nil.t).......(b
d960 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 29 29 0a 20 20 28 70 6f 69 6e 74 29 29 0a 0a eginning-of-line)))...(point))..
d980 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 65 6e 64 2d 6f 66 2d 78 61 (defun.ledger-navigate-end-of-xa
d9a0 63 74 20 28 29 0a 20 20 22 4d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 65 6e 64 20 6f 66 20 78 61 ct.()..."Move.point.to.end.of.xa
d9c0 63 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 64 67 65 72 2d 6e ct."...(interactive)...(ledger-n
d9e0 61 76 69 67 61 74 65 2d 6e 65 78 74 2d 78 61 63 74 2d 6f 72 2d 64 69 72 65 63 74 69 76 65 29 0a avigate-next-xact-or-directive).
da00 20 20 28 72 65 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 20 22 2e 24 22 29 0a 20 20 28 65 ..(re-search-backward.".$")...(e
da20 6e 64 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 28 70 6f 69 6e 74 29 29 0a 0a 28 64 65 66 75 6e 20 6c nd-of-line)...(point))..(defun.l
da40 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 74 6f 2d 6c 69 6e 65 20 28 6c 69 6e 65 2d 6e 75 6d edger-navigate-to-line.(line-num
da60 62 65 72 29 0a 20 20 22 52 61 70 69 64 6c 79 20 6d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 6c 69 ber)..."Rapidly.move.point.to.li
da80 6e 65 20 4c 49 4e 45 2d 4e 55 4d 42 45 52 2e 22 0a 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 ne.LINE-NUMBER."...(goto-char.(p
daa0 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 28 31 2d 20 6c oint-min))...(forward-line.(1-.l
dac0 69 6e 65 2d 6e 75 6d 62 65 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6e 61 76 ine-number)))..(defun.ledger-nav
dae0 69 67 61 74 65 2d 66 69 6e 64 2d 78 61 63 74 2d 65 78 74 65 6e 74 73 20 28 70 6f 73 29 0a 20 20 igate-find-xact-extents.(pos)...
db00 22 52 65 74 75 72 6e 20 6c 69 73 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 70 6f 69 6e 74 20 66 6f "Return.list.containing.point.fo
db20 72 20 62 65 67 69 6e 6e 69 6e 67 20 61 6e 64 20 65 6e 64 20 6f 66 20 78 61 63 74 20 63 6f 6e 74 r.beginning.and.end.of.xact.cont
db40 61 69 6e 69 6e 67 20 50 4f 53 2e 0a 52 65 71 75 69 72 65 73 20 65 6d 70 74 79 20 6c 69 6e 65 20 aining.POS..Requires.empty.line.
db60 73 65 70 61 72 61 74 69 6e 67 20 78 61 63 74 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 separating.xacts."...(interactiv
db80 65 20 22 64 22 29 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 67 6f e."d")...(save-excursion.....(go
dba0 74 6f 2d 63 68 61 72 20 70 6f 73 29 0a 20 20 20 20 28 6c 69 73 74 20 28 6c 65 64 67 65 72 2d 6e to-char.pos).....(list.(ledger-n
dbc0 61 76 69 67 61 74 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 78 61 63 74 29 0a 20 20 20 20 20 avigate-beginning-of-xact)......
dbe0 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 65 6e 64 2d 6f 66 2d 78 61 63 .....(ledger-navigate-end-of-xac
dc00 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 73 6b t))))..(defun.ledger-navigate-sk
dc20 69 70 2d 6c 69 6e 65 73 2d 62 61 63 6b 77 61 72 64 73 20 28 72 65 29 0a 20 20 22 4d 6f 76 65 20 ip-lines-backwards.(re)..."Move.
dc40 62 61 63 6b 77 61 72 64 73 20 69 66 20 6e 65 63 65 73 73 61 72 79 20 75 6e 74 69 6c 20 74 68 65 backwards.if.necessary.until.the
dc60 20 6c 69 6e 65 20 62 65 67 69 6e 6e 69 6e 67 20 64 6f 65 73 20 6e 6f 74 20 6d 61 74 63 68 20 52 .line.beginning.does.not.match.R
dc80 45 2e 22 0a 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 28 77 68 69 E."...(beginning-of-line)...(whi
dca0 6c 65 20 28 61 6e 64 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 2d 70 20 72 65 29 0a 20 20 20 20 20 20 le.(and.(looking-at-p.re).......
dcc0 20 20 20 20 20 20 20 20 28 7a 65 72 6f 70 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 2d 31 29 ........(zerop.(forward-line.-1)
dce0 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 73 6b 69 ))))..(defun.ledger-navigate-ski
dd00 70 2d 6c 69 6e 65 73 2d 66 6f 72 77 61 72 64 73 20 28 72 65 29 0a 20 20 22 4d 6f 76 65 20 66 6f p-lines-forwards.(re)..."Move.fo
dd20 72 77 61 72 64 73 20 69 66 20 6e 65 63 65 73 73 61 72 79 20 75 6e 74 69 6c 20 74 68 65 20 6c 69 rwards.if.necessary.until.the.li
dd40 6e 65 20 62 65 67 69 6e 6e 69 6e 67 20 64 6f 65 73 20 6e 6f 74 20 6d 61 74 63 68 20 52 45 2e 22 ne.beginning.does.not.match.RE."
dd60 0a 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 28 77 68 69 6c 65 20 ...(beginning-of-line)...(while.
dd80 28 61 6e 64 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 2d 70 20 72 65 29 0a 20 20 20 20 20 20 20 20 20 (and.(looking-at-p.re)..........
dda0 20 20 20 20 20 28 7a 65 72 6f 70 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 29 29 29 29 .....(zerop.(forward-line.1)))))
ddc0 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 66 69 6e 64 2d 64 69 ..(defun.ledger-navigate-find-di
dde0 72 65 63 74 69 76 65 2d 65 78 74 65 6e 74 73 20 28 70 6f 73 29 0a 20 20 22 52 65 74 75 72 6e 20 rective-extents.(pos)..."Return.
de00 74 68 65 20 65 78 74 65 6e 74 73 20 6f 66 20 74 68 65 20 64 69 72 65 63 74 69 76 65 20 61 74 20 the.extents.of.the.directive.at.
de20 50 4f 53 2e 22 0a 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 6f 73 29 0a 20 20 28 6c 65 74 20 28 POS."...(goto-char.pos)...(let.(
de40 28 62 65 67 69 6e 20 28 70 72 6f 67 6e 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 73 (begin.(progn.(ledger-navigate-s
de60 6b 69 70 2d 6c 69 6e 65 73 2d 62 61 63 6b 77 61 72 64 73 20 22 5b 20 5c 74 5d 5c 5c 7c 65 6e 64 kip-lines-backwards."[.\t]\\|end
de80 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c 28 3f 3a 63 6f 6d 6d 65 6e 74 5c 5c 7c 74 65 73 74 5c [[:blank:]]+\\(?:comment\\|test\
dea0 5c 29 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e \)").......................(poin
dec0 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 65 6e 64 20 28 70 72 6f 67 6e 20 28 66 6f 72 77 61 72 t))).........(end.(progn.(forwar
dee0 64 2d 6c 69 6e 65 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c d-line.1).....................(l
df00 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 73 6b 69 70 2d 6c 69 6e 65 73 2d 66 6f 72 77 61 72 edger-navigate-skip-lines-forwar
df20 64 73 20 22 5b 20 5c 74 5d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ds."[.\t]").....................
df40 28 31 2d 20 28 70 6f 69 6e 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6d 6d 65 6e 74 2d (1-.(point)))).........(comment-
df60 72 65 20 22 20 2a 3b 22 29 29 0a 20 20 20 20 3b 3b 20 68 61 6e 64 6c 65 20 62 6c 6f 63 6b 20 63 re.".*;")).....;;.handle.block.c
df80 6f 6d 6d 65 6e 74 73 20 68 65 72 65 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 62 65 67 69 omments.here.....(goto-char.begi
dfa0 6e 29 0a 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 63 n).....(cond......((looking-at.c
dfc0 6f 6d 6d 65 6e 74 2d 72 65 29 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 omment-re).......(ledger-navigat
dfe0 65 2d 73 6b 69 70 2d 6c 69 6e 65 73 2d 62 61 63 6b 77 61 72 64 73 20 63 6f 6d 6d 65 6e 74 2d 72 e-skip-lines-backwards.comment-r
e000 65 29 0a 20 20 20 20 20 20 3b 3b 20 57 65 20 61 72 65 20 65 69 74 68 65 72 20 61 74 20 74 68 65 e).......;;.We.are.either.at.the
e020 20 62 65 67 69 6e 6e 69 6e 67 20 6f 66 20 74 68 65 20 62 75 66 66 65 72 2c 20 6f 72 20 77 65 20 .beginning.of.the.buffer,.or.we.
e040 66 6f 75 6e 64 0a 20 20 20 20 20 20 3b 3b 20 61 20 6c 69 6e 65 20 6f 75 74 73 69 64 65 20 74 68 found.......;;.a.line.outside.th
e060 65 20 63 6f 6d 6d 65 6e 74 2c 20 6f 72 20 62 6f 74 68 2e 20 20 49 66 20 77 65 20 61 72 65 20 6f e.comment,.or.both...If.we.are.o
e080 75 74 73 69 64 65 0a 20 20 20 20 20 20 3b 3b 20 74 68 65 20 63 6f 6d 6d 65 6e 74 20 74 68 65 6e utside.......;;.the.comment.then
e0a0 20 77 65 20 6e 65 65 64 20 74 6f 20 6d 6f 76 65 20 66 6f 72 77 61 72 64 20 61 20 6c 69 6e 65 2e .we.need.to.move.forward.a.line.
e0c0 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 63 6f 6d 6d 65 .......(unless.(looking-at.comme
e0e0 6e 74 2d 72 65 29 0a 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 31 29 0a nt-re).........(forward-line.1).
e100 20 20 20 20 20 20 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 29 0a 20 20 20 ........(beginning-of-line))....
e120 20 20 20 28 73 65 74 71 20 62 65 67 69 6e 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 28 67 ...(setq.begin.(point)).......(g
e140 6f 74 6f 2d 63 68 61 72 20 70 6f 73 29 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 oto-char.pos).......(ledger-navi
e160 67 61 74 65 2d 73 6b 69 70 2d 6c 69 6e 65 73 2d 66 6f 72 77 61 72 64 73 20 63 6f 6d 6d 65 6e 74 gate-skip-lines-forwards.comment
e180 2d 72 65 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 65 6e 64 20 28 70 6f 69 6e 74 29 29 29 0a 20 -re).......(setq.end.(point)))..
e1a0 20 20 20 20 28 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 22 5c 5c 28 3f 3a 63 6f 6d 6d 65 6e 74 5c 5c ....((looking-at."\\(?:comment\\
e1c0 7c 74 65 73 74 5c 5c 29 5c 5c 3e 22 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 65 6e 64 20 28 6f |test\\)\\>").......(setq.end.(o
e1e0 72 20 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 r.(save-match-data..............
e200 20 20 20 20 20 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 5e 65 6e .........(re-search-forward."^en
e220 64 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c 28 3f 3a 63 6f 6d 6d 65 6e 74 5c 5c 7c 74 65 73 74 d[[:blank:]]+\\(?:comment\\|test
e240 5c 5c 29 5c 5c 5f 3e 22 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 \\)\\_>")).....................(
e260 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 29 0a 20 20 20 20 28 6c 69 73 74 20 62 65 67 69 6e 20 65 point-max))))).....(list.begin.e
e280 6e 64 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 62 6c nd)))..(defun.ledger-navigate-bl
e2a0 6f 63 6b 2d 63 6f 6d 6d 65 6e 74 20 28 70 6f 73 29 0a 20 20 22 4d 6f 76 65 20 70 61 73 74 20 74 ock-comment.(pos)..."Move.past.t
e2c0 68 65 20 62 6c 6f 63 6b 20 63 6f 6d 6d 65 6e 74 20 61 74 20 50 4f 53 2c 20 61 6e 64 20 72 65 74 he.block.comment.at.POS,.and.ret
e2e0 75 72 6e 20 69 74 73 20 65 78 74 65 6e 74 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 urn.its.extents."...(interactive
e300 20 22 64 22 29 0a 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 6f 73 29 0a 20 20 28 6c 65 74 20 28 ."d")...(goto-char.pos)...(let.(
e320 28 62 65 67 69 6e 20 28 70 72 6f 67 6e 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 (begin.(progn.(beginning-of-line
e340 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 29 ).......................(point))
e360 29 0a 20 20 20 20 20 20 20 20 28 65 6e 64 20 28 70 72 6f 67 6e 20 28 65 6e 64 2d 6f 66 2d 6c 69 ).........(end.(progn.(end-of-li
e380 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 29 ne).....................(point))
e3a0 29 0a 20 20 20 20 20 20 20 20 28 63 6f 6d 6d 65 6e 74 2d 72 65 20 22 20 2a 3b 22 29 29 0a 20 20 ).........(comment-re.".*;"))...
e3c0 20 20 3b 3b 20 68 61 6e 64 6c 65 20 62 6c 6f 63 6b 20 63 6f 6d 6d 65 6e 74 73 20 68 65 72 65 0a ..;;.handle.block.comments.here.
e3e0 20 20 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 28 77 68 65 ....(beginning-of-line).....(whe
e400 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 63 6f 6d 6d 65 6e 74 2d 72 65 29 0a 20 20 20 20 20 20 n.(looking-at.comment-re).......
e420 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 73 6b 69 70 2d 6c 69 6e 65 73 2d 62 61 63 6b (ledger-navigate-skip-lines-back
e440 77 61 72 64 73 20 63 6f 6d 6d 65 6e 74 2d 72 65 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 62 65 wards.comment-re).......(setq.be
e460 67 69 6e 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 6f gin.(point)).......(goto-char.po
e480 73 29 0a 20 20 20 20 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 s).......(beginning-of-line)....
e4a0 20 20 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 73 6b 69 70 2d 6c 69 6e 65 73 2d 66 ...(ledger-navigate-skip-lines-f
e4c0 6f 72 77 61 72 64 73 20 63 6f 6d 6d 65 6e 74 2d 72 65 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 orwards.comment-re).......(setq.
e4e0 65 6e 64 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 28 6c 69 73 74 20 62 65 67 69 6e 20 65 6e end.(point))).....(list.begin.en
e500 64 29 29 29 0a 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 66 69 d)))...(defun.ledger-navigate-fi
e520 6e 64 2d 65 6c 65 6d 65 6e 74 2d 65 78 74 65 6e 74 73 20 28 70 6f 73 29 0a 20 20 22 52 65 74 75 nd-element-extents.(pos)..."Retu
e540 72 6e 20 6c 69 73 74 20 63 6f 6e 74 61 69 6e 69 6e 67 20 62 65 67 69 6e 6e 69 6e 67 20 61 6e 64 rn.list.containing.beginning.and
e560 20 65 6e 64 20 6f 66 20 74 68 65 20 65 6e 74 69 74 79 20 73 75 72 72 6f 75 6e 64 69 6e 67 20 50 .end.of.the.entity.surrounding.P
e580 4f 53 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 64 22 29 0a 20 20 28 73 61 76 65 OS."...(interactive."d")...(save
e5a0 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 70 6f 73 29 0a 20 -excursion.....(goto-char.pos)..
e5c0 20 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 28 6c 65 64 67 ...(beginning-of-line).....(ledg
e5e0 65 72 2d 6e 61 76 69 67 61 74 65 2d 73 6b 69 70 2d 6c 69 6e 65 73 2d 62 61 63 6b 77 61 72 64 73 er-navigate-skip-lines-backwards
e600 20 22 5b 20 5c 74 5d 5c 5c 7c 65 6e 64 5b 5b 3a 62 6c 61 6e 6b 3a 5d 5d 2b 5c 5c 28 3f 3a 63 6f ."[.\t]\\|end[[:blank:]]+\\(?:co
e620 6d 6d 65 6e 74 5c 5c 7c 74 65 73 74 5c 5c 29 5c 5c 5f 3e 22 29 0a 20 20 20 20 28 69 66 20 28 6c mment\\|test\\)\\_>").....(if.(l
e640 6f 6f 6b 69 6e 67 2d 61 74 20 22 5b 3d 7e 30 2d 39 5c 5c 5b 5d 22 29 0a 20 20 20 20 20 20 20 20 ooking-at."[=~0-9\\[]").........
e660 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 66 69 6e 64 2d 78 61 63 74 2d 65 78 74 65 6e (ledger-navigate-find-xact-exten
e680 74 73 20 70 6f 73 29 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 66 ts.pos).......(ledger-navigate-f
e6a0 69 6e 64 2d 64 69 72 65 63 74 69 76 65 2d 65 78 74 65 6e 74 73 20 70 6f 73 29 29 29 29 0a 0a 28 ind-directive-extents.pos))))..(
e6c0 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 6e 65 78 74 2d 75 6e 63 6c 65 defun.ledger-navigate-next-uncle
e6e0 61 72 65 64 20 28 29 0a 20 20 22 4d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 74 68 65 20 6e 65 78 ared.()..."Move.point.to.the.nex
e700 74 20 75 6e 63 6c 65 61 72 65 64 20 74 72 61 6e 73 61 63 74 69 6f 6e 2e 22 0a 20 20 28 69 6e 74 t.uncleared.transaction."...(int
e720 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 6c 65 eractive)...(when.(looking-at.le
e740 64 67 65 72 2d 70 61 79 65 65 2d 75 6e 63 6c 65 61 72 65 64 2d 72 65 67 65 78 29 0a 20 20 20 20 dger-payee-uncleared-regex).....
e760 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 29 29 0a 20 20 28 69 66 20 28 72 65 2d 73 65 61 72 63 68 (forward-line))...(if.(re-search
e780 2d 66 6f 72 77 61 72 64 20 6c 65 64 67 65 72 2d 70 61 79 65 65 2d 75 6e 63 6c 65 61 72 65 64 2d -forward.ledger-payee-uncleared-
e7a0 72 65 67 65 78 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 28 70 72 6f 67 6e 20 28 62 65 67 69 6e regex.nil.t).......(progn.(begin
e7c0 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e ning-of-line)..............(poin
e7e0 74 29 29 0a 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 20 6e 65 78 74 20 75 6e 63 t)).....(user-error."No.next.unc
e800 6c 65 61 72 65 64 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 22 29 29 29 0a 0a 28 64 65 66 75 6e 20 leared.transactions")))..(defun.
e820 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 70 72 65 76 69 6f 75 73 2d 75 6e 63 6c 65 61 72 ledger-navigate-previous-unclear
e840 65 64 20 28 29 0a 20 20 22 4d 6f 76 65 20 70 6f 69 6e 74 20 74 6f 20 74 68 65 20 70 72 65 76 69 ed.()..."Move.point.to.the.previ
e860 6f 75 73 20 75 6e 63 6c 65 61 72 65 64 20 74 72 61 6e 73 61 63 74 69 6f 6e 2e 22 0a 20 20 28 69 ous.uncleared.transaction."...(i
e880 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 77 68 65 6e 20 28 65 71 75 61 6c 20 28 63 61 72 20 nteractive)...(when.(equal.(car.
e8a0 28 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 2d 61 74 2d 70 6f 69 6e 74 29 29 20 27 61 63 63 74 (ledger-context-at-point)).'acct
e8c0 2d 74 72 61 6e 73 61 63 74 69 6f 6e 29 0a 20 20 20 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 -transaction).....(ledger-naviga
e8e0 74 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 78 61 63 74 29 29 0a 20 20 28 69 66 20 28 72 65 te-beginning-of-xact))...(if.(re
e900 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 20 6c 65 64 67 65 72 2d 70 61 79 65 65 2d 75 6e -search-backward.ledger-payee-un
e920 63 6c 65 61 72 65 64 2d 72 65 67 65 78 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 28 70 72 6f 67 cleared-regex.nil.t).......(prog
e940 6e 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 20 20 n.(beginning-of-line)...........
e960 20 20 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 20 ...(point)).....(user-error."No.
e980 70 72 65 76 69 6f 75 73 20 75 6e 63 6c 65 61 72 65 64 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 22 previous.uncleared.transactions"
e9a0 29 29 29 0a 0a 0a 28 70 72 6f 76 69 64 65 20 27 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 29 )))...(provide.'ledger-navigate)
e9c0 0a 0a 3b 3b 3b 20 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2e 65 6c 20 65 6e 64 73 20 68 65 ..;;;.ledger-navigate.el.ends.he
e9e0 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 re..............................
ea00 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 32 33 2e 34 34 35 2f 6c 65 64 67 65 72 2d ledger-mode-20240423.445/ledger-
ea20 69 6e 69 74 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 init.el.........................
ea40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ea60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
ea80 30 30 30 37 32 37 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 36 35 34 00 20 30 00 00 00 0007277.00000000000.015654..0...
eaa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
eac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
eae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
eb00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
eb20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
eb40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
eb60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
eb80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
eba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ebc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ebe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
ec00 3b 3b 3b 20 6c 65 64 67 65 72 2d 69 6e 69 74 2e 65 6c 20 2d 2d 2d 20 48 65 6c 70 65 72 20 63 6f ;;;.ledger-init.el.---.Helper.co
ec20 64 65 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 74 68 65 20 22 6c 65 64 67 65 72 22 20 63 6f 6d de.for.use.with.the."ledger".com
ec40 6d 61 6e 64 2d 6c 69 6e 65 20 74 6f 6f 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 mand-line.tool..-*-.lexical-bind
ec60 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 ing:.t;.-*-..;;.Copyright.(C).20
ec80 30 33 2d 32 30 31 36 20 4a 6f 68 6e 20 57 69 65 67 6c 65 79 20 28 6a 6f 68 6e 77 20 41 54 20 67 03-2016.John.Wiegley.(johnw.AT.g
eca0 6e 75 20 44 4f 54 20 6f 72 67 29 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 6e 6f 74 nu.DOT.org)..;;.This.file.is.not
ecc0 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 54 68 69 73 20 69 73 20 .part.of.GNU.Emacs...;;.This.is.
ece0 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 free.software;.you.can.redistrib
ed00 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 20 75 6e 64 65 72 0a 3b 3b ute.it.and/or.modify.it.under.;;
ed20 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 .the.terms.of.the.GNU.General.Pu
ed40 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 blic.License.as.published.by.the
ed60 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 .Free.;;.Software.Foundation;.ei
ed80 74 68 65 72 20 76 65 72 73 69 6f 6e 20 32 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 ther.version.2,.or.(at.your.opti
eda0 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 0a 3b 3b 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 on).any.later.;;.version..;;.;;.
edc0 54 68 69 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 This.is.distributed.in.the.hope.
ede0 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 that.it.will.be.useful,.but.WITH
ee00 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 OUT.;;.ANY.WARRANTY;.without.eve
ee20 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 n.the.implied.warranty.of.MERCHA
ee40 4e 54 41 42 49 4c 49 54 59 20 6f 72 0a 3b 3b 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 NTABILITY.or.;;.FITNESS.FOR.A.PA
ee60 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 RTICULAR.PURPOSE...See.the.GNU.G
ee80 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 66 6f 72 20 6d 6f 72 eneral.Public.License.;;.for.mor
eea0 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 e.details..;;.;;.You.should.have
eec0 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 .received.a.copy.of.the.GNU.Gene
eee0 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 ral.Public.License.;;.along.with
ef00 20 47 4e 55 20 45 6d 61 63 73 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 .GNU.Emacs;.see.the.file.COPYING
ef20 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 20 ...If.not,.write.to.the.;;.Free.
ef40 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 Software.Foundation,.Inc.,.51.Fr
ef60 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 anklin.Street,.Fifth.Floor,.Bost
ef80 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 20 55 53 41 2e 0a 0a 3b 3b 3b 20 43 on,.;;.MA.02110-1301.USA...;;;.C
efa0 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 20 44 65 74 65 72 6d 69 6e 65 20 74 68 65 20 6c 65 64 67 ommentary:.;;.Determine.the.ledg
efc0 65 72 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 0a 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 er.environment..(require.'ledger
efe0 2d 72 65 67 65 78 29 0a 0a 3b 3b 3b 20 43 6f 64 65 3a 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c -regex)..;;;.Code:..(defcustom.l
f000 65 64 67 65 72 2d 69 6e 69 74 2d 66 69 6c 65 2d 6e 61 6d 65 20 22 7e 2f 2e 6c 65 64 67 65 72 72 edger-init-file-name."~/.ledgerr
f020 63 22 0a 20 20 22 4c 6f 63 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 6c 65 64 67 65 72 20 69 6e 69 c"..."Location.of.the.ledger.ini
f040 74 69 61 6c 69 7a 61 74 69 6f 6e 20 66 69 6c 65 2e 20 20 6e 69 6c 20 69 66 20 79 6f 75 20 64 6f tialization.file...nil.if.you.do
f060 6e 27 74 20 68 61 76 65 20 6f 6e 65 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 63 68 6f 69 63 65 20 n't.have.one."...:type.'(choice.
f080 28 63 6f 6e 73 74 20 3a 74 61 67 20 22 44 6f 20 6e 6f 74 20 72 65 61 64 20 6c 65 64 67 65 72 20 (const.:tag."Do.not.read.ledger.
f0a0 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 66 69 6c 65 22 20 6e 69 6c 29 0a 20 20 20 20 20 20 initialization.file".nil).......
f0c0 20 20 20 20 20 20 20 20 20 20 20 66 69 6c 65 29 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 ...........file)...:group.'ledge
f0e0 72 2d 65 78 65 63 29 0a 0a 28 64 65 66 76 61 72 20 6c 65 64 67 65 72 2d 65 6e 76 69 72 6f 6e 6d r-exec)..(defvar.ledger-environm
f100 65 6e 74 2d 61 6c 69 73 74 20 6e 69 6c 0a 20 20 22 56 61 72 69 61 62 6c 65 20 74 6f 20 68 6f 6c ent-alist.nil..."Variable.to.hol
f120 64 20 64 65 74 61 69 6c 73 20 61 62 6f 75 74 20 6c 65 64 67 65 72 2d 6d 6f 64 65 27 73 20 65 6e d.details.about.ledger-mode's.en
f140 76 69 72 6f 6e 6d 65 6e 74 2e 0a 0a 41 64 64 69 6e 67 20 74 68 65 20 64 6f 74 74 65 64 20 70 61 vironment...Adding.the.dotted.pa
f160 69 72 20 28 5c 22 64 65 63 69 6d 61 6c 2d 63 6f 6d 6d 61 5c 22 20 2e 20 74 29 20 77 69 6c 6c 20 ir.(\"decimal-comma\"...t).will.
f180 74 65 6c 6c 20 6c 65 64 67 65 72 0a 74 6f 20 74 72 65 61 74 20 63 6f 6d 6d 61 73 20 61 73 20 64 tell.ledger.to.treat.commas.as.d
f1a0 65 63 69 6d 61 6c 20 73 65 70 61 72 61 74 6f 72 2e 0a 0a 54 68 69 73 20 76 61 72 69 61 62 6c 65 ecimal.separator...This.variable
f1c0 20 69 73 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 70 6f 70 75 6c 61 74 65 64 20 62 79 0a 60 .is.automatically.populated.by.`
f1e0 6c 65 64 67 65 72 2d 69 6e 69 74 2d 6c 6f 61 64 2d 69 6e 69 74 2d 66 69 6c 65 27 2c 20 77 68 69 ledger-init-load-init-file',.whi
f200 63 68 20 69 73 20 63 61 6c 6c 65 64 20 69 6e 20 74 68 65 20 62 6f 64 79 20 6f 66 0a 60 6c 65 64 ch.is.called.in.the.body.of.`led
f220 67 65 72 2d 6d 6f 64 65 27 2e 22 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6c 65 64 67 65 72 2d 69 ger-mode'.")..(defconst.ledger-i
f240 73 6f 2d 64 61 74 65 2d 66 6f 72 6d 61 74 20 22 25 59 2d 25 6d 2d 25 64 22 0a 20 20 22 54 68 65 so-date-format."%Y-%m-%d"..."The
f260 20 66 6f 72 6d 61 74 20 66 6f 72 20 49 53 4f 20 38 36 30 31 20 64 61 74 65 73 2e 22 29 0a 0a 28 .format.for.ISO.8601.dates.")..(
f280 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 64 65 66 61 75 6c 74 2d 64 61 74 65 2d 66 6f defcustom.ledger-default-date-fo
f2a0 72 6d 61 74 20 22 25 59 2f 25 6d 2f 25 64 22 0a 20 20 22 54 68 65 20 64 61 74 65 20 66 6f 72 6d rmat."%Y/%m/%d"..."The.date.form
f2c0 61 74 20 74 68 61 74 20 6c 65 64 67 65 72 20 75 73 65 73 20 74 68 72 6f 75 67 68 6f 75 74 2e 0a at.that.ledger.uses.throughout..
f2e0 53 65 74 20 74 68 69 73 20 74 6f 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 60 6c 65 64 67 65 72 Set.this.to.the.value.of.`ledger
f300 2d 69 73 6f 2d 64 61 74 65 2d 66 6f 72 6d 61 74 27 20 69 66 20 79 6f 75 20 70 72 65 66 65 72 0a -iso-date-format'.if.you.prefer.
f320 49 53 4f 20 38 36 30 31 20 64 61 74 65 73 2e 22 0a 20 20 3a 74 79 70 65 20 27 73 74 72 69 6e 67 ISO.8601.dates."...:type.'string
f340 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 6c 65 64 67 65 72 2d 6d 6f 64 ...:package-version.'(ledger-mod
f360 65 20 2e 20 22 34 2e 30 2e 30 22 29 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 29 0a 0a e..."4.0.0")...:group.'ledger)..
f380 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 66 6f 72 6d 61 74 2d 64 61 74 65 20 28 26 6f 70 74 69 (defun.ledger-format-date.(&opti
f3a0 6f 6e 61 6c 20 64 61 74 65 20 66 6f 72 6d 61 74 29 0a 20 20 22 46 6f 72 6d 61 74 20 44 41 54 45 onal.date.format)..."Format.DATE
f3c0 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 65 66 65 72 .according.to.the.current.prefer
f3e0 72 65 64 20 64 61 74 65 20 66 6f 72 6d 61 74 2e 0a 52 65 74 75 72 6e 73 20 74 68 65 20 63 75 72 red.date.format..Returns.the.cur
f400 72 65 6e 74 20 64 61 74 65 20 69 66 20 44 41 54 45 20 69 73 20 6e 69 6c 20 6f 72 20 6e 6f 74 20 rent.date.if.DATE.is.nil.or.not.
f420 73 75 70 70 6c 69 65 64 2e 0a 0a 49 66 20 46 4f 52 4d 41 54 20 69 73 20 70 72 6f 76 69 64 65 64 supplied...If.FORMAT.is.provided
f440 2c 20 75 73 65 20 74 68 61 74 20 61 73 20 74 68 65 20 64 61 74 65 20 66 6f 72 6d 61 74 2e 20 20 ,.use.that.as.the.date.format...
f460 4f 74 68 65 72 77 69 73 65 2c 0a 75 73 65 20 74 68 65 20 2d 2d 69 6e 70 75 74 2d 64 61 74 65 2d Otherwise,.use.the.--input-date-
f480 66 6f 72 6d 61 74 20 73 70 65 63 69 66 69 65 64 20 69 6e 20 60 6c 65 64 67 65 72 2d 69 6e 69 74 format.specified.in.`ledger-init
f4a0 2d 66 69 6c 65 2d 6e 61 6d 65 27 2c 0a 6f 72 20 69 66 20 6e 6f 6e 65 2c 20 75 73 65 20 60 6c 65 -file-name',.or.if.none,.use.`le
f4c0 64 67 65 72 2d 64 65 66 61 75 6c 74 2d 64 61 74 65 2d 66 6f 72 6d 61 74 27 2e 22 0a 20 20 28 66 dger-default-date-format'."...(f
f4e0 6f 72 6d 61 74 2d 74 69 6d 65 2d 73 74 72 69 6e 67 0a 20 20 20 28 6f 72 20 66 6f 72 6d 61 74 0a ormat-time-string....(or.format.
f500 20 20 20 20 20 20 20 28 63 64 72 20 28 61 73 73 6f 63 20 22 69 6e 70 75 74 2d 64 61 74 65 2d 66 .......(cdr.(assoc."input-date-f
f520 6f 72 6d 61 74 22 20 6c 65 64 67 65 72 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 61 6c 69 73 74 29 ormat".ledger-environment-alist)
f540 29 0a 20 20 20 20 20 20 20 6c 65 64 67 65 72 2d 64 65 66 61 75 6c 74 2d 64 61 74 65 2d 66 6f 72 )........ledger-default-date-for
f560 6d 61 74 29 0a 20 20 20 64 61 74 65 29 29 0a 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 69 mat)....date))...(defun.ledger-i
f580 6e 69 74 2d 70 61 72 73 65 2d 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 28 62 75 66 66 65 72 nit-parse-initialization.(buffer
f5a0 29 0a 20 20 22 50 61 72 73 65 20 74 68 65 20 2e 6c 65 64 67 65 72 72 63 20 66 69 6c 65 20 69 6e )..."Parse.the..ledgerrc.file.in
f5c0 20 42 55 46 46 45 52 2e 22 0a 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 .BUFFER."...(with-current-buffer
f5e0 20 62 75 66 66 65 72 0a 20 20 20 20 28 6c 65 74 20 28 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 61 6c .buffer.....(let.(environment-al
f600 69 73 74 29 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e ist).......(goto-char.(point-min
f620 29 29 0a 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 )).......(while.(re-search-forwa
f640 72 64 20 6c 65 64 67 65 72 2d 69 6e 69 74 2d 73 74 72 69 6e 67 2d 72 65 67 65 78 20 6e 69 6c 20 rd.ledger-init-string-regex.nil.
f660 74 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 6d 61 74 63 68 62 20 28 6d 61 74 63 68 2d t).........(let.((matchb.(match-
f680 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 20 3b 3b 20 73 61 76 65 20 74 68 65 20 6d 61 74 63 68 20 beginning.0)).;;.save.the.match.
f6a0 64 61 74 61 2c 20 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 73 74 61 6d 70 20 6f 6e 20 69 74 0a 20 data,.string-match.stamp.on.it..
f6c0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 74 63 68 65 20 28 6d 61 74 63 68 2d 65 6e 64 20 .............(matche.(match-end.
f6e0 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 65 6e 64 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 0)))...........(end-of-line)....
f700 20 20 20 20 20 20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 28 6c 65 74 20 28 28 66 6c 61 67 20 28 .......(push.(cons.(let.((flag.(
f720 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 28 buffer-substring-no-properties.(
f740 2b 20 32 20 6d 61 74 63 68 62 29 20 6d 61 74 63 68 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 +.2.matchb).matche)))...........
f760 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 6d 61 74 63 68 20 ..............(if.(string-match.
f780 22 5b 20 5c 74 5c 6e 5c 72 5d 2b 5c 5c 27 22 20 66 6c 61 67 29 0a 20 20 20 20 20 20 20 20 20 20 "[.\t\n\r]+\\'".flag)...........
f7a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 70 6c 61 63 65 2d 6d 61 74 63 68 ..................(replace-match
f7c0 20 22 22 20 74 20 74 20 66 6c 61 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."".t.t.flag)...................
f7e0 20 20 20 20 20 20 20 20 66 6c 61 67 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........flag))..................
f800 20 20 20 20 20 28 6c 65 74 20 28 28 76 61 6c 75 65 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 .....(let.((value.(buffer-substr
f820 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 6d 61 74 63 68 65 20 28 70 6f 69 6e 74 29 ing-no-properties.matche.(point)
f840 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 ))).........................(if.
f860 28 3e 20 28 6c 65 6e 67 74 68 20 76 61 6c 75 65 29 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 (>.(length.value).0)............
f880 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 76 61 6c 75 65 0a 20 20 20 20 20 20 20 20 20 .................value..........
f8a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 .................t)))...........
f8c0 20 20 20 20 20 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 61 6c 69 73 74 29 29 29 0a 20 20 20 20 20 ......environment-alist)))......
f8e0 20 28 6e 72 65 76 65 72 73 65 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 61 6c 69 73 74 29 29 29 29 .(nreverse.environment-alist))))
f900 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 69 6e 69 74 2d 6c 6f 61 64 2d 69 6e 69 74 2d 66 ..(defun.ledger-init-load-init-f
f920 69 6c 65 20 28 29 0a 20 20 22 4c 6f 61 64 20 61 6e 64 20 70 61 72 73 65 20 74 68 65 20 2e 6c 65 ile.()..."Load.and.parse.the..le
f940 64 67 65 72 72 63 20 66 69 6c 65 20 69 6e 74 6f 20 60 6c 65 64 67 65 72 2d 65 6e 76 69 72 6f 6e dgerrc.file.into.`ledger-environ
f960 6d 65 6e 74 2d 61 6c 69 73 74 27 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 ment-alist'."...(interactive)...
f980 28 77 68 65 6e 20 28 61 6e 64 20 6c 65 64 67 65 72 2d 69 6e 69 74 2d 66 69 6c 65 2d 6e 61 6d 65 (when.(and.ledger-init-file-name
f9a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 69 6c 65 2d 72 65 61 64 61 62 6c 65 2d 70 20 6c ..............(file-readable-p.l
f9c0 65 64 67 65 72 2d 69 6e 69 74 2d 66 69 6c 65 2d 6e 61 6d 65 29 29 0a 20 20 20 20 28 77 69 74 68 edger-init-file-name)).....(with
f9e0 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 2d 66 69 6c 65 2d -temp-buffer.......(insert-file-
fa00 63 6f 6e 74 65 6e 74 73 20 6c 65 64 67 65 72 2d 69 6e 69 74 2d 66 69 6c 65 2d 6e 61 6d 65 29 0a contents.ledger-init-file-name).
fa20 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 65 6e 76 69 72 6f 6e 6d 65 6e 74 2d 61 ......(setq.ledger-environment-a
fa40 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 69 6e 69 74 2d 70 61 list.............(ledger-init-pa
fa60 72 73 65 2d 69 6e 69 74 69 61 6c 69 7a 61 74 69 6f 6e 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 rse-initialization.(current-buff
fa80 65 72 29 29 29 29 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 6c 65 64 67 65 72 2d 69 6e 69 74 29 er))))))..(provide.'ledger-init)
faa0 0a 0a 3b 3b 3b 20 6c 65 64 67 65 72 2d 69 6e 69 74 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 ..;;;.ledger-init.el.ends.here..
fac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fb00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fb20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fb40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fb60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fb80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fbc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fbe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fc00 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 32 33 2e 34 34 35 2f 6c 65 64 67 65 72 2d ledger-mode-20240423.445/ledger-
fc20 78 61 63 74 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 xact.el.........................
fc40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fc60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
fc80 30 30 32 32 30 34 35 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 36 33 36 00 20 30 00 00 00 0022045.00000000000.015636..0...
fca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fcc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fd00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
fd20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
fd40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fd60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fd80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fda0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fdc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fde0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
fe00 3b 3b 3b 20 6c 65 64 67 65 72 2d 78 61 63 74 2e 65 6c 20 2d 2d 2d 20 48 65 6c 70 65 72 20 63 6f ;;;.ledger-xact.el.---.Helper.co
fe20 64 65 20 66 6f 72 20 75 73 65 20 77 69 74 68 20 74 68 65 20 22 6c 65 64 67 65 72 22 20 63 6f 6d de.for.use.with.the."ledger".com
fe40 6d 61 6e 64 2d 6c 69 6e 65 20 74 6f 6f 6c 20 20 2d 2a 2d 20 6c 65 78 69 63 61 6c 2d 62 69 6e 64 mand-line.tool..-*-.lexical-bind
fe60 69 6e 67 3a 20 74 3b 20 2d 2a 2d 0a 0a 3b 3b 20 43 6f 70 79 72 69 67 68 74 20 28 43 29 20 32 30 ing:.t;.-*-..;;.Copyright.(C).20
fe80 30 33 2d 32 30 31 36 20 4a 6f 68 6e 20 57 69 65 67 6c 65 79 20 28 6a 6f 68 6e 77 20 41 54 20 67 03-2016.John.Wiegley.(johnw.AT.g
fea0 6e 75 20 44 4f 54 20 6f 72 67 29 0a 0a 3b 3b 20 54 68 69 73 20 66 69 6c 65 20 69 73 20 6e 6f 74 nu.DOT.org)..;;.This.file.is.not
fec0 20 70 61 72 74 20 6f 66 20 47 4e 55 20 45 6d 61 63 73 2e 0a 0a 3b 3b 20 54 68 69 73 20 69 73 20 .part.of.GNU.Emacs...;;.This.is.
fee0 66 72 65 65 20 73 6f 66 74 77 61 72 65 3b 20 79 6f 75 20 63 61 6e 20 72 65 64 69 73 74 72 69 62 free.software;.you.can.redistrib
ff00 75 74 65 20 69 74 20 61 6e 64 2f 6f 72 20 6d 6f 64 69 66 79 20 69 74 20 75 6e 64 65 72 0a 3b 3b ute.it.and/or.modify.it.under.;;
ff20 20 74 68 65 20 74 65 72 6d 73 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 72 61 6c 20 50 75 .the.terms.of.the.GNU.General.Pu
ff40 62 6c 69 63 20 4c 69 63 65 6e 73 65 20 61 73 20 70 75 62 6c 69 73 68 65 64 20 62 79 20 74 68 65 blic.License.as.published.by.the
ff60 20 46 72 65 65 0a 3b 3b 20 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 3b 20 65 69 .Free.;;.Software.Foundation;.ei
ff80 74 68 65 72 20 76 65 72 73 69 6f 6e 20 32 2c 20 6f 72 20 28 61 74 20 79 6f 75 72 20 6f 70 74 69 ther.version.2,.or.(at.your.opti
ffa0 6f 6e 29 20 61 6e 79 20 6c 61 74 65 72 0a 3b 3b 20 76 65 72 73 69 6f 6e 2e 0a 3b 3b 0a 3b 3b 20 on).any.later.;;.version..;;.;;.
ffc0 54 68 69 73 20 69 73 20 64 69 73 74 72 69 62 75 74 65 64 20 69 6e 20 74 68 65 20 68 6f 70 65 20 This.is.distributed.in.the.hope.
ffe0 74 68 61 74 20 69 74 20 77 69 6c 6c 20 62 65 20 75 73 65 66 75 6c 2c 20 62 75 74 20 57 49 54 48 that.it.will.be.useful,.but.WITH
10000 4f 55 54 0a 3b 3b 20 41 4e 59 20 57 41 52 52 41 4e 54 59 3b 20 77 69 74 68 6f 75 74 20 65 76 65 OUT.;;.ANY.WARRANTY;.without.eve
10020 6e 20 74 68 65 20 69 6d 70 6c 69 65 64 20 77 61 72 72 61 6e 74 79 20 6f 66 20 4d 45 52 43 48 41 n.the.implied.warranty.of.MERCHA
10040 4e 54 41 42 49 4c 49 54 59 20 6f 72 0a 3b 3b 20 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 NTABILITY.or.;;.FITNESS.FOR.A.PA
10060 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 45 2e 20 20 53 65 65 20 74 68 65 20 47 4e 55 20 47 RTICULAR.PURPOSE...See.the.GNU.G
10080 65 6e 65 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 66 6f 72 20 6d 6f 72 eneral.Public.License.;;.for.mor
100a0 65 20 64 65 74 61 69 6c 73 2e 0a 3b 3b 0a 3b 3b 20 59 6f 75 20 73 68 6f 75 6c 64 20 68 61 76 65 e.details..;;.;;.You.should.have
100c0 20 72 65 63 65 69 76 65 64 20 61 20 63 6f 70 79 20 6f 66 20 74 68 65 20 47 4e 55 20 47 65 6e 65 .received.a.copy.of.the.GNU.Gene
100e0 72 61 6c 20 50 75 62 6c 69 63 20 4c 69 63 65 6e 73 65 0a 3b 3b 20 61 6c 6f 6e 67 20 77 69 74 68 ral.Public.License.;;.along.with
10100 20 47 4e 55 20 45 6d 61 63 73 3b 20 73 65 65 20 74 68 65 20 66 69 6c 65 20 43 4f 50 59 49 4e 47 .GNU.Emacs;.see.the.file.COPYING
10120 2e 20 20 49 66 20 6e 6f 74 2c 20 77 72 69 74 65 20 74 6f 20 74 68 65 0a 3b 3b 20 46 72 65 65 20 ...If.not,.write.to.the.;;.Free.
10140 53 6f 66 74 77 61 72 65 20 46 6f 75 6e 64 61 74 69 6f 6e 2c 20 49 6e 63 2e 2c 20 35 31 20 46 72 Software.Foundation,.Inc.,.51.Fr
10160 61 6e 6b 6c 69 6e 20 53 74 72 65 65 74 2c 20 46 69 66 74 68 20 46 6c 6f 6f 72 2c 20 42 6f 73 74 anklin.Street,.Fifth.Floor,.Bost
10180 6f 6e 2c 0a 3b 3b 20 4d 41 20 30 32 31 31 30 2d 31 33 30 31 20 55 53 41 2e 0a 0a 0a 3b 3b 3b 20 on,.;;.MA.02110-1301.USA....;;;.
101a0 43 6f 6d 6d 65 6e 74 61 72 79 3a 0a 3b 3b 20 55 74 69 6c 69 74 69 65 73 20 66 6f 72 20 72 75 6e Commentary:.;;.Utilities.for.run
101c0 6e 69 6e 67 20 6c 65 64 67 65 72 20 73 79 6e 63 68 72 6f 6e 6f 75 73 6c 79 2e 0a 0a 3b 3b 3b 20 ning.ledger.synchronously...;;;.
101e0 43 6f 64 65 3a 0a 0a 28 72 65 71 75 69 72 65 20 27 65 73 68 65 6c 6c 29 0a 28 72 65 71 75 69 72 Code:..(require.'eshell).(requir
10200 65 20 27 6c 65 64 67 65 72 2d 72 65 67 65 78 29 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 e.'ledger-regex).(require.'ledge
10220 72 2d 6e 61 76 69 67 61 74 65 29 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 65 78 65 r-navigate).(require.'ledger-exe
10240 63 29 0a 28 72 65 71 75 69 72 65 20 27 6c 65 64 67 65 72 2d 70 6f 73 74 29 0a 28 64 65 63 6c 61 c).(require.'ledger-post).(decla
10260 72 65 2d 66 75 6e 63 74 69 6f 6e 20 6c 65 64 67 65 72 2d 72 65 61 64 2d 64 61 74 65 20 22 6c 65 re-function.ledger-read-date."le
10280 64 67 65 72 2d 6d 6f 64 65 22 20 28 70 72 6f 6d 70 74 29 29 0a 0a 3b 3b 20 54 4f 44 4f 3a 20 54 dger-mode".(prompt))..;;.TODO:.T
102a0 68 69 73 20 66 69 6c 65 20 64 65 70 65 6e 64 73 20 6f 6e 20 63 6f 64 65 20 69 6e 20 6c 65 64 67 his.file.depends.on.code.in.ledg
102c0 65 72 2d 6d 6f 64 65 2e 65 6c 2c 20 77 68 69 63 68 20 64 65 70 65 6e 64 73 20 6f 6e 20 74 68 69 er-mode.el,.which.depends.on.thi
102e0 73 2e 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 68 69 67 68 6c 69 67 68 74 2d s...(defcustom.ledger-highlight-
10300 78 61 63 74 2d 75 6e 64 65 72 2d 70 6f 69 6e 74 20 74 0a 20 20 22 49 66 20 74 20 68 69 67 68 6c xact-under-point.t..."If.t.highl
10320 69 67 68 74 20 78 61 63 74 20 75 6e 64 65 72 20 70 6f 69 6e 74 2e 22 0a 20 20 3a 74 79 70 65 20 ight.xact.under.point."...:type.
10340 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 29 0a 0a 28 64 65 66 'boolean...:group.'ledger)..(def
10360 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 61 64 64 2d 74 72 61 6e 73 61 63 74 69 6f 6e 2d 70 72 custom.ledger-add-transaction-pr
10380 6f 6d 70 74 2d 66 6f 72 2d 74 65 78 74 20 74 0a 20 20 22 57 68 65 6e 20 6e 6f 6e 2d 6e 69 6c 2c ompt-for-text.t..."When.non-nil,
103a0 20 75 73 65 20 6c 65 64 67 65 72 20 78 61 63 74 20 74 6f 20 66 6f 72 6d 61 74 20 74 72 61 6e 73 .use.ledger.xact.to.format.trans
103c0 61 63 74 69 6f 6e 2e 0a 57 68 65 6e 20 6e 69 6c 2c 20 60 6c 65 64 67 65 72 2d 61 64 64 2d 74 72 action..When.nil,.`ledger-add-tr
103e0 61 6e 73 61 63 74 69 6f 6e 27 20 77 69 6c 6c 20 6e 6f 74 20 70 72 6f 6d 70 74 20 74 77 69 63 65 ansaction'.will.not.prompt.twice
10400 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 ."...:type.'boolean...:package-v
10420 65 72 73 69 6f 6e 20 27 28 6c 65 64 67 65 72 2d 6d 6f 64 65 20 2e 20 22 34 2e 30 2e 31 22 29 0a ersion.'(ledger-mode..."4.0.1").
10440 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 29 0a 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c ..:group.'ledger)..(defvar-local
10460 20 6c 65 64 67 65 72 2d 78 61 63 74 2d 68 69 67 68 6c 69 67 68 74 2d 6f 76 65 72 6c 61 79 20 28 .ledger-xact-highlight-overlay.(
10480 6c 69 73 74 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 68 69 67 68 6c 69 67 68 74 2d list))..(defun.ledger-highlight-
104a0 6d 61 6b 65 2d 6f 76 65 72 6c 61 79 20 28 29 0a 20 20 28 6c 65 74 20 28 28 6f 76 6c 20 28 6d 61 make-overlay.()...(let.((ovl.(ma
104c0 6b 65 2d 6f 76 65 72 6c 61 79 20 31 20 31 29 29 29 0a 20 20 20 20 28 6f 76 65 72 6c 61 79 2d 70 ke-overlay.1.1))).....(overlay-p
104e0 75 74 20 6f 76 6c 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 66 61 63 65 20 27 6c 65 64 67 65 72 2d 66 ut.ovl.'font-lock-face.'ledger-f
10500 6f 6e 74 2d 78 61 63 74 2d 68 69 67 68 6c 69 67 68 74 2d 66 61 63 65 29 0a 20 20 20 20 28 6f 76 ont-xact-highlight-face).....(ov
10520 65 72 6c 61 79 2d 70 75 74 20 6f 76 6c 20 27 70 72 69 6f 72 69 74 79 20 27 28 6e 69 6c 20 2e 20 erlay-put.ovl.'priority.'(nil...
10540 39 39 29 29 0a 20 20 20 20 6f 76 6c 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 68 69 99)).....ovl))..(defun.ledger-hi
10560 67 68 6c 69 67 68 74 2d 78 61 63 74 2d 75 6e 64 65 72 2d 70 6f 69 6e 74 20 28 29 0a 20 20 22 4d ghlight-xact-under-point.()..."M
10580 6f 76 65 20 74 68 65 20 68 69 67 68 6c 69 67 68 74 20 6f 76 65 72 6c 61 79 20 74 6f 20 74 68 65 ove.the.highlight.overlay.to.the
105a0 20 63 75 72 72 65 6e 74 20 74 72 61 6e 73 61 63 74 69 6f 6e 2e 22 0a 20 20 28 77 68 65 6e 20 6c .current.transaction."...(when.l
105c0 65 64 67 65 72 2d 68 69 67 68 6c 69 67 68 74 2d 78 61 63 74 2d 75 6e 64 65 72 2d 70 6f 69 6e 74 edger-highlight-xact-under-point
105e0 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 6c 65 64 67 65 72 2d 78 61 63 74 2d 68 69 67 68 6c 69 67 .....(unless.ledger-xact-highlig
10600 68 74 2d 6f 76 65 72 6c 61 79 0a 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 78 61 ht-overlay.......(setq.ledger-xa
10620 63 74 2d 68 69 67 68 6c 69 67 68 74 2d 6f 76 65 72 6c 61 79 20 28 6c 65 64 67 65 72 2d 68 69 67 ct-highlight-overlay.(ledger-hig
10640 68 6c 69 67 68 74 2d 6d 61 6b 65 2d 6f 76 65 72 6c 61 79 29 29 29 0a 20 20 20 20 28 6c 65 74 20 hlight-make-overlay))).....(let.
10660 28 28 65 78 74 73 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 66 69 6e 64 2d 65 6c 65 ((exts.(ledger-navigate-find-ele
10680 6d 65 6e 74 2d 65 78 74 65 6e 74 73 20 28 70 6f 69 6e 74 29 29 29 29 0a 20 20 20 20 20 20 28 6c ment-extents.(point)))).......(l
106a0 65 74 20 28 28 62 20 28 63 61 72 20 65 78 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 et.((b.(car.exts)).............(
106c0 65 20 28 63 61 64 72 20 65 78 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 70 20 28 70 e.(cadr.exts)).............(p.(p
106e0 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 28 3e 20 28 2d 20 65 oint))).........(if.(and.(>.(-.e
10700 20 62 29 20 31 29 20 20 20 20 20 20 20 20 20 20 20 20 3b 20 6e 6f 74 20 61 6e 20 65 6d 70 74 79 .b).1)............;.not.an.empty
10720 20 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3c 3d 20 70 20 65 29 20 .line..................(<=.p.e).
10740 28 3e 3d 20 70 20 62 29 20 20 20 20 20 20 20 20 3b 20 70 6f 69 6e 74 20 69 73 20 77 69 74 68 69 (>=.p.b)........;.point.is.withi
10760 6e 20 74 68 65 20 62 6f 75 6e 64 61 72 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 n.the.boundaries................
10780 20 20 28 6e 6f 74 20 28 72 65 67 69 6f 6e 2d 61 63 74 69 76 65 2d 70 29 29 29 20 3b 20 6e 6f 20 ..(not.(region-active-p))).;.no.
107a0 61 63 74 69 76 65 20 72 65 67 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 6f 76 65 2d active.region.............(move-
107c0 6f 76 65 72 6c 61 79 20 6c 65 64 67 65 72 2d 78 61 63 74 2d 68 69 67 68 6c 69 67 68 74 2d 6f 76 overlay.ledger-xact-highlight-ov
107e0 65 72 6c 61 79 20 62 20 28 2b 20 31 20 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6d 6f 76 65 erlay.b.(+.1.e))...........(move
10800 2d 6f 76 65 72 6c 61 79 20 6c 65 64 67 65 72 2d 78 61 63 74 2d 68 69 67 68 6c 69 67 68 74 2d 6f -overlay.ledger-xact-highlight-o
10820 76 65 72 6c 61 79 20 31 20 31 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d verlay.1.1))))))..(defun.ledger-
10840 68 69 67 68 6c 69 67 68 74 2d 2d 62 65 66 6f 72 65 2d 72 65 76 65 72 74 20 28 29 0a 20 20 22 43 highlight--before-revert.()..."C
10860 6c 65 61 6e 20 75 70 20 68 69 67 68 6c 69 67 68 74 69 6e 67 20 6f 76 65 72 6c 61 79 20 62 65 66 lean.up.highlighting.overlay.bef
10880 6f 72 65 20 72 65 76 65 72 74 69 6e 67 20 62 75 66 66 65 72 2e 22 0a 20 20 28 77 68 65 6e 20 6c ore.reverting.buffer."...(when.l
108a0 65 64 67 65 72 2d 78 61 63 74 2d 68 69 67 68 6c 69 67 68 74 2d 6f 76 65 72 6c 61 79 0a 20 20 20 edger-xact-highlight-overlay....
108c0 20 28 64 65 6c 65 74 65 2d 6f 76 65 72 6c 61 79 20 6c 65 64 67 65 72 2d 78 61 63 74 2d 68 69 67 .(delete-overlay.ledger-xact-hig
108e0 68 6c 69 67 68 74 2d 6f 76 65 72 6c 61 79 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 hlight-overlay)))..(defun.ledger
10900 2d 78 61 63 74 2d 63 6f 6e 74 65 78 74 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 63 -xact-context.()..."Return.the.c
10920 6f 6e 74 65 78 74 20 6f 66 20 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 63 6f 6e 74 61 69 ontext.of.the.transaction.contai
10940 6e 69 6e 67 20 70 6f 69 6e 74 20 6f 72 20 6e 69 6c 2e 22 0a 20 20 28 6c 65 74 20 28 28 69 20 30 ning.point.or.nil."...(let.((i.0
10960 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 65 71 20 28 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 )).....(while.(eq.(ledger-contex
10980 74 2d 6c 69 6e 65 2d 74 79 70 65 20 28 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 2d 6f 74 68 65 t-line-type.(ledger-context-othe
109a0 72 2d 6c 69 6e 65 20 69 29 29 20 27 61 63 63 74 2d 74 72 61 6e 73 61 63 74 69 6f 6e 29 0a 20 20 r-line.i)).'acct-transaction)...
109c0 20 20 20 20 28 73 65 74 71 20 69 20 28 2d 20 69 20 31 29 29 29 0a 20 20 20 20 28 6c 65 74 20 28 ....(setq.i.(-.i.1))).....(let.(
109e0 28 63 6f 6e 74 65 78 74 2d 69 6e 66 6f 20 28 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 2d 6f 74 (context-info.(ledger-context-ot
10a00 68 65 72 2d 6c 69 6e 65 20 69 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 65 71 20 28 6c her-line.i))).......(when.(eq.(l
10a20 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 2d 6c 69 6e 65 2d 74 79 70 65 20 63 6f 6e 74 65 78 74 2d edger-context-line-type.context-
10a40 69 6e 66 6f 29 20 27 78 61 63 74 29 0a 20 20 20 20 20 20 20 20 63 6f 6e 74 65 78 74 2d 69 6e 66 info).'xact).........context-inf
10a60 6f 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 78 61 63 74 2d 70 61 79 65 65 20 o))))..(defun.ledger-xact-payee.
10a80 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 70 61 79 65 65 20 6f 66 20 74 68 65 20 74 72 ()..."Return.the.payee.of.the.tr
10aa0 61 6e 73 61 63 74 69 6f 6e 20 63 6f 6e 74 61 69 6e 69 6e 67 20 70 6f 69 6e 74 20 6f 72 20 6e 69 ansaction.containing.point.or.ni
10ac0 6c 2e 22 0a 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 78 61 63 74 2d 63 6f 6e 74 65 78 74 20 28 l."...(when-let.((xact-context.(
10ae0 6c 65 64 67 65 72 2d 78 61 63 74 2d 63 6f 6e 74 65 78 74 29 29 29 0a 20 20 20 20 28 6c 65 64 67 ledger-xact-context))).....(ledg
10b00 65 72 2d 63 6f 6e 74 65 78 74 2d 66 69 65 6c 64 2d 76 61 6c 75 65 20 78 61 63 74 2d 63 6f 6e 74 er-context-field-value.xact-cont
10b20 65 78 74 20 27 70 61 79 65 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 78 61 63 ext.'payee)))..(defun.ledger-xac
10b40 74 2d 64 61 74 65 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 74 68 65 20 64 61 74 65 20 6f 66 20 t-date.()..."Return.the.date.of.
10b60 74 68 65 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 63 6f 6e 74 61 69 6e 69 6e 67 20 70 6f 69 6e 74 the.transaction.containing.point
10b80 20 6f 72 20 6e 69 6c 2e 22 0a 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 78 61 63 74 2d 63 6f 6e .or.nil."...(when-let.((xact-con
10ba0 74 65 78 74 20 28 6c 65 64 67 65 72 2d 78 61 63 74 2d 63 6f 6e 74 65 78 74 29 29 29 0a 20 20 20 text.(ledger-xact-context)))....
10bc0 20 28 6c 65 64 67 65 72 2d 63 6f 6e 74 65 78 74 2d 66 69 65 6c 64 2d 76 61 6c 75 65 20 78 61 63 .(ledger-context-field-value.xac
10be0 74 2d 63 6f 6e 74 65 78 74 20 27 64 61 74 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 t-context.'date)))..(defun.ledge
10c00 72 2d 78 61 63 74 2d 66 69 6e 64 2d 73 6c 6f 74 20 28 6d 6f 6d 65 6e 74 29 0a 20 20 22 46 69 6e r-xact-find-slot.(moment)..."Fin
10c20 64 20 74 68 65 20 72 69 67 68 74 20 70 6c 61 63 65 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 20 d.the.right.place.in.the.buffer.
10c40 66 6f 72 20 61 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 61 74 20 4d 4f 4d 45 4e 54 2e 0a 4d 4f 4d for.a.transaction.at.MOMENT..MOM
10c60 45 4e 54 20 69 73 20 61 6e 20 65 6e 63 6f 64 65 64 20 64 61 74 65 22 0a 20 20 28 6c 65 74 20 28 ENT.is.an.encoded.date"...(let.(
10c80 6c 61 73 74 2d 78 61 63 74 2d 73 74 61 72 74 29 0a 20 20 20 20 28 63 61 74 63 68 20 27 66 6f 75 last-xact-start).....(catch.'fou
10ca0 6e 64 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 78 61 63 74 2d 69 74 65 72 61 74 65 2d 74 72 nd.......(ledger-xact-iterate-tr
10cc0 61 6e 73 61 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 73 74 61 72 74 ansactions........(lambda.(start
10ce0 20 64 61 74 65 20 5f 6d 61 72 6b 20 5f 64 65 73 63 29 0a 20 20 20 20 20 20 20 20 20 28 73 65 74 .date._mark._desc)..........(set
10d00 71 20 6c 61 73 74 2d 78 61 63 74 2d 73 74 61 72 74 20 73 74 61 72 74 29 0a 20 20 20 20 20 20 20 q.last-xact-start.start)........
10d20 20 20 28 77 68 65 6e 20 28 74 69 6d 65 2d 6c 65 73 73 2d 70 20 6d 6f 6d 65 6e 74 20 64 61 74 65 ..(when.(time-less-p.moment.date
10d40 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 74 68 72 6f 77 20 27 66 6f 75 6e 64 20 74 29 29 29 29 )............(throw.'found.t))))
10d60 29 0a 20 20 20 20 3b 3b 20 49 66 20 77 65 20 61 72 65 20 69 6e 73 65 72 74 69 6e 67 20 61 74 20 ).....;;.If.we.are.inserting.at.
10d80 74 68 65 20 65 6e 64 20 6f 66 20 74 68 65 20 62 75 66 66 65 72 2c 20 69 6e 73 65 72 74 20 61 6e the.end.of.the.buffer,.insert.an
10da0 20 65 78 74 72 61 20 6e 65 77 6c 69 6e 65 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 20 28 65 .extra.newline.....(when.(and.(e
10dc0 6f 62 70 29 20 6c 61 73 74 2d 78 61 63 74 2d 73 74 61 72 74 29 0a 20 20 20 20 20 20 28 6c 65 74 obp).last-xact-start).......(let
10de0 20 28 28 65 6e 64 20 28 63 61 64 72 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 66 69 .((end.(cadr.(ledger-navigate-fi
10e00 6e 64 2d 78 61 63 74 2d 65 78 74 65 6e 74 73 20 6c 61 73 74 2d 78 61 63 74 2d 73 74 61 72 74 29 nd-xact-extents.last-xact-start)
10e20 29 29 29 0a 20 20 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 65 6e 64 29 0a 20 20 20 20 ))).........(goto-char.end).....
10e40 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 0a 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 ....(insert."\n").........(forwa
10e60 72 64 2d 6c 69 6e 65 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 78 61 63 74 rd-line)))))..(defun.ledger-xact
10e80 2d 69 74 65 72 61 74 65 2d 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 28 63 61 6c 6c 62 61 63 6b 29 -iterate-transactions.(callback)
10ea0 0a 20 20 22 49 74 65 72 61 74 65 20 74 68 72 6f 75 67 68 20 65 61 63 68 20 74 72 61 6e 73 61 63 ..."Iterate.through.each.transac
10ec0 74 69 6f 6e 20 63 61 6c 6c 20 43 41 4c 4c 42 41 43 4b 20 66 6f 72 20 65 61 63 68 2e 22 0a 20 20 tion.call.CALLBACK.for.each."...
10ee0 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 28 6c 65 74 2a 20 (goto-char.(point-min))...(let*.
10f00 28 28 6e 6f 77 20 28 63 75 72 72 65 6e 74 2d 74 69 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 ((now.(current-time))..........(
10f20 63 75 72 72 65 6e 74 2d 79 65 61 72 20 28 6e 74 68 20 35 20 28 64 65 63 6f 64 65 2d 74 69 6d 65 current-year.(nth.5.(decode-time
10f40 20 6e 6f 77 29 29 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 6e 6f 74 20 28 65 6f 62 70 29 29 .now)))).....(while.(not.(eobp))
10f60 0a 20 20 20 20 20 20 28 77 68 65 6e 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 20 6c 65 64 67 65 72 2d .......(when.(looking-at.ledger-
10f80 69 74 65 72 61 74 65 2d 72 65 67 65 78 70 29 0a 20 20 20 20 20 20 20 20 28 69 66 2d 6c 65 74 20 iterate-regexp).........(if-let.
10fa0 28 28 79 65 61 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 29 29 29 0a 20 20 20 20 20 20 ((year.(match-string.1))).......
10fc0 20 20 20 20 20 20 28 73 65 74 71 20 63 75 72 72 65 6e 74 2d 79 65 61 72 20 28 73 74 72 69 6e 67 ......(setq.current-year.(string
10fe0 2d 74 6f 2d 6e 75 6d 62 65 72 20 79 65 61 72 29 29 20 3b 61 20 59 20 64 69 72 65 63 74 69 76 65 -to-number.year)).;a.Y.directive
11000 20 77 61 73 20 66 6f 75 6e 64 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 73 74 61 72 .was.found...........(let.((star
11020 74 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 t.(match-beginning.0))..........
11040 20 20 20 20 20 20 20 28 79 65 61 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 28 2b 20 6c 65 .......(year.(match-string.(+.le
11060 64 67 65 72 2d 72 65 67 65 78 2d 69 74 65 72 61 74 65 2d 67 72 6f 75 70 2d 61 63 74 75 61 6c 2d dger-regex-iterate-group-actual-
11080 64 61 74 65 20 31 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 6f 6e 74 68 date.1))).................(month
110a0 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 .(string-to-number.(match-string
110c0 20 28 2b 20 6c 65 64 67 65 72 2d 72 65 67 65 78 2d 69 74 65 72 61 74 65 2d 67 72 6f 75 70 2d 61 .(+.ledger-regex-iterate-group-a
110e0 63 74 75 61 6c 2d 64 61 74 65 20 32 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ctual-date.2))))................
11100 20 28 64 61 79 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 6d 61 74 63 68 2d 73 .(day.(string-to-number.(match-s
11120 74 72 69 6e 67 20 28 2b 20 6c 65 64 67 65 72 2d 72 65 67 65 78 2d 69 74 65 72 61 74 65 2d 67 72 tring.(+.ledger-regex-iterate-gr
11140 6f 75 70 2d 61 63 74 75 61 6c 2d 64 61 74 65 20 33 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 oup-actual-date.3))))...........
11160 20 20 20 20 20 20 28 73 74 61 74 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 6c 65 64 67 65 ......(state.(match-string.ledge
11180 72 2d 72 65 67 65 78 2d 69 74 65 72 61 74 65 2d 67 72 6f 75 70 2d 73 74 61 74 65 29 29 0a 20 20 r-regex-iterate-group-state))...
111a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 61 79 65 65 20 28 6d 61 74 63 68 2d 73 74 72 69 ..............(payee.(match-stri
111c0 6e 67 20 6c 65 64 67 65 72 2d 72 65 67 65 78 2d 69 74 65 72 61 74 65 2d 67 72 6f 75 70 2d 70 61 ng.ledger-regex-iterate-group-pa
111e0 79 65 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 79 65 61 72 yee))).............(if.(and.year
11200 20 28 3e 20 28 6c 65 6e 67 74 68 20 79 65 61 72 29 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 .(>.(length.year).0))...........
11220 20 20 20 20 20 20 28 73 65 74 71 20 79 65 61 72 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 ......(setq.year.(string-to-numb
11240 65 72 20 79 65 61 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 er.year))).............(funcall.
11260 63 61 6c 6c 62 61 63 6b 20 73 74 61 72 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 callback.start..................
11280 20 20 20 20 28 65 6e 63 6f 64 65 2d 74 69 6d 65 20 30 20 30 20 30 20 64 61 79 20 6d 6f 6e 74 68 ....(encode-time.0.0.0.day.month
112a0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
112c0 20 20 20 28 6f 72 20 79 65 61 72 20 63 75 72 72 65 6e 74 2d 79 65 61 72 29 29 0a 20 20 20 20 20 ...(or.year.current-year))......
112e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 74 65 20 70 61 79 65 65 29 29 29 29 0a ................state.payee)))).
11300 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 29 29 29 29 0a 0a 28 64 65 66 63 75 73 ......(forward-line))))..(defcus
11320 74 6f 6d 20 6c 65 64 67 65 72 2d 63 6f 70 79 2d 74 72 61 6e 73 61 63 74 69 6f 6e 2d 69 6e 73 65 tom.ledger-copy-transaction-inse
11340 72 74 2d 62 6c 61 6e 6b 2d 6c 69 6e 65 2d 61 66 74 65 72 20 6e 69 6c 0a 20 20 22 57 68 65 6e 20 rt-blank-line-after.nil..."When.
11360 6e 6f 6e 2d 6e 69 6c 2c 20 69 6e 73 65 72 74 20 61 20 62 6c 61 6e 6b 20 6c 69 6e 65 20 61 66 74 non-nil,.insert.a.blank.line.aft
11380 65 72 20 60 6c 65 64 67 65 72 2d 63 6f 70 79 2d 74 72 61 6e 73 61 63 74 69 6f 6e 2d 61 74 2d 70 er.`ledger-copy-transaction-at-p
113a0 6f 69 6e 74 27 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 oint'."...:type.'boolean...:grou
113c0 70 20 27 6c 65 64 67 65 72 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 63 6f 70 79 2d 74 p.'ledger)..(defun.ledger-copy-t
113e0 72 61 6e 73 61 63 74 69 6f 6e 2d 61 74 2d 70 6f 69 6e 74 20 28 64 61 74 65 29 0a 20 20 22 41 73 ransaction-at-point.(date)..."As
11400 6b 20 66 6f 72 20 61 20 6e 65 77 20 44 41 54 45 20 61 6e 64 20 63 6f 70 79 20 74 68 65 20 74 72 k.for.a.new.DATE.and.copy.the.tr
11420 61 6e 73 61 63 74 69 6f 6e 20 75 6e 64 65 72 20 70 6f 69 6e 74 20 74 6f 20 74 68 61 74 20 64 61 ansaction.under.point.to.that.da
11440 74 65 2e 0a 4c 65 61 76 65 20 70 6f 69 6e 74 20 6f 6e 20 74 68 65 20 66 69 72 73 74 20 61 6d 6f te..Leave.point.on.the.first.amo
11460 75 6e 74 2c 20 69 66 20 61 6e 79 2c 20 6f 74 68 65 72 77 69 73 65 20 74 68 65 20 66 69 72 73 74 unt,.if.any,.otherwise.the.first
11480 20 61 63 63 6f 75 6e 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 28 6c 69 73 74 20 .account."...(interactive.(list.
114a0 28 6c 65 64 67 65 72 2d 72 65 61 64 2d 64 61 74 65 20 22 43 6f 70 79 20 74 6f 20 64 61 74 65 3a (ledger-read-date."Copy.to.date:
114c0 20 22 29 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 65 78 74 65 6e 74 73 20 28 6c 65 64 67 65 72 2d .")))...(let*.((extents.(ledger-
114e0 6e 61 76 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 69 6e navigate-find-xact-extents.(poin
11500 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 74 72 61 6e 73 61 63 74 69 6f 6e 20 28 62 75 66 66 t)))..........(transaction.(buff
11520 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 63 61 72 20 er-substring-no-properties.(car.
11540 65 78 74 65 6e 74 73 29 20 28 63 61 64 72 20 65 78 74 65 6e 74 73 29 29 29 0a 20 20 20 20 20 20 extents).(cadr.extents))).......
11560 20 20 20 28 65 6e 63 6f 64 65 64 2d 64 61 74 65 20 28 6c 65 64 67 65 72 2d 70 61 72 73 65 2d 69 ...(encoded-date.(ledger-parse-i
11580 73 6f 2d 64 61 74 65 20 64 61 74 65 29 29 29 0a 20 20 20 20 28 70 75 73 68 2d 6d 61 72 6b 29 0a so-date.date))).....(push-mark).
115a0 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 65 6e 63 6f 64 ....(ledger-xact-find-slot.encod
115c0 65 64 2d 64 61 74 65 29 0a 20 20 20 20 28 69 6e 73 65 72 74 20 74 72 61 6e 73 61 63 74 69 6f 6e ed-date).....(insert.transaction
115e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 61 6e 64 20 6c 65 64 67 65 72 2d 63 6f 70 .............(if.(and.ledger-cop
11600 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 2d y-transaction-insert-blank-line-
11620 61 66 74 65 72 20 28 6e 6f 74 20 28 65 6f 62 70 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 after.(not.(eobp))).............
11640 20 20 20 20 22 5c 6e 5c 6e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 6e 22 29 29 0a ...."\n\n"..............."\n")).
11660 20 20 20 20 28 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 6c 69 6e 65 20 2d 31 29 0a 20 20 20 20 28 ....(beginning-of-line.-1).....(
11680 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 78 61 63 ledger-navigate-beginning-of-xac
116a0 74 29 0a 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 t).....(let.((end.(save-excursio
116c0 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 2d 78 61 63 74 29 20 n.(ledger-navigate-end-of-xact).
116e0 28 70 6f 69 6e 74 29 29 29 29 0a 20 20 20 20 20 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 (point)))).......(re-search-forw
11700 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 20 ard.ledger-iso-date-regexp).....
11720 20 20 28 72 65 70 6c 61 63 65 2d 6d 61 74 63 68 20 64 61 74 65 29 0a 20 20 20 20 20 20 28 69 66 ..(replace-match.date).......(if
11740 20 28 6c 65 64 67 65 72 2d 6e 65 78 74 2d 61 6d 6f 75 6e 74 20 65 6e 64 29 0a 20 20 20 20 20 20 .(ledger-next-amount.end).......
11760 20 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 2d 73 65 61 72 63 ....(progn.............(re-searc
11780 68 2d 66 6f 72 77 61 72 64 20 22 5b 2d 30 2d 39 5d 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 h-forward."[-0-9]").............
117a0 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 29 29 29 (goto-char.(match-beginning.0)))
117c0 0a 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 6e 65 78 74 2d 61 63 63 6f 75 6e 74 20 65 6e .........(ledger-next-account.en
117e0 64 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 64 65 6c 65 74 65 2d 63 75 72 d)))))..(defun.ledger-delete-cur
11800 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 22 44 65 6c 65 74 65 rent-transaction.(pos)..."Delete
11820 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 69 6e 67 20 50 4f 53 .the.transaction.surrounding.POS
11840 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 6c 65 74 20 28 28 ."...(interactive."d")...(let.((
11860 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 69 6e 64 2d 78 61 63 bounds.(ledger-navigate-find-xac
11880 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 65 74 65 2d 72 65 67 t-extents.pos))).....(delete-reg
118a0 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 75 6e 64 73 29 29 29 ion.(car.bounds).(cadr.bounds)))
118c0 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 0a 28 64 65 66 76 61 ...(delete-blank-lines))..(defva
118e0 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 6c 61 73 74 2d 64 61 r.ledger-add-transaction-last-da
11900 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 65 64 20 75 73 69 6e te.nil..."Last.date.entered.usin
11920 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 6e 27 2e 22 29 0a 0a g.`ledger-read-transaction'.")..
11940 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 63 74 69 6f 6e 20 28 (defun.ledger-read-transaction.(
11960 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 72 61 6e 73 61 63 74 )..."Read.the.text.of.a.transact
11980 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 65 20 63 75 72 72 65 ion,.which.is.at.least.the.curre
119a0 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 6c 65 64 67 65 72 2d nt.date."...(let.((date.(ledger-
119c0 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 20 28 63 6f 6e 63 61 read-date."Date:."))).....(conca
119e0 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 68 65 6e 20 6c 65 64 t.date.".".............(when.led
11a00 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 74 2d 66 6f 72 2d 74 ger-add-transaction-prompt-for-t
11a20 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 74 72 69 6e 67 20 28 ext...............(read-string.(
11a40 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 20 6e 69 6c 20 27 6c concat."xact.".date.":.").nil.'l
11a60 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 29 29 0a 0a 28 edger-minibuffer-history)))))..(
11a80 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 74 65 20 28 64 61 74 defun.ledger-parse-iso-date.(dat
11aa0 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 73 69 6e 67 20 60 6c e)..."Try.to.parse.DATE.using.`l
11ac0 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 64 20 72 65 74 75 72 edger-iso-date-regexp'.and.retur
11ae0 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 20 28 73 61 76 65 2d n.a.time.value.or.nil."...(save-
11b00 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 69 6e 67 2d 6d 61 74 match-data.....(when.(string-mat
11b20 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 20 64 61 74 65 29 0a ch.ledger-iso-date-regexp.date).
11b40 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 28 73 74 72 69 6e 67 ......(encode-time.0.0.0.(string
11b60 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 34 20 64 61 74 65 29 -to-number.(match-string.4.date)
11b80 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 74 6f 2d )....................(string-to-
11ba0 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 74 65 29 29 0a 20 20 number.(match-string.3.date))...
11bc0 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 74 6f 2d 6e 75 6d 62 .................(string-to-numb
11be0 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 29 29 29 29 0a 0a 28 er.(match-string.2.date))))))..(
11c00 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 69 6f 6e 20 28 74 72 defun.ledger-add-transaction.(tr
11c20 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 69 6e 73 65 72 74 2d ansaction-text.&optional.insert-
11c40 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 61 63 74 20 54 52 41 at-point)..."Use.ledger.xact.TRA
11c60 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 61 6e 73 61 63 74 69 NSACTION-TEXT.to.add.a.transacti
11c80 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 52 54 2d 41 54 2d 50 on.to.the.buffer..If.INSERT-AT-P
11ca0 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 65 20 74 72 61 6e 73 OINT.is.non-nil.insert.the.trans
11cc0 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 61 6c 6c 20 60 6c 65 action.there,.otherwise.call.`le
11ce0 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 6e 73 65 72 74 20 69 dger-xact-find-slot'.to.insert.i
11d00 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 67 69 63 61 6c 20 70 t.at.the.correct.chronological.p
11d20 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 72 61 63 74 69 76 65 lace.in.the.buffer...Interactive
11d40 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 20 76 69 61 20 60 6c ly,.the.date.is.requested.via.`l
11d60 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 5c 5c 5b 75 6e 69 76 edger-read-date'.and.the.\\[univ
11d80 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 4e 53 45 52 54 2d 41 ersal-argument].enables.INSERT-A
11da0 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 28 6c 69 73 74 20 28 T-POINT."...(interactive.(list.(
11dc0 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 63 75 72 72 65 6e 74 ledger-read-transaction).current
11de0 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 72 67 73 20 28 77 69 -prefix-arg))...(let*.((args.(wi
11e00 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 20 20 20 20 20 th-temp-buffer..................
11e20 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 0a 20 20 20 20 20 20 (insert.transaction-text).......
11e40 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 61 72 67 75 6d 65 6e ...........(eshell-parse-argumen
11e60 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 29 29 29 29 0a 20 20 ts.(point-min).(point-max))))...
11e80 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 6e 74 2d 62 75 66 66 .......(ledger-buf.(current-buff
11ea0 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 22 5c 6e 22 29 29 0a er))..........(separator."\n")).
11ec0 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 6e 74 0a 20 20 20 20 ....(unless.insert-at-point.....
11ee0 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 29 0a 20 20 20 20 20 ..(let*.((date.(car.args))......
11f00 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 67 65 72 2d 70 61 72 ........(parsed-date.(ledger-par
11f20 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 20 20 20 28 73 65 74 se-iso-date.date))).........(set
11f40 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 6c 61 73 74 2d 64 61 q.ledger-add-transaction-last-da
11f60 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 70 75 73 68 2d 6d 61 te.parsed-date).........(push-ma
11f80 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 20 61 62 6f 75 74 20 rk).........;;.TODO:.what.about.
11fa0 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 20 20 20 20 20 20 20 when.it.can't.be.parsed?........
11fc0 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 6f 72 20 70 61 72 73 .(ledger-xact-find-slot.(or.pars
11fe0 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 68 65 6e 20 28 6c 6f ed-date.date)).........(when.(lo
12000 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 20 20 20 20 28 73 65 oking-at."\n*\\'")...........(se
12020 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 69 66 20 28 63 64 72 tq.separator."")))).....(if.(cdr
12040 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 72 73 69 6f 6e 0a 20 .args).........(save-excursion..
12060 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 20 20 20 28 77 69 74 .........(insert............(wit
12080 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 20 28 61 70 70 6c h-temp-buffer..............(appl
120a0 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 64 67 65 72 2d 62 75 y.#'ledger-exec-ledger.ledger-bu
120c0 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 0a 20 20 20 20 20 20 f.(current-buffer)."xact".......
120e0 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 61 6c 20 61 72 67 73 ..............(mapcar.'eval.args
12100 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 72 20 28 70 6f 69 6e ))..............(goto-char.(poin
12120 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 67 65 72 2d 70 6f 73 t-min))..............(ledger-pos
12140 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 69 6e 29 20 28 70 6f t-align-postings.(point-min).(po
12160 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 75 66 66 65 72 2d 73 int-max))..............(buffer-s
12180 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 74 6f 72 29 29 0a 20 tring))............separator))..
121a0 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 20 22 29 0a 20 20 20 .....(insert.(car.args).".")....
121c0 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 74 20 22 5c 6e 22 20 ...(save-excursion.(insert."\n".
121e0 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 27 6c 65 64 67 65 72 separator)))))..(provide.'ledger
12200 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 6c 20 65 6e 64 73 20 -xact)..;;;.ledger-xact.el.ends.
12220 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 00 here............................
12240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12260 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12280 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
122a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
122c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
122e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
123a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
123c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
123e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12400 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 32 33 2e 34 34 35 2f 6c 65 64 67 65 72 2d ledger-mode-20240423.445/ledger-
12420 73 6f 72 74 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 sort.el.........................
12440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12460 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
12480 30 30 30 37 36 31 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 36 37 30 00 20 30 00 00 00 0007611.00000000000.015670..0...
124a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
124c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
124e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12500 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...................
12520 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...................
12540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
125a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
125c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
125e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
12600 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
12620 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
12640 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
12660 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
12680 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
126a0 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
126c0 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.
126e0 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
12700 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.;;
12720 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
12740 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
12760 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
12780 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
127a0 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..;;.;;.
127c0 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.
127e0 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
12800 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
12820 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
12840 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
12860 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
12880 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
128a0 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
128c0 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
128e0 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
12900 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
12920 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.
12940 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
12960 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
12980 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.....;;;
129a0 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
129c0 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
129e0 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
12a00 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
12a20 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.
12a40 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
12a60 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
12a80 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
12aa0 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
12ac0 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
12ae0 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
12b00 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
12b20 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
12b40 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.(
12b60 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.
12b80 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)...
12ba0 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.(
12bc0 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
12be0 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
12c00 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
12c20 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)..
12c40 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
12c60 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
12c80 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.
12ca0 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."...
12cc0 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.
12ce0 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)).....
12d00 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)....
12d20 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
12d40 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
12d60 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
12d80 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
12da0 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
12dc0 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
12de0 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
12e00 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
12e20 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
12e40 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
12e60 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
12e80 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
12ea0 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
12ec0 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)))))).
12ee0 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.
12f00 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
12f20 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."
12f40 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
12f60 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...;
12f80 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
12fa0 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
12fc0 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
12fe0 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)))...
13000 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
13020 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)
13040 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
13060 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.
13080 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.........
130a0 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.
130c0 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
130e0 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
13100 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
13120 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
13140 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
13160 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)
13180 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
131a0 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
131c0 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)......
131e0 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)..
13200 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
13220 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
13240 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
13260 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)).....
13280 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)..
132a0 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)..........
132c0 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
132e0 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.......
13300 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
13320 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
13340 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........
13360 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))))..
13380 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)).....
133a0 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)....
133c0 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.
133e0 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
13400 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
13420 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)...(
13440 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
13460 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.(
13480 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
134a0 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).....
134c0 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
134e0 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
13500 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))...
13520 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
13540 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
13560 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
13580 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........................
135a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
135c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
135e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13600 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 32 33 2e 34 34 35 2f 6c 65 64 67 65 72 2d ledger-mode-20240423.445/ledger-
13620 6f 63 63 75 72 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 occur.el........................
13640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13660 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
13680 30 30 31 35 33 36 31 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 30 31 35 00 20 30 00 00 00 0015361.00000000000.016015..0...
136a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
136c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
136e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13700 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...................
13720 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...................
13740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
137a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
137c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
137e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
13800 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
13820 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
13840 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
13860 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
13880 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.
138a0 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
138c0 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
138e0 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
13900 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.;
13920 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
13940 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
13960 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
13980 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
139a0 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..;;.;;
139c0 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
139e0 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
13a00 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
13a20 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
13a40 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
13a60 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.
13a80 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
13aa0 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
13ac0 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
13ae0 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
13b00 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
13b20 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
13b40 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
13b60 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
13b80 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...;;;.
13ba0 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
13bc0 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
13be0 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
13c00 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
13c20 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
13c40 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.
13c60 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
13c80 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
13ca0 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
13cc0 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
13ce0 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
13d00 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
13d20 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.
13d40 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
13d60 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
13d80 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
13da0 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..
13dc0 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-
13de0 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
13e00 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
13e20 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
13e40 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.
13e60 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
13e80 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
13ea0 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
13ec0 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
13ee0 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
13f00 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-
13f20 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
13f40 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.
13f60 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
13f80 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
13fa0 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
13fc0 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
13fe0 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
14000 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
14020 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
14040 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
14060 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.
14080 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
140a0 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
140c0 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.
140e0 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.
14100 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.
14120 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)..........
14140 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
14160 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..
14180 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
141a0 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
141c0 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
141e0 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
14200 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"
14220 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
14240 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
14260 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
14280 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
142a0 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..............
142c0 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.
142e0 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))))..
14300 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
14320 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)...
14340 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
14360 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
14380 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
143a0 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
143c0 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
143e0 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
14400 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
14420 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
14440 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
14460 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
14480 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
144a0 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."
144c0 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
144e0 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
14500 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.(
14520 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,.
14540 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.
14560 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
14580 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
145a0 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
145c0 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
145e0 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
14600 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
14620 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
14640 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,
14660 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
14680 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).......
146a0 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)).
146c0 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)))
146e0 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
14700 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
14720 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.......
14740 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
14760 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
14780 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
147a0 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
147c0 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
147e0 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
14800 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
14820 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.
14840 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
14860 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))).
14880 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
148a0 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).....(
148c0 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
148e0 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
14900 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)
14920 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
14940 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
14960 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
14980 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
149a0 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
149c0 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
149e0 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-
14a00 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
14a20 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
14a40 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)..
14a60 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
14a80 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
14aa0 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.
14ac0 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.
14ae0 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
14b00 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.
14b20 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.
14b40 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).......
14b60 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
14b80 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
14ba0 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
14bc0 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
14be0 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
14c00 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
14c20 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)..
14c40 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.
14c60 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-
14c80 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
14ca0 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-
14cc0 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))))..
14ce0 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
14d00 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
14d20 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
14d40 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
14d60 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)
14d80 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
14da0 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
14dc0 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
14de0 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
14e00 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
14e20 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))....
14e40 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
14e60 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
14e80 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
14ea0 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
14ec0 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.
14ee0 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
14f00 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.(
14f20 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
14f40 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
14f60 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
14f80 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
14fa0 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.......
14fc0 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)))).
14fe0 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
15000 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.
15020 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
15040 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
15060 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
15080 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
150a0 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.
150c0 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)).....
150e0 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
15100 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
15120 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
15140 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
15160 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
15180 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)
151a0 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-
151c0 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
151e0 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
15200 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
15220 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)
15240 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.
15260 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
15280 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.
152a0 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
152c0 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
152e0 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................
15300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
153a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
153c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
153e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15400 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 32 33 2e 34 34 35 2f 6c 65 64 67 65 72 2d ledger-mode-20240423.445/ledger-
15420 63 6f 6d 6d 6f 64 69 74 69 65 73 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 commodities.el..................
15440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15460 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
15480 30 30 31 35 33 31 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 37 32 31 36 00 20 30 00 00 00 0015316.00000000000.017216..0...
154a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
154c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
154e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15500 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...................
15520 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...................
15540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
155a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
155c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
155e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
15600 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
15620 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
15640 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
15660 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
15680 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
156a0 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
156c0 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
156e0 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
15700 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
15720 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
15740 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
15760 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
15780 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
157a0 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.
157c0 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
157e0 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
15800 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
15820 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
15840 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
15860 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
15880 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.;;.
158a0 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
158c0 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
158e0 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
15900 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.
15920 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.;
15940 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.
15960 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
15980 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.
159a0 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
159c0 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.
159e0 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
15a00 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
15a20 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.
15a40 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
15a60 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
15a80 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
15aa0 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
15ac0 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
15ae0 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.
15b00 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"
15b20 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-
15b40 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.
15b60 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
15b80 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.
15ba0 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
15bc0 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
15be0 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)
15c00 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
15c20 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
15c40 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
15c60 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
15c80 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
15ca0 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
15cc0 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....
15ce0 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
15d00 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)
15d20 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").................
15d40 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
15d60 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
15d80 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
15da0 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-
15dc0 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
15de0 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
15e00 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
15e20 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
15e40 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
15e60 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-
15e80 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)
15ea0 0a 20 20 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
15ec0 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....
15ee0 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
15f00 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))).....(
15f20 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
15f40 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
15f60 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
15f80 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........
15fa0 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."\"\\(.*
15fc0 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.
15fe0 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
16000 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...
16020 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
16040 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).......................
16060 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))))..............
16080 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.........
160a0 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)..
160c0 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..........
160e0 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
16100 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
16120 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
16140 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)))...........
16160 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
16180 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
161a0 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
161c0 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.
161e0 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
16200 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,
16220 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.
16240 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
16260 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,
16280 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.
162a0 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
162c0 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...
162e0 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
16300 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
16320 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)
16340 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
16360 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
16380 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).(
163a0 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-
163c0 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).......
163e0 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
16400 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,...
16420 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.
16440 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
16460 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
16480 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
164a0 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.(
164c0 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-
164e0 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-
16500 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
16520 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
16540 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
16560 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."..........................
16580 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
165a0 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.
165c0 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).
165e0 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
16600 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
16620 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
16640 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.
16660 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
16680 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
166a0 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.
166c0 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
166e0 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
16700 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)
16720 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
16740 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
16760 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
16780 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))))..
167a0 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.
167c0 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
167e0 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
16800 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.
16820 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
16840 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)).
16860 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
16880 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
168a0 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."
168c0 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:
168e0 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
16900 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
16920 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
16940 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)).
16960 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.
16980 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)...
169a0 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
169c0 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
169e0 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.
16a00 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
16a20 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..
16a40 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
16a60 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
16a80 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..........
16aa0 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
16ac0 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))..
16ae0 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
16b00 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
16b20 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.(
16b40 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
16b60 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
16b80 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
16ba0 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))).....
16bc0 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
16be0 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
16c00 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
16c20 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
16c40 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
16c60 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
16c80 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
16ca0 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...........
16cc0 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
16ce0 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
16d00 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).....
16d20 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.","
16d40 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
16d60 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
16d80 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
16da0 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
16dc0 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,
16de0 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
16e00 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
16e20 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
16e40 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
16e60 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
16e80 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
16ea0 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
16ec0 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.
16ee0 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.
16f00 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
16f20 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...
16f40 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.".(".
16f60 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
16f80 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
16fa0 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).....
16fc0 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
16fe0 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.(
17000 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
17020 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).......
17040 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
17060 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
17080 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
170a0 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
170c0 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...................
170e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17100 00 00 00 00 00 00 00 00 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 32 33 2e 34 34 35 2f 6c 65 64 67 65 72 2d ledger-mode-20240423.445/ledger-
17220 6d 6f 64 65 2d 70 6b 67 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 mode-pkg.el.....................
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 30 30 33 34 35 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 34 30 31 00 20 30 00 00 00 0000345.00000000000.016401..0...
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 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
17420 30 32 34 30 34 32 33 2e 34 34 35 22 20 22 48 65 6c 70 65 72 20 63 6f 64 65 20 66 6f 72 20 75 73 0240423.445"."Helper.code.for.us
17440 65 20 77 69 74 68 20 74 68 65 20 5c 22 6c 65 64 67 65 72 5c 22 20 63 6f 6d 6d 61 6e 64 2d 6c 69 e.with.the.\"ledger\".command-li
17460 6e 65 20 74 6f 6f 6c 22 0a 20 20 27 28 28 65 6d 61 63 73 20 22 32 35 2e 31 22 29 29 0a 20 20 3a ne.tool"...'((emacs."25.1"))...:
17480 63 6f 6d 6d 69 74 20 22 63 36 36 65 33 65 39 61 64 66 62 35 64 39 31 66 38 33 61 34 30 31 33 38 commit."c66e3e9adfb5d91f83a40138
174a0 37 66 61 64 33 34 35 66 31 32 30 30 34 63 38 61 22 29 0a 3b 3b 20 4c 6f 63 61 6c 20 56 61 72 69 7fad345f12004c8a").;;.Local.Vari
174c0 61 62 6c 65 73 3a 0a 3b 3b 20 6e 6f 2d 62 79 74 65 2d 63 6f 6d 70 69 6c 65 3a 20 74 0a 3b 3b 20 ables:.;;.no-byte-compile:.t.;;.
174e0 45 6e 64 3a 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 End:............................
17500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
175a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
175c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
175e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17600 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 32 33 2e 34 34 35 2f 6c 65 64 67 65 72 2d ledger-mode-20240423.445/ledger-
17620 6d 6f 64 65 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 mode.el.........................
17640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17660 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
17680 30 30 33 35 33 34 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 36 33 33 00 20 30 00 00 00 0035346.00000000000.015633..0...
176a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
176c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
176e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17700 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...................
17720 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...................
17740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
177a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
177c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
177e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
17800 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
17820 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
17840 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
17860 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
17880 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
178a0 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
178c0 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-
178e0 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
17900 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
17920 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
17940 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
17960 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
17980 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
179a0 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
179c0 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.
179e0 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
17a00 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
17a20 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
17a40 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
17a60 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
17a80 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
17aa0 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.;;.
17ac0 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
17ae0 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
17b00 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
17b20 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.
17b40 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.;
17b60 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.
17b80 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
17ba0 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.
17bc0 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.
17be0 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
17c00 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
17c20 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
17c40 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
17c60 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
17c80 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
17ca0 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
17cc0 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...;;;.
17ce0 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).(
17d00 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
17d20 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
17d40 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)
17d60 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
17d80 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
17da0 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)
17dc0 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
17de0 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
17e00 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
17e20 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).
17e40 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.
17e60 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-
17e80 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
17ea0 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
17ec0 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-
17ee0 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
17f00 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
17f20 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
17f40 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
17f60 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
17f80 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)..(
17fa0 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"...
17fc0 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
17fe0 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-
18000 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
18020 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)...
18040 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."
18060 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
18080 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
180a0 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
180c0 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)..."
180e0 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
18100 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
18120 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
18140 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
18160 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
18180 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
181a0 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.
181c0 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.
181e0 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-
18200 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)))..
18220 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
18240 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
18260 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
18280 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
182a0 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
182c0 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
182e0 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
18300 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
18320 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
18340 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.
18360 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
18380 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.(
183a0 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)).......
183c0 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
183e0 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))).....
18400 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
18420 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.....................
18440 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
18460 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..............................
18480 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
184a0 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))...........................
184c0 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-
184e0 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
18500 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.
18520 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
18540 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
18560 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.........
18580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ...............................(
185a0 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
185c0 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)))..........................
185e0 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
18600 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))...........................
18620 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
18640 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
18660 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
18680 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
186a0 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',
186c0 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
186e0 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
18700 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)).....................
18720 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
18740 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
18760 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)...
18780 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
187a0 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.
187c0 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
187e0 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."
18800 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."):.")............."
18820 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
18840 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
18860 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-
18880 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
188a0 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
188c0 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
188e0 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
18900 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
18920 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
18940 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
18960 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
18980 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
189a0 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
189c0 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
189e0 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
18a00 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
18a20 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
18a40 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
18a60 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
18a80 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
18aa0 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
18ac0 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.
18ae0 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
18b00 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])
18b20 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
18b40 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.
18b60 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*.((
18b80 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
18ba0 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
18bc0 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.
18be0 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
18c00 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:.
18c20 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
18c40 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)))
18c60 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
18c80 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.
18ca0 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
18cc0 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...
18ce0 20 20 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
18d00 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
18d20 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)))..................
18d40 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)......
18d60 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
18d80 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).(
18da0 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)))................
18dc0 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
18de0 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......
18e00 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
18e20 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
18e40 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
18e60 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
18e80 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
18ea0 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
18ec0 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)))...
18ee0 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
18f00 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
18f20 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
18f40 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").....................(
18f60 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.(
18f80 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)))))).
18fa0 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
18fc0 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
18fe0 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-
19000 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
19020 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
19040 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
19060 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.
19080 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)...(
190a0 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
190c0 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
190e0 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.....
19100 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
19120 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
19140 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)
19160 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
19180 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
191a0 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)....
191c0 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
191e0 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
19200 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)))..................
19220 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................
19240 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.....................
19260 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
19280 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
192a0 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)....
192c0 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]"
192e0 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................
19300 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........
19320 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
19340 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.....................
19360 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
19380 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."\\]")..................
193a0 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)................
193c0 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
193e0 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
19400 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
19420 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
19440 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
19460 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
19480 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.
194a0 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.
194c0 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
194e0 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
19500 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-
19520 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
19540 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
19560 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
19580 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
195a0 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))
195c0 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
195e0 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.
19600 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
19620 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
19640 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
19660 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......
19680 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).........
196a0 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)...........
196c0 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
196e0 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
19700 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
19720 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))......
19740 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))..
19760 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
19780 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).
197a0 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
197c0 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."..;.
197e0 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
19800 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
19820 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
19840 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
19860 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.
19880 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
198a0 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
198c0 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
198e0 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
19900 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
19920 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
19940 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
19960 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
19980 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
199a0 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
199c0 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
199e0 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
19a00 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)
19a20 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).....
19a40 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
19a60 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
19a80 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
19aa0 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
19ac0 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)
19ae0 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)......
19b00 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)
19b20 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 6e 61 6d 65 2d 61 63 63 6f 75 6e )))..(defun.ledger-rename-accoun
19b40 74 20 28 6f 6c 64 20 6e 65 77 20 26 6f 70 74 69 6f 6e 61 6c 20 74 6f 70 6c 65 76 65 6c 2d 6f 6e t.(old.new.&optional.toplevel-on
19b60 6c 79 29 0a 20 20 22 52 65 6e 61 6d 65 20 61 63 63 6f 75 6e 74 20 77 69 74 68 20 6e 61 6d 65 20 ly)..."Rename.account.with.name.
19b80 4f 4c 44 20 74 6f 20 6e 61 6d 65 20 4e 45 57 2e 0a 0a 41 66 66 65 63 74 73 20 61 63 63 6f 75 6e OLD.to.name.NEW...Affects.accoun
19ba0 74 20 6e 61 6d 65 73 20 6d 65 6e 74 69 6f 6e 65 64 20 69 6e 20 70 6f 73 74 69 6e 67 73 20 61 73 t.names.mentioned.in.postings.as
19bc0 20 77 65 6c 6c 20 61 73 20 64 65 63 6c 61 72 65 64 0a 77 69 74 68 20 74 68 65 20 5c 22 61 63 63 .well.as.declared.with.the.\"acc
19be0 6f 75 6e 74 5c 22 20 64 69 72 65 63 74 69 76 65 2e 0a 0a 42 79 20 64 65 66 61 75 6c 74 2c 20 63 ount\".directive...By.default,.c
19c00 68 69 6c 64 20 61 63 63 6f 75 6e 74 73 20 6f 66 20 4f 4c 44 20 61 72 65 20 61 6c 73 6f 20 72 65 hild.accounts.of.OLD.are.also.re
19c20 6e 61 6d 65 64 20 74 6f 0a 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 63 68 69 6c 64 20 61 63 63 named.to.corresponding.child.acc
19c40 6f 75 6e 74 73 20 6f 66 20 4e 45 57 2e 20 20 57 69 74 68 20 5c 5c 5b 75 6e 69 76 65 72 73 61 6c ounts.of.NEW...With.\\[universal
19c60 2d 61 72 67 75 6d 65 6e 74 5d 0a 70 72 65 66 69 78 2c 20 63 68 69 6c 64 20 61 63 63 6f 75 6e 74 -argument].prefix,.child.account
19c80 73 20 61 72 65 20 6e 6f 74 20 72 65 6e 61 6d 65 64 2e 20 20 57 68 65 6e 20 63 61 6c 6c 65 64 20 s.are.not.renamed...When.called.
19ca0 66 72 6f 6d 20 4c 69 73 70 2c 0a 54 4f 50 4c 45 56 45 4c 2d 4f 4e 4c 59 20 68 61 73 20 74 68 65 from.Lisp,.TOPLEVEL-ONLY.has.the
19cc0 20 73 61 6d 65 20 6d 65 61 6e 69 6e 67 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 20 22 .same.meaning."...(interactive."
19ce0 73 4f 6c 64 20 6e 61 6d 65 3a 20 5c 6e 73 4e 65 77 20 6e 61 6d 65 3a 20 5c 6e 50 22 29 0a 20 20 sOld.name:.\nsNew.name:.\nP")...
19d00 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.(
19d20 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 2d 73 65 61 72 63 point-min)).....(while.(re-searc
19d40 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 6e 61 6d 65 2d 6f 72 h-forward.ledger-account-name-or
19d60 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 20 28 6c -directive-regex.nil.t).......(l
19d80 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 20 31 29 29 29 0a et.((account.(match-string.1))).
19da0 20 20 20 20 20 20 20 20 28 63 6f 6e 64 0a 20 20 20 20 20 20 20 20 20 28 28 73 74 72 69 6e 67 2d ........(cond..........((string-
19dc0 65 71 75 61 6c 20 61 63 63 6f 75 6e 74 20 6f 6c 64 29 0a 20 20 20 20 20 20 20 20 20 20 28 72 65 equal.account.old)...........(re
19de0 70 6c 61 63 65 2d 6d 61 74 63 68 20 6e 65 77 20 27 66 69 78 65 64 63 61 73 65 20 27 6c 69 74 65 place-match.new.'fixedcase.'lite
19e00 72 61 6c 20 6e 69 6c 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 28 28 61 6e 64 20 28 6e 6f 74 20 ral.nil.1))..........((and.(not.
19e20 74 6f 70 6c 65 76 65 6c 2d 6f 6e 6c 79 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 toplevel-only)................(s
19e40 74 72 69 6e 67 2d 70 72 65 66 69 78 2d 70 20 28 63 6f 6e 63 61 74 20 6f 6c 64 20 22 3a 22 29 20 tring-prefix-p.(concat.old.":").
19e60 61 63 63 6f 75 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 72 65 70 6c 61 63 65 2d 6d 61 74 account))...........(replace-mat
19e80 63 68 0a 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 6e 65 77 20 28 73 75 62 73 74 ch............(concat.new.(subst
19ea0 72 69 6e 67 20 61 63 63 6f 75 6e 74 20 28 6c 65 6e 67 74 68 20 6f 6c 64 29 29 29 0a 20 20 20 20 ring.account.(length.old))).....
19ec0 20 20 20 20 20 20 20 27 66 69 78 65 64 63 61 73 65 20 27 6c 69 74 65 72 61 6c 20 6e 69 6c 20 31 .......'fixedcase.'literal.nil.1
19ee0 29 29 29 29 29 29 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 ))))))...(when.ledger-post-auto-
19f00 61 6c 69 67 6e 0a 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 align.....(ledger-post-align-pos
19f20 74 69 6e 67 73 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 tings.(point-min).(point-max))))
19f40 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 74 61 62 ..(defvar.ledger-mode-syntax-tab
19f60 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 78 2d 74 le...(let.((table.(make-syntax-t
19f80 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 29 0a 20 able.text-mode-syntax-table)))..
19fa0 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 3c 22 20 ...(modify-syntax-entry.?\;."<".
19fc0 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 72 79 20 table).....(modify-syntax-entry.
19fe0 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 53 79 6e ?\n.">".table).....table)..."Syn
1a000 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 6f 64 65 tax.table.in.use.in.`ledger-mode
1a020 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 6d 6f 64 '.buffers.")..(defvar.ledger-mod
1a040 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 73 65 2d e-map...(let.((map.(make-sparse-
1a060 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 20 28 6b keymap))).....(define-key.map.(k
1a080 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 61 6e 73 bd."C-c.C-a").#'ledger-add-trans
1a0a0 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 6b 62 64 action).....(define-key.map.(kbd
1a0c0 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 74 2d 61 ."C-c.C-b").#'ledger-post-edit-a
1a0e0 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 62 64 20 mount).....(define-key.map.(kbd.
1a100 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 72 72 65 "C-c.C-c").#'ledger-toggle-curre
1a120 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 22 43 2d nt).....(define-key.map.(kbd."C-
1a140 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 6e 74 2d c.C-d").#'ledger-delete-current-
1a160 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 6d 61 70 transaction).....(define-key.map
1a180 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 67 6c 65 .(kbd."C-c.C-e").#'ledger-toggle
1a1a0 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 66 69 6e -current-transaction).....(defin
1a1c0 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 65 64 67 e-key.map.(kbd."C-c.C-f").#'ledg
1a1e0 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 20 28 6b er-occur).....(define-key.map.(k
1a200 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 72 61 6e bd."C-c.C-k").#'ledger-copy-tran
1a220 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 2d 6b 65 saction-at-point).....(define-ke
1a240 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 72 2d 72 y.map.(kbd."C-c.C-r").#'ledger-r
1a260 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 20 28 6b econcile).....(define-key.map.(k
1a280 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 65 67 69 bd."C-c.C-s").#'ledger-sort-regi
1a2a0 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 22 43 2d on).....(define-key.map.(kbd."C-
1a2c0 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 74 69 76 c.C-t").#'ledger-insert-effectiv
1a2e0 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 6b 62 64 e-date).....(define-key.map.(kbd
1a300 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 2d 75 70 ."C-c.C-u").#'ledger-schedule-up
1a320 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 6b 62 64 coming).....(define-key.map.(kbd
1a340 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 62 61 6c ."C-c.C-p").#'ledger-display-bal
1a360 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 79 20 6d ance-at-point).....(define-key.m
1a380 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 69 73 70 ap.(kbd."C-c.C-l").#'ledger-disp
1a3a0 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 2d 6b 65 lay-ledger-stats).....(define-ke
1a3c0 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 72 2d 70 y.map.(kbd."C-c.C-q").#'ledger-p
1a3e0 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 6b 65 79 ost-align-xact)......(define-key
1a400 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 6f 73 74 .map.(kbd."C-TAB").#'ledger-post
1a420 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 6d 61 70 -align-xact).....(define-key.map
1a440 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 6c 79 2d .(kbd."C-c.TAB").#'ledger-fully-
1a460 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 79 20 6d complete-xact).....(define-key.m
1a480 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 75 6c 6c ap.(kbd."C-c.C-i").#'ledger-full
1a4a0 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 2d 6b 65 y-complete-xact)......(define-ke
1a4c0 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 65 64 67 y.map.(kbd."C-c.C-o.C-a").#'ledg
1a4e0 65 72 2d 72 65 70 6f 72 74 2d 72 65 64 6f 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 er-report-redo).....(define-key.
1a500 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 67 65 72 map.(kbd."C-c.C-o.C-e").#'ledger
1a520 2d 72 65 70 6f 72 74 2d 65 64 69 74 2d 72 65 70 6f 72 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 -report-edit-report).....(define
1a540 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 23 27 6c -key.map.(kbd."C-c.C-o.C-g").#'l
1a560 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 65 2d 6b edger-report-goto).....(define-k
1a580 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 6c 65 64 ey.map.(kbd."C-c.C-o.C-k").#'led
1a5a0 67 65 72 2d 72 65 70 6f 72 74 2d 71 75 69 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 ger-report-quit).....(define-key
1a5c0 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 64 67 65 .map.(kbd."C-c.C-o.C-r").#'ledge
1a5e0 72 2d 72 65 70 6f 72 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b r-report).....(define-key.map.(k
1a600 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 70 6f 72 bd."C-c.C-o.C-s").#'ledger-repor
1a620 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 28 6b 62 t-save)......(define-key.map.(kb
1a640 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 65 76 2d d."M-p").#'ledger-navigate-prev-
1a660 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 65 2d 6b xact-or-directive).....(define-k
1a680 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 61 76 69 ey.map.(kbd."M-n").#'ledger-navi
1a6a0 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 20 20 20 gate-next-xact-or-directive)....
1a6c0 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 23 27 6c .(define-key.map.(kbd."M-q").#'l
1a6e0 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 3b 20 52 edger-post-align-dwim)......;;.R
1a700 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 20 6f 66 eset.the.`text-mode'.override.of
1a720 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 65 66 69 .this.standard.binding.....(defi
1a740 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 70 6c 65 ne-key.map.(kbd."C-M-i").'comple
1a760 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 79 6d 61 tion-at-point).....map)..."Keyma
1a780 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 2d 6d 65 p.for.`ledger-mode'.")..(easy-me
1a7a0 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 64 67 65 nu-define.ledger-mode-menu.ledge
1a7c0 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 27 28 22 r-mode-map..."Ledger.menu"...'("
1a7e0 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 22 20 6c Ledger".....["Narrow.to.REGEX".l
1a800 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 72 61 6e edger-occur].....["Show.all.tran
1a820 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 65 64 67 sactions".ledger-occur-mode.ledg
1a840 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 74 61 74 er-occur-mode].....["Ledger.Stat
1a860 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 2d 73 74 istics".ledger-display-ledger-st
1a880 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 20 20 20 ats.ledger-works]....."---".....
1a8a0 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 20 6c 65 ["Show.upcoming.transactions".le
1a8c0 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 22 41 64 dger-schedule-upcoming].....["Ad
1a8e0 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 6c 65 64 d.Transaction.(ledger.xact)".led
1a900 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 72 6b 73 ger-add-transaction.ledger-works
1a920 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 20 6c 65 ].....["Complete.Transaction".le
1a940 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 20 5b 22 dger-fully-complete-xact].....["
1a960 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 6c 65 74 Delete.Transaction".ledger-delet
1a980 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 2d 2d 22 e-current-transaction]....."---"
1a9a0 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 2d 70 6f .....["Calc.on.Amount".ledger-po
1a9c0 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 20 5b 22 st-edit-amount]....."---".....["
1a9e0 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 2d 62 61 Check.Balance".ledger-display-ba
1aa00 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 20 20 20 lance-at-point.ledger-works]....
1aa20 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 72 65 63 .["Reconcile.Account".ledger-rec
1aa40 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 22 0a 20 oncile.ledger-works]....."---"..
1aa60 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 6f 6e 22 ...["Toggle.Current.Transaction"
1aa80 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 63 74 69 .ledger-toggle-current-transacti
1aaa0 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 69 6e 67 on].....["Toggle.Current.Posting
1aac0 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 5b 22 43 ".ledger-toggle-current].....["C
1aae0 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 70 79 2d opy.Trans.at.Point".ledger-copy-
1ab00 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 2d 22 0a transaction-at-point]....."---".
1ab20 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 2d 6d 6f ....["Clean-up.Buffer".ledger-mo
1ab40 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 42 75 66 de-clean-buffer].....["Check.Buf
1ab60 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 65 72 2d fer".ledger-check-buffer.ledger-
1ab80 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 64 67 65 works].....["Align.Region".ledge
1aba0 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 74 69 76 r-post-align-postings.mark-activ
1abc0 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 6f 73 74 e].....["Align.Xact".ledger-post
1abe0 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 6e 22 20 -align-xact].....["Sort.Region".
1ac00 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 65 5d 0a ledger-sort-region.mark-active].
1ac20 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 74 2d 62 ....["Sort.Buffer".ledger-sort-b
1ac40 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 69 6e 67 uffer].....["Mark.Sort.Beginning
1ac60 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 72 6b 5d ".ledger-sort-insert-start-mark]
1ac80 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 73 6f 72 .....["Mark.Sort.End".ledger-sor
1aca0 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 65 66 66 t-insert-end-mark].....["Set.eff
1acc0 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 66 65 63 ective.date".ledger-insert-effec
1ace0 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 73 74 6f tive-date]....."---".....["Custo
1ad00 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 28 69 6e mize.Ledger.Mode".(lambda.().(in
1ad20 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 6c 65 64 teractive).(customize-group.'led
1ad40 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 70 6f 72 ger))]....."---".....["Run.Repor
1ad60 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 5d 0a 20 t".ledger-report.ledger-works]..
1ad80 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 72 74 2d ...["Goto.Report".ledger-report-
1ada0 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 75 6e 20 goto.ledger-works].....["Re-run.
1adc0 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 64 67 65 Report".ledger-report-redo.ledge
1ade0 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 65 64 67 r-works].....["Save.Report".ledg
1ae00 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 20 20 20 er-report-save.ledger-works]....
1ae20 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 2d 65 64 .["Edit.Report".ledger-report-ed
1ae40 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 22 51 75 it-report.ledger-works].....["Qu
1ae60 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 20 6c 65 it.Report".ledger-report-quit.le
1ae80 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 0a 28 64 dger-works]))..;;;###autoload.(d
1aea0 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 65 20 74 efine-derived-mode.ledger-mode.t
1aec0 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 6f 72 20 ext-mode."Ledger"..."A.mode.for.
1aee0 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 20 28 6c editing.ledger.data.files."...(l
1af00 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 66 6f 6e edger-check-version)...(setq.fon
1af20 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 67 65 72 t-lock-defaults.........'(ledger
1af40 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 20 6e 69 -font-lock-keywords.t.nil.nil.ni
1af60 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 74 65 6e l))...(add-hook.'font-lock-exten
1af80 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 6e 74 69 d-region-functions.'ledger-fonti
1afa0 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 20 27 63 fy-extend-region)...(add-hook.'c
1afc0 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 23 27 6c ompletion-at-point-functions.#'l
1afe0 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 29 0a 20 edger-complete-at-point.nil.t)..
1b000 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 6c 65 64 .(add-hook.'after-save-hook.'led
1b020 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 64 2d 68 ger-report-redo.nil.t)....(add-h
1b040 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 72 2d 68 ook.'post-command-hook.'ledger-h
1b060 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 20 74 29 ighlight-xact-under-point.nil.t)
1b080 0a 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 62 65 66 6f 72 65 2d 72 65 76 65 72 74 2d 68 6f 6f 6b ...(add-hook.'before-revert-hook
1b0a0 20 27 6c 65 64 67 65 72 2d 68 69 67 68 6c 69 67 68 74 2d 2d 62 65 66 6f 72 65 2d 72 65 76 65 72 .'ledger-highlight--before-rever
1b0c0 74 20 6e 69 6c 20 74 29 0a 20 20 28 61 64 64 2d 68 6f 6f 6b 20 27 61 66 74 65 72 2d 72 65 76 65 t.nil.t)...(add-hook.'after-reve
1b0e0 72 74 2d 68 6f 6f 6b 20 27 6c 65 64 67 65 72 2d 68 69 67 68 6c 69 67 68 74 2d 78 61 63 74 2d 75 rt-hook.'ledger-highlight-xact-u
1b100 6e 64 65 72 2d 70 6f 69 6e 74 20 6e 69 6c 20 74 29 0a 0a 20 20 28 6c 65 64 67 65 72 2d 69 6e 69 nder-point.nil.t)....(ledger-ini
1b120 74 2d 6c 6f 61 64 2d 69 6e 69 74 2d 66 69 6c 65 29 0a 20 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 t-load-init-file)...(setq-local.
1b140 63 6f 6d 6d 65 6e 74 2d 73 74 61 72 74 20 22 3b 22 29 0a 20 20 28 73 65 74 71 2d 6c 6f 63 61 6c comment-start.";")...(setq-local
1b160 20 69 6e 64 65 6e 74 2d 6c 69 6e 65 2d 66 75 6e 63 74 69 6f 6e 20 23 27 6c 65 64 67 65 72 2d 69 .indent-line-function.#'ledger-i
1b180 6e 64 65 6e 74 2d 6c 69 6e 65 29 0a 20 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 69 6e 64 65 6e 74 ndent-line)...(setq-local.indent
1b1a0 2d 72 65 67 69 6f 6e 2d 66 75 6e 63 74 69 6f 6e 20 27 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 6c -region-function.'ledger-post-al
1b1c0 69 67 6e 2d 70 6f 73 74 69 6e 67 73 29 0a 20 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 62 65 67 69 ign-postings)...(setq-local.begi
1b1e0 6e 6e 69 6e 67 2d 6f 66 2d 64 65 66 75 6e 2d 66 75 6e 63 74 69 6f 6e 20 23 27 6c 65 64 67 65 72 nning-of-defun-function.#'ledger
1b200 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 28 -navigate-beginning-of-xact)...(
1b220 73 65 74 71 2d 6c 6f 63 61 6c 20 65 6e 64 2d 6f 66 2d 64 65 66 75 6e 2d 66 75 6e 63 74 69 6f 6e setq-local.end-of-defun-function
1b240 20 23 27 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 65 6e 64 2d 6f 66 2d 78 61 63 74 29 29 .#'ledger-navigate-end-of-xact))
1b260 0a 0a 3b 3b 3b 23 23 23 61 75 74 6f 6c 6f 61 64 0a 28 61 64 64 2d 74 6f 2d 6c 69 73 74 20 27 61 ..;;;###autoload.(add-to-list.'a
1b280 75 74 6f 2d 6d 6f 64 65 2d 61 6c 69 73 74 20 27 28 22 5c 5c 2e 6c 65 64 67 65 72 5c 5c 27 22 20 uto-mode-alist.'("\\.ledger\\'".
1b2a0 2e 20 6c 65 64 67 65 72 2d 6d 6f 64 65 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 6c 65 64 67 65 ..ledger-mode))..(provide.'ledge
1b2c0 72 2d 6d 6f 64 65 29 0a 0a 3b 3b 3b 20 6c 65 64 67 65 72 2d 6d 6f 64 65 2e 65 6c 20 65 6e 64 73 r-mode)..;;;.ledger-mode.el.ends
1b2e0 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...........................
1b300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b3a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b3c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b3e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b400 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 32 33 2e 34 34 35 2f 6c 65 64 67 65 72 2d ledger-mode-20240423.445/ledger-
1b420 72 65 70 6f 72 74 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 report.el.......................
1b440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b460 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
1b480 30 30 36 34 36 35 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 32 33 31 00 20 30 00 00 00 0064657.00000000000.016231..0...
1b4a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b4c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b4e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b500 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...................
1b520 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...................
1b540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
1b600 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.
1b620 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
1b640 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
1b660 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).
1b680 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
1b6a0 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
1b6c0 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
1b6e0 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
1b700 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.
1b720 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.
1b740 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
1b760 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;.
1b780 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
1b7a0 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..;;.;
1b7c0 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
1b7e0 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
1b800 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
1b820 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
1b840 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.
1b860 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
1b880 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
1b8a0 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
1b8c0 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
1b8e0 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
1b900 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
1b920 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
1b940 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.
1b960 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
1b980 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....;;
1b9a0 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
1b9c0 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
1b9e0 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
1ba00 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
1ba20 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
1ba40 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
1ba60 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
1ba80 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
1baa0 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
1bac0 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
1bae0 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)).
1bb00 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
1bb20 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
1bb40 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
1bb60 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
1bb80 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
1bba0 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)).
1bbc0 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..."
1bbe0 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
1bc00 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)..
1bc20 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...'(("
1bc40 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
1bc60 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
1bc80 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
1bca0 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).
1bcc0 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"."
1bce0 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.
1bd00 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
1bd20 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
1bd40 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
1bd60 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
1bd80 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
1bda0 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..
1bdc0 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
1bde0 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
1be00 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
1be20 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
1be40 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
1be60 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
1be80 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.
1bea0 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
1bec0 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
1bee0 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
1bf00 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
1bf20 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
1bf40 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
1bf60 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").
1bf80 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.:
1bfa0 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.'
1bfc0 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
1bfe0 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...'((
1c000 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
1c020 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).....
1c040 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
1c060 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".
1c080 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
1c0a0 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-
1c0c0 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)
1c0e0 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
1c100 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
1c120 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
1c140 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"..
1c160 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
1c180 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
1c1a0 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
1c1c0 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
1c1e0 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
1c200 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
1c220 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
1c240 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
1c260 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.
1c280 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
1c2a0 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
1c2c0 6e 61 74 65 64 20 28 6e 6f 20 71 75 6f 74 69 6e 67 29 2e 22 0a 20 20 3a 74 79 70 65 20 27 28 61 nated.(no.quoting)."...:type.'(a
1c2e0 6c 69 73 74 20 3a 6b 65 79 2d 74 79 70 65 20 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 list.:key-type.string...........
1c300 20 20 20 20 20 20 3a 76 61 6c 75 65 2d 74 79 70 65 20 66 75 6e 63 74 69 6f 6e 29 0a 20 20 3a 67 ......:value-type.function)...:g
1c320 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
1c340 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 61 75 74 6f 2d 72 65 66 72 65 73 68 20 74 0a 20 20 .ledger-report-auto-refresh.t...
1c360 22 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 61 75 74 6f 6d 61 74 69 63 61 6c 6c 79 20 72 65 72 75 6e "If.non-nil,.automatically.rerun
1c380 20 74 68 65 20 72 65 70 6f 72 74 20 77 68 65 6e 20 74 68 65 20 6c 65 64 67 65 72 20 62 75 66 66 .the.report.when.the.ledger.buff
1c3a0 65 72 20 69 73 20 73 61 76 65 64 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 er.is.saved."...:type.'boolean..
1c3c0 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 0a 0a 28 64 65 66 63 75 73 .:group.'ledger-report)..(defcus
1c3e0 74 6f 6d 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 61 75 74 6f 2d 72 65 66 72 65 73 68 2d 73 tom.ledger-report-auto-refresh-s
1c400 74 69 63 6b 79 2d 63 75 72 73 6f 72 20 6e 69 6c 0a 20 20 22 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 ticky-cursor.nil..."If.non-nil,.
1c420 6b 65 65 70 20 63 75 72 73 6f 72 27 73 20 72 65 6c 61 74 69 76 65 20 70 6f 73 69 74 69 6f 6e 20 keep.cursor's.relative.position.
1c440 61 66 74 65 72 20 61 75 74 6f 2d 72 65 66 72 65 73 68 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f after.auto-refresh."...:type.'bo
1c460 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 0a 0a olean...:group.'ledger-report)..
1c480 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6c 69 6e 6b 73 2d 69 (defcustom.ledger-report-links-i
1c4a0 6e 2d 72 65 67 69 73 74 65 72 20 74 0a 20 20 22 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 6c 69 6e 6b n-register.t..."If.non-nil,.link
1c4c0 20 65 6e 74 72 69 65 73 20 69 6e 20 5c 22 72 65 67 69 73 74 65 72 5c 22 20 72 65 70 6f 72 74 73 .entries.in.\"register\".reports
1c4e0 20 74 6f 20 65 6e 74 72 69 65 73 20 69 6e 20 74 68 65 20 6c 65 64 67 65 72 20 62 75 66 66 65 72 .to.entries.in.the.ledger.buffer
1c500 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 ."...:type.'boolean...:group.'le
1c520 64 67 65 72 2d 72 65 70 6f 72 74 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d dger-report)..(defcustom.ledger-
1c540 72 65 70 6f 72 74 2d 75 73 65 2d 6e 61 74 69 76 65 2d 68 69 67 68 6c 69 67 68 74 69 6e 67 20 74 report-use-native-highlighting.t
1c560 0a 20 20 22 57 68 65 6e 20 6e 6f 6e 2d 6e 69 6c 2c 20 75 73 65 20 6c 65 64 67 65 72 27 73 20 6e ..."When.non-nil,.use.ledger's.n
1c580 61 74 69 76 65 20 68 69 67 68 6c 69 67 68 74 69 6e 67 20 69 6e 20 72 65 70 6f 72 74 73 2e 22 0a ative.highlighting.in.reports.".
1c5a0 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 ..:type.'boolean...:package-vers
1c5c0 69 6f 6e 20 27 28 6c 65 64 67 65 72 2d 6d 6f 64 65 20 2e 20 22 34 2e 30 2e 30 22 29 0a 20 20 3a ion.'(ledger-mode..."4.0.0")...:
1c5e0 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 0a 0a 28 64 65 66 63 75 73 74 6f group.'ledger-report)..(defcusto
1c600 6d 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 74 69 76 65 2d 68 69 67 68 6c 69 67 68 74 m.ledger-report-native-highlight
1c620 69 6e 67 2d 61 72 67 75 6d 65 6e 74 73 20 27 28 22 2d 2d 63 6f 6c 6f 72 22 20 22 2d 2d 66 6f 72 ing-arguments.'("--color"."--for
1c640 63 65 2d 63 6f 6c 6f 72 22 29 0a 20 20 22 4c 69 73 74 20 6f 66 20 6c 65 64 67 65 72 20 61 72 67 ce-color")..."List.of.ledger.arg
1c660 73 20 6e 65 65 64 65 64 20 62 79 20 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 75 73 65 2d 6e s.needed.by.`ledger-report-use-n
1c680 61 74 69 76 65 2d 68 69 67 68 6c 69 67 68 74 69 6e 67 27 2e 0a 0a 49 66 20 79 6f 75 20 61 72 65 ative-highlighting'...If.you.are
1c6a0 20 75 73 69 6e 67 20 68 6c 65 64 67 65 72 20 69 6e 73 74 65 61 64 20 6f 66 20 6c 65 64 67 65 72 .using.hledger.instead.of.ledger
1c6c0 2c 20 79 6f 75 20 6d 69 67 68 74 20 77 61 6e 74 20 74 6f 20 73 65 74 0a 74 68 69 73 20 76 61 72 ,.you.might.want.to.set.this.var
1c6e0 69 61 62 6c 65 20 74 6f 20 60 28 5c 22 2d 2d 63 6f 6c 6f 72 3d 61 6c 77 61 79 73 5c 22 29 27 2e iable.to.`(\"--color=always\")'.
1c700 22 0a 20 20 3a 74 79 70 65 20 27 28 72 65 70 65 61 74 20 73 74 72 69 6e 67 29 0a 20 20 3a 67 72 "...:type.'(repeat.string)...:gr
1c720 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 oup.'ledger-report)..(defcustom.
1c740 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 61 75 74 6f 2d 77 69 64 74 68 20 74 0a 20 20 22 57 68 ledger-report-auto-width.t..."Wh
1c760 65 6e 20 6e 6f 6e 2d 6e 69 6c 2c 20 74 65 6c 6c 20 6c 65 64 67 65 72 20 61 62 6f 75 74 20 74 68 en.non-nil,.tell.ledger.about.th
1c780 65 20 77 69 64 74 68 20 6f 66 20 74 68 65 20 72 65 70 6f 72 74 20 77 69 6e 64 6f 77 2e 22 0a 20 e.width.of.the.report.window."..
1c7a0 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 .:type.'boolean...:package-versi
1c7c0 6f 6e 20 27 28 6c 65 64 67 65 72 2d 6d 6f 64 65 20 2e 20 22 34 2e 30 2e 30 22 29 0a 20 20 3a 67 on.'(ledger-mode..."4.0.0")...:g
1c7e0 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
1c800 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 75 73 65 2d 68 65 61 64 65 72 2d 6c 69 6e 65 20 6e .ledger-report-use-header-line.n
1c820 69 6c 0a 20 20 22 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 69 6e 64 69 63 61 74 65 20 72 65 70 6f 72 il..."If.non-nil,.indicate.repor
1c840 74 20 6e 61 6d 65 2f 63 6f 6d 6d 61 6e 64 20 69 6e 20 74 68 65 20 60 68 65 61 64 65 72 2d 6c 69 t.name/command.in.the.`header-li
1c860 6e 65 27 2e 0a 54 68 65 20 72 65 70 6f 72 74 20 6e 61 6d 65 2f 63 6f 6d 6d 61 6e 64 20 77 6f 6e ne'..The.report.name/command.won
1c880 27 74 20 62 65 20 70 72 69 6e 74 65 64 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 2e 20 20 53 65 't.be.printed.in.the.buffer...Se
1c8a0 65 0a 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6e 27 e.`ledger-report-header-line-fn'
1c8c0 20 66 6f 72 20 68 6f 77 20 74 6f 20 63 75 73 74 6f 6d 69 7a 65 20 74 68 65 0a 69 6e 66 6f 72 6d .for.how.to.customize.the.inform
1c8e0 61 74 69 6f 6e 20 72 65 70 6f 72 74 65 64 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 ation.reported."...:type.'boolea
1c900 6e 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 6c 65 64 67 65 72 2d 6d 6f n...:package-version.'(ledger-mo
1c920 64 65 20 2e 20 22 34 2e 30 2e 30 22 29 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 de..."4.0.0")...:group.'ledger-r
1c940 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
1c960 2d 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6e 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d -header-line-fn.#'ledger-report-
1c980 2d 68 65 61 64 65 72 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 22 45 76 61 6c 75 61 74 65 20 74 68 69 -header-function..."Evaluate.thi
1c9a0 73 20 66 75 6e 63 74 69 6f 6e 20 69 6e 20 74 68 65 20 60 68 65 61 64 65 72 2d 6c 69 6e 65 27 20 s.function.in.the.`header-line'.
1c9c0 6f 66 20 74 68 65 20 72 65 70 6f 72 74 20 62 75 66 66 65 72 2e 0a 60 6c 65 64 67 65 72 2d 72 65 of.the.report.buffer..`ledger-re
1c9e0 70 6f 72 74 2d 75 73 65 2d 68 65 61 64 65 72 2d 6c 69 6e 65 27 20 6d 75 73 74 20 62 65 20 6e 6f port-use-header-line'.must.be.no
1ca00 6e 2d 6e 69 6c 20 66 6f 72 20 74 68 69 73 20 74 6f 20 68 61 76 65 20 61 6e 79 20 65 66 66 65 63 n-nil.for.this.to.have.any.effec
1ca20 74 2e 22 0a 20 20 3a 74 79 70 65 20 27 66 75 6e 63 74 69 6f 6e 0a 20 20 3a 70 61 63 6b 61 67 65 t."...:type.'function...:package
1ca40 2d 76 65 72 73 69 6f 6e 20 27 28 6c 65 64 67 65 72 2d 6d 6f 64 65 20 2e 20 22 34 2e 30 2e 30 22 -version.'(ledger-mode..."4.0.0"
1ca60 29 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 0a 0a 28 64 65 66 )...:group.'ledger-report)..(def
1ca80 63 75 73 74 6f 6d 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 73 69 7a 65 2d 77 69 6e 64 custom.ledger-report-resize-wind
1caa0 6f 77 20 74 0a 20 20 22 49 66 20 6e 6f 6e 2d 6e 69 6c 2c 20 72 65 73 69 7a 65 20 74 68 65 20 72 ow.t..."If.non-nil,.resize.the.r
1cac0 65 70 6f 72 74 20 77 69 6e 64 6f 77 2e 0a 43 61 6c 6c 73 20 60 73 68 72 69 6e 6b 2d 77 69 6e 64 eport.window..Calls.`shrink-wind
1cae0 6f 77 2d 69 66 2d 6c 61 72 67 65 72 2d 74 68 61 6e 2d 62 75 66 66 65 72 27 2e 22 0a 20 20 3a 74 ow-if-larger-than-buffer'."...:t
1cb00 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 ype.'boolean...:package-version.
1cb20 27 28 6c 65 64 67 65 72 2d 6d 6f 64 65 20 2e 20 22 34 2e 30 2e 30 22 29 0a 20 20 3a 67 72 6f 75 '(ledger-mode..."4.0.0")...:grou
1cb40 70 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 0a 0a 28 64 65 66 63 75 73 74 6f 6d 20 6c 65 p.'ledger-report)..(defcustom.le
1cb60 64 67 65 72 2d 72 65 70 6f 72 74 2d 75 73 65 2d 73 74 72 69 63 74 20 6e 69 6c 0a 20 20 22 57 68 dger-report-use-strict.nil..."Wh
1cb80 65 6e 20 6e 6f 6e 2d 6e 69 6c 2c 20 60 6c 65 64 67 65 72 2d 6d 6f 64 65 27 20 77 69 6c 6c 20 75 en.non-nil,.`ledger-mode'.will.u
1cba0 73 65 20 2d 2d 73 74 72 69 63 74 20 77 68 65 6e 20 72 75 6e 6e 69 6e 67 20 72 65 70 6f 72 74 73 se.--strict.when.running.reports
1cbc0 3f 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a 20 20 3a 70 61 63 6b 61 67 65 2d 76 ?"...:type.'boolean...:package-v
1cbe0 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").
1cc00 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 0a 0a 28 64 65 66 63 75 ..:group.'ledger-report)..(defcu
1cc20 73 74 6f 6d 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 61 66 74 65 72 2d 72 65 70 6f 72 74 2d stom.ledger-report-after-report-
1cc40 68 6f 6f 6b 20 6e 69 6c 0a 20 20 22 48 6f 6f 6b 20 72 75 6e 20 61 66 74 65 72 20 60 6c 65 64 67 hook.nil..."Hook.run.after.`ledg
1cc60 65 72 2d 72 65 70 6f 72 74 27 20 68 61 73 20 63 72 65 61 74 65 64 20 74 68 65 20 62 75 66 66 65 er-report'.has.created.the.buffe
1cc80 72 20 61 6e 64 20 72 65 70 6f 72 74 2e 22 0a 20 20 3a 74 79 70 65 20 27 62 6f 6f 6c 65 61 6e 0a r.and.report."...:type.'boolean.
1cca0 20 20 3a 70 61 63 6b 61 67 65 2d 76 65 72 73 69 6f 6e 20 27 28 6c 65 64 67 65 72 2d 6d 6f 64 65 ..:package-version.'(ledger-mode
1ccc0 20 2e 20 22 34 2e 30 2e 30 22 29 0a 20 20 3a 67 72 6f 75 70 20 27 6c 65 64 67 65 72 2d 72 65 70 ..."4.0.0")...:group.'ledger-rep
1cce0 6f 72 74 29 0a 0a 28 64 65 66 76 61 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 62 75 66 66 ort)..(defvar.ledger-report-buff
1cd00 65 72 2d 6e 61 6d 65 20 22 2a 4c 65 64 67 65 72 20 52 65 70 6f 72 74 2a 22 29 0a 0a 28 64 65 66 er-name."*Ledger.Report*")..(def
1cd20 76 61 72 2d 6c 6f 63 61 6c 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 20 6e 69 6c var-local.ledger-report-name.nil
1cd40 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d ).(defvar-local.ledger-report-cm
1cd60 64 20 6e 69 6c 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6c 65 64 67 65 72 2d 72 65 70 6f d.nil).(defvar-local.ledger-repo
1cd80 72 74 2d 73 61 76 65 64 20 6e 69 6c 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6c 65 64 67 rt-saved.nil).(defvar-local.ledg
1cda0 65 72 2d 72 65 70 6f 72 74 2d 63 75 72 72 65 6e 74 2d 6d 6f 6e 74 68 20 6e 69 6c 29 0a 28 64 65 er-report-current-month.nil).(de
1cdc0 66 76 61 72 2d 6c 6f 63 61 6c 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 69 73 2d 72 65 76 65 fvar-local.ledger-report-is-reve
1cde0 72 73 65 64 20 6e 69 6c 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6c 65 64 67 65 72 2d 72 rsed.nil).(defvar-local.ledger-r
1ce00 65 70 6f 72 74 2d 63 75 72 73 6f 72 2d 6c 69 6e 65 2d 6e 75 6d 62 65 72 20 6e 69 6c 29 0a 28 64 eport-cursor-line-number.nil).(d
1ce20 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6c 65 64 67 65 72 efvar-local.ledger-report-ledger
1ce40 2d 62 75 66 20 6e 69 6c 29 0a 28 64 65 66 76 61 72 2d 6c 6f 63 61 6c 20 6c 65 64 67 65 72 2d 6d -buf.nil).(defvar-local.ledger-m
1ce60 61 73 74 65 72 2d 66 69 6c 65 20 6e 69 6c 0a 20 20 22 54 68 65 20 6d 61 73 74 65 72 20 66 69 6c aster-file.nil..."The.master.fil
1ce80 65 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 2e 0a 53 65 65 20 64 6f e.for.the.current.buffer..See.do
1cea0 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 20 60 6c 65 cumentation.for.the.function.`le
1cec0 64 67 65 72 2d 6d 61 73 74 65 72 2d 66 69 6c 65 27 22 29 0a 0a 28 64 65 66 76 61 72 20 6c 65 64 dger-master-file'")..(defvar.led
1cee0 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 2d 70 72 6f 6d 70 74 2d 68 69 73 74 6f 72 79 20 6e ger-report-name-prompt-history.n
1cf00 69 6c 29 0a 28 64 65 66 76 61 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 2d 70 72 il).(defvar.ledger-report-cmd-pr
1cf20 6f 6d 70 74 2d 68 69 73 74 6f 72 79 20 6e 69 6c 29 0a 28 64 65 66 76 61 72 20 6c 65 64 67 65 72 ompt-history.nil).(defvar.ledger
1cf40 2d 6d 69 6e 69 62 75 66 66 65 72 2d 68 69 73 74 6f 72 79 20 6e 69 6c 29 0a 28 64 65 66 76 61 72 -minibuffer-history.nil).(defvar
1cf60 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6d 6f 64 65 2d 61 62 62 72 65 76 2d 74 61 62 6c 65 .ledger-report-mode-abbrev-table
1cf80 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 76 65 72 73 65 2d )..(defun.ledger-report-reverse-
1cfa0 72 65 70 6f 72 74 20 28 29 0a 20 20 22 52 65 76 65 72 73 65 20 74 68 65 20 6f 72 64 65 72 20 6f report.()..."Reverse.the.order.o
1cfc0 66 20 74 68 65 20 72 65 70 6f 72 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 f.the.report."...(interactive)..
1cfe0 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 76 65 72 73 65 2d 6c 69 6e 65 73 29 0a 20 .(ledger-report-reverse-lines)..
1d000 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 69 73 2d 72 65 76 65 72 73 65 64 .(setq.ledger-report-is-reversed
1d020 20 28 6e 6f 74 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 69 73 2d 72 65 76 65 72 73 65 64 29 .(not.ledger-report-is-reversed)
1d040 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 76 65 72 73 65 ))..(defun.ledger-report-reverse
1d060 2d 6c 69 6e 65 73 20 28 29 0a 20 20 22 52 65 76 65 72 73 65 20 74 68 65 20 6c 69 6e 65 73 20 69 -lines.()..."Reverse.the.lines.i
1d080 6e 20 74 68 65 20 6c 65 64 67 65 72 20 72 65 70 6f 72 74 20 62 75 66 66 65 72 2e 22 0a 20 20 28 n.the.ledger.report.buffer."...(
1d0a0 77 69 74 68 2d 73 69 6c 65 6e 74 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 0a 20 20 20 20 28 67 with-silent-modifications.....(g
1d0c0 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 oto-char.(point-min)).....(unles
1d0e0 73 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 75 73 65 2d 68 65 61 64 65 72 2d 6c 69 6e 65 0a s.ledger-report-use-header-line.
1d100 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 70 61 72 61 67 72 61 70 68 29 0a 20 20 20 20 20 20 ......(forward-paragraph).......
1d120 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 29 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 (forward-line)).....(save-excurs
1d140 69 6f 6e 0a 20 20 20 20 20 20 28 72 65 76 65 72 73 65 2d 72 65 67 69 6f 6e 20 28 70 6f 69 6e 74 ion.......(reverse-region.(point
1d160 29 20 28 70 6f 69 6e 74 2d 6d 61 78 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 ).(point-max)))))..(defun.ledger
1d180 2d 72 65 70 6f 72 74 2d 6d 61 79 62 65 2d 73 68 72 69 6e 6b 2d 77 69 6e 64 6f 77 20 28 29 0a 20 -report-maybe-shrink-window.()..
1d1a0 20 22 53 68 72 69 6e 6b 20 77 69 6e 64 6f 77 20 69 66 20 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 ."Shrink.window.if.`ledger-repor
1d1c0 74 2d 72 65 73 69 7a 65 2d 77 69 6e 64 6f 77 27 20 69 73 20 6e 6f 6e 2d 6e 69 6c 2e 22 0a 20 20 t-resize-window'.is.non-nil."...
1d1e0 28 77 68 65 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 73 69 7a 65 2d 77 69 6e 64 6f (when.ledger-report-resize-windo
1d200 77 0a 20 20 20 20 28 73 68 72 69 6e 6b 2d 77 69 6e 64 6f 77 2d 69 66 2d 6c 61 72 67 65 72 2d 74 w.....(shrink-window-if-larger-t
1d220 68 61 6e 2d 62 75 66 66 65 72 29 29 29 0a 0a 28 64 65 66 76 61 72 20 6c 65 64 67 65 72 2d 72 65 han-buffer)))..(defvar.ledger-re
1d240 70 6f 72 74 2d 6d 6f 64 65 2d 6d 61 70 0a 20 20 28 6c 65 74 20 28 28 6d 61 70 20 28 6d 61 6b 65 port-mode-map...(let.((map.(make
1d260 2d 73 70 61 72 73 65 2d 6b 65 79 6d 61 70 29 29 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 -sparse-keymap))).....(define-ke
1d280 79 20 6d 61 70 20 28 6b 62 64 20 22 72 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d y.map.(kbd."r").#'ledger-report-
1d2a0 72 65 64 6f 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 redo).....(define-key.map.(kbd."
1d2c0 52 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 76 65 72 73 65 2d 72 65 70 6f R").#'ledger-report-reverse-repo
1d2e0 72 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 73 22 rt).....(define-key.map.(kbd."s"
1d300 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
1d320 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 53 22 29 20 23 27 6c 65 64 67 65 72 2d 72 ine-key.map.(kbd."S").#'ledger-r
1d340 65 70 6f 72 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 eport).....(define-key.map.(kbd.
1d360 22 65 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 65 64 69 74 2d 72 65 70 6f 72 74 "e").#'ledger-report-edit-report
1d380 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 45 22 29 20 ).....(define-key.map.(kbd."E").
1d3a0 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 65 64 69 74 2d 72 65 70 6f 72 74 73 29 0a 20 20 #'ledger-report-edit-reports)...
1d3c0 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 71 22 29 20 23 27 6c 65 ..(define-key.map.(kbd."q").#'le
1d3e0 64 67 65 72 2d 72 65 70 6f 72 74 2d 71 75 69 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 dger-report-quit).....(define-ke
1d400 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 6c 20 43 2d 72 22 29 20 23 27 6c 65 64 67 y.map.(kbd."C-c.C-l.C-r").#'ledg
1d420 65 72 2d 72 65 70 6f 72 74 2d 72 65 64 6f 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 er-report-redo).....(define-key.
1d440 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 6c 20 43 2d 53 2d 73 22 29 20 23 27 6c 65 64 67 map.(kbd."C-c.C-l.C-S-s").#'ledg
1d460 65 72 2d 72 65 70 6f 72 74 2d 73 61 76 65 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 er-report-save).....(define-key.
1d480 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 6c 20 43 2d 65 22 29 20 23 27 6c 65 64 67 65 72 map.(kbd."C-c.C-l.C-e").#'ledger
1d4a0 2d 72 65 70 6f 72 74 2d 65 64 69 74 2d 72 65 70 6f 72 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 -report-edit-report).....(define
1d4c0 2d 6b 65 79 20 6d 61 70 20 28 6b 62 64 20 22 43 2d 63 20 43 2d 6f 20 43 2d 72 22 29 20 23 27 6c -key.map.(kbd."C-c.C-o.C-r").#'l
1d4e0 65 64 67 65 72 2d 72 65 70 6f 72 74 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 edger-report).....(define-key.ma
1d500 70 20 28 6b 62 64 20 22 4d 2d 70 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 70 72 p.(kbd."M-p").#'ledger-report-pr
1d520 65 76 69 6f 75 73 2d 6d 6f 6e 74 68 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 evious-month).....(define-key.ma
1d540 70 20 28 6b 62 64 20 22 4d 2d 6e 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 65 p.(kbd."M-n").#'ledger-report-ne
1d560 78 74 2d 6d 6f 6e 74 68 29 0a 20 20 20 20 28 64 65 66 69 6e 65 2d 6b 65 79 20 6d 61 70 20 28 6b xt-month).....(define-key.map.(k
1d580 62 64 20 22 24 22 29 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 74 6f 67 67 6c 65 2d 64 bd."$").#'ledger-report-toggle-d
1d5a0 65 66 61 75 6c 74 2d 63 6f 6d 6d 6f 64 69 74 79 29 0a 20 20 20 20 6d 61 70 29 0a 20 20 22 4b 65 efault-commodity).....map)..."Ke
1d5c0 79 6d 61 70 20 66 6f 72 20 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6d 6f 64 65 27 2e 22 29 ymap.for.`ledger-report-mode'.")
1d5e0 0a 0a 28 65 61 73 79 2d 6d 65 6e 75 2d 64 65 66 69 6e 65 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 ..(easy-menu-define.ledger-repor
1d600 74 2d 6d 6f 64 65 2d 6d 65 6e 75 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6d 6f 64 65 2d 6d t-mode-menu.ledger-report-mode-m
1d620 61 70 0a 20 20 22 4c 65 64 67 65 72 20 72 65 70 6f 72 74 20 6d 65 6e 75 2e 22 0a 20 20 27 28 22 ap..."Ledger.report.menu."...'("
1d640 52 65 70 6f 72 74 73 22 0a 20 20 20 20 5b 22 53 65 6c 65 63 74 20 52 65 70 6f 72 74 22 20 6c 65 Reports".....["Select.Report".le
1d660 64 67 65 72 2d 72 65 70 6f 72 74 5d 0a 20 20 20 20 5b 22 53 61 76 65 20 52 65 70 6f 72 74 22 20 dger-report].....["Save.Report".
1d680 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 73 61 76 65 5d 0a 20 20 20 20 5b 22 45 64 69 74 20 43 ledger-report-save].....["Edit.C
1d6a0 75 72 72 65 6e 74 20 52 65 70 6f 72 74 22 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 65 64 69 urrent.Report".ledger-report-edi
1d6c0 74 2d 72 65 70 6f 72 74 5d 0a 20 20 20 20 5b 22 45 64 69 74 20 41 6c 6c 20 52 65 70 6f 72 74 73 t-report].....["Edit.All.Reports
1d6e0 22 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 65 64 69 74 2d 72 65 70 6f 72 74 73 5d 0a 20 20 ".ledger-report-edit-reports]...
1d700 20 20 5b 22 52 65 2d 72 75 6e 20 52 65 70 6f 72 74 22 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 ..["Re-run.Report".ledger-report
1d720 2d 72 65 64 6f 5d 0a 20 20 20 20 22 2d 2d 2d 22 0a 20 20 20 20 5b 22 52 65 76 65 72 73 65 20 72 -redo]....."---".....["Reverse.r
1d740 65 70 6f 72 74 20 6f 72 64 65 72 22 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 76 65 72 eport.order".ledger-report-rever
1d760 73 65 2d 72 65 70 6f 72 74 5d 0a 20 20 20 20 22 2d 2d 2d 22 0a 20 20 20 20 5b 22 53 63 72 6f 6c se-report]....."---".....["Scrol
1d780 6c 20 55 70 22 20 73 63 72 6f 6c 6c 2d 75 70 5d 0a 20 20 20 20 5b 22 56 69 73 69 74 20 53 6f 75 l.Up".scroll-up].....["Visit.Sou
1d7a0 72 63 65 22 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 76 69 73 69 74 2d 73 6f 75 72 63 65 5d rce".ledger-report-visit-source]
1d7c0 0a 20 20 20 20 5b 22 53 63 72 6f 6c 6c 20 44 6f 77 6e 22 20 73 63 72 6f 6c 6c 2d 64 6f 77 6e 5d .....["Scroll.Down".scroll-down]
1d7e0 0a 20 20 20 20 22 2d 2d 2d 22 0a 20 20 20 20 5b 22 51 75 69 74 22 20 6c 65 64 67 65 72 2d 72 65 ....."---".....["Quit".ledger-re
1d800 70 6f 72 74 2d 71 75 69 74 5d 0a 20 20 20 20 29 29 0a 0a 28 64 65 66 69 6e 65 2d 64 65 72 69 76 port-quit].....))..(define-deriv
1d820 65 64 2d 6d 6f 64 65 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6d 6f 64 65 20 73 70 65 63 69 ed-mode.ledger-report-mode.speci
1d840 61 6c 2d 6d 6f 64 65 20 22 4c 65 64 67 65 72 2d 52 65 70 6f 72 74 22 0a 20 20 22 41 20 6d 6f 64 al-mode."Ledger-Report"..."A.mod
1d860 65 20 66 6f 72 20 76 69 65 77 69 6e 67 20 6c 65 64 67 65 72 20 72 65 70 6f 72 74 73 2e 22 0a 20 e.for.viewing.ledger.reports."..
1d880 20 28 73 65 74 71 2d 6c 6f 63 61 6c 20 72 65 76 65 72 74 2d 62 75 66 66 65 72 2d 66 75 6e 63 74 .(setq-local.revert-buffer-funct
1d8a0 69 6f 6e 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 64 6f 29 0a 20 20 28 68 61 63 ion.#'ledger-report-redo)...(hac
1d8c0 6b 2d 64 69 72 2d 6c 6f 63 61 6c 2d 76 61 72 69 61 62 6c 65 73 2d 6e 6f 6e 2d 66 69 6c 65 2d 62 k-dir-local-variables-non-file-b
1d8e0 75 66 66 65 72 29 29 0a 0a 28 64 65 66 63 6f 6e 73 74 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 uffer))..(defconst.ledger-report
1d900 2d 2d 65 78 74 72 61 2d 61 72 67 73 2d 6d 61 72 6b 65 72 20 22 5b 5b 6c 65 64 67 65 72 2d 6d 6f --extra-args-marker."[[ledger-mo
1d920 64 65 2d 66 6c 61 67 73 5d 5d 22 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f de-flags]]")..(defun.ledger-repo
1d940 72 74 2d 62 69 6e 61 72 79 2d 66 6f 72 6d 61 74 2d 73 70 65 63 69 66 69 65 72 20 28 29 0a 20 20 rt-binary-format-specifier.()...
1d960 22 52 65 74 75 72 6e 20 74 68 65 20 70 61 74 68 20 74 6f 20 6c 65 64 67 65 72 2c 20 70 6c 75 73 "Return.the.path.to.ledger,.plus
1d980 20 61 20 6d 61 72 6b 65 72 20 66 6f 72 20 65 78 74 72 61 20 61 72 67 75 6d 65 6e 74 73 2e 22 0a .a.marker.for.extra.arguments.".
1d9a0 20 20 28 6c 69 73 74 20 28 73 68 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 20 6c 65 ..(list.(shell-quote-argument.le
1d9c0 64 67 65 72 2d 62 69 6e 61 72 79 2d 70 61 74 68 29 0a 20 20 20 20 20 20 20 20 6c 65 64 67 65 72 dger-binary-path).........ledger
1d9e0 2d 72 65 70 6f 72 74 2d 2d 65 78 74 72 61 2d 61 72 67 73 2d 6d 61 72 6b 65 72 29 29 0a 0a 28 64 -report--extra-args-marker))..(d
1da00 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 74 61 67 6e 61 6d 65 2d 66 6f 72 6d 61 efun.ledger-report-tagname-forma
1da20 74 2d 73 70 65 63 69 66 69 65 72 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 76 61 6c 69 64 t-specifier.()..."Return.a.valid
1da40 20 6d 65 74 61 2d 64 61 74 61 20 74 61 67 20 6e 61 6d 65 2e 22 0a 20 20 3b 3b 20 49 74 20 69 73 .meta-data.tag.name."...;;.It.is
1da60 20 69 6e 74 65 6e 64 65 64 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 73 68 6f 75 6c 64 20 62 65 20 61 .intended.completion.should.be.a
1da80 76 61 69 6c 61 62 6c 65 20 6f 6e 20 65 78 69 73 74 69 6e 67 20 74 61 67 0a 20 20 3b 3b 20 6e 61 vailable.on.existing.tag...;;.na
1daa0 6d 65 73 2c 20 62 75 74 20 69 74 20 72 65 6d 61 69 6e 73 20 74 6f 20 62 65 20 69 6d 70 6c 65 6d mes,.but.it.remains.to.be.implem
1dac0 65 6e 74 65 64 2e 0a 20 20 28 6c 65 64 67 65 72 2d 72 65 61 64 2d 73 74 72 69 6e 67 2d 77 69 74 ented....(ledger-read-string-wit
1dae0 68 2d 64 65 66 61 75 6c 74 20 22 54 61 67 20 4e 61 6d 65 22 20 6e 69 6c 29 29 0a 0a 28 64 65 66 h-default."Tag.Name".nil))..(def
1db00 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 74 61 67 76 61 6c 75 65 2d 66 6f 72 6d 61 74 un.ledger-report-tagvalue-format
1db20 2d 73 70 65 63 69 66 69 65 72 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 76 61 6c 69 64 20 -specifier.()..."Return.a.valid.
1db40 6d 65 74 61 2d 64 61 74 61 20 74 61 67 20 6e 61 6d 65 2e 22 0a 20 20 3b 3b 20 49 74 20 69 73 20 meta-data.tag.name."...;;.It.is.
1db60 69 6e 74 65 6e 64 65 64 20 63 6f 6d 70 6c 65 74 69 6f 6e 20 73 68 6f 75 6c 64 20 62 65 20 61 76 intended.completion.should.be.av
1db80 61 69 6c 61 62 6c 65 20 6f 6e 20 65 78 69 73 74 69 6e 67 20 74 61 67 0a 20 20 3b 3b 20 76 61 6c ailable.on.existing.tag...;;.val
1dba0 75 65 73 2c 20 62 75 74 20 69 74 20 72 65 6d 61 69 6e 73 20 74 6f 20 62 65 20 69 6d 70 6c 65 6d ues,.but.it.remains.to.be.implem
1dbc0 65 6e 74 65 64 2e 0a 20 20 28 6c 65 64 67 65 72 2d 72 65 61 64 2d 73 74 72 69 6e 67 2d 77 69 74 ented....(ledger-read-string-wit
1dbe0 68 2d 64 65 66 61 75 6c 74 20 22 54 61 67 20 56 61 6c 75 65 22 20 6e 69 6c 29 29 0a 0a 28 64 65 h-default."Tag.Value".nil))..(de
1dc00 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 61 64 2d 6e 61 6d 65 20 28 29 0a 20 fun.ledger-report-read-name.()..
1dc20 20 22 52 65 61 64 20 74 68 65 20 6e 61 6d 65 20 6f 66 20 61 20 6c 65 64 67 65 72 20 72 65 70 6f ."Read.the.name.of.a.ledger.repo
1dc40 72 74 20 74 6f 20 75 73 65 2c 20 77 69 74 68 20 63 6f 6d 70 6c 65 74 69 6f 6e 2e 0a 0a 54 68 65 rt.to.use,.with.completion...The
1dc60 20 65 6d 70 74 79 20 73 74 72 69 6e 67 20 61 6e 64 20 75 6e 6b 6e 6f 77 6e 20 6e 61 6d 65 73 20 .empty.string.and.unknown.names.
1dc80 61 72 65 20 61 6c 6c 6f 77 65 64 2e 22 0a 20 20 28 63 6f 6d 70 6c 65 74 69 6e 67 2d 72 65 61 64 are.allowed."...(completing-read
1dca0 20 22 52 65 70 6f 72 74 20 6e 61 6d 65 3a 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ."Report.name:."................
1dcc0 20 20 20 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 20 6e 69 6c 20 6e 69 6c 20 6e 69 6c 0a 20 ....ledger-reports.nil.nil.nil..
1dce0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 ..................'ledger-report
1dd00 2d 6e 61 6d 65 2d 70 72 6f 6d 70 74 2d 68 69 73 74 6f 72 79 20 6e 69 6c 29 29 0a 0a 28 64 65 66 -name-prompt-history.nil))..(def
1dd20 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 20 28 72 65 70 6f 72 74 2d 6e 61 6d 65 20 65 64 un.ledger-report.(report-name.ed
1dd40 69 74 29 0a 20 20 22 52 75 6e 20 61 20 75 73 65 72 2d 73 70 65 63 69 66 69 65 64 20 72 65 70 6f it)..."Run.a.user-specified.repo
1dd60 72 74 20 66 72 6f 6d 20 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 27 2e 0a 0a 50 72 6f 6d 70 rt.from.`ledger-reports'...Promp
1dd80 74 73 20 74 68 65 20 75 73 65 72 20 66 6f 72 20 74 68 65 20 52 45 50 4f 52 54 2d 4e 41 4d 45 20 ts.the.user.for.the.REPORT-NAME.
1dda0 6f 66 20 74 68 65 20 72 65 70 6f 72 74 20 74 6f 20 72 75 6e 20 6f 72 0a 45 44 49 54 2e 20 20 49 of.the.report.to.run.or.EDIT...I
1ddc0 66 20 6e 6f 20 6e 61 6d 65 20 69 73 20 65 6e 74 65 72 65 64 2c 20 74 68 65 20 75 73 65 72 20 77 f.no.name.is.entered,.the.user.w
1dde0 69 6c 6c 20 62 65 20 70 72 6f 6d 70 74 65 64 20 66 6f 72 20 61 0a 63 6f 6d 6d 61 6e 64 20 6c 69 ill.be.prompted.for.a.command.li
1de00 6e 65 20 74 6f 20 72 75 6e 2e 20 20 54 68 65 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 73 70 65 ne.to.run...The.command.line.spe
1de20 63 69 66 69 65 64 20 6f 72 20 61 73 73 6f 63 69 61 74 65 64 0a 77 69 74 68 20 74 68 65 20 73 65 cified.or.associated.with.the.se
1de40 6c 65 63 74 65 64 20 72 65 70 6f 72 74 20 6e 61 6d 65 20 69 73 20 72 75 6e 20 61 6e 64 20 74 68 lected.report.name.is.run.and.th
1de60 65 20 6f 75 74 70 75 74 20 69 73 20 6d 61 64 65 0a 61 76 61 69 6c 61 62 6c 65 20 69 6e 20 61 6e e.output.is.made.available.in.an
1de80 6f 74 68 65 72 20 62 75 66 66 65 72 20 66 6f 72 20 76 69 65 77 69 6e 67 2e 20 20 49 66 20 61 20 other.buffer.for.viewing...If.a.
1dea0 70 72 65 66 69 78 20 61 72 67 75 6d 65 6e 74 20 69 73 0a 67 69 76 65 6e 20 61 6e 64 20 74 68 65 prefix.argument.is.given.and.the
1dec0 20 75 73 65 72 20 73 65 6c 65 63 74 73 20 61 20 76 61 6c 69 64 20 72 65 70 6f 72 74 20 6e 61 6d .user.selects.a.valid.report.nam
1dee0 65 2c 20 74 68 65 20 75 73 65 72 20 69 73 0a 70 72 6f 6d 70 74 65 64 20 77 69 74 68 20 74 68 65 e,.the.user.is.prompted.with.the
1df00 20 63 6f 72 72 65 73 70 6f 6e 64 69 6e 67 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 66 6f 72 20 .corresponding.command.line.for.
1df20 65 64 69 74 69 6e 67 20 62 65 66 6f 72 65 0a 74 68 65 20 63 6f 6d 6d 61 6e 64 20 69 73 20 72 75 editing.before.the.command.is.ru
1df40 6e 2e 0a 0a 54 68 65 20 6f 75 74 70 75 74 20 62 75 66 66 65 72 20 77 69 6c 6c 20 62 65 20 69 6e n...The.output.buffer.will.be.in
1df60 20 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6d 6f 64 65 27 2c 20 77 68 69 63 68 20 64 65 66 .`ledger-report-mode',.which.def
1df80 69 6e 65 73 0a 63 6f 6d 6d 61 6e 64 73 20 66 6f 72 20 73 61 76 69 6e 67 20 61 20 6e 65 77 20 6e ines.commands.for.saving.a.new.n
1dfa0 61 6d 65 64 20 72 65 70 6f 72 74 20 62 61 73 65 64 20 6f 6e 20 74 68 65 20 63 6f 6d 6d 61 6e 64 amed.report.based.on.the.command
1dfc0 20 6c 69 6e 65 0a 75 73 65 64 20 74 6f 20 67 65 6e 65 72 61 74 65 20 74 68 65 20 62 75 66 66 65 .line.used.to.generate.the.buffe
1dfe0 72 2c 20 6e 61 76 69 67 61 74 69 6e 67 20 74 68 65 20 62 75 66 66 65 72 2c 20 65 74 63 2e 22 0a r,.navigating.the.buffer,.etc.".
1e000 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 0a 20 20 20 28 70 72 6f 67 6e 0a 20 20 20 20 20 28 77 ..(interactive....(progn......(w
1e020 68 65 6e 20 28 61 6e 64 20 28 62 75 66 66 65 72 2d 6d 6f 64 69 66 69 65 64 2d 70 29 0a 20 20 20 hen.(and.(buffer-modified-p)....
1e040 20 20 20 20 20 20 20 20 20 20 20 20 20 28 79 2d 6f 72 2d 6e 2d 70 20 22 42 75 66 66 65 72 20 6d .............(y-or-n-p."Buffer.m
1e060 6f 64 69 66 69 65 64 2c 20 73 61 76 65 20 69 74 3f 20 22 29 29 0a 20 20 20 20 20 20 20 28 73 61 odified,.save.it?."))........(sa
1e080 76 65 2d 62 75 66 66 65 72 29 29 0a 20 20 20 20 20 28 6c 65 74 20 28 28 72 6e 61 6d 65 20 28 6c ve-buffer))......(let.((rname.(l
1e0a0 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 61 64 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 edger-report-read-name))........
1e0c0 20 20 20 20 28 65 64 69 74 20 28 6e 6f 74 20 28 6e 75 6c 6c 20 63 75 72 72 65 6e 74 2d 70 72 65 ....(edit.(not.(null.current-pre
1e0e0 66 69 78 2d 61 72 67 29 29 29 29 0a 20 20 20 20 20 20 20 28 6c 69 73 74 20 72 6e 61 6d 65 20 65 fix-arg))))........(list.rname.e
1e100 64 69 74 29 29 29 29 0a 20 20 28 6c 65 74 2a 20 28 28 66 69 6c 65 20 28 6c 65 64 67 65 72 2d 6d dit))))...(let*.((file.(ledger-m
1e120 61 73 74 65 72 2d 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 20 28 62 75 66 20 28 66 69 6e 64 aster-file))..........(buf.(find
1e140 2d 66 69 6c 65 2d 6e 6f 73 65 6c 65 63 74 20 66 69 6c 65 29 29 29 0a 20 20 20 20 28 77 69 74 68 -file-noselect.file))).....(with
1e160 2d 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 20 20 28 70 6f 70 2d 74 6f 2d -current-buffer.........(pop-to-
1e180 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 2d 63 72 65 61 74 65 20 6c 65 64 67 65 72 buffer.(get-buffer-create.ledger
1e1a0 2d 72 65 70 6f 72 74 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 28 77 69 74 -report-buffer-name)).......(wit
1e1c0 68 2d 73 69 6c 65 6e 74 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 28 h-silent-modifications.........(
1e1e0 65 72 61 73 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 erase-buffer).........(ledger-re
1e200 70 6f 72 74 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d port-mode).........(setq.ledger-
1e220 72 65 70 6f 72 74 2d 73 61 76 65 64 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 report-saved.nil).........(setq.
1e240 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6c 65 64 67 65 72 2d 62 75 66 20 62 75 66 29 0a 20 20 ledger-report-ledger-buf.buf)...
1e260 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 20 72 ......(setq.ledger-report-name.r
1e280 65 70 6f 72 74 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 eport-name).........(setq.ledger
1e2a0 2d 72 65 70 6f 72 74 2d 69 73 2d 72 65 76 65 72 73 65 64 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 -report-is-reversed.nil)........
1e2c0 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 75 72 72 65 6e 74 2d 6d 6f 6e .(setq.ledger-report-current-mon
1e2e0 74 68 20 6e 69 6c 29 0a 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 6d 61 73 th.nil).........(setq.ledger-mas
1e300 74 65 72 2d 66 69 6c 65 20 66 69 6c 65 29 0a 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 64 ter-file.file).........(ledger-d
1e320 6f 2d 72 65 70 6f 72 74 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 20 72 65 70 6f o-report.(ledger-report-cmd.repo
1e340 72 74 2d 6e 61 6d 65 20 65 64 69 74 29 29 29 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 rt-name.edit))).......(ledger-re
1e360 70 6f 72 74 2d 6d 61 79 62 65 2d 73 68 72 69 6e 6b 2d 77 69 6e 64 6f 77 29 0a 20 20 20 20 20 20 port-maybe-shrink-window).......
1e380 28 72 75 6e 2d 68 6f 6f 6b 73 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 61 66 74 65 72 2d (run-hooks.'ledger-report-after-
1e3a0 72 65 70 6f 72 74 2d 68 6f 6f 6b 29 0a 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 28 73 75 62 report-hook).......(message.(sub
1e3c0 73 74 69 74 75 74 65 2d 63 6f 6d 6d 61 6e 64 2d 6b 65 79 73 20 28 63 6f 6e 63 61 74 20 22 5c 5c stitute-command-keys.(concat."\\
1e3e0 5b 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 71 75 69 74 5d 20 74 6f 20 71 75 69 74 3b 20 22 0a [ledger-report-quit].to.quit;.".
1e400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1e420 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 5b 6c 65 64 67 65 72 2d 72 65 70 6f 72 ................"\\[ledger-repor
1e440 74 2d 72 65 64 6f 5d 20 74 6f 20 72 65 64 6f 3b 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 t-redo].to.redo;."..............
1e460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1e480 20 20 20 22 5c 5c 5b 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 65 64 69 74 2d 72 65 70 6f 72 74 ..."\\[ledger-report-edit-report
1e4a0 5d 20 74 6f 20 65 64 69 74 3b 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ].to.edit;."....................
1e4c0 20 20 20 20 20 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 ............................."\\
1e4e0 5b 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 73 61 76 65 5d 20 74 6f 20 73 61 76 65 3b 20 22 0a [ledger-report-save].to.save;.".
1e500 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
1e520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 5c 5c 5b 73 63 72 6f 6c 6c 2d 75 70 2d 63 6f ................"\\[scroll-up-co
1e540 6d 6d 61 6e 64 5d 20 61 6e 64 20 5c 5c 5b 73 63 72 6f 6c 6c 2d 64 6f 77 6e 2d 63 6f 6d 6d 61 6e mmand].and.\\[scroll-down-comman
1e560 64 5d 20 74 6f 20 73 63 72 6f 6c 6c 22 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 d].to.scroll"))))))..(defun.ledg
1e580 65 72 2d 72 65 70 6f 72 74 2d 2d 68 65 61 64 65 72 2d 66 75 6e 63 74 69 6f 6e 20 28 29 0a 20 20 er-report--header-function.()...
1e5a0 22 43 6f 6d 70 75 74 65 20 74 68 65 20 73 74 72 69 6e 67 20 74 6f 20 62 65 20 75 73 65 64 20 61 "Compute.the.string.to.be.used.a
1e5c0 73 20 74 68 65 20 68 65 61 64 65 72 20 69 6e 20 74 68 65 20 60 6c 65 64 67 65 72 2d 72 65 70 6f s.the.header.in.the.`ledger-repo
1e5e0 72 74 27 20 62 75 66 66 65 72 2e 22 0a 20 20 28 66 6f 72 6d 61 74 20 22 4c 65 64 67 65 72 20 52 rt'.buffer."...(format."Ledger.R
1e600 65 70 6f 72 74 3a 20 25 73 20 2d 2d 20 42 75 66 66 65 72 3a 20 25 73 20 2d 2d 20 43 6f 6d 6d 61 eport:.%s.--.Buffer:.%s.--.Comma
1e620 6e 64 3a 20 25 73 22 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a 65 20 6c 65 nd:.%s"...........(propertize.le
1e640 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 20 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 dger-report-name.'face.'font-loc
1e660 6b 2d 63 6f 6e 73 74 61 6e 74 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 k-constant-face)...........(prop
1e680 65 72 74 69 7a 65 20 28 62 75 66 66 65 72 2d 6e 61 6d 65 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 ertize.(buffer-name.ledger-repor
1e6a0 74 2d 6c 65 64 67 65 72 2d 62 75 66 29 20 27 66 61 63 65 20 27 66 6f 6e 74 2d 6c 6f 63 6b 2d 73 t-ledger-buf).'face.'font-lock-s
1e6c0 74 72 69 6e 67 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 72 6f 70 65 72 74 69 7a tring-face)...........(propertiz
1e6e0 65 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 20 27 66 61 63 65 20 27 66 6f 6e 74 2d e.ledger-report-cmd.'face.'font-
1e700 6c 6f 63 6b 2d 63 6f 6d 6d 65 6e 74 2d 66 61 63 65 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 lock-comment-face)))..(defun.led
1e720 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 2d 65 78 69 73 74 73 20 28 6e 61 6d 65 29 0a 20 20 ger-report-name-exists.(name)...
1e740 22 43 68 65 63 6b 20 74 6f 20 73 65 65 20 69 66 20 74 68 65 20 67 69 76 65 6e 20 72 65 70 6f 72 "Check.to.see.if.the.given.repor
1e760 74 20 4e 41 4d 45 20 65 78 69 73 74 73 2e 0a 0a 49 66 20 65 78 69 73 74 73 2c 20 72 65 74 75 72 t.NAME.exists...If.exists,.retur
1e780 6e 73 20 74 68 65 20 6f 62 6a 65 63 74 20 6e 61 6d 69 6e 67 20 74 68 65 20 72 65 70 6f 72 74 2c ns.the.object.naming.the.report,
1e7a0 20 6f 74 68 65 72 77 69 73 65 0a 72 65 74 75 72 6e 73 20 6e 69 6c 2e 22 0a 20 20 28 75 6e 6c 65 .otherwise.returns.nil."...(unle
1e7c0 73 73 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 6e 61 6d 65 29 0a 20 20 20 20 28 63 61 ss.(string-empty-p.name).....(ca
1e7e0 72 20 28 61 73 73 6f 63 20 6e 61 6d 65 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 29 29 29 29 r.(assoc.name.ledger-reports))))
1e800 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 2d 61 64 64 20 28 6e 61 6d ..(defun.ledger-reports-add.(nam
1e820 65 20 63 6d 64 29 0a 20 20 22 41 64 64 20 61 20 6e 65 77 20 72 65 70 6f 72 74 20 4e 41 4d 45 20 e.cmd)..."Add.a.new.report.NAME.
1e840 61 6e 64 20 43 4d 44 20 74 6f 20 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 27 2e 22 0a 20 20 and.CMD.to.`ledger-reports'."...
1e860 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 20 28 63 6f 6e 73 20 28 6c 69 73 74 (setq.ledger-reports.(cons.(list
1e880 20 6e 61 6d 65 20 63 6d 64 29 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 29 29 29 0a 0a 28 64 .name.cmd).ledger-reports)))..(d
1e8a0 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 2d 63 75 73 74 6f 6d 2d 73 61 76 65 20 efun.ledger-reports-custom-save.
1e8c0 28 29 0a 20 20 22 53 61 76 65 20 74 68 65 20 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 27 20 ()..."Save.the.`ledger-reports'.
1e8e0 76 61 72 69 61 62 6c 65 20 75 73 69 6e 67 20 74 68 65 20 63 75 73 74 6f 6d 69 7a 65 20 66 72 61 variable.using.the.customize.fra
1e900 6d 65 77 6f 72 6b 2e 22 0a 20 20 28 63 75 73 74 6f 6d 69 7a 65 2d 73 61 76 65 2d 76 61 72 69 61 mework."...(customize-save-varia
1e920 62 6c 65 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 ble.'ledger-reports.ledger-repor
1e940 74 73 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 61 64 2d ts))..(defun.ledger-report-read-
1e960 63 6f 6d 6d 61 6e 64 20 28 72 65 70 6f 72 74 2d 63 6d 64 29 0a 20 20 22 52 65 61 64 20 74 68 65 command.(report-cmd)..."Read.the
1e980 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 74 6f 20 63 72 65 61 74 65 20 61 20 72 65 70 6f 72 74 .command.line.to.create.a.report
1e9a0 20 66 72 6f 6d 20 52 45 50 4f 52 54 2d 43 4d 44 2e 22 0a 20 20 28 72 65 61 64 2d 66 72 6f 6d 2d .from.REPORT-CMD."...(read-from-
1e9c0 6d 69 6e 69 62 75 66 66 65 72 20 22 52 65 70 6f 72 74 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 3a minibuffer."Report.command.line:
1e9e0 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 .".........................(if.(
1ea00 6e 75 6c 6c 20 72 65 70 6f 72 74 2d 63 6d 64 29 20 22 6c 65 64 67 65 72 20 22 20 72 65 70 6f 72 null.report-cmd)."ledger.".repor
1ea20 74 2d 63 6d 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e t-cmd).........................n
1ea40 69 6c 20 6e 69 6c 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 2d 70 72 6f 6d 70 74 il.nil.'ledger-report-cmd-prompt
1ea60 2d 68 69 73 74 6f 72 79 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 -history))..(defun.ledger-report
1ea80 2d 6c 65 64 67 65 72 2d 66 69 6c 65 2d 66 6f 72 6d 61 74 2d 73 70 65 63 69 66 69 65 72 20 28 29 -ledger-file-format-specifier.()
1eaa0 0a 20 20 22 53 75 62 73 74 69 74 75 74 65 20 74 68 65 20 66 75 6c 6c 20 70 61 74 68 20 74 6f 20 ..."Substitute.the.full.path.to.
1eac0 6d 61 73 74 65 72 20 6f 72 20 63 75 72 72 65 6e 74 20 6c 65 64 67 65 72 20 66 69 6c 65 2e 0a 0a master.or.current.ledger.file...
1eae0 54 68 65 20 6d 61 73 74 65 72 20 66 69 6c 65 20 6e 61 6d 65 20 69 73 20 64 65 74 65 72 6d 69 6e The.master.file.name.is.determin
1eb00 65 64 20 62 79 20 74 68 65 20 66 75 6e 63 74 69 6f 6e 0a 60 6c 65 64 67 65 72 2d 6d 61 73 74 65 ed.by.the.function.`ledger-maste
1eb20 72 2d 66 69 6c 65 27 2c 20 77 68 69 63 68 20 64 65 70 65 6e 64 73 20 6f 6e 20 74 68 65 20 76 61 r-file',.which.depends.on.the.va
1eb40 72 69 61 62 6c 65 20 6f 66 20 74 68 65 20 73 61 6d 65 0a 6e 61 6d 65 2e 20 20 49 66 20 69 74 20 riable.of.the.same.name...If.it.
1eb60 69 73 20 6e 6f 6e 2d 6e 69 6c 2c 20 69 74 20 69 73 20 75 73 65 64 2c 20 6f 74 68 65 72 77 69 73 is.non-nil,.it.is.used,.otherwis
1eb80 65 20 74 68 65 20 63 75 72 72 65 6e 74 0a 62 75 66 66 65 72 27 73 20 66 69 6c 65 20 69 73 20 75 e.the.current.buffer's.file.is.u
1eba0 73 65 64 2e 22 0a 20 20 28 6c 65 64 67 65 72 2d 6d 61 73 74 65 72 2d 66 69 6c 65 29 29 0a 0a 3b sed."...(ledger-master-file))..;
1ebc0 3b 20 47 65 6e 65 72 61 6c 20 68 65 6c 70 65 72 20 66 75 6e 63 74 69 6f 6e 73 0a 0a 28 64 65 66 ;.General.helper.functions..(def
1ebe0 75 6e 20 6c 65 64 67 65 72 2d 6d 61 73 74 65 72 2d 66 69 6c 65 20 28 29 0a 20 20 22 52 65 74 75 un.ledger-master-file.()..."Retu
1ec00 72 6e 20 74 68 65 20 6d 61 73 74 65 72 20 66 69 6c 65 20 66 6f 72 20 61 20 6c 65 64 67 65 72 20 rn.the.master.file.for.a.ledger.
1ec20 66 69 6c 65 2e 0a 0a 54 68 65 20 6d 61 73 74 65 72 20 66 69 6c 65 20 69 73 20 65 69 74 68 65 72 file...The.master.file.is.either
1ec40 20 74 68 65 20 66 69 6c 65 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 6c 65 64 67 65 72 .the.file.for.the.current.ledger
1ec60 20 62 75 66 66 65 72 0a 6f 72 20 74 68 65 20 66 69 6c 65 20 73 70 65 63 69 66 69 65 64 20 62 79 .buffer.or.the.file.specified.by
1ec80 20 74 68 65 20 62 75 66 66 65 72 2d 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 0a 60 6c 65 64 67 .the.buffer-local.variable.`ledg
1eca0 65 72 2d 6d 61 73 74 65 72 2d 66 69 6c 65 27 2e 20 20 54 79 70 69 63 61 6c 6c 79 20 74 68 69 73 er-master-file'...Typically.this
1ecc0 20 76 61 72 69 61 62 6c 65 20 77 6f 75 6c 64 20 62 65 20 73 65 74 20 69 6e 20 61 0a 66 69 6c 65 .variable.would.be.set.in.a.file
1ece0 20 6c 6f 63 61 6c 20 76 61 72 69 61 62 6c 65 20 63 6f 6d 6d 65 6e 74 20 62 6c 6f 63 6b 20 61 74 .local.variable.comment.block.at
1ed00 20 74 68 65 20 65 6e 64 20 6f 66 20 61 20 6c 65 64 67 65 72 20 66 69 6c 65 0a 77 68 69 63 68 20 .the.end.of.a.ledger.file.which.
1ed20 69 73 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 73 6f 6d 65 20 6f 74 68 65 72 20 66 69 6c 65 2e 22 is.included.in.some.other.file."
1ed40 0a 20 20 28 69 66 20 6c 65 64 67 65 72 2d 6d 61 73 74 65 72 2d 66 69 6c 65 0a 20 20 20 20 20 20 ...(if.ledger-master-file.......
1ed60 28 65 78 70 61 6e 64 2d 66 69 6c 65 2d 6e 61 6d 65 20 6c 65 64 67 65 72 2d 6d 61 73 74 65 72 2d (expand-file-name.ledger-master-
1ed80 66 69 6c 65 29 0a 20 20 20 20 28 62 75 66 66 65 72 2d 66 69 6c 65 2d 6e 61 6d 65 29 29 29 0a 0a file).....(buffer-file-name)))..
1eda0 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 70 61 79 65 65 2d 66 6f 72 6d 61 (defun.ledger-report-payee-forma
1edc0 74 2d 73 70 65 63 69 66 69 65 72 20 28 29 0a 20 20 22 53 75 62 73 74 69 74 75 74 65 20 61 20 70 t-specifier.()..."Substitute.a.p
1ede0 61 79 65 65 20 6e 61 6d 65 2e 0a 0a 54 68 65 20 75 73 65 72 20 69 73 20 70 72 6f 6d 70 74 65 64 ayee.name...The.user.is.prompted
1ee00 20 74 6f 20 65 6e 74 65 72 20 61 20 70 61 79 65 65 20 61 6e 64 20 74 68 61 74 20 69 73 20 73 75 .to.enter.a.payee.and.that.is.su
1ee20 62 73 74 69 74 75 74 65 64 2e 0a 49 66 20 70 6f 69 6e 74 20 69 73 20 69 6e 20 61 6e 20 78 61 63 bstituted..If.point.is.in.an.xac
1ee40 74 2c 20 74 68 65 20 70 61 79 65 65 20 66 6f 72 20 74 68 61 74 20 78 61 63 74 20 69 73 20 75 73 t,.the.payee.for.that.xact.is.us
1ee60 65 64 20 61 73 20 74 68 65 0a 64 65 66 61 75 6c 74 2e 22 0a 20 20 28 6c 65 64 67 65 72 2d 72 65 ed.as.the.default."...(ledger-re
1ee80 61 64 2d 70 61 79 65 65 2d 77 69 74 68 2d 70 72 6f 6d 70 74 20 22 50 61 79 65 65 22 29 29 0a 0a ad-payee-with-prompt."Payee"))..
1eea0 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 61 63 63 6f 75 6e 74 2d 66 6f 72 (defun.ledger-report-account-for
1eec0 6d 61 74 2d 73 70 65 63 69 66 69 65 72 20 28 29 0a 20 20 22 53 75 62 73 74 69 74 75 74 65 20 61 mat-specifier.()..."Substitute.a
1eee0 6e 20 61 63 63 6f 75 6e 74 20 6e 61 6d 65 2e 0a 0a 54 68 65 20 75 73 65 72 20 69 73 20 70 72 6f n.account.name...The.user.is.pro
1ef00 6d 70 74 65 64 20 74 6f 20 65 6e 74 65 72 20 61 6e 20 61 63 63 6f 75 6e 74 20 6e 61 6d 65 2c 20 mpted.to.enter.an.account.name,.
1ef20 77 68 69 63 68 20 63 61 6e 20 62 65 20 61 6e 79 0a 72 65 67 75 6c 61 72 20 65 78 70 72 65 73 73 which.can.be.any.regular.express
1ef40 69 6f 6e 20 69 64 65 6e 74 69 66 79 69 6e 67 20 61 6e 20 61 63 63 6f 75 6e 74 2e 20 20 49 66 20 ion.identifying.an.account...If.
1ef60 70 6f 69 6e 74 20 69 73 20 6f 6e 20 61 6e 0a 61 63 63 6f 75 6e 74 20 70 6f 73 74 69 6e 67 20 6c point.is.on.an.account.posting.l
1ef80 69 6e 65 20 66 6f 72 20 61 6e 20 78 61 63 74 2c 20 74 68 65 20 66 75 6c 6c 20 61 63 63 6f 75 6e ine.for.an.xact,.the.full.accoun
1efa0 74 20 6e 61 6d 65 20 6f 6e 20 74 68 61 74 0a 6c 69 6e 65 20 69 73 20 74 68 65 20 64 65 66 61 75 t.name.on.that.line.is.the.defau
1efc0 6c 74 2e 22 0a 20 20 28 6c 65 64 67 65 72 2d 72 65 61 64 2d 61 63 63 6f 75 6e 74 2d 77 69 74 68 lt."...(ledger-read-account-with
1efe0 2d 70 72 6f 6d 70 74 20 22 41 63 63 6f 75 6e 74 22 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 -prompt."Account"))..(defun.ledg
1f000 65 72 2d 72 65 70 6f 72 74 2d 2d 63 75 72 72 65 6e 74 2d 6d 6f 6e 74 68 20 28 29 0a 20 20 22 52 er-report--current-month.()..."R
1f020 65 74 75 72 6e 20 63 75 72 72 65 6e 74 20 6d 6f 6e 74 68 20 61 73 20 28 59 45 41 52 20 2e 20 4d eturn.current.month.as.(YEAR...M
1f040 4f 4e 54 48 2d 49 4e 44 45 58 29 2e 0a 0a 4d 4f 4e 54 48 2d 49 4e 44 45 58 20 72 61 6e 67 65 73 ONTH-INDEX)...MONTH-INDEX.ranges
1f060 20 66 72 6f 6d 20 31 20 28 4a 61 6e 75 61 72 79 29 20 74 6f 20 31 32 20 28 44 65 63 65 6d 62 65 .from.1.(January).to.12.(Decembe
1f080 72 29 20 61 6e 64 20 59 45 41 52 20 69 73 0a 61 20 6e 75 6d 62 65 72 2e 22 0a 20 20 28 6c 65 74 r).and.YEAR.is.a.number."...(let
1f0a0 2a 20 28 28 74 69 6d 65 2d 70 61 72 74 73 20 28 64 65 63 6f 64 65 2d 74 69 6d 65 29 29 0a 20 20 *.((time-parts.(decode-time))...
1f0c0 20 20 20 20 20 20 20 28 79 65 61 72 20 28 6e 74 68 20 35 20 74 69 6d 65 2d 70 61 72 74 73 29 29 .......(year.(nth.5.time-parts))
1f0e0 0a 20 20 20 20 20 20 20 20 20 28 6d 6f 6e 74 68 2d 69 6e 64 65 78 20 28 6e 74 68 20 34 20 74 69 ..........(month-index.(nth.4.ti
1f100 6d 65 2d 70 61 72 74 73 29 29 29 0a 20 20 20 20 28 63 6f 6e 73 20 79 65 61 72 20 6d 6f 6e 74 68 me-parts))).....(cons.year.month
1f120 2d 69 6e 64 65 78 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d -index)))..(defun.ledger-report-
1f140 2d 6e 6f 72 6d 61 6c 69 7a 65 2d 6d 6f 6e 74 68 20 28 6d 6f 6e 74 68 29 0a 20 20 22 52 65 74 75 -normalize-month.(month)..."Retu
1f160 72 6e 20 28 59 45 41 52 20 2e 20 4e 45 57 2d 4d 4f 4e 54 48 29 20 77 68 65 72 65 20 4e 45 57 2d rn.(YEAR...NEW-MONTH).where.NEW-
1f180 4d 4f 4e 54 48 20 69 73 20 62 65 74 77 65 65 6e 20 31 20 61 6e 64 20 31 32 2e 0a 0a 4d 4f 4e 54 MONTH.is.between.1.and.12...MONT
1f1a0 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).
1f1c0 77 68 65 72 65 20 49 4e 44 45 58 20 69 73 20 61 6e 20 69 6e 74 65 67 65 72 2e 0a 54 68 65 20 70 where.INDEX.is.an.integer..The.p
1f1e0 75 72 70 6f 73 65 20 6f 66 20 74 68 69 73 20 6d 65 74 68 6f 64 20 69 73 20 74 68 65 6e 20 74 6f urpose.of.this.method.is.then.to
1f200 20 63 6f 6e 76 65 72 74 20 61 6e 79 20 79 65 61 72 2f 6d 6f 6e 74 68 20 70 61 69 72 0a 74 6f 20 .convert.any.year/month.pair.to.
1f220 61 20 6d 65 61 6e 69 6e 67 66 75 6c 20 64 61 74 65 2c 20 65 2e 67 2e 2c 20 66 72 6f 6d 20 28 32 a.meaningful.date,.e.g.,.from.(2
1f240 30 31 38 20 2e 20 2d 32 29 20 74 6f 20 28 32 30 31 37 20 2e 20 31 30 29 2e 22 0a 20 20 28 6c 65 018...-2).to.(2017...10)."...(le
1f260 74 2a 20 28 28 6d 6f 6e 74 68 2d 69 6e 64 65 78 20 28 63 64 72 20 6d 6f 6e 74 68 29 29 0a 20 20 t*.((month-index.(cdr.month))...
1f280 20 20 20 20 20 20 20 28 79 65 61 72 2d 73 68 69 66 74 20 20 28 2f 20 28 31 2d 20 6d 6f 6e 74 68 .......(year-shift..(/.(1-.month
1f2a0 2d 69 6e 64 65 78 29 20 31 32 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 3c 3d 20 6d 6f 6e 74 -index).12))).....(when.(<=.mont
1f2c0 68 2d 69 6e 64 65 78 20 30 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 79 65 61 72 2d 73 68 69 66 h-index.0).......(setq.year-shif
1f2e0 74 20 28 31 2d 20 79 65 61 72 2d 73 68 69 66 74 29 29 29 0a 20 20 20 20 28 63 6f 6e 73 20 28 2b t.(1-.year-shift))).....(cons.(+
1f300 20 28 63 61 72 20 6d 6f 6e 74 68 29 20 79 65 61 72 2d 73 68 69 66 74 29 0a 20 20 20 20 20 20 20 .(car.month).year-shift)........
1f320 20 20 20 28 31 2b 20 28 6d 6f 64 20 28 31 2d 20 6d 6f 6e 74 68 2d 69 6e 64 65 78 29 20 31 32 29 ...(1+.(mod.(1-.month-index).12)
1f340 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 73 68 69 66 ))))..(defun.ledger-report--shif
1f360 74 2d 6d 6f 6e 74 68 20 28 6d 6f 6e 74 68 20 73 68 69 66 74 29 0a 20 20 22 52 65 74 75 72 6e 20 t-month.(month.shift)..."Return.
1f380 28 59 45 41 52 20 2e 20 4e 45 57 2d 4d 4f 4e 54 48 29 20 77 68 65 72 65 20 4e 45 57 2d 4d 4f 4e (YEAR...NEW-MONTH).where.NEW-MON
1f3a0 54 48 20 69 73 20 4d 4f 4e 54 48 2b 53 48 49 46 54 2e 0a 0a 4d 4f 4e 54 48 20 69 73 20 6f 66 20 TH.is.MONTH+SHIFT...MONTH.is.of.
1f3c0 74 68 65 20 66 6f 72 6d 20 28 59 45 41 52 20 2e 20 49 4e 44 45 58 29 20 77 68 65 72 65 20 49 4e the.form.(YEAR...INDEX).where.IN
1f3e0 44 45 58 20 72 61 6e 67 65 73 20 66 72 6f 6d 0a 31 20 28 4a 61 6e 75 61 72 79 29 20 74 6f 20 31 DEX.ranges.from.1.(January).to.1
1f400 32 20 28 44 65 63 65 6d 62 65 72 29 20 61 6e 64 20 59 45 41 52 20 69 73 20 61 20 6e 75 6d 62 65 2.(December).and.YEAR.is.a.numbe
1f420 72 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 79 65 61 72 20 28 63 61 72 20 6d 6f 6e 74 68 29 29 0a r."...(let*.((year.(car.month)).
1f440 20 20 20 20 20 20 20 20 20 28 6e 65 77 2d 6d 6f 6e 74 68 20 28 2b 20 28 63 64 72 20 6d 6f 6e 74 .........(new-month.(+.(cdr.mont
1f460 68 29 20 73 68 69 66 74 29 29 29 0a 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d h).shift))).....(ledger-report--
1f480 6e 6f 72 6d 61 6c 69 7a 65 2d 6d 6f 6e 74 68 20 28 63 6f 6e 73 20 79 65 61 72 20 6e 65 77 2d 6d normalize-month.(cons.year.new-m
1f4a0 6f 6e 74 68 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6d onth))))..(defun.ledger-report-m
1f4c0 6f 6e 74 68 2d 66 6f 72 6d 61 74 2d 73 70 65 63 69 66 69 65 72 20 28 29 0a 20 20 22 53 75 62 73 onth-format-specifier.()..."Subs
1f4e0 74 69 74 75 74 65 20 63 75 72 72 65 6e 74 20 6d 6f 6e 74 68 2e 22 0a 20 20 28 77 69 74 68 2d 63 titute.current.month."...(with-c
1f500 75 72 72 65 6e 74 2d 62 75 66 66 65 72 20 28 6f 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d urrent-buffer.(or.ledger-report-
1f520 62 75 66 66 65 72 2d 6e 61 6d 65 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 0a 20 20 buffer-name.(current-buffer))...
1f540 20 20 28 6c 65 74 2a 20 28 28 6d 6f 6e 74 68 20 28 6f 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 ..(let*.((month.(or.ledger-repor
1f560 74 2d 63 75 72 72 65 6e 74 2d 6d 6f 6e 74 68 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d t-current-month.(ledger-report--
1f580 63 75 72 72 65 6e 74 2d 6d 6f 6e 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 79 65 61 current-month)))............(yea
1f5a0 72 20 28 63 61 72 20 6d 6f 6e 74 68 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6d 6f 6e 74 68 r.(car.month))............(month
1f5c0 2d 69 6e 64 65 78 20 28 63 64 72 20 6d 6f 6e 74 68 29 29 29 0a 20 20 20 20 20 20 28 66 6f 72 6d -index.(cdr.month))).......(form
1f5e0 61 74 20 22 25 73 2d 25 73 22 20 79 65 61 72 20 6d 6f 6e 74 68 2d 69 6e 64 65 78 29 29 29 29 0a at."%s-%s".year.month-index)))).
1f600 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 65 78 70 61 6e 64 2d 66 6f 72 .(defun.ledger-report-expand-for
1f620 6d 61 74 2d 73 70 65 63 69 66 69 65 72 73 20 28 72 65 70 6f 72 74 2d 63 6d 64 29 0a 20 20 22 45 mat-specifiers.(report-cmd)..."E
1f640 78 70 61 6e 64 20 66 6f 72 6d 61 74 20 73 70 65 63 69 66 69 65 72 73 20 69 6e 20 52 45 50 4f 52 xpand.format.specifiers.in.REPOR
1f660 54 2d 43 4d 44 2e 0a 0a 46 6f 72 6d 61 74 20 73 70 65 63 69 66 69 65 72 73 20 61 72 65 20 64 65 T-CMD...Format.specifiers.are.de
1f680 66 69 6e 65 64 20 69 6e 20 74 68 65 0a 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 66 6f 72 6d fined.in.the.`ledger-report-form
1f6a0 61 74 2d 73 70 65 63 69 66 69 65 72 73 27 20 61 6c 69 73 74 2e 20 20 54 68 65 20 66 75 6e 63 74 at-specifiers'.alist...The.funct
1f6c0 69 6f 6e 73 20 61 72 65 0a 63 61 6c 6c 65 64 20 69 6e 20 74 68 65 20 6c 65 64 67 65 72 20 62 75 ions.are.called.in.the.ledger.bu
1f6e0 66 66 65 72 20 66 6f 72 20 77 68 69 63 68 20 74 68 65 20 72 65 70 6f 72 74 20 69 73 20 62 65 69 ffer.for.which.the.report.is.bei
1f700 6e 67 20 72 75 6e 2e 22 0a 20 20 28 6c 65 74 20 28 28 6c 65 64 67 65 72 2d 62 75 66 20 6c 65 64 ng.run."...(let.((ledger-buf.led
1f720 67 65 72 2d 72 65 70 6f 72 74 2d 6c 65 64 67 65 72 2d 62 75 66 29 29 0a 20 20 20 20 28 77 69 74 ger-report-ledger-buf)).....(wit
1f740 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 h-temp-buffer.......(save-excurs
1f760 69 6f 6e 20 28 69 6e 73 65 72 74 20 72 65 70 6f 72 74 2d 63 6d 64 29 29 0a 20 20 20 20 20 20 28 ion.(insert.report-cmd)).......(
1f780 77 68 69 6c 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 22 25 28 5c 5c 28 5b while.(re-search-forward."%(\\([
1f7a0 5e 29 5d 2a 5c 5c 29 29 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 2d 6c ^)]*\\))".nil.t).........(when-l
1f7c0 65 74 20 28 28 73 70 65 63 69 66 69 65 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 31 29 29 et.((specifier.(match-string.1))
1f7e0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 66 20 28 63 64 72 20 28 61 73 73 ....................(f.(cdr.(ass
1f800 6f 63 20 73 70 65 63 69 66 69 65 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 66 6f 72 6d 61 oc.specifier.ledger-report-forma
1f820 74 2d 73 70 65 63 69 66 69 65 72 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 2a t-specifiers))))...........(let*
1f840 20 28 28 61 72 67 20 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 .((arg.(save-match-data.........
1f860 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 63 75 72 72 65 6e 74 2d 62 75 ................(with-current-bu
1f880 66 66 65 72 20 6c 65 64 67 65 72 2d 62 75 66 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ffer.ledger-buf.................
1f8a0 20 20 20 20 20 20 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 66 29 29 29 29 0a 20 20 20 20 20 20 20 ..........(funcall.f))))........
1f8c0 20 20 20 20 20 20 20 20 20 20 28 71 75 6f 74 65 64 20 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 ..........(quoted.(save-match-da
1f8e0 74 61 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 ta............................(i
1f900 66 20 28 6c 69 73 74 70 20 61 72 67 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 f.(listp.arg)...................
1f920 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 6a 6f 69 6e 20 61 72 67 20 22 20 .............(string-join.arg.".
1f940 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ")..............................
1f960 28 73 68 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 20 61 72 67 29 29 29 29 29 0a 20 (shell-quote-argument.arg)))))..
1f980 20 20 20 20 20 20 20 20 20 20 20 28 72 65 70 6c 61 63 65 2d 6d 61 74 63 68 20 71 75 6f 74 65 64 ...........(replace-match.quoted
1f9a0 20 27 66 69 78 65 64 63 61 73 65 20 27 6c 69 74 65 72 61 6c 29 29 29 29 0a 20 20 20 20 20 20 20 .'fixedcase.'literal))))........
1f9c0 28 62 75 66 66 65 72 2d 73 74 72 69 6e 67 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 (buffer-string))))..(defun.ledge
1f9e0 72 2d 72 65 70 6f 72 74 2d 2d 63 6d 64 2d 6e 65 65 64 73 2d 6c 69 6e 6b 73 2d 70 20 28 63 6d 64 r-report--cmd-needs-links-p.(cmd
1fa00 29 0a 20 20 22 43 68 65 63 6b 20 6c 69 6e 6b 73 20 73 68 6f 75 6c 64 20 62 65 20 61 64 64 65 64 )..."Check.links.should.be.added
1fa20 20 74 6f 20 74 68 65 20 72 65 70 6f 72 74 20 70 72 6f 64 75 63 65 64 20 62 79 20 43 4d 44 2e 22 .to.the.report.produced.by.CMD."
1fa40 0a 20 20 3b 3b 20 2d 2d 73 75 62 74 6f 74 61 6c 20 72 65 70 6f 72 74 73 20 64 6f 20 6e 6f 74 20 ...;;.--subtotal.reports.do.not.
1fa60 70 72 6f 64 75 63 65 20 69 64 65 6e 74 69 66 69 61 62 6c 65 20 74 72 61 6e 73 61 63 74 69 6f 6e produce.identifiable.transaction
1fa80 73 2c 20 73 6f 0a 20 20 3b 3b 20 64 6f 6e 27 74 20 70 72 65 70 65 6e 64 20 6c 6f 63 61 74 69 6f s,.so...;;.don't.prepend.locatio
1faa0 6e 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 66 6f 72 20 74 68 65 6d 0a 20 20 28 61 6e 64 20 28 73 n.information.for.them...(and.(s
1fac0 74 72 69 6e 67 2d 6d 61 74 63 68 20 22 5c 5c 3c 72 65 67 5c 5c 28 69 73 74 65 72 5c 5c 29 3f 5c tring-match."\\<reg\\(ister\\)?\
1fae0 5c 3e 22 20 63 6d 64 29 0a 20 20 20 20 20 20 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6c 69 \>".cmd)........ledger-report-li
1fb00 6e 6b 73 2d 69 6e 2d 72 65 67 69 73 74 65 72 0a 20 20 20 20 20 20 20 28 6e 6f 74 20 28 73 74 72 nks-in-register........(not.(str
1fb20 69 6e 67 2d 6d 61 74 63 68 20 22 2d 2d 73 75 62 74 6f 74 61 6c 22 20 63 6d 64 29 29 29 29 0a 0a ing-match."--subtotal".cmd))))..
1fb40 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 63 6f 6d 70 75 74 65 2d 65 78 (defun.ledger-report--compute-ex
1fb60 74 72 61 2d 61 72 67 73 20 28 72 65 70 6f 72 74 2d 63 6d 64 29 0a 20 20 22 43 6f 6d 70 75 74 65 tra-args.(report-cmd)..."Compute
1fb80 20 65 78 74 72 61 20 61 72 67 73 20 74 6f 20 61 64 64 20 74 6f 20 52 45 50 4f 52 54 2d 43 4d 44 .extra.args.to.add.to.REPORT-CMD
1fba0 2e 22 0a 20 20 60 28 2c 40 28 77 68 65 6e 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 63 ."...`(,@(when.(ledger-report--c
1fbc0 6d 64 2d 6e 65 65 64 73 2d 6c 69 6e 6b 73 2d 70 20 72 65 70 6f 72 74 2d 63 6d 64 29 0a 20 20 20 md-needs-links-p.report-cmd)....
1fbe0 20 20 20 20 20 27 28 22 2d 2d 70 72 65 70 65 6e 64 2d 66 6f 72 6d 61 74 3d 25 28 66 69 6c 65 6e .....'("--prepend-format=%(filen
1fc00 61 6d 65 29 3a 25 28 62 65 67 5f 6c 69 6e 65 29 3a 22 29 29 0a 20 20 20 20 2c 40 28 77 68 65 6e ame):%(beg_line):")).....,@(when
1fc20 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 61 75 74 6f 2d 77 69 64 74 68 0a 20 20 20 20 20 20 .ledger-report-auto-width.......
1fc40 20 20 60 28 22 2d 2d 63 6f 6c 75 6d 6e 73 22 20 2c 28 66 6f 72 6d 61 74 20 22 25 64 22 20 28 77 ..`("--columns".,(format."%d".(w
1fc60 69 6e 64 6f 77 2d 6d 61 78 2d 63 68 61 72 73 2d 70 65 72 2d 6c 69 6e 65 29 29 29 29 0a 20 20 20 indow-max-chars-per-line))))....
1fc80 20 2c 40 28 77 68 65 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 75 73 65 2d 6e 61 74 69 76 .,@(when.ledger-report-use-nativ
1fca0 65 2d 68 69 67 68 6c 69 67 68 74 69 6e 67 0a 20 20 20 20 20 20 20 20 6c 65 64 67 65 72 2d 72 65 e-highlighting.........ledger-re
1fcc0 70 6f 72 74 2d 6e 61 74 69 76 65 2d 68 69 67 68 6c 69 67 68 74 69 6e 67 2d 61 72 67 75 6d 65 6e port-native-highlighting-argumen
1fce0 74 73 29 0a 20 20 20 20 2c 40 28 77 68 65 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 75 73 ts).....,@(when.ledger-report-us
1fd00 65 2d 73 74 72 69 63 74 0a 20 20 20 20 20 20 20 20 27 28 22 2d 2d 73 74 72 69 63 74 22 29 29 29 e-strict.........'("--strict")))
1fd20 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 20 28 72 65 70 )..(defun.ledger-report-cmd.(rep
1fd40 6f 72 74 2d 6e 61 6d 65 20 65 64 69 74 29 0a 20 20 22 47 65 74 20 74 68 65 20 63 6f 6d 6d 61 6e ort-name.edit)..."Get.the.comman
1fd60 64 20 6c 69 6e 65 20 74 6f 20 72 75 6e 20 74 68 65 20 72 65 70 6f 72 74 20 6e 61 6d 65 20 52 45 d.line.to.run.the.report.name.RE
1fd80 50 4f 52 54 2d 4e 41 4d 45 2e 0a 4f 70 74 69 6f 6e 61 6c 6c 79 20 45 44 49 54 20 74 68 65 20 63 PORT-NAME..Optionally.EDIT.the.c
1fda0 6f 6d 6d 61 6e 64 2e 22 0a 20 20 28 6c 65 74 20 28 28 72 65 70 6f 72 74 2d 63 6d 64 20 28 63 61 ommand."...(let.((report-cmd.(ca
1fdc0 72 20 28 63 64 72 20 28 61 73 73 6f 63 20 72 65 70 6f 72 74 2d 6e 61 6d 65 20 6c 65 64 67 65 72 r.(cdr.(assoc.report-name.ledger
1fde0 2d 72 65 70 6f 72 74 73 29 29 29 29 29 0a 20 20 20 20 3b 3b 20 6c 6f 67 69 63 20 66 6f 72 20 73 -reports))))).....;;.logic.for.s
1fe00 75 62 73 74 69 74 75 74 69 6f 6e 20 67 6f 65 73 20 68 65 72 65 0a 20 20 20 20 28 77 68 65 6e 20 ubstitution.goes.here.....(when.
1fe20 28 6f 72 20 28 6e 75 6c 6c 20 72 65 70 6f 72 74 2d 63 6d 64 29 20 65 64 69 74 29 0a 20 20 20 20 (or.(null.report-cmd).edit).....
1fe40 20 20 28 73 65 74 71 20 72 65 70 6f 72 74 2d 63 6d 64 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 ..(setq.report-cmd.(ledger-repor
1fe60 74 2d 72 65 61 64 2d 63 6f 6d 6d 61 6e 64 20 72 65 70 6f 72 74 2d 63 6d 64 29 29 0a 20 20 20 20 t-read-command.report-cmd)).....
1fe80 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 73 61 76 65 64 20 6e 69 6c 29 ..(setq.ledger-report-saved.nil)
1fea0 29 20 3b 3b 20 74 68 69 73 20 69 73 20 61 20 6e 65 77 20 72 65 70 6f 72 74 2c 20 6f 72 20 65 64 ).;;.this.is.a.new.report,.or.ed
1fec0 69 74 65 64 20 72 65 70 6f 72 74 0a 20 20 20 20 28 73 65 74 71 20 72 65 70 6f 72 74 2d 63 6d 64 ited.report.....(setq.report-cmd
1fee0 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 65 78 70 61 6e 64 2d 66 6f 72 6d 61 74 2d 73 70 .(ledger-report-expand-format-sp
1ff00 65 63 69 66 69 65 72 73 20 72 65 70 6f 72 74 2d 63 6d 64 29 29 0a 20 20 20 20 28 73 65 74 71 20 ecifiers.report-cmd)).....(setq.
1ff20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 20 72 65 70 6f 72 74 2d 63 6d 64 29 0a 20 20 ledger-report-cmd.report-cmd)...
1ff40 20 20 28 6f 72 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 72 65 70 6f 72 74 2d 6e 61 6d ..(or.(string-empty-p.report-nam
1ff60 65 29 0a 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 2d 65 e).........(ledger-report-name-e
1ff80 78 69 73 74 73 20 72 65 70 6f 72 74 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 28 70 72 6f 67 xists.report-name).........(prog
1ffa0 6e 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 2d 61 64 64 20 n...........(ledger-reports-add.
1ffc0 72 65 70 6f 72 74 2d 6e 61 6d 65 20 72 65 70 6f 72 74 2d 63 6d 64 29 0a 20 20 20 20 20 20 20 20 report-name.report-cmd).........
1ffe0 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 73 2d 63 75 73 74 6f 6d 2d 73 61 76 65 29 29 29 ..(ledger-reports-custom-save)))
20000 0a 20 20 20 20 72 65 70 6f 72 74 2d 63 6d 64 29 29 0a 0a 28 64 65 66 69 6e 65 2d 62 75 74 74 6f .....report-cmd))..(define-butto
20020 6e 2d 74 79 70 65 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 67 69 73 74 65 72 2d 65 n-type.'ledger-report-register-e
20040 6e 74 72 79 0a 20 20 27 66 6f 6c 6c 6f 77 2d 6c 69 6e 6b 20 74 0a 20 20 27 66 61 63 65 20 6e 69 ntry...'follow-link.t...'face.ni
20060 6c 20 3b 3b 20 4f 74 68 65 72 77 69 73 65 20 6d 61 6b 65 2d 74 65 78 74 2d 62 75 74 74 6f 6e 20 l.;;.Otherwise.make-text-button.
20080 72 65 70 6c 61 63 65 73 20 4c 65 64 67 65 72 27 73 20 6e 61 74 69 76 65 20 68 69 67 68 6c 69 67 replaces.Ledger's.native.highlig
200a0 68 74 69 6e 67 0a 20 20 27 61 63 74 69 6f 6e 20 28 6c 61 6d 62 64 61 20 28 5f 62 75 74 74 6f 6e hting...'action.(lambda.(_button
200c0 29 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 76 69 73 69 74 2d 73 6f 75 72 63 65 29 29 29 ).(ledger-report-visit-source)))
200e0 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 63 68 61 6e 67 65 2d 6d ..(defun.ledger-report--change-m
20100 6f 6e 74 68 20 28 73 68 69 66 74 29 0a 20 20 22 52 65 62 75 69 6c 64 20 72 65 70 6f 72 74 20 77 onth.(shift)..."Rebuild.report.w
20120 69 74 68 20 74 72 61 6e 73 61 63 74 69 6f 6e 73 20 66 72 6f 6d 20 63 75 72 72 65 6e 74 20 6d 6f ith.transactions.from.current.mo
20140 6e 74 68 20 2b 20 53 48 49 46 54 2e 22 0a 20 20 28 6c 65 74 2a 20 28 28 63 75 72 72 65 6e 74 2d nth.+.SHIFT."...(let*.((current-
20160 6d 6f 6e 74 68 20 28 6f 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 75 72 72 65 6e 74 2d month.(or.ledger-report-current-
20180 6d 6f 6e 74 68 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 63 75 72 72 65 6e 74 2d 6d 6f month.(ledger-report--current-mo
201a0 6e 74 68 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 70 72 65 76 69 6f 75 73 2d 6d 6f 6e 74 68 20 nth)))..........(previous-month.
201c0 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 73 68 69 66 74 2d 6d 6f 6e 74 68 20 63 75 72 72 (ledger-report--shift-month.curr
201e0 65 6e 74 2d 6d 6f 6e 74 68 20 73 68 69 66 74 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 6c 65 64 ent-month.shift))).....(setq.led
20200 67 65 72 2d 72 65 70 6f 72 74 2d 63 75 72 72 65 6e 74 2d 6d 6f 6e 74 68 20 70 72 65 76 69 6f 75 ger-report-current-month.previou
20220 73 2d 6d 6f 6e 74 68 29 0a 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 20 s-month).....(ledger-report-cmd.
20240 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 20 6e 69 6c 29 0a 20 20 20 20 28 6c 65 64 ledger-report-name.nil).....(led
20260 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 64 6f 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 ger-report-redo)))..(defun.ledge
20280 72 2d 72 65 70 6f 72 74 2d 2d 61 64 64 2d 6c 69 6e 6b 73 20 28 29 0a 20 20 22 52 65 70 6c 61 63 r-report--add-links.()..."Replac
202a0 65 20 66 69 6c 65 20 61 6e 64 20 6c 69 6e 65 20 61 6e 6e 6f 74 61 74 69 6f 6e 73 20 77 69 74 68 e.file.and.line.annotations.with
202c0 20 62 75 74 74 6f 6e 73 2e 22 0a 20 20 28 77 68 69 6c 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66 .buttons."...(while.(re-search-f
202e0 6f 72 77 61 72 64 20 22 5e 5c 5c 28 5c 5c 28 3f 3a 2f 5c 5c 7c 5b 61 2d 7a 41 2d 5a 5d 3a 5b 5c orward."^\\(\\(?:/\\|[a-zA-Z]:[\
20300 5c 2f 5d 5c 5c 29 5b 5e 3a 5d 2b 5c 5c 29 3f 3a 5c 5c 28 5b 30 2d 39 5d 2b 5c 5c 29 3f 3a 22 20 \/]\\)[^:]+\\)?:\\([0-9]+\\)?:".
20320 6e 69 6c 20 74 29 0a 20 20 20 20 28 6c 65 74 20 28 28 66 69 6c 65 20 28 6d 61 74 63 68 2d 73 74 nil.t).....(let.((file.(match-st
20340 72 69 6e 67 20 31 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 28 73 74 72 69 6e 67 ring.1))...........(line.(string
20360 2d 74 6f 2d 6e 75 6d 62 65 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32 29 29 29 29 0a 20 -to-number.(match-string.2))))..
20380 20 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 67 69 6f 6e 20 28 6d 61 74 63 68 2d 62 65 67 69 6e .....(delete-region.(match-begin
203a0 6e 69 6e 67 20 30 29 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 0a 20 20 20 20 20 20 28 77 68 ning.0).(match-end.0)).......(wh
203c0 65 6e 20 28 61 6e 64 20 66 69 6c 65 20 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 28 61 64 64 2d en.(and.file.line).........(add-
203e0 74 65 78 74 2d 70 72 6f 70 65 72 74 69 65 73 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d text-properties.(line-beginning-
20400 70 6f 73 69 74 69 6f 6e 29 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 0a 20 20 position).(line-end-position)...
20420 20 20 20 20 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
20440 20 27 6c 65 64 67 65 72 2d 73 6f 75 72 63 65 20 28 63 6f 6e 73 20 66 69 6c 65 20 6c 69 6e 65 29 .'ledger-source.(cons.file.line)
20460 29 29 0a 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 74 65 78 74 2d 62 75 74 74 6f 6e 0a 20 20 20 )).........(make-text-button....
20480 20 20 20 20 20 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 69 74 69 6f 6e 29 20 ......(line-beginning-position).
204a0 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 20 20 27 74 79 (line-end-position)..........'ty
204c0 70 65 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 67 69 73 74 65 72 2d 65 6e 74 72 79 pe.'ledger-report-register-entry
204e0 0a 20 20 20 20 20 20 20 20 20 27 68 65 6c 70 2d 65 63 68 6f 20 28 66 6f 72 6d 61 74 20 22 6d 6f ..........'help-echo.(format."mo
20500 75 73 65 2d 32 2c 20 52 45 54 3a 20 56 69 73 69 74 20 25 73 3a 25 64 22 20 66 69 6c 65 20 6c 69 use-2,.RET:.Visit.%s:%d".file.li
20520 6e 65 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 41 70 70 65 6e 64 69 6e 67 20 74 68 65 20 66 61 ne)).........;;.Appending.the.fa
20540 63 65 20 70 72 65 73 65 72 76 65 73 20 4c 65 64 67 65 72 27 73 20 6e 61 74 69 76 65 20 68 69 67 ce.preserves.Ledger's.native.hig
20560 68 6c 69 67 68 74 69 6e 67 0a 20 20 20 20 20 20 20 20 28 66 6f 6e 74 2d 6c 6f 63 6b 2d 61 70 70 hlighting.........(font-lock-app
20580 65 6e 64 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 79 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e end-text-property.(line-beginnin
205a0 67 2d 70 6f 73 69 74 69 6f 6e 29 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 0a g-position).(line-end-position).
205c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
205e0 20 20 20 20 20 20 20 20 27 66 61 63 65 20 27 6c 65 64 67 65 72 2d 66 6f 6e 74 2d 72 65 70 6f 72 ........'face.'ledger-font-repor
20600 74 2d 63 6c 69 63 6b 61 62 6c 65 2d 66 61 63 65 29 0a 20 20 20 20 20 20 20 20 28 65 6e 64 2d 6f t-clickable-face).........(end-o
20620 66 2d 6c 69 6e 65 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 f-line)))))..(defun.ledger-repor
20640 74 2d 2d 63 6f 6d 70 75 74 65 2d 68 65 61 64 65 72 2d 6c 69 6e 65 20 28 63 6d 64 29 0a 20 20 22 t--compute-header-line.(cmd)..."
20660 43 61 6c 6c 20 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 68 65 61 64 65 72 2d 6c 69 6e 65 2d Call.`ledger-report-header-line-
20680 66 6e 27 20 77 69 74 68 20 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 27 20 62 6f 75 fn'.with.`ledger-report-cmd'.bou
206a0 6e 64 20 74 6f 20 43 4d 44 2e 22 0a 20 20 28 6c 65 74 20 28 28 6c 65 64 67 65 72 2d 72 65 70 6f nd.to.CMD."...(let.((ledger-repo
206c0 72 74 2d 63 6d 64 20 63 6d 64 29 29 0a 20 20 20 20 28 66 75 6e 63 61 6c 6c 20 6c 65 64 67 65 72 rt-cmd.cmd)).....(funcall.ledger
206e0 2d 72 65 70 6f 72 74 2d 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6e 29 29 29 0a 0a 28 64 65 66 75 -report-header-line-fn)))..(defu
20700 6e 20 6c 65 64 67 65 72 2d 64 6f 2d 72 65 70 6f 72 74 20 28 63 6d 64 29 0a 20 20 22 52 75 6e 20 n.ledger-do-report.(cmd)..."Run.
20720 61 20 72 65 70 6f 72 74 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 43 4d 44 2e 0a 43 4d 44 20 6d a.report.command.line.CMD..CMD.m
20740 61 79 20 63 6f 6e 74 61 69 6e 20 61 20 28 73 68 65 6c 6c 2d 71 75 6f 74 65 64 29 20 76 65 72 73 ay.contain.a.(shell-quoted).vers
20760 69 6f 6e 20 6f 66 0a 60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 65 78 74 72 61 2d 61 72 67 ion.of.`ledger-report--extra-arg
20780 73 2d 6d 61 72 6b 65 72 27 2c 20 77 68 69 63 68 20 77 69 6c 6c 20 62 65 20 72 65 70 6c 61 63 65 s-marker',.which.will.be.replace
207a0 64 20 62 79 0a 61 72 67 75 6d 65 6e 74 73 20 72 65 74 75 72 6e 65 64 20 62 79 20 60 6c 65 64 67 d.by.arguments.returned.by.`ledg
207c0 65 72 2d 72 65 70 6f 72 74 2d 2d 63 6f 6d 70 75 74 65 2d 65 78 74 72 61 2d 61 72 67 73 27 2e 22 er-report--compute-extra-args'."
207e0 0a 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a 20 20 28 6c 65 ...(goto-char.(point-min))...(le
20800 74 2a 20 28 28 6d 61 72 6b 65 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 65 78 74 72 61 t*.((marker.ledger-report--extra
20820 2d 61 72 67 73 2d 6d 61 72 6b 65 72 29 0a 20 20 20 20 20 20 20 20 20 28 6d 61 72 6b 65 72 2d 72 -args-marker)..........(marker-r
20840 65 20 28 63 6f 6e 63 61 74 20 22 20 2a 22 20 28 72 65 67 65 78 70 2d 71 75 6f 74 65 20 6d 61 72 e.(concat.".*".(regexp-quote.mar
20860 6b 65 72 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 61 72 67 73 20 28 6c 65 64 67 65 72 2d 72 65 ker)))..........(args.(ledger-re
20880 70 6f 72 74 2d 2d 63 6f 6d 70 75 74 65 2d 65 78 74 72 61 2d 61 72 67 73 20 63 6d 64 29 29 0a 20 port--compute-extra-args.cmd))..
208a0 20 20 20 20 20 20 20 20 28 61 72 67 73 2d 73 74 72 20 28 63 6f 6e 63 61 74 20 22 20 22 20 28 6d ........(args-str.(concat.".".(m
208c0 61 70 63 6f 6e 63 61 74 20 23 27 73 68 65 6c 6c 2d 71 75 6f 74 65 2d 61 72 67 75 6d 65 6e 74 20 apconcat.#'shell-quote-argument.
208e0 61 72 67 73 20 22 20 22 29 29 29 0a 20 20 20 20 20 20 20 20 20 28 63 6c 65 61 6e 2d 63 6d 64 20 args.".")))..........(clean-cmd.
20900 28 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 20 6d 61 72 6b 65 72 (replace-regexp-in-string.marker
20920 2d 72 65 20 22 22 20 63 6d 64 20 74 20 74 29 29 0a 20 20 20 20 20 20 20 20 20 28 72 65 61 6c 2d -re."".cmd.t.t))..........(real-
20940 63 6d 64 20 28 72 65 70 6c 61 63 65 2d 72 65 67 65 78 70 2d 69 6e 2d 73 74 72 69 6e 67 20 6d 61 cmd.(replace-regexp-in-string.ma
20960 72 6b 65 72 2d 72 65 20 61 72 67 73 2d 73 74 72 20 63 6d 64 20 74 20 74 29 29 29 0a 20 20 20 20 rker-re.args-str.cmd.t.t))).....
20980 28 73 65 74 71 20 68 65 61 64 65 72 2d 6c 69 6e 65 2d 66 6f 72 6d 61 74 0a 20 20 20 20 20 20 20 (setq.header-line-format........
209a0 20 20 20 28 61 6e 64 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 75 73 65 2d 68 65 61 64 65 72 ...(and.ledger-report-use-header
209c0 2d 6c 69 6e 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 60 28 3a 65 76 61 6c 20 28 6c 65 -line................`(:eval.(le
209e0 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 63 6f 6d 70 75 74 65 2d 68 65 61 64 65 72 2d 6c 69 6e 65 dger-report--compute-header-line
20a00 20 2c 63 6c 65 61 6e 2d 63 6d 64 29 29 29 29 0a 20 20 20 20 28 75 6e 6c 65 73 73 20 6c 65 64 67 .,clean-cmd)))).....(unless.ledg
20a20 65 72 2d 72 65 70 6f 72 74 2d 75 73 65 2d 68 65 61 64 65 72 2d 6c 69 6e 65 0a 20 20 20 20 20 20 er-report-use-header-line.......
20a40 28 69 6e 73 65 72 74 20 28 66 6f 72 6d 61 74 20 22 52 65 70 6f 72 74 3a 20 25 73 5c 6e 22 20 6c (insert.(format."Report:.%s\n".l
20a60 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 edger-report-name)..............
20a80 20 28 66 6f 72 6d 61 74 20 22 43 6f 6d 6d 61 6e 64 3a 20 25 73 5c 6e 22 20 63 6c 65 61 6e 2d 63 .(format."Command:.%s\n".clean-c
20aa0 6d 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 61 6b 65 2d 73 74 72 69 6e 67 20 28 md)...............(make-string.(
20ac0 2d 20 28 77 69 6e 64 6f 77 2d 77 69 64 74 68 29 20 31 29 20 3f 3d 29 0a 20 20 20 20 20 20 20 20 -.(window-width).1).?=).........
20ae0 20 20 20 20 20 20 22 5c 6e 5c 6e 22 29 29 0a 20 20 20 20 28 6c 65 74 2a 20 28 28 72 65 70 6f 72 ......"\n\n")).....(let*.((repor
20b00 74 20 28 73 68 65 6c 6c 2d 63 6f 6d 6d 61 6e 64 2d 74 6f 2d 73 74 72 69 6e 67 20 72 65 61 6c 2d t.(shell-command-to-string.real-
20b20 63 6d 64 29 29 29 0a 20 20 20 20 20 20 28 77 68 65 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 cmd))).......(when.ledger-report
20b40 2d 75 73 65 2d 6e 61 74 69 76 65 2d 68 69 67 68 6c 69 67 68 74 69 6e 67 0a 20 20 20 20 20 20 20 -use-native-highlighting........
20b60 20 28 73 65 74 71 20 72 65 70 6f 72 74 20 28 61 6e 73 69 2d 63 6f 6c 6f 72 2d 61 70 70 6c 79 20 .(setq.report.(ansi-color-apply.
20b80 72 65 70 6f 72 74 29 29 29 0a 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a report))).......(save-excursion.
20ba0 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 72 65 70 6f 72 74 29 29 0a 20 20 20 20 20 20 28 ........(insert.report)).......(
20bc0 77 68 65 6e 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 63 6d 64 2d 6e 65 65 64 73 2d 6c when.(ledger-report--cmd-needs-l
20be0 69 6e 6b 73 2d 70 20 63 6d 64 29 0a 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 inks-p.cmd).........(save-excurs
20c00 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 61 64 ion...........(ledger-report--ad
20c20 64 2d 6c 69 6e 6b 73 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 d-links))))))..(defun.ledger-rep
20c40 6f 72 74 2d 76 69 73 69 74 2d 73 6f 75 72 63 65 20 28 29 0a 20 20 22 56 69 73 69 74 20 74 68 65 ort-visit-source.()..."Visit.the
20c60 20 74 72 61 6e 73 61 63 74 69 6f 6e 20 75 6e 64 65 72 20 70 6f 69 6e 74 20 69 6e 20 74 68 65 20 .transaction.under.point.in.the.
20c80 72 65 70 6f 72 74 20 77 69 6e 64 6f 77 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a report.window."...(interactive).
20ca0 20 20 28 6c 65 74 2a 20 28 28 70 72 6f 70 20 28 67 65 74 2d 74 65 78 74 2d 70 72 6f 70 65 72 74 ..(let*.((prop.(get-text-propert
20cc0 79 20 28 70 6f 69 6e 74 29 20 27 6c 65 64 67 65 72 2d 73 6f 75 72 63 65 29 29 0a 20 20 20 20 20 y.(point).'ledger-source))......
20ce0 20 20 20 20 28 66 69 6c 65 20 28 63 61 72 20 70 72 6f 70 29 29 0a 20 20 20 20 20 20 20 20 20 28 ....(file.(car.prop))..........(
20d00 6c 69 6e 65 20 28 63 64 72 20 70 72 6f 70 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 61 6e 64 line.(cdr.prop))).....(when.(and
20d20 20 66 69 6c 65 20 6c 69 6e 65 29 0a 20 20 20 20 20 20 28 66 69 6e 64 2d 66 69 6c 65 2d 6f 74 68 .file.line).......(find-file-oth
20d40 65 72 2d 77 69 6e 64 6f 77 20 66 69 6c 65 29 0a 20 20 20 20 20 20 28 77 69 64 65 6e 29 0a 20 20 er-window.file).......(widen)...
20d60 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)).....
20d80 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 20 28 31 2d 20 6c 69 6e 65 29 29 0a 20 20 20 20 20 ..(forward-line.(1-.line))......
20da0 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 6f 66 2d 78 .(ledger-navigate-beginning-of-x
20dc0 61 63 74 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 67 6f act))))..(defun.ledger-report-go
20de0 74 6f 20 28 29 0a 20 20 22 47 6f 74 6f 20 74 68 65 20 6c 65 64 67 65 72 20 72 65 70 6f 72 74 20 to.()..."Goto.the.ledger.report.
20e00 62 75 66 66 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 74 20 buffer."...(interactive)...(let.
20e20 28 28 72 62 75 66 20 28 67 65 74 2d 62 75 66 66 65 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 ((rbuf.(get-buffer.ledger-report
20e40 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 28 69 66 20 28 6e 6f 74 20 72 62 75 -buffer-name))).....(if.(not.rbu
20e60 66 29 0a 20 20 20 20 20 20 20 20 28 65 72 72 6f 72 20 22 54 68 65 72 65 20 69 73 20 6e 6f 20 6c f).........(error."There.is.no.l
20e80 65 64 67 65 72 20 72 65 70 6f 72 74 20 62 75 66 66 65 72 22 29 29 0a 20 20 20 20 28 70 6f 70 2d edger.report.buffer")).....(pop-
20ea0 74 6f 2d 62 75 66 66 65 72 20 72 62 75 66 29 0a 20 20 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f to-buffer.rbuf).....(ledger-repo
20ec0 72 74 2d 6d 61 79 62 65 2d 73 68 72 69 6e 6b 2d 77 69 6e 64 6f 77 29 29 29 0a 0a 28 64 65 66 75 rt-maybe-shrink-window)))..(defu
20ee0 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 64 6f 20 28 26 6f 70 74 69 6f 6e 61 6c 20 n.ledger-report-redo.(&optional.
20f00 5f 69 67 6e 6f 72 65 2d 61 75 74 6f 20 5f 6e 6f 63 6f 6e 66 69 72 6d 29 0a 20 20 22 52 65 64 6f _ignore-auto._noconfirm)..."Redo
20f20 20 74 68 65 20 72 65 70 6f 72 74 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 6c 65 64 67 65 .the.report.in.the.current.ledge
20f40 72 20 72 65 70 6f 72 74 20 62 75 66 66 65 72 2e 0a 49 47 4e 4f 52 45 2d 41 55 54 4f 20 61 6e 64 r.report.buffer..IGNORE-AUTO.and
20f60 20 4e 4f 43 4f 4e 46 49 52 4d 20 61 72 65 20 66 6f 72 20 63 6f 6d 70 61 74 69 62 69 6c 69 74 79 .NOCONFIRM.are.for.compatibility
20f80 20 77 69 74 68 0a 60 72 65 76 65 72 74 2d 62 75 66 66 65 72 2d 66 75 6e 63 74 69 6f 6e 27 20 61 .with.`revert-buffer-function'.a
20fa0 6e 64 20 61 72 65 20 63 75 72 72 65 6e 74 6c 79 20 69 67 6e 6f 72 65 64 2e 22 0a 20 20 28 69 6e nd.are.currently.ignored."...(in
20fc0 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 6f 72 20 28 64 65 72 69 76 65 teractive)...(unless.(or.(derive
20fe0 64 2d 6d 6f 64 65 2d 70 20 27 6c 65 64 67 65 72 2d 6d 6f 64 65 29 0a 20 20 20 20 20 20 20 20 20 d-mode-p.'ledger-mode)..........
21000 20 20 20 20 20 28 64 65 72 69 76 65 64 2d 6d 6f 64 65 2d 70 20 27 6c 65 64 67 65 72 2d 72 65 70 .....(derived-mode-p.'ledger-rep
21020 6f 72 74 2d 6d 6f 64 65 29 29 0a 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 74 20 ort-mode)).....(user-error."Not.
21040 69 6e 20 61 20 6c 65 64 67 65 72 2d 6d 6f 64 65 20 6f 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 in.a.ledger-mode.or.ledger-repor
21060 74 2d 6d 6f 64 65 20 62 75 66 66 65 72 22 29 29 0a 20 20 28 6c 65 74 20 28 28 63 75 72 2d 62 75 t-mode.buffer"))...(let.((cur-bu
21080 66 20 28 63 75 72 72 65 6e 74 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 28 f.(current-buffer))).....(when.(
210a0 61 6e 64 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 61 75 74 6f 2d 72 65 66 72 65 73 68 0a 20 and.ledger-report-auto-refresh..
210c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 67 65 74 2d 62 75 66 66 65 72 20 6c 65 64 67 65 72 ..............(get-buffer.ledger
210e0 2d 72 65 70 6f 72 74 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 28 70 6f 70 -report-buffer-name)).......(pop
21100 2d 74 6f 2d 62 75 66 66 65 72 20 28 67 65 74 2d 62 75 66 66 65 72 20 6c 65 64 67 65 72 2d 72 65 -to-buffer.(get-buffer.ledger-re
21120 70 6f 72 74 2d 62 75 66 66 65 72 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 28 6c 65 64 67 65 72 port-buffer-name)).......(ledger
21140 2d 72 65 70 6f 72 74 2d 6d 61 79 62 65 2d 73 68 72 69 6e 6b 2d 77 69 6e 64 6f 77 29 0a 20 20 20 -report-maybe-shrink-window)....
21160 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 75 72 73 6f 72 2d 6c 69 ...(setq.ledger-report-cursor-li
21180 6e 65 2d 6e 75 6d 62 65 72 20 28 6c 69 6e 65 2d 6e 75 6d 62 65 72 2d 61 74 2d 70 6f 73 29 29 0a ne-number.(line-number-at-pos)).
211a0 20 20 20 20 20 20 28 77 69 74 68 2d 73 69 6c 65 6e 74 2d 6d 6f 64 69 66 69 63 61 74 69 6f 6e 73 ......(with-silent-modifications
211c0 0a 20 20 20 20 20 20 20 20 28 65 72 61 73 65 2d 62 75 66 66 65 72 29 0a 20 20 20 20 20 20 20 20 .........(erase-buffer).........
211e0 28 6c 65 64 67 65 72 2d 64 6f 2d 72 65 70 6f 72 74 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d (ledger-do-report.ledger-report-
21200 63 6d 64 29 0a 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 cmd).........(when.ledger-report
21220 2d 69 73 2d 72 65 76 65 72 73 65 64 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 -is-reversed...........(ledger-r
21240 65 70 6f 72 74 2d 72 65 76 65 72 73 65 2d 6c 69 6e 65 73 29 29 0a 20 20 20 20 20 20 20 20 28 77 eport-reverse-lines)).........(w
21260 68 65 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 61 75 74 6f 2d 72 65 66 72 65 73 68 2d 73 hen.ledger-report-auto-refresh-s
21280 74 69 63 6b 79 2d 63 75 72 73 6f 72 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d ticky-cursor...........(forward-
212a0 6c 69 6e 65 20 28 2d 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 75 72 73 6f 72 2d 6c 69 6e line.(-.ledger-report-cursor-lin
212c0 65 2d 6e 75 6d 62 65 72 20 35 29 29 29 29 0a 20 20 20 20 20 20 28 72 75 6e 2d 68 6f 6f 6b 73 20 e-number.5)))).......(run-hooks.
212e0 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 61 66 74 65 72 2d 72 65 70 6f 72 74 2d 68 6f 6f 6b 'ledger-report-after-report-hook
21300 29 0a 20 20 20 20 20 20 28 70 6f 70 2d 74 6f 2d 62 75 66 66 65 72 20 63 75 72 2d 62 75 66 29 29 ).......(pop-to-buffer.cur-buf))
21320 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 71 75 69 74 20 28 29 ))..(defun.ledger-report-quit.()
21340 0a 20 20 22 51 75 69 74 20 74 68 65 20 6c 65 64 67 65 72 20 72 65 70 6f 72 74 20 62 75 66 66 65 ..."Quit.the.ledger.report.buffe
21360 72 20 61 6e 64 20 6b 69 6c 6c 20 69 74 73 20 62 75 66 66 65 72 2e 22 0a 20 20 28 69 6e 74 65 72 r.and.kill.its.buffer."...(inter
21380 61 63 74 69 76 65 29 0a 20 20 28 75 6e 6c 65 73 73 20 28 62 75 66 66 65 72 2d 6c 69 76 65 2d 70 active)...(unless.(buffer-live-p
213a0 20 28 67 65 74 2d 62 75 66 66 65 72 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 62 75 66 66 65 .(get-buffer.ledger-report-buffe
213c0 72 2d 6e 61 6d 65 29 29 0a 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 20 6c 65 64 r-name)).....(user-error."No.led
213e0 67 65 72 20 72 65 70 6f 72 74 20 62 75 66 66 65 72 22 29 29 0a 20 20 28 71 75 69 74 2d 77 69 6e ger.report.buffer"))...(quit-win
21400 64 6f 77 73 2d 6f 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 62 75 66 66 65 72 2d 6e 61 6d dows-on.ledger-report-buffer-nam
21420 65 20 27 6b 69 6c 6c 29 29 0a 0a 28 64 65 66 69 6e 65 2d 6f 62 73 6f 6c 65 74 65 2d 66 75 6e 63 e.'kill))..(define-obsolete-func
21440 74 69 6f 6e 2d 61 6c 69 61 73 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6b 69 6c 6c 20 23 tion-alias.'ledger-report-kill.#
21460 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 71 75 69 74 20 22 32 30 31 38 2d 30 33 2d 31 38 22 'ledger-report-quit."2018-03-18"
21480 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 65 64 69 74 2d 72 65 70 )..(defun.ledger-report-edit-rep
214a0 6f 72 74 73 20 28 29 0a 20 20 22 45 64 69 74 20 74 68 65 20 64 65 66 69 6e 65 64 20 6c 65 64 67 orts.()..."Edit.the.defined.ledg
214c0 65 72 20 72 65 70 6f 72 74 73 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 er.reports."...(interactive)...(
214e0 63 75 73 74 6f 6d 69 7a 65 2d 76 61 72 69 61 62 6c 65 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 customize-variable.'ledger-repor
21500 74 73 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 65 64 69 74 2d ts))..(defun.ledger-report-edit-
21520 72 65 70 6f 72 74 20 28 29 0a 20 20 22 45 64 69 74 20 74 68 65 20 63 75 72 72 65 6e 74 20 72 65 report.()..."Edit.the.current.re
21540 70 6f 72 74 20 63 6f 6d 6d 61 6e 64 20 69 6e 20 74 68 65 20 6d 69 6e 69 20 62 75 66 66 65 72 20 port.command.in.the.mini.buffer.
21560 61 6e 64 20 72 65 2d 72 75 6e 20 74 68 65 20 72 65 70 6f 72 74 2e 22 0a 20 20 28 69 6e 74 65 72 and.re-run.the.report."...(inter
21580 61 63 74 69 76 65 29 0a 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d active)...(setq.ledger-report-cm
215a0 64 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 61 64 2d 63 6f 6d 6d 61 6e 64 20 6c 65 d.(ledger-report-read-command.le
215c0 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 29 29 0a 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f dger-report-cmd))...(ledger-repo
215e0 72 74 2d 72 65 64 6f 29 29 0a 0a 28 64 65 66 69 6e 65 2d 6f 62 73 6f 6c 65 74 65 2d 66 75 6e 63 rt-redo))..(define-obsolete-func
21600 74 69 6f 6e 2d 61 6c 69 61 73 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 73 65 6c 65 63 74 tion-alias.'ledger-report-select
21620 2d 72 65 70 6f 72 74 20 23 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 20 22 6c 65 64 67 65 72 20 -report.#'ledger-report."ledger.
21640 34 2e 30 2e 30 22 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 4.0.0")..(defun.ledger-report-re
21660 61 64 2d 6e 65 77 2d 6e 61 6d 65 20 28 29 0a 20 20 22 52 65 61 64 20 74 68 65 20 6e 61 6d 65 20 ad-new-name.()..."Read.the.name.
21680 66 6f 72 20 61 20 6e 65 77 20 72 65 70 6f 72 74 20 66 72 6f 6d 20 74 68 65 20 6d 69 6e 69 62 75 for.a.new.report.from.the.minibu
216a0 66 66 65 72 2e 22 0a 20 20 28 6c 65 74 20 28 28 6e 61 6d 65 20 22 22 29 29 0a 20 20 20 20 28 77 ffer."...(let.((name."")).....(w
216c0 68 69 6c 65 20 28 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 6e 61 6d 65 29 0a 20 20 20 20 20 hile.(string-empty-p.name)......
216e0 20 28 73 65 74 71 20 6e 61 6d 65 20 28 72 65 61 64 2d 66 72 6f 6d 2d 6d 69 6e 69 62 75 66 66 65 .(setq.name.(read-from-minibuffe
21700 72 20 22 52 65 70 6f 72 74 20 6e 61 6d 65 3a 20 22 20 6e 69 6c 20 6e 69 6c 20 6e 69 6c 0a 20 20 r."Report.name:.".nil.nil.nil...
21720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
21740 20 20 20 20 20 27 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 2d 70 72 6f 6d 70 74 2d .....'ledger-report-name-prompt-
21760 68 69 73 74 6f 72 79 29 29 29 0a 20 20 20 20 6e 61 6d 65 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 history))).....name))..(defun.le
21780 64 67 65 72 2d 72 65 70 6f 72 74 2d 73 61 76 65 20 28 29 0a 20 20 22 53 61 76 65 20 74 68 65 20 dger-report-save.()..."Save.the.
217a0 63 75 72 72 65 6e 74 20 72 65 70 6f 72 74 20 63 6f 6d 6d 61 6e 64 20 6c 69 6e 65 20 61 73 20 61 current.report.command.line.as.a
217c0 20 6e 61 6d 65 64 20 72 65 70 6f 72 74 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a .named.report."...(interactive).
217e0 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 67 6f 74 6f 29 0a 20 20 28 77 68 65 6e 20 28 ..(ledger-report-goto)...(when.(
21800 73 74 72 69 6e 67 2d 65 6d 70 74 79 2d 70 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d string-empty-p.ledger-report-nam
21820 65 29 0a 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 20 e).....(setq.ledger-report-name.
21840 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 61 64 2d 6e 65 77 2d 6e 61 6d 65 29 29 29 0a (ledger-report-read-new-name))).
21860 0a 20 20 28 77 68 65 6e 2d 6c 65 74 20 28 28 65 78 69 73 74 69 6e 67 2d 6e 61 6d 65 20 28 6c 65 ...(when-let.((existing-name.(le
21880 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 2d 65 78 69 73 74 73 20 6c 65 64 67 65 72 2d 72 dger-report-name-exists.ledger-r
218a0 65 70 6f 72 74 2d 6e 61 6d 65 29 29 29 0a 20 20 20 20 28 63 6f 6e 64 20 28 28 79 2d 6f 72 2d 6e eport-name))).....(cond.((y-or-n
218c0 2d 70 20 28 66 6f 72 6d 61 74 20 22 4f 76 65 72 77 72 69 74 65 20 65 78 69 73 74 69 6e 67 20 72 -p.(format."Overwrite.existing.r
218e0 65 70 6f 72 74 20 6e 61 6d 65 64 20 27 25 73 27 3f 20 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 eport.named.'%s'?.".............
21900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e .................ledger-report-n
21920 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 65 71 75 ame))............(if.(string-equ
21940 61 6c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 al.................ledger-report
21960 2d 63 6d 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 28 63 64 72 20 28 -cmd.................(car.(cdr.(
21980 61 73 73 71 20 65 78 69 73 74 69 6e 67 2d 6e 61 6d 65 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 assq.existing-name.ledger-report
219a0 73 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6d 65 73 73 61 67 65 20 22 4e s))))................(message."N
219c0 6f 74 68 69 6e 67 20 74 6f 20 73 61 76 65 2e 20 43 75 72 72 65 6e 74 20 63 6f 6d 6d 61 6e 64 20 othing.to.save..Current.command.
219e0 69 73 20 69 64 65 6e 74 69 63 61 6c 20 74 6f 20 65 78 69 73 74 69 6e 67 20 73 61 76 65 64 20 6f is.identical.to.existing.saved.o
21a00 6e 65 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 ne")..............(setq.ledger-r
21a20 65 70 6f 72 74 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 73 73 71 2d eports....................(assq-
21a40 64 65 6c 65 74 65 2d 61 6c 6c 20 65 78 69 73 74 69 6e 67 2d 6e 61 6d 65 20 6c 65 64 67 65 72 2d delete-all.existing-name.ledger-
21a60 72 65 70 6f 72 74 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 72 reports))..............(ledger-r
21a80 65 70 6f 72 74 73 2d 61 64 64 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 20 6c 65 eports-add.ledger-report-name.le
21aa0 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c dger-report-cmd)..............(l
21ac0 65 64 67 65 72 2d 72 65 70 6f 72 74 73 2d 63 75 73 74 6f 6d 2d 73 61 76 65 29 29 29 0a 20 20 20 edger-reports-custom-save)))....
21ae0 20 20 20 20 20 20 20 28 74 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 .......(t............(setq.ledge
21b00 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 61 r-report-name.(ledger-report-rea
21b20 64 2d 6e 65 77 2d 6e 61 6d 65 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d d-new-name))............(ledger-
21b40 72 65 70 6f 72 74 73 2d 61 64 64 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 61 6d 65 20 6c reports-add.ledger-report-name.l
21b60 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 edger-report-cmd)............(le
21b80 64 67 65 72 2d 72 65 70 6f 72 74 73 2d 63 75 73 74 6f 6d 2d 73 61 76 65 29 29 29 29 29 0a 0a 28 dger-reports-custom-save)))))..(
21ba0 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 70 72 65 76 69 6f 75 73 2d 6d 6f 6e defun.ledger-report-previous-mon
21bc0 74 68 20 28 29 0a 20 20 22 52 65 62 75 69 6c 64 20 72 65 70 6f 72 74 20 77 69 74 68 20 74 72 61 th.()..."Rebuild.report.with.tra
21be0 6e 73 61 63 74 69 6f 6e 73 20 66 72 6f 6d 20 74 68 65 20 70 72 65 76 69 6f 75 73 20 6d 6f 6e 74 nsactions.from.the.previous.mont
21c00 68 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 6c 65 64 67 65 72 2d 72 65 h."...(interactive)...(ledger-re
21c20 70 6f 72 74 2d 2d 63 68 61 6e 67 65 2d 6d 6f 6e 74 68 20 2d 31 29 29 0a 0a 28 64 65 66 75 6e 20 port--change-month.-1))..(defun.
21c40 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 6e 65 78 74 2d 6d 6f 6e 74 68 20 28 29 0a 20 20 22 52 ledger-report-next-month.()..."R
21c60 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.
21c80 66 72 6f 6d 20 74 68 65 20 6e 65 78 74 20 6d 6f 6e 74 68 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 from.the.next.month."...(interac
21ca0 74 69 76 65 29 0a 20 20 28 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 2d 63 68 61 6e 67 65 2d 6d tive)...(ledger-report--change-m
21cc0 6f 6e 74 68 20 31 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 74 onth.1))..(defun.ledger-report-t
21ce0 6f 67 67 6c 65 2d 64 65 66 61 75 6c 74 2d 63 6f 6d 6d 6f 64 69 74 79 20 28 29 0a 20 20 22 54 6f oggle-default-commodity.()..."To
21d00 67 67 6c 65 20 65 78 63 68 61 6e 67 65 20 6f 66 20 72 65 70 6f 72 74 65 64 20 61 6d 6f 75 6e 74 ggle.exchange.of.reported.amount
21d20 73 20 74 6f 20 60 6c 65 64 67 65 72 2d 72 65 63 6f 6e 63 69 6c 65 2d 64 65 66 61 75 6c 74 2d 63 s.to.`ledger-reconcile-default-c
21d40 6f 6d 6d 6f 64 69 74 79 27 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 29 0a 20 20 28 75 ommodity'."...(interactive)...(u
21d60 6e 6c 65 73 73 20 28 64 65 72 69 76 65 64 2d 6d 6f 64 65 2d 70 20 27 6c 65 64 67 65 72 2d 72 65 nless.(derived-mode-p.'ledger-re
21d80 70 6f 72 74 2d 6d 6f 64 65 29 0a 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 4e 6f 74 20 port-mode).....(user-error."Not.
21da0 61 20 6c 65 64 67 65 72 20 72 65 70 6f 72 74 20 62 75 66 66 65 72 22 29 29 0a 20 20 28 73 61 76 a.ledger.report.buffer"))...(sav
21dc0 65 2d 6d 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 28 69 66 20 28 73 74 72 69 6e 67 2d 6d 61 74 e-match-data.....(if.(string-mat
21de0 63 68 0a 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 72 78 20 28 6f 72 20 22 2d 2d 65 ch..........(concat.(rx.(or."--e
21e00 78 63 68 61 6e 67 65 22 20 22 2d 58 22 29 20 28 31 2b 20 73 70 61 63 65 29 29 0a 20 20 20 20 20 xchange"."-X").(1+.space))......
21e20 20 20 20 20 20 20 20 20 20 20 20 20 28 72 65 67 65 78 70 2d 71 75 6f 74 65 20 6c 65 64 67 65 72 ............(regexp-quote.ledger
21e40 2d 72 65 63 6f 6e 63 69 6c 65 2d 64 65 66 61 75 6c 74 2d 63 6f 6d 6d 6f 64 69 74 79 29 29 0a 20 -reconcile-default-commodity))..
21e60 20 20 20 20 20 20 20 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 29 0a 20 20 20 20 20 ........ledger-report-cmd)......
21e80 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 20 28 72 65 70 6c ...(setq.ledger-report-cmd.(repl
21ea0 61 63 65 2d 6d 61 74 63 68 20 22 22 20 6e 69 6c 20 6e 69 6c 20 6c 65 64 67 65 72 2d 72 65 70 6f ace-match."".nil.nil.ledger-repo
21ec0 72 74 2d 63 6d 64 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 6c 65 64 67 65 72 2d 72 65 70 6f rt-cmd)).......(setq.ledger-repo
21ee0 72 74 2d 63 6d 64 20 28 63 6f 6e 63 61 74 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 63 6d 64 rt-cmd.(concat.ledger-report-cmd
21f00 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
21f20 20 20 20 20 20 20 20 22 20 2d 2d 65 78 63 68 61 6e 67 65 20 22 20 6c 65 64 67 65 72 2d 72 65 63 .......".--exchange.".ledger-rec
21f40 6f 6e 63 69 6c 65 2d 64 65 66 61 75 6c 74 2d 63 6f 6d 6d 6f 64 69 74 79 29 29 29 29 0a 20 20 28 oncile-default-commodity))))...(
21f60 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 2d 72 65 64 6f 29 29 0a 0a 28 70 72 6f 76 69 64 65 20 27 ledger-report-redo))..(provide.'
21f80 6c 65 64 67 65 72 2d 72 65 70 6f 72 74 29 0a 0a 3b 3b 3b 20 6c 65 64 67 65 72 2d 72 65 70 6f 72 ledger-report)..;;;.ledger-repor
21fa0 74 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 t.el.ends.here..................
21fc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
21fe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22000 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 32 33 2e 34 34 35 2f 6c 65 64 67 65 72 2d ledger-mode-20240423.445/ledger-
22020 66 6f 6e 74 69 66 79 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 fontify.el......................
22040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22060 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
22080 30 30 30 33 37 33 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 33 36 33 00 20 30 00 00 00 0003736.00000000000.016363..0...
220a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
220c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
220e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22100 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
22120 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
22140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
221a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
221c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
221e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22200 3b 3b 3b 20 6c 65 64 67 65 72 2d 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
22220 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
22240 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;.
22260 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
22280 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
222a0 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
222c0 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.
222e0 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
22300 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.
22320 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.
22340 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
22360 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.
22380 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
223a0 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.
223c0 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.
223e0 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.;
22400 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
22420 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
22440 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
22460 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
22480 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
224a0 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
224c0 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
224e0 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.
22500 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
22520 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
22540 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
22560 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,.;
22580 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
225a0 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
225c0 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
225e0 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
22600 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
22620 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...;;;.
22640 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
22660 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
22680 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.
226a0 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
226c0 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
226e0 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-
22700 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
22720 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...
22740 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.
22760 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...
22780 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
227a0 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
227c0 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
227e0 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
22800 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
22820 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.(
22840 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
22860 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)))).....
22880 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
228a0 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
228c0 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))))
228e0 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
22900 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).............
22920 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
22940 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-
22960 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
22980 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)))
229a0 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)..;;
229c0 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...
229e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22a00 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 32 33 2e 34 34 35 2f 6c 65 64 67 65 72 2d ledger-mode-20240423.445/ledger-
22a20 63 6f 6e 74 65 78 74 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 context.el......................
22a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22a60 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
22a80 30 30 32 33 33 37 30 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 33 36 35 00 20 30 00 00 00 0023370.00000000000.016365..0...
22aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22b00 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...................
22b20 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...................
22b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
22c00 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
22c20 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".
22c40 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
22c60 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)
22c80 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
22ca0 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.
22cc0 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.
22ce0 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
22d00 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
22d20 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
22d40 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.
22d60 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;
22d80 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
22da0 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..;;.
22dc0 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
22de0 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
22e00 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.
22e20 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
22e40 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
22e60 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
22e80 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.
22ea0 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
22ec0 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
22ee0 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
22f00 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
22f20 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
22f40 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
22f60 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
22f80 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....;
22fa0 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
22fc0 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
22fe0 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
23000 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
23020 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.;;
23040 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
23060 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
23080 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
230a0 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
230c0 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."\\(
230e0 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
23100 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."[\\[(]?\\(.*?\\)[])
23120 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-
23140 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
23160 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-
23180 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-
231a0 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
231c0 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
231e0 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
23200 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-
23220 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-
23240 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
23260 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."\\(?:
23280 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]*\\(.*?\
232a0 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
232c0 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
232e0 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\\}[
23300 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]\\)
23320 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]
23340 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
23360 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."\\((.*)\\)?
23380 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
233a0 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
233c0 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).
233e0 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.
23400 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.(
23420 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
23440 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
23460 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.
23480 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
234a0 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
234c0 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
234e0 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
23500 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.(&
23520 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.
23540 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
23560 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.".
23580 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
235a0 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)
235c0 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
235e0 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
23600 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
23620 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
23640 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
23660 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.
23680 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)......
236a0 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
236c0 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.
236e0 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)..............
23700 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
23720 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
23740 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
23760 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
23780 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)........
237a0 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
237c0 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.
237e0 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)..........................
23800 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
23820 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).............
23840 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
23860 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)))......
23880 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
238a0 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
238c0 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).....................
238e0 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
23900 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
23920 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
23940 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
23960 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)............................
23980 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
239a0 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.
239c0 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
239e0 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)............
23a00 20 20 20 20 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
23a20 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
23a40 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
23a60 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).
23a80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
23aa0 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
23ac0 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
23ae0 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
23b00 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)..............................
23b20 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
23b40 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
23b60 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
23b80 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)............................
23ba0 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
23bc0 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.
23be0 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)..
23c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
23c20 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.
23c40 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
23c60 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).....................
23c80 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
23ca0 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
23cc0 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).................
23ce0 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
23d00 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
23d20 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).....................
23d40 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
23d60 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
23d80 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
23da0 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)..............................
23dc0 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
23de0 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
23e00 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)...............
23e20 20 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-
23e40 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
23e60 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).............
23e80 20 20 20 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
23ea0 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
23ec0 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)....................
23ee0 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
23f00 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))))
23f20 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
23f40 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
23f60 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.
23f80 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.
23fa0 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
23fc0 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
23fe0 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
24000 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
24020 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
24040 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
24060 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
24080 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.
240a0 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
240c0 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
240e0 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)...
24100 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
24120 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
24140 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
24160 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.............
24180 20 20 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..
241a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
241c0 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)........
241e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
24200 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
24220 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))........................
24240 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
24260 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)))))))).............
24280 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)..............
242a0 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).................
242c0 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))...........
242e0 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)))
24300 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.
24320 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
24340 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.
24360 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,.
24380 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
243a0 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
243c0 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.
243e0 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.(
24400 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
24420 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
24440 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-
24460 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-+(.
24480 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
244a0 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))..........
244c0 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
244e0 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-+\\)?[[
24500 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
24520 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))...
24540 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
24560 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\\
24580 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-+")
245a0 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
245c0 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)..........
245e0 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
24600 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
24620 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
24640 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
24660 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.
24680 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
246a0 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
246c0 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
246e0 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
24700 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
24720 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
24740 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)......
24760 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))
24780 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).
247a0 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))............
247c0 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))......
247e0 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.'(?\.
24800 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
24820 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
24840 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
24860 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
24880 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
248a0 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
248c0 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-
248e0 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
24900 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)).............
24920 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.?\~).......
24940 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))
24960 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
24980 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-
249a0 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
249c0 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.?\;)...............
249e0 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))............
24a00 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).......
24a20 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)
24a40 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
24a60 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
24a80 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))...............
24aa0 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)..........
24ac0 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.
24ae0 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.
24b00 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)................'(
24b20 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)).....
24b40 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)
24b60 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
24b80 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))...............(
24ba0 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)...........
24bc0 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))....
24be0 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
24c00 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
24c20 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
24c40 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
24c60 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))............
24c80 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).......
24ca0 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)
24cc0 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..............
24ce0 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
24d00 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
24d20 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
24d40 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
24d60 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.
24d80 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
24da0 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
24dc0 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
24de0 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
24e00 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
24e20 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
24e40 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
24e60 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
24e80 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.
24ea0 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
24ec0 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
24ee0 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
24f00 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
24f20 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.
24f40 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))
24f60 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
24f80 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
24fa0 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-
24fc0 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
24fe0 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
25000 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
25020 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
25040 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)
25060 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-
25080 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
250a0 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
250c0 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))
250e0 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
25100 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-
25120 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
25140 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
25160 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-
25180 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
251a0 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
251c0 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
251e0 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
25200 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
25220 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-
25240 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-
25260 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
25280 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
252a0 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
252c0 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
252e0 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.........
25300 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25320 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
253a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
253c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
253e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25400 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 32 33 2e 34 34 35 2f 6c 65 64 67 65 72 2d ledger-mode-20240423.445/ledger-
25420 74 65 73 74 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 test.el.........................
25440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25460 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
25480 30 30 31 31 34 36 35 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 35 36 36 32 00 20 30 00 00 00 0011465.00000000000.015662..0...
254a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
254c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
254e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25500 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...................
25520 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...................
25540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
255a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
255c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
255e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
25600 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
25620 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
25640 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
25660 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
25680 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
256a0 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.
256c0 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
256e0 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
25700 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.;;.
25720 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
25740 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.
25760 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
25780 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
257a0 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
257c0 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
257e0 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
25800 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
25820 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
25840 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
25860 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
25880 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
258a0 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.
258c0 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
258e0 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.
25900 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.
25920 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
25940 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
25960 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
25980 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
259a0 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
259c0 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
259e0 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
25a00 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
25a20 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
25a40 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
25a60 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
25a80 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-
25aa0 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
25ac0 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.
25ae0 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...:
25b00 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.
25b20 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
25b40 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.
25b60 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
25b80 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
25ba0 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)..;;;;;;;;;;;;;;;
25bc0 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 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
25be0 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 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;.
25c00 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.()...
25c20 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
25c40 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.
25c60 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).....
25c80 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
25ca0 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-
25cc0 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)..
25ce0 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)).......
25d00 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:"
25d20 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
25d40 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
25d60 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
25d80 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
25da0 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
25dc0 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-+\\([^-]+\\
25de0 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
25e00 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
25e20 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-
25e40 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).
25e60 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
25e80 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
25ea0 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
25ec0 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)
25ee0 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).....
25f00 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
25f20 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
25f40 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
25f60 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).(
25f80 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
25fa0 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))
25fc0 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.().
25fe0 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
26000 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")))....
26020 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."\\`\\([^-]
26040 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
26060 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)).........
26080 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-
260a0 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
260c0 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).........
260e0 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)).......
26100 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."#
26120 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).....
26140 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)
26160 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)..
26180 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))).
261a0 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
261c0 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
261e0 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
26200 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."").............
26220 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
26240 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))))))..
26260 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))
26280 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
262a0 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)..........
262c0 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))....
262e0 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).......
26300 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)))......
26320 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
26340 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.
26360 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.
26380 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."")......................
263a0 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
263c0 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))))))).........(
263e0 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..........
26400 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
26420 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").......................
26440 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
26460 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"...........................
26480 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
264a0 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
264c0 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...........
264e0 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
26500 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")........
26520 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...
26540 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")...........(
26560 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"))....
26580 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")....
265a0 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
265c0 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
265e0 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
26600 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
26620 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
26640 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
26660 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.\\(.+?\\)\\(.->.*\\)
26680 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.
266a0 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
266c0 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
266e0 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-
26700 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".............
26720 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.(
26740 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
26760 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.
26780 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".................
267a0 20 20 20 20 20 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
267c0 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)).....
267e0 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
26800 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).
26820 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
26840 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.
26860 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)........
26880 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..............
268a0 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."\
268c0 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))........
268e0 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)))))))..
26900 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
26920 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............
26940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
269a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
269c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
269e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26a00 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 32 33 2e 34 34 35 2f 6c 65 64 67 65 72 2d ledger-mode-20240423.445/ledger-
26a20 63 6f 6d 70 6c 65 74 65 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 complete.el.....................
26a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26a60 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
26a80 30 30 33 35 37 37 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 35 32 32 00 20 30 00 00 00 0035772.00000000000.016522..0...
26aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26b00 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...................
26b20 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...................
26b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
26c00 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
26c20 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"
26c40 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-
26c60 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
26c80 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.
26ca0 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
26cc0 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
26ce0 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
26d00 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
26d20 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
26d40 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
26d60 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
26d80 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.
26da0 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..;;
26dc0 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
26de0 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.
26e00 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
26e20 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
26e40 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.
26e60 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
26e80 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
26ea0 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.
26ec0 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.
26ee0 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.
26f00 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
26f20 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
26f40 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
26f60 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,.
26f80 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...;
26fa0 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
26fc0 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
26fe0 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-
27000 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)
27020 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
27040 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
27060 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
27080 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
270a0 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...
270c0 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
270e0 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.
27100 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
27120 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
27140 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
27160 72 72 65 6e 74 20 66 69 6c 65 2e 0a 53 65 65 20 6c 65 64 67 65 72 27 73 20 5c 22 61 63 63 6f 75 rrent.file..See.ledger's.\"accou
27180 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
271a0 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
271c0 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)..........
271e0 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..
27200 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
27220 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...
27240 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
27260 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
27280 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
272a0 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
272c0 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
272e0 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
27300 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
27320 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.
27340 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)................
27360 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
27380 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
273a0 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
273c0 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
273e0 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
27400 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
27420 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.`
27440 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'.
27460 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."
27480 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
274a0 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)...............
274c0 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...
274e0 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..
27500 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
27520 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
27540 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
27560 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.
27580 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
275a0 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."..
275c0 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
275e0 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
27600 65 20 2e 20 22 34 2e 30 2e 30 22 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 70 61 79 e..."4.0.0"))..(defun.ledger-pay
27620 65 65 73 2d 69 6e 2d 62 75 66 66 65 72 20 28 29 0a 20 20 22 53 63 61 6e 20 62 75 66 66 65 72 20 ees-in-buffer.()..."Scan.buffer.
27640 61 6e 64 20 72 65 74 75 72 6e 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20 70 61 79 65 65 73 2e 22 0a and.return.list.of.all.payees.".
27660 20 20 28 6c 65 74 20 28 28 6f 72 69 67 69 6e 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 ..(let.((origin.(point))........
27680 20 70 61 79 65 65 73 2d 6c 69 73 74 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f .payees-list).....(save-excursio
276a0 6e 0a 20 20 20 20 20 20 28 67 6f 74 6f 2d 63 68 61 72 20 28 70 6f 69 6e 74 2d 6d 69 6e 29 29 0a n.......(goto-char.(point-min)).
276c0 20 20 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 ......(while.(re-search-forward.
276e0 6c 65 64 67 65 72 2d 70 61 79 65 65 2d 6e 61 6d 65 2d 6f 72 2d 64 69 72 65 63 74 69 76 65 2d 72 ledger-payee-name-or-directive-r
27700 65 67 65 78 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 61 6e 64 egex.nil.t).........(unless.(and
27720 20 28 3e 3d 20 6f 72 69 67 69 6e 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 .(>=.origin.(match-beginning.0))
27740 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 3c 20 6f 72 69 67 69 6e 20 ......................(<.origin.
27760 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 (match-end.0)))...........(push.
27780 28 6f 72 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 (or.(match-string-no-properties.
277a0 31 29 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 32 1).(match-string-no-properties.2
277c0 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 70 61 79 65 65 73 2d 6c 69 73 74 29 29 )).................payees-list))
277e0 29 29 0a 20 20 20 20 3b 3b 20 74 6f 20 74 68 65 20 6c 69 73 74 0a 20 20 20 20 28 73 6f 72 74 20 )).....;;.to.the.list.....(sort.
27800 28 64 65 6c 65 74 65 2d 64 75 70 73 20 70 61 79 65 65 73 2d 6c 69 73 74 29 20 23 27 73 74 72 69 (delete-dups.payees-list).#'stri
27820 6e 67 2d 6c 65 73 73 70 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 70 61 79 65 65 ng-lessp)))..(defun.ledger-payee
27840 73 2d 6c 69 73 74 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 61 6c s-list.()..."Return.a.list.of.al
27860 6c 20 6b 6e 6f 77 6e 20 61 63 63 6f 75 6e 74 20 6e 61 6d 65 73 20 61 73 20 73 74 72 69 6e 67 73 l.known.account.names.as.strings
27880 2e 0a 4c 6f 6f 6b 73 20 69 6e 20 60 6c 65 64 67 65 72 2d 70 61 79 65 65 73 2d 66 69 6c 65 27 20 ..Looks.in.`ledger-payees-file'.
278a0 69 66 20 73 65 74 2c 20 6f 74 68 65 72 77 69 73 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 if.set,.otherwise.the.current.bu
278c0 66 66 65 72 2e 22 0a 20 20 28 69 66 20 6c 65 64 67 65 72 2d 70 61 79 65 65 73 2d 66 69 6c 65 0a ffer."...(if.ledger-payees-file.
278e0 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 20 6c 65 64 67 65 72 2d 70 61 79 65 65 73 2d 66 69 6c ......(let.((f.ledger-payees-fil
27900 65 29 29 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 65 72 0a 20 20 e)).........(with-temp-buffer...
27920 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e 74 73 20 66 29 ........(insert-file-contents.f)
27940 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 70 61 79 65 65 73 2d 69 6e 2d 62 75 66 ...........(ledger-payees-in-buf
27960 66 65 72 29 29 29 0a 20 20 20 20 28 6c 65 64 67 65 72 2d 70 61 79 65 65 73 2d 69 6e 2d 62 75 66 fer))).....(ledger-payees-in-buf
27980 66 65 72 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 69 fer)))..(defun.ledger-accounts-i
279a0 6e 2d 62 75 66 66 65 72 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 61 6e 20 61 6c 69 73 74 20 6f n-buffer.()..."Return.an.alist.o
279c0 66 20 61 63 63 6f 75 6e 74 73 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 f.accounts.in.the.current.buffer
279e0 2e 0a 54 68 65 20 60 63 61 72 27 20 6f 66 20 65 61 63 68 20 65 6c 65 6d 65 6e 74 20 69 73 20 74 ..The.`car'.of.each.element.is.t
27a00 68 65 20 61 63 63 6f 75 6e 74 20 6e 61 6d 65 20 61 6e 64 20 74 68 65 20 60 63 64 72 27 20 69 73 he.account.name.and.the.`cdr'.is
27a20 20 61 6e 0a 61 6c 69 73 74 20 77 68 65 72 65 20 74 68 65 20 6b 65 79 20 69 73 20 61 20 73 75 62 .an.alist.where.the.key.is.a.sub
27a40 64 69 72 65 63 74 69 76 65 20 73 75 63 68 20 61 73 20 5c 22 61 73 73 65 72 74 5c 22 20 61 6e 64 directive.such.as.\"assert\".and
27a60 20 74 68 65 0a 76 61 6c 75 65 20 28 69 66 20 61 6e 79 29 20 69 73 20 74 68 65 20 61 73 73 6f 63 .the.value.(if.any).is.the.assoc
27a80 69 61 74 65 64 20 64 61 74 61 2e 20 20 49 6e 20 6f 74 68 65 72 20 77 6f 72 64 73 2c 20 69 66 20 iated.data...In.other.words,.if.
27aa0 79 6f 75 27 76 65 0a 64 65 63 6c 61 72 65 64 20 61 6e 20 61 63 63 6f 75 6e 74 20 6c 69 6b 65 20 you've.declared.an.account.like.
27ac0 73 6f 3a 0a 0a 61 63 63 6f 75 6e 74 20 41 73 73 65 74 73 3a 43 68 65 63 6b 69 6e 67 0a 20 20 20 so:..account.Assets:Checking....
27ae0 20 61 73 73 65 72 74 20 63 6f 6d 6d 6f 64 69 74 79 20 3d 3d 20 5c 22 24 5c 22 0a 20 20 20 20 64 .assert.commodity.==.\"$\".....d
27b00 65 66 61 75 6c 74 0a 0a 54 68 65 6e 20 6f 6e 65 20 6f 66 20 74 68 65 20 65 6c 65 6d 65 6e 74 73 efault..Then.one.of.the.elements
27b20 20 74 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 74 75 72 6e 73 20 77 69 6c 6c 20 62 65 0a 5c .this.function.returns.will.be.\
27b40 28 5c 22 41 73 73 65 74 73 3a 43 68 65 63 6b 69 6e 67 5c 22 0a 20 20 28 5c 22 64 65 66 61 75 6c (\"Assets:Checking\"...(\"defaul
27b60 74 5c 22 29 0a 20 20 28 5c 22 61 73 73 65 72 74 5c 22 20 2e 20 5c 22 63 6f 6d 6d 6f 64 69 74 79 t\")...(\"assert\"...\"commodity
27b80 20 3d 3d 20 5c 22 24 5c 22 5c 22 29 29 22 0a 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e .==.\"$\"\"))"...(save-excursion
27ba0 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))....
27bc0 20 28 6c 65 74 20 28 61 63 63 6f 75 6e 74 2d 6c 69 73 74 0a 20 20 20 20 20 20 20 20 20 20 28 73 .(let.(account-list...........(s
27be0 65 65 6e 20 28 6d 61 6b 65 2d 68 61 73 68 2d 74 61 62 6c 65 20 3a 74 65 73 74 20 23 27 65 71 75 een.(make-hash-table.:test.#'equ
27c00 61 6c 20 3a 73 69 7a 65 20 31 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 46 69 72 73 74 2c 20 63 6f al.:size.1))).......;;.First,.co
27c20 6e 73 69 64 65 72 20 61 63 63 6f 75 6e 74 73 20 64 65 63 6c 61 72 65 64 20 77 69 74 68 20 22 61 nsider.accounts.declared.with."a
27c40 63 63 6f 75 6e 74 22 20 64 69 72 65 63 74 69 76 65 73 2c 20 77 68 69 63 68 20 6d 61 79 20 6f 72 ccount".directives,.which.may.or
27c60 0a 20 20 20 20 20 20 3b 3b 20 6d 61 79 20 6e 6f 74 20 68 61 76 65 20 61 73 73 6f 63 69 61 74 65 .......;;.may.not.have.associate
27c80 64 20 64 61 74 61 2e 20 54 68 65 20 64 61 74 61 20 69 73 20 6f 6e 20 74 68 65 20 66 6f 6c 6c 6f d.data..The.data.is.on.the.follo
27ca0 77 69 6e 67 20 6c 69 6e 65 73 20 75 70 20 74 6f 20 61 0a 20 20 20 20 20 20 3b 3b 20 6c 69 6e 65 wing.lines.up.to.a.......;;.line
27cc0 20 6e 6f 74 20 73 74 61 72 74 69 6e 67 20 77 69 74 68 20 77 68 69 74 65 73 70 61 63 65 2e 0a 20 .not.starting.with.whitespace...
27ce0 20 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 6c .....(while.(re-search-forward.l
27d00 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 2d 64 69 72 65 63 74 69 76 65 2d 72 65 67 65 78 20 6e 69 edger-account-directive-regex.ni
27d20 6c 20 74 29 0a 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 61 63 63 6f 75 6e 74 20 28 6d 61 74 l.t).........(let.((account.(mat
27d40 63 68 2d 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 31 29 29 0a 20 20 20 20 ch-string-no-properties.1)).....
27d60 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 73 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 ..........(lines.(buffer-substri
27d80 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ng-no-properties................
27da0 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .......(point)..................
27dc0 20 20 20 20 20 28 70 72 6f 67 6e 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 6e 65 78 .....(progn.(ledger-navigate-nex
27de0 74 2d 78 61 63 74 2d 6f 72 2d 64 69 72 65 63 74 69 76 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 t-xact-or-directive)............
27e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 29 29 29 0a 20 20 20 ..................(point))))....
27e20 20 20 20 20 20 20 20 20 20 20 20 64 61 74 61 29 0a 20 20 20 20 20 20 20 20 20 20 28 64 6f 6c 69 ...........data)...........(doli
27e40 73 74 20 28 64 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 6c 69 6e 65 73 20 22 5c 6e 22 29 29 st.(d.(split-string.lines."\n"))
27e60 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 64 20 28 73 74 72 69 6e 67 2d 74 72 69 .............(setq.d.(string-tri
27e80 6d 20 64 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 73 74 72 69 6e m.d)).............(unless.(strin
27ea0 67 3d 20 64 20 22 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 73 74 72 69 g=.d."")...............(if.(stri
27ec0 6e 67 2d 6d 61 74 63 68 20 22 20 22 20 64 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ng-match.".".d).................
27ee0 20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 28 73 75 62 73 74 72 69 6e 67 20 64 20 30 20 28 6d 61 ..(push.(cons.(substring.d.0.(ma
27f00 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 30 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tch-beginning.0))...............
27f20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 75 62 73 74 72 69 6e 67 20 64 20 28 6d 61 ................(substring.d.(ma
27f40 74 63 68 2d 65 6e 64 20 30 29 20 6e 69 6c 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tch-end.0).nil))................
27f60 20 20 20 20 20 20 20 20 20 64 61 74 61 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 .........data).................(
27f80 70 75 73 68 20 28 63 6f 6e 73 20 64 20 6e 69 6c 29 20 64 61 74 61 29 29 29 29 0a 20 20 20 20 20 push.(cons.d.nil).data))))......
27fa0 20 20 20 20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 61 63 63 6f 75 6e 74 20 64 61 74 61 29 20 61 .....(push.(cons.account.data).a
27fc0 63 63 6f 75 6e 74 2d 6c 69 73 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 70 75 74 68 61 73 68 20 ccount-list)...........(puthash.
27fe0 61 63 63 6f 75 6e 74 20 74 20 73 65 65 6e 29 29 29 0a 20 20 20 20 20 20 3b 3b 20 4e 65 78 74 2c account.t.seen))).......;;.Next,
28000 20 67 61 74 68 65 72 20 61 6c 6c 20 61 63 63 6f 75 6e 74 73 20 64 65 63 6c 61 72 65 64 20 69 6e .gather.all.accounts.declared.in
28020 20 70 6f 73 74 69 6e 67 73 0a 20 20 20 20 20 20 28 75 6e 6c 65 73 73 0a 20 20 20 20 20 20 20 20 .postings.......(unless.........
28040 20 20 3b 3b 20 46 49 58 4d 45 3a 20 50 65 6f 70 6c 65 20 77 68 6f 20 68 61 76 65 20 73 65 74 20 ..;;.FIXME:.People.who.have.set.
28060 60 6c 65 64 67 65 72 2d 66 6c 79 6d 61 6b 65 2d 62 65 2d 70 65 64 61 6e 74 69 63 27 20 74 6f 20 `ledger-flymake-be-pedantic'.to.
28080 6e 6f 6e 2d 6e 69 6c 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 70 72 6f 62 61 62 6c 79 20 64 6f non-nil...........;;.probably.do
280a0 6e 27 74 20 77 61 6e 74 20 61 63 63 6f 75 6e 74 73 20 66 72 6f 6d 20 70 6f 73 74 69 6e 67 73 2c n't.want.accounts.from.postings,
280c0 20 6a 75 73 74 20 74 68 6f 73 65 20 64 65 63 6c 61 72 65 64 0a 20 20 20 20 20 20 20 20 20 20 3b .just.those.declared...........;
280e0 3b 20 77 69 74 68 20 64 69 72 65 63 74 69 76 65 73 2e 20 20 42 75 74 20 74 68 65 20 6e 61 6d 65 ;.with.directives...But.the.name
28100 20 69 73 20 61 20 6c 69 74 74 6c 65 20 6d 69 73 6c 65 61 64 69 6e 67 2e 20 20 53 68 6f 75 6c 64 .is.a.little.misleading...Should
28120 20 77 65 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 6d 61 6b 65 20 61 20 6c 65 64 67 65 72 2d 6d .we...........;;.make.a.ledger-m
28140 6f 64 65 2d 62 65 2d 70 65 64 61 6e 74 69 63 20 61 6e 64 20 75 73 65 20 74 68 61 74 20 69 6e 73 ode-be-pedantic.and.use.that.ins
28160 74 65 61 64 3f 0a 20 20 20 20 20 20 20 20 20 20 28 62 6f 75 6e 64 2d 61 6e 64 2d 74 72 75 65 2d tead?...........(bound-and-true-
28180 70 20 6c 65 64 67 65 72 2d 66 6c 79 6d 61 6b 65 2d 62 65 2d 70 65 64 61 6e 74 69 63 29 0a 20 20 p.ledger-flymake-be-pedantic)...
281a0 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 78 61 63 74 2d 69 74 65 72 61 74 65 2d 74 72 61 6e 73 ......(ledger-xact-iterate-trans
281c0 61 63 74 69 6f 6e 73 0a 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 5f 70 6f 73 20 5f actions..........(lambda.(_pos._
281e0 64 61 74 65 20 5f 73 74 61 74 65 20 5f 70 61 79 65 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 date._state._payee)............(
28200 6c 65 74 20 28 28 65 6e 64 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 20 28 6c 65 64 67 65 let.((end.(save-excursion.(ledge
28220 72 2d 6e 61 76 69 67 61 74 65 2d 65 6e 64 2d 6f 66 2d 78 61 63 74 29 29 29 29 0a 20 20 20 20 20 r-navigate-end-of-xact))))......
28240 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e 65 29 0a 20 20 20 20 20 20 20 20 20 ........(forward-line)..........
28260 20 20 20 20 28 77 68 69 6c 65 20 28 72 65 2d 73 65 61 72 63 68 2d 66 6f 72 77 61 72 64 20 6c 65 ....(while.(re-search-forward.le
28280 64 67 65 72 2d 61 63 63 6f 75 6e 74 2d 61 6e 79 2d 73 74 61 74 75 73 2d 72 65 67 65 78 20 65 6e dger-account-any-status-regex.en
282a0 64 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 61 63 63 6f 75 d.t)................(let.((accou
282c0 6e 74 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 31 nt.(match-string-no-properties.1
282e0 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 67 65 )))..................(unless.(ge
28300 74 68 61 73 68 20 61 63 63 6f 75 6e 74 20 73 65 65 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 thash.account.seen).............
28320 20 20 20 20 20 20 20 28 70 75 74 68 61 73 68 20 61 63 63 6f 75 6e 74 20 74 20 73 65 65 6e 29 0a .......(puthash.account.t.seen).
28340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 75 73 68 20 28 63 6f 6e 73 20 61 ...................(push.(cons.a
28360 63 63 6f 75 6e 74 20 6e 69 6c 29 20 61 63 63 6f 75 6e 74 2d 6c 69 73 74 29 29 29 29 29 29 29 29 ccount.nil).account-list))))))))
28380 0a 20 20 20 20 20 20 28 73 6f 72 74 20 61 63 63 6f 75 6e 74 2d 6c 69 73 74 20 28 6c 61 6d 62 64 .......(sort.account-list.(lambd
283a0 61 20 28 61 20 62 29 20 28 73 74 72 69 6e 67 2d 6c 65 73 73 70 20 28 63 61 72 20 61 29 20 28 63 a.(a.b).(string-lessp.(car.a).(c
283c0 61 72 20 62 29 29 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 ar.b)))))))..(defun.ledger-accou
283e0 6e 74 73 2d 6c 69 73 74 2d 69 6e 2d 62 75 66 66 65 72 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 nts-list-in-buffer.()..."Return.
28400 61 20 6c 69 73 74 20 6f 66 20 61 6c 6c 20 6b 6e 6f 77 6e 20 61 63 63 6f 75 6e 74 20 6e 61 6d 65 a.list.of.all.known.account.name
28420 73 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 75 66 66 65 72 20 61 73 20 73 74 72 69 6e s.in.the.current.buffer.as.strin
28440 67 73 2e 0a 43 6f 6e 73 69 64 65 72 73 20 62 6f 74 68 20 61 63 63 6f 75 6e 74 73 20 6c 69 73 74 gs..Considers.both.accounts.list
28460 65 64 20 69 6e 20 70 6f 73 74 69 6e 67 73 20 61 6e 64 20 74 68 6f 73 65 20 64 65 63 6c 61 72 65 ed.in.postings.and.those.declare
28480 64 0a 77 69 74 68 20 5c 22 61 63 63 6f 75 6e 74 5c 22 20 64 69 72 65 63 74 69 76 65 73 2e 22 0a d.with.\"account\".directives.".
284a0 20 20 28 6c 65 74 20 28 28 61 63 63 6f 75 6e 74 73 20 28 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e ..(let.((accounts.(ledger-accoun
284c0 74 73 2d 69 6e 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 28 77 68 65 6e 20 6c 65 64 67 65 72 ts-in-buffer))).....(when.ledger
284e0 2d 61 63 63 6f 75 6e 74 73 2d 65 78 63 6c 75 64 65 2d 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 20 -accounts-exclude-function......
28500 20 28 73 65 74 71 20 61 63 63 6f 75 6e 74 73 20 28 63 6c 2d 72 65 6d 6f 76 65 2d 69 66 20 6c 65 .(setq.accounts.(cl-remove-if.le
28520 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 65 78 63 6c 75 64 65 2d 66 75 6e 63 74 69 6f 6e 20 61 dger-accounts-exclude-function.a
28540 63 63 6f 75 6e 74 73 29 29 29 0a 20 20 20 20 28 6d 61 70 63 61 72 20 23 27 63 61 72 20 61 63 63 ccounts))).....(mapcar.#'car.acc
28560 6f 75 6e 74 73 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 ounts)))..(defun.ledger-accounts
28580 2d 6c 69 73 74 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 61 6c 6c -list.()..."Return.a.list.of.all
285a0 20 6b 6e 6f 77 6e 20 61 63 63 6f 75 6e 74 20 6e 61 6d 65 73 20 61 73 20 73 74 72 69 6e 67 73 2e .known.account.names.as.strings.
285c0 0a 4c 6f 6f 6b 73 20 69 6e 20 60 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 66 69 6c 65 27 .Looks.in.`ledger-accounts-file'
285e0 20 69 66 20 73 65 74 2c 20 6f 74 68 65 72 77 69 73 65 20 74 68 65 20 63 75 72 72 65 6e 74 20 62 .if.set,.otherwise.the.current.b
28600 75 66 66 65 72 2e 22 0a 20 20 28 69 66 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 66 69 uffer."...(if.ledger-accounts-fi
28620 6c 65 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 66 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 le.......(let.((f.ledger-account
28640 73 2d 66 69 6c 65 29 29 0a 20 20 20 20 20 20 20 20 28 77 69 74 68 2d 74 65 6d 70 2d 62 75 66 66 s-file)).........(with-temp-buff
28660 65 72 0a 20 20 20 20 20 20 20 20 20 20 28 69 6e 73 65 72 74 2d 66 69 6c 65 2d 63 6f 6e 74 65 6e er...........(insert-file-conten
28680 74 73 20 66 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 ts.f)...........(ledger-accounts
286a0 2d 6c 69 73 74 2d 69 6e 2d 62 75 66 66 65 72 29 29 29 0a 20 20 20 20 28 6c 65 64 67 65 72 2d 61 -list-in-buffer))).....(ledger-a
286c0 63 63 6f 75 6e 74 73 2d 6c 69 73 74 2d 69 6e 2d 62 75 66 66 65 72 29 29 29 0a 0a 28 64 65 66 75 ccounts-list-in-buffer)))..(defu
286e0 6e 20 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 74 72 65 65 20 28 29 0a 20 20 22 52 65 74 n.ledger-accounts-tree.()..."Ret
28700 75 72 6e 20 61 20 74 72 65 65 20 6f 66 20 61 6c 6c 20 61 63 63 6f 75 6e 74 73 20 69 6e 20 74 68 urn.a.tree.of.all.accounts.in.th
28720 65 20 62 75 66 66 65 72 2e 0a 0a 45 61 63 68 20 6e 6f 64 65 20 69 6e 20 74 68 65 20 74 72 65 65 e.buffer...Each.node.in.the.tree
28740 20 69 73 20 61 20 6c 69 73 74 20 28 74 20 2e 20 43 48 49 4c 44 52 45 4e 29 2c 20 77 68 65 72 65 .is.a.list.(t...CHILDREN),.where
28760 20 43 48 49 4c 44 52 45 4e 20 69 73 0a 61 6e 20 61 6c 69 73 74 20 28 41 43 43 4f 55 4e 54 2d 45 .CHILDREN.is.an.alist.(ACCOUNT-E
28780 4c 45 4d 45 4e 54 20 2e 20 4e 4f 44 45 29 2e 22 0a 20 20 28 6c 65 74 20 28 28 61 63 63 6f 75 6e LEMENT...NODE)."...(let.((accoun
287a0 74 2d 74 72 65 65 20 28 6c 69 73 74 20 74 29 29 29 0a 20 20 20 20 28 64 6f 6c 69 73 74 20 28 61 t-tree.(list.t))).....(dolist.(a
287c0 63 63 6f 75 6e 74 20 28 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 6c 69 73 74 29 20 61 63 ccount.(ledger-accounts-list).ac
287e0 63 6f 75 6e 74 2d 74 72 65 65 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 72 6f 6f 74 20 61 63 count-tree).......(let.((root.ac
28800 63 6f 75 6e 74 2d 74 72 65 65 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 61 63 63 6f 75 6e 74 count-tree).............(account
28820 2d 65 6c 65 6d 65 6e 74 73 20 28 73 70 6c 69 74 2d 73 74 72 69 6e 67 20 61 63 63 6f 75 6e 74 20 -elements.(split-string.account.
28840 22 3a 22 29 29 29 0a 20 20 20 20 20 20 20 20 28 64 6f 6c 69 73 74 20 28 65 6c 65 6d 65 6e 74 20 ":"))).........(dolist.(element.
28860 61 63 63 6f 75 6e 74 2d 65 6c 65 6d 65 6e 74 73 29 0a 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 account-elements)...........(let
28880 20 28 28 6e 6f 64 65 20 28 61 73 73 6f 63 20 65 6c 65 6d 65 6e 74 20 72 6f 6f 74 29 29 29 0a 20 .((node.(assoc.element.root)))..
288a0 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 6e 6f 64 65 0a 20 20 20 20 20 20 20 20 ...........(unless.node.........
288c0 20 20 20 20 20 20 28 73 65 74 71 20 6e 6f 64 65 20 28 63 6f 6e 73 20 65 6c 65 6d 65 6e 74 20 28 ......(setq.node.(cons.element.(
288e0 6c 69 73 74 20 74 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6e 63 6f 6e 63 20 72 list.t)))...............(nconc.r
28900 6f 6f 74 20 28 6c 69 73 74 20 6e 6f 64 65 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 oot.(list.node))).............(s
28920 65 74 71 20 72 6f 6f 74 20 28 63 64 72 20 6e 6f 64 65 29 29 29 29 29 29 29 29 0a 0a 28 64 65 66 etq.root.(cdr.node))))))))..(def
28940 75 6e 20 6c 65 64 67 65 72 2d 63 6f 6d 70 6c 65 74 65 2d 61 63 63 6f 75 6e 74 2d 6e 65 78 74 2d un.ledger-complete-account-next-
28960 73 74 65 70 73 20 28 29 0a 20 20 22 52 65 74 75 72 6e 20 61 20 6c 69 73 74 20 6f 66 20 6e 65 78 steps.()..."Return.a.list.of.nex
28980 74 20 73 74 65 70 73 20 66 6f 72 20 74 68 65 20 61 63 63 6f 75 6e 74 20 70 72 65 66 69 78 20 61 t.steps.for.the.account.prefix.a
289a0 74 20 70 6f 69 6e 74 2e 22 0a 20 20 3b 3b 20 46 49 58 4d 45 3a 20 54 68 69 73 20 66 75 6e 63 74 t.point."...;;.FIXME:.This.funct
289c0 69 6f 6e 20 69 73 20 63 61 6c 6c 65 64 20 66 72 6f 6d 20 60 6c 65 64 67 65 72 2d 63 6f 6d 70 6c ion.is.called.from.`ledger-compl
289e0 65 74 65 2d 61 74 2d 70 6f 69 6e 74 27 20 77 68 69 63 68 0a 20 20 3b 3b 20 61 6c 72 65 61 64 79 ete-at-point'.which...;;.already
28a00 20 6b 6e 6f 77 73 20 74 68 65 20 62 6f 75 6e 64 73 20 6f 66 20 74 68 65 20 61 63 63 6f 75 6e 74 .knows.the.bounds.of.the.account
28a20 20 6e 61 6d 65 20 74 6f 20 63 6f 6d 70 6c 65 74 65 2e 20 20 43 6f 6d 70 75 74 69 6e 67 20 69 74 .name.to.complete...Computing.it
28a40 0a 20 20 3b 3b 20 61 67 61 69 6e 20 68 65 72 65 20 69 73 20 77 61 73 74 65 66 75 6c 2e 0a 20 20 ...;;.again.here.is.wasteful....
28a60 28 6c 65 74 2a 20 28 28 63 75 72 72 65 6e 74 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e (let*.((current.(buffer-substrin
28a80 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 g....................(save-excur
28aa0 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 sion......................(unles
28ac0 73 20 28 65 71 20 27 70 6f 73 74 69 6e 67 20 28 6c 65 64 67 65 72 2d 74 68 69 6e 67 2d 61 74 2d s.(eq.'posting.(ledger-thing-at-
28ae0 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 point))........................(
28b00 65 72 72 6f 72 20 22 4e 6f 74 20 6f 6e 20 61 20 70 6f 73 74 69 6e 67 20 6c 69 6e 65 22 29 29 0a error."Not.on.a.posting.line")).
28b20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 29 0a 20 20 .....................(point))...
28b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 .................(point)))......
28b60 20 20 20 20 28 65 6c 65 6d 65 6e 74 73 20 28 61 6e 64 20 63 75 72 72 65 6e 74 20 28 73 70 6c 69 ....(elements.(and.current.(spli
28b80 74 2d 73 74 72 69 6e 67 20 63 75 72 72 65 6e 74 20 22 3a 22 29 29 29 0a 20 20 20 20 20 20 20 20 t-string.current.":"))).........
28ba0 20 28 72 6f 6f 74 20 28 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 74 72 65 65 29 29 0a 20 .(root.(ledger-accounts-tree))..
28bc0 20 20 20 20 20 20 20 20 28 70 72 65 66 69 78 20 6e 69 6c 29 29 0a 20 20 20 20 28 77 68 69 6c 65 ........(prefix.nil)).....(while
28be0 20 28 63 64 72 20 65 6c 65 6d 65 6e 74 73 29 0a 20 20 20 20 20 20 28 6c 65 74 20 28 28 78 61 63 .(cdr.elements).......(let.((xac
28c00 74 20 28 61 73 73 6f 63 20 28 63 61 72 20 65 6c 65 6d 65 6e 74 73 29 20 72 6f 6f 74 29 29 29 0a t.(assoc.(car.elements).root))).
28c20 20 20 20 20 20 20 20 20 28 69 66 20 78 61 63 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 ........(if.xact.............(se
28c40 74 71 20 70 72 65 66 69 78 20 28 63 6f 6e 63 61 74 20 70 72 65 66 69 78 20 28 61 6e 64 20 70 72 tq.prefix.(concat.prefix.(and.pr
28c60 65 66 69 78 20 22 3a 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 efix.":").......................
28c80 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 65 6c 65 6d 65 6e 74 73 29 29 0a 20 20 20 20 20 ...........(car.elements))......
28ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 72 6f 6f 74 20 28 63 64 72 20 78 61 63 74 29 29 0a 20 20 .............root.(cdr.xact))...
28cc0 20 20 20 20 20 20 20 20 28 73 65 74 71 20 72 6f 6f 74 20 6e 69 6c 20 65 6c 65 6d 65 6e 74 73 20 ........(setq.root.nil.elements.
28ce0 6e 69 6c 29 29 29 0a 20 20 20 20 20 20 28 73 65 74 71 20 65 6c 65 6d 65 6e 74 73 20 28 63 64 72 nil))).......(setq.elements.(cdr
28d00 20 65 6c 65 6d 65 6e 74 73 29 29 29 0a 20 20 20 20 28 73 65 74 71 20 72 6f 6f 74 20 28 64 65 6c .elements))).....(setq.root.(del
28d20 65 74 65 20 28 6c 69 73 74 20 28 63 61 72 20 65 6c 65 6d 65 6e 74 73 29 20 74 29 20 72 6f 6f 74 ete.(list.(car.elements).t).root
28d40 29 29 0a 20 20 20 20 28 61 6e 64 20 72 6f 6f 74 0a 20 20 20 20 20 20 20 20 20 28 73 6f 72 74 0a )).....(and.root..........(sort.
28d60 20 20 20 20 20 20 20 20 20 20 28 6d 61 70 63 61 72 20 28 66 75 6e 63 74 69 6f 6e 0a 20 20 20 20 ..........(mapcar.(function.....
28d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 64 61 20 28 78 29 0a 20 20 20 20 20 ...............(lambda.(x)......
28da0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 74 20 28 28 74 65 72 6d 20 28 69 66 20 ................(let.((term.(if.
28dc0 70 72 65 66 69 78 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 prefix..........................
28de0 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 70 72 65 66 69 78 20 22 3a 22 20 28 ............(concat.prefix.":".(
28e00 63 61 72 20 78 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 car.x)).........................
28e20 20 20 20 20 20 20 20 20 20 20 20 28 63 61 72 20 78 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 ...........(car.x))))...........
28e40 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 28 3e 20 28 6c 65 6e 67 74 68 20 28 63 64 72 .............(if.(>.(length.(cdr
28e60 20 78 29 29 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .x)).1).........................
28e80 20 20 20 28 63 6f 6e 63 61 74 20 74 65 72 6d 20 22 3a 22 29 0a 20 20 20 20 20 20 20 20 20 20 20 ...(concat.term.":")............
28ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 65 72 6d 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 ..............term))))..........
28ec0 20 20 20 20 20 20 20 20 20 28 63 64 72 20 72 6f 6f 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 27 .........(cdr.root))...........'
28ee0 73 74 72 69 6e 67 2d 6c 65 73 73 70 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d string-lessp))))..(defun.ledger-
28f00 63 6f 6d 70 6c 65 74 65 2d 64 61 74 65 20 28 6d 6f 6e 74 68 2d 73 74 72 69 6e 67 20 64 61 79 2d complete-date.(month-string.day-
28f20 73 74 72 69 6e 67 29 0a 20 20 22 43 6f 6d 70 6c 65 74 65 20 61 20 64 61 74 65 2e 22 0a 20 20 28 string)..."Complete.a.date."...(
28f40 6c 65 74 2a 0a 20 20 20 20 20 20 28 28 6e 6f 77 20 28 63 75 72 72 65 6e 74 2d 74 69 6d 65 29 29 let*.......((now.(current-time))
28f60 0a 20 20 20 20 20 20 20 28 64 65 63 6f 64 65 64 20 28 64 65 63 6f 64 65 2d 74 69 6d 65 20 6e 6f ........(decoded.(decode-time.no
28f80 77 29 29 0a 20 20 20 20 20 20 20 28 74 68 69 73 2d 6d 6f 6e 74 68 20 28 6e 74 68 20 34 20 64 65 w))........(this-month.(nth.4.de
28fa0 63 6f 64 65 64 29 29 0a 20 20 20 20 20 20 20 28 74 68 69 73 2d 79 65 61 72 20 28 6e 74 68 20 35 coded))........(this-year.(nth.5
28fc0 20 64 65 63 6f 64 65 64 29 29 0a 20 20 20 20 20 20 20 28 6c 61 73 74 2d 6d 6f 6e 74 68 20 28 69 .decoded))........(last-month.(i
28fe0 66 20 28 3e 20 74 68 69 73 2d 6d 6f 6e 74 68 20 31 29 20 28 31 2d 20 74 68 69 73 2d 6d 6f 6e 74 f.(>.this-month.1).(1-.this-mont
29000 68 29 20 31 32 29 29 0a 20 20 20 20 20 20 20 28 6c 61 73 74 2d 79 65 61 72 20 28 31 2d 20 74 68 h).12))........(last-year.(1-.th
29020 69 73 2d 79 65 61 72 29 29 0a 20 20 20 20 20 20 20 28 6c 61 73 74 2d 6d 6f 6e 74 68 2d 79 65 61 is-year))........(last-month-yea
29040 72 20 28 69 66 20 28 3e 20 74 68 69 73 2d 6d 6f 6e 74 68 20 31 29 20 74 68 69 73 2d 79 65 61 72 r.(if.(>.this-month.1).this-year
29060 20 6c 61 73 74 2d 79 65 61 72 29 29 0a 20 20 20 20 20 20 20 28 6d 6f 6e 74 68 20 28 61 6e 64 20 .last-year))........(month.(and.
29080 6d 6f 6e 74 68 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 month-string....................
290a0 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 6d 6f 6e 74 68 2d 73 74 72 69 6e 67 29 29 (string-to-number.month-string))
290c0 29 0a 20 20 20 20 20 20 20 28 64 61 79 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 )........(day.(string-to-number.
290e0 64 61 79 2d 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 20 20 28 64 61 74 65 73 20 28 6c 69 73 74 day-string))........(dates.(list
29100 20 28 65 6e 63 6f 64 65 2d 74 69 6d 65 20 30 20 30 20 30 20 64 61 79 20 28 6f 72 20 6d 6f 6e 74 .(encode-time.0.0.0.day.(or.mont
29120 68 20 74 68 69 73 2d 6d 6f 6e 74 68 29 20 74 68 69 73 2d 79 65 61 72 29 0a 20 20 20 20 20 20 20 h.this-month).this-year)........
29140 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 6d 6f 6e 74 68 0a 20 20 20 20 20 20 20 20 20 .............(if.month..........
29160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6e 63 6f 64 65 2d 74 69 6d 65 20 30 20 30 20 ...............(encode-time.0.0.
29180 30 20 64 61 79 20 6d 6f 6e 74 68 20 6c 61 73 74 2d 79 65 61 72 29 0a 20 20 20 20 20 20 20 20 20 0.day.month.last-year)..........
291a0 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6e 63 6f 64 65 2d 74 69 6d 65 20 30 20 30 20 30 20 .............(encode-time.0.0.0.
291c0 64 61 79 20 6c 61 73 74 2d 6d 6f 6e 74 68 20 6c 61 73 74 2d 6d 6f 6e 74 68 2d 79 65 61 72 29 29 day.last-month.last-month-year))
291e0 29 29 29 0a 20 20 20 20 28 6c 61 6d 62 64 61 20 28 5f 73 74 72 69 6e 67 20 5f 70 72 65 64 69 63 ))).....(lambda.(_string._predic
29200 61 74 65 20 5f 61 6c 6c 29 0a 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 6c 65 64 67 65 72 2d ate._all).......(concat.(ledger-
29220 66 6f 72 6d 61 74 2d 64 61 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d 66 format-date................(cl-f
29240 69 6e 64 2d 69 66 20 28 6c 61 6d 62 64 61 20 28 64 61 74 65 29 20 28 6e 6f 74 20 28 74 69 6d 65 ind-if.(lambda.(date).(not.(time
29260 2d 6c 65 73 73 2d 70 20 6e 6f 77 20 64 61 74 65 29 29 29 20 64 61 74 65 73 29 29 0a 20 20 20 20 -less-p.now.date))).dates)).....
29280 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 3d 20 28 70 6f 69 6e 74 29 20 28 6c 69 6e 65 2d ..........(and.(=.(point).(line-
292a0 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 20 22 20 22 29 29 29 29 29 0a 0a 28 64 65 66 75 6e 20 end-position)).".")))))..(defun.
292c0 6c 65 64 67 65 72 2d 63 6f 6d 70 6c 65 74 65 2d 65 66 66 65 63 74 69 76 65 2d 64 61 74 65 0a 20 ledger-complete-effective-date..
292e0 20 20 20 28 74 78 2d 79 65 61 72 2d 73 74 72 69 6e 67 20 74 78 2d 6d 6f 6e 74 68 2d 73 74 72 69 ...(tx-year-string.tx-month-stri
29300 6e 67 20 74 78 2d 64 61 79 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ng.tx-day-string................
29320 20 20 20 20 20 6d 6f 6e 74 68 2d 73 74 72 69 6e 67 20 64 61 79 2d 73 74 72 69 6e 67 29 0a 20 20 .....month-string.day-string)...
29340 22 43 6f 6d 70 6c 65 74 65 20 61 6e 20 65 66 66 65 63 74 69 76 65 20 64 61 74 65 2e 22 0a 20 20 "Complete.an.effective.date."...
29360 28 6c 65 74 2a 0a 20 20 20 20 20 20 28 28 74 78 2d 79 65 61 72 20 28 73 74 72 69 6e 67 2d 74 6f (let*.......((tx-year.(string-to
29380 2d 6e 75 6d 62 65 72 20 74 78 2d 79 65 61 72 2d 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 20 20 -number.tx-year-string))........
293a0 28 74 78 2d 6d 6f 6e 74 68 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 74 78 2d 6d (tx-month.(string-to-number.tx-m
293c0 6f 6e 74 68 2d 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 20 20 28 74 78 2d 64 61 79 20 28 73 74 onth-string))........(tx-day.(st
293e0 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 74 78 2d 64 61 79 2d 73 74 72 69 6e 67 29 29 0a 20 ring-to-number.tx-day-string))..
29400 20 20 20 20 20 20 28 74 78 2d 64 61 74 65 20 28 65 6e 63 6f 64 65 2d 74 69 6d 65 20 30 20 30 20 ......(tx-date.(encode-time.0.0.
29420 30 20 74 78 2d 64 61 79 20 74 78 2d 6d 6f 6e 74 68 20 74 78 2d 79 65 61 72 29 29 0a 20 20 20 20 0.tx-day.tx-month.tx-year)).....
29440 20 20 20 28 6e 65 78 74 2d 6d 6f 6e 74 68 20 28 69 66 20 28 3c 20 74 78 2d 6d 6f 6e 74 68 20 31 ...(next-month.(if.(<.tx-month.1
29460 32 29 20 28 31 2b 20 74 78 2d 6d 6f 6e 74 68 29 20 31 29 29 0a 20 20 20 20 20 20 20 28 6e 65 78 2).(1+.tx-month).1))........(nex
29480 74 2d 79 65 61 72 20 28 31 2b 20 74 78 2d 79 65 61 72 29 29 0a 20 20 20 20 20 20 20 28 6e 65 78 t-year.(1+.tx-year))........(nex
294a0 74 2d 6d 6f 6e 74 68 2d 79 65 61 72 20 28 69 66 20 28 3c 20 74 78 2d 6d 6f 6e 74 68 20 31 32 29 t-month-year.(if.(<.tx-month.12)
294c0 20 74 78 2d 79 65 61 72 20 6e 65 78 74 2d 79 65 61 72 29 29 0a 20 20 20 20 20 20 20 28 6d 6f 6e .tx-year.next-year))........(mon
294e0 74 68 20 28 61 6e 64 20 6d 6f 6e 74 68 2d 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 th.(and.month-string............
29500 20 20 20 20 20 20 20 20 28 73 74 72 69 6e 67 2d 74 6f 2d 6e 75 6d 62 65 72 20 6d 6f 6e 74 68 2d ........(string-to-number.month-
29520 73 74 72 69 6e 67 29 29 29 0a 20 20 20 20 20 20 20 28 64 61 79 20 28 73 74 72 69 6e 67 2d 74 6f string)))........(day.(string-to
29540 2d 6e 75 6d 62 65 72 20 64 61 79 2d 73 74 72 69 6e 67 29 29 0a 20 20 20 20 20 20 20 28 64 61 74 -number.day-string))........(dat
29560 65 73 20 28 6c 69 73 74 20 28 65 6e 63 6f 64 65 2d 74 69 6d 65 20 30 20 30 20 30 20 64 61 79 20 es.(list.(encode-time.0.0.0.day.
29580 28 6f 72 20 6d 6f 6e 74 68 20 74 78 2d 6d 6f 6e 74 68 29 20 74 78 2d 79 65 61 72 29 0a 20 20 20 (or.month.tx-month).tx-year)....
295a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 66 20 6d 6f 6e 74 68 0a 20 20 20 20 20 .................(if.month......
295c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6e 63 6f 64 65 2d 74 69 6d 65 20 ...................(encode-time.
295e0 30 20 30 20 30 20 64 61 79 20 6d 6f 6e 74 68 20 6e 65 78 74 2d 79 65 61 72 29 0a 20 20 20 20 20 0.0.0.day.month.next-year)......
29600 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 65 6e 63 6f 64 65 2d 74 69 6d 65 20 30 20 .................(encode-time.0.
29620 30 20 30 20 64 61 79 20 6e 65 78 74 2d 6d 6f 6e 74 68 20 6e 65 78 74 2d 6d 6f 6e 74 68 2d 79 65 0.0.day.next-month.next-month-ye
29640 61 72 29 29 29 29 29 0a 20 20 20 20 28 6c 61 6d 62 64 61 20 28 5f 73 74 72 69 6e 67 20 5f 70 72 ar))))).....(lambda.(_string._pr
29660 65 64 69 63 61 74 65 20 5f 61 6c 6c 29 0a 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 28 6c 65 64 edicate._all).......(concat.(led
29680 67 65 72 2d 66 6f 72 6d 61 74 2d 64 61 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ger-format-date................(
296a0 63 6c 2d 66 69 6e 64 2d 69 66 20 28 6c 61 6d 62 64 61 20 28 64 61 74 65 29 20 28 6e 6f 74 20 28 cl-find-if.(lambda.(date).(not.(
296c0 74 69 6d 65 2d 6c 65 73 73 2d 70 20 64 61 74 65 20 74 78 2d 64 61 74 65 29 29 29 20 64 61 74 65 time-less-p.date.tx-date))).date
296e0 73 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 6e 64 20 28 3d 20 28 70 6f 69 6e 74 s))...............(and.(=.(point
29700 29 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 20 22 20 22 29 29 29 29 29 0a ).(line-end-position))."."))))).
29720 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 63 6f 6d 70 6c 65 74 65 2d 61 74 2d 70 6f 69 6e 74 .(defun.ledger-complete-at-point
29740 20 28 29 0a 20 20 22 44 6f 20 61 70 70 72 6f 70 72 69 61 74 65 20 63 6f 6d 70 6c 65 74 69 6f 6e .()..."Do.appropriate.completion
29760 20 66 6f 72 20 74 68 65 20 74 68 69 6e 67 20 61 74 20 70 6f 69 6e 74 2e 22 0a 20 20 28 6c 65 74 .for.the.thing.at.point."...(let
29780 20 28 28 65 6e 64 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 73 74 61 72 74 20 63 6f .((end.(point)).........start.co
297a0 6c 6c 65 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 20 72 65 61 6c 69 67 6e 2d 61 66 74 65 72 0a 20 llection.........realign-after..
297c0 20 20 20 20 20 20 20 64 65 6c 65 74 65 2d 73 75 66 66 69 78 29 0a 20 20 20 20 28 63 6f 6e 64 20 .......delete-suffix).....(cond.
297e0 28 3b 3b 20 44 61 74 65 0a 20 20 20 20 20 20 20 20 20 20 20 28 6c 6f 6f 6b 69 6e 67 2d 62 61 63 (;;.Date............(looking-bac
29800 6b 20 28 63 6f 6e 63 61 74 20 22 5e 22 20 6c 65 64 67 65 72 2d 69 6e 63 6f 6d 70 6c 65 74 65 2d k.(concat."^".ledger-incomplete-
29820 64 61 74 65 2d 72 65 67 65 78 70 29 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 date-regexp).(line-beginning-pos
29840 69 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 63 6f 6c 6c 65 63 74 ition))............(setq.collect
29860 69 6f 6e 20 28 6c 65 64 67 65 72 2d 63 6f 6d 70 6c 65 74 65 2d 64 61 74 65 20 28 6d 61 74 63 68 ion.(ledger-complete-date.(match
29880 2d 73 74 72 69 6e 67 20 31 29 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 32 29 29 0a 20 20 20 -string.1).(match-string.2))....
298a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 74 61 72 74 20 28 6d 61 74 63 68 2d 62 65 67 69 6e ..............start.(match-begin
298c0 6e 69 6e 67 20 30 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 64 65 6c 65 74 65 2d ning.0)..................delete-
298e0 73 75 66 66 69 78 20 28 73 61 76 65 2d 6d 61 74 63 68 2d 64 61 74 61 0a 20 20 20 20 20 20 20 20 suffix.(save-match-data.........
29900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 .........................(when.(
29920 6c 6f 6f 6b 69 6e 67 2d 61 74 20 28 72 78 20 28 6f 6e 65 2d 6f 72 2d 6d 6f 72 65 20 28 6f 72 20 looking-at.(rx.(one-or-more.(or.
29940 64 69 67 69 74 20 28 61 6e 79 20 3f 2f 20 3f 2d 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 digit.(any.?/.?-)))))...........
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 28 6c 65 6e 67 74 68 .........................(length
29980 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 30 29 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 .(match-string.0))))))..........
299a0 20 28 3b 3b 20 45 66 66 65 63 74 69 76 65 20 64 61 74 65 73 0a 20 20 20 20 20 20 20 20 20 20 20 .(;;.Effective.dates............
299c0 28 6c 6f 6f 6b 69 6e 67 2d 62 61 63 6b 20 28 63 6f 6e 63 61 74 20 22 5e 22 20 6c 65 64 67 65 72 (looking-back.(concat."^".ledger
299e0 2d 69 73 6f 2d 64 61 74 65 2d 72 65 67 65 78 70 20 22 3d 22 20 6c 65 64 67 65 72 2d 69 6e 63 6f -iso-date-regexp."=".ledger-inco
29a00 6d 70 6c 65 74 65 2d 64 61 74 65 2d 72 65 67 65 78 70 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 mplete-date-regexp).............
29a20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 .............(line-beginning-pos
29a40 69 74 69 6f 6e 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 73 74 61 72 74 20 28 ition))............(setq.start.(
29a60 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)).......
29a80 20 20 20 20 20 28 73 65 74 71 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 28 6c 65 64 67 65 72 2d 63 6f .....(setq.collection.(ledger-co
29aa0 6d 70 6c 65 74 65 2d 65 66 66 65 63 74 69 76 65 2d 64 61 74 65 0a 20 20 20 20 20 20 20 20 20 20 mplete-effective-date...........
29ac0 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
29ae0 20 32 29 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 33 29 20 28 6d 61 74 63 68 2d 73 74 72 69 .2).(match-string.3).(match-stri
29b00 6e 67 20 34 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ng.4)...........................
29b20 20 20 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 35 29 20 28 6d 61 74 63 68 2d 73 74 72 69 6e ...(match-string.5).(match-strin
29b40 67 20 36 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 3b 3b 20 50 61 79 65 65 73 0a 20 20 20 g.6))))...........(;;.Payees....
29b60 20 20 20 20 20 20 20 20 28 65 71 20 27 74 72 61 6e 73 61 63 74 69 6f 6e 0a 20 20 20 20 20 20 20 ........(eq.'transaction........
29b80 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.........
29ba0 20 20 20 20 20 20 20 20 20 28 70 72 6f 67 31 20 28 6c 65 64 67 65 72 2d 74 68 69 6e 67 2d 61 74 .........(prog1.(ledger-thing-at
29bc0 2d 70 6f 69 6e 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 -point)....................(setq
29be0 20 73 74 61 72 74 20 28 70 6f 69 6e 74 29 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 28 73 .start.(point)))))............(s
29c00 65 74 71 20 63 6f 6c 6c 65 63 74 69 6f 6e 20 23 27 6c 65 64 67 65 72 2d 70 61 79 65 65 73 2d 6c etq.collection.#'ledger-payees-l
29c20 69 73 74 29 29 0a 20 20 20 20 20 20 20 20 20 20 28 3b 3b 20 41 63 63 6f 75 6e 74 73 0a 20 20 20 ist))...........(;;.Accounts....
29c40 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.........
29c60 20 20 20 20 20 28 62 61 63 6b 2d 74 6f 2d 69 6e 64 65 6e 74 61 74 69 6f 6e 29 0a 20 20 20 20 20 .....(back-to-indentation)......
29c80 20 20 20 20 20 20 20 20 28 73 6b 69 70 2d 63 68 61 72 73 2d 66 6f 72 77 61 72 64 20 22 28 5b 22 ........(skip-chars-forward."(["
29ca0 29 20 3b 3b 20 66 6f 72 20 76 69 72 74 75 61 6c 20 61 63 63 6f 75 6e 74 73 0a 20 20 20 20 20 20 ).;;.for.virtual.accounts.......
29cc0 20 20 20 20 20 20 20 28 73 65 74 71 20 73 74 61 72 74 20 28 70 6f 69 6e 74 29 29 29 0a 20 20 20 .......(setq.start.(point)))....
29ce0 20 20 20 20 20 20 20 20 28 73 65 74 71 20 64 65 6c 65 74 65 2d 73 75 66 66 69 78 20 28 73 61 76 ........(setq.delete-suffix.(sav
29d00 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e-excursion.....................
29d20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 28 73 65 61 72 63 68 2d 66 6f 72 77 61 .............(when.(search-forwa
29d40 72 64 2d 72 65 67 65 78 70 20 28 72 78 20 28 6f 72 20 65 6f 6c 20 28 6f 72 20 3f 5c 74 20 28 72 rd-regexp.(rx.(or.eol.(or.?\t.(r
29d60 65 70 65 61 74 20 32 20 73 70 61 63 65 29 29 29 29 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 epeat.2.space)))).(line-end-posi
29d80 74 69 6f 6e 29 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 tion).t)........................
29da0 20 20 20 20 20 20 20 20 20 20 20 20 28 2d 20 28 6d 61 74 63 68 2d 62 65 67 69 6e 6e 69 6e 67 20 ............(-.(match-beginning.
29dc0 30 29 20 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 72 65 61 6c 69 0).end)))..................reali
29de0 67 6e 2d 61 66 74 65 72 20 74 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c gn-after.t..................coll
29e00 65 63 74 69 6f 6e 20 28 69 66 20 6c 65 64 67 65 72 2d 63 6f 6d 70 6c 65 74 65 2d 69 6e 2d 73 74 ection.(if.ledger-complete-in-st
29e20 65 70 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 eps.............................
29e40 20 20 20 20 23 27 6c 65 64 67 65 72 2d 63 6f 6d 70 6c 65 74 65 2d 61 63 63 6f 75 6e 74 2d 6e 65 ....#'ledger-complete-account-ne
29e60 78 74 2d 73 74 65 70 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 xt-steps........................
29e80 20 20 20 20 20 20 20 23 27 6c 65 64 67 65 72 2d 61 63 63 6f 75 6e 74 73 2d 6c 69 73 74 29 29 29 .......#'ledger-accounts-list)))
29ea0 29 0a 20 20 20 20 28 77 68 65 6e 20 63 6f 6c 6c 65 63 74 69 6f 6e 0a 20 20 20 20 20 20 28 6c 65 ).....(when.collection.......(le
29ec0 74 20 28 28 70 72 65 66 69 78 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d t.((prefix.(buffer-substring-no-
29ee0 70 72 6f 70 65 72 74 69 65 73 20 73 74 61 72 74 20 65 6e 64 29 29 29 0a 20 20 20 20 20 20 20 20 properties.start.end))).........
29f00 28 6c 69 73 74 20 73 74 61 72 74 20 65 6e 64 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 69 (list.start.end...............(i
29f20 66 20 28 66 75 6e 63 74 69 6f 6e 70 20 63 6f 6c 6c 65 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 20 f.(functionp.collection)........
29f40 20 20 20 20 20 20 20 20 20 20 20 28 63 6f 6d 70 6c 65 74 69 6f 6e 2d 74 61 62 6c 65 2d 77 69 74 ...........(completion-table-wit
29f60 68 2d 63 61 63 68 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 61 6d 62 h-cache....................(lamb
29f80 64 61 20 28 5f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 63 6c 2d da.(_)......................(cl-
29fa0 72 65 6d 6f 76 65 2d 69 66 20 28 61 70 70 6c 79 2d 70 61 72 74 69 61 6c 6c 79 20 27 73 74 72 69 remove-if.(apply-partially.'stri
29fc0 6e 67 3d 20 70 72 65 66 69 78 29 20 28 66 75 6e 63 61 6c 6c 20 63 6f 6c 6c 65 63 74 69 6f 6e 29 ng=.prefix).(funcall.collection)
29fe0 29 29 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63 6f 6c 6c 65 63 74 69 6f 6e 29 0a ))).................collection).
2a000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 3a 65 78 69 74 2d 66 75 6e 63 74 69 6f 6e 20 28 6c 61 ..............:exit-function.(la
2a020 6d 62 64 61 20 28 26 72 65 73 74 20 5f 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 mbda.(&rest._)..................
2a040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 77 68 65 6e 20 64 65 6c 65 74 65 2d 73 75 66 66 69 ..............(when.delete-suffi
2a060 78 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 x...............................
2a080 20 20 20 28 64 65 6c 65 74 65 2d 63 68 61 72 20 64 65 6c 65 74 65 2d 73 75 66 66 69 78 29 29 0a ...(delete-char.delete-suffix)).
2a0a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ...............................(
2a0c0 77 68 65 6e 20 28 61 6e 64 20 72 65 61 6c 69 67 6e 2d 61 66 74 65 72 20 6c 65 64 67 65 72 2d 70 when.(and.realign-after.ledger-p
2a0e0 6f 73 74 2d 61 75 74 6f 2d 61 6c 69 67 6e 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ost-auto-align).................
2a100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 65 64 67 65 72 2d 70 6f 73 74 2d 61 6c .................(ledger-post-al
2a120 69 67 6e 2d 70 6f 73 74 69 6e 67 73 20 28 6c 69 6e 65 2d 62 65 67 69 6e 6e 69 6e 67 2d 70 6f 73 ign-postings.(line-beginning-pos
2a140 69 74 69 6f 6e 29 20 28 6c 69 6e 65 2d 65 6e 64 2d 70 6f 73 69 74 69 6f 6e 29 29 29 29 29 29 29 ition).(line-end-position)))))))
2a160 29 29 0a 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 74 72 69 6d 2d 74 72 61 69 6c 69 6e 67 2d ))..(defun.ledger-trim-trailing-
2a180 77 68 69 74 65 73 70 61 63 65 20 28 73 74 72 29 0a 20 20 28 72 65 70 6c 61 63 65 2d 72 65 67 65 whitespace.(str)...(replace-rege
2a1a0 78 70 2d 69 6e 2d 73 74 72 69 6e 67 20 22 5b 20 5c 74 5d 2a 24 22 20 22 22 20 73 74 72 29 29 0a xp-in-string."[.\t]*$"."".str)).
2a1c0 0a 28 64 65 66 75 6e 20 6c 65 64 67 65 72 2d 66 75 6c 6c 79 2d 63 6f 6d 70 6c 65 74 65 2d 78 61 .(defun.ledger-fully-complete-xa
2a1e0 63 74 20 28 29 0a 20 20 22 43 6f 6d 70 6c 65 74 65 73 20 61 20 74 72 61 6e 73 61 63 74 69 6f 6e ct.()..."Completes.a.transaction
2a200 20 69 66 20 74 68 65 72 65 20 69 73 20 61 6e 6f 74 68 65 72 20 6d 61 74 63 68 69 6e 67 20 70 61 .if.there.is.another.matching.pa
2a220 79 65 65 20 69 6e 20 74 68 65 20 62 75 66 66 65 72 2e 0a 0a 49 6e 74 65 72 61 63 74 69 76 65 6c yee.in.the.buffer...Interactivel
2a240 79 2c 20 69 66 20 70 6f 69 6e 74 20 69 73 20 61 66 74 65 72 20 61 20 70 61 79 65 65 2c 20 63 6f y,.if.point.is.after.a.payee,.co
2a260 6d 70 6c 65 74 65 20 74 68 65 0a 74 72 61 6e 73 61 63 74 69 6f 6e 20 77 69 74 68 20 74 68 65 20 mplete.the.transaction.with.the.
2a280 64 65 74 61 69 6c 73 20 66 72 6f 6d 20 74 68 65 20 6c 61 73 74 20 74 72 61 6e 73 61 63 74 69 6f details.from.the.last.transactio
2a2a0 6e 20 74 6f 20 74 68 61 74 0a 70 61 79 65 65 2e 22 0a 20 20 28 69 6e 74 65 72 61 63 74 69 76 65 n.to.that.payee."...(interactive
2a2c0 29 0a 20 20 28 6c 65 74 2a 20 28 28 6e 61 6d 65 20 28 6c 65 64 67 65 72 2d 74 72 69 6d 2d 74 72 )...(let*.((name.(ledger-trim-tr
2a2e0 61 69 6c 69 6e 67 2d 77 68 69 74 65 73 70 61 63 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ailing-whitespace...............
2a300 20 20 28 62 75 66 66 65 72 2d 73 75 62 73 74 72 69 6e 67 0a 20 20 20 20 20 20 20 20 20 20 20 20 ..(buffer-substring.............
2a320 20 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 20 20 20 20 20 .....(save-excursion............
2a340 20 20 20 20 20 20 20 20 28 75 6e 6c 65 73 73 20 28 65 71 20 28 6c 65 64 67 65 72 2d 74 68 69 6e ........(unless.(eq.(ledger-thin
2a360 67 2d 61 74 2d 70 6f 69 6e 74 29 20 27 74 72 61 6e 73 61 63 74 69 6f 6e 29 0a 20 20 20 20 20 20 g-at-point).'transaction).......
2a380 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 75 73 65 72 2d 65 72 72 6f 72 20 22 43 61 6e 6e ...............(user-error."Cann
2a3a0 6f 74 20 66 75 6c 6c 79 20 63 6f 6d 70 6c 65 74 65 20 78 61 63 74 20 68 65 72 65 22 29 29 0a 20 ot.fully.complete.xact.here"))..
2a3c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 ..................(point))......
2a3e0 20 20 20 20 20 20 20 20 20 20 20 20 28 70 6f 69 6e 74 29 29 29 29 0a 20 20 20 20 20 20 20 20 20 ............(point))))..........
2a400 28 72 65 73 74 2d 6f 66 2d 6e 61 6d 65 20 6e 61 6d 65 29 0a 20 20 20 20 20 20 20 20 20 78 61 63 (rest-of-name.name)..........xac
2a420 74 73 29 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 69 6f 6e 0a 20 20 20 20 20 20 28 77 ts).....(save-excursion.......(w
2a440 68 65 6e 20 28 65 71 20 27 74 72 61 6e 73 61 63 74 69 6f 6e 20 28 6c 65 64 67 65 72 2d 74 68 69 hen.(eq.'transaction.(ledger-thi
2a460 6e 67 2d 61 74 2d 70 6f 69 6e 74 29 29 0a 20 20 20 20 20 20 20 20 28 64 65 6c 65 74 65 2d 72 65 ng-at-point)).........(delete-re
2a480 67 69 6f 6e 20 28 70 6f 69 6e 74 29 20 28 2b 20 28 6c 65 6e 67 74 68 20 6e 61 6d 65 29 20 28 70 gion.(point).(+.(length.name).(p
2a4a0 6f 69 6e 74 29 29 29 0a 20 20 20 20 20 20 20 20 3b 3b 20 53 65 61 72 63 68 20 62 61 63 6b 77 61 oint))).........;;.Search.backwa
2a4c0 72 64 20 66 6f 72 20 61 20 6d 61 74 63 68 69 6e 67 20 70 61 79 65 65 0a 20 20 20 20 20 20 20 20 rd.for.a.matching.payee.........
2a4e0 28 77 68 65 6e 20 28 72 65 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 61 72 64 0a 20 20 20 20 20 20 (when.(re-search-backward.......
2a500 20 20 20 20 20 20 20 20 20 28 63 6f 6e 63 61 74 20 22 5e 5b 30 2d 39 2f 2e 3d 2d 5d 2b 5c 5c 28 .........(concat."^[0-9/.=-]+\\(
2a520 5c 5c 73 2d 2b 5c 5c 2a 5c 5c 29 3f 5c 5c 28 5c 5c 73 2d 2b 28 2e 2a 3f 29 5c 5c 29 3f 5c 5c 73 \\s-+\\*\\)?\\(\\s-+(.*?)\\)?\\s
2a540 2d 2b 5c 5c 28 2e 2a 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 -+\\(.*"........................
2a560 28 72 65 67 65 78 70 2d 71 75 6f 74 65 20 6e 61 6d 65 29 20 22 2e 2a 5c 5c 29 22 29 0a 20 20 20 (regexp-quote.name).".*\\)")....
2a580 20 20 20 20 20 20 20 20 20 20 20 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 ............nil.t)...........(se
2a5a0 74 71 20 72 65 73 74 2d 6f 66 2d 6e 61 6d 65 20 28 6d 61 74 63 68 2d 73 74 72 69 6e 67 20 33 29 tq.rest-of-name.(match-string.3)
2a5c0 29 0a 20 20 20 20 20 20 20 20 20 20 3b 3b 20 53 74 61 72 74 20 63 6f 70 79 69 6e 67 20 74 68 65 )...........;;.Start.copying.the
2a5e0 20 70 6f 73 74 69 6e 67 73 0a 20 20 20 20 20 20 20 20 20 20 28 66 6f 72 77 61 72 64 2d 6c 69 6e .postings...........(forward-lin
2a600 65 29 0a 20 20 20 20 20 20 20 20 20 20 28 73 65 74 71 20 78 61 63 74 73 20 28 62 75 66 66 65 72 e)...........(setq.xacts.(buffer
2a620 2d 73 75 62 73 74 72 69 6e 67 2d 6e 6f 2d 70 72 6f 70 65 72 74 69 65 73 20 28 70 6f 69 6e 74 29 -substring-no-properties.(point)
2a640 20 28 6c 65 64 67 65 72 2d 6e 61 76 69 67 61 74 65 2d 65 6e 64 2d 6f 66 2d 78 61 63 74 29 29 29 .(ledger-navigate-end-of-xact)))
2a660 29 29 29 0a 20 20 20 20 3b 3b 20 49 6e 73 65 72 74 20 72 65 73 74 2d 6f 66 2d 6e 61 6d 65 20 61 ))).....;;.Insert.rest-of-name.a
2a680 6e 64 20 74 68 65 20 70 6f 73 74 69 6e 67 73 0a 20 20 20 20 28 73 61 76 65 2d 65 78 63 75 72 73 nd.the.postings.....(save-excurs
2a6a0 69 6f 6e 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 72 65 73 74 2d 6f 66 2d 6e 61 6d 65 20 3f ion.......(insert.rest-of-name.?
2a6c0 5c 6e 29 0a 20 20 20 20 20 20 28 69 6e 73 65 72 74 20 78 61 63 74 73 29 0a 20 20 20 20 20 20 28 \n).......(insert.xacts).......(
2a6e0 75 6e 6c 65 73 73 20 28 6c 6f 6f 6b 69 6e 67 2d 61 74 2d 70 20 22 5c 6e 5c 6e 22 29 0a 20 20 20 unless.(looking-at-p."\n\n")....
2a700 20 20 20 20 20 28 69 6e 73 65 72 74 20 22 5c 6e 22 29 29 29 0a 20 20 20 20 28 66 6f 72 77 61 72 .....(insert."\n"))).....(forwar
2a720 64 2d 6c 69 6e 65 29 0a 20 20 20 20 28 65 6e 64 2d 6f 66 2d 6c 69 6e 65 29 0a 20 20 20 20 3b 3b d-line).....(end-of-line).....;;
2a740 20 4d 6f 76 65 20 74 6f 20 61 6d 6f 75 6e 74 20 6f 6e 20 66 69 72 73 74 20 70 6f 73 74 69 6e 67 .Move.to.amount.on.first.posting
2a760 20 6c 69 6e 65 0a 20 20 20 20 28 77 68 65 6e 20 28 72 65 2d 73 65 61 72 63 68 2d 62 61 63 6b 77 .line.....(when.(re-search-backw
2a780 61 72 64 20 22 5c 74 5c 5c 7c 20 5b 20 5c 74 5d 22 20 6e 69 6c 20 74 29 0a 20 20 20 20 20 20 28 ard."\t\\|.[.\t]".nil.t).......(
2a7a0 67 6f 74 6f 2d 63 68 61 72 20 28 6d 61 74 63 68 2d 65 6e 64 20 30 29 29 29 29 29 0a 0a 28 70 72 goto-char.(match-end.0)))))..(pr
2a7c0 6f 76 69 64 65 20 27 6c 65 64 67 65 72 2d 63 6f 6d 70 6c 65 74 65 29 0a 0a 3b 3b 3b 20 6c 65 64 ovide.'ledger-complete)..;;;.led
2a7e0 67 65 72 2d 63 6f 6d 70 6c 65 74 65 2e 65 6c 20 65 6e 64 73 20 68 65 72 65 0a 00 00 00 00 00 00 ger-complete.el.ends.here.......
2a800 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 32 33 2e 34 34 35 2f 6c 65 64 67 65 72 2d ledger-mode-20240423.445/ledger-
2a820 6d 6f 64 65 2e 69 6e 66 6f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 mode.info.......................
2a840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a860 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
2a880 30 32 30 36 35 31 32 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 31 36 31 00 20 30 00 00 00 0206512.00000000000.016161..0...
2a8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a900 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...................
2a920 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...................
2a940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2a9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
2aa00 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
2aa20 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.
2aa40 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....
2aa60 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
2aa80 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.
2aaa0 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,.
2aac0 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
2aae0 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
2ab00 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:.....
2ab20 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
2ab40 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
2ab60 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
2ab80 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
2aba0 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
2abc0 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.
2abe0 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
2ac00 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
2ac20 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
2ac40 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
2ac60 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
2ac80 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
2aca0 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
2acc0 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.
2ace0 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
2ad00 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
2ad20 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
2ad40 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
2ad60 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
2ad80 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.
2ada0 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
2adc0 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.
2ade0 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
2ae00 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
2ae20 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
2ae40 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
2ae60 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
2ae80 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
2aea0 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
2aec0 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
2aee0 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
2af00 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
2af20 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
2af40 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
2af60 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
2af80 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
2afa0 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
2afc0 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
2afe0 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.
2b000 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
2b020 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.
2b040 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
2b060 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
2b080 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)..........
2b0a0 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
2b0c0 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
2b0e0 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
2b100 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:.(
2b120 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.*****
2b140 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
2b160 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
2b180 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
2b1a0 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
2b1c0 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.
2b1e0 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
2b200 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
2b220 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
2b240 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
2b260 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
2b280 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
2b2a0 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
2b2c0 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
2b2e0 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
2b300 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
2b320 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:
2b340 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
2b360 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
2b380 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::.*
2b3a0 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
2b3c0 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
2b3e0 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
2b400 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
2b420 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:.
2b440 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,..
2b460 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
2b480 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.*************************
2b4a0 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
2b4c0 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::..
2b4e0 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:
2b500 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
2b520 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
2b540 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
2b560 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.
2b580 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
2b5a0 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
2b5c0 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
2b5e0 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
2b600 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
2b620 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,.
2b640 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
2b660 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
2b680 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..
2b6a0 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
2b6c0 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
2b6e0 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
2b700 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
2b720 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...................
2b740 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
2b760 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-
2b780 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
2b7a0 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
2b7c0 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
2b7e0 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
2b800 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..
2b820 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
2b840 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
2b860 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
2b880 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
2b8a0 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,..
2b8c0 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
2b8e0 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.
2b900 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
2b920 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.
2b940 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
2b960 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
2b980 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
2b9a0 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....
2b9c0 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:.
2b9e0 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
2ba00 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.
2ba20 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.
2ba40 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....
2ba60 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
2ba80 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
2baa0 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
2bac0 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
2bae0 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.
2bb00 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
2bb20 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::.*
2bb40 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::.*.
2bb60 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
2bb80 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:.
2bba0 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
2bbc0 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.
2bbe0 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
2bc00 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.
2bc20 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.
2bc40 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..
2bc60 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
2bc80 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
2bca0 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
2bcc0 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
2bce0 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...
2bd00 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
2bd20 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
2bd40 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
2bd60 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
2bd80 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...
2bda0 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
2bdc0 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
2bde0 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
2be00 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
2be20 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
2be40 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
2be60 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.
2be80 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
2bea0 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
2bec0 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
2bee0 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
2bf00 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.
2bf20 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
2bf40 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
2bf60 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
2bf80 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
2bfa0 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
2bfc0 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
2bfe0 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
2c000 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
2c020 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.----------------
2c040 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
2c060 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.
2c080 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
2c0a0 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
2c0c0 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
2c0e0 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
2c100 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.
2c120 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......
2c140 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.
2c160 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
2c180 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
2c1a0 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
2c1c0 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
2c1e0 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
2c200 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
2c220 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
2c240 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
2c260 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
2c280 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
2c2a0 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.
2c2c0 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
2c2e0 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
2c300 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
2c320 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
2c340 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
2c360 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
2c380 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
2c3a0 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
2c3c0 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
2c3e0 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
2c400 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::......
2c420 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.
2c440 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
2c460 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
2c480 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
2c4a0 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.
2c4c0 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
2c4e0 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
2c500 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
2c520 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
2c540 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
2c560 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
2c580 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
2c5a0 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
2c5c0 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
2c5e0 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.
2c600 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..
2c620 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
2c640 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
2c660 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
2c680 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
2c6a0 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.---
2c6c0 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
2c6e0 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
2c700 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
2c720 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
2c740 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
2c760 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......
2c780 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
2c7a0 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
2c7c0 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
2c7e0 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
2c800 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::
2c820 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....
2c840 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
2c860 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......
2c880 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
2c8a0 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
2c8c0 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
2c8e0 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.
2c900 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...
2c920 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
2c940 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
2c960 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
2c980 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
2c9a0 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
2c9c0 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.
2c9e0 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
2ca00 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.
2ca20 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
2ca40 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-
2ca60 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
2ca80 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.
2caa0 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
2cac0 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.
2cae0 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.
2cb00 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
2cb20 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
2cb40 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
2cb60 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
2cb80 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
2cba0 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
2cbc0 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.
2cbe0 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.
2cc00 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-
2cc20 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
2cc40 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
2cc60 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
2cc80 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:
2cca0 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
2ccc0 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
2cce0 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
2cd00 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
2cd20 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.*******************.
2cd40 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
2cd60 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::.*.
2cd80 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
2cda0 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
2cdc0 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::.
2cde0 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
2ce00 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
2ce20 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
2ce40 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
2ce60 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
2ce80 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,..
2cea0 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
2cec0 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.=============
2cee0 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
2cf00 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
2cf20 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
2cf40 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
2cf60 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....
2cf80 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
2cfa0 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
2cfc0 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
2cfe0 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
2d000 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
2d020 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
2d040 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....
2d060 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:.
2d080 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
2d0a0 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
2d0c0 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
2d0e0 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
2d100 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
2d120 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
2d140 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::
2d160 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
2d180 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
2d1a0 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
2d1c0 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.
2d1e0 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..
2d200 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
2d220 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
2d240 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..
2d260 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.
2d280 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...
2d2a0 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
2d2c0 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
2d2e0 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
2d300 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
2d320 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:..
2d340 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
2d360 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.()......
2d380 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
2d3a0 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)............
2d3c0 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
2d3e0 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).................
2d400 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-
2d420 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.
2d440 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
2d460 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
2d480 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
2d4a0 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
2d4c0 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
2d4e0 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
2d500 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...,.
2d520 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
2d540 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
2d560 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
2d580 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
2d5a0 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....
2d5c0 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
2d5e0 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
2d600 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::.*
2d620 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
2d640 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
2d660 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
2d680 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,.
2d6a0 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:
2d6c0 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
2d6e0 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
2d700 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.------------------------------
2d720 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
2d740 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
2d760 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
2d780 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
2d7a0 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
2d7c0 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
2d7e0 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
2d800 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
2d820 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.
2d840 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
2d860 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
2d880 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.
2d8a0 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..
2d8c0 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
2d8e0 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
2d900 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
2d920 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.
2d940 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...
2d960 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
2d980 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
2d9a0 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.....
2d9c0 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
2d9e0 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
2da00 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
2da20 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.
2da40 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.------
2da60 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.
2da80 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.
2daa0 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
2dac0 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.
2dae0 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
2db00 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.
2db20 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
2db40 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
2db60 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
2db80 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.
2dba0 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
2dbc0 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
2dbe0 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
2dc00 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,
2dc20 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
2dc40 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
2dc60 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.==================
2dc80 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
2dca0 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.
2dcc0 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
2dce0 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
2dd00 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
2dd20 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
2dd40 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
2dd60 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_
2dd80 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.
2dda0 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
2ddc0 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
2dde0 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
2de00 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
2de20 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.
2de40 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
2de60 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
2de80 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
2dea0 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
2dec0 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
2dee0 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
2df00 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
2df20 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.
2df40 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
2df60 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
2df80 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
2dfa0 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
2dfc0 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.
2dfe0 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
2e000 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
2e020 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
2e040 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
2e060 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
2e080 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
2e0a0 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.
2e0c0 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
2e0e0 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
2e100 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
2e120 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
2e140 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
2e160 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
2e180 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
2e1a0 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...
2e1c0 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
2e1e0 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
2e200 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
2e220 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
2e240 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
2e260 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
2e280 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
2e2a0 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
2e2c0 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
2e2e0 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.=====
2e300 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
2e320 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.
2e340 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
2e360 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
2e380 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
2e3a0 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
2e3c0 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
2e3e0 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
2e400 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
2e420 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
2e440 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
2e460 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,
2e480 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.....
2e4a0 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
2e4c0 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
2e4e0 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
2e500 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
2e520 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
2e540 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
2e560 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
2e580 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
2e5a0 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
2e5c0 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
2e5e0 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
2e600 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
2e620 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
2e640 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.....
2e660 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
2e680 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
2e6a0 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
2e6c0 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
2e6e0 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
2e700 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
2e720 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
2e740 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
2e760 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
2e780 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
2e7a0 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
2e7c0 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
2e7e0 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....*.
2e800 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
2e820 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.
2e840 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
2e860 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
2e880 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
2e8a0 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
2e8c0 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.
2e8e0 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
2e900 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
2e920 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
2e940 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
2e960 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
2e980 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
2e9a0 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.===========================..
2e9c0 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
2e9e0 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
2ea00 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
2ea20 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
2ea40 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
2ea60 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
2ea80 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
2eaa0 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......
2eac0 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
2eae0 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
2eb00 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
2eb20 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
2eb40 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
2eb60 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
2eb80 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
2eba0 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
2ebc0 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
2ebe0 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.=========
2ec00 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
2ec20 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
2ec40 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.
2ec60 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
2ec80 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...
2eca0 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
2ecc0 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
2ece0 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
2ed00 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
2ed20 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,..
2ed40 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
2ed60 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:
2ed80 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.
2eda0 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.===================
2edc0 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
2ede0 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
2ee00 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
2ee20 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
2ee40 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
2ee60 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
2ee80 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
2eea0 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..
2eec0 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....
2eee0 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.
2ef00 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
2ef20 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
2ef40 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
2ef60 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
2ef80 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
2efa0 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.
2efc0 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
2efe0 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
2f000 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..
2f020 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,.
2f040 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
2f060 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
2f080 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
2f0a0 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
2f0c0 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
2f0e0 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
2f100 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
2f120 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
2f140 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
2f160 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
2f180 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:.
2f1a0 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
2f1c0 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
2f1e0 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.
2f200 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
2f220 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.
2f240 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
2f260 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
2f280 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.
2f2a0 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
2f2c0 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
2f2e0 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
2f300 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:.
2f320 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
2f340 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.
2f360 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
2f380 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
2f3a0 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
2f3c0 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
2f3e0 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.
2f400 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..
2f420 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
2f440 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
2f460 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
2f480 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
2f4a0 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
2f4c0 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
2f4e0 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.
2f500 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
2f520 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.
2f540 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.
2f560 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
2f580 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.
2f5a0 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..
2f5c0 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
2f5e0 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
2f600 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
2f620 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
2f640 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
2f660 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
2f680 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
2f6a0 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
2f6c0 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
2f6e0 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
2f700 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
2f720 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
2f740 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....
2f760 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:..
2f780 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
2f7a0 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.
2f7c0 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
2f7e0 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
2f800 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
2f820 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..
2f840 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
2f860 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
2f880 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.
2f8a0 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
2f8c0 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
2f8e0 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$..
2f900 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
2f920 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
2f940 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
2f960 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.
2f980 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
2f9a0 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.
2f9c0 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
2f9e0 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
2fa00 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
2fa20 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
2fa40 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
2fa60 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
2fa80 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
2faa0 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
2fac0 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.**
2fae0 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:..*
2fb00 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
2fb20 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
2fb40 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
2fb60 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
2fb80 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::.
2fba0 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
2fbc0 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
2fbe0 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::.*
2fc00 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:
2fc20 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
2fc40 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
2fc60 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,.
2fc80 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
2fca0 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
2fcc0 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.===========
2fce0 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.
2fd00 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
2fd20 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
2fd40 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
2fd60 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
2fd80 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
2fda0 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
2fdc0 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
2fde0 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
2fe00 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.
2fe20 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._
2fe40 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
2fe60 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
2fe80 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
2fea0 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
2fec0 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
2fee0 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
2ff00 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
2ff20 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....
2ff40 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
2ff60 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
2ff80 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
2ffa0 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.
2ffc0 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:.
2ffe0 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
30000 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.
30020 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
30040 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.
30060 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
30080 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.================
300a0 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
300c0 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
300e0 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
30100 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
30120 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
30140 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
30160 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
30180 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
301a0 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.
301c0 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
301e0 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
30200 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
30220 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
30240 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
30260 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
30280 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
302a0 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
302c0 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....
302e0 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
30300 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....
30320 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
30340 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
30360 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
30380 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
303a0 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
303c0 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
303e0 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
30400 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
30420 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
30440 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.
30460 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
30480 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.
304a0 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
304c0 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....$....(
304e0 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..
30500 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
30520 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
30540 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
30560 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
30580 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
305a0 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
305c0 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
305e0 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
30600 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
30620 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
30640 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
30660 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
30680 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
306a0 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
306c0 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
306e0 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.
30700 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-
30720 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
30740 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
30760 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
30780 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,..
307a0 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
307c0 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.========
307e0 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
30800 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
30820 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
30840 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
30860 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
30880 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
308a0 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
308c0 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
308e0 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
30900 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.
30920 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.
30940 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
30960 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.
30980 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
309a0 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
309c0 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
309e0 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
30a00 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
30a20 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
30a40 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
30a60 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
30a80 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 .===============================
30aa0 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
30ac0 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
30ae0 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
30b00 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
30b20 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.
30b40 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
30b60 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
30b80 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
30ba0 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
30bc0 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
30be0 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
30c00 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.
30c20 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-
30c40 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
30c60 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
30c80 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
30ca0 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
30cc0 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
30ce0 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
30d00 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.===============
30d20 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
30d40 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
30d60 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
30d80 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
30da0 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
30dc0 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
30de0 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
30e00 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
30e20 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
30e40 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
30e60 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
30e80 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
30ea0 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....
30ec0 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
30ee0 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
30f00 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
30f20 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
30f40 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
30f60 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.
30f80 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
30fa0 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.=======
30fc0 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 ================================
30fe0 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
31000 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
31020 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
31040 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....
31060 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
31080 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
310a0 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
310c0 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
310e0 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
31100 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
31120 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
31140 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
31160 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
31180 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
311a0 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
311c0 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
311e0 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.===============
31200 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
31220 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
31240 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...
31260 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.
31280 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
312a0 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
312c0 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
312e0 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
31300 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
31320 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
31340 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
31360 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
31380 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
313a0 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
313c0 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.=========
313e0 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
31400 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
31420 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,.
31440 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
31460 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
31480 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
314a0 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
314c0 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,..
314e0 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.***
31500 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
31520 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
31540 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.
31560 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
31580 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
315a0 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
315c0 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
315e0 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
31600 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.===============
31620 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
31640 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
31660 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.
31680 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
316a0 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
316c0 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
316e0 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
31700 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
31720 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
31740 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
31760 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....
31780 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
317a0 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
317c0 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
317e0 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
31800 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
31820 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
31840 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....
31860 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
31880 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..
318a0 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.
318c0 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
318e0 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
31900 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
31920 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*....
31940 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*..
31960 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.
31980 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.
319a0 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
319c0 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...
319e0 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
31a00 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
31a20 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
31a40 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
31a60 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
31a80 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...
31aa0 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
31ac0 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
31ae0 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
31b00 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
31b20 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
31b40 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
31b60 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
31b80 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
31ba0 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.======
31bc0 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
31be0 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.
31c00 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
31c20 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
31c40 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.
31c60 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
31c80 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.
31ca0 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.
31cc0 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
31ce0 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.
31d00 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
31d20 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
31d40 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
31d60 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,.
31d80 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
31da0 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
31dc0 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
31de0 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.
31e00 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
31e20 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
31e40 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
31e60 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...
31e80 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
31ea0 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
31ec0 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.
31ee0 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.
31f00 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-
31f20 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
31f40 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
31f60 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
31f80 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
31fa0 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
31fc0 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
31fe0 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
32000 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
32020 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
32040 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
32060 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
32080 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
320a0 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
320c0 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
320e0 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
32100 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
32120 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.--------------------
32140 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.
32160 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
32180 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
321a0 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
321c0 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
321e0 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
32200 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
32220 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
32240 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
32260 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
32280 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
322a0 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
322c0 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
322e0 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
32300 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
32320 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..
32340 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-
32360 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
32380 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..
323a0 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
323c0 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
323e0 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
32400 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
32420 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
32440 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.
32460 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
32480 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
324a0 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.
324c0 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.%(
324e0 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).\...
32500 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').=~/
32520 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
32540 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
32560 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
32580 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
325a0 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
325c0 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
325e0 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
32600 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:.....
32620 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
32640 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
32660 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
32680 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....
326a0 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.
326c0 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
326e0 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
32700 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,..
32720 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
32740 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.
32760 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.
32780 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 --------------------------------
327a0 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
327c0 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
327e0 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.
32800 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
32820 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
32840 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...
32860 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
32880 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....
328a0 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):%(
328c0 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
328e0 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..
32900 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
32920 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.
32940 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
32960 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
32980 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...
329a0 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:
329c0 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:.
329e0 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:
32a00 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
32a20 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.=================
32a40 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
32a60 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
32a80 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
32aa0 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
32ac0 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.
32ae0 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,.
32b00 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.
32b20 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
32b40 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
32b60 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
32b80 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.
32ba0 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.
32bc0 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
32be0 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
32c00 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
32c20 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.
32c40 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
32c60 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
32c80 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
32ca0 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
32cc0 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.
32ce0 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.*******************
32d00 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
32d20 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.
32d40 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._
32d60 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.
32d80 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
32da0 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
32dc0 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
32de0 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
32e00 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
32e20 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
32e40 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
32e60 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.
32e80 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
32ea0 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.
32ec0 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
32ee0 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
32f00 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
32f20 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...
32f40 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
32f60 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...*.
32f80 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
32fa0 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
32fc0 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
32fe0 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
33000 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.
33020 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
33040 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.=============
33060 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
33080 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.
330a0 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.
330c0 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
330e0 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.
33100 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.
33120 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
33140 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.
33160 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
33180 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
331a0 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
331c0 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
331e0 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
33200 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
33220 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
33240 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
33260 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
33280 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
332a0 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
332c0 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
332e0 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.------------------------
33300 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
33320 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
33340 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
33360 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...
33380 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
333a0 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
333c0 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
333e0 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
33400 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
33420 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.
33440 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
33460 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.....
33480 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
334a0 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
334c0 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
334e0 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....
33500 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
33520 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
33540 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
33560 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.
33580 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
335a0 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
335c0 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
335e0 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
33600 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
33620 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
33640 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.
33660 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
33680 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..
336a0 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
336c0 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.-----------------
336e0 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
33700 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
33720 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
33740 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..
33760 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
33780 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
337a0 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
337c0 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
337e0 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
33800 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
33820 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.
33840 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
33860 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
33880 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
338a0 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
338c0 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
338e0 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
33900 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.
33920 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
33940 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
33960 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
33980 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,.
339a0 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...
339c0 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
339e0 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
33a00 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.
33a20 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....
33a40 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
33a60 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,..
33a80 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,..
33aa0 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
33ac0 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
33ae0 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
33b00 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.******************
33b20 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.
33b40 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.
33b60 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
33b80 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
33ba0 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
33bc0 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
33be0 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
33c00 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
33c20 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.===========================
33c40 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
33c60 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.
33c80 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.
33ca0 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.
33cc0 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
33ce0 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
33d00 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
33d20 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
33d40 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
33d60 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
33d80 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
33da0 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
33dc0 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
33de0 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...
33e00 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
33e20 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
33e40 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
33e60 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
33e80 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
33ea0 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.================
33ec0 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
33ee0 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
33f00 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::.*.
33f20 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
33f40 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
33f60 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
33f80 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
33fa0 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
33fc0 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
33fe0 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
34000 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
34020 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
34040 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
34060 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
34080 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
340a0 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
340c0 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.-----------------------------
340e0 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
34100 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
34120 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
34140 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
34160 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
34180 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
341a0 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
341c0 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
341e0 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
34200 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
34220 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.
34240 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
34260 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
34280 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
342a0 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,
342c0 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
342e0 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
34300 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
34320 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
34340 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.---------
34360 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 --------------------------------
34380 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
343a0 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
343c0 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..
343e0 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
34400 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
34420 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.
34440 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....
34460 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
34480 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....
344a0 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.
344c0 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
344e0 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
34500 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.
34520 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
34540 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
34560 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.
34580 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
345a0 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.....
345c0 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.....
345e0 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
34600 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
34620 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....!
34640 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
34660 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....*...
34680 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
346a0 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
346c0 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
346e0 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
34700 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
34720 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
34740 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
34760 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.....
34780 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
347a0 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
347c0 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
347e0 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..
34800 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
34820 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...
34840 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.
34860 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.
34880 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
348a0 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
348c0 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
348e0 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
34900 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
34920 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,.
34940 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....
34960 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
34980 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
349a0 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
349c0 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
349e0 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
34a00 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
34a20 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
34a40 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
34a60 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...
34a80 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
34aa0 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...
34ac0 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
34ae0 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)
34b00 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
34b20 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...
34b40 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
34b60 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.
34b80 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
34ba0 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
34bc0 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.
34be0 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
34c00 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
34c20 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
34c40 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.
34c60 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).
34c80 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
34ca0 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
34cc0 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
34ce0 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).....
34d00 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
34d20 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
34d40 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
34d60 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
34d80 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
34da0 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........
34dc0 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
34de0 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.....
34e00 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
34e20 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
34e40 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
34e60 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
34e80 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:.
34ea0 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
34ec0 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
34ee0 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 .-------------------------------
34f00 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.....
34f20 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
34f40 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
34f60 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
34f80 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
34fa0 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...
34fc0 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
34fe0 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
35000 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
35020 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.
35040 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......
35060 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........
35080 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
350a0 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*.
350c0 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
350e0 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
35100 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
35120 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
35140 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
35160 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
35180 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
351a0 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.----------------------
351c0 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:.
351e0 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
35200 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.........
35220 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
35240 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
35260 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
35280 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
352a0 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
352c0 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....
352e0 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......
35300 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....!
35320 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
35340 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
35360 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
35380 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..
353a0 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.
353c0 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
353e0 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
35400 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
35420 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-
35440 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
35460 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
35480 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.
354a0 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
354c0 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
354e0 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
35500 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
35520 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
35540 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
35560 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
35580 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
355a0 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
355c0 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
355e0 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
35600 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*.....
35620 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
35640 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
35660 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
35680 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*.
356a0 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-
356c0 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.........
356e0 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....!...
35700 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
35720 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
35740 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.......
35760 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
35780 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
357a0 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
357c0 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
357e0 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
35800 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
35820 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
35840 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
35860 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.------
35880 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 -------------------------------.
358a0 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
358c0 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
358e0 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
35900 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-
35920 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........
35940 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
35960 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..
35980 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
359a0 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
359c0 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....
359e0 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.....
35a00 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
35a20 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.....
35a40 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
35a60 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
35a80 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
35aa0 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
35ac0 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.....
35ae0 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
35b00 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,.
35b20 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
35b40 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
35b60 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
35b80 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.
35ba0 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.------------
35bc0 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
35be0 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.
35c00 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.
35c20 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.........
35c40 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...
35c60 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........
35c80 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
35ca0 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
35cc0 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-
35ce0 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
35d00 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
35d20 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
35d40 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
35d60 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.
35d80 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
35da0 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.-------------------------
35dc0 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
35de0 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
35e00 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.
35e20 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.........
35e40 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
35e60 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
35e80 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
35ea0 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
35ec0 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.
35ee0 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
35f00 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.---------------
35f20 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
35f40 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
35f60 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
35f80 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...
35fa0 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...
35fc0 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-
35fe0 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.
36000 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
36020 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
36040 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
36060 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
36080 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
360a0 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
360c0 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
360e0 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
36100 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.***
36120 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 ********************************
36140 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
36160 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
36180 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
361a0 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-
361c0 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
361e0 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
36200 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
36220 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.*****************
36240 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 ********************************
36260 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
36280 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.
362a0 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
362c0 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
362e0 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
36300 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.***
36320 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
36340 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:.
36360 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
36380 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
363a0 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-
363c0 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.
363e0 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.
36400 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
36420 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.
36440 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
36460 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
36480 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:.
364a0 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
364c0 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
364e0 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
36500 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
36520 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.
36540 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
36560 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
36580 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
365a0 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
365c0 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
365e0 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-
36600 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,
36620 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
36640 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
36660 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.**********
36680 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
366a0 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:............................
366c0 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........
366e0 20 20 20 20 20 20 20 20 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 28 6c 69 6e 65 20 20 .........................(line..
36720 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:......................
36740 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.....
36760 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:..........
36780 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
367a0 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
367c0 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
367e0 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...
36800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
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 28 6c ..............................(l
36840 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:.
36860 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
36880 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...............
368a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
368c0 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
368e0 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:.......
36900 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.
36920 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
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 20 20 20 20 20 ................................
36960 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:
36980 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
369a0 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..............
369c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
369e0 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
36a00 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:........
36a20 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
36a40 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......................
36a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36a80 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
36aa0 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
36ac0 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.
36ae0 0a 20 20 20 20 20 20 20 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 20 20 20 20 20 20 20 20 20 20 20 ................................
36b20 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:
36b40 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
36b60 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..............
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 20 20 ................................
36ba0 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
36bc0 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:.............
36be0 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.
36c00 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...........................
36c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36c40 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:.........
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 51 75 69 63 6b 20 44 .........................Quick.D
36c80 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
36ca0 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:......................
36cc0 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
36ce0 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.........................
36d00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36d20 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:....
36d40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 55 73 65 20 6f ...........................Use.o
36d60 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................
36d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36da0 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
36dc0 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:..............
36de0 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.
36e00 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:.............
36e20 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.
36e40 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:............
36e60 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.....
36e80 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 6f 72 67 3a 20 20 20 20 ............(line..6).*.org:....
36ea0 20 20 20 20 20 20 20 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
36ec0 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............
36ee0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36f00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 30 29 0a 2a .....................(line.10).*
36f20 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:.......................
36f40 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...
36f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
36f80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c ..............................(l
36fa0 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:..............
36fc0 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
36fe0 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
37000 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
37020 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.......
37040 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 ..........................(line.
37080 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:...
370a0 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
370c0 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...........................
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 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
37120 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
37140 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................
37160 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37180 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
371a0 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:..........
371c0 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...
371e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c ..............................(l
37220 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
37240 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
37260 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.................
37280 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
372a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a 20 72 65 63 6f ................(line..6).*.reco
372c0 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
372e0 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
37300 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
37320 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.............................
37340 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37360 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,.
37380 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
373a0 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..
373c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
373e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 ...............................(
37400 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
37420 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
37440 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.....................
37460 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37480 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,.
374a0 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
374c0 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.......
374e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37500 20 20 20 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.
37520 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:...
37540 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
37560 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....................
37580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
375a0 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,
375c0 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:...............
375e0 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).
37600 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:......
37620 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.
37640 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37680 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:....
376a0 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
376c0 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........................
376e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37700 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
37720 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
37740 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
37760 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:.............
37780 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
377a0 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:...
377c0 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
377e0 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.............................
37800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37820 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
37840 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
37860 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...................
37880 20 20 20 20 20 20 20 20 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 28 6c 69 6e 65 20 20 36 29 0a 2a 20 74 72 61 6e 73 61 ..............(line..6).*.transa
378c0 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:.........
378e0 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)
37900 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:.....
37920 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
37940 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...............................
37960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37980 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
379a0 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
379c0 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
379e0 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
37a00 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............
37a20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37a40 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).*
37a60 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:.......
37a80 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.
37aa0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37ac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
37ae0 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
37b00 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
37b20 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:.
37b40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 4d 61 72 6b ............................Mark
37b60 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
37b80 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
37ba0 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
37bc0 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
37be0 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
37c00 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.***********************
37c20 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
37c40 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:...................
37c60 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
37c80 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 ................................
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 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
37ce0 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
37d00 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........
37d20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
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 28 6c 69 6e 65 20 31 .........................(line.1
37d60 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
37d80 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
37da0 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..........................
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 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
37e00 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
37e20 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......
37e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
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 28 6c 69 6e 65 ...........................(line
37e80 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:
37ea0 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
37ec0 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..................
37ee0 20 20 20 20 20 20 20 20 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 28 6c 69 6e 65 20 34 31 29 0a 2a 20 6c 65 64 67 65 ...............(line.41).*.ledge
37f20 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:..........
37f40 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
37f60 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..............................
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 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
37fc0 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
37fe0 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..........
38000 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38020 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)
38040 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:....
38060 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
38080 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......................
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 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
380e0 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:
38100 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
38120 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...............................
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 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
38180 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
381a0 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...........
381c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
381e0 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).
38200 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
38220 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
38240 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....................
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 28 6c 69 6e 65 20 32 39 29 0a 2a 20 6c 65 64 67 65 72 2d .............(line.29).*.ledger-
382a0 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:.......
382c0 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
382e0 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 ................................
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 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
38340 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
38360 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............
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 28 6c 69 6e 65 20 34 38 29 0a 2a .....................(line.48).*
383c0 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-
383e0 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
38400 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........................
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 35 32 29 0a 2a 20 6c 65 64 67 65 72 2d 66 6f 6e 74 .........(line.52).*.ledger-font
38460 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
38480 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....
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 20 20 20 20 20 20 20 20 28 6c 69 .............................(li
384e0 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
38500 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
38520 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................
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 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
38580 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:........
385a0 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
385c0 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............................
385e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38600 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
38620 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
38640 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..............
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 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
386a0 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:...........
386c0 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.
386e0 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...........................
38700 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38720 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-
38740 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.
38760 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...
38780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
387a0 20 20 20 20 20 20 20 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
387c0 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
387e0 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
38800 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........................
38820 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38840 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
38860 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
38880 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............
388a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
388c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 20 36 29 0a 2a .....................(line..6).*
388e0 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
38900 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
38920 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 ................................
38940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38960 20 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
38980 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
389a0 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.....................
389c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
389e0 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
38a00 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
38a20 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.
38a40 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38a80 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
38aa0 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
38ac0 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...................
38ae0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38b00 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
38b20 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:...............
38b40 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
38b60 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...............................
38b80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38ba0 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
38bc0 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
38be0 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............
38c00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38c20 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).*
38c40 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
38c60 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
38c80 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.........................
38ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38cc0 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-
38ce0 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
38d00 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
38d20 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
38d40 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.
38d60 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...........................
38d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38da0 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
38dc0 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.
38de0 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........
38e00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38e20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 32 .........................(line.2
38e40 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
38e60 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
38e80 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............
38ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38ec0 20 20 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).*
38ee0 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:
38f00 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
38f20 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....................
38f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
38f60 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-
38f80 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:...
38fa0 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
38fc0 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............................
38fe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39000 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
39020 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
39040 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....
39060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39080 20 20 20 20 20 20 20 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
390a0 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
390c0 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
390e0 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..........
39100 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39120 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)
39140 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
39160 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
39180 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.............................
391a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
391c0 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
391e0 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
39200 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.....
39220 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39240 20 20 20 20 20 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
39260 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-
39280 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
392a0 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............
392c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
392e0 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).*
39300 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
39320 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
39340 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....................
39360 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39380 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-
393a0 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.
393c0 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
393e0 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.......................
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 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
39440 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
39460 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
39480 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...............................
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 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
394e0 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
39500 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.......
39520 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
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 28 6c 69 6e 65 20 ..........................(line.
39560 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
39580 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
395a0 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...............
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 28 6c 69 6e 65 20 32 32 29 0a 2a 20 6c 65 ..................(line.22).*.le
39600 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:.........
39620 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
39640 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..........................
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 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
396a0 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
396c0 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.....
396e0 20 20 20 20 20 20 20 20 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 28 6c 69 6e ............................(lin
39720 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
39740 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
39760 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................
39780 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
397a0 20 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
397c0 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:....................
397e0 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..
39800 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
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 28 ...............................(
39840 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>:..
39860 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.
39880 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.............
398a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
398c0 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).*.
398e0 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:........
39900 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
39920 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..........................
39940 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39960 20 20 20 20 20 20 20 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
39980 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
399a0 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.......
399c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
399e0 20 20 20 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.
39a00 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-
39a20 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
39a40 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....................
39a60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39a80 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 31 30 29 0a 2a 20 6c 65 64 67 65 72 2d .............(line.10).*.ledger-
39aa0 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:...........
39ac0 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.
39ae0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39b00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39b20 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
39b40 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
39b60 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
39b80 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.********
39ba0 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:..*.
39bc0 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:..............................
39be0 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
39c00 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...
39c20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39c40 20 20 20 20 20 20 20 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
39c60 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:..............
39c80 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......
39ca0 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:.....
39cc0 20 20 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
39ce0 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.
39d00 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:............................
39d20 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..
39d40 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>:...............
39d60 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.............
39d80 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>:......
39da0 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
39dc0 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.<
39de0 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
39e00 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
39e20 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...........................
39e40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39e60 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>:..
39e80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 46 69 6e 61 6c 69 7a .........................Finaliz
39ea0 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................
39ec0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39ee0 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
39f00 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:...........................
39f20 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.......
39f40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
39f60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 6e 65 20 ..........................(line.
39f80 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:..................
39fa0 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
39fc0 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:.........
39fe0 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.
3a000 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.
3a020 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
3a040 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...........
3a060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3a080 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).
3a0a0 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:......................
3a0c0 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.............(
3a0e0 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>:.........
3a100 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
3a120 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........................
3a140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3a160 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:...
3a180 20 20 20 20 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
3a1a0 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-
3a1c0 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:......................
3a1e0 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......
3a200 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3a220 20 20 20 20 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
3a240 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:.............
3a260 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
3a280 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........................
3a2a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3a2c0 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
3a2e0 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
3a300 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...............
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 28 6c 69 6e 65 20 20 36 29 0a 2a 20 43 2d ..................(line..6).*.C-
3a360 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:......................
3a380 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
3a3a0 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>:.........
3a3c0 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
3a3e0 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.............................
3a400 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3a420 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:........
3a440 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
3a460 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....................
3a480 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3a4a0 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
3a4c0 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 :...............................
3a4e0 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).
3a500 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>:..................
3a520 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
3a540 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..............................
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 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:.........
3a5a0 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
3a5c0 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:
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 53 ...............................S
3a600 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.
3a620 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............................
3a640 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3a660 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:.......
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 51 75 69 63 6b 20 41 64 ........................Quick.Ad
3a6a0 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:....
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 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
3a700 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.........
3a720 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
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 28 6c 69 6e 65 20 20 36 ........................(line..6
3a760 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:..........................
3a780 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
3a7a0 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...........................
3a7c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3a7e0 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:............
3a800 20 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
3a820 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........
3a840 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3a860 20 20 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..
3a880 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:...........
3a8a0 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
3a8c0 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..........................
3a8e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3a900 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:.........
3a920 20 20 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
3a940 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...............
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 20 20 20 20 20 20 ................................
3a980 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-
3a9a0 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:..............................
3a9c0 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....
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 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 6c 69 .............................(li
3aa20 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:.....................
3aa40 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..
3aa60 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>:........
3aa80 20 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
3aaa0 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................
3aac0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3aae0 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:.
3ab00 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3ab20 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......
3ab40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3ab60 20 20 20 20 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
3ab80 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:.....................
3aba0 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.
3abc0 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...........
3abe0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3ac00 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).
3ac20 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:............................
3ac40 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
3ac60 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.............................
3ac80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3aca0 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:............
3acc0 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
3ace0 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>
3ad00 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 :...............................
3ad20 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.......
3ad40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3ad60 20 20 20 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.
3ad80 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:........................
3ada0 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
3adc0 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.....................
3ade0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3ae00 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:....
3ae20 20 20 20 20 20 20 20 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
3ae40 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).*
3ae60 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:.............................
3ae80 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
3aea0 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
3aec0 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
3aee0 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
3af00 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
3af20 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
3af40 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
3af60 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
3af80 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
3afa0 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
3afc0 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
3afe0 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
3b000 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:.
3b020 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
3b040 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
3b060 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
3b080 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:.
3b0a0 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
3b0c0 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.
3b0e0 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
3b100 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
3b120 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
3b140 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
3b160 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
3b180 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
3b1a0 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
3b1c0 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
3b1e0 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
3b200 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
3b220 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
3b240 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.
3b260 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
3b280 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
3b2a0 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.
3b2c0 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
3b2e0 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
3b300 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
3b320 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
3b340 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
3b360 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
3b380 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.
3b3a0 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
3b3c0 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.
3b3e0 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
3b400 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
3b420 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
3b440 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
3b460 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
3b480 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.
3b4a0 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
3b4c0 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
3b4e0 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
3b500 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.
3b520 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
3b540 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
3b560 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
3b580 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
3b5a0 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
3b5c0 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
3b5e0 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
3b600 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
3b620 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
3b640 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
3b660 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
3b680 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.
3b6a0 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
3b6c0 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.
3b6e0 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
3b700 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
3b720 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
3b740 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:.......................
3b760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b7a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b7c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b7e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b800 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 32 33 2e 34 34 35 2f 6c 65 64 67 65 72 2d ledger-mode-20240423.445/ledger-
3b820 72 65 63 6f 6e 63 69 6c 65 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 reconcile.el....................
3b840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b860 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
3b880 30 30 37 30 34 36 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 36 35 32 00 20 30 00 00 00 0070464.00000000000.016652..0...
3b8a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b8c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b8e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b900 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...................
3b920 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...................
3b940 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b960 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b980 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b9a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b9c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3b9e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
3ba00 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
3ba20 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
3ba40 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
3ba60 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.(
3ba80 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
3baa0 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
3bac0 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
3bae0 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
3bb00 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
3bb20 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
3bb40 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
3bb60 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
3bb80 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
3bba0 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..;
3bbc0 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.
3bbe0 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
3bc00 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
3bc20 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
3bc40 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
3bc60 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.
3bc80 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
3bca0 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
3bcc0 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
3bce0 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
3bd00 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
3bd20 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.;;.
3bd40 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.,.
3bd60 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,
3bd80 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...
3bda0 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
3bdc0 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
3bde0 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
3be00 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
3be20 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
3be40 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
3be60 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
3be80 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).
3bea0 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
3bec0 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
3bee0 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
3bf00 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)
3bf20 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-
3bf40 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
3bf60 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
3bf80 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
3bfa0 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
3bfc0 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.
3bfe0 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
3c000 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-
3c020 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
3c040 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
3c060 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
3c080 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
3c0a0 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
3c0c0 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
3c0e0 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
3c100 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
3c120 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
3c140 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
3c160 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
3c180 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")
3c1a0 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
3c1c0 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.
3c1e0 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
3c200 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
3c220 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
3c240 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,
3c260 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
3c280 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
3c2a0 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
3c2c0 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
3c2e0 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
3c300 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
3c320 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
3c340 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.
3c360 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
3c380 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
3c3a0 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
3c3c0 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
3c3e0 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
3c400 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
3c420 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...
3c440 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
3c460 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
3c480 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
3c4a0 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
3c4c0 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
3c4e0 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
3c500 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
3c520 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
3c540 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
3c560 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).
3c580 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
3c5a0 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-
3c5c0 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
3c5e0 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.
3c600 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'."..
3c620 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-
3c640 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
3c660 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
3c680 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."
3c6a0 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.
3c6c0 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
3c6e0 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
3c700 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
3c720 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
3c740 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
3c760 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
3c780 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
3c7a0 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.
3c7c0 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
3c7e0 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
3c800 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
3c820 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
3c840 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)
3c860 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
3c880 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
3c8a0 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.
3c8c0 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
3c8e0 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,
3c900 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
3c920 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.
3c940 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
3c960 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
3c980 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.
3c9a0 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;
3c9c0 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.
3c9e0 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
3ca00 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
3ca20 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
3ca40 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.'
3ca60 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
3ca80 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-
3caa0 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.
3cac0 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
3cae0 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
3cb00 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
3cb20 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.
3cb40 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-
3cb60 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
3cb80 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.
3cba0 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
3cbc0 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
3cbe0 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
3cc00 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
3cc20 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
3cc40 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
3cc60 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
3cc80 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
3cca0 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...
3ccc0 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
3cce0 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
3cd00 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
3cd20 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
3cd40 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
3cd60 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
3cd80 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
3cda0 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
3cdc0 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
3cde0 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
3ce00 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
3ce20 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-
3ce40 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
3ce60 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
3ce80 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
3cea0 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
3cec0 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
3cee0 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
3cf00 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
3cf20 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
3cf40 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
3cf60 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
3cf80 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
3cfa0 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
3cfc0 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
3cfe0 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
3d000 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
3d020 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
3d040 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
3d060 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
3d080 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
3d0a0 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
3d0c0 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
3d0e0 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
3d100 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
3d120 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
3d140 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-
3d160 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)
3d180 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
3d1a0 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
3d1c0 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.
3d1e0 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.((
3d200 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)))
3d220 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
3d240 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.
3d260 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
3d280 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
3d2a0 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."..
3d2c0 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
3d2e0 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
3d300 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
3d320 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
3d340 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
3d360 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
3d380 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)
3d3a0 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
3d3c0 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
3d3e0 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
3d400 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
3d420 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)
3d440 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
3d460 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."
3d480 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.(-
3d4a0 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.
3d4c0 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.(
3d4e0 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
3d500 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.
3d520 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."...
3d540 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
3d560 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
3d580 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
3d5a0 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))
3d5c0 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
3d5e0 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
3d600 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
3d620 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
3d640 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."..
3d660 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
3d680 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
3d6a0 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
3d6c0 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.
3d6e0 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.
3d700 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.
3d720 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
3d740 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
3d760 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
3d780 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
3d7a0 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...
3d7c0 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
3d7e0 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)..................
3d800 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
3d820 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
3d840 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".................
3d860 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
3d880 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
3d8a0 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
3d8c0 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
3d8e0 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
3d900 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
3d920 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
3d940 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-
3d960 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
3d980 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-
3d9a0 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
3d9c0 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
3d9e0 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
3da00 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.((
3da20 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
3da40 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
3da60 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-
3da80 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))).....
3daa0 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...............
3dac0 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
3dae0 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
3db00 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
3db20 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
3db40 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
3db60 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".......................
3db80 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-
3dba0 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).................
3dbc0 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
3dbe0 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)))............
3dc00 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
3dc20 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".........................
3dc40 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
3dc60 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
3dc80 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.
3dca0 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
3dcc0 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
3dce0 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
3dd00 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
3dd20 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
3dd40 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
3dd60 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
3dd80 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
3dda0 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
3ddc0 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)).
3dde0 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
3de00 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
3de20 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
3de40 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
3de60 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
3de80 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,
3dea0 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
3dec0 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-
3dee0 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
3df00 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
3df20 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
3df40 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
3df60 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.
3df80 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
3dfa0 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
3dfc0 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.
3dfe0 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
3e000 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).............(
3e020 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
3e040 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))
3e060 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
3e080 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
3e0a0 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.
3e0c0 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
3e0e0 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
3e100 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."...
3e120 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
3e140 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
3e160 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)).........(
3e180 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
3e1a0 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
3e1c0 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
3e1e0 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-
3e200 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
3e220 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)).
3e240 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).........(
3e260 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
3e280 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
3e2a0 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.......................
3e2c0 20 20 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
3e2e0 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..............................
3e300 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)))....
3e320 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.&
3e340 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.........(
3e360 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
3e380 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
3e3a0 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.
3e3c0 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
3e3e0 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).........
3e400 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-
3e420 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).......................
3e440 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)).
3e460 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
3e480 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
3e4a0 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)...
3e4c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
3e4e0 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).............
3e500 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
3e520 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
3e540 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.)))............
3e560 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)..........
3e580 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
3e5a0 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)..............
3e5c0 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
3e5e0 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)........................
3e600 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
3e620 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
3e640 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........
3e660 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
3e680 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)............
3e6a0 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
3e6c0 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)......................
3e6e0 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
3e700 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
3e720 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
3e740 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).....(
3e760 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
3e780 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.()...
3e7a0 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
3e7c0 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
3e7e0 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
3e800 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-
3e820 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
3e840 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
3e860 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.........
3e880 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
3e8a0 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
3e8c0 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
3e8e0 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)...
3e900 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)....
3e920 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))......
3e940 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.
3e960 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
3e980 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.
3e9a0 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
3e9c0 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
3e9e0 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)
3ea00 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))...
3ea20 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
3ea40 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)))
3ea60 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
3ea80 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
3eaa0 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
3eac0 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
3eae0 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)).......
3eb00 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-
3eb20 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-
3eb40 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
3eb60 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
3eb80 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
3eba0 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
3ebc0 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
3ebe0 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
3ec00 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."
3ec20 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
3ec40 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
3ec60 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.'
3ec80 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)))...(
3eca0 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
3ecc0 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-
3ece0 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
3ed00 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
3ed20 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
3ed40 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
3ed60 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
3ed80 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
3eda0 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).
3edc0 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
3ede0 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
3ee00 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
3ee20 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).........(
3ee40 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
3ee60 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
3ee80 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))).......
3eea0 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))....
3eec0 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
3eee0 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)...................
3ef00 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
3ef20 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
3ef40 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
3ef60 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
3ef80 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
3efa0 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
3efc0 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
3efe0 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-
3f000 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
3f020 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*.
3f040 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+.(
3f060 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
3f080 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..............
3f0a0 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
3f0c0 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)..............
3f0e0 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
3f100 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
3f120 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
3f140 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....
3f160 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
3f180 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
3f1a0 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))....
3f1c0 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
3f1e0 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-
3f200 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
3f220 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.
3f240 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.
3f260 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
3f280 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)))))..
3f2a0 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.()
3f2c0 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."...(
3f2e0 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
3f300 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
3f320 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
3f340 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
3f360 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
3f380 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.
3f3a0 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))))...(
3f3c0 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.()
3f3e0 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.
3f400 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
3f420 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
3f440 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
3f460 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
3f480 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
3f4a0 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
3f4c0 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.
3f4e0 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.
3f500 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
3f520 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
3f540 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
3f560 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
3f580 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).
3f5a0 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
3f5c0 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
3f5e0 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
3f600 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))........
3f620 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
3f640 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
3f660 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)...
3f680 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
3f6a0 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
3f6c0 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
3f6e0 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
3f700 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
3f720 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
3f740 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
3f760 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
3f780 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.......
3f7a0 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
3f7c0 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
3f7e0 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
3f800 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).
3f820 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
3f840 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
3f860 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
3f880 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
3f8a0 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
3f8c0 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
3f8e0 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
3f900 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
3f920 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
3f940 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.
3f960 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
3f980 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
3f9a0 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
3f9c0 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)
3f9e0 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
3fa00 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-
3fa20 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
3fa40 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
3fa60 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....
3fa80 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).
3faa0 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
3fac0 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
3fae0 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-
3fb00 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
3fb20 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
3fb40 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
3fb60 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
3fb80 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.
3fba0 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.
3fbc0 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))..................
3fbe0 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.....
3fc00 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.(
3fc20 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.
3fc40 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
3fc60 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...........
3fc80 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
3fca0 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
3fcc0 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
3fce0 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
3fd00 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..............;;
3fd20 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
3fd40 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
3fd60 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..
3fd80 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...........
3fda0 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))).....
3fdc0 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
3fde0 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
3fe00 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.
3fe20 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
3fe40 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)
3fe60 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
3fe80 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.
3fea0 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.
3fec0 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."(\
3fee0 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
3ff00 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
3ff20 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
3ff40 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
3ff60 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
3ff80 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."(.*?)"."
3ffa0 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))).....
3ffc0 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
3ffe0 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)
40000 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
40020 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
40040 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
40060 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
40080 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
400a0 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
400c0 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))..................
400e0 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
40100 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..
40120 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
40140 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
40160 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))......
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 28 6c 69 73 74 20 ..........................(list.
401a0 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
401c0 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............
401e0 20 20 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
40200 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
40220 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))..........
40240 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-
40260 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
40280 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..................
402a0 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))
402c0 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.(
402e0 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)).....................
40300 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
40320 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
40340 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...............................
40360 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
40380 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
403a0 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."...(
403c0 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))
403e0 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))........
40400 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
40420 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
40440 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
40460 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...............................
40480 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..................
404a0 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.......
404c0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
404e0 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............
40500 20 20 20 20 20 20 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
40520 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).......................
40540 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
40560 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..
40580 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
405a0 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
405c0 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..................
405e0 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
40600 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.................
40620 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
40640 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.........
40660 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
40680 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...........
406a0 20 20 20 20 20 20 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
406c0 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-
406e0 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)..........................
40700 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-
40720 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...................
40740 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
40760 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................
40780 20 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-
407a0 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
407c0 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).............................
407e0 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)))))..
40800 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
40820 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
40840 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.
40860 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.
40880 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*.
408a0 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
408c0 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*.(
408e0 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
40900 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
40920 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.
40940 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
40960 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)"
40980 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
409a0 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
409c0 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
409e0 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).............................
40a00 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
40a20 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)....
40a40 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))
40a60 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
40a80 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."("))..........
40aa0 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))))).
40ac0 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-
40ae0 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
40b00 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)))....
40b20 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
40b40 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
40b60 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)).......
40b80 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
40ba0 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
40bc0 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
40be0 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
40c00 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
40c20 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
40c40 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
40c60 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.
40c80 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
40ca0 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)).
40cc0 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).
40ce0 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)...
40d00 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
40d20 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
40d40 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
40d60 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
40d80 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
40da0 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
40dc0 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
40de0 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
40e00 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
40e20 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
40e40 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
40e60 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
40e80 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
40ea0 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-
40ec0 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
40ee0 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.
40f00 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
40f20 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
40f40 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
40f60 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
40f80 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
40fa0 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
40fc0 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
40fe0 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
41000 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
41020 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
41040 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
41060 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
41080 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
410a0 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
410c0 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
410e0 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
41100 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
41120 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
41140 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
41160 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
41180 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
411a0 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-
411c0 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.........
411e0 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
41200 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........................
41220 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...
41240 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
41260 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............
41280 20 20 20 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
412a0 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.............
412c0 20 20 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
412e0 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........................
41300 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
41320 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....
41340 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))
41360 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
41380 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
413a0 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
413c0 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
413e0 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
41400 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
41420 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...
41440 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
41460 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
41480 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.
414a0 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
414c0 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)..
414e0 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
41500 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.(>.(
41520 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
41540 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
41560 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
41580 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
415a0 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
415c0 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
415e0 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
41600 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
41620 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
41640 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
41660 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.
41680 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
416a0 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")
416c0 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)
416e0 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
41700 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))).....
41720 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
41740 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.
41760 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
41780 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
417a0 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-
417c0 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)......
417e0 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))
41800 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
41820 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.....
41840 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
41860 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
41880 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)).
418a0 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
418c0 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
418e0 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
41900 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-
41920 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...
41940 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
41960 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.........................
41980 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
419a0 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))....
419c0 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
419e0 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
41a00 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
41a20 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
41a40 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
41a60 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
41a80 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
41aa0 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
41ac0 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
41ae0 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-
41b00 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
41b20 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)))...
41b40 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
41b60 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
41b80 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-
41ba0 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-
41bc0 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.
41be0 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)
41c00 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
41c20 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)...........(
41c40 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
41c60 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
41c80 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
41ca0 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
41cc0 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.
41ce0 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."
41d00 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-
41d20 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
41d40 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
41d60 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)
41d80 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))..
41da0 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
41dc0 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)
41de0 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.
41e00 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
41e20 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-
41e40 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-
41e60 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
41e80 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.(
41ea0 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))).....
41ec0 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
41ee0 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
41f00 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
41f20 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
41f40 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
41f60 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
41f80 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
41fa0 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
41fc0 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
41fe0 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
42000 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-
42020 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
42040 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)...
42060 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
42080 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
420a0 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
420c0 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
420e0 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
42100 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
42120 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"
42140 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
42160 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"
42180 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).....(
421a0 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
421c0 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
421e0 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
42200 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
42220 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
42240 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)......
42260 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").
42280 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
422a0 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
422c0 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
422e0 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
42300 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
42320 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
42340 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
42360 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
42380 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
423a0 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
423c0 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
423e0 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
42400 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
42420 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
42440 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
42460 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
42480 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].....["
424a0 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
424c0 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
424e0 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
42500 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
42520 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
42540 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
42560 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
42580 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]...
425a0 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
425c0 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-
425e0 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
42600 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
42620 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
42640 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
42660 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
42680 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
426a0 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
426c0 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
426e0 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.
42700 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].
42720 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
42740 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
42760 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]....."---"...
42780 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].....[
427a0 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-
427c0 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
427e0 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
42800 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].....)).
42820 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
42840 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
42860 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
42880 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
428a0 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
428c0 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
428e0 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
42900 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
42920 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
42940 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
42960 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
42980 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
429a0 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.........
429c0 20 20 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
429e0 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...........................
42a00 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
42a20 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...................
42a40 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
42a60 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
42a80 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)..........................
42aa0 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
42ac0 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
42ae0 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
42b00 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
42b20 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.............
42b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42c00 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 32 33 2e 34 34 35 2f 64 69 72 00 00 00 00 ledger-mode-20240423.445/dir....
42c20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42c60 00 00 00 00 30 30 30 30 36 34 34 00 30 30 30 30 30 30 30 00 30 30 30 30 30 30 30 00 30 30 30 30 ....0000644.0000000.0000000.0000
42c80 30 30 30 31 31 33 34 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 33 36 31 32 00 20 30 00 00 00 0001134.00000000000.013612..0...
42ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42d00 00 75 73 74 61 72 20 20 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .ustar...root...................
42d20 00 00 00 00 00 00 00 00 00 72 6f 6f 74 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .........root...................
42d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
42e00 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
42e20 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
42e40 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
42e60 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
42e80 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
42ea0 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
42ec0 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
42ee0 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
42f00 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
42f20 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
42f40 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,.
42f60 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
42f80 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
42fa0 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
42fc0 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.
42fe0 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
43000 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
43020 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)
43040 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.....
43060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
430a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
430c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
430e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
431a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
431c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
431e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43200 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 32 33 2e 34 34 35 2f 6c 65 64 67 65 72 2d ledger-mode-20240423.445/ledger-
43220 72 65 67 65 78 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 regex.el........................
43240 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43260 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
43280 30 30 33 33 30 36 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 30 31 37 00 20 30 00 00 00 0033067.00000000000.016017..0...
432a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
432c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
432e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43300 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...................
43320 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...................
43340 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43360 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43380 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
433a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
433c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
433e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
43400 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
43420 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
43440 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
43460 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
43480 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.
434a0 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
434c0 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
434e0 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
43500 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.;
43520 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
43540 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
43560 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
43580 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
435a0 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..;;.;;
435c0 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
435e0 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
43600 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
43620 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
43640 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
43660 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.
43680 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
436a0 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
436c0 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
436e0 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
43700 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
43720 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
43740 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
43760 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
43780 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....;;;
437a0 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
437c0 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
437e0 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-
43800 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
43820 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
43840 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-
43860 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
43880 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
438a0 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,]
438c0 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.
438e0 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..."\\
43900 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.
43920 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..."^[;#|\\*
43940 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
43960 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
43980 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
439a0 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.
439c0 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
439e0 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..."
43a00 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
43a20 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
43a40 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]+[-/][-
43a60 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-+\\*\\)?\\(?:\\
43a80 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-*\
43aa0 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
43ac0 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]+[
43ae0 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-+\\(([^)]+
43b00 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-*\\(;
43b20 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
43b40 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]+[-/][-
43b60 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-+\\(([^)]+)\\
43b80 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-*\\(;\\|
43ba0 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
43bc0 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]+[-/][-/
43be0 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-+\\)?\
43c00 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-*\\(;\\|$\\)")..
43c20 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
43c40 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]+\\
43c60 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
43c80 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
43ca0 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
43cc0 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
43ce0 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
43d00 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..
43d20 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
43d40 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..."
43d60 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]+\\(?:.[^][
43d80 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
43da0 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.
43dc0 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
43de0 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
43e00 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
43e20 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
43e40 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."[])]?")).
43e60 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
43e80 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]+\\(
43ea0 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
43ec0 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))..;;.
43ee0 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
43f00 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
43f20 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
43f40 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
43f60 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
43f80 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\\|%
43fa0 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-
43fc0 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
43fe0 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
44000 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."\\(^[.
44020 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
44040 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
44060 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
44080 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
440a0 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))
440c0 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
440e0 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)...
44100 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
44120 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.".
44140 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))...
44160 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-
44180 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....
441a0 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
441c0 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
441e0 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
44200 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
44220 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).......
44240 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................
44260 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-"
44280 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).............
442a0 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
442c0 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
442e0 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
44300 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)........
44320 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
44340 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
44360 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.............
44380 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.
443a0 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.......
443c0 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
443e0 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"
44400 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)))........
44420 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...
44440 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...............`
44460 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
44480 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
444a0 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)))..............
444c0 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)........
444e0 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
44500 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)...
44520 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....
44540 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.
44560 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
44580 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)..............................
445a0 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"))................
445c0 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
445e0 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
44600 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).......
44620 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)).......
44640 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)...
44660 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)).
44680 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
446a0 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
446c0 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
446e0 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
44700 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.(
44720 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))...............
44740 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)...........
44760 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))..
44780 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)
447a0 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
447c0 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
447e0 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))))...........
44800 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............
44820 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.
44840 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)))..........
44860 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)).
44880 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...
448a0 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
448c0 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
448e0 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-".
44900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
44920 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
44940 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)...........................
44960 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
44980 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........
449a0 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.......
449c0 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................
449e0 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-"
44a00 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).............
44a20 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
44a40 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)))...............
44a60 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....................(
44a80 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....................
44aa0 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...................
44ac0 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.................
44ae0 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-"
44b00 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).........
44b20 20 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
44b40 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))........
44b60 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-
44b80 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)....
44ba0 20 20 20 20 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
44bc0 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...
44be0 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..
44c00 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...........
44c20 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-
44c40 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)......
44c60 20 20 20 20 20 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 ............................."-"
44c80 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)))............
44ca0 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)........
44cc0 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
44ce0 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."....
44d00 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)..
44d20 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.....
44d40 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
44d60 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).
44d80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
44da0 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)))..
44dc0 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)))).......
44de0 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
44e00 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-
44e20 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
44e40 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
44e60 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.
44e80 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.?-.?/
44ea0 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
44ec0 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))..............
44ee0 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
44f00 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))).............
44f20 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
44f40 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
44f60 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
44f80 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
44fa0 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....`
44fc0 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
44fe0 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.?
45000 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
45020 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
45040 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".
45060 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.
45080 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
450a0 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
450c0 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
450e0 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
45100 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
45120 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.(+?
45140 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
45160 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
45180 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
451a0 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
451c0 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)))..."
451e0 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
45200 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
45220 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
45240 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
45260 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-
45280 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).?\;..........
452a0 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)
452c0 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
452e0 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
45300 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).....
45320 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
45340 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
45360 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
45380 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......
453a0 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
453c0 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.(
453e0 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
45400 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.(+
45420 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
45440 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).(+
45460 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.
45480 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)).......
454a0 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
454c0 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
454e0 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
45500 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
45520 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...
45540 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
45560 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
45580 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.?\[.?\(
455a0 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
455c0 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
455e0 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.?\[.?\()))
45600 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
45620 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....`(
45640 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-
45660 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
45680 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).......
456a0 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.?\].?\))))))...""
456c0 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
456e0 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.
45700 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
45720 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.?\"))).?\")..
45740 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.
45760 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....
45780 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 ....................?-.?\[.?\]..
457a0 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 ......................?..?,.?\;.
457c0 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 ?+.?*.?/.?^.??.?:.?&.?|.?!.?=...
457e0 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 .....................?\<.?\>.?\{
45800 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
45820 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
45840 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
45860 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
45880 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
458a0 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.
458c0 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).....
458e0 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
45900 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
45920 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....`
45940 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
45960 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
45980 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-
459a0 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
459c0 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.,
459e0 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
45a00 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)..
45a20 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
45a40 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)).......
45a60 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
45a80 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).............
45aa0 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)................
45ac0 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-
45ae0 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
45b00 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
45b20 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.(*.
45b40 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.?\
45b60 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
45b80 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).?\})..............
45ba0 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
45bc0 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).?\])................
45be0 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.?\))).?\)))))
45c00 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
45c20 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.
45c40 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
45c60 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)........
45c80 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
45ca0 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
45cc0 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
45ce0 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.
45d00 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
45d20 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
45d40 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
45d60 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.(
45d80 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
45da0 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...(
45dc0 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
45de0 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
45e00 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)
45e20 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
45e40 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)..
45e60 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
45e80 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)..........
45ea0 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
45ec0 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)))..............(
45ee0 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
45f00 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)))..."
45f20 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
45f40 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
45f60 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
45f80 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.
45fa0 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."\
45fc0 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]*[-+=]?.*
45fe0 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
46000 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.".*\\)?"...........;
46020 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.
46040 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.....
46060 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
46080 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
460a0 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
460c0 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
460e0 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
46100 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
46120 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
46140 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
46160 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
46180 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
461a0 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............"\\([-+=]?.
461c0 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,.]+?\\)\\)".
461e0 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)]+\\)?"..
46200 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
46220 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."\\)?"..........."\\(
46240 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;]+?\\)?"......
46260 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]*\\)?
46280 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
462a0 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")))).
462c0 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
462e0 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)))...""
46300 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
46320 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.(
46340 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")..................
46360 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.?-))....
46380 20 20 20 20 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
463a0 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))........
463c0 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.,
463e0 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)........
46400 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.(
46420 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
46440 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)))........................
46460 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
46480 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))).........
464a0 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).
464c0 20 20 20 20 20 20 20 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
464e0 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).....
46500 20 20 20 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
46520 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))))
46540 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
46560 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
46580 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..
465a0 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))
465c0 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
465e0 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
46600 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\\}\
46620 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
46640 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
46660 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.......
46680 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
466a0 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
466c0 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...
466e0 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]+\\([*!]\\)\\
46700 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..........
46720 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]+\\((.*?)\\)\\)?"..;
46740 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..........."\\(?
46760 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,
46780 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..........."\\(?:\\(?:\
467a0 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]*\\
467c0 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....
467e0 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
46800 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:]
46820 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.......
46840 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
46860 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..........."\\(\\([*!]\\)?"...
46880 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....
468a0 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:]]*\\(.*?\\)\\)
468c0 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..........
468e0 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
46900 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]*?\
46920 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
46940 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\\|[[:
46960 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,\\}\\)"..........."
46980 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
469a0 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...........))....(
469c0 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-
469e0 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]")...
46a00 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
46a20 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..........
46a40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46a60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46a80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46aa0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46ac0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46ae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46b00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46b20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46b40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46b60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46b80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46ba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46bc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46be0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46c00 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 32 33 2e 34 34 35 2f 6c 65 64 67 65 72 2d ledger-mode-20240423.445/ledger-
46c20 73 74 61 74 65 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 state.el........................
46c40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46c60 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
46c80 30 30 32 33 30 37 37 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 30 32 35 00 20 30 00 00 00 0023077.00000000000.016025..0...
46ca0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46cc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46ce0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46d00 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...................
46d20 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...................
46d40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46d60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46d80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46da0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46dc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46de0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
46e00 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
46e20 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
46e40 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
46e60 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
46e80 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.
46ea0 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
46ec0 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
46ee0 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
46f00 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.;
46f20 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
46f40 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
46f60 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
46f80 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
46fa0 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..;;.;;
46fc0 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
46fe0 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
47000 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
47020 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
47040 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
47060 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.
47080 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
470a0 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
470c0 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
470e0 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
47100 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
47120 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
47140 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
47160 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
47180 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....;;;
471a0 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
471c0 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
471e0 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.'
47200 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
47220 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
47240 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
47260 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
47280 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."...
472a0 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)
472c0 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
472e0 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.
47300 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
47320 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-
47340 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
47360 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)).
47380 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./
473a0 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
473c0 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.
473e0 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).............
47400 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
47420 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
47440 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
47460 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.".
47480 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
474a0 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)).....
474c0 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
474e0 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
47500 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."\\*
47520 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.(
47540 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)))))..(
47560 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
47580 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
475a0 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...
475c0 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).....
475e0 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 ......"!"........."*")....."")).
47600 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.(
47620 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
47640 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
47660 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
47680 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)......
476a0 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
476c0 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
476e0 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
47700 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
47720 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.....
47740 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
47760 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
47780 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
477a0 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.";".
477c0 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.
477e0 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
47800 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).
47820 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.
47840 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
47860 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
47880 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
478a0 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
478c0 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.
478e0 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
47900 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
47920 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
47940 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.
47960 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
47980 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
479a0 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
479c0 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
479e0 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
47a00 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
47a20 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
47a40 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
47a60 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
47a80 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
47aa0 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
47ac0 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.
47ae0 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
47b00 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....
47b20 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
47b40 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......
47b60 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.
47b80 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
47ba0 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.....
47bc0 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./=\\-
47be0 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-
47c00 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
47c20 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.....
47c40 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.
47c60 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).'(?\*.?\!))........
47c80 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
47ca0 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))))....
47cc0 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
47ce0 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
47d00 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.
47d20 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-
47d40 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.((
47d60 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)))........
47d80 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)..........
47da0 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)
47dc0 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
47de0 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).
47e00 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-
47e20 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
47e40 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
47e60 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.
47e80 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
47ea0 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
47ec0 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
47ee0 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
47f00 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)).....
47f20 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
47f40 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).".")........
47f60 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.".
47f80 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).......
47fa0 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."..")
47fc0 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
47fe0 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))...
48000 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)))...
48020 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.
48040 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
48060 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
48080 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.(
480a0 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)).......
480c0 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]")......
480e0 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")...
48100 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))......
48120 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
48140 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))))....
48160 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."*!."
48180 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
481a0 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.(>
481c0 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-
481e0 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))............
48200 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..............
48220 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
48240 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)..............
48260 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
48280 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
482a0 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.
482c0 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.(
482e0 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)).............
48300 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..................
48320 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.."*.").............
48340 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
48360 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
48380 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))..........
483a0 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.................
483c0 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.."!.")..............
483e0 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))
48400 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.........
48420 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.."*.")........
48440 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
48460 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
48480 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
484a0 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]\\)"
484c0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
484e0 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))
48500 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..........
48520 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")......
48540 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))...
48560 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.".[.
48580 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-
485a0 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
485c0 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
485e0 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
48600 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))))......
48620 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
48640 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
48660 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
48680 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
486a0 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
486c0 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
486e0 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.....
48700 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
48720 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
48740 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)......
48760 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).............(
48780 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
487a0 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]
487c0 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
487e0 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
48800 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
48820 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
48840 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)).....
48860 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...........
48880 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
488a0 0a 20 20 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
488c0 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
488e0 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)).........
48900 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))))
48920 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)).....
48940 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
48960 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
48980 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))...........(
489a0 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.(
489c0 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]").............
489e0 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")......
48a00 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)))....
48a20 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."
48a40 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
48a60 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))).............
48a80 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)...........
48aa0 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
48ac0 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
48ae0 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]\\)
48b00 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 "...............................
48b20 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
48b40 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.
48b60 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.?.)))))).....
48b80 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)).........
48ba0 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))......
48bc0 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./=
48be0 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..........
48c00 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
48c20 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
48c40 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
48c60 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
48c80 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
48ca0 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]\\)"
48cc0 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
48ce0 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)........
48d00 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
48d20 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").................(
48d40 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))................(
48d60 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]")...........
48d80 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))..........
48da0 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.".").........
48dc0 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)))))))...
48de0 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
48e00 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)..
48e20 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
48e40 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
48e60 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
48e80 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.(
48ea0 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
48ec0 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))........
48ee0 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))...
48f00 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
48f20 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).(
48f40 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
48f60 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..
48f80 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........
48fa0 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).............
48fc0 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).............
48fe0 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)..........
49000 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-+[*!
49020 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
49040 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))......
49060 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))).......
49080 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)........
490a0 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
490c0 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
490e0 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
49100 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
49120 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
49140 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
49160 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
49180 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.(
491a0 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]")........
491c0 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-
491e0 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
49200 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
49220 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
49240 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
49260 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)............
49280 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.(
492a0 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)).........
492c0 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
492e0 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
49300 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))..........
49320 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.".*")..............
49340 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
49360 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)).........
49380 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
493a0 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).
493c0 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
493e0 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
49400 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).
49420 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..
49440 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49460 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49480 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
494a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
494c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
494e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49500 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49520 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
495a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
495c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
495e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49600 6c 65 64 67 65 72 2d 6d 6f 64 65 2d 32 30 32 34 30 34 32 33 2e 34 34 35 2f 6c 65 64 67 65 72 2d ledger-mode-20240423.445/ledger-
49620 66 6f 6e 74 73 2e 65 6c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 fonts.el........................
49640 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49660 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
49680 30 30 36 31 30 30 36 00 30 30 30 30 30 30 30 30 30 30 30 00 30 31 36 30 33 30 00 20 30 00 00 00 0061006.00000000000.016030..0...
496a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
496c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
496e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49700 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...................
49720 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...................
49740 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
497a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
497c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
497e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
49800 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
49820 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
49840 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
49860 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
49880 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.
498a0 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
498c0 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
498e0 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
49900 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.;
49920 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
49940 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
49960 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
49980 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
499a0 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..;;.;;
499c0 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
499e0 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
49a00 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
49a20 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
49a40 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
49a60 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.
49a80 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
49aa0 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
49ac0 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
49ae0 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
49b00 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
49b20 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
49b40 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
49b60 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
49b80 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.....;;
49ba0 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
49bc0 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
49be0 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
49c00 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
49c20 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
49c40 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.
49c60 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
49c80 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
49ca0 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
49cc0 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
49ce0 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.
49d00 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
49d20 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
49d40 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...`
49d60 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-
49d80 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
49da0 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
49dc0 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
49de0 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
49e00 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
49e20 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.
49e40 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
49e60 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-
49e80 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
49ea0 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
49ec0 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"
49ee0 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
49f00 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
49f20 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
49f40 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
49f60 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
49f80 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.
49fa0 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
49fc0 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
49fe0 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
4a000 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...`((
4a020 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
4a040 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
4a060 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
4a080 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
4a0a0 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
4a0c0 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).'
4a0e0 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
4a100 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
4a120 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"
4a140 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
4a160 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...`(
4a180 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
4a1a0 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
4a1c0 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
4a1e0 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...`
4a200 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
4a220 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
4a240 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
4a260 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
4a280 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
4a2a0 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
4a2c0 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"...
4a2e0 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.
4a300 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
4a320 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
4a340 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.
4a360 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
4a380 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
4a3a0 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.:
4a3c0 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-
4a3e0 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
4a400 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
4a420 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
4a440 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
4a460 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-
4a480 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
4a4a0 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
4a4c0 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
4a4e0 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
4a500 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
4a520 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.
4a540 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-
4a560 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...`(
4a580 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
4a5a0 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
4a5c0 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
4a5e0 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-
4a600 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
4a620 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
4a640 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
4a660 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
4a680 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
4a6a0 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
4a6c0 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
4a6e0 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
4a700 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
4a720 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
4a740 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.
4a760 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
4a780 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
4a7a0 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
4a7c0 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.
4a7e0 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
4a800 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
4a820 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
4a840 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
4a860 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
4a880 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
4a8a0 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-
4a8c0 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
4a8e0 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
4a900 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
4a920 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
4a940 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
4a960 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
4a980 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
4a9a0 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
4a9c0 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..
4a9e0 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
4aa00 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.
4aa20 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
4aa40 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
4aa60 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.:
4aa80 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
4aaa0 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
4aac0 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
4aae0 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
4ab00 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
4ab20 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
4ab40 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
4ab60 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
4ab80 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.
4aba0 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
4abc0 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
4abe0 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
4ac00 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
4ac20 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
4ac40 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
4ac60 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
4ac80 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
4aca0 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.:
4acc0 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
4ace0 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
4ad00 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
4ad20 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
4ad40 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
4ad60 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
4ad80 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
4ada0 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-
4adc0 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
4ade0 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
4ae00 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"...:
4ae20 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
4ae40 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.
4ae60 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
4ae80 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
4aea0 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
4aec0 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...`
4aee0 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
4af00 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
4af20 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
4af40 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-
4af60 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
4af80 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
4afa0 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"..
4afc0 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
4afe0 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.
4b000 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
4b020 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
4b040 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)
4b060 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
4b080 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
4b0a0 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
4b0c0 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"
4b0e0 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
4b100 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
4b120 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-
4b140 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
4b160 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-
4b180 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
4b1a0 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
4b1c0 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
4b1e0 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
4b200 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
4b220 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
4b240 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
4b260 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
4b280 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
4b2a0 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
4b2c0 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-
4b2e0 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
4b300 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
4b320 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"...:
4b340 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
4b360 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
4b380 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
4b3a0 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
4b3c0 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
4b3e0 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
4b400 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-
4b420 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
4b440 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
4b460 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-
4b480 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
4b4a0 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
4b4c0 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
4b4e0 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
4b500 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-
4b520 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
4b540 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
4b560 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
4b580 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).
4b5a0 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
4b5c0 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))
4b5e0 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
4b600 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)..
4b620 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
4b640 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
4b660 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.
4b680 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"...:
4b6a0 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
4b6c0 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..
4b6e0 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
4b700 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.
4b720 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
4b740 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
4b760 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
4b780 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
4b7a0 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
4b7c0 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
4b7e0 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...`((
4b800 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
4b820 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
4b840 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
4b860 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
4b880 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
4b8a0 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))..."
4b8c0 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
4b8e0 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
4b900 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-
4b920 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
4b940 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.
4b960 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
4b980 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
4b9a0 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.
4b9c0 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))..."
4b9e0 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
4ba00 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
4ba20 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
4ba40 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
4ba60 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
4ba80 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"...
4baa0 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.
4bac0 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...`
4bae0 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
4bb00 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.
4bb20 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
4bb40 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
4bb60 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))
4bb80 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
4bba0 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
4bbc0 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
4bbe0 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))...
4bc00 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
4bc20 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)..(
4bc40 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
4bc60 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
4bc80 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
4bca0 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"...
4bcc0 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.
4bce0 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...`
4bd00 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
4bd20 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
4bd40 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".
4bd60 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
4bd80 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
4bda0 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
4bdc0 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.
4bde0 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-
4be00 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
4be20 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))
4be40 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
4be60 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)
4be80 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
4bea0 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
4bec0 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
4bee0 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"..
4bf00 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
4bf20 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...`((
4bf40 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))
4bf60 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
4bf80 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).
4bfa0 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-
4bfc0 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
4bfe0 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
4c000 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,
4c020 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
4c040 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-
4c060 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
4c080 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))
4c0a0 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
4c0c0 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)
4c0e0 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
4c100 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
4c120 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".
4c140 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
4c160 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
4c180 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
4c1a0 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.
4c1c0 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
4c1e0 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
4c200 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.
4c220 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
4c240 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
4c260 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
4c280 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
4c2a0 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.:
4c2c0 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
4c2e0 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
4c300 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
4c320 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
4c340 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...`((
4c360 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
4c380 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
4c3a0 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
4c3c0 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-
4c3e0 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
4c400 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
4c420 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
4c440 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
4c460 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
4c480 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
4c4a0 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
4c4c0 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
4c4e0 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
4c500 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
4c520 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
4c540 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
4c560 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-
4c580 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
4c5a0 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.
4c5c0 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
4c5e0 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"..
4c600 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
4c620 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.:
4c640 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
4c660 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.
4c680 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
4c6a0 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
4c6c0 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
4c6e0 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
4c700 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-
4c720 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
4c740 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
4c760 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
4c780 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
4c7a0 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
4c7c0 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
4c7e0 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
4c800 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
4c820 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
4c840 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
4c860 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
4c880 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
4c8a0 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
4c8c0 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
4c8e0 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
4c900 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
4c920 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
4c940 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
4c960 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
4c980 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
4c9a0 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
4c9c0 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
4c9e0 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
4ca00 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
4ca20 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.'
4ca40 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
4ca60 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
4ca80 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
4caa0 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
4cac0 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.
4cae0 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
4cb00 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
4cb20 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.
4cb40 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.
4cb60 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
4cb80 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
4cba0 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
4cbc0 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))))).....(
4cbe0 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
4cc00 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
4cc20 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))..........
4cc40 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
4cc60 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
4cc80 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
4cca0 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
4ccc0 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
4cce0 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
4cd00 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.
4cd20 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
4cd40 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
4cd60 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.
4cd80 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
4cda0 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")).......(
4cdc0 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)))
4cde0 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
4ce00 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.
4ce20 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
4ce40 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
4ce60 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
4ce80 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...)...
4cea0 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
4cec0 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
4cee0 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
4cf00 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
4cf20 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.`
4cf40 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
4cf60 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
4cf80 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
4cfa0 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
4cfc0 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
4cfe0 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
4d000 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))..............
4d020 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-
4d040 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)).............
4d060 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
4d080 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-
4d0a0 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...`(("^[;#%|*].*$"
4d0c0 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)...
4d0e0 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:
4d100 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
4d120 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)...
4d140 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-
4d160 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
4d180 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.........'(("^[.
4d1a0 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
4d1c0 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]
4d1e0 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:]]+\\(.
4d200 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
4d220 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)......
4d240 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-
4d260 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))...........("^[.\
4d280 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:]]+\
4d2a0 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
4d2c0 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)..
4d2e0 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
4d300 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))..........
4d320 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
4d340 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:]]+\\(.*\\)\\)?$"............
4d360 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-
4d380 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
4d3a0 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))....
4d3c0 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\\)\\(?:
4d3e0 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:]]+\\(.*\\)\\)?$"......
4d400 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
4d420 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
4d440 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.
4d460 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
4d480 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:]]+\\(.*\\)\
4d4a0 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
4d4c0 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).........
4d4e0 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
4d500 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))...........("
4d520 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:]
4d540 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.'
4d560 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)
4d580 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
4d5a0 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)).....
4d5c0 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\\)\\>.
4d5e0 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
4d600 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))))).....("
4d620 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:]]+\\(
4d640 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]*\\)\\(?:=\\(.*\\)\\)?\\)?
4d660 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
4d680 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
4d6a0 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)..
4d6c0 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
4d6e0 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
4d700 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:]]
4d720 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
4d740 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:]]+\\(.*\\)\\)
4d760 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\\)\\
4d780 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:]]+\\(.*\\)\\)?\\)\\
4d7a0 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
4d7c0 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
4d7e0 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.:
4d800 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-
4d820 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.'
4d840 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
4d860 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-
4d880 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)).....("
4d8a0 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:]]+\\
4d8c0 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
4d8e0 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
4d900 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
4d920 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\
4d940 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:]]+\\(.*\\)\
4d960 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
4d980 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
4d9a0 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.:
4d9c0 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\\)"..
4d9e0 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:]]+\
4da00 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:]]*"......
4da20 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:]]*\\(.
4da40 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-
4da60 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.'
4da80 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
4daa0 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
4dac0 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.
4dae0 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\\)"..............."
4db00 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:]]+\\(.*?\\)".....
4db20 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]\
4db40 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,\\}\\)\\(.*\\)\\)?\\)?$")...
4db60 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
4db80 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-
4dba0 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)..
4dbc0 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
4dbe0 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
4dc00 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:]]+\\(.*\\)\\)
4dc20 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
4dc40 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
4dc60 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
4dc80 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
4dca0 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\\)\\>"..............."[^
4dcc0 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
4dce0 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\\)\\>
4dd00 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
4dd20 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\\)\
4dd40 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:]]+\\(.*\\)\\)?$"..
4dd60 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
4dd80 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
4dda0 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)
4ddc0 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
4dde0 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]+\\(;.*\\)"
4de00 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)).
4de20 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\\)\\(
4de40 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:]]+\\(.*\\)\\)?$"....
4de60 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
4de80 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
4dea0 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)
4dec0 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\\
4dee0 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:]]+\\(.*\\)\\)?$"
4df00 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
4df20 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
4df40 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
4df60 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
4df80 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\\)\\>.*"..........
4dfa0 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
4dfc0 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
4dfe0 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
4e000 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)))
4e020 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:]
4e040 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
4e060 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.
4e080 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
4e0a0 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."^\\
4e0c0 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\\)"...............
4e0e0 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]*?\\)
4e100 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:]]*"..............."\\(
4e120 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:]]*\\(.*\\)\\)?\\)?$
4e140 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
4e160 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
4e180 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)..
4e1a0 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-
4e1c0 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."^
4e1e0 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\\)"..............."\\(?:[
4e200 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\\)".........
4e220 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
4e240 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\\)\\>.*\\)?\\)?$").....
4e260 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
4e280 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
4e2a0 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.'
4e2c0 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
4e2e0 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\\)\
4e300 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:]]+\\(.*\\)\\)?$"..
4e320 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
4e340 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
4e360 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))....
4e380 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:]]+\
4e3a0 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
4e3c0 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.
4e3e0 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
4e400 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\\)\
4e420 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
4e440 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:]]+\\(.*\\)\\
4e460 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
4e480 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
4e4a0 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
4e4c0 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
4e4e0 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)).....("^
4e500 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:]]+\\
4e520 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
4e540 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)......(
4e560 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-
4e580 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\\)\\
4e5a0 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:]]+\\(.*\\)\\)?$"...
4e5c0 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
4e5e0 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
4e600 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
4e620 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:]]+\\(.*\\)\\
4e640 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-
4e660 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-
4e680 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)..
4e6a0 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
4e6c0 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]+\\(;.*\\)".(
4e6e0 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))...
4e700 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\\)\\(?
4e720 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:]]+\\(.*\\)\\)?$".....
4e740 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
4e760 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
4e780 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
4e7a0 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\\
4e7c0 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:]]+\\(.*\\)\\)?$"
4e7e0 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
4e800 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.'
4e820 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))
4e840 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\\)"....
4e860 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:]]+\\(
4e880 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]+"..............."
4e8a0 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:]][^[:
4e8c0 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]*\\)?\\)".............
4e8e0 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:]]+\\(\".*?\"\\
4e900 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]+\\)"............
4e920 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:]]+\\(.*\\)\\)
4e940 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
4e960 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.
4e980 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
4e9a0 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
4e9c0 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.
4e9e0 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
4ea00 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
4ea20 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
4ea40 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).....
4ea60 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
4ea80 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
4eaa0 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]+\\
4eac0 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
4eae0 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
4eb00 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:]]+\\(.*\\)\
4eb20 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
4eb40 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)..........
4eb60 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
4eb80 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))...........("^[
4eba0 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:]
4ebc0 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.'
4ebe0 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
4ec00 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
4ec20 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))))
4ec40 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]\\)".
4ec60 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:]]+
4ec80 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]+".............
4eca0 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:]\
4ecc0 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]+\\)?\\)"..............."\\(?:
4ece0 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:]]+\\(.*?\\)"..........
4ed00 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,\
4ed20 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 \}\\)\\(.*?\\)"..............."\
4ed40 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,\\}\\)\\
4ed60 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 (;.*\\)\\)?\\)?\\)?\\)?$")......
4ed80 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
4eda0 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
4edc0 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)......
4ede0 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
4ee00 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-
4ee20 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............
4ee40 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4ee60 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
4ee80 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
4eea0 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.
4eec0 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
4eee0 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..............................
4ef00 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-
4ef20 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)
4ef40 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
4ef60 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]\\)\
4ef80 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
4efa0 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
4efc0 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:]]+\\(.*\\)
4efe0 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
4f000 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
4f020 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))......
4f040 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.
4f060 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
4f080 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
4f0a0 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."^\\(?:\\([=
4f0c0 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
4f0e0 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...................."
4f100 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
4f120 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]+\\(
4f140 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
4f160 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....................".*\\)"..
4f180 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
4f1a0 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
4f1c0 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.
4f1e0 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 ...................)............
4f200 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
4f220 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
4f240 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).............
4f260 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)).
4f280 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)
4f2a0 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
4f2c0 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
4f2e0 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..................
4f300 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6c ...............................l
4f320 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))))
4f340 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."^\\(?:\\(\\([=
4f360 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
4f380 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...............
4f3a0 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]*\\)"....
4f3c0 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............
4f3e0 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.
4f400 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,
4f420 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
4f440 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
4f460 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).............
4f480 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)).
4f4a0 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)
4f4c0 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
4f4e0 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)).........
4f500 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
4f520 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)......
4f540 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
4f560 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
4f580 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
4f5a0 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.......................
4f5c0 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
4f5e0 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.................
4f600 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
4f620 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)).......
4f640 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
4f660 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)......,@(
4f680 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.......
4f6a0 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]+\\(;.*\\)".........
4f6c0 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)
4f6e0 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
4f700 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.
4f720 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.
4f740 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
4f760 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
4f780 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.........
4f7a0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4f7c0 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
4f7e0 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...................
4f800 20 20 20 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
4f820 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))...
4f840 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)...........
4f860 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
4f880 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
4f8a0 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......................
4f8c0 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
4f8e0 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.
4f900 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ................................
4f920 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
4f940 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
4f960 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
4f980 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))))))...
4f9a0 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
4f9c0 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-
4f9e0 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
4fa00 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...........................
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 ................................