<pre style='margin:0'>
Dan Ports (drkp) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/69c9ada47df007aacade7b5aa187cd380ee968b2">https://github.com/macports/macports-ports/commit/69c9ada47df007aacade7b5aa187cd380ee968b2</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new 69c9ada emacs-app: remove inline patch
</span>69c9ada is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 69c9ada47df007aacade7b5aa187cd380ee968b2
</span>Author: Jimmy Yuen Ho Wong <wyuenho@macports.org>
AuthorDate: Mon Jun 11 22:58:16 2018 +0100
<span style='display:block; white-space:pre;color:#404040;'> emacs-app: remove inline patch
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> This patch is too big, too fragile, also should be upstreamed instead.
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Reference: https://github.com/macports/macports-ports/pull/1964
</span>---
editors/emacs/Portfile | 8 +-
.../emacs/files/patch-inline-25.2-20170426.diff | 1306 --------------------
2 files changed, 1 insertion(+), 1313 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/editors/emacs/Portfile b/editors/emacs/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 54930e6..0bf2c9a 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/editors/emacs/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/editors/emacs/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -198,13 +198,7 @@ if {$subport eq "emacs-app" || $subport eq "emacs-app-devel"} {
</span> }
if {$subport eq "emacs-app"} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- variant inline description {Apply inline patch} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # https://gist.github.com/takaxp/5294b6c52782d0be0b25342be62e4a77
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patchfiles-append patch-inline-25.2-20170426.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- build.target bootstrap
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- default_variants +inline
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ revision 2
</span> }
variant multicolor_font description {Apply multicolor font patch} {
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/editors/emacs/files/patch-inline-25.2-20170426.diff b/editors/emacs/files/patch-inline-25.2-20170426.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index c96dca4..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/editors/emacs/files/patch-inline-25.2-20170426.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,1306 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -crN configure.ac configure.ac
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** configure.ac 2017-02-03 23:34:30.000000000 +0900
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- configure.ac 2017-04-26 14:45:40.000000000 +0900
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-***************
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** 1915,1921 ****
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- INSTALL_ARCH_INDEP_EXTRA=
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! NS_OBJC_OBJ="nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o $ns_fontfile"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- CFLAGS="$tmp_CFLAGS"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- CPPFLAGS="$tmp_CPPFLAGS"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- 1915,1921 ----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- INSTALL_ARCH_INDEP_EXTRA=
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! NS_OBJC_OBJ="nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o macim.o $ns_fontfile"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- CFLAGS="$tmp_CFLAGS"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- CPPFLAGS="$tmp_CPPFLAGS"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-***************
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** 5117,5123 ****
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ## only costs about 1.5K of wasted binary space.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- headerpad_extra=1000
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if test "$HAVE_NS" = "yes"; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! libs_nsgui="-framework AppKit"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if test "$NS_IMPL_COCOA" = "yes"; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- libs_nsgui="$libs_nsgui -framework IOKit"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- 5117,5123 ----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ## only costs about 1.5K of wasted binary space.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- headerpad_extra=1000
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if test "$HAVE_NS" = "yes"; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! libs_nsgui="-framework AppKit -framework Carbon -framework Cocoa"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if test "$NS_IMPL_COCOA" = "yes"; then
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- libs_nsgui="$libs_nsgui -framework IOKit"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fi
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -crN lisp/term/common-win.el lisp/term/common-win.el
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** lisp/term/common-win.el 2017-02-03 19:25:44.000000000 +0900
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- lisp/term/common-win.el 2017-04-26 14:45:40.000000000 +0900
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-***************
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** 73,78 ****
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- 73,79 ----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (cons (logior (lsh 0 16) 12) 'ns-new-frame)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (cons (logior (lsh 0 16) 13) 'ns-toggle-toolbar)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (cons (logior (lsh 0 16) 14) 'ns-show-prefs)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cons (logior (lsh 0 16) 15) 'mac-change-input-method)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ))))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (set-terminal-parameter frame 'x-setup-function-keys t)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -crN lisp/term/ns-win.el lisp/term/ns-win.el
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** lisp/term/ns-win.el 2017-02-03 19:25:44.000000000 +0900
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- lisp/term/ns-win.el 2017-04-26 14:45:40.000000000 +0900
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-***************
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** 169,175 ****
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (define-key global-map [ns-new-frame] 'make-frame)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (define-key global-map [ns-toggle-toolbar] 'ns-toggle-toolbar)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (define-key global-map [ns-show-prefs] 'customize)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-!
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ;; Set up a number of aliases and other layers to pretend we're using
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ;; the Choi/Mitsuharu Carbon port.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- 169,175 ----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (define-key global-map [ns-new-frame] 'make-frame)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (define-key global-map [ns-toggle-toolbar] 'ns-toggle-toolbar)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (define-key global-map [ns-show-prefs] 'customize)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (define-key global-map [mac-change-input-method] 'mac-change-input-method)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ;; Set up a number of aliases and other layers to pretend we're using
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ;; the Choi/Mitsuharu Carbon port.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-***************
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** 254,267 ****
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ;; editing window.)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (defface ns-working-text-face
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! '((t :underline t))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- "Face used to highlight working text during compose sequence insert."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- :group 'ns)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (defvar ns-working-overlay nil
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- "Overlay used to highlight working text during compose sequence insert.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- When text is in th echo area, this just stores the length of the working text.")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (defvar ns-working-text) ; nsterm.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ;; Test if in echo area, based on mac-win.el 2007/08/26 unicode-2.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- 254,283 ----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ;; editing window.)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (defface ns-working-text-face
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! '((((background dark)) :underline "gray80")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (t :underline "gray20"))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- "Face used to highlight working text during compose sequence insert."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- :group 'ns)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (defface ns-marked-text-face
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ '((((background dark)) :underline "gray80")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (t :underline "gray20"))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ "Face used to highlight marked text during compose sequence insert."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ :group 'ns)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (defface ns-unmarked-text-face
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ '((((background dark)) :underline "gray20")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (t :underline "gray80"))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ "Face used to highlight marked text during compose sequence insert."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ :group 'ns)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (defvar ns-working-overlay nil
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- "Overlay used to highlight working text during compose sequence insert.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- When text is in th echo area, this just stores the length of the working text.")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (defvar ns-marked-overlay nil
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ "Overlay used to highlight marked text during compose sequence insert.")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (defvar ns-working-text) ; nsterm.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ;; Test if in echo area, based on mac-win.el 2007/08/26 unicode-2.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-***************
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** 269,285 ****
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (defun ns-in-echo-area ()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- "Whether, for purposes of inserting working composition text, the minibuffer
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- is currently being used."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (or isearch-mode
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (and cursor-in-echo-area (current-message))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! ;; Overlay strings are not shown in some cases.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (get-char-property (point) 'invisible)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (and (not (bobp))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (or (and (get-char-property (point) 'display)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (eq (get-char-property (1- (point)) 'display)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (get-char-property (point) 'display)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (and (get-char-property (point) 'composition)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (eq (get-char-property (1- (point)) 'composition)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (get-char-property (point) 'composition)))))))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ;; The 'interactive' here stays for subinvocations, so the ns-in-echo-area
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ;; always returns nil for some reason. If this WASN'T the case, we could
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- 285,304 ----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (defun ns-in-echo-area ()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- "Whether, for purposes of inserting working composition text, the minibuffer
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- is currently being used."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (setq mac-in-echo-area
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (or isearch-mode
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (and cursor-in-echo-area (current-message))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! ;; Overlay strings are not shown in some cases.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (get-char-property (point) 'invisible)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (and (not (bobp))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (or (and (get-char-property (point) 'display)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (eq (get-char-property (1- (point)) 'display)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (get-char-property (point) 'display)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (and (get-char-property (point) 'composition)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (eq (get-char-property (1- (point)) 'composition)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (get-char-property (point) 'composition)))))))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! mac-in-echo-area)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-!
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ;; The 'interactive' here stays for subinvocations, so the ns-in-echo-area
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ;; always returns nil for some reason. If this WASN'T the case, we could
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-***************
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** 288,296 ****
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (defun ns-put-working-text ()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (interactive)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (if (ns-in-echo-area) (ns-echo-working-text) (ns-insert-working-text)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (defun ns-unput-working-text ()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (interactive)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (ns-delete-working-text))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (defun ns-insert-working-text ()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- "Insert contents of `ns-working-text' as UTF-8 string and mark with
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- 307,319 ----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (defun ns-put-working-text ()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (interactive)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (if (ns-in-echo-area) (ns-echo-working-text) (ns-insert-working-text)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (defvar mac-ime-cursor-type nil)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (defun ns-unput-working-text ()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (interactive)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (ns-delete-working-text)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (when mac-ime-cursor-type
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (setq cursor-type mac-ime-cursor-type)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (defun ns-insert-working-text ()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- "Insert contents of `ns-working-text' as UTF-8 string and mark with
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-***************
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** 309,327 ****
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (defun ns-echo-working-text ()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- "Echo contents of `ns-working-text' in message display area.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- See `ns-insert-working-text'."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- (ns-delete-working-text)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (let* ((msg (current-message))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (msglen (length msg))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! message-log-max)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (setq ns-working-overlay (length ns-working-text))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (setq msg (concat msg ns-working-text))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (put-text-property msglen (+ msglen ns-working-overlay)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! 'face 'ns-working-text-face msg)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (message "%s" msg)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (defun ns-delete-working-text()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! "Delete working text and clear `ns-working-overlay'."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (interactive)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (cond
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ((and (overlayp ns-working-overlay)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ;; Still alive?
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- 332,413 ----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (defun ns-echo-working-text ()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- "Echo contents of `ns-working-text' in message display area.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- See `ns-insert-working-text'."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (let* ((msg (current-message))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (msglen (length msg))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! message-log-max)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (if (integerp ns-working-overlay)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (progn
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (setq msg (substring msg 0 (- (length msg) ns-working-overlay)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (setq msglen (length msg))))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (setq ns-working-overlay (length ns-working-text))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (setq msg (concat msg ns-working-text))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (put-text-property msglen (+ msglen ns-working-overlay)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! 'face 'ns-working-text-face msg)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (message "%s" msg)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-!
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (defun ns-put-marked-text (event)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (interactive "e")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (let ((pos (nth 1 event))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (len (nth 2 event)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (when (and mac-ime-cursor-type (> len 0))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (setq cursor-type nil))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (if (ns-in-echo-area)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (ns-echo-marked-text pos len)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (ns-insert-marked-text pos len))))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-!
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (defun ns-insert-marked-text (pos len)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! "Insert contents of `ns-working-text' as UTF-8 string and mark with
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! `ns-working-overlay' and `ns-marked-overlay'. Any previously existing
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! working text is cleared first. The overlay is assigned the faces
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! `ns-working-text-face' and `ns-marked-text-face'."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (ns-delete-working-text)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (let ((start (point)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (if (<= pos (length ns-working-text))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (progn
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (put-text-property pos len 'face 'ns-working-text-face ns-working-text)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (insert ns-working-text)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (if (= len 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (overlay-put (setq ns-working-overlay
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (make-overlay start (point) (current-buffer) nil t))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! 'face 'ns-working-text-face)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (overlay-put (setq ns-working-overlay
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (make-overlay start (point) (current-buffer) nil t))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! 'face 'ns-unmarked-text-face)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (overlay-put (setq ns-marked-overlay
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (make-overlay (+ start pos) (+ start pos len)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (current-buffer) nil t))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! 'face 'ns-marked-text-face))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (goto-char (+ start pos))))))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-!
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (defun ns-echo-marked-text (pos len)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! "Echo contents of `ns-working-text' in message display area.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! See `ns-insert-working-text'."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (let* ((msg (current-message))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (msglen (length msg))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! message-log-max)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (when (integerp ns-working-overlay)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (setq msg (substring msg 0 (- (length msg) ns-working-overlay)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (setq msglen (length msg)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (setq ns-working-overlay (length ns-working-text))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (setq msg (concat msg ns-working-text))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (if (= len 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (put-text-property msglen (+ msglen ns-working-overlay)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! 'face 'ns-working-text-face msg)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (put-text-property msglen (+ msglen ns-working-overlay)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! 'face 'ns-unmarked-text-face msg)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! (put-text-property (+ msglen pos) (+ msglen pos len)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! 'face 'ns-marked-text-face msg))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (message "%s" msg)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (defun ns-delete-working-text()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! "Delete working text and clear `ns-working-overlay' and `ns-marked-overlay'."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (interactive)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (when (and (overlayp ns-marked-overlay)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ;; Still alive
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (overlay-buffer ns-marked-overlay))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (with-current-buffer (overlay-buffer ns-marked-overlay)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (delete-overlay ns-marked-overlay)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (setq ns-marked-overlay nil)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (cond
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ((and (overlayp ns-working-overlay)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ;; Still alive?
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-***************
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** 935,940 ****
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- 1021,1485 ----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- &context (window-system ns))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (ns-get-selection selection-symbol target-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ;; Implementation of Input Method Extension for MacOS X
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ;; written by Taiichi Hashimoto <taiichi2@mac.com>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (defvar mac-input-method-parameters
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ '(
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.apple.inputmethod.Kotoeri.Roman"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "A")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.apple.inputmethod.Kotoeri.Japanese"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "あ")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.apple.inputmethod.Kotoeri.Japanese.Katakana"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "ア")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.apple.inputmethod.Kotoeri.Japanese.FullWidthRoman"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "A")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.apple.inputmethod.Kotoeri.Japanese.HalfWidthKana"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "ア")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.apple.inputmethod.kotoeri.Ainu"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "アイヌ")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.apple.inputmethod.Korean.2SetKorean"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "가2")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.apple.inputmethod.Korean.3SetKorean"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "가3")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.apple.inputmethod.Korean.390Sebulshik"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "가5")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.apple.inputmethod.Korean.GongjinCheongRomaja"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "가G")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.apple.inputmethod.Korean.HNCRomaja"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "가H")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.apple.inputmethod.Tamil.AnjalIM"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "Anjal")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.apple.inputmethod.Tamil.Tamil99"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "Tamil")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.apple.inputmethod.VietnameseIM.VietnameseSimpleTelex"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "ST")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.apple.inputmethod.VietnameseIM.VietnameseTelex"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "TX")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.apple.inputmethod.VietnameseIM.VietnameseVNI"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "VN")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.apple.inputmethod.VietnameseIM.VietnameseVIQR"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "VQ")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.apple.inputmethod.SCIM.ITABC"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "拼")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.apple.inputmethod.SCIM.WBX"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "型")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.apple.inputmethod.SCIM.WBH"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "画")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.apple.inputmethod.TCIM.Zhuyin"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "注")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.apple.inputmethod.TCIM.Pinyin"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "拼")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.apple.inputmethod.TCIM.Cangjie"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "倉")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.apple.inputmethod.TCIM.Jianyi"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "速")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.apple.inputmethod.TCIM.Dayi"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "易")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.apple.inputmethod.TCIM.Hanin"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "漢")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.google.inputmethod.Japanese.Roman"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "G")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.google.inputmethod.Japanese.base"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "ぐ")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.google.inputmethod.Japanese.Katakana"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "グ")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.google.inputmethod.Japanese.FullWidthRoman"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "G")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.google.inputmethod.Japanese.HalfWidthKana"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "グ")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("jp.monokakido.inputmethod.Kawasemi.Roman"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "K")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("jp.monokakido.inputmethod.Kawasemi.Japanese"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "か")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("jp.monokakido.inputmethod.Kawasemi.Japanese.Katakana"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "カ")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("jp.monokakido.inputmethod.Kawasemi.Japanese.FullWidthRoman"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "K")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("jp.monokakido.inputmethod.Kawasemi.Japanese.HalfWidthKana"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "カ")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("jp.monokakido.inputmethod.Kawasemi.Japanese.HalfWidthRoman"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "_K")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("jp.monokakido.inputmethod.Kawasemi.Japanese.Code"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "C")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.justsystems.inputmethod.atok21.Roman"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "A")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.justsystems.inputmethod.atok21.Japanese"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "あ")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.justsystems.inputmethod.atok21.Japanese.Katakana"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "ア")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.justsystems.inputmethod.atok21.Japanese.FullWidthRoman"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "英")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.justsystems.inputmethod.atok21.Japanese.HalfWidthEiji"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "半英")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.justsystems.inputmethod.atok22.Roman"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "A")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.justsystems.inputmethod.atok22.Japanese"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "あ")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.justsystems.inputmethod.atok22.Japanese.Katakana"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "ア")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.justsystems.inputmethod.atok22.Japanese.FullWidthRoman"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "英")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.justsystems.inputmethod.atok22.Japanese.HalfWidthEiji"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "半英")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.justsystems.inputmethod.atok23.Roman"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "A")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.justsystems.inputmethod.atok23.Japanese"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "あ")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.justsystems.inputmethod.atok23.Japanese.Katakana"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "ア")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.justsystems.inputmethod.atok23.Japanese.FullWidthRoman"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "英")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.justsystems.inputmethod.atok23.Japanese.HalfWidthEiji"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "半英")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.justsystems.inputmethod.atok24.Roman"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "A")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.justsystems.inputmethod.atok24.Japanese"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "あ")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.justsystems.inputmethod.atok24.Japanese.Katakana"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "ア")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.justsystems.inputmethod.atok24.Japanese.FullWidthRoman"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "英")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.justsystems.inputmethod.atok24.Japanese.HalfWidthEiji"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "半英")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.justsystems.inputmethod.atok25.Roman"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "A")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.justsystems.inputmethod.atok25.Japanese"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "あ")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.justsystems.inputmethod.atok25.Japanese.Katakana"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "ア")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.justsystems.inputmethod.atok25.Japanese.FullWidthRoman"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "英")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.justsystems.inputmethod.atok25.Japanese.HalfWidthEiji"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (title . "半英")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-color)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ "Alist of Mac script code vs parameters for input method on MacOSX.")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (defun mac-get-input-method-parameter (is key)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ "Function to get a parameter of a input method."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (interactive)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (assq key (cdr (assoc is mac-input-method-parameters))))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (defun mac-get-input-method-title (&optional input-source)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ "Return input method title of input source.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ If input-source is nil, return one of current frame."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (if input-source
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cdr (mac-get-input-method-parameter input-source 'title))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ current-input-method-title))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (defun mac-get-cursor-type (&optional input-source)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ "Return cursor type of input source.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ If input-source is nil, return one of current frame."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (if input-source
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (or (cdr (mac-get-input-method-parameter input-source 'cursor-type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cdr (assq 'cursor-type default-frame-alist))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ cursor-type)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cdr (assq 'cursor-type (frame-parameters (selected-frame))))))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (defun mac-get-cursor-color (&optional input-source)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ "Return cursor color of input source.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ If input-source is nil, return one of current frame."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (if input-source
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (or (cdr (mac-get-input-method-parameter input-source 'cursor-color))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cdr (assq 'cursor-color default-frame-alist)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cdr (assq 'cursor-color (frame-parameters (selected-frame))))))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (defun mac-set-input-method-parameter (is key value)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ "Function to set a parameter of a input method."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (let* ((is-param (assoc is mac-input-method-parameters))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (param (assq key is-param)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (if is-param
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (if param
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (setcdr param value)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (setcdr is-param (cons (cons key value) (cdr is-param))))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (setq mac-input-method-parameters
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cons (list is (cons key value))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ mac-input-method-parameters)))))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (defun mac-input-method-update (is)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ "Funtion to update parameters of a input method."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (interactive)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (let ((title (mac-get-input-method-title is))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (type (mac-get-cursor-type is))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (color (mac-get-cursor-color is)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (if (and title (not (equal title (mac-get-input-method-title))))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (setq current-input-method-title title))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (if (and type (not (equal type (mac-get-cursor-type))))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (setq cursor-type type))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (if (and color (not (equal color (mac-get-cursor-color))))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (set-cursor-color color))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (force-mode-line-update)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (if isearch-mode (isearch-update))))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (defun mac-toggle-input-method (&optional arg)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ "Function to toggle input method on MacOSX."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (interactive)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (if arg
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (progn
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (make-local-variable 'input-method-function)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (setq inactivate-current-input-method-function 'mac-toggle-input-method)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (setq input-method-function nil)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (setq describe-current-input-method-function nil)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (mac-toggle-input-source t))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (kill-local-variable 'input-method-function)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (setq describe-current-input-method-function nil)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (mac-toggle-input-source nil)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (defun mac-change-language-to-us ()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ "Function to change language to us."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (interactive)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (mac-toggle-input-method nil))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (defun mac-handle-input-method-change ()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ "Function run when a input method change."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (interactive)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (if (equal default-input-method "MacOSX")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (let ((input-source (mac-get-current-input-source))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (ascii-capable (mac-input-source-is-ascii-capable)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cond ((and (not current-input-method) (not ascii-capable))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (set-input-method "MacOSX"))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ((and (equal current-input-method "MacOSX") ascii-capable)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (toggle-input-method nil)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (mac-input-method-update input-source))))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ;; Emacs input method for input method on MacOSX.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (register-input-method "MacOSX" "MacOSX" 'mac-toggle-input-method
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ "Mac" "Input Method on MacOSX System")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ;; Minor mode of using input methods on MacOS X
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (define-minor-mode mac-input-method-mode
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ "Use input methods on MacOSX."
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ :init-value nil
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ :group 'ns
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ :global t
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (if mac-input-method-mode
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (progn
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (setq default-input-method "MacOSX")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (add-hook 'minibuffer-setup-hook 'mac-change-language-to-us)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (mac-translate-from-yen-to-backslash))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (setq default-input-method nil)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ;; Valiable and functions to pass key(shortcut) to system.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (defvar mac-keys-passed-to-system nil
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ "A list of keys passed to system on MacOSX.")
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (defun mac-add-key-passed-to-system (key)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (let ((shift '(shift shft))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (control '(control ctrl ctl))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (option '(option opt alternate alt))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (command '(command cmd)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (add-to-list 'mac-keys-passed-to-system
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cond ((symbolp key)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cond ((memq key shift)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cons ns-shift-key-mask nil))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ((memq key control)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cons ns-control-key-mask nil))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ((memq key option)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cons ns-alternate-key-mask nil))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ((memq key command)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cons ns-command-key-mask nil))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (t (cons nil nil))))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ((numberp key) (cons 0 key))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ((listp key)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (let ((l key) (k nil) (m 0))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (while l
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cond ((memq (car l) shift)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (setq m (logior m ns-shift-key-mask)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ((memq (car l) control)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (setq m (logior m ns-control-key-mask)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ((memq (car l) option)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (setq m (logior m ns-alternate-key-mask)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ((memq (car l) command)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (setq m (logior m ns-command-key-mask)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ((numberp (car l))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (if (not k) (setq k (car l)))))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (setq l (cdr l)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (cons m k)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (t (cons nil nil))))))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ;; Entry Emacs event for inline input method on MacOSX.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (define-key special-event-map
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ [mac-change-input-method] 'mac-handle-input-method-change)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ;; Convert yen to backslash for JIS keyboard.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (defun mac-translate-from-yen-to-backslash ()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ;; Convert yen to backslash for JIS keyboard.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (interactive)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (define-key global-map [165] nil)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (define-key global-map [2213] nil)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (define-key global-map [3420] nil)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (define-key global-map [67109029] nil)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (define-key global-map [67111077] nil)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (define-key global-map [8388773] nil)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (define-key global-map [134219941] nil)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (define-key global-map [75497596] nil)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (define-key global-map [201328805] nil)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (define-key function-key-map [165] [?\\])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (define-key function-key-map [2213] [?\\]) ;; for Intel
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (define-key function-key-map [3420] [?\\]) ;; for PowerPC
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (define-key function-key-map [67109029] [?\C-\\])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (define-key function-key-map [67111077] [?\C-\\])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (define-key function-key-map [8388773] [?\M-\\])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (define-key function-key-map [134219941] [?\M-\\])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (define-key function-key-map [75497596] [?\C-\M-\\])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (define-key function-key-map [201328805] [?\C-\M-\\])
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ )
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (provide 'ns-win)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ;;; ns-win.el ends here
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -crN src/Makefile.in src/Makefile.in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** src/Makefile.in 2017-02-03 19:25:44.000000000 +0900
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/Makefile.in 2017-04-26 14:45:40.000000000 +0900
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-***************
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** 409,415 ****
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- SOME_MACHINE_OBJECTS = dosfns.o msdos.o \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fontset.o dbusbind.o cygw32.o \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o macfont.o \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- w32.o w32console.o w32fns.o w32heap.o w32inevt.o w32notify.o \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- w16select.o widget.o xfont.o ftfont.o xftfont.o ftxfont.o gtkutil.o \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- 409,415 ----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- SOME_MACHINE_OBJECTS = dosfns.o msdos.o \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- fontset.o dbusbind.o cygw32.o \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o macfont.o macim.o\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- w32.o w32console.o w32fns.o w32heap.o w32inevt.o w32notify.o \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- w16select.o widget.o xfont.o ftfont.o xftfont.o ftxfont.o gtkutil.o \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -crN src/keyboard.c src/keyboard.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** src/keyboard.c 2017-04-20 23:50:42.000000000 +0900
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/keyboard.c 2017-04-26 14:45:40.000000000 +0900
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-***************
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** 2472,2481 ****
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- swallow_events (false); /* May clear input_pending. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Redisplay if no pending input. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! while (!(input_pending
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! && (input_was_pending || !redisplay_dont_pause)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- input_was_pending = input_pending;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (help_echo_showing_p && !EQ (selected_window, minibuf_window))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- redisplay_preserve_echo_area (5);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- 2472,2479 ----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- swallow_events (false); /* May clear input_pending. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Redisplay if no pending input. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! while (!input_pending)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (help_echo_showing_p && !EQ (selected_window, minibuf_window))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- redisplay_preserve_echo_area (5);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-***************
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** 3880,3887 ****
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (event->ie.code == KEY_NS_PUT_WORKING_TEXT)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- obj = list1 (intern ("ns-put-working-text"));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- obj = list1 (intern ("ns-unput-working-text"));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- kbd_fetch_ptr = event + 1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (used_mouse_menu)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *used_mouse_menu = true;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- 3878,3887 ----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (event->ie.code == KEY_NS_PUT_WORKING_TEXT)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- obj = list1 (intern ("ns-put-working-text"));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! else if (event->ie.code == KEY_NS_UNPUT_WORKING_TEXT)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- obj = list1 (intern ("ns-unput-working-text"));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ else if (event->ie.code == KEY_NS_PUT_MARKED_TEXT)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ obj = Fcons (intern ("ns-put-marked-text"), event->ie.arg);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- kbd_fetch_ptr = event + 1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (used_mouse_menu)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- *used_mouse_menu = true;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-***************
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** 11748,11753 ****
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- 11748,11756 ----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- "ns-put-working-text");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- initial_define_lispy_key (Vspecial_event_map, "ns-unput-working-text",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- "ns-unput-working-text");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ initial_define_lispy_key (Vspecial_event_map, "ns-put-marked-text",
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ "ns-put-marked-text");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Here we used to use `ignore-event' which would simple set prefix-arg to
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- current-prefix-arg, as is done in `handle-switch-frame'.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- But `handle-switch-frame is not run from the special-map.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -crN src/macim.m src/macim.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** src/macim.m 1970-01-01 09:00:00.000000000 +0900
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/macim.m 2017-04-26 14:50:48.000000000 +0900
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-***************
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** 0 ****
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- 1,193 ----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ /* Implementation of Input Method Extension for MacOS X.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ Taiichi Hashimoto <taiichi2@mac.com>.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ #include "config.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ #ifdef NS_IMPL_COCOA
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ #include <math.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ #include <sys/types.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ #include <time.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ #include <signal.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ #include <unistd.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ #include <Carbon/Carbon.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ #include "lisp.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ #include "blockinput.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ #include "termhooks.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ #include "keyboard.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ #include "buffer.h"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ //extern Lisp_Object Qcurrent_input_method;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ //extern int cursor_in_echo_area;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ static Lisp_Object Qmac_keys_passed_to_system;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ void mac_init_input_method ();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ int mac_pass_key_to_system (int code, int modifiers);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ int mac_pass_key_directly_to_emacs ();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ int mac_store_change_input_method_event ();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ DEFUN ("mac-input-source-is-ascii-capable", Fmac_input_source_is_ascii_capable, Smac_input_source_is_ascii_capable,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ 0, 0, 0,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ doc: /* Is current input source ascii capable? */)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (void)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ TISInputSourceRef is = TISCopyCurrentKeyboardInputSource();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ CFBooleanRef ret = TISGetInputSourceProperty(is, kTISPropertyInputSourceIsASCIICapable);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return CFBooleanGetValue(ret)? Qt : Qnil;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ DEFUN ("mac-get-input-source-list", Fmac_get_input_source_list, Smac_get_input_source_list,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ 0, 0, 0,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ doc: /* get input source list on MacOSX */)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (void)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ NSArray *is_list = (NSArray *)TISCreateInputSourceList(NULL, false);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ int list_size = [is_list count];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ Lisp_Object list[list_size];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ int i;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ for (i = 0; i < list_size; i++) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ TISInputSourceRef is = (TISInputSourceRef)[is_list objectAtIndex:i];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ NSString *id = (NSString *)TISGetInputSourceProperty(is, kTISPropertyInputSourceID);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ list[i] = make_string([id UTF8String],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ [id lengthOfBytesUsingEncoding:NSUTF8StringEncoding]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return Flist(list_size, list);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ DEFUN ("mac-get-current-input-source", Fmac_get_current_input_source, Smac_get_current_input_source,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ 0, 0, 0,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ doc: /* get current input source on MacOSX */)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (void)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ TISInputSourceRef is = TISCopyCurrentKeyboardInputSource();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ NSString *id = (NSString *)TISGetInputSourceProperty(is, kTISPropertyInputSourceID);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return make_string([id UTF8String],
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ [id lengthOfBytesUsingEncoding:NSUTF8StringEncoding]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ DEFUN ("mac-toggle-input-source", Fmac_toggle_input_source, Smac_toggle_input_source,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ 1, 1, 0,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ doc: /* toggle input source on MacOSX */)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (arg)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ Lisp_Object arg;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ TISInputSourceRef is = NULL;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (NILP (arg))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ is = TISCopyCurrentASCIICapableKeyboardInputSource();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ NSString *locale;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ NSArray *languages = [NSLocale preferredLanguages];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (languages != nil) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ locale = [languages objectAtIndex:0];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ locale = [[NSLocale currentLocale]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ objectForKey:NSLocaleLanguageCode];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if ( [locale hasPrefix:@"ja"] ) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ is = TISCopyInputSourceForLanguage((CFStringRef)locale);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ NSString *targetID = [NSString stringWithUTF8String:"com.google.inputmethod.Japanese.base"];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if ( targetID == nil) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return arg;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ NSArray *is_list = (NSArray *)TISCreateInputSourceList(NULL, false);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ int list_size = [is_list count];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ for(int i=0; i< list_size; i++) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ NSString *id = (NSString *)TISGetInputSourceProperty((TISInputSourceRef)[is_list objectAtIndex:i], kTISPropertyInputSourceID);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ // NSLog(@"%d: %@", i, [is_list objectAtIndex:i]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if ( [id compare:targetID] == NSOrderedSame ) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ is = (TISInputSourceRef)[is_list objectAtIndex:i];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ break;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ // NSLog(@"%@", locale);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ // NSLog(@"%@", is);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (is) TISSelectInputSource(is);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return arg;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ int
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ mac_store_change_input_method_event ()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ Lisp_Object dim;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ int ret = FALSE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ dim = Fsymbol_value (intern ("default-input-method"));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (STRINGP (dim) && strcmp(SDATA (dim), "MacOSX") == 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ret = TRUE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return ret;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ int
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ mac_pass_key_to_system (int code, int modifiers)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ Lisp_Object keys = Fsymbol_value (Qmac_keys_passed_to_system);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ Lisp_Object m, k;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ while (!NILP (keys))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ m = XCAR (XCAR (keys));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ k = XCDR (XCAR (keys));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ keys = XCDR (keys);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (NUMBERP (m) && modifiers == XINT (m))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (NILP (k)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ || (NUMBERP (k) && code == XINT (k)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return TRUE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return FALSE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ int
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ mac_pass_key_directly_to_emacs (void)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (NILP (Fmac_input_source_is_ascii_capable()))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (NILP (Vmac_use_input_method_on_system)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ || this_command_key_count
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ || cursor_in_echo_area
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ || !NILP (BVAR (current_buffer, read_only)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return TRUE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return FALSE;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ void mac_init_input_method (void)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ Qmac_keys_passed_to_system = intern ("mac-keys-passed-to-system");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ staticpro (&Qmac_keys_passed_to_system);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ DEFVAR_LISP ("mac-use-input-method-on-system", Vmac_use_input_method_on_system,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ doc: /* If it is non-nil, use input method on system. */);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ Vmac_use_input_method_on_system = Qt;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ defsubr (&Smac_input_source_is_ascii_capable);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ defsubr (&Smac_get_input_source_list);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ defsubr (&Smac_get_current_input_source);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ defsubr (&Smac_toggle_input_source);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -crN src/nsfns.m src/nsfns.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** src/nsfns.m 2017-02-03 19:25:45.000000000 +0900
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/nsfns.m 2017-04-26 14:45:40.000000000 +0900
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-***************
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** 3136,3141 ****
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- 3136,3157 ----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- doc: /* Toolkit version for NS Windowing. */);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Vns_version_string = ns_appkit_version_str ();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ DEFVAR_LISP ("ns-shift-key-mask", Vns_shift_key_mask,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ doc: /* Shift key mask defined in system. */);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ Vns_shift_key_mask = make_number (NSShiftKeyMask);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ DEFVAR_LISP ("ns-control-key-mask", Vns_control_key_mask,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ doc: /* Control key mask defined in system. */);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ Vns_control_key_mask = make_number (NSControlKeyMask);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ DEFVAR_LISP ("ns-alternate-key-mask", Vns_alternate_key_mask,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ doc: /* Alternate key mask defined in system. */);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ Vns_alternate_key_mask = make_number (NSAlternateKeyMask);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ DEFVAR_LISP ("ns-command-key-mask", Vns_command_key_mask,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ doc: /* Command key mask defined in system. */);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ Vns_command_key_mask = make_number (NSCommandKeyMask);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- defsubr (&Sns_read_file_name);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- defsubr (&Sns_get_resource);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- defsubr (&Sns_set_resource);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-***************
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** 3180,3185 ****
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- 3196,3205 ----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- defsubr (&Sx_show_tip);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- defsubr (&Sx_hide_tip);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ #ifdef NS_IMPL_COCOA
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ mac_init_input_method ();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- as_status = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- as_script = Qnil;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- as_result = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -crN src/nsterm.h src/nsterm.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** src/nsterm.h 2017-02-03 19:25:45.000000000 +0900
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/nsterm.h 2017-04-26 14:45:40.000000000 +0900
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-***************
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** 757,762 ****
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- 757,764 ----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define KEY_NS_NEW_FRAME ((1<<28)|(0<<16)|12)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define KEY_NS_TOGGLE_TOOLBAR ((1<<28)|(0<<16)|13)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #define KEY_NS_SHOW_PREFS ((1<<28)|(0<<16)|14)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ #define KEY_MAC_CHANGE_INPUT_METHOD ((1<<28)|(0<<16)|15)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ #define KEY_NS_PUT_MARKED_TEXT ((1<<28)|(0<<16)|16)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* could use list to store these, but rest of emacs has a big infrastructure
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- for managing a table of bitmap "records" */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -crN src/nsterm.m src/nsterm.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** src/nsterm.m 2017-02-03 19:25:45.000000000 +0900
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/nsterm.m 2017-04-26 14:45:40.000000000 +0900
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-***************
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** 4859,4865 ****
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* [[NSNotificationCenter defaultCenter] addObserver: NSApp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- selector: @selector (logNotification:)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- name: nil object: nil]; */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-!
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- dpyinfo = xzalloc (sizeof *dpyinfo);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ns_initialize_display_info (dpyinfo);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- 4859,4868 ----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* [[NSNotificationCenter defaultCenter] addObserver: NSApp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- selector: @selector (logNotification:)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- name: nil object: nil]; */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! [[NSDistributedNotificationCenter defaultCenter] addObserver: NSApp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! selector: @selector (changeInputMethod:)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! name: @"AppleSelectedInputSourcesChangedNotification" object: nil];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-!
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- dpyinfo = xzalloc (sizeof *dpyinfo);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ns_initialize_display_info (dpyinfo);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-***************
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** 5162,5167 ****
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- 5165,5185 ----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- NSLog (@"notification: '%@'", [notification name]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ - (void)changeInputMethod: (NSNotification *)notification
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ struct frame *emacsframe = SELECTED_FRAME ();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (mac_store_change_input_method_event())
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (!emacs_event)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ emacs_event->kind = NS_NONKEY_EVENT;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ emacs_event->code = KEY_MAC_CHANGE_INPUT_METHOD;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ emacs_event->modifiers = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ EV_TRAILER ((id)nil);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- - (void)sendEvent: (NSEvent *)theEvent
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* --------------------------------------------------------------------------
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-***************
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** 5985,5991 ****
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- code, fnKeysym, flags, emacs_event->modifiers);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* if it was a function key or had modifiers, pass it directly to emacs */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! if (fnKeysym || (emacs_event->modifiers
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- && (emacs_event->modifiers != shift_modifier)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- && [[theEvent charactersIgnoringModifiers] length] > 0))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /*[[theEvent characters] length] */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- 6003,6010 ----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- code, fnKeysym, flags, emacs_event->modifiers);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* if it was a function key or had modifiers, pass it directly to emacs */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! if (mac_pass_key_directly_to_emacs ()
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! || fnKeysym || (emacs_event->modifiers
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- && (emacs_event->modifiers != shift_modifier)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- && [[theEvent charactersIgnoringModifiers] length] > 0))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /*[[theEvent characters] length] */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-***************
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** 6000,6008 ****
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ? MULTIBYTE_CHAR_KEYSTROKE_EVENT : ASCII_KEYSTROKE_EVENT;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- emacs_event->code = code;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! EV_TRAILER (theEvent);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! processingCompose = NO;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- 6019,6037 ----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ? MULTIBYTE_CHAR_KEYSTROKE_EVENT : ASCII_KEYSTROKE_EVENT;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- emacs_event->code = code;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! /* The function mac_pass_key_to_system decides
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! whether it is passed directly to emacs or not. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! if (emacs_event->kind == NON_ASCII_KEYSTROKE_EVENT
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! || !mac_pass_key_to_system (code, flags
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! & (NSShiftKeyMask
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! | NSControlKeyMask
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! | NSAlternateKeyMask
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! | NSCommandKeyMask)))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! EV_TRAILER (theEvent);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! processingCompose = NO;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-***************
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** 6098,6107 ****
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (unsigned long)selRange.length,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (unsigned long)selRange.location);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- if (workingText != nil)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-- [self deleteWorkingText];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if ([str length] == 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (!emacs_event)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- 6127,6146 ----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (unsigned long)selRange.length,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- (unsigned long)selRange.location);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if ([str length] == 0)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! [self deleteWorkingText];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! if (workingText != nil) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! [workingText release];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! workingText = nil;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! processingCompose = NO;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-!
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (!emacs_event)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- return;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-***************
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** 6111,6117 ****
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ns_working_text = build_string ([workingText UTF8String]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- emacs_event->kind = NS_TEXT_EVENT;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! emacs_event->code = KEY_NS_PUT_WORKING_TEXT;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- EV_TRAILER ((id)nil);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- 6150,6158 ----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ns_working_text = build_string ([workingText UTF8String]);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- emacs_event->kind = NS_TEXT_EVENT;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! emacs_event->code = KEY_NS_PUT_MARKED_TEXT;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! emacs_event->arg = Fcons (make_number (selRange.location),
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! Fcons (make_number (selRange.length), Qnil));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- EV_TRAILER ((id)nil);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-***************
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** 6174,6191 ****
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- NSRect rect;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- NSPoint pt;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! struct window *win = XWINDOW (FRAME_SELECTED_WINDOW (emacsframe));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- NSTRACE ("[EmacsView firstRectForCharacterRange:]");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (NS_KEYLOG)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- NSLog (@"firstRectForCharRange request");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- rect.size.width = theRange.length * FRAME_COLUMN_WIDTH (emacsframe);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- rect.size.height = FRAME_LINE_HEIGHT (emacsframe);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pt.x = WINDOW_TEXT_TO_FRAME_PIXEL_X (win, win->phys_cursor.x);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pt.y = WINDOW_TO_FRAME_PIXEL_Y (win, win->phys_cursor.y
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! +FRAME_LINE_HEIGHT (emacsframe));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pt = [self convertPoint: pt toView: nil];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pt = [[self window] convertBaseToScreen: pt];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- 6215,6240 ----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- NSRect rect;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- NSPoint pt;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! struct window *win;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- NSTRACE ("[EmacsView firstRectForCharacterRange:]");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (NS_KEYLOG)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- NSLog (@"firstRectForCharRange request");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (NILP (Vmac_in_echo_area))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ win = XWINDOW (FRAME_SELECTED_WINDOW (emacsframe));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ else if (WINDOWP (echo_area_window))
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ win = XWINDOW (echo_area_window);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ else
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ win = XWINDOW (FRAME_SELECTED_WINDOW (emacsframe));
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- rect.size.width = theRange.length * FRAME_COLUMN_WIDTH (emacsframe);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- rect.size.height = FRAME_LINE_HEIGHT (emacsframe);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pt.x = WINDOW_TEXT_TO_FRAME_PIXEL_X (win, win->phys_cursor.x);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pt.y = WINDOW_TO_FRAME_PIXEL_Y (win, win->phys_cursor.y
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-! +FRAME_LINE_HEIGHT (emacsframe)+2);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-!
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pt = [self convertPoint: pt toView: nil];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- pt = [[self window] convertBaseToScreen: pt];
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-***************
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** 8782,8787 ****
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- 8831,8840 ----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- baseline level. The default value is nil. */);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- x_underline_at_descent_line = 0;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ DEFVAR_LISP ("mac-in-echo-area", Vmac_in_echo_area,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ doc: /* state of cursor in echo area. */);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ Vmac_in_echo_area = Qnil;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- /* Tell Emacs about this window system. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- Fprovide (Qns, Qnil);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -crN src/termhooks.h src/termhooks.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** src/termhooks.h 2017-02-03 19:25:45.000000000 +0900
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/termhooks.h 2017-04-26 14:45:40.000000000 +0900
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-***************
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** 59,64 ****
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- 59,65 ----
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- output_x_window,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- output_msdos_raw,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- output_w32,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ output_mac,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- output_ns
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- };
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span></pre><pre style='margin:0'>
</pre>