diff --git a/AUTHORS b/AUTHORS
index 37f5c411b..ffcf9c092 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -13,4 +13,6 @@ With thanks to:
Nishiishii
galvanizd
H. İbrahim Güngör
+ Stas Antons
+ Andy Lester
diff --git a/ChangeLog b/ChangeLog
index 48030c34b..9b6c016a1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -13,6 +13,7 @@ represents a feature release, and the Z represents a patch.
1.4.0 ()
+ + New recurring tasks feature
+ "task undelete" can now undelete erroneously deleted tasks, provided no
reports have been run (and therefore TDB::gc run)
+ Added averages to the "task history" report
diff --git a/html/task.html b/html/task.html
index 56b0e2c7a..2aed7bb4d 100644
--- a/html/task.html
+++ b/html/task.html
@@ -48,6 +48,7 @@
+ - Added new recurring tasks feature
- Added "task undelete" feature to restore a (very) recently deleted
task
- Added averages to the "task history" report
diff --git a/src/Makefile.in b/src/Makefile.in
index 0fb7bc68a..120185c41 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -45,8 +45,8 @@ binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
PROGRAMS = $(bin_PROGRAMS)
am_task_OBJECTS = Config.$(OBJEXT) Date.$(OBJEXT) T.$(OBJEXT) \
TDB.$(OBJEXT) Table.$(OBJEXT) Grid.$(OBJEXT) color.$(OBJEXT) \
- parse.$(OBJEXT) task.$(OBJEXT) util.$(OBJEXT) text.$(OBJEXT) \
- rules.$(OBJEXT)
+ parse.$(OBJEXT) task.$(OBJEXT) command.$(OBJEXT) \
+ report.$(OBJEXT) util.$(OBJEXT) text.$(OBJEXT) rules.$(OBJEXT)
task_OBJECTS = $(am_task_OBJECTS)
task_LDADD = $(LDADD)
DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@
@@ -154,7 +154,7 @@ sysconfdir = @sysconfdir@
target_alias = @target_alias@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
-task_SOURCES = Config.cpp Date.cpp T.cpp TDB.cpp Table.cpp Grid.cpp color.cpp parse.cpp task.cpp util.cpp text.cpp rules.cpp Config.h Date.h T.h TDB.h Table.h Grid.h color.h task.h
+task_SOURCES = Config.cpp Date.cpp T.cpp TDB.cpp Table.cpp Grid.cpp color.cpp parse.cpp task.cpp command.cpp report.cpp util.cpp text.cpp rules.cpp Config.h Date.h T.h TDB.h Table.h Grid.h color.h task.h
AM_CPPFLAGS = -Wall -pedantic -ggdb3 -fno-rtti
all: all-am
@@ -229,7 +229,9 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/TDB.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/Table.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/color.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/command.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parse.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/report.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rules.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/task.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/text.Po@am__quote@
diff --git a/src/T.cpp b/src/T.cpp
index 8ccb6c362..8a9c7fdc7 100644
--- a/src/T.cpp
+++ b/src/T.cpp
@@ -450,7 +450,7 @@ void T::parse (const std::string& line)
{
std::vector pair;
split (pair, pairs[i], ':');
- if (pair[1] != "")
+ if (pair.size () == 2)
mAttributes[pair[0]] = pair[1];
}
diff --git a/src/T.h b/src/T.h
index 58b7cc169..cb8ffb4a3 100644
--- a/src/T.h
+++ b/src/T.h
@@ -32,7 +32,7 @@
#include