ir-macro pasted by sak on Fri Mar 7 21:17:45 2014

(define-syntax text-color
  (ir-macro-transformer
    (lambda (expr inject compare)
      (let ((color (cadr expr))
            (bold (cddr expr)))
        (if (null? 'bold)
           `(lambda () (attrset (COLOR_PAIR ,color)))
           `(lambda () (attrset (bitwise-ior (COLOR_PAIR ,color) ,(inject 'A_BOLD)))))))))

using matchable pasted by DerGuteMoritz on Fri Mar 7 21:23:44 2014

(import-for-syntax matchable)

(define-syntax text-color
  (ir-macro-transformer
   (lambda (expr inject compare)
     (let ((color (cadr expr))
           (bold (cddr expr)))
       (match expr
         ((_ color)
          `(lambda () (attrset (COLOR_PAIR ,color))))
         ((_ color #t)
          `(lambda () (attrset (bitwise-ior (COLOR_PAIR ,color) A_BOLD)))))))))

using matchable, take 2 added by DerGuteMoritz on Fri Mar 7 21:24:27 2014

(define-syntax text-color
  (ir-macro-transformer
   (lambda (expr inject compare)
     (match expr
       ((_ color)
        `(lambda () (attrset (COLOR_PAIR ,color))))
       ((_ color #t)
        `(lambda () (attrset (bitwise-ior (COLOR_PAIR ,color) A_BOLD))))))))