aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArtur Malabarba <bruce.connor.am@gmail.com>2015-01-07 16:29:09 -0200
committerArtur Malabarba <bruce.connor.am@gmail.com>2015-01-07 16:29:09 -0200
commit5e29ea61e86c399cb966fc2299566d43694c2cfe (patch)
treefd5a795f02069941a2e89d48accbace60b09368b
parent0da0edda16757f2ec16e645288ba2cd49786f169 (diff)
Move @name to sx-user
-rw-r--r--sx-user.el42
-rw-r--r--sx.el33
2 files changed, 42 insertions, 33 deletions
diff --git a/sx-user.el b/sx-user.el
index fe620ca..2e8c89a 100644
--- a/sx-user.el
+++ b/sx-user.el
@@ -148,6 +148,48 @@ the `sx-button-user' category."
:type 'sx-button-user)
text))))
+
+;;; @name conversion
+(defconst sx-user--ascii-replacement-list
+ '(("[:space:]" . "")
+ ("àåáâäãåą" . "a")
+ ("èéêëę" . "e")
+ ("ìíîïı" . "i")
+ ("òóôõöøőð" . "o")
+ ("ùúûüŭů" . "u")
+ ("çćčĉ" . "c")
+ ("żźž" . "z")
+ ("śşšŝ" . "s")
+ ("ñń" . "n")
+ ("ýÿ" . "y")
+ ("ğĝ" . "g")
+ ("ř" . "r")
+ ("ł" . "l")
+ ("đ" . "d")
+ ("ß" . "ss")
+ ("Þ" . "th")
+ ("ĥ" . "h")
+ ("ĵ" . "j")
+ ("^[:ascii:]" . ""))
+ "List of replacements to use for non-ascii characters.
+Used to convert user names into @mentions.")
+
+(defun sx-user--@name (user)
+ "Get the `display_name' of USER prepended with @.
+In order to correctly @mention the user, all whitespace is
+removed from the display name and a series of unicode conversions
+are performed before it is returned
+See `sx-user--ascii-replacement-list'.
+
+If all you need is the @name, this is very slightly faster than
+using `sx-user--format'."
+ (sx-assoc-let user
+ (if (stringp .display_name)
+ (concat "@" (sx--recursive-replace
+ sx-user--ascii-replacement-list .display_name))
+ ;; ""
+ )))
+
(provide 'sx-user)
;;; sx-user.el ends here
diff --git a/sx.el b/sx.el
index d67771b..36ecfca 100644
--- a/sx.el
+++ b/sx.el
@@ -294,39 +294,6 @@ Return the result of BODY."
(push ov sx--overlays))
result))
-(defconst sx--ascii-replacement-list
- '(("[:space:]" . "")
- ("àåáâäãåą" . "a")
- ("èéêëę" . "e")
- ("ìíîïı" . "i")
- ("òóôõöøőð" . "o")
- ("ùúûüŭů" . "u")
- ("çćčĉ" . "c")
- ("żźž" . "z")
- ("śşšŝ" . "s")
- ("ñń" . "n")
- ("ýÿ" . "y")
- ("ğĝ" . "g")
- ("ř" . "r")
- ("ł" . "l")
- ("đ" . "d")
- ("ß" . "ss")
- ("Þ" . "th")
- ("ĥ" . "h")
- ("ĵ" . "j")
- ("^[:ascii:]" . ""))
- "List of replacements to use for non-ascii characters.
-Used to convert user names into @mentions.")
-
-(defun sx--user-@name (user)
- "Get the `display_name' of USER prepended with @.
-In order to correctly @mention the user, all whitespace is
-removed from the display name before it is returned."
- (sx-assoc-let user
- (when (stringp .display_name)
- (concat "@" (sx--recursive-replace
- sx--ascii-replacement-list .display_name)))))
-
(defun sx--recursive-replace (alist string)
"Replace each car of ALIST with its cdr in STRING."
(if alist