dot/gpg.conf.m4, dot/gpg-agent.conf, Makefile: Adopt GnuPG configuration.
[profile] / dot / ercrc.el
index cc701e1..6a708ac 100644 (file)
@@ -5,15 +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))
 
-(load "~/.erc-local.el")
+;; 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)
+                              (= ch #x2693))))
+                (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"))
 
@@ -94,7 +115,6 @@ Evaluation order for the keywords is a bit screwy: don't rely on it."
   (mdw-pushnew-replace (list server acct passwd)
                       mdw-erc-ircop-alist
                       :test #'string= :key #'car))
-(load "~/.erc-auth.el")
 
 (defun mdw-assoc-regexp (regexp alist)
   "Return the association in ALIST whose car matches REGEXP."
@@ -124,3 +144,6 @@ Evaluation order for the keywords is a bit screwy: don't rely on it."
       (let ((acct (cadr a))
            (passwd (caddr a)))
        (erc-server-send (concat "OPER " acct " " passwd))))))
+
+(load "~/.erc-auth.el")
+(load "~/.erc-local.el")