diff options
| -rw-r--r-- | src/soon/agenda.nim | 5 | ||||
| -rw-r--r-- | src/soon/columnize.nim | 1 | ||||
| -rw-r--r-- | src/soon/conditionchecker.nim | 3 |
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 |
