!7 cmodule AnalyzeWifiOut > DynPrintLog { transient new Set current; transient Set lastSet; transient S date = null; start-thread { temp CloseableItIt it = linesFromFile(userDir("wifi.out")); for (S s : it) { if (startsWith(s, "BSS")) current.add(s); else if (nempty(s)) { wrapUp(); date = s; current = new Set; } } wrapUp(); } void wrapUp { if (lastSet != null) { Set newNetworks = setMinusSet(current, lastSet); Set disappearedNetworks = setMinusSet(lastSet, current); if (nempty(newNetworks) || nempty(disappearedNetworks)) { print(date); for (S network : newNetworks) print("+" + network); for (S network : disappearedNetworks) print("-" + network); } } lastSet = current; } }