(defun TRR:read-char (&rest args)
  (let ((ch (apply 'read-event args)))
    (cond
     ((char-valid-p ch) nil)
     ((eq 'return ch) (setq ch ?\C-m))
     (t (setq ch ? )))
    ch))

(defadvice trr (around trr-advice)
  "Skip non-character event.  Replace them to space."
  (let ((rf (symbol-function 'read-char)))
    (unwind-protect
	(progn
	  (fset 'read-char 'TRR:read-char)
	  ad-do-it)
      (fset 'read-char rf))))

(ad-activate 'trr)
(load "trr" t)
