aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/soon/agenda.nim5
-rw-r--r--src/soon/columnize.nim1
-rw-r--r--src/soon/conditionchecker.nim3
3 files changed, 8 insertions, 1 deletions
diff --git a/src/soon/agenda.nim b/src/soon/agenda.nim
index 6e3b2ba..3621987 100644
--- a/src/soon/agenda.nim
+++ b/src/soon/agenda.nim
@@ -38,7 +38,10 @@ proc parseDateToTable(date: string): ConditionTable =
return table
proc allConditionsMet(conditions: ConditionTable, date: DateTime): bool =
- if conditions.hasKey("unknown"): return false
+ if conditions.hasKey("unknown"):
+ for c in conditions["unknown"]:
+ invalidConditions.incl(c)
+ return false
for cs in conditions.values:
if not any(cs, proc(x: string): bool = conditionchecker.checkCond(x, date)):
return false
diff --git a/src/soon/columnize.nim b/src/soon/columnize.nim
index a9074f1..f32d1ec 100644
--- a/src/soon/columnize.nim
+++ b/src/soon/columnize.nim
@@ -24,6 +24,7 @@ proc pad(table: seq[Line], max: seq[int]): seq[Line] =
result.add(Line(columns: resLine, attachments: resAttach))
proc columnize(table: seq[Line]): seq[Line] =
+ if table.len == 0: return table
var max = newSeq[int](table[0].columns.len)
for line in table:
for i, field in enumerate(line.columns):
diff --git a/src/soon/conditionchecker.nim b/src/soon/conditionchecker.nim
index ada152c..ddb74cd 100644
--- a/src/soon/conditionchecker.nim
+++ b/src/soon/conditionchecker.nim
@@ -170,6 +170,9 @@ proc checkDateGroup(s: string, date: DateTime): bool =
var conditions = s
let cs = conditions[1..conditions.len-2].splitWhitespace
for c in cs:
+ if typechecker.checkType(c) == "unknown":
+ invalidConditions.incl(s)
+ return false
if checkCond(c, date) == false:
return false
return true