packages feed

hledger 1.0.1 → 1.1

raw patch · 28 files changed

+1548/−906 lines, 28 filesdep −oldtimedep ~basedep ~hledgerdep ~hledger-libPVP ok

version bump matches the API change (PVP)

Dependencies removed: oldtime

Dependency ranges changed: base, hledger, hledger-lib, megaparsec

API changes (from Hackage documentation)

Files

CHANGES view
@@ -2,6 +2,21 @@ See also the project change log.  +# 1.1 (2016/12/31)++## balance++-   with -V, don't ignore market prices in the future (#453, #403)++-   with -V and multiple same-date market prices, use the last parsed not the highest price (#403)++## misc++-   fix non-existent "oldtime" dependency (#431)++-   extra/hledger-equity.hs now generates valid journal format when there are multiple commodities++ # 1.0.1 (2016/10/27)  - allow megaparsec 5.0 or 5.1
Hledger/Cli/Balance.hs view
@@ -246,7 +246,7 @@ ) where  import Data.List (intercalate)-import Data.Maybe (fromMaybe, isJust)+import Data.Maybe import Data.Monoid -- import Data.Text (Text) import qualified Data.Text as T@@ -275,7 +275,7 @@         "show historical ending balance in each period (includes postings before report start date)\n "      ,flagNone ["tree"] (\opts -> setboolopt "tree" opts) "show accounts as a tree; amounts include subaccounts (default in simple reports)"      ,flagNone ["flat"] (\opts -> setboolopt "flat" opts) "show accounts as a list; amounts exclude subaccounts except when account is depth-clipped (default in multicolumn reports)\n "-     ,flagNone ["value","V"] (setboolopt "value") "convert amounts to current market value in their default valuation commodity"+     ,flagNone ["value","V"] (setboolopt "value") "convert amounts to their market value on the report end date (using the most recent applicable market price, if any)"      ,flagNone ["average","A"] (\opts -> setboolopt "average" opts) "show a row average column (in multicolumn reports)"      ,flagNone ["row-total","T"] (\opts -> setboolopt "row-total" opts) "show a row total column (in multicolumn reports)"      ,flagNone ["no-total","N"] (\opts -> setboolopt "no-total" opts) "omit the final total row"@@ -300,7 +300,7 @@       let format   = outputFormatFromOpts opts           interval = interval_ ropts           baltype  = balancetype_ ropts-          valuedate = fromMaybe d $ queryEndDate False $ queryFromOpts d ropts+      mvaluedate <- reportEndDate j ropts       -- shenanigans: use single/multiBalanceReport when we must,       -- ie when there's a report interval, or --historical or -- cumulative.       -- Otherwise prefer the older balanceReport since it can elide boring parents.@@ -314,16 +314,16 @@                                | otherwise   = ropts{accountlistmode_=ALTree}                     in singleBalanceReport ropts' (queryFromOpts d ropts) j                 | otherwise = balanceReport ropts (queryFromOpts d ropts) j-              convert | value_ ropts = balanceReportValue j valuedate-                      | otherwise    = id+              convert | value_ ropts = maybe id (balanceReportValue j) mvaluedate+                      | otherwise = id               render = case format of                 "csv" -> \ropts r -> (++ "\n") $ printCSV $ balanceReportAsCsv ropts r                 _     -> balanceReportAsText           writeOutput opts $ render ropts $ convert report         _ -> do           let report = multiBalanceReport ropts (queryFromOpts d ropts) j-              convert | value_ ropts = multiBalanceReportValue j valuedate-                      | otherwise    = id+              convert | value_ ropts = maybe id (multiBalanceReportValue j) mvaluedate+                      | otherwise = id               render = case format of                 "csv" -> \ropts r -> (++ "\n") $ printCSV $ multiBalanceReportAsCsv ropts r                 _     -> case baltype of
Hledger/Cli/CliOptions.hs view
@@ -142,7 +142,7 @@  ,flagNone ["real","R"]      (setboolopt "real") "include only non-virtual postings"  ,flagReq  ["depth"]         (\s opts -> Right $ setopt "depth" s opts) "N" "hide accounts/postings deeper than N"  ,flagNone ["empty","E"]     (setboolopt "empty") "show items with zero amount, normally hidden"- ,flagNone ["cost","B"]      (setboolopt "cost") "show amounts in their cost price's commodity"+ ,flagNone ["cost","B"]      (setboolopt "cost") "convert amounts to their cost at transaction time (using the transaction price, if any)"  ,flagNone ["anon"]              (setboolopt "anon") "output ledger with anonymized accounts and payees."  ] @@ -397,14 +397,22 @@ -- 1. options, 2. an environment variable, or 3. the default. -- Actually, returns one or more file paths. There will be more -- than one if multiple -f options were provided.+-- File paths can have a READER: prefix naming a reader/data format. journalFilePathFromOpts :: CliOpts -> IO [String] journalFilePathFromOpts opts = do   f <- defaultJournalPath   d <- getCurrentDirectory-  mapM (expandPath d) $ ifEmpty (file_ opts) [f]- where-    ifEmpty [] d = d-    ifEmpty l _ = l+  case file_ opts of+    [] -> return [f]+    fs -> mapM (expandPathPreservingPrefix d) fs++expandPathPreservingPrefix :: FilePath -> PrefixedFilePath -> IO PrefixedFilePath+expandPathPreservingPrefix d prefixedf = do+  let (p,f) = splitReaderPrefix prefixedf+  f' <- expandPath d f+  return $ case p of+    Just p  -> p ++ ":" ++ f'+    Nothing -> f'  -- | Get the expanded, absolute output file path from options, -- or the default (-, meaning stdout).
doc/hledger.1 view
@@ -1,6 +1,6 @@ .\"t -.TH "hledger" "1" "October 2016" "hledger 1.0" "hledger User Manuals"+.TH "hledger" "1" "December 2016" "hledger 1.1" "hledger User Manuals"   @@ -237,8 +237,9 @@ .PP If you\[aq]re really curious, add \f[C]\-\-debug=2\f[] for troubleshooting.+.SS General options .PP-\f[B]General options:\f[]+Always available, can be written before or after COMMAND. .TP .B \f[C]\-h\f[] show general usage (or after COMMAND, the command\[aq]s usage)@@ -291,8 +292,9 @@ ignore any failing balance assertions in the journal .RS .RE+.SS Reporting options .PP-\f[B]Common reporting options:\f[]+Common reporting options, must be written after COMMAND. .TP .B \f[C]\-b\ \-\-begin=DATE\f[] include postings/txns on or after this date@@ -371,7 +373,8 @@ .RE .TP .B \f[C]\-B\ \-\-cost\f[]-show amounts in their cost price\[aq]s commodity+convert amounts to their cost at transaction time (using the transaction+price, if any) .RS .RE .TP@@ -379,8 +382,6 @@ will transform the journal before any other processing by replacing the account name of every posting having the tag TAG with content VALUE by the account name "TAG:VALUE".-.RS-.RE The TAG will only match if it is a full\-length match. The pivot will only happen if the TAG is on a posting, not if it is on the transaction.@@ -393,18 +394,104 @@ show anonymized accounts and payees .RS .RE-.SS Multiple files .PP-You can specify multiple \f[C]\-f/\-\-file\ FILE\f[] options.-This is like combining all the files into one, except they can have-different formats.-Also directives and aliases in one file do not affect subsequent files-(if you need that, use the include directive instead).-.SS Repeated options-.PP-Otherwise, if a reporting option is repeated, the last one takes-precedence.+If a reporting option occurs more than once on the command line, the+last one takes precedence. Eg \-p jan \-p feb is equivalent to \-p feb.+.SS Input files+.PP+hledger reads transactions from a data file (and the add command writes+to it).+By default this file is \f[C]$HOME/.hledger.journal\f[] (or on Windows,+something like \f[C]C:/Users/USER/.hledger.journal\f[]).+You can override this with the \f[C]$LEDGER_FILE\f[] environment+variable:+.IP+.nf+\f[C]+$\ setenv\ LEDGER_FILE\ ~/finance/2016.journal+$\ hledger\ stats+\f[]+.fi+.PP+or with the \f[C]\-f/\-\-file\f[] option:+.IP+.nf+\f[C]+$\ hledger\ \-f\ /some/file\ stats+\f[]+.fi+.PP+The file name \f[C]\-\f[] (hyphen) means standard input:+.IP+.nf+\f[C]+$\ cat\ some.journal\ |\ hledger\ \-f\-+\f[]+.fi+.PP+Usually the data file is in hledger\[aq]s journal format, but it can+also be one of several other formats, listed below.+hledger detects the format automatically based on the file extension, or+if that is not recognised, by trying each built\-in "reader" in turn:+.PP+.TS+tab(@);+lw(10.7n) lw(33.2n) lw(26.1n).+T{+Reader:+T}@T{+Reads:+T}@T{+Used for file extensions:+T}+_+T{+\f[C]journal\f[]+T}@T{+hledger\[aq]s journal format, also some Ledger journals+T}@T{+\f[C]\&.journal\f[] \f[C]\&.j\f[] \f[C]\&.hledger\f[] \f[C]\&.ledger\f[]+T}+T{+\f[C]timeclock\f[]+T}@T{+timeclock files (precise time logging)+T}@T{+\f[C]\&.timeclock\f[]+T}+T{+\f[C]timedot\f[]+T}@T{+timedot files (approximate time logging)+T}@T{+\f[C]\&.timedot\f[]+T}+T{+\f[C]csv\f[]+T}@T{+comma\-separated values (data interchange)+T}@T{+\f[C]\&.csv\f[]+T}+.TE+.PP+If needed (eg to ensure correct error messages when a file has the+"wrong" extension), you can force a specific reader/format by prepending+it to the file path with a colon.+Examples:+.IP+.nf+\f[C]+$\ hledger\ \-f\ csv:/some/csv\-file.dat\ stats+$\ echo\ \[aq]i\ 2009/13/1\ 08:00:00\[aq]\ |\ hledger\ print\ \-ftimeclock:\-+\f[]+.fi+.PP+You can also specify multiple \f[C]\-f\f[] options, to read multiple+files as one big journal.+(Directives in one file will not affect the other files.+If you need that, use the include directive instead.) .SS Depth limiting .PP With the \f[C]\-\-depth\ N\f[] option, commands like account, balance@@ -470,6 +557,68 @@ T}@T{ T} .TE+.SS Report start & end date+.PP+Most hledger reports show the full span of time represented by the+journal data, by default.+So, the effective report start and end dates will be the earliest and+latest transaction or posting dates found in the journal.+.PP+Often you will want to see a shorter time span, such as the current+month.+You can specify a start and/or end date using \f[C]\-b/\-\-begin\f[],+\f[C]\-e/\-\-end\f[], \f[C]\-p/\-\-period\f[] or a \f[C]date:\f[] query+(described below).+All of these accept the smart date syntax.+One important thing to be aware of when specifying end dates: as in+Ledger, end dates are exclusive, so you need to write the date+\f[I]after\f[] the last day you want to include.+.PP+Examples:+.PP+.TS+tab(@);+l l.+T{+\f[C]\-b\ 2016/3/17\f[]+T}@T{+begin on St.+Patrick\[aq]s day 2016+T}+T{+\f[C]\-e\ 12/1\f[]+T}@T{+end at the start of december 1st of the current year (11/30 will be the+last date included)+T}+T{+\f[C]\-b\ thismonth\f[]+T}@T{+all transactions on or after the 1st of the current month+T}+T{+\f[C]\-p\ thismonth\f[]+T}@T{+all transactions in the current month+T}+T{+\f[C]date:2016/3/17\-\f[]+T}@T{+the above written as queries instead+T}+T{+\f[C]date:\-12/1\f[]+T}@T{+T}+T{+\f[C]date:thismonth\-\f[]+T}@T{+T}+T{+\f[C]date:thismonth\f[]+T}@T{+T}+.TE .SS Report intervals .PP A report interval can be specified so that commands like register,@@ -478,6 +627,7 @@ \f[C]\-W/\-\-weekly\f[], \f[C]\-M/\-\-monthly\f[], \f[C]\-Q/\-\-quarterly\f[], or \f[C]\-Y/\-\-yearly\f[]. More complex intervals may be specified with a period expression.+Report intervals can not be specified with a query, currently. .SS Period expressions .PP The \f[C]\-p/\-\-period\f[] option accepts period expressions, a@@ -1037,8 +1187,8 @@ .RE .TP .B \f[C]\-V\ \-\-value\f[]-convert amounts to current market value in their default valuation-commodity+convert amounts to their market value on the report end date (using the+most recent applicable market price, if any) .RS .RE .TP@@ -1292,15 +1442,64 @@ .fi .SS Market value .PP-The \f[C]\-V/\-\-value\f[] flag converts all the reported amounts to-their "current market value" using their default market price.-That is the latest market price (P directive) found in the journal (or-an included file), for the amount\[aq]s commodity, dated on or before-the report end date.+The \f[C]\-V/\-\-value\f[] flag converts the reported amounts to their+market value on the report end date, using the most recent applicable+market prices, when known.+Specifically, when there is a market price (P directive) for the+amount\[aq]s commodity, dated on or before the report end date (see+hledger \-> Report start & end date), the amount will be converted to+the price\[aq]s commodity.+If multiple applicable prices are defined, the latest\-dated one is used+(and if dates are equal, the one last parsed). .PP-Unlike Ledger, hledger\[aq]s \-V only uses the market prices recorded-with P directives, ignoring transaction prices recorded as part of-posting amounts (which \-B/\-\-cost uses).+For example:+.IP+.nf+\f[C]+#\ one\ euro\ is\ worth\ this\ many\ dollars\ from\ nov\ 1+P\ 2016/11/01\ €\ $1.10++#\ purchase\ some\ euros\ on\ nov\ 3+2016/11/3+\ \ \ \ assets:euros\ \ \ \ \ \ \ \ €100+\ \ \ \ assets:checking++#\ the\ euro\ is\ worth\ fewer\ dollars\ by\ dec\ 21+P\ 2016/12/21\ €\ $1.03+\f[]+.fi+.PP+How many euros do I have ?+.IP+.nf+\f[C]+$\ hledger\ \-f\ t.j\ bal\ euros+\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ €100\ \ assets:euros+\f[]+.fi+.PP+What are they worth on nov 3 ?+(no report end date specified, defaults to the last date in the journal)+.IP+.nf+\f[C]+$\ hledger\ \-f\ t.j\ bal\ euros\ \-V+\ \ \ \ \ \ \ \ \ \ \ \ \ $110.00\ \ assets:euros+\f[]+.fi+.PP+What are they worth on dec 21 ?+.IP+.nf+\f[C]+$\ hledger\ \-f\ t.j\ bal\ euros\ \-V\ \-e\ 2016/12/21+\ \ \ \ \ \ \ \ \ \ \ \ \ $103.00\ \ assets:euros+\f[]+.fi+.PP+Currently, hledger\[aq]s \-V only uses market prices recorded with P+directives, not transaction prices (unlike Ledger).+.PP Using \-B and \-V together is allowed. .SS Custom balance output .PP
doc/hledger.1.info view
@@ -4,7 +4,7 @@  File: hledger.1.info,  Node: Top,  Up: (dir) -hledger(1) hledger 1.0+hledger(1) hledger 1.1 **********************  This is hledger's command-line interface (there are also curses and web@@ -195,8 +195,26 @@     If you're really curious, add `--debug=2' for troubleshooting. -   *General options:*+* Menu: +* General options::+* Reporting options::+* Input files::+* Depth limiting::+* Smart dates::+* Report start & end date::+* Report intervals::+* Period expressions::+* Regular expressions::+++File: hledger.1.info,  Node: General options,  Next: Reporting options,  Up: OPTIONS++2.1 General options+===================++Always available, can be written before or after COMMAND.+ `-h'      show general usage (or after COMMAND, the command's usage) @@ -228,8 +246,14 @@ `-I --ignore-assertions'      ignore any failing balance assertions in the journal -   *Common reporting options:*++File: hledger.1.info,  Node: Reporting options,  Next: Input files,  Prev: General options,  Up: OPTIONS +2.2 Reporting options+=====================++Common reporting options, must be written after COMMAND.+ `-b --begin=DATE'      include postings/txns on or after this date @@ -277,54 +301,81 @@      show items with zero amount, normally hidden  `-B --cost'-     show amounts in their cost price's commodity+     convert amounts to their cost at transaction time (using the+     transaction price, if any)  `--pivot TAG'      will transform the journal before any other processing by      replacing the account name of every posting having the tag TAG-     with content VALUE by the account name "TAG:VALUE".  The TAG will+     with content VALUE by the account name "TAG:VALUE". The TAG will      only match if it is a full-length match. The pivot will only-     happen if the TAG is on a posting, not if it is on the transaction.-     If the tag value is a multi:level:account:name the new account-     name will be "TAG:multi:level:account:name".+     happen if the TAG is on a posting, not if it is on the+     transaction. If the tag value is a multi:level:account:name the+     new account name will be "TAG:multi:level:account:name".  `--anon'      show anonymized accounts and payees -* Menu:--* Multiple files::-* Repeated options::-* Depth limiting::-* Smart dates::-* Report intervals::-* Period expressions::-* Regular expressions::+   If a reporting option occurs more than once on the command line, the+last one takes precedence. Eg -p jan -p feb is equivalent to -p feb.  -File: hledger.1.info,  Node: Multiple files,  Next: Repeated options,  Up: OPTIONS+File: hledger.1.info,  Node: Input files,  Next: Depth limiting,  Prev: Reporting options,  Up: OPTIONS -2.1 Multiple files-==================+2.3 Input files+=============== -You can specify multiple `-f/--file FILE' options. This is like-combining all the files into one, except they can have different-formats. Also directives and aliases in one file do not affect-subsequent files (if you need that, use the include directive instead).+hledger reads transactions from a data file (and the add command writes+to it). By default this file is `$HOME/.hledger.journal' (or on+Windows, something like `C:/Users/USER/.hledger.journal'). You can+override this with the `$LEDGER_FILE' environment variable: --File: hledger.1.info,  Node: Repeated options,  Next: Depth limiting,  Prev: Multiple files,  Up: OPTIONS -2.2 Repeated options-====================+$ setenv LEDGER_FILE ~/finance/2016.journal+$ hledger stats -Otherwise, if a reporting option is repeated, the last one takes-precedence. Eg -p jan -p feb is equivalent to -p feb.+   or with the `-f/--file' option: ++$ hledger -f /some/file stats++   The file name `-' (hyphen) means standard input:+++$ cat some.journal | hledger -f-++   Usually the data file is in hledger's journal format, but it can+also be one of several other formats, listed below. hledger detects the+format automatically based on the file extension, or if that is not+recognised, by trying each built-in "reader" in turn:++Reader:     Reads:                             Used for file extensions:+--------------------------------------------------------------------------- +`journal'   hledger's journal format, also     `.journal' `.j' `.hledger'+            some Ledger journals               `.ledger'+`timeclock' timeclock files (precise time      `.timeclock'+            logging)                           +`timedot'   timedot files (approximate time    `.timedot'+            logging)                           +`csv'       comma-separated values (data       `.csv'+            interchange)                       ++   If needed (eg to ensure correct error messages when a file has the+"wrong" extension), you can force a specific reader/format by prepending+it to the file path with a colon. Examples:+++$ hledger -f csv:/some/csv-file.dat stats+$ echo 'i 2009/13/1 08:00:00' | hledger print -ftimeclock:-++   You can also specify multiple `-f' options, to read multiple files+as one big journal. (Directives in one file will not affect the other+files. If you need that, use the include directive instead.)+ -File: hledger.1.info,  Node: Depth limiting,  Next: Smart dates,  Prev: Repeated options,  Up: OPTIONS+File: hledger.1.info,  Node: Depth limiting,  Next: Smart dates,  Prev: Input files,  Up: OPTIONS -2.3 Depth limiting+2.4 Depth limiting ==================  With the `--depth N' option, commands like account, balance and@@ -332,9 +383,9 @@ to level N. Use this when you want a summary with less detail.  -File: hledger.1.info,  Node: Smart dates,  Next: Report intervals,  Prev: Depth limiting,  Up: OPTIONS+File: hledger.1.info,  Node: Smart dates,  Next: Report start & end date,  Prev: Depth limiting,  Up: OPTIONS -2.4 Smart dates+2.5 Smart dates ===============  hledger's user interfaces accept a flexible "smart date" syntax (unlike@@ -355,21 +406,51 @@ `today', `yesterday', `tomorrow'                     -File: hledger.1.info,  Node: Report intervals,  Next: Period expressions,  Prev: Smart dates,  Up: OPTIONS+File: hledger.1.info,  Node: Report start & end date,  Next: Report intervals,  Prev: Smart dates,  Up: OPTIONS -2.5 Report intervals+2.6 Report start & end date+===========================++Most hledger reports show the full span of time represented by the+journal data, by default. So, the effective report start and end dates+will be the earliest and latest transaction or posting dates found in+the journal.++   Often you will want to see a shorter time span, such as the current+month. You can specify a start and/or end date using `-b/--begin',+`-e/--end', `-p/--period' or a `date:' query (described below). All of+these accept the smart date syntax. One important thing to be aware of+when specifying end dates: as in Ledger, end dates are exclusive, so+you need to write the date _after_ the last day you want to include.++   Examples:++`-b 2016/3/17'      begin on St. Patrick's day 2016+`-e 12/1'           end at the start of december 1st of the current year (11/30 will be the last date included)+`-b thismonth'      all transactions on or after the 1st of the current month+`-p thismonth'      all transactions in the current month+`date:2016/3/17-'   the above written as queries instead+`date:-12/1'        +`date:thismonth-'   +`date:thismonth'    +++File: hledger.1.info,  Node: Report intervals,  Next: Period expressions,  Prev: Report start & end date,  Up: OPTIONS++2.7 Report intervals ====================  A report interval can be specified so that commands like register, balance and activity will divide their reports into multiple subperiods. The basic intervals can be selected with one of `-D/--daily', `-W/--weekly', `-M/--monthly', `-Q/--quarterly', or `-Y/--yearly'. More-complex intervals may be specified with a period expression.+complex intervals may be specified with a period expression. Report+intervals can not be specified with a query, currently.   File: hledger.1.info,  Node: Period expressions,  Next: Regular expressions,  Prev: Report intervals,  Up: OPTIONS -2.6 Period expressions+2.8 Period expressions ======================  The `-p/--period' option accepts period expressions, a shorthand way of@@ -444,7 +525,7 @@  File: hledger.1.info,  Node: Regular expressions,  Prev: Period expressions,  Up: OPTIONS -2.7 Regular expressions+2.9 Regular expressions =======================  hledger uses regular expressions in a number of places:@@ -824,8 +905,8 @@      account is depth-clipped (default in multicolumn reports)  `-V --value'-     convert amounts to current market value in their default valuation-     commodity+     convert amounts to their market value on the report end date+     (using the most recent applicable market price, if any)  `-A --average'      show a row average column (in multicolumn mode)@@ -1052,17 +1133,53 @@ 4.4.4 Market value ------------------ -The `-V/--value' flag converts all the reported amounts to their-"current market value" using their default market price. That is the-latest market price (P directive) found in the journal (or an included-file), for the amount's commodity, dated on or before the report end-date.+The `-V/--value' flag converts the reported amounts to their market+value on the report end date, using the most recent applicable market+prices, when known. Specifically, when there is a market price (P+directive) for the amount's commodity, dated on or before the report end+date (see hledger -> Report start & end date), the amount will be+converted to the price's commodity. If multiple applicable prices are+defined, the latest-dated one is used (and if dates are equal, the one+last parsed). -   Unlike Ledger, hledger's -V only uses the market prices recorded-with P directives, ignoring transaction prices recorded as part of-posting amounts (which -B/-cost uses). Using -B and -V together is-allowed.+   For example: ++# one euro is worth this many dollars from nov 1+P 2016/11/01 € $1.10++# purchase some euros on nov 3+2016/11/3+    assets:euros        €100+    assets:checking++# the euro is worth fewer dollars by dec 21+P 2016/12/21 € $1.03++   How many euros do I have ?+++$ hledger -f t.j bal euros+                €100  assets:euros++   What are they worth on nov 3 ? (no report end date specified,+defaults to the last date in the journal)+++$ hledger -f t.j bal euros -V+             $110.00  assets:euros++   What are they worth on dec 21 ?+++$ hledger -f t.j bal euros -V -e 2016/12/21+             $103.00  assets:euros++   Currently, hledger's -V only uses market prices recorded with P+directives, not transaction prices (unlike Ledger).++   Using -B and -V together is allowed.+  File: hledger.1.info,  Node: Custom balance output,  Next: Output destination,  Prev: Market value,  Up: balance @@ -2114,95 +2231,99 @@ Ref: #examples1975 Node: OPTIONS3979 Ref: #options4083-Node: Multiple files9008-Ref: #multiple-files9133-Node: Repeated options9398-Ref: #repeated-options9550-Node: Depth limiting9670-Ref: #depth-limiting9815-Node: Smart dates10016-Ref: #smart-dates10155-Node: Report intervals11152-Ref: #report-intervals11305-Node: Period expressions11641-Ref: #period-expressions11806-Node: Regular expressions14141-Ref: #regular-expressions14283-Node: QUERIES15766-Ref: #queries15870-Node: COMMANDS19509-Ref: #commands19623-Node: accounts20296-Ref: #accounts20396-Node: activity21378-Ref: #activity21490-Node: add21849-Ref: #add21950-Node: balance24609-Ref: #balance24722-Node: Flat mode27695-Ref: #flat-mode27822-Node: Depth limited balance reports28241-Ref: #depth-limited-balance-reports28444-Node: Multicolumn balance reports28865-Ref: #multicolumn-balance-reports29067-Node: Market value33716-Ref: #market-value33880-Node: Custom balance output34373-Ref: #custom-balance-output34546-Node: Output destination36650-Ref: #output-destination36815-Node: CSV output37085-Ref: #csv-output37204-Node: balancesheet37601-Ref: #balancesheet37729-Node: cashflow38381-Ref: #cashflow38498-Node: help39188-Ref: #help39300-Node: incomestatement40137-Ref: #incomestatement40267-Node: info40994-Ref: #info41101-Node: man41463-Ref: #man41560-Node: print41963-Ref: #print42068-Node: register43414-Ref: #register43527-Node: Custom register output48019-Ref: #custom-register-output48150-Node: stats49447-Ref: #stats49553-Node: test50429-Ref: #test50516-Node: ADD-ON COMMANDS50883-Ref: #add-on-commands51019-Node: api52307-Ref: #api52399-Node: autosync52433-Ref: #autosync52548-Node: diff54863-Ref: #diff54973-Node: equity55637-Ref: #equity55751-Node: interest57079-Ref: #interest57196-Node: irr60280-Ref: #irr60393-Node: print-unique62768-Ref: #print-unique62898-Node: rewrite63156-Ref: #rewrite63275-Node: ui63804-Ref: #ui63904-Node: web63945-Ref: #web64033-Node: TROUBLESHOOTING64066-Ref: #troubleshooting64185-Node: Run-time problems64239-Ref: #run-time-problems64382-Node: Known limitations66326-Ref: #known-limitations66469+Node: General options6711+Ref: #general-options6840+Node: Reporting options7611+Ref: #reporting-options7764+Node: Input files9587+Ref: #input-files9727+Node: Depth limiting11564+Ref: #depth-limiting11704+Node: Smart dates11905+Ref: #smart-dates12051+Node: Report start & end date13048+Ref: #report-start-end-date13220+Node: Report intervals14296+Ref: #report-intervals14461+Node: Period expressions14860+Ref: #period-expressions15025+Node: Regular expressions17360+Ref: #regular-expressions17502+Node: QUERIES18985+Ref: #queries19089+Node: COMMANDS22728+Ref: #commands22842+Node: accounts23515+Ref: #accounts23615+Node: activity24597+Ref: #activity24709+Node: add25068+Ref: #add25169+Node: balance27828+Ref: #balance27941+Node: Flat mode30954+Ref: #flat-mode31081+Node: Depth limited balance reports31500+Ref: #depth-limited-balance-reports31703+Node: Multicolumn balance reports32124+Ref: #multicolumn-balance-reports32326+Node: Market value36975+Ref: #market-value37139+Node: Custom balance output38440+Ref: #custom-balance-output38613+Node: Output destination40717+Ref: #output-destination40882+Node: CSV output41152+Ref: #csv-output41271+Node: balancesheet41668+Ref: #balancesheet41796+Node: cashflow42448+Ref: #cashflow42565+Node: help43255+Ref: #help43367+Node: incomestatement44204+Ref: #incomestatement44334+Node: info45061+Ref: #info45168+Node: man45530+Ref: #man45627+Node: print46030+Ref: #print46135+Node: register47481+Ref: #register47594+Node: Custom register output52086+Ref: #custom-register-output52217+Node: stats53514+Ref: #stats53620+Node: test54496+Ref: #test54583+Node: ADD-ON COMMANDS54950+Ref: #add-on-commands55086+Node: api56374+Ref: #api56466+Node: autosync56500+Ref: #autosync56615+Node: diff58930+Ref: #diff59040+Node: equity59704+Ref: #equity59818+Node: interest61146+Ref: #interest61263+Node: irr64347+Ref: #irr64460+Node: print-unique66835+Ref: #print-unique66965+Node: rewrite67223+Ref: #rewrite67342+Node: ui67871+Ref: #ui67971+Node: web68012+Ref: #web68100+Node: TROUBLESHOOTING68133+Ref: #troubleshooting68252+Node: Run-time problems68306+Ref: #run-time-problems68449+Node: Known limitations70393+Ref: #known-limitations70536  End Tag Table
doc/hledger.1.txt view
@@ -177,7 +177,8 @@         If you're really curious, add --debug=2 for troubleshooting. -       General options:+   General options+       Always available, can be written before or after COMMAND.         -h     show general usage (or after COMMAND, the command's usage) @@ -207,7 +208,8 @@        -I --ignore-assertions               ignore any failing balance assertions in the journal -       Common reporting options:+   Reporting options+       Common reporting options, must be written after COMMAND.         -b --begin=DATE               include postings/txns on or after this date@@ -256,29 +258,68 @@               show items with zero amount, normally hidden         -B --cost-              show amounts in their cost price's commodity+              convert amounts to their cost at  transaction  time  (using  the+              transaction price, if any)         --pivot TAG-              will transform  the  journal  before  any  other  processing  by-              replacing  the  account name of every posting having the tag TAG-              with content VALUE by the account name "TAG:VALUE".-       The TAG will only match if it is a full-length match.  The  pivot  will-       only  happen  if  the TAG is on a posting, not if it is on the transac--       tion.  If the tag value is a multi:level:account:name the  new  account-       name will be "TAG:multi:level:account:name".+              will  transform  the  journal  before  any  other  processing by+              replacing the account name of every posting having the  tag  TAG+              with  content  VALUE  by  the account name "TAG:VALUE".  The TAG+              will only match if it is a full-length match.   The  pivot  will+              only  happen  if  the  TAG  is on a posting, not if it is on the+              transaction.  If the tag value is a multi:level:account:name the+              new account name will be "TAG:multi:level:account:name".         --anon show anonymized accounts and payees -   Multiple files-       You  can specify multiple -f/--file FILE options.  This is like combin--       ing all the files into one, except they  can  have  different  formats.-       Also  directives and aliases in one file do not affect subsequent files-       (if you need that, use the include directive instead).+       If  a  reporting  option occurs more than once on the command line, the+       last one takes precedence.  Eg -p jan -p feb is equivalent to -p feb. -   Repeated options-       Otherwise, if a reporting option is repeated, the last one takes prece--       dence.  Eg -p jan -p feb is equivalent to -p feb.+   Input files+       hledger reads transactions from a data file (and the add command writes+       to it).  By default this file is $HOME/.hledger.journal (or on Windows,+       something like C:/Users/USER/.hledger.journal).  You can override  this+       with the $LEDGER_FILE environment variable: +              $ setenv LEDGER_FILE ~/finance/2016.journal+              $ hledger stats++       or with the -f/--file option:++              $ hledger -f /some/file stats++       The file name - (hyphen) means standard input:++              $ cat some.journal | hledger -f-++       Usually  the  data file is in hledger's journal format, but it can also+       be one of several other formats, listed  below.   hledger  detects  the+       format  automatically  based  on  the file extension, or if that is not+       recognised, by trying each built-in "reader" in turn:+++       Reader:       Reads:                              Used for file extensions:+       -----------------------------------------------------------------------------+       journal       hledger's  journal  format,  also   .journal    .j    .hledger+                     some Ledger journals                .ledger+       timeclock     timeclock  files  (precise   time   .timeclock+                     logging)+       timedot       timedot  files  (approximate time   .timedot+                     logging)+       csv           comma-separated   values    (data   .csv+                     interchange)++       If  needed  (eg  to  ensure  correct error messages when a file has the+       "wrong" extension), you can force a specific reader/format by  prepend-+       ing it to the file path with a colon.  Examples:++              $ hledger -f csv:/some/csv-file.dat stats+              $ echo 'i 2009/13/1 08:00:00' | hledger print -ftimeclock:-++       You can also specify multiple -f options, to read multiple files as one+       big journal.  (Directives in one file will not affect the other  files.+       If you need that, use the include directive instead.)+    Depth limiting        With  the --depth N option, commands like account, balance and register        will show only the uppermost accounts in  the  account  tree,  down  to@@ -309,25 +350,59 @@        lastweek                     spaces are optional        today, yesterday, tomorrow +   Report start & end date+       Most hledger reports show the full span  of  time  represented  by  the+       journal data, by default.  So, the effective report start and end dates+       will be the earliest and latest transaction or posting dates  found  in+       the journal.++       Often  you  will  want  to see a shorter time span, such as the current+       month.  You can specify a  start  and/or  end  date  using  -b/--begin,+       -e/--end, -p/--period or a date: query (described below).  All of these+       accept the smart date syntax.  One important thing to be aware of  when+       specifying  end  dates:  as  in Ledger, end dates are exclusive, so you+       need to write the date after the last day you want to include.++       Examples:+++       -b 2016/3/17      begin  on  St.   Patrick's+                         day 2016+       -e 12/1           end at the start of decem-+                         ber  1st  of  the  current+                         year  (11/30  will  be the+                         last date included)+       -b thismonth      all  transactions  on   or+                         after  the 1st of the cur-+                         rent month+       -p thismonth      all  transactions  in  the+                         current month+       date:2016/3/17-   the   above   written   as+                         queries instead+       date:-12/1+       date:thismonth-+       date:thismonth+    Report intervals        A report interval can be specified so that commands like register, bal-        ance  and  activity will divide their reports into multiple subperiods.        The  basic  intervals  can  be  selected  with   one   of   -D/--daily,        -W/--weekly,  -M/--monthly,  -Q/--quarterly, or -Y/--yearly.  More com--       plex intervals may be specified with a period expression.+       plex intervals may be  specified  with  a  period  expression.   Report+       intervals can not be specified with a query, currently.     Period expressions-       The -p/--period option accepts period expressions, a shorthand  way  of-       expressing  a start date, end date, and/or report interval all at once.+       The  -p/--period  option accepts period expressions, a shorthand way of+       expressing a start date, end date, and/or report interval all at  once. -       Here's a basic period expression specifying the first quarter of  2009.-       Note,  hledger  always treats start dates as inclusive and end dates as+       Here's  a basic period expression specifying the first quarter of 2009.+       Note, hledger always treats start dates as inclusive and end  dates  as        exclusive:         -p "from 2009/1/1 to 2009/4/1" -       Keywords like "from" and "to" are optional, and so are the  spaces,  as-       long  as you don't run two dates together.  "to" can also be written as+       Keywords  like  "from" and "to" are optional, and so are the spaces, as+       long as you don't run two dates together.  "to" can also be written  as        "-".  These are equivalent to the above:  @@ -335,7 +410,7 @@        -p2009/1/1to2009/4/1        -p2009/1/1-2009/4/1 -       Dates are smart dates, so if the current year is 2009,  the  above  can+       Dates  are  smart  dates, so if the current year is 2009, the above can        also be written as:  @@ -351,25 +426,25 @@                             1, 2009        -p "from 2009/1"     the same        -p "from 2009"       the same-       -p "to 2009"         everything  before january+       -p "to 2009"         everything before  january                             1, 2009 -       A single date with no "from" or "to" defines both  the  start  and  end+       A  single  date  with  no "from" or "to" defines both the start and end        date like so:  -       -p "2009"       the  year 2009; equivalent+       -p "2009"       the year 2009;  equivalent                        to "2009/1/1 to 2010/1/1"-       -p "2009/1"     the month of jan;  equiva-+       -p "2009/1"     the  month of jan; equiva-                        lent   to   "2009/1/1   to                        2009/2/1"-       -p "2009/1/1"   just that day;  equivalent+       -p "2009/1/1"   just  that day; equivalent                        to "2009/1/1 to 2009/1/2" -       The  argument  of  -p  can  also  begin  with, or be, a report interval-       expression.  The basic report intervals  are  daily,  weekly,  monthly,+       The argument of -p can also  begin  with,  or  be,  a  report  interval+       expression.   The  basic  report  intervals are daily, weekly, monthly,        quarterly, or yearly, which have the same effect as the -D,-W,-M,-Q, or-       -Y flags.  Between report interval and start/end dates  (if  any),  the+       -Y  flags.   Between  report interval and start/end dates (if any), the        word in is optional.  Examples:  @@ -378,7 +453,7 @@        -p "quarterly"         The  following  more  complex  report  intervals  are  also  supported:-       biweekly,     bimonthly,      every N days|weeks|months|quarters|years,+       biweekly,      bimonthly,     every N days|weeks|months|quarters|years,        every Nth day [of month], every Nth day of week.         Examples:@@ -388,12 +463,12 @@        -p "every 2 weeks"        -p "every 5 days from 1/3" -       Show  historical balances at end of 15th each month (N is exclusive end+       Show historical balances at end of 15th each month (N is exclusive  end        date):         hledger balance -H -p "every 16th day" -       Group postings from start of wednesday to end of  next  tuesday  (N  is+       Group  postings  from  start  of wednesday to end of next tuesday (N is        start date and exclusive end date):         hledger register checking -p "every 3rd day of week"@@ -401,56 +476,56 @@    Regular expressions        hledger uses regular expressions in a number of places: -       o query  terms, on the command line and in the hledger-web search form:+       o query terms, on the command line and in the hledger-web search  form:          REGEX, desc:REGEX, cur:REGEX, tag:...=REGEX         o CSV rules conditional blocks: if REGEX ... -       o account alias directives  and  options:  alias /REGEX/ = REPLACEMENT,+       o account  alias  directives  and options: alias /REGEX/ = REPLACEMENT,          --alias /REGEX/=REPLACEMENT -       hledger's  regular  expressions  come  from the regex-tdfa library.  In+       hledger's regular expressions come from  the  regex-tdfa  library.   In        general they:         o are case insensitive -       o are infix matching (do not need  to  match  the  entire  thing  being+       o are  infix  matching  (do  not  need  to match the entire thing being          matched)         o are POSIX extended regular expressions         o also support GNU word boundaries (\<, \>, \b, \B) -       o and  parenthesised  capturing  groups  and  numeric backreferences in+       o and parenthesised capturing  groups  and  numeric  backreferences  in          replacement strings         o do not support mode modifiers like (?s)         Some things to note: -       o In the alias directive and --alias option, regular  expressions  must-         be  enclosed  in  forward  slashes  (/REGEX/).  Elsewhere in hledger,+       o In  the  alias directive and --alias option, regular expressions must+         be enclosed in forward  slashes  (/REGEX/).   Elsewhere  in  hledger,          these are not required.         o To match a regular expression metacharacter like $ as a literal char-          acter, prepend a backslash.  Eg to search for amounts with the dollar          sign in hledger-web, write cur:\$. -       o On the command line, some metacharacters like $ have a special  mean-+       o On  the command line, some metacharacters like $ have a special mean-          ing to the shell and so must be escaped a second time, with single or-         double quotes or another backslash.  Eg, to match  amounts  with  the+         double  quotes  or  another backslash.  Eg, to match amounts with the          dollar sign from the command line, write cur:'\$' or cur:\\$.  QUERIES-       One  of  hledger's strengths is being able to quickly report on precise-       subsets of your data.  Most commands accept an optional  query  expres--       sion,  written  as arguments after the command name, to filter the data-       by date, account name or other criteria.  The syntax is  similar  to  a+       One of hledger's strengths is being able to quickly report  on  precise+       subsets  of  your data.  Most commands accept an optional query expres-+       sion, written as arguments after the command name, to filter  the  data+       by  date,  account  name or other criteria.  The syntax is similar to a        web search: one or more space-separated search terms, quotes to enclose-       whitespace, optional  prefixes  to  match  specific  fields.   Multiple+       whitespace,  optional  prefixes  to  match  specific  fields.  Multiple        search terms are combined as follows: -       All  commands  except  print: show transactions/postings/accounts which+       All commands except print:  show  transactions/postings/accounts  which        match (or negatively match)         o any of the description terms AND@@ -477,22 +552,22 @@               same as above         amt:N, amt:<N, amt:<=N, amt:>N, amt:>=N-              match postings with a single-commodity amount that is equal  to,-              less  than, or greater than N.  (Multi-commodity amounts are not+              match  postings with a single-commodity amount that is equal to,+              less than, or greater than N.  (Multi-commodity amounts are  not               tested, and will always match.) The comparison has two modes: if               N is preceded by a + or - sign (or is 0), the two signed numbers-              are compared.  Otherwise, the absolute magnitudes are  compared,+              are  compared.  Otherwise, the absolute magnitudes are compared,               ignoring sign.         code:REGEX               match by transaction code (eg check number)         cur:REGEX-              match  postings or transactions including any amounts whose cur--              rency/commodity symbol is fully matched by REGEX.  (For  a  par-+              match postings or transactions including any amounts whose  cur-+              rency/commodity  symbol  is fully matched by REGEX.  (For a par-               tial match, use .*REGEX.*).  Note, to match characters which are               regex-significant, like the dollar sign ($), you need to prepend-              \.   And  when  using  the command line you need to add one more+              \.  And when using the command line you need  to  add  one  more               level  of  quoting  to  hide  it  from  the  shell,  so  eg  do:               hledger print cur:'\$' or hledger print cur:\\$. @@ -501,29 +576,29 @@         date:PERIODEXPR               match dates within the specified period.  PERIODEXPR is a period-              expression (with  no  report  interval).   Examples:  date:2016,-              date:thismonth,   date:2000/2/1-2/15,  date:lastweek-.   If  the-              --date2 command line flag is  present,  this  matches  secondary+              expression  (with  no  report  interval).   Examples: date:2016,+              date:thismonth,  date:2000/2/1-2/15,  date:lastweek-.   If   the+              --date2  command  line  flag  is present, this matches secondary               dates instead.         date2:PERIODEXPR               match secondary dates within the specified period.         depth:N-              match  (or  display,  depending on command) accounts at or above+              match (or display, depending on command) accounts  at  or  above               this depth         real:, real:0               match real or virtual postings respectively         status:*, status:!, status:-              match  cleared,  pending,  or   uncleared/pending   transactions+              match   cleared,   pending,  or  uncleared/pending  transactions               respectively         tag:REGEX[=REGEX]-              match  by  tag  name,  and optionally also by tag value.  Note a-              tag: query is considered to match a transaction  if  it  matches-              any  of  the  postings.  Also remember that postings inherit the+              match by tag name, and optionally also by  tag  value.   Note  a+              tag:  query  is  considered to match a transaction if it matches+              any of the postings.  Also remember that  postings  inherit  the               tags of their parent transaction.         not:   before any of the above negates the match.@@ -531,24 +606,24 @@        inacct:ACCTNAME               a special term used automatically when you click an account name               in hledger-web, specifying the account register we are currently-              in (selects the transactions of that account  and  how  to  show-              them,  can  be  filtered  further with acct etc).  Not supported+              in  (selects  the  transactions  of that account and how to show+              them, can be filtered further with  acct  etc).   Not  supported               elsewhere in hledger.         Some of these can also be expressed as command-line options (eg depth:2-       is  equivalent  to --depth 2).  Generally you can mix options and query-       arguments, and the resulting query will be their intersection  (perhaps+       is equivalent to --depth 2).  Generally you can mix options  and  query+       arguments,  and the resulting query will be their intersection (perhaps        excluding the -p/--period option).  COMMANDS-       hledger  provides  a  number  of subcommands; hledger with no arguments+       hledger provides a number of subcommands;  hledger  with  no  arguments        shows a list.         If you install additional hledger-* packages, or if you put programs or-       scripts  named  hledger-NAME in your PATH, these will also be listed as+       scripts named hledger-NAME in your PATH, these will also be  listed  as        subcommands. -       Run  a  subcommand  by  writing  its  name  as   first   argument   (eg+       Run   a   subcommand   by  writing  its  name  as  first  argument  (eg        hledger incomestatement).  You can also write any unambiguous prefix of        a command name (hledger inc), or one of the standard short aliases dis-        played in the command list (hledger is).@@ -563,14 +638,14 @@        --drop=N               in flat mode: omit N leading account name parts -       This  command  lists  all  account  names  that are in use (ie, all the-       accounts which have at least one transaction posting  to  them).   With+       This command lists all account names that  are  in  use  (ie,  all  the+       accounts  which  have  at least one transaction posting to them).  With        query arguments, only matched account names are shown. -       It  shows  a flat list by default.  With --tree, it uses indentation to+       It shows a flat list by default.  With --tree, it uses  indentation  to        show the account hierarchy. -       In flat mode you can add --drop N to omit the first  few  account  name+       In  flat  mode  you can add --drop N to omit the first few account name        components.         Examples:@@ -613,8 +688,8 @@    activity        Show an ascii barchart of posting counts per interval. -       The  activity  command  displays an ascii histogram showing transaction-       counts by day, week, month or other reporting interval (by day  is  the+       The activity command displays an ascii  histogram  showing  transaction+       counts  by  day, week, month or other reporting interval (by day is the        default).  With query arguments, it counts only matched transactions.                $ hledger activity --quarterly@@ -627,24 +702,24 @@        Prompt for transactions and add them to the journal.         --no-new-accounts-              don't  allow  creating  new  accounts;  helps prevent typos when+              don't allow creating new  accounts;  helps  prevent  typos  when               entering account names -       Many hledger users edit their journals directly with a text editor,  or-       generate  them from CSV.  For more interactive data entry, there is the-       add command, which prompts interactively on the console for new  trans--       actions,  and  appends  them to the journal file (if there are multiple+       Many  hledger users edit their journals directly with a text editor, or+       generate them from CSV.  For more interactive data entry, there is  the+       add  command, which prompts interactively on the console for new trans-+       actions, and appends them to the journal file (if  there  are  multiple        -f FILE options, the first file is used.) Existing transactions are not-       changed.   This  is the only hledger command that writes to the journal+       changed.  This is the only hledger command that writes to  the  journal        file.         To use it, just run hledger add and follow the prompts.  You can add as-       many  transactions as you like; when you are finished, enter . or press+       many transactions as you like; when you are finished, enter . or  press        control-d or control-c to exit.         Features: -       o add tries to provide useful defaults, using the most  similar  recent+       o add  tries  to provide useful defaults, using the most similar recent          transaction (by description) as a template.         o You can also set the initial defaults with command line arguments.@@ -652,20 +727,20 @@        o Readline-style edit keys can be used during data entry.         o The tab key will auto-complete whenever possible - accounts, descrip--         tions, dates (yesterday, today, tomorrow).   If  the  input  area  is+         tions,  dates  (yesterday,  today,  tomorrow).   If the input area is          empty, it will insert the default value. -       o If  the  journal defines a default commodity, it will be added to any+       o If the journal defines a default commodity, it will be added  to  any          bare numbers entered.         o A parenthesised transaction code may be entered following a date.         o Comments and tags may be entered following a description or amount. -       o If you make a mistake, enter < at any prompt to restart the  transac-+       o If  you make a mistake, enter < at any prompt to restart the transac-          tion. -       o Input  prompts  are displayed in a different colour when the terminal+       o Input prompts are displayed in a different colour when  the  terminal          supports it.         Example (see the tutorial for a detailed explanation):@@ -702,7 +777,7 @@               show balance change in each period (default)         --cumulative-              show balance change accumulated across periods  (in  multicolumn+              show  balance  change accumulated across periods (in multicolumn               reports)         -H --historical@@ -716,8 +791,8 @@               account is depth-clipped (default in multicolumn reports)         -V --value-              convert amounts to current market value in their default  valua--              tion commodity+              convert  amounts  to  their  market value on the report end date+              (using the most recent applicable market price, if any)         -A --average               show a row average column (in multicolumn mode)@@ -741,10 +816,10 @@               select the output format.  Supported formats: txt, csv.         -o FILE --output-file=FILE-              write  output  to  FILE.   A  file extension matching one of the+              write output to FILE.  A file  extension  matching  one  of  the               above formats selects that format. -       The balance command displays accounts and balances.   It  is  hledger's+       The  balance  command  displays accounts and balances.  It is hledger's        most featureful and most useful command.                $ hledger balance@@ -761,24 +836,24 @@               --------------------                                  0 -       More  precisely, the balance command shows the change to each account's+       More precisely, the balance command shows the change to each  account's        balance caused by all (matched) postings.  In the common case where you-       do  not  filter  by date and your journal sets the correct opening bal-+       do not filter by date and your journal sets the  correct  opening  bal-        ances, this is the same as the account's ending balance. -       By default, accounts are  displayed  hierarchically,  with  subaccounts+       By  default,  accounts  are  displayed hierarchically, with subaccounts        indented below their parent.  "Boring" accounts, which contain a single        interesting subaccount and no balance of their own, are elided into the-       following  line  for  more  compact output.  (Use --no-elide to prevent+       following line for more compact output.   (Use  --no-elide  to  prevent        this.) -       Each account's balance is the "inclusive" balance  -  it  includes  the+       Each  account's  balance  is  the "inclusive" balance - it includes the        balances of any subaccounts. -       Accounts  which  have  zero  balance  (and no non-zero subaccounts) are+       Accounts which have zero balance  (and  no  non-zero  subaccounts)  are        omitted.  Use -E/--empty to show them. -       A final total is displayed by default; use  -N/--no-total  to  suppress+       A  final  total  is displayed by default; use -N/--no-total to suppress        it:                $ hledger balance -p 2008/6 expenses --no-total@@ -788,9 +863,9 @@     Flat mode        To see a flat list of full account names instead of the default hierar--       chical  display,  use  --flat.   In   this   mode,   accounts   (unless+       chical   display,   use   --flat.    In  this  mode,  accounts  (unless        depth-clipped) show their "exclusive" balance, excluding any subaccount-       balances.  In this mode, you can also use --drop N to  omit  the  first+       balances.   In  this  mode, you can also use --drop N to omit the first        few account name components.                $ hledger balance -p 2008/6 expenses -N --flat --drop 1@@ -798,9 +873,9 @@                                 $1  supplies     Depth limited balance reports-       With  --depth N,  balance  shows  accounts only to the specified depth.-       This is very useful to show  a  complex  charts  of  accounts  in  less-       detail.   In  flat  mode,  balances from accounts below the depth limit+       With --depth N, balance shows accounts only  to  the  specified  depth.+       This  is  very  useful  to  show  a  complex charts of accounts in less+       detail.  In flat mode, balances from accounts  below  the  depth  limit        will be shown as part of a parent account at the depth limit.                $ hledger balance -N --depth 1@@ -810,12 +885,12 @@                                 $1  liabilities     Multicolumn balance reports-       With a reporting interval, multiple balance columns will be shown,  one-       for  each report period.  There are three types of multi-column balance+       With  a reporting interval, multiple balance columns will be shown, one+       for each report period.  There are three types of multi-column  balance        report, showing different information:         1. By default: each column shows the sum of postings in that period, ie-          the  account's  change of balance in that period.  This is useful eg+          the account's change of balance in that period.  This is  useful  eg           for a monthly income statement:                    $ hledger balance --quarterly income expenses -E@@ -830,8 +905,8 @@                   -------------------++---------------------------------                                      ||     $-1      $1       0       0 -       2. With --cumulative: each column shows the  ending  balance  for  that-          period,  accumulating the changes across periods, starting from 0 at+       2. With  --cumulative:  each  column  shows the ending balance for that+          period, accumulating the changes across periods, starting from 0  at           the report start date:                    $ hledger balance --quarterly income expenses -E --cumulative@@ -847,8 +922,8 @@                                      ||         $-1           0           0           0         3. With --historical/-H: each column shows the actual historical ending-          balance  for  that  period, accumulating the changes across periods,-          starting from the actual balance at the report start date.  This  is+          balance for that period, accumulating the  changes  across  periods,+          starting  from the actual balance at the report start date.  This is           useful eg for a multi-period balance sheet, and when you are showing           only the data after a certain start date: @@ -864,26 +939,26 @@                   ----------------------++-------------------------------------                                         ||           0           0           0 -       Multi-column balance reports display accounts in flat mode by  default;+       Multi-column  balance reports display accounts in flat mode by default;        to see the hierarchy, use --tree. -       With   a  reporting  interval  (like  --quarterly  above),  the  report-       start/end dates will be adjusted if necessary so  that  they  encompass+       With  a  reporting  interval  (like  --quarterly  above),  the   report+       start/end  dates  will  be adjusted if necessary so that they encompass        the displayed report periods.  This is so that the first and last peri-        ods will be "full" and comparable to the others. -       The -E/--empty flag does two things  in  multicolumn  balance  reports:-       first,  the  report  will  show all columns within the specified report-       period (without -E, leading and trailing columns with  all  zeroes  are-       not  shown).   Second,  all  accounts which existed at the report start-       date will be considered, not just the ones  with  activity  during  the+       The  -E/--empty  flag  does  two things in multicolumn balance reports:+       first, the report will show all columns  within  the  specified  report+       period  (without  -E,  leading and trailing columns with all zeroes are+       not shown).  Second, all accounts which existed  at  the  report  start+       date  will  be  considered,  not just the ones with activity during the        report period (use -E to include low-activity accounts which would oth-        erwise would be omitted).         The -T/--row-total flag adds an additional column showing the total for        each row. -       The  -A/--average  flag adds a column showing the average value in each+       The -A/--average flag adds a column showing the average value  in  each        row.         Here's an example of all three:@@ -905,17 +980,50 @@               # Average is rounded to the dollar here since all journal amounts are     Market value-       The -V/--value flag converts all the reported amounts to their "current-       market  value"  using  their  default market price.  That is the latest-       market price (P directive) found in the journal (or an included  file),-       for the amount's commodity, dated on or before the report end date.+       The -V/--value flag converts the reported amounts to their market value+       on the report end date, using the most recent applicable market prices,+       when  known.   Specifically, when there is a market price (P directive)+       for the amount's commodity, dated on or before the report end date (see+       hledger  ->  Report  start & end date), the amount will be converted to+       the price's commodity.  If multiple applicable prices are defined,  the+       latest-dated one is used (and if dates are equal, the one last parsed). -       Unlike Ledger, hledger's -V only uses the market prices recorded with P-       directives, ignoring transaction prices recorded  as  part  of  posting-       amounts (which -B/--cost uses).  Using -B and -V together is allowed.+       For example: +              # one euro is worth this many dollars from nov 1+              P 2016/11/01  $1.10++              # purchase some euros on nov 3+              2016/11/3+                  assets:euros        100+                  assets:checking++              # the euro is worth fewer dollars by dec 21+              P 2016/12/21  $1.03++       How many euros do I have ?++              $ hledger -f t.j bal euros+                              100  assets:euros++       What are they worth on nov 3 ?  (no report end date specified, defaults+       to the last date in the journal)++              $ hledger -f t.j bal euros -V+                           $110.00  assets:euros++       What are they worth on dec 21 ?++              $ hledger -f t.j bal euros -V -e 2016/12/21+                           $103.00  assets:euros++       Currently,  hledger's -V only uses market prices recorded with P direc-+       tives, not transaction prices (unlike Ledger).++       Using -B and -V together is allowed.+    Custom balance output-       In  simple  (non-multi-column)  balance  reports, you can customise the+       In simple (non-multi-column) balance reports,  you  can  customise  the        output with --format FMT:                $ hledger balance --format "%20(account) %12(total)"@@ -933,7 +1041,7 @@                                               0         The FMT format string (plus a newline) specifies the formatting applied-       to  each  account/balance pair.  It may contain any suitable text, with+       to each account/balance pair.  It may contain any suitable  text,  with        data fields interpolated like so:         %[MIN][.MAX](FIELDNAME)@@ -944,14 +1052,14 @@         o FIELDNAME must be enclosed in parentheses, and can be one of: -         o depth_spacer - a number of spaces equal to the account's depth,  or+         o depth_spacer  - a number of spaces equal to the account's depth, or            if MIN is specified, MIN * depth spaces.           o account - the account's name           o total - the account's balance/posted total, right justified -       Also,  FMT  can begin with an optional prefix to control how multi-com-+       Also, FMT can begin with an optional prefix to control  how  multi-com-        modity amounts are rendered:         o %_ - render on multiple lines, bottom-aligned (the default)@@ -960,7 +1068,7 @@         o %, - render on one line, comma-separated -       There are some quirks.  Eg in one-line  mode,  %(depth_spacer)  has  no+       There  are  some  quirks.   Eg in one-line mode, %(depth_spacer) has no        effect, instead %(account) has indentation built in.         Experimentation may be needed to get pleasing results. @@ -968,19 +1076,19 @@         o %(total) - the account's total -       o %-20.20(account)  -  the account's name, left justified, padded to 20+       o %-20.20(account) - the account's name, left justified, padded  to  20          characters and clipped at 20 characters -       o %,%-50(account)  %25(total) - account name padded to  50  characters,-         total  padded to 20 characters, with multiple commodities rendered on+       o %,%-50(account)  %25(total)  -  account name padded to 50 characters,+         total padded to 20 characters, with multiple commodities rendered  on          one line -       o %20(total)  %2(depth_spacer)%-(account) - the default format for  the+       o %20(total)  %2(depth_spacer)%-(account)  - the default format for the          single-column balance report     Output destination-       The  balance, print, register and stats commands can write their output-       to a destination other than the console.  This  is  controlled  by  the+       The balance, print, register and stats commands can write their  output+       to  a  destination  other  than the console.  This is controlled by the        -o/--output-file option.                $ hledger balance -o -     # write to stdout (the default)@@ -988,8 +1096,8 @@     CSV output        The balance, print and register commands can write their output as CSV.-       This is useful for exporting data to other  applications,  eg  to  make-       charts  in a spreadsheet.  This is controlled by the -O/--output-format+       This  is  useful  for  exporting data to other applications, eg to make+       charts in a spreadsheet.  This is controlled by the  -O/--output-format        option, or by specifying a .csv file extension with -o/--output-file.                $ hledger balance -O csv       # write CSV to stdout@@ -1003,8 +1111,8 @@        --drop=N               in flat mode: omit N leading account name parts -       This command displays a simple balance  sheet.   It  currently  assumes-       that  you  have  top-level  accounts  named asset and liability (plural+       This  command  displays  a  simple balance sheet.  It currently assumes+       that you have top-level accounts  named  asset  and  liability  (plural        forms also allowed.)                $ hledger balancesheet@@ -1034,9 +1142,9 @@        --drop=N               in flat mode: omit N leading account name parts -       This command displays a simple cashflow statement It shows  the  change-       in  all  "cash"  (ie,  liquid assets) accounts for the period.  It cur--       rently assumes that cash accounts are under a top-level  account  named+       This  command  displays a simple cashflow statement It shows the change+       in all "cash" (ie, liquid assets) accounts for  the  period.   It  cur-+       rently  assumes  that cash accounts are under a top-level account named        asset and do not contain receivable or A/R (plural forms also allowed.)                $ hledger cashflow@@ -1056,11 +1164,11 @@    help        Show any of the hledger manuals. -       The help command displays any of the main hledger man  pages.   (Unlike-       hledger --help,  which displays only the hledger man page.) Run it with-       no arguments to list available topics (their names  are  shortened  for-       easier  typing),  and run hledger help TOPIC to select one.  The output-       is similar to a man page, but fixed width.  It may be long, so you  may+       The  help  command displays any of the main hledger man pages.  (Unlike+       hledger --help, which displays only the hledger man page.) Run it  with+       no  arguments  to  list available topics (their names are shortened for+       easier typing), and run hledger help TOPIC to select one.   The  output+       is  similar to a man page, but fixed width.  It may be long, so you may        wish to pipe it into a pager.  See also info and man.                $ hledger help@@ -1089,8 +1197,8 @@        --drop=N               in flat mode: omit N leading account name parts -       This  command displays a simple income statement.  It currently assumes-       that you have top-level accounts named income (or revenue) and  expense+       This command displays a simple income statement.  It currently  assumes+       that  you have top-level accounts named income (or revenue) and expense        (plural forms also allowed.)                $ hledger incomestatement@@ -1117,37 +1225,37 @@    info        Show any of the hledger manuals using info. -       The  info  command  displays any of the hledger reference manuals using-       the info hypertextual documentation viewer.  This can be a  very  effi--       cient  way  to browse large manuals.  It requires the "info" program to+       The info command displays any of the hledger  reference  manuals  using+       the  info  hypertextual documentation viewer.  This can be a very effi-+       cient way to browse large manuals.  It requires the "info"  program  to        be available in your PATH. -       As with help, run it with no arguments to list available topics  (manu-+       As  with help, run it with no arguments to list available topics (manu-        als).     man        Show any of the hledger manuals using man. -       The  man  command  displays  any of the hledger reference manuals using-       man, the standard documentation viewer on unix systems.  This will  fit-       the  text to your terminal width, and probably invoke a pager automati-+       The man command displays any of the  hledger  reference  manuals  using+       man,  the standard documentation viewer on unix systems.  This will fit+       the text to your terminal width, and probably invoke a pager  automati-        cally.  It requires the "man" program to be available in your PATH. -       As with help, run it with no arguments to list available topics  (manu-+       As  with help, run it with no arguments to list available topics (manu-        als).     print        Show transactions from the journal.         -m STR --match=STR-              show  the  transaction whose description is most similar to STR,+              show the transaction whose description is most similar  to  STR,               and is most recent         -O FMT --output-format=FMT               select the output format.  Supported formats: txt, csv.         -o FILE --output-file=FILE-              write output to FILE.  A file  extension  matching  one  of  the+              write  output  to  FILE.   A  file extension matching one of the               above formats selects that format.                $ hledger print@@ -1172,12 +1280,12 @@                   liabilities:debts               $1                   assets:bank:checking           $-1 -       The  print  command  displays  full transactions from the journal file,-       tidily formatted and showing all amounts  explicitly.   The  output  of-       print  is  always  a valid hledger journal, but it does always not pre-+       The print command displays full transactions  from  the  journal  file,+       tidily  formatted  and  showing  all amounts explicitly.  The output of+       print is always a valid hledger journal, but it does  always  not  pre-        serve all original content exactly (eg directives). -       hledger's print command also shows all unit prices in effect, or  (with+       hledger's  print command also shows all unit prices in effect, or (with        -B/--cost) shows cost amounts.         The print command also supports output destination and CSV output.@@ -1189,7 +1297,7 @@               show running total from report start date (default)         -H --historical-              show  historical running total/balance (includes postings before+              show historical running total/balance (includes postings  before               report start date)         -A --average@@ -1200,18 +1308,18 @@               show postings' siblings instead         -w N --width=N-              set  output  width  (default:  terminal width or COLUMNS.  -wN,M+              set output width (default: terminal  width  or  COLUMNS.   -wN,M               sets description width as well)         -O FMT --output-format=FMT               select the output format.  Supported formats: txt, csv.         -o FILE --output-file=FILE-              write output to FILE.  A file  extension  matching  one  of  the+              write  output  to  FILE.   A  file extension matching one of the               above formats selects that format.         The register command displays postings, one per line, and their running-       total.  This is typically used with  a  query  selecting  a  particular+       total.   This  is  typically  used  with a query selecting a particular        account, to see that account's activity:                $ hledger register checking@@ -1220,8 +1328,8 @@               2008/06/02 save                 assets:bank:checking           $-1            $1               2008/12/31 pay off              assets:bank:checking           $-1             0 -       The  --historical/-H  flag  adds the balance from any undisplayed prior-       postings to the running total.  This is useful when  you  want  to  see+       The --historical/-H flag adds the balance from  any  undisplayed  prior+       postings  to  the  running  total.  This is useful when you want to see        only recent activity, with a historically accurate running balance:                $ hledger register checking -b 2008/6 --historical@@ -1231,23 +1339,23 @@         The --depth option limits the amount of sub-account detail displayed. -       The  --average/-A flag shows the running average posting amount instead+       The --average/-A flag shows the running average posting amount  instead        of the running total (so, the final number displayed is the average for-       the  whole  report period).  This flag implies --empty (see below).  It-       is affected by --historical.  It  works  best  when  showing  just  one+       the whole report period).  This flag implies --empty (see  below).   It+       is  affected  by  --historical.   It  works  best when showing just one        account and one commodity. -       The  --related/-r  flag shows the other postings in the transactions of+       The --related/-r flag shows the other postings in the  transactions  of        the postings which would normally be shown. -       With a reporting interval, register shows  summary  postings,  one  per+       With  a  reporting  interval,  register shows summary postings, one per        interval, aggregating the postings to each account:                $ hledger register --monthly income               2008/01                 income:salary                          $-1           $-1               2008/06                 income:gifts                           $-1           $-2 -       Periods  with no activity, and summary postings with a zero amount, are+       Periods with no activity, and summary postings with a zero amount,  are        not shown by default; use the --empty/-E flag to see them:                $ hledger register --monthly income -E@@ -1264,7 +1372,7 @@               2008/11                                                          0           $-2               2008/12                                                          0           $-2 -       Often, you'll want to see just one  line  per  interval.   The  --depth+       Often,  you'll  want  to  see  just one line per interval.  The --depth        option helps with this, causing subaccounts to be aggregated:                $ hledger register --monthly assets --depth 1h@@ -1272,19 +1380,19 @@               2008/06                 assets                                 $-1             0               2008/12                 assets                                 $-1           $-1 -       Note  when using report intervals, if you specify start/end dates these-       will be adjusted outward if necessary to  contain  a  whole  number  of-       intervals.   This  ensures  that  the first and last intervals are full+       Note when using report intervals, if you specify start/end dates  these+       will  be  adjusted  outward  if  necessary to contain a whole number of+       intervals.  This ensures that the first and  last  intervals  are  full        length and comparable to the others in the report.     Custom register output-       register uses the full terminal width by default,  except  on  windows.-       You  can override this by setting the COLUMNS environment variable (not+       register  uses  the  full terminal width by default, except on windows.+       You can override this by setting the COLUMNS environment variable  (not        a bash shell variable) or by using the --width/-w option. -       The description and account columns normally share  the  space  equally-       (about  half  of  (width  - 40) each).  You can adjust this by adding a-       description width  as  part  of  --width's  argument,  comma-separated:+       The  description  and  account columns normally share the space equally+       (about half of (width - 40) each).  You can adjust  this  by  adding  a+       description  width  as  part  of  --width's  argument, comma-separated:        --width W,D .  Here's a diagram:                <--------------------------------- width (W) ---------------------------------->@@ -1300,14 +1408,14 @@               $ hledger reg -w 100,40           # set overall width 100, description width 40               $ hledger reg -w $COLUMNS,40      # use terminal width, and set description width -       The  register  command also supports the -o/--output-file and -O/--out-+       The register command also supports the -o/--output-file  and  -O/--out-        put-format options for controlling output destination and CSV output.     stats        Show some journal statistics.         -o FILE --output-file=FILE-              write output to FILE.  A file  extension  matching  one  of  the+              write  output  to  FILE.   A  file extension matching one of the               above formats selects that format.                $ hledger stats@@ -1322,8 +1430,8 @@               Accounts                 : 8 (depth 3)               Commodities              : 1 ($) -       The  stats  command displays summary information for the whole journal,-       or a matched part of it.  With a reporting interval, it shows a  report+       The stats command displays summary information for the  whole  journal,+       or  a matched part of it.  With a reporting interval, it shows a report        for each report period.         The stats command also supports -o/--output-file for controlling output@@ -1335,37 +1443,37 @@               $ hledger test               Cases: 74  Tried: 74  Errors: 0  Failures: 0 -       This command runs hledger's built-in unit tests and  displays  a  quick+       This  command  runs  hledger's built-in unit tests and displays a quick        report.  With a regular expression argument, it selects only tests with        matching names.  It's mainly used in development, but it's also nice to        be able to check your hledger executable for smoke at any time.  ADD-ON COMMANDS-       Add-on  commands  are  executables  in your PATH whose name starts with-       hledger-  and  ends  with  any  of   these   file   extensions:   none,-       .hs,.lhs,.pl,.py,.rb,.rkt,.sh,.bat,.com,.exe.   Also,  an add-on's name+       Add-on commands are executables in your PATH  whose  name  starts  with+       hledger-   and   ends   with   any  of  these  file  extensions:  none,+       .hs,.lhs,.pl,.py,.rb,.rkt,.sh,.bat,.com,.exe.  Also, an  add-on's  name        may not be the same as any built-in command or alias. -       hledger will detect these and include them in the command list and  let-       you  invoke them with hledger ADDONCMD.  However there are some limita-+       hledger  will detect these and include them in the command list and let+       you invoke them with hledger ADDONCMD.  However there are some  limita-        tions:         o Options appearing before ADDONCMD will be visible only to hledger and          will not be passed to the add-on.  Eg: hledger -h web shows hledger's          usage, hledger web -h shows hledger-web's usage. -       o Options understood only by the add-on must go after a -- argument  to-         hide  them  from  hledger,  which  would  otherwise reject them.  Eg:+       o Options  understood only by the add-on must go after a -- argument to+         hide them from hledger,  which  would  otherwise  reject  them.   Eg:          hledger web -- --server. -       Sometimes it may be more convenient to just run  the  add-on  directly,+       Sometimes  it  may  be more convenient to just run the add-on directly,        eg: hledger-web --server. -       Add-ons  which  are  written  in  haskell  can  take  advantage  of the-       hledger-lib  library  for  journal  parsing,  reporting,   command-line+       Add-ons which  are  written  in  haskell  can  take  advantage  of  the+       hledger-lib   library  for  journal  parsing,  reporting,  command-line        options, etc. -       Here  are some hledger add-ons available from Hackage, the extra direc-+       Here are some hledger add-ons available from Hackage, the extra  direc-        tory in the hledger source, or elsewhere:     api@@ -1423,11 +1531,11 @@                   WF:4303001832                               -$6.00                   [assets:business:bank:wf:bchecking:banking]  $6.00 -       ledger-autosync, which includes  a  hledger-autosync  alias,  downloads+       ledger-autosync,  which  includes  a  hledger-autosync alias, downloads        transactions from your bank(s) via OFX, and prints just the new ones as        journal entries which you can add to your journal.  It can also operate-       on  .OFX  files  which  you've  downloaded  manually.  It can be a nice-       alternative to hledger's built-in CSV reader, especially if  your  bank+       on .OFX files which you've downloaded  manually.   It  can  be  a  nice+       alternative  to  hledger's built-in CSV reader, especially if your bank        supports OFX download.     diff@@ -1453,9 +1561,9 @@               2015/02/02                   (acct:two)            $2 -       hledger-diff  compares  two  journal  files.  Given an account name, it-       prints out the transactions affecting that account  which  are  in  one-       journal  file but not in the other.  This can be useful for reconciling+       hledger-diff compares two journal files.  Given  an  account  name,  it+       prints  out  the  transactions  affecting that account which are in one+       journal file but not in the other.  This can be useful for  reconciling        existing journals with bank statements.     equity@@ -1482,14 +1590,14 @@                   equity:opening balances             0         This prints a journal entry which zeroes out the specified accounts (or-       all  accounts)  with a transfer to/from "equity:closing balances" (like-       Ledger's equity command).  Also, it prints an similar entry with  oppo-+       all accounts) with a transfer to/from "equity:closing  balances"  (like+       Ledger's  equity command).  Also, it prints an similar entry with oppo-        site sign for restoring the balances from "equity:opening balances".         These can be useful for ending one journal file and starting a new one,-       respectively.  By zeroing your asset and liability accounts at the  end+       respectively.   By zeroing your asset and liability accounts at the end        of a file and restoring them at the start of the next one, you will see-       correct asset/liability balances whether you run hledger  on  just  one+       correct  asset/liability  balances  whether you run hledger on just one        file, or on several files concatenated with include.     interest@@ -1570,11 +1678,11 @@                   Liabilities:Bank   EUR 3700.00         hledger-interest computes interests for a given account.  Using command-       line flags, the program can be configured to use  various  schemes  for-       day-counting,  such  as act/act, 30/360, 30E/360, and 30/360isda.  Fur--       thermore, it supports  a  (small)  number  of  interest  schemes,  i.e.+       line  flags,  the  program can be configured to use various schemes for+       day-counting, such as act/act, 30/360, 30E/360, and  30/360isda.   Fur-+       thermore,  it  supports  a  (small)  number  of  interest schemes, i.e.        annual interest with a fixed rate and the scheme mandated by the German-       BGB288 (Basiszins fr Verbrauchergeschfte).  See the  package  page  for+       BGB288  (Basiszins  fr  Verbrauchergeschfte).  See the package page for        more.     irr@@ -1632,11 +1740,11 @@               2011/04/01 - 2011/05/01: 32.24%               2011/05/01 - 2011/06/01: 95.92% -       hledger-irr  computes  the  internal  rate of return, also known as the-       effective interest rate, of a given investment.  After specifying  what-       account  holds  the  investment,  and what account stores the gains (or-       losses, or fees, or cost), it calculates the hypothetical  annual  rate-       of  fixed  rate investment that would have provided the exact same cash+       hledger-irr computes the internal rate of return,  also  known  as  the+       effective  interest rate, of a given investment.  After specifying what+       account holds the investment, and what account  stores  the  gains  (or+       losses,  or  fees, or cost), it calculates the hypothetical annual rate+       of fixed rate investment that would have provided the exact  same  cash        flow.  See the package page for more.     print-unique@@ -1657,8 +1765,8 @@        entries.         hledger-rewrite.hs,   in   hledger's   extra   directory   (compilation-       optional), adds postings to existing transactions, optionally  with  an-       amount  based  on  the  existing  transaction's  first amount.  See the+       optional),  adds  postings to existing transactions, optionally with an+       amount based on the  existing  transaction's  first  amount.   See  the        script for more details.                $ hledger rewrite -- [QUERY]        --add-posting "ACCT  AMTEXPR" ...@@ -1673,26 +1781,26 @@  TROUBLESHOOTING    Run-time problems-       Here are some issues you might encounter  when  you  run  hledger  (and-       remember  you can also seek help from the IRC channel, mail list or bug+       Here  are  some  issues  you  might encounter when you run hledger (and+       remember you can also seek help from the IRC channel, mail list or  bug        tracker):         Successfully installed, but "No command 'hledger' found"        stack and cabal install binaries into a special directory, which should-       be  added  to your PATH environment variable.  Eg on unix-like systems,+       be added to your PATH environment variable.  Eg on  unix-like  systems,        that is ~/.local/bin and ~/.cabal/bin respectively.         I set a custom LEDGER_FILE, but hledger is still using the default file-       LEDGER_FILE  should  be  a  real environment variable, not just a shell-       variable.  The command env | grep LEDGER_FILE should show it.  You  may+       LEDGER_FILE should be a real environment variable,  not  just  a  shell+       variable.   The command env | grep LEDGER_FILE should show it.  You may        need to use export.  Here's an explanation. -       "Illegal  byte  sequence"  or  "Invalid or incomplete multibyte or wide+       "Illegal byte sequence" or "Invalid or  incomplete  multibyte  or  wide        character" errors        In order to handle non-ascii letters and symbols (like ), hledger needs        an appropriate locale.  This is usually configured system-wide; you can        also configure it temporarily.  The locale may need to be one that sup--       ports  UTF-8,  if you built hledger with GHC < 7.2 (or possibly always,+       ports UTF-8, if you built hledger with GHC < 7.2 (or  possibly  always,        I'm not sure yet).         Here's  an  example  of  setting  the  locale  temporarily,  on  ubuntu@@ -1711,7 +1819,7 @@               $ echo "export LANG=en_US.UTF-8" >>~/.bash_profile               $ bash --login -       If  we  preferred  to  use eg fr_FR.utf8, we might have to install that+       If we preferred to use eg fr_FR.utf8, we might  have  to  install  that        first:                $ apt-get install language-pack-fr@@ -1732,45 +1840,45 @@    Known limitations        Command line interface -       Add-on  command  options,  unless  they are also understood by the main-       hledger  executable,   must   be   written   after   --,   like   this:+       Add-on command options, unless they are also  understood  by  the  main+       hledger   executable,   must   be   written   after   --,   like  this:        hledger web -- --server         Differences from Ledger -       Not  all of Ledger's journal file syntax is supported.  See file format+       Not all of Ledger's journal file syntax is supported.  See file  format        differences. -       hledger is slower than Ledger, and uses  more  memory,  on  large  data+       hledger  is  slower  than  Ledger,  and uses more memory, on large data        files.         Windows limitations -       In  a windows CMD window, non-ascii characters and colours are not sup-+       In a windows CMD window, non-ascii characters and colours are not  sup-        ported.         In a windows Cygwin/MSYS/Mintty window, the tab key is not supported in        hledger add.  ENVIRONMENT-       COLUMNS  The  screen  width used by the register command.  Default: the+       COLUMNS The screen width used by the register  command.   Default:  the        full terminal width.         LEDGER_FILE The journal file path when not specified with -f.  Default:-       ~/.hledger.journal  (on  windows,  perhaps C:/Users/USER/.hledger.jour-+       ~/.hledger.journal (on  windows,  perhaps  C:/Users/USER/.hledger.jour-        nal).  FILES-       Reads data from one or more files in hledger journal, timeclock,  time--       dot,   or   CSV   format   specified   with  -f,  or  $LEDGER_FILE,  or-       $HOME/.hledger.journal          (on          windows,           perhaps+       Reads  data from one or more files in hledger journal, timeclock, time-+       dot,  or  CSV  format  specified   with   -f,   or   $LEDGER_FILE,   or+       $HOME/.hledger.journal           (on          windows,          perhaps        C:/Users/USER/.hledger.journal).  BUGS-       The  need  to precede options with -- when invoked from hledger is awk-+       The need to precede options with -- when invoked from hledger  is  awk-        ward. -       hledger can't render non-ascii characters when run from a Windows  com-+       hledger  can't render non-ascii characters when run from a Windows com-        mand prompt (up to Windows 7 at least).         When input data contains non-ascii characters, a suitable system locale@@ -1780,7 +1888,7 @@   REPORTING BUGS-       Report  bugs at http://bugs.hledger.org (or on the #hledger IRC channel+       Report bugs at http://bugs.hledger.org (or on the #hledger IRC  channel        or hledger mail list)  @@ -1794,7 +1902,7 @@   SEE ALSO-       hledger(1),     hledger-ui(1),     hledger-web(1),      hledger-api(1),+       hledger(1),      hledger-ui(1),     hledger-web(1),     hledger-api(1),        hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_time-        dot(5), ledger(1) @@ -1802,4 +1910,4 @@   -hledger 1.0                      October 2016                       hledger(1)+hledger 1.1                      December 2016                      hledger(1)
doc/other/hledger-api.1 view
@@ -1,5 +1,5 @@ -.TH "hledger\-api" "1" "October 2016" "hledger\-api 1.0" "hledger User Manuals"+.TH "hledger\-api" "1" "December 2016" "hledger\-api 1.1" "hledger User Manuals"   @@ -35,11 +35,14 @@ perhaps \f[C]C:/Users/USER/.hledger.journal\f[]). For more about this see hledger(1), hledger_journal(5) etc. .PP-The server listens on port 8001, or another specified with-\f[C]\-p\ PORT\f[].-Note there is no built\-in access control, so you will need to hide+The server listens on IP address 127.0.0.1, accessible only to local+requests, by default.+You can change this with \f[C]\-\-host\f[], eg+\f[C]\-\-host\ 0.0.0.0\f[] to listen on all addresses.+Note there is no other access control, so you will need to hide hledger\-api behind an authenticating proxy if you want to restrict access.+You can change the TCP port (default: 8001) with \f[C]\-p\ PORT\f[]. .PP If invoked as \f[C]hledger\-api\ \-\-swagger\f[], instead of starting a server the API docs will be printed in Swagger 2.0 format.
doc/other/hledger-api.1.info view
@@ -4,7 +4,7 @@  File: hledger-api.1.info,  Node: Top,  Up: (dir) -hledger-api(1) hledger-api 1.0+hledger-api(1) hledger-api 1.1 ******************************  hledger-api is a simple web API server, intended to support client-side@@ -17,10 +17,12 @@ `C:/Users/USER/.hledger.journal'). For more about this see hledger(1), hledger_journal(5) etc. -   The server listens on port 8001, or another specified with `-p-PORT'. Note there is no built-in access control, so you will need to-hide hledger-api behind an authenticating proxy if you want to restrict-access.+   The server listens on IP address 127.0.0.1, accessible only to local+requests, by default. You can change this with `--host', eg `--host+0.0.0.0' to listen on all addresses. Note there is no other access+control, so you will need to hide hledger-api behind an authenticating+proxy if you want to restrict access. You can change the TCP port+(default: 8001) with `-p PORT'.     If invoked as `hledger-api --swagger', instead of starting a server the API docs will be printed in Swagger 2.0 format.@@ -84,7 +86,7 @@  Tag Table: Node: Top90-Node: OPTIONS1055-Ref: #options1142+Node: OPTIONS1216+Ref: #options1303  End Tag Table
doc/other/hledger-api.1.txt view
@@ -27,10 +27,12 @@        C:/Users/USER/.hledger.journal).   For  more about this see hledger(1),        hledger_journal(5) etc. -       The server listens on port 8001, or  another  specified  with  -p PORT.-       Note  there  is  no  built-in  access control, so you will need to hide-       hledger-api behind an authenticating proxy  if  you  want  to  restrict-       access.+       The server listens on IP address 127.0.0.1, accessible  only  to  local+       requests,   by   default.    You   can  change  this  with  --host,  eg+       --host 0.0.0.0 to listen on all addresses.   Note  there  is  no  other+       access  control, so you will need to hide hledger-api behind an authen-+       ticating proxy if you want to restrict access.  You can change the  TCP+       port (default: 8001) with -p PORT.         If  invoked  as hledger-api --swagger, instead of starting a server the        API docs will be printed in Swagger 2.0 format.@@ -118,4 +120,4 @@   -hledger-api 1.0                  October 2016                   hledger-api(1)+hledger-api 1.1                  December 2016                  hledger-api(1)
doc/other/hledger-ui.1 view
@@ -1,5 +1,5 @@ -.TH "hledger\-ui" "1" "October 2016" "hledger\-ui 1.0" "hledger User Manuals"+.TH "hledger\-ui" "1" "December 2016" "hledger\-ui 1.1" "hledger User Manuals"   @@ -39,21 +39,31 @@ Any QUERYARGS are interpreted as a hledger search query which filters the data. .TP-.B \f[C]\-\-flat\f[]-show full account names, unindented+.B \f[C]\-\-watch\f[]+watch for data (and time) changes and reload automatically .RS .RE .TP+.B \f[C]\-\-theme=default|terminal|greenterm\f[]+use this custom display theme+.RS+.RE+.TP .B \f[C]\-\-register=ACCTREGEX\f[] start in the (first) matched account\[aq]s register screen .RS .RE .TP-.B \f[C]\-\-theme=default|terminal|greenterm\f[]-use this custom display theme+.B \f[C]\-\-change\f[]+show period balances (changes) at startup instead of historical balances .RS .RE .TP+.B \f[C]\-\-flat\f[]+show full account names, unindented+.RS+.RE+.TP .B \f[C]\-V\ \-\-value\f[] show amounts as their current market value in their default valuation commodity (accounts screen only)@@ -193,7 +203,8 @@ .RE .TP .B \f[C]\-B\ \-\-cost\f[]-show amounts in their cost price\[aq]s commodity+convert amounts to their cost at transaction time (using the transaction+price, if any) .RS .RE .TP@@ -201,8 +212,6 @@ will transform the journal before any other processing by replacing the account name of every posting having the tag TAG with content VALUE by the account name "TAG:VALUE".-.RS-.RE The TAG will only match if it is a full\-length match. The pivot will only happen if the TAG is on a posting, not if it is on the transaction.@@ -239,8 +248,11 @@ report period durations: year, quarter, month, week, day. Then, \f[C]shift\-left/right\f[] moves to the previous/next period. \f[C]t\f[] sets the report period to today.-(To set a non\-standard period, you can use \f[C]/\f[] and a-\f[C]date:\f[] query).+With the \f[C]\-\-watch\f[] option, when viewing a "current" period (the+current day, week, month, quarter, or year), the period will move+automatically to track the current date.+To set a non\-standard period, you can use \f[C]/\f[] and a+\f[C]date:\f[] query. .PP \f[C]/\f[] lets you set a general filter query limiting the data shown, using the same query terms as in hledger and hledger\-web.@@ -424,12 +436,17 @@ \f[C]\-V\f[] affects only the accounts screen. .PP When you press \f[C]g\f[], the current and all previous screens are-regenerated, which may cause a noticeable pause.+regenerated, which may cause a noticeable pause with large files. Also there is no visual indication that this is in progress. .PP-The register screen\[aq]s switching between historic balance and running-total based on query arguments may be confusing, and there is no column-heading to indicate which is being displayed.+\f[C]\-\-watch\f[] is not yet fully robust.+It works well for normal usage, but many file changes in a short time+(eg saving the file thousands of times with an editor macro) can cause+problems at least on OSX.+Symptoms include: unresponsive UI, periodic resetting of the cursor+position, momentary display of parse errors, high CPU usage eventually+subsiding, and possibly a small but persistent build\-up of CPU usage+until the program is restarted.   .SH "REPORTING BUGS"
doc/other/hledger-ui.1.info view
@@ -4,7 +4,7 @@  File: hledger-ui.1.info,  Node: Top,  Up: (dir) -hledger-ui(1) hledger-ui 1.0+hledger-ui(1) hledger-ui 1.1 ****************************  hledger-ui is hledger's curses-style interface, providing an efficient@@ -37,15 +37,22 @@    Any QUERYARGS are interpreted as a hledger search query which filters the data. -`--flat'-     show full account names, unindented+`--watch'+     watch for data (and time) changes and reload automatically +`--theme=default|terminal|greenterm'+     use this custom display theme+ `--register=ACCTREGEX'      start in the (first) matched account's register screen -`--theme=default|terminal|greenterm'-     use this custom display theme+`--change'+     show period balances (changes) at startup instead of historical+     balances +`--flat'+     show full account names, unindented+ `-V --value'      show amounts as their current market value in their default      valuation commodity (accounts screen only)@@ -132,16 +139,17 @@      show items with zero amount, normally hidden  `-B --cost'-     show amounts in their cost price's commodity+     convert amounts to their cost at transaction time (using the+     transaction price, if any)  `--pivot TAG'      will transform the journal before any other processing by      replacing the account name of every posting having the tag TAG-     with content VALUE by the account name "TAG:VALUE".  The TAG will+     with content VALUE by the account name "TAG:VALUE". The TAG will      only match if it is a full-length match. The pivot will only-     happen if the TAG is on a posting, not if it is on the transaction.-     If the tag value is a multi:level:account:name the new account-     name will be "TAG:multi:level:account:name".+     happen if the TAG is on a posting, not if it is on the+     transaction. If the tag value is a multi:level:account:name the+     new account name will be "TAG:multi:level:account:name".  `--anon'      show anonymized accounts and payees@@ -170,8 +178,10 @@ `shift-down/up' steps downward and upward through these standard report period durations: year, quarter, month, week, day. Then, `shift-left/right' moves to the previous/next period. `t' sets the-report period to today. (To set a non-standard period, you can use `/'-and a `date:' query).+report period to today. With the `--watch' option, when viewing a+"current" period (the current day, week, month, quarter, or year), the+period will move automatically to track the current date. To set a+non-standard period, you can use `/' and a `date:' query.     `/' lets you set a general filter query limiting the data shown, using the same query terms as in hledger and hledger-web. While editing@@ -351,17 +361,17 @@ Node: Top88 Node: OPTIONS823 Ref: #options922-Node: KEYS3786-Ref: #keys3883-Node: SCREENS6284-Ref: #screens6371-Node: Accounts screen6461-Ref: #accounts-screen6591-Node: Register screen8629-Ref: #register-screen8786-Node: Transaction screen10674-Ref: #transaction-screen10834-Node: Error screen11701-Ref: #error-screen11825+Node: KEYS4003+Ref: #keys4100+Node: SCREENS6670+Ref: #screens6757+Node: Accounts screen6847+Ref: #accounts-screen6977+Node: Register screen9015+Ref: #register-screen9172+Node: Transaction screen11060+Ref: #transaction-screen11220+Node: Error screen12087+Ref: #error-screen12211  End Tag Table
doc/other/hledger-ui.1.txt view
@@ -35,14 +35,21 @@        Any  QUERYARGS  are interpreted as a hledger search query which filters        the data. -       --flat show full account names, unindented+       --watch+              watch for data (and time) changes and reload automatically +       --theme=default|terminal|greenterm+              use this custom display theme+        --register=ACCTREGEX               start in the (first) matched account's register screen -       --theme=default|terminal|greenterm-              use this custom display theme+       --change+              show period balances (changes) at startup instead of  historical+              balances +       --flat show full account names, unindented+        -V --value               show amounts as their current market value in their default val-               uation commodity (accounts screen only)@@ -51,7 +58,7 @@         -h     show general usage (or after COMMAND, the command's usage) -       --help show  the  current  program's  manual as plain text (or after an+       --help show the current program's manual as plain  text  (or  after  an               add-on COMMAND, the add-on's manual)         --man  show the current program's manual with man@@ -68,7 +75,7 @@               use a different input file.  For stdin, use -         --rules-file=RULESFILE-              Conversion  rules  file  to  use  when  reading  CSV   (default:+              Conversion   rules  file  to  use  when  reading  CSV  (default:               FILE.rules)         --alias=OLD=NEW@@ -101,7 +108,7 @@               multiperiod/multicolumn report by year         -p --period=PERIODEXP-              set  start date, end date, and/or reporting interval all at once+              set start date, end date, and/or reporting interval all at  once               (overrides the flags above)         --date2@@ -126,63 +133,66 @@               show items with zero amount, normally hidden         -B --cost-              show amounts in their cost price's commodity+              convert  amounts  to  their  cost at transaction time (using the+              transaction price, if any)         --pivot TAG               will transform  the  journal  before  any  other  processing  by               replacing  the  account name of every posting having the tag TAG-              with content VALUE by the account name "TAG:VALUE".-       The TAG will only match if it is a full-length match.  The  pivot  will-       only  happen  if  the TAG is on a posting, not if it is on the transac--       tion.  If the tag value is a multi:level:account:name the  new  account-       name will be "TAG:multi:level:account:name".+              with content VALUE by the account  name  "TAG:VALUE".   The  TAG+              will  only  match  if it is a full-length match.  The pivot will+              only happen if the TAG is on a posting, not  if  it  is  on  the+              transaction.  If the tag value is a multi:level:account:name the+              new account name will be "TAG:multi:level:account:name".         --anon show anonymized accounts and payees  KEYS-       ?  shows a help dialog listing all keys.  (Some of these also appear in+       ? shows a help dialog listing all keys.  (Some of these also appear  in        the quick help at the bottom of each screen.) Press ? again (or ESCAPE,        or LEFT) to close it.  The following keys work on most screens:         The cursor keys navigate: right (or enter) goes deeper, left returns to-       the previous screen,  up/down/page up/page down/home/end  move  up  and+       the  previous  screen,  up/down/page up/page down/home/end  move up and        down through lists.  Vi-style h/j/k/l movement keys are also supported.-       A tip: movement speed is limited by your keyboard repeat rate, to  move-       faster  you  may want to adjust it.  (If you're on a mac, the Karabiner+       A  tip: movement speed is limited by your keyboard repeat rate, to move+       faster you may want to adjust it.  (If you're on a mac,  the  Karabiner        app is one way to do that.) -       With shift pressed, the cursor keys adjust the report period,  limiting-       the   transactions   to   be   shown   (by  default,  all  are  shown).-       shift-down/up steps downward and upward through these  standard  report+       With  shift pressed, the cursor keys adjust the report period, limiting+       the  transactions  to  be  shown   (by   default,   all   are   shown).+       shift-down/up  steps  downward and upward through these standard report        period   durations:   year,   quarter,   month,   week,   day.    Then,-       shift-left/right moves to the previous/next period.  t sets the  report-       period  to  today.   (To set a non-standard period, you can use / and a-       date: query).+       shift-left/right  moves to the previous/next period.  t sets the report+       period to today.  With the --watch option,  when  viewing  a  "current"+       period  (the  current  day,  week, month, quarter, or year), the period+       will move automatically to track the current date.  To set a  non-stan-+       dard period, you can use / and a date: query. -       / lets you set a general filter query limiting the  data  shown,  using-       the  same query terms as in hledger and hledger-web.  While editing the-       query, you can use CTRL-a/e/d/k, BS, cursor keys; press  ENTER  to  set+       /  lets  you  set a general filter query limiting the data shown, using+       the same query terms as in hledger and hledger-web.  While editing  the+       query,  you  can  use CTRL-a/e/d/k, BS, cursor keys; press ENTER to set        it, or ESCAPEto cancel.  There are also keys for quickly adjusting some-       common filters like account depth and  cleared/uncleared  (see  below).+       common  filters  like  account depth and cleared/uncleared (see below).        BACKSPACE or DELETE removes all filters, showing all transactions. -       ESCAPE  removes  all  filters and jumps back to the top screen.  Or, it+       ESCAPE removes all filters and jumps back to the top  screen.   Or,  it        cancels a minibuffer edit or help dialog in progress. -       g reloads from the data file(s) and updates the current screen and  any-       previous  screens.   (With  large  files, this could cause a noticeable+       g  reloads from the data file(s) and updates the current screen and any+       previous screens.  (With large files, this  could  cause  a  noticeable        pause.) -       I toggles balance assertion  checking.   Disabling  balance  assertions+       I  toggles  balance  assertion  checking.  Disabling balance assertions        temporarily can be useful for troubleshooting. -       a  runs  command-line  hledger's  add  command, and reloads the updated+       a runs command-line hledger's add  command,  and  reloads  the  updated        file.  This allows some basic data entry. -       E  runs  $HLEDGER_UI_EDITOR,  or   $EDITOR,   or   a   default   (emac-+       E   runs   $HLEDGER_UI_EDITOR,   or   $EDITOR,   or  a  default  (emac-        sclient -a "" -nw) on the journal file.  With some editors (emacs, vi),-       the cursor will be positioned at the current transaction  when  invoked-       from  the  register  and transaction screens, and at the error location+       the  cursor  will be positioned at the current transaction when invoked+       from the register and transaction screens, and at  the  error  location        (if possible) when invoked from the error screen.         q quits the application.@@ -191,42 +201,42 @@  SCREENS    Accounts screen-       This is normally the first screen displayed.   It  lists  accounts  and-       their  balances,  like hledger's balance command.  By default, it shows-       all accounts and their latest ending balances (including  the  balances-       of  subaccounts).  if you specify a query on the command line, it shows+       This  is  normally  the  first screen displayed.  It lists accounts and+       their balances, like hledger's balance command.  By default,  it  shows+       all  accounts  and their latest ending balances (including the balances+       of subaccounts).  if you specify a query on the command line, it  shows        just the matched accounts and the balances from matched transactions. -       Account names are normally indented to show the hierarchy (tree  mode).+       Account  names are normally indented to show the hierarchy (tree mode).        To see less detail, set a depth limit by pressing a number key, 1 to 9.        0 shows even less detail, collapsing all accounts to a single total.  --       and  +  (or  =)  decrease  and increase the depth limit.  To remove the-       depth limit, set it higher than the maximum  account  depth,  or  press+       and + (or =) decrease and increase the  depth  limit.   To  remove  the+       depth  limit,  set  it  higher than the maximum account depth, or press        ESCAPE. -       F  toggles  flat mode, in which accounts are shown as a flat list, with-       their full names.  In this mode, account balances exclude  subaccounts,-       except  for accounts at the depth limit (as with hledger's balance com-+       F toggles flat mode, in which accounts are shown as a flat  list,  with+       their  full names.  In this mode, account balances exclude subaccounts,+       except for accounts at the depth limit (as with hledger's balance  com-        mand).         H toggles between showing historical balances or period balances.  His--       torical  balances  (the  default) are ending balances at the end of the-       report period, taking into account all transactions  before  that  date-       (filtered  by  the  filter query if any), including transactions before-       the start of the report period.  In other  words,  historical  balances-       are  what  you  would  see on a bank statement for that account (unless-       disturbed by a filter  query).   Period  balances  ignore  transactions+       torical balances (the default) are ending balances at the  end  of  the+       report  period,  taking  into account all transactions before that date+       (filtered by the filter query if any),  including  transactions  before+       the  start  of  the report period.  In other words, historical balances+       are what you would see on a bank statement  for  that  account  (unless+       disturbed  by  a  filter  query).   Period balances ignore transactions        before the report start date, so they show the change in balance during        the report period.  They are more useful eg when viewing a time log. -       C toggles cleared mode, in which uncleared  transactions  and  postings-       are  not  shown.   U  toggles  uncleared  mode, in which only uncleared+       C  toggles  cleared  mode, in which uncleared transactions and postings+       are not shown.  U toggles  uncleared  mode,  in  which  only  uncleared        transactions/postings are shown.         R toggles real mode, in which virtual postings are ignored. -       Z toggles nonzero mode, in which only accounts  with  nonzero  balances-       are  shown (hledger-ui shows zero items by default, unlike command-line+       Z  toggles  nonzero  mode, in which only accounts with nonzero balances+       are shown (hledger-ui shows zero items by default, unlike  command-line        hledger).         Press right or enter to view an account's transactions register.@@ -235,62 +245,62 @@        This screen shows the transactions affecting a particular account, like        a check register.  Each line represents one transaction and shows: -       o the  other  account(s)  involved, in abbreviated form.  (If there are-         both real and virtual postings, it shows only the  accounts  affected+       o the other account(s) involved, in abbreviated form.   (If  there  are+         both  real  and virtual postings, it shows only the accounts affected          by real postings.) -       o the  overall change to the current account's balance; positive for an+       o the overall change to the current account's balance; positive for  an          inflow to this account, negative for an outflow.         o the running historical total or period total for the current account,-         after  the  transaction.  This can be toggled with H.  Similar to the-         accounts screen, the historical total  is  affected  by  transactions-         (filtered  by  the  filter query) before the report start date, while+         after the transaction.  This can be toggled with H.  Similar  to  the+         accounts  screen,  the  historical  total is affected by transactions+         (filtered by the filter query) before the report  start  date,  while          the period total is not.  If the historical total is not disturbed by-         a  filter  query, it will be the running historical balance you would+         a filter query, it will be the running historical balance  you  would          see on a bank register for the current account. -       If the accounts screen was in  tree  mode,  the  register  screen  will+       If  the  accounts  screen  was  in  tree mode, the register screen will        include transactions from both the current account and its subaccounts.-       If the accounts screen  was  in  flat  mode,  and  a  non-depth-clipped-       account  was  selected,  the  register screen will exclude transactions+       If  the  accounts  screen  was  in  flat  mode, and a non-depth-clipped+       account was selected, the register  screen  will  exclude  transactions        from subaccounts.  In other words, the register always shows the trans--       actions  responsible  for  the  period  balance  shown  on the accounts+       actions responsible for  the  period  balance  shown  on  the  accounts        screen.  As on the accounts screen, this can be toggled with F. -       C toggles cleared mode, in which uncleared  transactions  and  postings-       are  not  shown.   U  toggles  uncleared  mode, in which only uncleared+       C  toggles  cleared  mode, in which uncleared transactions and postings+       are not shown.  U toggles  uncleared  mode,  in  which  only  uncleared        transactions/postings are shown.         R toggles real mode, in which virtual postings are ignored. -       Z toggles nonzero mode, in which only transactions  posting  a  nonzero-       change  are  shown (hledger-ui shows zero items by default, unlike com-+       Z  toggles  nonzero  mode, in which only transactions posting a nonzero+       change are shown (hledger-ui shows zero items by default,  unlike  com-        mand-line hledger).         Press right (or enter) to view the selected transaction in detail.     Transaction screen-       This screen shows a single transaction, as  a  general  journal  entry,-       similar  to  hledger's  print command and journal format (hledger_jour-+       This  screen  shows  a  single transaction, as a general journal entry,+       similar to hledger's print command and  journal  format  (hledger_jour-        nal(5)). -       The transaction's date(s)  and  any  cleared  flag,  transaction  code,-       description,  comments,  along  with  all  of  its account postings are-       shown.  Simple transactions have two postings, but there  can  be  more+       The  transaction's  date(s)  and  any  cleared  flag, transaction code,+       description, comments, along with  all  of  its  account  postings  are+       shown.   Simple  transactions  have two postings, but there can be more        (or in certain cases, fewer). -       up  and  down will step through all transactions listed in the previous-       account register screen.  In the title bar, the numbers in  parentheses-       show  your  position  within  that  account  register.   They will vary+       up and down will step through all transactions listed in  the  previous+       account  register screen.  In the title bar, the numbers in parentheses+       show your position  within  that  account  register.   They  will  vary        depending on which account register you came from (remember most trans-        actions appear in multiple account registers).  The #N number preceding        them is the transaction's position within the complete unfiltered jour-        nal, which is a more stable id (at least until the next reload).     Error screen-       This  screen  will appear if there is a problem, such as a parse error,-       when you press g to reload.  Once you have fixed the problem,  press  g+       This screen will appear if there is a problem, such as a  parse  error,+       when  you  press g to reload.  Once you have fixed the problem, press g        again to reload and resume normal operation.  (Or, you can press escape        to cancel the reload attempt.) @@ -298,17 +308,17 @@        COLUMNS The screen width to use.  Default: the full terminal width.         LEDGER_FILE The journal file path when not specified with -f.  Default:-       ~/.hledger.journal  (on  windows,  perhaps C:/Users/USER/.hledger.jour-+       ~/.hledger.journal (on  windows,  perhaps  C:/Users/USER/.hledger.jour-        nal).  FILES-       Reads data from one or more files in hledger journal, timeclock,  time--       dot,   or   CSV   format   specified   with  -f,  or  $LEDGER_FILE,  or-       $HOME/.hledger.journal          (on          windows,           perhaps+       Reads  data from one or more files in hledger journal, timeclock, time-+       dot,  or  CSV  format  specified   with   -f,   or   $LEDGER_FILE,   or+       $HOME/.hledger.journal           (on          windows,          perhaps        C:/Users/USER/.hledger.journal).  BUGS-       The  need  to precede options with -- when invoked from hledger is awk-+       The need to precede options with -- when invoked from hledger  is  awk-        ward.         -f- doesn't work (hledger-ui can't read from stdin).@@ -316,17 +326,21 @@        -V affects only the accounts screen.         When you press g, the current and all previous screens are regenerated,-       which may cause a noticeable pause.  Also there is no visual indication-       that this is in progress.+       which may cause a noticeable pause with large files.  Also there is  no+       visual indication that this is in progress. -       The register screen's switching between historic  balance  and  running-       total based on query arguments may be confusing, and there is no column-       heading to indicate which is being displayed.+       --watch  is  not yet fully robust.  It works well for normal usage, but+       many file changes in a short time (eg  saving  the  file  thousands  of+       times  with an editor macro) can cause problems at least on OSX.  Symp-+       toms include: unresponsive UI, periodic resetting of the  cursor  posi-+       tion, momentary display of parse errors, high CPU usage eventually sub-+       siding, and possibly a small but persistent build-up of CPU usage until+       the program is restarted.    REPORTING BUGS-       Report bugs at http://bugs.hledger.org (or on the #hledger IRC  channel+       Report  bugs at http://bugs.hledger.org (or on the #hledger IRC channel        or hledger mail list)  @@ -340,7 +354,7 @@   SEE ALSO-       hledger(1),      hledger-ui(1),     hledger-web(1),     hledger-api(1),+       hledger(1),     hledger-ui(1),     hledger-web(1),      hledger-api(1),        hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_time-        dot(5), ledger(1) @@ -348,4 +362,4 @@   -hledger-ui 1.0                   October 2016                    hledger-ui(1)+hledger-ui 1.1                   December 2016                   hledger-ui(1)
doc/other/hledger-web.1 view
@@ -1,5 +1,5 @@ -.TH "hledger\-web" "1" "October 2016" "hledger\-web 1.0" "hledger User Manuals"+.TH "hledger\-web" "1" "December 2016" "hledger\-web 1.1" "hledger User Manuals"   @@ -59,22 +59,34 @@ \f[] .fi .PP-With \f[C]\-\-server\f[], it starts the web app in non\-transient mode+With \f[C]\-\-serve\f[], it starts the web app in non\-transient mode and logs requests to the console.-Typically when running hledger web as part of a website you\[aq]ll want-to use \f[C]\-\-base\-url\f[] to set the protocol/hostname/port/path to-be used in hyperlinks.-The \f[C]\-\-file\-url\f[] option allows static files to be served from-a different url, eg for better caching or cookie\-less serving. .PP-You can use \f[C]\-\-port\f[] to listen on a different TCP port, eg if-you are running multiple hledger\-web instances.-This need not be the same as the PORT in the base url.+By default the server listens on IP address 127.0.0.1, accessible only+to local requests.+You can use \f[C]\-\-host\f[] to change this, eg+\f[C]\-\-host\ 0.0.0.0\f[] to listen on all configured addresses. .PP-Note there is no built\-in access control, so you will need to hide-hledger\-web behind an authenticating proxy (such as apache or nginx) if-you want to restrict who can see and add entries to your journal.+Similarly, use \f[C]\-\-port\f[] to set a TCP port other than 5000, eg+if you are running multiple hledger\-web instances. .PP+You can use \f[C]\-\-base\-url\f[] to change the protocol, hostname,+port and path that appear in hyperlinks, useful eg for integrating+hledger\-web within a larger website.+The default is \f[C]http://HOST:PORT/\f[] using the server\[aq]s+configured host address and TCP port (or \f[C]http://HOST\f[] if PORT is+80).+.PP+With \f[C]\-\-file\-url\f[] you can set a different base url for static+files, eg for better caching or cookie\-less serving on high performance+websites.+.PP+Note there is no built\-in access control (aside from listening on+127.0.0.1 by default).+So you will need to hide hledger\-web behind an authenticating proxy+(such as apache or nginx) if you want to restrict who can see and add+entries to your journal.+.PP Command\-line options and arguments may be used to set an initial filter on the data. This is not shown in the web UI, but it will be applied in addition to@@ -249,7 +261,8 @@ .RE .TP .B \f[C]\-B\ \-\-cost\f[]-show amounts in their cost price\[aq]s commodity+convert amounts to their cost at transaction time (using the transaction+price, if any) .RS .RE .TP@@ -257,8 +270,6 @@ will transform the journal before any other processing by replacing the account name of every posting having the tag TAG with content VALUE by the account name "TAG:VALUE".-.RS-.RE The TAG will only match if it is a full\-length match. The pivot will only happen if the TAG is on a posting, not if it is on the transaction.
doc/other/hledger-web.1.info view
@@ -4,7 +4,7 @@  File: hledger-web.1.info,  Node: Top,  Up: (dir) -hledger-web(1) hledger-web 1.0+hledger-web(1) hledger-web 1.1 ******************************  hledger-web is hledger's web interface. It starts a simple web@@ -38,21 +38,31 @@ Starting web browser if possible Web app will auto-exit after a few minutes with no browsers (or press ctrl-c) -   With `--server', it starts the web app in non-transient mode and-logs requests to the console. Typically when running hledger web as part-of a website you'll want to use `--base-url' to set the-protocol/hostname/port/path to be used in hyperlinks. The `--file-url'-option allows static files to be served from a different url, eg for-better caching or cookie-less serving.+   With `--serve', it starts the web app in non-transient mode and logs+requests to the console. -   You can use `--port' to listen on a different TCP port, eg if you-are running multiple hledger-web instances. This need not be the same as-the PORT in the base url.+   By default the server listens on IP address 127.0.0.1, accessible+only to local requests. You can use `--host' to change this, eg `--host+0.0.0.0' to listen on all configured addresses. -   Note there is no built-in access control, so you will need to hide-hledger-web behind an authenticating proxy (such as apache or nginx) if-you want to restrict who can see and add entries to your journal.+   Similarly, use `--port' to set a TCP port other than 5000, eg if you+are running multiple hledger-web instances. +   You can use `--base-url' to change the protocol, hostname, port and+path that appear in hyperlinks, useful eg for integrating hledger-web+within a larger website. The default is `http://HOST:PORT/' using the+server's configured host address and TCP port (or `http://HOST' if PORT+is 80).++   With `--file-url' you can set a different base url for static files,+eg for better caching or cookie-less serving on high performance+websites.++   Note there is no built-in access control (aside from listening on+127.0.0.1 by default). So you will need to hide hledger-web behind an+authenticating proxy (such as apache or nginx) if you want to restrict+who can see and add entries to your journal.+    Command-line options and arguments may be used to set an initial filter on the data. This is not shown in the web UI, but it will be applied in addition to any search query entered there.@@ -175,16 +185,17 @@      show items with zero amount, normally hidden  `-B --cost'-     show amounts in their cost price's commodity+     convert amounts to their cost at transaction time (using the+     transaction price, if any)  `--pivot TAG'      will transform the journal before any other processing by      replacing the account name of every posting having the tag TAG-     with content VALUE by the account name "TAG:VALUE".  The TAG will+     with content VALUE by the account name "TAG:VALUE". The TAG will      only match if it is a full-length match. The pivot will only-     happen if the TAG is on a posting, not if it is on the transaction.-     If the tag value is a multi:level:account:name the new account-     name will be "TAG:multi:level:account:name".+     happen if the TAG is on a posting, not if it is on the+     transaction. If the tag value is a multi:level:account:name the+     new account name will be "TAG:multi:level:account:name".  `--anon'      show anonymized accounts and payees@@ -193,7 +204,7 @@  Tag Table: Node: Top90-Node: OPTIONS2997-Ref: #options3084+Node: OPTIONS3343+Ref: #options3430  End Tag Table
doc/other/hledger-web.1.txt view
@@ -48,32 +48,40 @@               Starting web browser if possible               Web app will auto-exit after a few minutes with no browsers (or press ctrl-c) -       With  --server,  it  starts  the web app in non-transient mode and logs-       requests to the console.  Typically when running hledger web as part of-       a  website  you'll  want  to  use  --base-url to set the protocol/host--       name/port/path to be used in hyperlinks.  The --file-url option  allows-       static  files  to be served from a different url, eg for better caching-       or cookie-less serving.+       With  --serve,  it  starts  the  web app in non-transient mode and logs+       requests to the console. -       You can use --port to listen on a different TCP port,  eg  if  you  are-       running  multiple  hledger-web instances.  This need not be the same as-       the PORT in the base url.+       By default the server listens on IP address 127.0.0.1, accessible  only+       to   local   requests.    You   can  use  --host  to  change  this,  eg+       --host 0.0.0.0 to listen on all configured addresses. -       Note there is no built-in access control, so  you  will  need  to  hide-       hledger-web behind an authenticating proxy (such as apache or nginx) if-       you want to restrict who can see and add entries to your journal.+       Similarly, use --port to set a TCP port other than 5000, eg if you  are+       running multiple hledger-web instances. +       You  can use --base-url to change the protocol, hostname, port and path+       that appear in hyperlinks, useful eg for integrating hledger-web within+       a  larger website.  The default is http://HOST:PORT/ using the server's+       configured host address and TCP port (or http://HOST if PORT is 80).++       With --file-url you can set a different base url for static  files,  eg+       for better caching or cookie-less serving on high performance websites.++       Note there is no built-in  access  control  (aside  from  listening  on+       127.0.0.1  by default).  So you will need to hide hledger-web behind an+       authenticating proxy (such as apache or nginx) if you want to  restrict+       who can see and add entries to your journal.+        Command-line options and arguments may be used to set an initial filter-       on  the  data.  This is not shown in the web UI, but it will be applied+       on the data.  This is not shown in the web UI, but it will  be  applied        in addition to any search query entered there.         With journal and timeclock files (but not CSV files, currently) the web-       app  detects  changes made by other means and will show the new data on-       the next request.  If a change makes the file unparseable,  hledger-web+       app detects changes made by other means and will show the new  data  on+       the  next request.  If a change makes the file unparseable, hledger-web        will show an error until the file has been fixed.  OPTIONS-       Note:  if invoking hledger-web as a hledger subcommand, write -- before+       Note: if invoking hledger-web as a hledger subcommand, write --  before        options as shown above.         --server@@ -84,21 +92,21 @@               set the TCP port to listen on (default: 5000)         --base-url=URL-              set  the  base  url (default: http://localhost:PORT).  You would+              set the base url (default:  http://localhost:PORT).   You  would               change this when sharing over the network, or integrating within               a larger website.         --file-url=URL               set the static files url (default: BASEURL/static).  hledger-web-              normally serves static files itself, but if you wanted to  serve-              them  from  another server for efficiency, you would set the url+              normally  serves static files itself, but if you wanted to serve+              them from another server for efficiency, you would set  the  url               with this.         hledger general options:         -h     show general usage (or after COMMAND, the command's usage) -       --help show the current program's manual as plain  text  (or  after  an+       --help show  the  current  program's  manual as plain text (or after an               add-on COMMAND, the add-on's manual)         --man  show the current program's manual with man@@ -115,7 +123,7 @@               use a different input file.  For stdin, use -         --rules-file=RULESFILE-              Conversion   rules  file  to  use  when  reading  CSV  (default:+              Conversion  rules  file  to  use  when  reading  CSV   (default:               FILE.rules)         --alias=OLD=NEW@@ -148,7 +156,7 @@               multiperiod/multicolumn report by year         -p --period=PERIODEXP-              set start date, end date, and/or reporting interval all at  once+              set  start date, end date, and/or reporting interval all at once               (overrides the flags above)         --date2@@ -173,32 +181,33 @@               show items with zero amount, normally hidden         -B --cost-              show amounts in their cost price's commodity+              convert amounts to their cost at  transaction  time  (using  the+              transaction price, if any)         --pivot TAG               will  transform  the  journal  before  any  other  processing by               replacing the account name of every posting having the  tag  TAG-              with content VALUE by the account name "TAG:VALUE".-       The  TAG  will only match if it is a full-length match.  The pivot will-       only happen if the TAG is on a posting, not if it is  on  the  transac--       tion.   If  the tag value is a multi:level:account:name the new account-       name will be "TAG:multi:level:account:name".+              with  content  VALUE  by  the account name "TAG:VALUE".  The TAG+              will only match if it is a full-length match.   The  pivot  will+              only  happen  if  the  TAG  is on a posting, not if it is on the+              transaction.  If the tag value is a multi:level:account:name the+              new account name will be "TAG:multi:level:account:name".         --anon show anonymized accounts and payees  ENVIRONMENT        LEDGER_FILE The journal file path when not specified with -f.  Default:-       ~/.hledger.journal  (on  windows,  perhaps C:/Users/USER/.hledger.jour-+       ~/.hledger.journal (on  windows,  perhaps  C:/Users/USER/.hledger.jour-        nal).  FILES-       Reads data from one or more files in hledger journal, timeclock,  time--       dot,   or   CSV   format   specified   with  -f,  or  $LEDGER_FILE,  or-       $HOME/.hledger.journal          (on          windows,           perhaps+       Reads  data from one or more files in hledger journal, timeclock, time-+       dot,  or  CSV  format  specified   with   -f,   or   $LEDGER_FILE,   or+       $HOME/.hledger.journal           (on          windows,          perhaps        C:/Users/USER/.hledger.journal).  BUGS-       The  need  to precede options with -- when invoked from hledger is awk-+       The need to precede options with -- when invoked from hledger  is  awk-        ward.         -f- doesn't work (hledger-web can't read from stdin).@@ -212,7 +221,7 @@   REPORTING BUGS-       Report bugs at http://bugs.hledger.org (or on the #hledger IRC  channel+       Report  bugs at http://bugs.hledger.org (or on the #hledger IRC channel        or hledger mail list)  @@ -226,7 +235,7 @@   SEE ALSO-       hledger(1),      hledger-ui(1),     hledger-web(1),     hledger-api(1),+       hledger(1),     hledger-ui(1),     hledger-web(1),      hledger-api(1),        hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_time-        dot(5), ledger(1) @@ -234,4 +243,4 @@   -hledger-web 1.0                  October 2016                   hledger-web(1)+hledger-web 1.1                  December 2016                  hledger-web(1)
doc/other/hledger_csv.5 view
@@ -1,5 +1,5 @@ -.TH "hledger_csv" "5" "October 2016" "hledger 1.0" "hledger User Manuals"+.TH "hledger_csv" "5" "December 2016" "hledger 1.1" "hledger User Manuals"   
doc/other/hledger_csv.5.info view
@@ -4,7 +4,7 @@  File: hledger_csv.5.info,  Node: Top,  Up: (dir) -hledger_csv(5) hledger 1.0+hledger_csv(5) hledger 1.1 **************************  hledger can read CSV files, converting each CSV record into a journal
doc/other/hledger_csv.5.txt view
@@ -166,4 +166,4 @@   -hledger 1.0                      October 2016                   hledger_csv(5)+hledger 1.1                      December 2016                  hledger_csv(5)
doc/other/hledger_journal.5 view
@@ -1,6 +1,6 @@ .\"t -.TH "hledger_journal" "5" "October 2016" "hledger 1.0" "hledger User Manuals"+.TH "hledger_journal" "5" "December 2016" "hledger 1.1" "hledger User Manuals"   @@ -250,8 +250,10 @@ amounts are a number (the "quantity") and optionally a currency symbol/commodity name (the "commodity"). .IP \[bu] 2-the commodity is a symbol, word, or double\-quoted phrase, on the left-or right, with or without a separating space+the commodity is a symbol, word, or phrase, on the left or right, with+or without a separating space.+If the commodity contains numbers, spaces or non\-word punctuation it+must be enclosed in double quotes. .IP \[bu] 2 negative amounts with a commodity on the left can have the minus sign before or after it@@ -325,7 +327,7 @@ which is more correct and provides better error checking. .SS Balance Assertions .PP-hledger supports ledger\-style balance assertions in journal files.+hledger supports Ledger\-style balance assertions in journal files. These look like \f[C]=EXPECTEDBALANCE\f[] following a posting\[aq]s amount. Eg in this example we assert the expected dollar balance in accounts a@@ -421,21 +423,58 @@ virtual. They are not affected by the \f[C]\-\-real/\-R\f[] flag or \f[C]real:\f[] query.+.SS Balance Assignments+.PP+Ledger\-style balance assignments are also supported.+These are like balance assertions, but with no posting amount on the+left side of the equals sign; instead it is calculated automatically so+as to satisfy the assertion.+This can be a convenience during data entry, eg when setting opening+balances:+.IP+.nf+\f[C]+;\ starting\ a\ new\ journal,\ set\ asset\ account\ balances\ +2016/1/1\ opening\ balances+\ \ assets:checking\ \ \ \ \ \ \ \ \ \ \ \ =\ $409.32+\ \ assets:savings\ \ \ \ \ \ \ \ \ \ \ \ \ =\ $735.24+\ \ assets:cash\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ =\ $42+\ \ equity:opening\ balances+\f[]+.fi+.PP+or when adjusting a balance to reality:+.IP+.nf+\f[C]+;\ no\ cash\ left;\ update\ balance,\ record\ any\ untracked\ spending\ as\ a\ generic\ expense+2016/1/15+\ \ assets:cash\ \ \ \ =\ $0+\ \ expenses:misc+\f[]+.fi+.PP+The calculated amount depends on the account\[aq]s balance in the+commodity at that point (which depends on the previously\-dated postings+of the commodity to that account since the last balance assertion or+assignment).+Note that using balance assignments makes your journal a little less+explicit; to know the exact amount posted, you have to run hledger or do+the calculations yourself, instead of just reading it. .SS Prices .SS Transaction prices .PP-When recording a transaction, you can also record an amount\[aq]s price-in another commodity.-This documents the exchange rate, cost (of a purchase), or selling price-(of a sale) that was in effect within this particular transaction (or-more precisely, within the particular posting).-These transaction prices are fixed, and do not change.+Within a transaction posting, you can record an amount\[aq]s price in+another commodity.+This can be used to document the cost (for a purchase), or selling price+(for a sale), or the exchange rate that was used, for this transaction.+These transaction prices are fixed, and do not change over time. .PP-Such priced amounts can be displayed in their transaction price\[aq]s-commodity, by using the \f[C]\-\-cost/\-B\f[] flag (B for "cost Basis"),-supported by most hledger commands.+Amounts with transaction prices can be displayed in the transaction+price\[aq]s commodity, by using the \f[C]\-\-cost/\-B\f[] flag supported+by most hledger commands (mnemonic: "cost Basis"). .PP-There are three ways to specify a transaction price:+There are several ways to record a transaction price: .IP "1." 3 Write the unit price (aka exchange rate), as \f[C]\@\ UNITPRICE\f[] after the amount:@@ -492,27 +531,31 @@ .SS Market prices .PP Market prices are not tied to a particular transaction; they represent-historical exchange rates between two commodities, usually from some-public market which publishes such rates.-.PP-When market prices are known, the \f[C]\-V/\-\-value\f[] option will use-them to convert reported amounts to their market value as of the report-end date.-This option is currently available only with the balance command.+historical exchange rates between two commodities.+(Ledger calls them historical prices.) For example, the prices published+by a stock exchange or the foreign exchange market.+Some commands (balance, currently) can use this information to show the+market value of things at a given date. .PP-You record market prices (Ledger calls them historical prices) with a P-directive, in the journal or perhaps in a separate included file.-Market price directives have the format:+To record market prices, use P directives in the main journal or in an+included file.+Their format is: .IP .nf \f[C]-P\ DATE\ COMMODITYSYMBOL\ UNITPRICE+P\ DATE\ COMMODITYBEINGPRICED\ UNITPRICE \f[] .fi .PP-For example, the following directives say that the euro\[aq]s exchange-rate was 1.35 US dollars during 2009, and $1.40 from 2010 onward (and-unknown before 2009).+DATE is a simple date as usual.+COMMODITYBEINGPRICED is the symbol of the commodity being priced (just+the symbol, no quantity).+UNITPRICE is an ordinary amount (symbol and quantity) in a second+commodity, specifying the unit price or conversion rate for the first+commodity in terms of the second, on the given date.+.PP+For example, the following directives say that one euro was worth 1.35+US dollars during 2009, and $1.40 from 2010 onward: .IP .nf \f[C]@@ -520,8 +563,6 @@ P\ 2010/1/1\ €\ $1.40 \f[] .fi-.PP-Example use for market prices: tracking the value of stocks. .SS Comments .PP Lines in the journal beginning with a semicolon (\f[C];\f[]) or hash
doc/other/hledger_journal.5.info view
@@ -4,7 +4,7 @@  File: hledger_journal.5.info,  Node: Top,  Up: (dir) -hledger_journal(5) hledger 1.0+hledger_journal(5) hledger 1.1 ******************************  hledger's usual data source is a plain text file containing journal@@ -70,6 +70,7 @@ * Amounts:: * Virtual Postings:: * Balance Assertions::+* Balance Assignments:: * Prices:: * Comments:: * Tags::@@ -257,8 +258,10 @@    * amounts are a number (the "quantity") and optionally a currency      symbol/commodity name (the "commodity"). -   * the commodity is a symbol, word, or double-quoted phrase, on the-     left or right, with or without a separating space+   * the commodity is a symbol, word, or phrase, on the left or right,+     with or without a separating space. If the commodity contains+     numbers, spaces or non-word punctuation it must be enclosed in+     double quotes.     * negative amounts with a commodity on the left can have the minus      sign before or after it@@ -329,12 +332,12 @@ is more correct and provides better error checking.  -File: hledger_journal.5.info,  Node: Balance Assertions,  Next: Prices,  Prev: Virtual Postings,  Up: FILE FORMAT+File: hledger_journal.5.info,  Node: Balance Assertions,  Next: Balance Assignments,  Prev: Virtual Postings,  Up: FILE FORMAT  1.6 Balance Assertions ====================== -hledger supports ledger-style balance assertions in journal files. These+hledger supports Ledger-style balance assertions in journal files. These look like `=EXPECTEDBALANCE' following a posting's amount. Eg in this example we assert the expected dollar balance in accounts a and b after each posting:@@ -440,9 +443,44 @@ virtual. They are not affected by the `--real/-R' flag or `real:' query.  -File: hledger_journal.5.info,  Node: Prices,  Next: Comments,  Prev: Balance Assertions,  Up: FILE FORMAT+File: hledger_journal.5.info,  Node: Balance Assignments,  Next: Prices,  Prev: Balance Assertions,  Up: FILE FORMAT -1.7 Prices+1.7 Balance Assignments+=======================++Ledger-style balance assignments are also supported. These are like+balance assertions, but with no posting amount on the left side of the+equals sign; instead it is calculated automatically so as to satisfy the+assertion. This can be a convenience during data entry, eg when setting+opening balances:+++; starting a new journal, set asset account balances+2016/1/1 opening balances+  assets:checking            = $409.32+  assets:savings             = $735.24+  assets:cash                 = $42+  equity:opening balances++   or when adjusting a balance to reality:+++; no cash left; update balance, record any untracked spending as a generic expense+2016/1/15+  assets:cash    = $0+  expenses:misc++   The calculated amount depends on the account's balance in the+commodity at that point (which depends on the previously-dated postings+of the commodity to that account since the last balance assertion or+assignment). Note that using balance assignments makes your journal a+little less explicit; to know the exact amount posted, you have to run+hledger or do the calculations yourself, instead of just reading it.+++File: hledger_journal.5.info,  Node: Prices,  Next: Comments,  Prev: Balance Assignments,  Up: FILE FORMAT++1.8 Prices ==========  * Menu:@@ -453,20 +491,20 @@  File: hledger_journal.5.info,  Node: Transaction prices,  Next: Market prices,  Up: Prices -1.7.1 Transaction prices+1.8.1 Transaction prices ------------------------ -When recording a transaction, you can also record an amount's price in-another commodity. This documents the exchange rate, cost (of a-purchase), or selling price (of a sale) that was in effect within this-particular transaction (or more precisely, within the particular-posting). These transaction prices are fixed, and do not change.+Within a transaction posting, you can record an amount's price in+another commodity. This can be used to document the cost (for a+purchase), or selling price (for a sale), or the exchange rate that was+used, for this transaction. These transaction prices are fixed, and do+not change over time. -   Such priced amounts can be displayed in their transaction price's-commodity, by using the `--cost/-B' flag (B for "cost Basis"),-supported by most hledger commands.+   Amounts with transaction prices can be displayed in the transaction+price's commodity, by using the `--cost/-B' flag supported by most+hledger commands (mnemonic: "cost Basis"). -   There are three ways to specify a transaction price:+   There are several ways to record a transaction price:    1. Write the unit price (aka exchange rate), as `@ UNITPRICE' after      the amount:@@ -507,38 +545,39 @@  File: hledger_journal.5.info,  Node: Market prices,  Prev: Transaction prices,  Up: Prices -1.7.2 Market prices+1.8.2 Market prices -------------------  Market prices are not tied to a particular transaction; they represent-historical exchange rates between two commodities, usually from some-public market which publishes such rates.+historical exchange rates between two commodities. (Ledger calls them+historical prices.) For example, the prices published by a stock+exchange or the foreign exchange market. Some commands (balance,+currently) can use this information to show the market value of things+at a given date. -   When market prices are known, the `-V/--value' option will use them-to convert reported amounts to their market value as of the report end-date. This option is currently available only with the balance command.+   To record market prices, use P directives in the main journal or in+an included file. Their format is: -   You record market prices (Ledger calls them historical prices) with-a P directive, in the journal or perhaps in a separate included file.-Market price directives have the format: +P DATE COMMODITYBEINGPRICED UNITPRICE -P DATE COMMODITYSYMBOL UNITPRICE+   DATE is a simple date as usual. COMMODITYBEINGPRICED is the symbol of+the commodity being priced (just the symbol, no quantity). UNITPRICE is+an ordinary amount (symbol and quantity) in a second commodity,+specifying the unit price or conversion rate for the first commodity in+terms of the second, on the given date. -   For example, the following directives say that the euro's exchange-rate was 1.35 US dollars during 2009, and $1.40 from 2010 onward (and-unknown before 2009).+   For example, the following directives say that one euro was worth+1.35 US dollars during 2009, and $1.40 from 2010 onward:   P 2009/1/1 € $1.35 P 2010/1/1 € $1.40 -   Example use for market prices: tracking the value of stocks.-  File: hledger_journal.5.info,  Node: Comments,  Next: Tags,  Prev: Prices,  Up: FILE FORMAT -1.8 Comments+1.9 Comments ============  Lines in the journal beginning with a semicolon (`;') or hash (`#') or@@ -579,8 +618,8 @@  File: hledger_journal.5.info,  Node: Tags,  Next: Directives,  Prev: Comments,  Up: FILE FORMAT -1.9 Tags-========+1.10 Tags+=========  A _tag_ is a word followed by a full colon inside a transaction or posting comment. You can write multiple tags, comma separated. Eg: `; a@@ -607,7 +646,7 @@  File: hledger_journal.5.info,  Node: Directives,  Prev: Tags,  Up: FILE FORMAT -1.10 Directives+1.11 Directives ===============  * Menu:@@ -624,7 +663,7 @@  File: hledger_journal.5.info,  Node: Account aliases,  Next: account directive,  Up: Directives -1.10.1 Account aliases+1.11.1 Account aliases ----------------------  You can define aliases which rewrite your account names (after reading@@ -653,7 +692,7 @@  File: hledger_journal.5.info,  Node: Basic aliases,  Next: Regex aliases,  Up: Account aliases -1.10.1.1 Basic aliases+1.11.1.1 Basic aliases ......................  To set an account alias, use the `alias' directive in your journal@@ -678,7 +717,7 @@  File: hledger_journal.5.info,  Node: Regex aliases,  Next: Multiple aliases,  Prev: Basic aliases,  Up: Account aliases -1.10.1.2 Regex aliases+1.11.1.2 Regex aliases ......................  There is also a more powerful variant that uses a regular expression,@@ -704,7 +743,7 @@  File: hledger_journal.5.info,  Node: Multiple aliases,  Next: end aliases,  Prev: Regex aliases,  Up: Account aliases -1.10.1.3 Multiple aliases+1.11.1.3 Multiple aliases .........................  You can define as many aliases as you like using directives or@@ -721,7 +760,7 @@  File: hledger_journal.5.info,  Node: end aliases,  Prev: Multiple aliases,  Up: Account aliases -1.10.1.4 end aliases+1.11.1.4 end aliases ....................  You can clear (forget) all currently defined aliases with the `end@@ -733,7 +772,7 @@  File: hledger_journal.5.info,  Node: account directive,  Next: apply account directive,  Prev: Account aliases,  Up: Directives -1.10.2 account directive+1.11.2 account directive ------------------------  The `account' directive predefines account names, as in Ledger and@@ -755,7 +794,7 @@  File: hledger_journal.5.info,  Node: apply account directive,  Next: Multi-line comments,  Prev: account directive,  Up: Directives -1.10.3 apply account directive+1.11.3 apply account directive ------------------------------  You can specify a parent account which will be prepended to all accounts@@ -794,7 +833,7 @@  File: hledger_journal.5.info,  Node: Multi-line comments,  Next: commodity directive,  Prev: apply account directive,  Up: Directives -1.10.4 Multi-line comments+1.11.4 Multi-line comments --------------------------  A line containing just `comment' starts a multi-line comment, and a@@ -803,7 +842,7 @@  File: hledger_journal.5.info,  Node: commodity directive,  Next: Default commodity,  Prev: Multi-line comments,  Up: Directives -1.10.5 commodity directive+1.11.5 commodity directive --------------------------  The `commodity' directive predefines commodities (currently this is@@ -838,7 +877,7 @@  File: hledger_journal.5.info,  Node: Default commodity,  Next: Default year,  Prev: commodity directive,  Up: Directives -1.10.6 Default commodity+1.11.6 Default commodity ------------------------  The D directive sets a default commodity (and display format), to be@@ -859,7 +898,7 @@  File: hledger_journal.5.info,  Node: Default year,  Next: Including other files,  Prev: Default commodity,  Up: Directives -1.10.7 Default year+1.11.7 Default year -------------------  You can set a default year to be used for subsequent dates which don't@@ -886,7 +925,7 @@  File: hledger_journal.5.info,  Node: Including other files,  Prev: Default year,  Up: Directives -1.10.8 Including other files+1.11.8 Including other files ----------------------------  You can pull in the content of additional journal files by writing an@@ -927,69 +966,71 @@ Node: Top94 Node: FILE FORMAT2284 Ref: #file-format2410-Node: Transactions2569-Ref: #transactions2689-Node: Dates3632-Ref: #dates3760-Node: Simple dates3825-Ref: #simple-dates3953-Node: Secondary dates4317-Ref: #secondary-dates4473-Node: Posting dates6033-Ref: #posting-dates6164-Node: Account names7535-Ref: #account-names7674-Node: Amounts8159-Ref: #amounts8297-Node: Virtual Postings10295-Ref: #virtual-postings10456-Node: Balance Assertions11676-Ref: #balance-assertions11840-Node: Assertions and ordering12662-Ref: #assertions-and-ordering12847-Node: Assertions and commodities13878-Ref: #assertions-and-commodities14104-Node: Assertions and subaccounts14796-Ref: #assertions-and-subaccounts15030-Node: Assertions and virtual postings15552-Ref: #assertions-and-virtual-postings15761-Node: Prices15902-Ref: #prices16034-Node: Transaction prices16085-Ref: #transaction-prices16230-Node: Market prices17837-Ref: #market-prices17972-Node: Comments18860-Ref: #comments18982-Node: Tags20094-Ref: #tags20212-Node: Directives21135-Ref: #directives21250-Node: Account aliases21443-Ref: #account-aliases21589-Node: Basic aliases22191-Ref: #basic-aliases22336-Node: Regex aliases23024-Ref: #regex-aliases23194-Node: Multiple aliases23964-Ref: #multiple-aliases24138-Node: end aliases24634-Ref: #end-aliases24776-Node: account directive24878-Ref: #account-directive25060-Node: apply account directive25356-Ref: #apply-account-directive25554-Node: Multi-line comments26214-Ref: #multi-line-comments26406-Node: commodity directive26533-Ref: #commodity-directive26719-Node: Default commodity27592-Ref: #default-commodity27767-Node: Default year28303-Ref: #default-year28470-Node: Including other files28893-Ref: #including-other-files29052-Node: EDITOR SUPPORT29448-Ref: #editor-support29568+Node: Transactions2593+Ref: #transactions2713+Node: Dates3656+Ref: #dates3784+Node: Simple dates3849+Ref: #simple-dates3977+Node: Secondary dates4341+Ref: #secondary-dates4497+Node: Posting dates6057+Ref: #posting-dates6188+Node: Account names7559+Ref: #account-names7698+Node: Amounts8183+Ref: #amounts8321+Node: Virtual Postings10420+Ref: #virtual-postings10581+Node: Balance Assertions11801+Ref: #balance-assertions11978+Node: Assertions and ordering12800+Ref: #assertions-and-ordering12985+Node: Assertions and commodities14016+Ref: #assertions-and-commodities14242+Node: Assertions and subaccounts14934+Ref: #assertions-and-subaccounts15168+Node: Assertions and virtual postings15690+Ref: #assertions-and-virtual-postings15899+Node: Balance Assignments16040+Ref: #balance-assignments16209+Node: Prices17327+Ref: #prices17460+Node: Transaction prices17511+Ref: #transaction-prices17656+Node: Market prices19236+Ref: #market-prices19371+Node: Comments20371+Ref: #comments20493+Node: Tags21605+Ref: #tags21725+Node: Directives22648+Ref: #directives22763+Node: Account aliases22956+Ref: #account-aliases23102+Node: Basic aliases23704+Ref: #basic-aliases23849+Node: Regex aliases24537+Ref: #regex-aliases24707+Node: Multiple aliases25477+Ref: #multiple-aliases25651+Node: end aliases26147+Ref: #end-aliases26289+Node: account directive26391+Ref: #account-directive26573+Node: apply account directive26869+Ref: #apply-account-directive27067+Node: Multi-line comments27727+Ref: #multi-line-comments27919+Node: commodity directive28046+Ref: #commodity-directive28232+Node: Default commodity29105+Ref: #default-commodity29280+Node: Default year29816+Ref: #default-year29983+Node: Including other files30406+Ref: #including-other-files30565+Node: EDITOR SUPPORT30961+Ref: #editor-support31081  End Tag Table
doc/other/hledger_journal.5.txt view
@@ -187,8 +187,10 @@        o amounts  are a number (the "quantity") and optionally a currency sym-          bol/commodity name (the "commodity"). -       o the commodity is a symbol, word, or double-quoted phrase, on the left-         or right, with or without a separating space+       o the commodity is a symbol, word, or phrase, on  the  left  or  right,+         with  or  without a separating space.  If the commodity contains num-+         bers, spaces or non-word punctuation it must be  enclosed  in  double+         quotes.         o negative amounts with a commodity on the left can have the minus sign          before or after it@@ -251,7 +253,7 @@        more correct and provides better error checking.     Balance Assertions-       hledger supports ledger-style  balance  assertions  in  journal  files.+       hledger supports Ledger-style  balance  assertions  in  journal  files.        These  look  like =EXPECTEDBALANCE following a posting's amount.  Eg in        this example we assert the expected dollar balance in accounts a and  b        after each posting:@@ -327,21 +329,49 @@        Balance assertions are checked against all postings, both real and vir-        tual.  They are not affected by the --real/-R flag or real: query. +   Balance Assignments+       Ledger-style  balance  assignments  are also supported.  These are like+       balance assertions, but with no posting amount on the left side of  the+       equals  sign;  instead  it is calculated automatically so as to satisfy+       the assertion.  This can be a convenience during data  entry,  eg  when+       setting opening balances:++              ; starting a new journal, set asset account balances+              2016/1/1 opening balances+                assets:checking            = $409.32+                assets:savings             = $735.24+                assets:cash                 = $42+                equity:opening balances++       or when adjusting a balance to reality:++              ; no cash left; update balance, record any untracked spending as a generic expense+              2016/1/15+                assets:cash    = $0+                expenses:misc++       The calculated amount depends on the account's balance in the commodity+       at that point (which depends on the previously-dated  postings  of  the+       commodity  to  that account since the last balance assertion or assign-+       ment).  Note that using balance assignments makes your journal a little+       less explicit; to know the exact amount posted, you have to run hledger+       or do the calculations yourself, instead of just reading it.+    Prices    Transaction prices-       When  recording a transaction, you can also record an amount's price in-       another commodity.  This documents the exchange rate, cost (of  a  pur--       chase),  or  selling  price  (of a sale) that was in effect within this-       particular transaction (or more precisely, within the particular  post--       ing).  These transaction prices are fixed, and do not change.+       Within a transaction posting, you  can  record  an  amount's  price  in+       another  commodity.   This can be used to document the cost (for a pur-+       chase), or selling price (for a sale), or the exchange  rate  that  was+       used, for this transaction.  These transaction prices are fixed, and do+       not change over time. -       Such  priced amounts can be displayed in their transaction price's com--       modity, by using the --cost/-B flag (B for "cost Basis"), supported  by-       most hledger commands.+       Amounts with transaction prices can be  displayed  in  the  transaction+       price's  commodity,  by  using  the  --cost/-B  flag  supported by most+       hledger commands (mnemonic: "cost Basis"). -       There are three ways to specify a transaction price:+       There are several ways to record a transaction price: -       1. Write  the  unit price (aka exchange rate), as @ UNITPRICE after the+       1. Write the unit price (aka exchange rate), as @ UNITPRICE  after  the           amount:                    2009/1/1@@ -355,7 +385,7 @@                     assets:cash         3. Or let hledger infer the price so as to balance the transaction.  To-          permit  this,  you must fully specify all posting amounts, and their+          permit this, you must fully specify all posting amounts,  and  their           sum must have a non-zero amount in exactly two commodities:                    2009/1/1@@ -369,46 +399,46 @@                   assets:foreign currency       $135.00                   assets:cash                  $-135.00 -       Example use for transaction prices: recording the effective  conversion+       Example  use for transaction prices: recording the effective conversion        rate of purchases made in a foreign currency.     Market prices-       Market  prices are not tied to a particular transaction; they represent-       historical exchange rates between two commodities,  usually  from  some-       public market which publishes such rates.+       Market prices are not tied to a particular transaction; they  represent+       historical  exchange rates between two commodities.  (Ledger calls them+       historical prices.) For  example,  the  prices  published  by  a  stock+       exchange  or the foreign exchange market.  Some commands (balance, cur-+       rently) can use this information to show the market value of things  at+       a given date. -       When  market  prices  are known, the -V/--value option will use them to-       convert reported amounts to their market value as  of  the  report  end-       date.   This  option  is currently available only with the balance com--       mand.+       To  record market prices, use P directives in the main journal or in an+       included file.  Their format is: -       You record market prices (Ledger calls them historical prices) with a P-       directive, in the journal or perhaps in a separate included file.  Mar--       ket price directives have the format:+              P DATE COMMODITYBEINGPRICED UNITPRICE -              P DATE COMMODITYSYMBOL UNITPRICE+       DATE is a simple date as usual.  COMMODITYBEINGPRICED is the symbol  of+       the  commodity  being priced (just the symbol, no quantity).  UNITPRICE+       is an ordinary amount (symbol and  quantity)  in  a  second  commodity,+       specifying the unit price or conversion rate for the first commodity in+       terms of the second, on the given date. -       For example, the following directives say that the euro's exchange rate-       was  1.35  US  dollars  during  2009,  and  $1.40 from 2010 onward (and-       unknown before 2009).+       For example, the following directives say that one euro was worth  1.35+       US dollars during 2009, and $1.40 from 2010 onward:                P 2009/1/1  $1.35               P 2010/1/1  $1.40 -       Example use for market prices: tracking the value of stocks.-    Comments-       Lines in the journal beginning with a semicolon  (;)  or  hash  (#)  or-       asterisk  (*)  are  comments,  and will be ignored.  (Asterisk comments-       make it easy to treat your journal like an org-mode outline in  emacs.)+       Lines  in  the  journal  beginning  with a semicolon (;) or hash (#) or+       asterisk (*) are comments, and will  be  ignored.   (Asterisk  comments+       make  it easy to treat your journal like an org-mode outline in emacs.) -       Also,   anything  between  comment  and  end comment  directives  is  a-       (multi-line) comment.  If there is no end comment, the comment  extends+       Also,  anything  between  comment  and  end comment  directives  is   a+       (multi-line)  comment.  If there is no end comment, the comment extends        to the end of the file. -       You  can  attach  comments  to  a transaction by writing them after the-       description and/or indented on the following lines  (before  the  post--       ings).   Similarly, you can attach comments to an individual posting by+       You can attach comments to a transaction  by  writing  them  after  the+       description  and/or  indented  on the following lines (before the post-+       ings).  Similarly, you can attach comments to an individual posting  by        writing them after the amount and/or indented on the following lines.         Some examples:@@ -433,30 +463,30 @@               ; a journal comment (because not indented)     Tags-       A tag is a word followed by a full colon inside a transaction or  post--       ing  comment.   You  can  write  multiple  tags,  comma separated.  Eg:-       ; a comment containing sometag:, anothertag:.  You can search for  tags+       A  tag is a word followed by a full colon inside a transaction or post-+       ing comment.  You  can  write  multiple  tags,  comma  separated.   Eg:+       ; a comment containing sometag:, anothertag:.   You can search for tags        with the tag: query. -       A  tag  can  also have a value, which is any text between the colon and-       the next comma or newline, excluding leading/trailing whitespace.   (So+       A tag can also have a value, which is any text between  the  colon  and+       the  next comma or newline, excluding leading/trailing whitespace.  (So        hledger tag values can not contain commas or newlines). -       Tags  in  a  transaction  comment affect the transaction and all of its-       postings, while tags in a posting comment  affect  only  that  posting.-       For  example,  the  following  transaction  has  three  tags  (A, TAG2,+       Tags in a transaction comment affect the transaction  and  all  of  its+       postings,  while  tags  in  a posting comment affect only that posting.+       For example,  the  following  transaction  has  three  tags  (A,  TAG2,        third-tag) and the posting has four (A, TAG2, third-tag, posting-tag):                1/1 a transaction  ; A:, TAG2:                   ; third-tag: a third transaction tag, this time with a value                   (a)  $1  ; posting-tag: -       Tags are like Ledger's metadata feature, except  hledger's  tag  values+       Tags  are  like  Ledger's metadata feature, except hledger's tag values        are simple strings.     Directives    Account aliases-       You  can define aliases which rewrite your account names (after reading+       You can define aliases which rewrite your account names (after  reading        the journal, before generating reports).  hledger's account aliases can        be useful for: @@ -473,8 +503,8 @@        See also How to use account aliases.     Basic aliases-       To  set an account alias, use the alias directive in your journal file.-       This affects all subsequent journal entries in the current file or  its+       To set an account alias, use the alias directive in your journal  file.+       This  affects all subsequent journal entries in the current file or its        included files.  The spaces around the = are optional:                alias OLD = NEW@@ -482,53 +512,53 @@        Or, you can use the --alias 'OLD=NEW' option on the command line.  This        affects all entries.  It's useful for trying out aliases interactively. -       OLD  and  NEW  are full account names.  hledger will replace any occur--       rence of the old account name with the new one.  Subaccounts  are  also+       OLD and NEW are full account names.  hledger will  replace  any  occur-+       rence  of  the old account name with the new one.  Subaccounts are also        affected.  Eg:                alias checking = assets:bank:wells fargo:checking               # rewrites "checking" to "assets:bank:wells fargo:checking", or "checking:a" to "assets:bank:wells fargo:checking:a"     Regex aliases-       There  is  also a more powerful variant that uses a regular expression,-       indicated by the forward slashes.  (This was the default  behaviour  in+       There is also a more powerful variant that uses a  regular  expression,+       indicated  by  the forward slashes.  (This was the default behaviour in        hledger 0.24-0.25):                alias /REGEX/ = REPLACEMENT         or --alias '/REGEX/=REPLACEMENT'. -       REGEX  is  a  case-insensitive regular expression.  Anywhere it matches-       inside an account name, the matched part will be replaced  by  REPLACE--       MENT.   If REGEX contains parenthesised match groups, these can be ref-+       REGEX is a case-insensitive regular expression.   Anywhere  it  matches+       inside  an  account name, the matched part will be replaced by REPLACE-+       MENT.  If REGEX contains parenthesised match groups, these can be  ref-        erenced by the usual numeric backreferences in REPLACEMENT.  Note, cur--       rently  regular  expression  aliases  may  cause noticeable slow-downs.+       rently regular expression  aliases  may  cause  noticeable  slow-downs.        (And if you use Ledger on your hledger file, they will be ignored.) Eg:                alias /^(.+):bank:([^:]+)(.*)/ = \1:\2 \3               # rewrites "assets:bank:wells fargo:checking" to  "assets:wells fargo checking"     Multiple aliases-       You  can  define  as  many aliases as you like using directives or com--       mand-line options.  Aliases are recursive - each alias sees the  result-       of  applying  previous  ones.   (This  is  different from Ledger, where+       You can define as many aliases as you like  using  directives  or  com-+       mand-line  options.  Aliases are recursive - each alias sees the result+       of applying previous ones.   (This  is  different  from  Ledger,  where        aliases are non-recursive by default).  Aliases are applied in the fol-        lowing order: -       1. alias  directives,  most recently seen first (recent directives take+       1. alias directives, most recently seen first (recent  directives  take           precedence over earlier ones; directives not yet seen are ignored)         2. alias options, in the order they appear on the command line     end aliases-       You  can  clear  (forget)  all  currently  defined  aliases  with   the+       You   can  clear  (forget)  all  currently  defined  aliases  with  the        end aliases directive:                end aliases     account directive-       The  account directive predefines account names, as in Ledger and Bean--       count.  This may be useful for your own documentation; hledger  doesn't+       The account directive predefines account names, as in Ledger and  Bean-+       count.   This may be useful for your own documentation; hledger doesn't        make use of it yet.                ; account ACCT@@ -543,8 +573,8 @@               ; etc.     apply account directive-       You  can  specify  a  parent  account  which  will  be prepended to all-       accounts within a section of the journal.  Use  the  apply account  and+       You can specify a  parent  account  which  will  be  prepended  to  all+       accounts  within  a  section of the journal.  Use the apply account and        end apply account directives like so:                apply account home@@ -561,7 +591,7 @@                   home:food           $10                   home:cash          $-10 -       If  end apply account  is  omitted,  the effect lasts to the end of the+       If end apply account is omitted, the effect lasts to  the  end  of  the        file.  Included files are also affected, eg:                apply account business@@ -570,16 +600,16 @@               apply account personal               include personal.journal -       Prior to hledger 1.0, legacy account and end spellings were  also  sup-+       Prior  to  hledger 1.0, legacy account and end spellings were also sup-        ported.     Multi-line comments-       A  line containing just comment starts a multi-line comment, and a line+       A line containing just comment starts a multi-line comment, and a  line        containing just end comment ends it.  See comments.     commodity directive-       The commodity directive predefines commodities (currently this is  just-       informational),  and  also it may define the display format for amounts+       The  commodity directive predefines commodities (currently this is just+       informational), and also it may define the display format  for  amounts        in this commodity (overriding the automatically inferred format).         It may be written on a single line, like this:@@ -591,8 +621,8 @@               ; separating thousands with comma.               commodity 1,000.0000 AAAA -       or on multiple lines, using the "format" subdirective.   In  this  case-       the  commodity  symbol  appears  twice  and  should be the same in both+       or  on  multiple  lines, using the "format" subdirective.  In this case+       the commodity symbol appears twice and  should  be  the  same  in  both        places:                ; commodity SYMBOL@@ -605,10 +635,10 @@                 format INR 9,99,99,999.00     Default commodity-       The D directive sets a default commodity (and display  format),  to  be+       The  D  directive  sets a default commodity (and display format), to be        used for amounts without a commodity symbol (ie, plain numbers).  (Note-       this differs from Ledger's default commodity directive.) The  commodity-       and  display  format  will  be applied to all subsequent commodity-less+       this  differs from Ledger's default commodity directive.) The commodity+       and display format will be applied  to  all  subsequent  commodity-less        amounts, or until the next D directive.                # commodity-less amounts should be treated as dollars@@ -620,8 +650,8 @@                 b     Default year-       You can set a default year to be used for subsequent dates which  don't-       specify  a year.  This is a line beginning with Y followed by the year.+       You  can set a default year to be used for subsequent dates which don't+       specify a year.  This is a line beginning with Y followed by the  year.        Eg:                Y2009      ; set default year to 2009@@ -641,24 +671,24 @@                 assets     Including other files-       You can pull in the content of additional journal files by  writing  an+       You  can  pull in the content of additional journal files by writing an        include directive, like this:                include path/to/file.journal -       If  the path does not begin with a slash, it is relative to the current+       If the path does not begin with a slash, it is relative to the  current        file.  Glob patterns (*) are not currently supported. -       The include directive can only  be  used  in  journal  files.   It  can+       The  include  directive  can  only  be  used  in journal files.  It can        include journal, timeclock or timedot files, but not CSV files.  EDITOR SUPPORT        Add-on modes exist for various text editors, to make working with jour--       nal files easier.  They add colour, navigation aids  and  helpful  com--       mands.   For  hledger  users  who  edit  the journal file directly (the+       nal  files  easier.   They add colour, navigation aids and helpful com-+       mands.  For hledger users who  edit  the  journal  file  directly  (the        majority), using one of these modes is quite recommended. -       These were written with Ledger in mind,  but  also  work  with  hledger+       These  were  written  with  Ledger  in mind, but also work with hledger        files:  @@ -675,7 +705,7 @@   REPORTING BUGS-       Report  bugs at http://bugs.hledger.org (or on the #hledger IRC channel+       Report bugs at http://bugs.hledger.org (or on the #hledger IRC  channel        or hledger mail list)  @@ -689,7 +719,7 @@   SEE ALSO-       hledger(1),     hledger-ui(1),     hledger-web(1),      hledger-api(1),+       hledger(1),      hledger-ui(1),     hledger-web(1),     hledger-api(1),        hledger_csv(5), hledger_journal(5), hledger_timeclock(5), hledger_time-        dot(5), ledger(1) @@ -697,4 +727,4 @@   -hledger 1.0                      October 2016               hledger_journal(5)+hledger 1.1                      December 2016              hledger_journal(5)
doc/other/hledger_timeclock.5 view
@@ -1,5 +1,5 @@ -.TH "hledger_timeclock" "5" "October 2016" "hledger 1.0" "hledger User Manuals"+.TH "hledger_timeclock" "5" "December 2016" "hledger 1.1" "hledger User Manuals"   
doc/other/hledger_timeclock.5.info view
@@ -4,7 +4,7 @@  File: hledger_timeclock.5.info,  Node: Top,  Up: (dir) -hledger_timeclock(5) hledger 1.0+hledger_timeclock(5) hledger 1.1 ********************************  hledger can read timeclock files. As with Ledger, these are (a subset
doc/other/hledger_timeclock.5.txt view
@@ -79,4 +79,4 @@   -hledger 1.0                      October 2016             hledger_timeclock(5)+hledger 1.1                      December 2016            hledger_timeclock(5)
doc/other/hledger_timedot.5 view
@@ -1,5 +1,5 @@ -.TH "hledger_timedot" "5" "October 2016" "hledger 1.0" "hledger User Manuals"+.TH "hledger_timedot" "5" "December 2016" "hledger 1.1" "hledger User Manuals"   
doc/other/hledger_timedot.5.info view
@@ -4,7 +4,7 @@  File: hledger_timedot.5.info,  Node: Top,  Up: (dir) -hledger_timedot(5) hledger 1.0+hledger_timedot(5) hledger 1.1 ******************************  Timedot is a plain text format for logging dated, categorised quantities
doc/other/hledger_timedot.5.txt view
@@ -120,4 +120,4 @@   -hledger 1.0                      October 2016               hledger_timedot(5)+hledger 1.1                      December 2016              hledger_timedot(5)
hledger.cabal view
@@ -1,9 +1,9 @@--- This file has been generated from package.yaml by hpack version 0.14.0.+-- This file has been generated from package.yaml by hpack version 0.15.0. -- -- see: https://github.com/sol/hpack  name:           hledger-version:        1.0.1+version:        1.1 stability:      stable category:       Finance, Console synopsis:       Command-line interface for the hledger accounting tool@@ -80,9 +80,9 @@  library   ghc-options: -Wall -fno-warn-unused-do-bind -fno-warn-name-shadowing -fno-warn-missing-signatures -fno-warn-type-defaults -fno-warn-orphans-  cpp-options: -DVERSION="1.0.1"+  cpp-options: -DVERSION="1.1"   build-depends:-      base >=4.3 && <5+      base >=4.8 && <5     , base-compat >=0.8.1     , directory     , file-embed >=0.0.10 && <0.1@@ -91,7 +91,7 @@     , process     , temporary     , tabular >=0.2 && <0.3-    , hledger-lib ==1.0.1+    , hledger-lib >= 1.1 && < 1.2     , bytestring     , containers     , unordered-containers@@ -163,9 +163,9 @@   hs-source-dirs:       app   ghc-options: -Wall -fno-warn-unused-do-bind -fno-warn-name-shadowing -fno-warn-missing-signatures -fno-warn-type-defaults -fno-warn-orphans-  cpp-options: -DVERSION="1.0.1"+  cpp-options: -DVERSION="1.1"   build-depends:-      base >=4.3 && <5+      base >=4.8 && <5     , base-compat >=0.8.1     , directory     , file-embed >=0.0.10 && <0.1@@ -174,8 +174,8 @@     , process     , temporary     , tabular >=0.2 && <0.3-    , hledger-lib >= 1.0.1-    , hledger >= 1.0.1+    , hledger-lib >= 1.1 && < 1.2+    , hledger == 1.1     , bytestring     , containers     , unordered-containers@@ -209,7 +209,7 @@   if flag(oldtime)     build-depends:         time <1.5-      , oldtime+      , old-locale   else     build-depends:         time >=1.5@@ -224,9 +224,9 @@   hs-source-dirs:       test   ghc-options: -Wall -fno-warn-unused-do-bind -fno-warn-name-shadowing -fno-warn-missing-signatures -fno-warn-type-defaults -fno-warn-orphans-  cpp-options: -DVERSION="1.0.1"+  cpp-options: -DVERSION="1.1"   build-depends:-      base >=4.3 && <5+      base >=4.8 && <5     , base-compat >=0.8.1     , directory     , file-embed >=0.0.10 && <0.1@@ -235,8 +235,8 @@     , process     , temporary     , tabular >=0.2 && <0.3-    , hledger-lib ==1.0.1-    , hledger+    , hledger-lib >= 1.1 && < 1.2+    , hledger == 1.1     , bytestring     , containers     , unordered-containers@@ -270,7 +270,7 @@   if flag(oldtime)     build-depends:         time <1.5-      , oldtime+      , old-locale   else     build-depends:         time >=1.5@@ -287,7 +287,7 @@   ghc-options: -Wall -fno-warn-unused-do-bind -fno-warn-name-shadowing -fno-warn-missing-signatures -fno-warn-type-defaults -fno-warn-orphans   default-language: Haskell2010   build-depends:-      base >=4.3 && <5+      base >=4.8 && <5     , base-compat >=0.8.1     , directory     , file-embed >=0.0.10 && <0.1@@ -296,15 +296,15 @@     , process     , temporary     , tabular >=0.2 && <0.3-    , hledger-lib-    , hledger+    , hledger-lib >= 1.1 && < 1.2+    , hledger == 1.1     , criterion     , html     , timeit   if flag(oldtime)     build-depends:         time <1.5-      , oldtime+      , old-locale   else     build-depends:         time >=1.5