summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--INSTALL.md2
-rw-r--r--README.md2
-rwxr-xr-xacprep16
-rw-r--r--doc/NEWS3
-rw-r--r--src/annotate.cc4
-rw-r--r--src/commodity.cc4
-rw-r--r--src/context.h28
-rw-r--r--src/error.cc10
-rw-r--r--src/error.h10
-rw-r--r--src/expr.cc14
-rw-r--r--src/format.cc4
-rw-r--r--src/item.h14
-rw-r--r--src/op.cc4
-rw-r--r--src/op.h22
-rw-r--r--src/py_post.cc5
-rw-r--r--src/quotes.cc7
-rw-r--r--src/system.hh.in32
-rw-r--r--src/textual.cc10
-rw-r--r--src/token.cc4
-rw-r--r--src/xact.cc8
-rw-r--r--test/CMakeLists.txt4
-rw-r--r--test/regress/1723.test5
-rw-r--r--test/regress/25A099C9.dat (renamed from test/garbage-input.dat)0
-rw-r--r--test/regress/25A099C9.test60
-rw-r--r--test/unit/CMakeLists.txt3
-rwxr-xr-xtools/update_copyright_year.sh4
26 files changed, 126 insertions, 153 deletions
diff --git a/INSTALL.md b/INSTALL.md
index a366dbfd..1d5bedba 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -57,7 +57,7 @@ A: You're probably missing some dependency libraries. If you tried
libboost-date-time-dev libboost-filesystem-dev \
libboost-graph-dev libboost-iostreams-dev \
libboost-python-dev libboost-regex-dev libboost-test-dev \
- doxygen libedit-dev libmpc-dev
+ doxygen libedit-dev libmpc-dev tzdata
----------------------------------------------------------------------
diff --git a/README.md b/README.md
index 1b0c3ba9..de083f7e 100644
--- a/README.md
+++ b/README.md
@@ -120,7 +120,7 @@ following packages (current as of Ubuntu 18.04):
libboost-system-dev libboost-dev python-dev gettext git \
libboost-date-time-dev libboost-filesystem-dev \
libboost-iostreams-dev libboost-python-dev libboost-regex-dev \
- libboost-test-dev libedit-dev libgmp3-dev libmpfr-dev texinfo
+ libboost-test-dev libedit-dev libgmp3-dev libmpfr-dev texinfo tzdata
### Debian
diff --git a/acprep b/acprep
index a6f34cad..c5b4c203 100755
--- a/acprep
+++ b/acprep
@@ -53,16 +53,17 @@ def which(program):
class BoostInfo(object):
def dependencies(self, system):
- if system == 'darwin-homebrew':
+ if system in ['darwin-homebrew']:
return [ 'boost' ]
- if system == 'darwin-macports':
+ if system in ['darwin-macports']:
return [ 'boost-jam', 'boost', '+python27+universal' ]
- if system == 'centos':
+ if system in ['centos']:
return [ 'boost-devel' ]
- elif system == 'ubuntu-bionic' or system == 'ubuntu-xenial' or system == 'ubuntu-trusty':
+ elif system in ['ubuntu-bionic', 'ubuntu-xenial',
+ 'ubuntu-trusty', 'ubuntu-cosmic']:
return [ 'libboost-dev',
'libboost-date-time-dev',
'libboost-filesystem-dev',
@@ -70,9 +71,10 @@ class BoostInfo(object):
'libboost-python-dev',
'libboost-regex-dev',
'libboost-system-dev',
- 'libboost-test-dev' ]
+ 'libboost-test-dev',
+ 'tzdata' ]
- elif system == 'ubuntu-saucy' or system == 'ubuntu-precise':
+ elif system in [ 'ubuntu-saucy', 'ubuntu-precise']:
return [ 'autopoint',
'libboost-dev',
'libboost-test-dev',
@@ -82,7 +84,7 @@ class BoostInfo(object):
'libboost-iostreams-dev',
'libboost-python-dev' ]
- elif system == 'ubuntu-lucid':
+ elif system in ['ubuntu-lucid']:
return [ 'bjam', 'autopoint',
'libboost-dev',
'libboost-regex-dev',
diff --git a/doc/NEWS b/doc/NEWS
index 80617b08..5152ad7c 100644
--- a/doc/NEWS
+++ b/doc/NEWS
@@ -45,6 +45,9 @@
- Fix parsing issue of effective dates (bug #1722, TALOS-2017-0303,
CVE-2017-2807)
+- Fix use-after-free issue with deferred postings (bug #1723, TALOS-2017-0304,
+ CVE-2017-2808)
+
- Python: Removed double quotes from Unicode values.
- Python: Ensure that parse errors produce useful RuntimeErrors
diff --git a/src/annotate.cc b/src/annotate.cc
index ab81d412..c5ccdf07 100644
--- a/src/annotate.cc
+++ b/src/annotate.cc
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003-2018, John Wiegley. All rights reserved.
+ * Copyright (c) 2003-2019, John Wiegley. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -81,7 +81,7 @@ bool annotation_t::operator<(const annotation_t& rhs) const
void annotation_t::parse(std::istream& in)
{
do {
- istream_pos_type pos = in.tellg();
+ std::istream::pos_type pos = in.tellg();
if (static_cast<int>(pos) < 0)
return;
diff --git a/src/commodity.cc b/src/commodity.cc
index a8520ca1..d6d5ca98 100644
--- a/src/commodity.cc
+++ b/src/commodity.cc
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003-2018, John Wiegley. All rights reserved.
+ * Copyright (c) 2003-2019, John Wiegley. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -294,7 +294,7 @@ bool commodity_t::symbol_needs_quotes(const string& symbol)
void commodity_t::parse_symbol(std::istream& in, string& symbol)
{
- istream_pos_type pos = in.tellg();
+ std::istream::pos_type pos = in.tellg();
char buf[256];
char c = peek_next_nonws(in);
diff --git a/src/context.h b/src/context.h
index 0af59930..aba3a60e 100644
--- a/src/context.h
+++ b/src/context.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003-2018, John Wiegley. All rights reserved.
+ * Copyright (c) 2003-2019, John Wiegley. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -58,19 +58,19 @@ public:
shared_ptr<std::istream> stream;
- path pathname;
- path current_directory;
- journal_t * journal;
- account_t * master;
- scope_t * scope;
- char linebuf[MAX_LINE + 1];
- istream_pos_type line_beg_pos;
- istream_pos_type curr_pos;
- std::size_t linenum;
- std::size_t errors;
- std::size_t count;
- std::size_t sequence;
- std::string last;
+ path pathname;
+ path current_directory;
+ journal_t * journal;
+ account_t * master;
+ scope_t * scope;
+ char linebuf[MAX_LINE + 1];
+ std::istream::pos_type line_beg_pos;
+ std::istream::pos_type curr_pos;
+ std::size_t linenum;
+ std::size_t errors;
+ std::size_t count;
+ std::size_t sequence;
+ std::string last;
explicit parse_context_t(const path& cwd)
: current_directory(cwd), master(NULL), scope(NULL),
diff --git a/src/error.cc b/src/error.cc
index 7e49645b..1ab92840 100644
--- a/src/error.cc
+++ b/src/error.cc
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003-2018, John Wiegley. All rights reserved.
+ * Copyright (c) 2003-2019, John Wiegley. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -78,10 +78,10 @@ string line_context(const string& line,
return buf.str();
}
-string source_context(const path& file,
- const istream_pos_type pos,
- const istream_pos_type end_pos,
- const string& prefix)
+string source_context(const path& file,
+ const std::istream::pos_type pos,
+ const std::istream::pos_type end_pos,
+ const string& prefix)
{
const std::streamoff len = end_pos - pos;
if (! len || file.empty())
diff --git a/src/error.h b/src/error.h
index bc9953cd..3bdcde98 100644
--- a/src/error.h
+++ b/src/error.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003-2018, John Wiegley. All rights reserved.
+ * Copyright (c) 2003-2019, John Wiegley. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -81,10 +81,10 @@ string line_context(const string& line,
const string::size_type pos = 0,
const string::size_type end_pos = 0);
-string source_context(const path& file,
- const istream_pos_type pos,
- const istream_pos_type end_pos,
- const string& prefix = "");
+string source_context(const path& file,
+ const std::istream::pos_type pos,
+ const std::istream::pos_type end_pos,
+ const string& prefix = "");
#define DECLARE_EXCEPTION(name, kind) \
class name : public kind { \
diff --git a/src/expr.cc b/src/expr.cc
index 85818e4b..c8945d3d 100644
--- a/src/expr.cc
+++ b/src/expr.cc
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003-2018, John Wiegley. All rights reserved.
+ * Copyright (c) 2003-2019, John Wiegley. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -94,9 +94,9 @@ void expr_t::parse(std::istream& in, const parse_flags_t& flags,
const optional<string>& original_string)
{
parser_t parser;
- istream_pos_type start_pos = in.tellg();
+ std::istream::pos_type start_pos = in.tellg();
ptr = parser.parse(in, flags, original_string);
- istream_pos_type end_pos = in.tellg();
+ std::istream::pos_type end_pos = in.tellg();
if (original_string) {
set_text(*original_string);
@@ -290,10 +290,10 @@ value_t source_command(call_scope_t& args)
in = &std::cin;
}
- symbol_scope_t file_locals(args);
- std::size_t linenum = 0;
- char buf[4096];
- istream_pos_type pos;
+ symbol_scope_t file_locals(args);
+ std::size_t linenum = 0;
+ char buf[4096];
+ std::istream::pos_type pos;
while (in->good() && ! in->eof()) {
pos = in->tellg();
diff --git a/src/format.cc b/src/format.cc
index bb578141..5b9baa21 100644
--- a/src/format.cc
+++ b/src/format.cc
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003-2018, John Wiegley. All rights reserved.
+ * Copyright (c) 2003-2019, John Wiegley. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -103,7 +103,7 @@ namespace {
p += std::strlen(p);
} else {
assert(str.good());
- istream_pos_type pos = str.tellg();
+ std::istream::pos_type pos = str.tellg();
expr.set_text(string(p, p + long(pos)));
p += long(pos) - 1;
diff --git a/src/item.h b/src/item.h
index a28bf59e..51539eff 100644
--- a/src/item.h
+++ b/src/item.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003-2018, John Wiegley. All rights reserved.
+ * Copyright (c) 2003-2019, John Wiegley. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -48,12 +48,12 @@ namespace ledger {
struct position_t
{
- path pathname;
- istream_pos_type beg_pos;
- std::size_t beg_line;
- istream_pos_type end_pos;
- std::size_t end_line;
- std::size_t sequence;
+ path pathname;
+ std::istream::pos_type beg_pos;
+ std::size_t beg_line;
+ std::istream::pos_type end_pos;
+ std::size_t end_line;
+ std::size_t sequence;
position_t()
: beg_pos(0), beg_line(0), end_pos(0), end_line(0), sequence(0) {
diff --git a/src/op.cc b/src/op.cc
index 00b84459..5801b1dd 100644
--- a/src/op.cc
+++ b/src/op.cc
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003-2018, John Wiegley. All rights reserved.
+ * Copyright (c) 2003-2019, John Wiegley. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -963,7 +963,7 @@ void expr_t::op_t::dump(std::ostream& out, const int depth) const
string op_context(const expr_t::ptr_op_t op,
const expr_t::ptr_op_t locus)
{
- ostream_pos_type start_pos, end_pos;
+ std::ostream::pos_type start_pos, end_pos;
expr_t::op_t::context_t context(op, locus, &start_pos, &end_pos);
std::ostringstream buf;
buf << " ";
diff --git a/src/op.h b/src/op.h
index bbbb5d81..aab362c7 100644
--- a/src/op.h
+++ b/src/op.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003-2018, John Wiegley. All rights reserved.
+ * Copyright (c) 2003-2019, John Wiegley. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -285,19 +285,19 @@ public:
struct context_t
{
- ptr_op_t expr_op;
- ptr_op_t op_to_find;
- ostream_pos_type * start_pos;
- ostream_pos_type * end_pos;
- bool relaxed;
+ ptr_op_t expr_op;
+ ptr_op_t op_to_find;
+ std::ostream::pos_type * start_pos;
+ std::ostream::pos_type * end_pos;
+ bool relaxed;
context_t() : start_pos(NULL), end_pos(NULL), relaxed(false) {}
- context_t(const ptr_op_t& _expr_op,
- const ptr_op_t& _op_to_find,
- ostream_pos_type * const _start_pos = NULL,
- ostream_pos_type * const _end_pos = NULL,
- const bool _relaxed = true)
+ context_t(const ptr_op_t& _expr_op,
+ const ptr_op_t& _op_to_find,
+ std::ostream::pos_type * const _start_pos = NULL,
+ std::ostream::pos_type * const _end_pos = NULL,
+ const bool _relaxed = true)
: expr_op(_expr_op), op_to_find(_op_to_find),
start_pos(_start_pos), end_pos(_end_pos),
relaxed(_relaxed) {}
diff --git a/src/py_post.cc b/src/py_post.cc
index 6195570b..525b47c2 100644
--- a/src/py_post.cc
+++ b/src/py_post.cc
@@ -153,6 +153,11 @@ void export_post()
return_value_policy<return_by_value>()),
make_setter(&post_t::cost,
return_value_policy<return_by_value>()))
+ .add_property("given_cost",
+ make_getter(&post_t::given_cost,
+ return_value_policy<return_by_value>()),
+ make_setter(&post_t::given_cost,
+ return_value_policy<return_by_value>()))
.add_property("assigned_amount",
make_getter(&post_t::assigned_amount,
return_value_policy<return_by_value>()),
diff --git a/src/quotes.cc b/src/quotes.cc
index 50791560..8ae8ca90 100644
--- a/src/quotes.cc
+++ b/src/quotes.cc
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003-2018, John Wiegley. All rights reserved.
+ * Copyright (c) 2003-2019, John Wiegley. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -79,13 +79,8 @@ commodity_quote_from_script(commodity_t& commodity,
if (optional<std::pair<commodity_t *, price_point_t> > point =
commodity_pool_t::current_pool->parse_price_directive(buf)) {
if (commodity_pool_t::current_pool->price_db) {
-#if defined(__GNUG__) && __GNUG__ < 3
- ofstream database(*commodity_pool_t::current_pool->price_db,
- ios::out | ios::app);
-#else
ofstream database(*commodity_pool_t::current_pool->price_db,
std::ios_base::out | std::ios_base::app);
-#endif
database << "P "
<< format_datetime(point->second.when, FMT_WRITTEN)
<< " " << commodity.symbol()
diff --git a/src/system.hh.in b/src/system.hh.in
index 1f4a3958..97651e8b 100644
--- a/src/system.hh.in
+++ b/src/system.hh.in
@@ -81,10 +81,6 @@
/* System includes */
/*------------------------------------------------------------------------*/
-#if defined(__GNUG__) && __GNUG__ < 3
-#define _XOPEN_SOURCE
-#endif
-
#include <algorithm>
#include <exception>
#include <typeinfo>
@@ -104,29 +100,6 @@
#include <string>
#include <vector>
-#if defined(__GNUG__) && __GNUG__ < 3
-
-namespace std {
- inline ostream & right (ostream & i) {
- i.setf(i.right, i.adjustfield);
- return i;
- }
- inline ostream & left (ostream & i) {
- i.setf(i.left, i.adjustfield);
- return i;
- }
-}
-
-typedef std::streamoff istream_pos_type;
-typedef std::streamoff ostream_pos_type;
-
-#else // ! (defined(__GNUG__) && __GNUG__ < 3)
-
-typedef std::istream::pos_type istream_pos_type;
-typedef std::ostream::pos_type ostream_pos_type;
-
-#endif
-
#include <cassert>
#include <cctype>
#include <cstdarg>
@@ -135,11 +108,6 @@ typedef std::ostream::pos_type ostream_pos_type;
#include <cstring>
#include <csignal>
-#if defined __FreeBSD__ && __FreeBSD__ <= 4
-// FreeBSD has a broken isspace macro, so don't use it
-#undef isspace(c)
-#endif
-
#if defined(_WIN32) || defined(__CYGWIN__)
#include <io.h>
#else
diff --git a/src/textual.cc b/src/textual.cc
index 3416073b..1e494969 100644
--- a/src/textual.cc
+++ b/src/textual.cc
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003-2018, John Wiegley. All rights reserved.
+ * Copyright (c) 2003-2019, John Wiegley. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -557,7 +557,7 @@ void instance_t::option_directive(char * line)
void instance_t::automated_xact_directive(char * line)
{
- istream_pos_type pos = context.line_beg_pos;
+ std::istream::pos_type pos = context.line_beg_pos;
bool reveal_context = true;
@@ -653,7 +653,7 @@ void instance_t::automated_xact_directive(char * line)
void instance_t::period_xact_directive(char * line)
{
- istream_pos_type pos = context.line_beg_pos;
+ std::istream::pos_type pos = context.line_beg_pos;
bool reveal_context = true;
@@ -916,8 +916,8 @@ void instance_t::end_apply_directive(char * kind)
void instance_t::account_directive(char * line)
{
- istream_pos_type beg_pos = context.line_beg_pos;
- std::size_t beg_linenum = context.linenum;
+ std::istream::pos_type beg_pos = context.line_beg_pos;
+ std::size_t beg_linenum = context.linenum;
char * p = skip_ws(line);
account_t * account =
diff --git a/src/token.cc b/src/token.cc
index 1ec052ed..76bf5106 100644
--- a/src/token.cc
+++ b/src/token.cc
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003-2018, John Wiegley. All rights reserved.
+ * Copyright (c) 2003-2019, John Wiegley. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are
@@ -380,7 +380,7 @@ void expr_t::token_t::next(std::istream& in, const parse_flags_t& pflags)
break;
default: {
- istream_pos_type pos = in.tellg();
+ std::istream::pos_type pos = in.tellg();
// First, check to see if it's a reserved word, such as: and or not
int result = parse_reserved_word(in);
diff --git a/src/xact.cc b/src/xact.cc
index 5df9ebc5..10a7106a 100644
--- a/src/xact.cc
+++ b/src/xact.cc
@@ -395,10 +395,12 @@ bool xact_base_t::finalize()
some_null = true;
}
- if (post->has_flags(POST_DEFERRED))
- post->account->add_deferred_post(id(), post);
- else
+ if (post->has_flags(POST_DEFERRED)) {
+ if (!post->amount.is_null())
+ post->account->add_deferred_post(id(), post);
+ } else {
post->account->add_post(post);
+ }
post->xdata().add_flags(POST_EXT_VISITED);
post->account->xdata().add_flags(ACCOUNT_EXT_VISITED);
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index d0b62f6e..41eecb36 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -27,8 +27,6 @@ macro(add_ledger_harness_tests _class)
${TestFile} ${TEST_PYTHON_FLAGS})
set_tests_properties(${_class}Test_${TestFile_Name}
PROPERTIES ENVIRONMENT "TZ=${Ledger_TEST_TIMEZONE}")
- set_target_properties(check
- PROPERTIES DEPENDS ${_class}Test_${TestFile_Name})
endif()
endforeach()
endif()
@@ -48,8 +46,6 @@ if (PYTHONINTERP_FOUND)
--ledger $<TARGET_FILE:ledger> --file ${TestFile})
set_tests_properties(${_class}Test_${TestFile_Name}
PROPERTIES ENVIRONMENT "TZ=${Ledger_TEST_TIMEZONE}")
- set_target_properties(check
- PROPERTIES DEPENDS ${_class}Test_${TestFile_Name})
endforeach()
# CheckManpage and CheckTexinfo are disabled, since they do not work
diff --git a/test/regress/1723.test b/test/regress/1723.test
new file mode 100644
index 00000000..62a50386
--- /dev/null
+++ b/test/regress/1723.test
@@ -0,0 +1,5 @@
+2017/3/17 deferred posting
+ <deferred posting>
+
+test reg
+end test
diff --git a/test/garbage-input.dat b/test/regress/25A099C9.dat
index 1b7d2101..1b7d2101 100644
--- a/test/garbage-input.dat
+++ b/test/regress/25A099C9.dat
diff --git a/test/regress/25A099C9.test b/test/regress/25A099C9.test
index cfc0eabd..36776520 100644
--- a/test/regress/25A099C9.test
+++ b/test/regress/25A099C9.test
@@ -1,61 +1,61 @@
-test -f test/garbage-input.dat reg -> 29
+test -f test/regress/25A099C9.dat reg -> 29
__ERROR__
-While parsing file "$sourcepath/test/garbage-input.dat", line 1:
+While parsing file "$sourcepath/test/regress/25A099C9.dat", line 1:
Error: Directive '/*' requires an argument
-While parsing file "$sourcepath/test/garbage-input.dat", line 32:
+While parsing file "$sourcepath/test/regress/25A099C9.dat", line 32:
Error: Directive '/**' requires an argument
-While parsing file "$sourcepath/test/garbage-input.dat", line 36:
+While parsing file "$sourcepath/test/regress/25A099C9.dat", line 36:
Error: Directive '/**' requires an argument
-While parsing file "$sourcepath/test/garbage-input.dat", line 66:
+While parsing file "$sourcepath/test/regress/25A099C9.dat", line 66:
Error: No quantity specified for amount
-While parsing file "$sourcepath/test/garbage-input.dat", line 69:
+While parsing file "$sourcepath/test/regress/25A099C9.dat", line 69:
Error: Unexpected whitespace at beginning of line
-While parsing file "$sourcepath/test/garbage-input.dat", line 78:
+While parsing file "$sourcepath/test/regress/25A099C9.dat", line 78:
Error: Directive '};' requires an argument
-While parsing file "$sourcepath/test/garbage-input.dat", line 82:
+While parsing file "$sourcepath/test/regress/25A099C9.dat", line 82:
Error: Directive '/**' requires an argument
-While parsing file "$sourcepath/test/garbage-input.dat", line 93:
+While parsing file "$sourcepath/test/regress/25A099C9.dat", line 93:
Error: Unexpected whitespace at beginning of line
-While parsing file "$sourcepath/test/garbage-input.dat", line 97:
+While parsing file "$sourcepath/test/regress/25A099C9.dat", line 97:
Error: Directive '{' requires an argument
-While parsing file "$sourcepath/test/garbage-input.dat", line 98:
+While parsing file "$sourcepath/test/regress/25A099C9.dat", line 98:
Error: Directive 'public:' requires an argument
-While parsing file "$sourcepath/test/garbage-input.dat", line 120:
+While parsing file "$sourcepath/test/regress/25A099C9.dat", line 120:
Error: Directive 'protected:' requires an argument
-While parsing file "$sourcepath/test/garbage-input.dat", line 131:
+While parsing file "$sourcepath/test/regress/25A099C9.dat", line 131:
Error: Directive 'public:' requires an argument
-While parsing file "$sourcepath/test/garbage-input.dat", line 711:
+While parsing file "$sourcepath/test/regress/25A099C9.dat", line 711:
Error: Unexpected whitespace at beginning of line
-While parsing file "$sourcepath/test/garbage-input.dat", line 740:
+While parsing file "$sourcepath/test/regress/25A099C9.dat", line 740:
Error: Directive 'private:' requires an argument
-While parsing file "$sourcepath/test/garbage-input.dat", line 749:
+While parsing file "$sourcepath/test/regress/25A099C9.dat", line 749:
Error: Unexpected whitespace at beginning of line
-While parsing file "$sourcepath/test/garbage-input.dat", line 750:
+While parsing file "$sourcepath/test/regress/25A099C9.dat", line 750:
Error: Directive '};' requires an argument
-While parsing file "$sourcepath/test/garbage-input.dat", line 752:
+While parsing file "$sourcepath/test/regress/25A099C9.dat", line 752:
Error: Invalid date/time: line amount_t amoun
-While parsing file "$sourcepath/test/garbage-input.dat", line 756:
+While parsing file "$sourcepath/test/regress/25A099C9.dat", line 756:
Error: Directive '}' requires an argument
-While parsing file "$sourcepath/test/garbage-input.dat", line 758:
+While parsing file "$sourcepath/test/regress/25A099C9.dat", line 758:
Error: Invalid date/time: line string amount_
-While parsing file "$sourcepath/test/garbage-input.dat", line 762:
+While parsing file "$sourcepath/test/regress/25A099C9.dat", line 762:
Error: Directive '}' requires an argument
-While parsing file "$sourcepath/test/garbage-input.dat", line 764:
+While parsing file "$sourcepath/test/regress/25A099C9.dat", line 764:
Error: Invalid date/time: line string amount_
-While parsing file "$sourcepath/test/garbage-input.dat", line 768:
+While parsing file "$sourcepath/test/regress/25A099C9.dat", line 768:
Error: Directive '}' requires an argument
-While parsing file "$sourcepath/test/garbage-input.dat", line 770:
+While parsing file "$sourcepath/test/regress/25A099C9.dat", line 770:
Error: Invalid date/time: line string amount_
-While parsing file "$sourcepath/test/garbage-input.dat", line 774:
+While parsing file "$sourcepath/test/regress/25A099C9.dat", line 774:
Error: Directive '}' requires an argument
-While parsing file "$sourcepath/test/garbage-input.dat", line 776:
+While parsing file "$sourcepath/test/regress/25A099C9.dat", line 776:
Error: Invalid date/time: line std::ostream&
-While parsing file "$sourcepath/test/garbage-input.dat", line 782:
+While parsing file "$sourcepath/test/regress/25A099C9.dat", line 782:
Error: Directive '}' requires an argument
-While parsing file "$sourcepath/test/garbage-input.dat", line 783:
+While parsing file "$sourcepath/test/regress/25A099C9.dat", line 783:
Error: Invalid date/time: line std::istream&
-While parsing file "$sourcepath/test/garbage-input.dat", line 786:
+While parsing file "$sourcepath/test/regress/25A099C9.dat", line 786:
Error: Directive '}' requires an argument
-While parsing file "$sourcepath/test/garbage-input.dat", line 789:
+While parsing file "$sourcepath/test/regress/25A099C9.dat", line 789:
Error: Unexpected whitespace at beginning of line
end test
diff --git a/test/unit/CMakeLists.txt b/test/unit/CMakeLists.txt
index 9cacb4e7..3611b00a 100644
--- a/test/unit/CMakeLists.txt
+++ b/test/unit/CMakeLists.txt
@@ -20,7 +20,4 @@ if (BUILD_LIBRARY)
target_link_libraries(MathTests ${PYTHON_LIBRARIES})
endif()
add_ledger_test(MathTests)
-
- set_target_properties(check PROPERTIES DEPENDS LedgerUtilTests)
- set_target_properties(check PROPERTIES DEPENDS LedgerMathTests)
endif()
diff --git a/tools/update_copyright_year.sh b/tools/update_copyright_year.sh
index db9541d4..ab08a947 100755
--- a/tools/update_copyright_year.sh
+++ b/tools/update_copyright_year.sh
@@ -5,7 +5,7 @@
# This script will replace the last year of Copyright statements with the first
# argument of this script (defaulting to the current year).
-# Copyright (c) 2016 Alexis Hildebrandt
+# Copyright (c) 2016, 2019 Alexis Hildebrandt
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
@@ -31,6 +31,6 @@ YEAR=${1:-$(date +%Y)}
GREP=${2:-egrep}
${GREP} -Rl 'Copyright.*Wiegley' $(git ls-files | cut -d / -f1 | uniq) \
- | ${GREP} -v "(test/garbage-input.dat|$(basename $0))" \
+ | ${GREP} -v "(test/regress/25A099C9.dat|$(basename $0))" \
| xargs sed -i '' -e "s/\(Copyright.*\)-20[0-9]\{2\}/\1-${YEAR}/"