summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/ledger3.texi2
-rw-r--r--lisp/ledger-occur.el2
-rw-r--r--src/filters.cc2
-rw-r--r--test/regress/730.test37
4 files changed, 40 insertions, 3 deletions
diff --git a/doc/ledger3.texi b/doc/ledger3.texi
index 05420295..22bab2af 100644
--- a/doc/ledger3.texi
+++ b/doc/ledger3.texi
@@ -5252,7 +5252,7 @@ Say you currently have this posting in your ledger file:
Liabilities:MasterCard $-15.00
@end smallexample
-Now it's @samp{2004/4/9}, and you've just eating at @samp{Viva Italiano}
+Now it's @samp{2004/4/9}, and you've just eaten at @samp{Viva Italiano}
again. The exact amounts are different, but the overall form is the
same. With the @command{xact} command you can type:
diff --git a/lisp/ledger-occur.el b/lisp/ledger-occur.el
index 3174144e..1df4e7a0 100644
--- a/lisp/ledger-occur.el
+++ b/lisp/ledger-occur.el
@@ -55,7 +55,7 @@
nil
(:eval (format " Ledger-Narrow(%s)" ledger-occur-current-regex))
ledger-occur-mode-map
- (if ledger-occur-mode
+ (if (and ledger-occur-current-regex ledger-occur-mode)
(ledger-occur-refresh)
(ledger-occur-remove-overlays)
(message "Showing all transactions")))
diff --git a/src/filters.cc b/src/filters.cc
index bdc2983b..d24188f5 100644
--- a/src/filters.cc
+++ b/src/filters.cc
@@ -983,7 +983,7 @@ void interval_posts::flush()
sort_posts_by_date());
// Determine the beginning interval by using the earliest post
- if (all_posts.front() &&
+ if (all_posts.size() > 0 && all_posts.front() &&
! interval.find_period(all_posts.front()->date()))
throw_(std::logic_error, _("Failed to find period for interval report"));
diff --git a/test/regress/730.test b/test/regress/730.test
new file mode 100644
index 00000000..d81a1c22
--- /dev/null
+++ b/test/regress/730.test
@@ -0,0 +1,37 @@
+; Using -M in combination with an empty result causes a segmentation fault
+; therefore this test case does not have or need any test data
+
+test -f /dev/null -M reg
+end test
+
+; Tests mentioned in #730
+test reg -M
+end test
+
+test reg -M .foo
+end test
+
+test reg -M -e 2012/01
+end test
+
+
+; Tests mentioned in #1080
+test reg '^Expenses' and expr 'any(account =~ /^Assets:Cash/)' --period 'every week this month'
+end test
+
+test bal '^Expenses' and expr 'any(account =~ /^Assets:Cash/)' --period 'every week this month'
+end test
+
+test bal reg foo and expr 'any(account =~ /bar/)' --period 'every week'
+end test
+
+
+; Tests mentioned in #1084
+test b abc -M
+end test
+
+test reg foo -M
+end test
+
+test bal foo -M
+end test