<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>