X-Git-Url: https://git.distorted.org.uk/~mdw/profile/blobdiff_plain/cc54616e6cba612f6376b152870715aeba5f32c0..77619173fdf73ef9835c877f6376bcfc25733c28:/dot/ercrc.el diff --git a/dot/ercrc.el b/dot/ercrc.el index 3881cc1..a0bc5a6 100644 --- a/dot/ercrc.el +++ b/dot/ercrc.el @@ -5,14 +5,36 @@ (setq erc-nick "mdw" erc-user-full-name "Mark Wooding") -(if (not (memq 'truncate erc-modules)) - (setq erc-modules (cons 'truncate erc-modules))) +(dolist (module '(replace truncate)) + (if (not (memq module erc-modules)) + (setq erc-modules (cons module erc-modules)))) (setq erc-fill-column 76 erc-timestamp-right-column 68 erc-fill-prefix " " erc-max-buffer-size (* 60 3000)) +;; Filter out emoji, which cause severe display confusion. +(defun mdw-replace-wide-characters (string) + (with-output-to-string + (let ((i 0) + (state nil)) + (while (< i (length string)) + (let ((ch (aref string i))) + (cond ((and (= (char-width ch) 1) + (not (or (<= #x1f200 ch #x1ffff)))) + (when state (princ "*]") (setf state nil)) + (write-char ch)) + (t + (princ (if state "*" "[*")) + (princ (format "#x%x" ch)) + (setf state t)))) + (setq i (1+ i))) + (when state (princ "*]"))))) + +(setq erc-replace-alist + '(("[[:nonascii:]+]" . mdw-replace-wide-characters))) + (setq erc-track-exclude-types '("NICK" "JOIN" "PART")) (setq erc-auto-query 'buffer)