-(when (file? "control-extra.dat")
- (let ((f (file-info "control-extra.dat" 6))
- (x (regex "([0-9]+) ([0-9]+)" (read-file "control-extra.dat") 0)))
- (when (and f x (<= NOW (+ f (* 3600 (int $1 0 10)) (* 60 (int $2 0 10)))))
- (setf OVERRIDE true))))
+;; Utility: Combine an (hour minutes) pair into total minutes
+(define (minutes x) (+ (* (x 0) 60) (x 1)))
+
+;; Utility: Combine hours and minutes into total seconds
+(define (seconds H M) (+ (* 3600 H) (* 60 M)))
+
+# Apply EXTRA.DAT. This is a pair of hours and minutes to force open,
+# relative to the modification time of the file.
+(setf OVERRIDE
+ (when (regex "([0-9]+) ([0-9]+)" (or (read-file EXTRA.DAT) "") 0)
+ (<= NOW (+ (file-info EXTRA.DAT 6) (seconds (int $1) (int $2))))))