-(define (msg-print out-format odd msg)
- (printf
- (match out-format
- ['single-line "~a \033[1;37m<~a ~a>\033[0m \033[0;~am~a\033[0m~n"]
- ['multi-line "~a~n\033[1;37m<~a ~a>\033[0m~n\033[0;~am~a\033[0m~n~n"]
- [_ (raise (format "Invalid output format: ~a" out-format))])
- (date->string (seconds->date [msg-ts_epoch msg]) #t)
- (msg-nick msg)
- (msg-uri msg)
- (if odd 36 33)
- (msg-text msg)))
+(define msg-print
+ (let* ([colors (vector 36 33)]
+ [n (vector-length colors)])
+ (λ (out-format color-i msg)
+ (printf
+ (match out-format
+ ['single-line "~a \033[1;37m<~a ~a>\033[0m \033[0;~am~a\033[0m~n"]
+ ['multi-line "~a~n\033[1;37m<~a ~a>\033[0m~n\033[0;~am~a\033[0m~n~n"]
+ [_ (raise (format "Invalid output format: ~a" out-format))])
+ (date->string (seconds->date [msg-ts_epoch msg]) #t)
+ (msg-nick msg)
+ (msg-uri msg)
+ (vector-ref colors (modulo color-i n))
+ (msg-text msg)))))