branch: elpa/julia-mode
commit 38b74a902c8a692f86884e74252fc6da2ec45bed
Author: Steven G. Johnson <[email protected]>
Commit: Yichao Yu <[email protected]>
emacs-mode fix for emacs 22: need to check whether codepoints outside the
BMP are supported by emacs
---
julia-mode.el | 31 +++++++++++++++++++++----------
1 file changed, 21 insertions(+), 10 deletions(-)
diff --git a/julia-mode.el b/julia-mode.el
index 7fe5ea6..d01ee28 100644
--- a/julia-mode.el
+++ b/julia-mode.el
@@ -381,12 +381,18 @@ Do not move back beyond MIN."
; LaTeX-like symbol substitutions, equivalent to those in the Julia REPL,
; generated by:
-; for (k,v) in sort!(collect(Base.REPLCompletions.latex_symbols), by=x->x[2])
+;for (k,v) in sort!(collect(Base.REPLCompletions.latex_symbols), by=x->x[2])
+; ks = escape_string(k)
; vs = escape_string(v)
-; vs = replace(vs, r"\\U[0-9A-Fa-f]+",
-; s -> "\\U" * hex(parseint(s[3:end], 16), 8))
-; println("(puthash \"$(escape_string(k))\" \"$vs\" julia-latexsubs)")
-; end
+; if ismatch(r"^\\U[0-9A-Fa-f]+$", vs)
+; # codepoints outside the BMP can be problematic in older Emacsen
+; cp = vs[3:end]
+; println("(let ((c (decode-char 'ucs #x$cp)))\n",
+; " (if c (puthash \"$ks\" (char-to-string c)
julia-latexsubs)))")
+; else
+; println("(puthash \"$ks\" \"$vs\" julia-latexsubs)")
+; end
+;end
(puthash "\\textexclamdown" "ยก" julia-latexsubs)
(puthash "\\sterling" "ยฃ" julia-latexsubs)
(puthash "\\yen" "ยฅ" julia-latexsubs)
@@ -2024,7 +2030,8 @@ Do not move back beyond MIN."
(puthash "\\mscri" "๐พ" julia-latexsubs)
(puthash "\\mscrj" "๐ฟ" julia-latexsubs)
(puthash "\\mscrk" "๐" julia-latexsubs)
-(puthash "\\mscrl" "\U0001d4c1" julia-latexsubs)
+(let ((c (decode-char 'ucs #x1d4c1)))
+ (if c (puthash "\\mscrl" (char-to-string c) julia-latexsubs)))
(puthash "\\mscrm" "๐" julia-latexsubs)
(puthash "\\mscrn" "๐" julia-latexsubs)
(puthash "\\mscrp" "๐
" julia-latexsubs)
@@ -2494,8 +2501,10 @@ Do not move back beyond MIN."
(puthash "\\mttx" "๐ก" julia-latexsubs)
(puthash "\\mtty" "๐ข" julia-latexsubs)
(puthash "\\mttz" "๐ฃ" julia-latexsubs)
-(puthash "\\imath" "\U0001d6a4" julia-latexsubs)
-(puthash "\\jmath" "\U0001d6a5" julia-latexsubs)
+(let ((c (decode-char 'ucs #x1d6a4)))
+ (if c (puthash "\\imath" (char-to-string c) julia-latexsubs)))
+(let ((c (decode-char 'ucs #x1d6a5)))
+ (if c (puthash "\\jmath" (char-to-string c) julia-latexsubs)))
(puthash "\\mbfAlpha" "๐จ" julia-latexsubs)
(puthash "\\mbfBeta" "๐ฉ" julia-latexsubs)
(puthash "\\mbfGamma" "๐ช" julia-latexsubs)
@@ -2786,8 +2795,10 @@ Do not move back beyond MIN."
(puthash "\\mbfitsansvarphi" "๐" julia-latexsubs)
(puthash "\\mbfitsansvarrho" "๐" julia-latexsubs)
(puthash "\\mbfitsansvarpi" "๐" julia-latexsubs)
-(puthash "\\mbfDigamma" "\U0001d7ca" julia-latexsubs)
-(puthash "\\mbfdigamma" "\U0001d7cb" julia-latexsubs)
+(let ((c (decode-char 'ucs #x1d7ca)))
+ (if c (puthash "\\mbfDigamma" (char-to-string c) julia-latexsubs)))
+(let ((c (decode-char 'ucs #x1d7cb)))
+ (if c (puthash "\\mbfdigamma" (char-to-string c) julia-latexsubs)))
(puthash "\\mbfzero" "๐" julia-latexsubs)
(puthash "\\mbfone" "๐" julia-latexsubs)
(puthash "\\mbftwo" "๐" julia-latexsubs)