<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/36b60fd44e67f7655e00994280c8915f715f2d5b">https://github.com/macports/macports-ports/commit/36b60fd44e67f7655e00994280c8915f715f2d5b</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 36b60fd emacs: patch maintainence
</span>36b60fd is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 36b60fd44e67f7655e00994280c8915f715f2d5b
</span>Author: Jimmy Yuen Ho Wong <wyuenho@gmail.com>
AuthorDate: Mon Jun 4 16:14:09 2018 +0100
<span style='display:block; white-space:pre;color:#404040;'> emacs: patch maintainence
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> * update inline patch to 25.2
</span><span style='display:block; white-space:pre;color:#404040;'> * add emoji to default font
</span><span style='display:block; white-space:pre;color:#404040;'> * remove emacs.c PATH patch
</span><span style='display:block; white-space:pre;color:#404040;'> * require autoconf, automake and libtool
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Closes: https://trac.macports.org/ticket/56586
</span><span style='display:block; white-space:pre;color:#404040;'> Closes: https://trac.macports.org/ticket/56524
</span>---
editors/emacs/Portfile | 31 +-
editors/emacs/files/patch-devel-src_emacs.c.diff | 35 --
...151017.diff => patch-inline-25.2-20170426.diff} | 676 ++++++++++-----------
editors/emacs/files/patch-src-macim.m.diff | 12 -
editors/emacs/files/patch-src_emacs.c.diff | 35 --
editors/emacs/files/site-start.el | 6 +
6 files changed, 346 insertions(+), 449 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 608f704..2099ab7 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;'>@@ -34,6 +34,8 @@ subport emacs-app-devel {
</span> conflicts emacs-app
}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_build-append port:autoconf port:automake port:libtool
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> if {$subport eq $name || $subport eq "emacs-app"} {
version 26.1
revision 0
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -60,8 +62,6 @@ if {$subport eq "emacs-devel" || $subport eq "emacs-app-devel"} {
</span> git.url http://git.savannah.gnu.org/r/emacs.git
git.branch 0bddbbc5aae621d5875880ac3e63f68d481df7c3
<span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_build-append port:autoconf port:automake port:libtool
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> # our dbus is autolaunched by launchd, so disable the check that it's running
# this patchfile is slightly different for emacs-devel
patchfiles patch-devel-src_dbusbind.c.diff
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -141,7 +141,7 @@ platform darwin {
</span> }
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${subport} eq "emacs" || ${subport} eq "emacs-devel"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${subport} eq ${name} || ${subport} eq "emacs-devel"} {
</span> PortGroup muniversal 1.0
variant motif requires x11 description {Builds emacs as an X11 program with Motif widgets} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -161,8 +161,6 @@ if {${subport} eq "emacs" || ${subport} eq "emacs-devel"} {
</span> path:lib/pkgconfig/glib-2.0.pc:glib2 \
port:gconf \
port:librsvg
<span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_build-append port:autoconf port:automake
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> # see #21917
require_active_variants gtk2 x11
}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -191,18 +189,8 @@ variant dbus description {Builds emacs with D-Bus support} {
</span> if {$subport eq "emacs-app" || $subport eq "emacs-app-devel"} {
categories-append aqua
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {$subport eq "emacs-app"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patchfiles-append patch-src_emacs.c.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- } elseif {$subport eq "emacs-app-devel"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patchfiles-append patch-devel-src_emacs.c.diff
</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;'>- post-patch {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- reinplace "s|__PREFIX__|${prefix}|" ${worksrcpath}/src/emacs.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> configure.args-append --with-ns
<span style='display:block; white-space:pre;background:#ffe0e0;'>- configure.args-delete --without-x
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-delete --without-ns --without-x
</span>
universal_variant no
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -220,14 +208,9 @@ if {$subport eq "emacs-app" || $subport eq "emacs-app-devel"} {
</span> }
variant inline description {Apply inline patch} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- # patch-inline-24.4-20141103.diff: inline patch for 24.4 from
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # http://plamo.linet.gr.jp/~matsuki/mac/emacs-25.1-inline.patch.bz2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # patch-src-macim.m.diff: fix for 10.6 or earlier, see #45666
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patchfiles-append patch-inline-25.1-20151017.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- patch-src-macim.m.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # http://sakito.jp/emacs/emacs24.html
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_build-append port:autoconf port:automake port:libtool
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- build.target bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # https://gist.github.com/takaxp/5294b6c52782d0be0b25342be62e4a77
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles-append patch-inline-25.2-20170426.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ build.target bootstrap
</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-devel-src_emacs.c.diff b/editors/emacs/files/patch-devel-src_emacs.c.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index cef35c2..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/editors/emacs/files/patch-devel-src_emacs.c.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,35 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/emacs.c.orig 2016-11-11 17:20:48.000000000 -0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/emacs.c 2016-11-12 19:13:05.000000000 -0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -25,6 +25,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <fcntl.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <stdio.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <stdlib.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <string.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</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 <sys/file.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -743,6 +744,24 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #ifdef DARWIN_OS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (!initialized)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unexec_init_emacs_zone ();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ /* Imaxima won't work properly if PATH does not contain the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ MacPorts directory. The following code is a workaround to
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ avoid this problem. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ char *oldpath = getenv("PATH");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (!oldpath) {oldpath = "";}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ size_t oldpathsize = strlen(oldpath) + 1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (!strstr(oldpath, "__PREFIX__/bin")) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ char *newpath;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ size_t newpathsize = oldpathsize + strlen("__PREFIX__/bin:");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if ((newpath = (char *)malloc(newpathsize)) != NULL) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ strlcpy(newpath, "__PREFIX__/bin:", newpathsize);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ strlcat(newpath, oldpath, newpathsize);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ setenv("PATH", newpath, 1);
</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;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- init_standard_fds ();
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/editors/emacs/files/patch-inline-25.1-20151017.diff b/editors/emacs/files/patch-inline-25.2-20170426.diff
</span>similarity index 70%
rename from editors/emacs/files/patch-inline-25.1-20151017.diff
rename to editors/emacs/files/patch-inline-25.2-20170426.diff
<span style='display:block; white-space:pre;color:#808080;'>index 2469bb8..d66592f 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/editors/emacs/files/patch-inline-25.1-20151017.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/editors/emacs/files/patch-inline-25.2-20170426.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,8 +1,8 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Nrc configure.ac configure.ac
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** configure.ac 2016-07-25 16:08:36.000000000 +0900
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- configure.ac 2016-09-20 02:27:22.000000000 +0900
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -crN emacs-25.2_orig/configure.ac emacs-25.2/configure.ac
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+*** emacs-25.2_orig/configure.ac 2017-02-03 23:34:30.000000000 +0900
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- emacs-25.2/configure.ac 2017-04-26 14:45:40.000000000 +0900
</span> ***************
<span style='display:block; white-space:pre;background:#ffe0e0;'>-*** 1916,1922 ****
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+*** 1915,1921 ****
</span> INSTALL_ARCH_INDEP_EXTRA=
fi
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10,7 +10,7 @@ diff -Nrc configure.ac configure.ac
</span> fi
CFLAGS="$tmp_CFLAGS"
CPPFLAGS="$tmp_CPPFLAGS"
<span style='display:block; white-space:pre;background:#ffe0e0;'>---- 1916,1922 ----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- 1915,1921 ----
</span> INSTALL_ARCH_INDEP_EXTRA=
fi
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -19,7 +19,7 @@ diff -Nrc configure.ac configure.ac
</span> CFLAGS="$tmp_CFLAGS"
CPPFLAGS="$tmp_CPPFLAGS"
***************
<span style='display:block; white-space:pre;background:#ffe0e0;'>-*** 5123,5129 ****
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+*** 5117,5123 ****
</span> ## only costs about 1.5K of wasted binary space.
headerpad_extra=1000
if test "$HAVE_NS" = "yes"; then
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -27,7 +27,7 @@ diff -Nrc configure.ac configure.ac
</span> if test "$NS_IMPL_COCOA" = "yes"; then
libs_nsgui="$libs_nsgui -framework IOKit"
fi
<span style='display:block; white-space:pre;background:#ffe0e0;'>---- 5123,5129 ----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- 5117,5123 ----
</span> ## only costs about 1.5K of wasted binary space.
headerpad_extra=1000
if test "$HAVE_NS" = "yes"; then
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -35,32 +35,39 @@ diff -Nrc configure.ac configure.ac
</span> if test "$NS_IMPL_COCOA" = "yes"; then
libs_nsgui="$libs_nsgui -framework IOKit"
fi
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Nrc 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 2016-06-29 18:49:20.000000000 +0900
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- lisp/term/common-win.el 2016-09-20 02:27:22.000000000 +0900
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -crN emacs-25.2_orig/lisp/term/common-win.el emacs-25.2/lisp/term/common-win.el
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+*** emacs-25.2_orig/lisp/term/common-win.el 2017-02-03 19:25:44.000000000 +0900
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- emacs-25.2/lisp/term/common-win.el 2017-04-26 14:45:40.000000000 +0900
</span> ***************
*** 73,78 ****
--- 73,79 ----
(cons (logior (lsh 0 16) 12) 'ns-new-frame)
(cons (logior (lsh 0 16) 13) 'ns-toggle-toolbar)
(cons (logior (lsh 0 16) 14) 'ns-show-prefs)
<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:#e0ffe0;'>++ (cons (logior (lsh 0 16) 15) 'mac-change-input-method)
</span> ))))
(set-terminal-parameter frame 'x-setup-function-keys t)))
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Nrc 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 2016-06-29 18:49:20.000000000 +0900
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- lisp/term/ns-win.el 2016-09-20 02:27:22.000000000 +0900
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -crN emacs-25.2_orig/lisp/term/ns-win.el emacs-25.2/lisp/term/ns-win.el
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+*** emacs-25.2_orig/lisp/term/ns-win.el 2017-02-03 19:25:44.000000000 +0900
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- emacs-25.2/lisp/term/ns-win.el 2017-04-26 14:45:40.000000000 +0900
</span> ***************
<span style='display:block; white-space:pre;background:#ffe0e0;'>-*** 169,174 ****
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- 169,175 ----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+*** 169,175 ****
</span> (define-key global-map [ns-new-frame] 'make-frame)
(define-key global-map [ns-toggle-toolbar] 'ns-toggle-toolbar)
(define-key global-map [ns-show-prefs] 'customize)
<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:#e0ffe0;'>+!
</span>
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;; Set up a number of aliases and other layers to pretend we're using
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;; the Choi/Mitsuharu Carbon port.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- 169,175 ----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (define-key global-map [ns-new-frame] 'make-frame)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (define-key global-map [ns-toggle-toolbar] 'ns-toggle-toolbar)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (define-key global-map [ns-show-prefs] 'customize)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! (define-key global-map [mac-change-input-method] 'mac-change-input-method)
</span>
;; Set up a number of aliases and other layers to pretend we're using
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ ;; the Choi/Mitsuharu Carbon port.
</span> ***************
*** 254,267 ****
;; editing window.)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -77,7 +84,7 @@ diff -Nrc lisp/term/ns-win.el lisp/term/ns-win.el
</span> (defvar ns-working-text) ; nsterm.m
;; Test if in echo area, based on mac-win.el 2007/08/26 unicode-2.
<span style='display:block; white-space:pre;background:#ffe0e0;'>---- 255,284 ----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- 254,283 ----
</span> ;; editing window.)
(defface ns-working-text-face
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -127,36 +134,52 @@ diff -Nrc lisp/term/ns-win.el lisp/term/ns-win.el
</span>
;; The 'interactive' here stays for subinvocations, so the ns-in-echo-area
;; always returns nil for some reason. If this WASN'T the case, we could
<span style='display:block; white-space:pre;background:#ffe0e0;'>---- 286,304 ----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- 285,304 ----
</span> (defun ns-in-echo-area ()
"Whether, for purposes of inserting working composition text, the minibuffer
is currently being used."
<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:#e0ffe0;'>+! (setq mac-in-echo-area
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! (or isearch-mode
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! (and cursor-in-echo-area (current-message))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! ;; Overlay strings are not shown in some cases.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! (get-char-property (point) 'invisible)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! (and (not (bobp))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! (or (and (get-char-property (point) 'display)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! (eq (get-char-property (1- (point)) 'display)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! (get-char-property (point) 'display)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! (and (get-char-property (point) 'composition)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! (eq (get-char-property (1- (point)) 'composition)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! (get-char-property (point) 'composition)))))))
</span> ! mac-in-echo-area)
<span style='display:block; white-space:pre;background:#e0ffe0;'>+!
</span>
;; The 'interactive' here stays for subinvocations, so the ns-in-echo-area
;; always returns nil for some reason. If this WASN'T the case, we could
***************
<span style='display:block; white-space:pre;background:#ffe0e0;'>-*** 288,293 ****
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- 307,313 ----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+*** 288,296 ****
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (defun ns-put-working-text ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (interactive)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (if (ns-in-echo-area) (ns-echo-working-text) (ns-insert-working-text)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (defun ns-unput-working-text ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (interactive)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! (ns-delete-working-text))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (defun ns-insert-working-text ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "Insert contents of `ns-working-text' as UTF-8 string and mark with
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- 307,319 ----
</span> (defun ns-put-working-text ()
(interactive)
(if (ns-in-echo-area) (ns-echo-working-text) (ns-insert-working-text)))
+
<span style='display:block; white-space:pre;background:#e0ffe0;'>++ (defvar mac-ime-cursor-type nil)
</span> (defun ns-unput-working-text ()
(interactive)
<span style='display:block; white-space:pre;background:#ffe0e0;'>- (ns-delete-working-text))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! (ns-delete-working-text)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! (when mac-ime-cursor-type
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! (setq cursor-type mac-ime-cursor-type)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (defun ns-insert-working-text ()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "Insert contents of `ns-working-text' as UTF-8 string and mark with
</span> ***************
*** 309,327 ****
(defun ns-echo-working-text ()
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -178,7 +201,7 @@ diff -Nrc lisp/term/ns-win.el lisp/term/ns-win.el
</span> (cond
((and (overlayp ns-working-overlay)
;; Still alive?
<span style='display:block; white-space:pre;background:#ffe0e0;'>---- 329,409 ----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- 332,413 ----
</span> (defun ns-echo-working-text ()
"Echo contents of `ns-working-text' in message display area.
See `ns-insert-working-text'."
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -186,51 +209,52 @@ diff -Nrc lisp/term/ns-win.el lisp/term/ns-win.el
</span> ! (msglen (length msg))
! message-log-max)
! (if (integerp ns-working-overlay)
<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:#e0ffe0;'>+! (progn
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! (setq msg (substring msg 0 (- (length msg) ns-working-overlay)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! (setq msglen (length msg))))
</span> (setq ns-working-overlay (length ns-working-text))
(setq msg (concat msg ns-working-text))
(put-text-property msglen (+ msglen ns-working-overlay)
<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:#e0ffe0;'>+! 'face 'ns-working-text-face msg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! (message "%s" msg)))
</span> !
! (defun ns-put-marked-text (event)
! (interactive "e")
<span style='display:block; white-space:pre;background:#ffe0e0;'>-!
</span> ! (let ((pos (nth 1 event))
<span style='display:block; white-space:pre;background:#ffe0e0;'>-! (len (nth 2 event)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! (len (nth 2 event)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! (when (and mac-ime-cursor-type (> len 0))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! (setq cursor-type nil))
</span> ! (if (ns-in-echo-area)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-! (ns-echo-marked-text pos len)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! (ns-echo-marked-text pos len)
</span> ! (ns-insert-marked-text pos len))))
!
! (defun ns-insert-marked-text (pos len)
! "Insert contents of `ns-working-text' as UTF-8 string and mark with
<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:#e0ffe0;'>+! `ns-working-overlay' and `ns-marked-overlay'. Any previously existing
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! working text is cleared first. The overlay is assigned the faces
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! `ns-working-text-face' and `ns-marked-text-face'."
</span> ! (ns-delete-working-text)
! (let ((start (point)))
! (if (<= pos (length ns-working-text))
<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:#e0ffe0;'>+! (progn
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! (put-text-property pos len 'face 'ns-working-text-face ns-working-text)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! (insert ns-working-text)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! (if (= len 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! (overlay-put (setq ns-working-overlay
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! (make-overlay start (point) (current-buffer) nil t))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! 'face 'ns-working-text-face)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! (overlay-put (setq ns-working-overlay
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! (make-overlay start (point) (current-buffer) nil t))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! 'face 'ns-unmarked-text-face)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! (overlay-put (setq ns-marked-overlay
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! (make-overlay (+ start pos) (+ start pos len)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! (current-buffer) nil t))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! 'face 'ns-marked-text-face))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! (goto-char (+ start pos))))))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+!
</span> ! (defun ns-echo-marked-text (pos len)
! "Echo contents of `ns-working-text' in message display area.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-! See `ns-insert-working-text'."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! See `ns-insert-working-text'."
</span> ! (let* ((msg (current-message))
! (msglen (length msg))
! message-log-max)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -252,8 +276,8 @@ diff -Nrc lisp/term/ns-win.el lisp/term/ns-win.el
</span> ! "Delete working text and clear `ns-working-overlay' and `ns-marked-overlay'."
(interactive)
+ (when (and (overlayp ns-marked-overlay)
<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:#e0ffe0;'>++ ;; Still alive
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (overlay-buffer ns-marked-overlay))
</span> + (with-current-buffer (overlay-buffer ns-marked-overlay)
+ (delete-overlay ns-marked-overlay)))
+ (setq ns-marked-overlay nil)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -262,11 +286,11 @@ diff -Nrc lisp/term/ns-win.el lisp/term/ns-win.el
</span> ;; Still alive?
***************
*** 935,940 ****
<span style='display:block; white-space:pre;background:#ffe0e0;'>---- 1017,1562 ----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- 1021,1485 ----
</span> &context (window-system ns))
(ns-get-selection selection-symbol target-type))
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
</span> + ;;
+ ;; Implementation of Input Method Extension for MacOS X
+ ;; written by Taiichi Hashimoto <taiichi2@mac.com>
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -526,86 +550,6 @@ diff -Nrc lisp/term/ns-win.el lisp/term/ns-win.el
</span> + (title . "半英")
+ (cursor-color)
+ (cursor-type))
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+ ("com.justsystems.inputmethod.atok26.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.atok26.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.atok26.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.atok26.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.atok26.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.atok27.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.atok27.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.atok27.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.atok27.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.atok27.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.atok28.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.atok28.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.atok28.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.atok28.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.atok28.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.atok29.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.atok29.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.atok29.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.atok29.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.atok29.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> + )
+ "Alist of Mac script code vs parameters for input method on MacOSX.")
+
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -617,26 +561,26 @@ diff -Nrc lisp/term/ns-win.el lisp/term/ns-win.el
</span> +
+ (defun mac-get-input-method-title (&optional input-source)
+ "Return input method title of input source.
<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:#e0ffe0;'>++ If input-source is nil, return one of current frame."
</span> + (if input-source
+ (cdr (mac-get-input-method-parameter input-source 'title))
+ current-input-method-title))
+
+ (defun mac-get-cursor-type (&optional input-source)
+ "Return cursor type of input source.
<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:#e0ffe0;'>++ If input-source is nil, return one of current frame."
</span> + (if input-source
+ (or (cdr (mac-get-input-method-parameter input-source 'cursor-type))
<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:#e0ffe0;'>++ (cdr (assq 'cursor-type default-frame-alist))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ cursor-type)
</span> + (cdr (assq 'cursor-type (frame-parameters (selected-frame))))))
+
+ (defun mac-get-cursor-color (&optional input-source)
+ "Return cursor color of input source.
<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:#e0ffe0;'>++ If input-source is nil, return one of current frame."
</span> + (if input-source
+ (or (cdr (mac-get-input-method-parameter input-source 'cursor-color))
<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:#e0ffe0;'>++ (cdr (assq 'cursor-color default-frame-alist)))
</span> + (cdr (assq 'cursor-color (frame-parameters (selected-frame))))))
+
+
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -645,12 +589,12 @@ diff -Nrc lisp/term/ns-win.el lisp/term/ns-win.el
</span> + (let* ((is-param (assoc is mac-input-method-parameters))
+ (param (assq key is-param)))
+ (if is-param
<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:#e0ffe0;'>++ (if param
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (setcdr param value)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (setcdr is-param (cons (cons key value) (cdr is-param))))
</span> + (setq mac-input-method-parameters
<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:#e0ffe0;'>++ (cons (list is (cons key value))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ mac-input-method-parameters)))))
</span> +
+
+ (defun mac-input-method-update (is)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -661,11 +605,11 @@ diff -Nrc lisp/term/ns-win.el lisp/term/ns-win.el
</span> + (type (mac-get-cursor-type is))
+ (color (mac-get-cursor-color is)))
+ (if (and title (not (equal title (mac-get-input-method-title))))
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (setq current-input-method-title title))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (setq current-input-method-title title))
</span> + (if (and type (not (equal type (mac-get-cursor-type))))
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (setq cursor-type type))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (setq cursor-type type))
</span> + (if (and color (not (equal color (mac-get-cursor-color))))
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (set-cursor-color color))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (set-cursor-color color))
</span> + (force-mode-line-update)
+ (if isearch-mode (isearch-update))))
+
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -673,14 +617,14 @@ diff -Nrc lisp/term/ns-win.el lisp/term/ns-win.el
</span> + (defun mac-toggle-input-method (&optional arg)
+ "Function to toggle input method on MacOSX."
+ (interactive)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> + (if arg
+ (progn
<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:#e0ffe0;'>++ (make-local-variable 'input-method-function)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (setq inactivate-current-input-method-function 'mac-toggle-input-method)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (setq input-method-function nil)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (setq describe-current-input-method-function nil)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (mac-toggle-input-source t))
</span> + (kill-local-variable 'input-method-function)
+ (setq describe-current-input-method-function nil)
+ (mac-toggle-input-source nil)))
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -698,19 +642,18 @@ diff -Nrc lisp/term/ns-win.el lisp/term/ns-win.el
</span> +
+ (if (equal default-input-method "MacOSX")
+ (let ((input-source (mac-get-current-input-source))
<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;'>-+
</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:#e0ffe0;'>++ (ascii-capable (mac-input-source-is-ascii-capable)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (cond ((and (not current-input-method) (not ascii-capable))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (set-input-method "MacOSX"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ((and (equal current-input-method "MacOSX") ascii-capable)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (toggle-input-method nil)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (mac-input-method-update input-source))))
</span> +
+ ;;
+ ;; Emacs input method for input method on MacOSX.
+ ;;
+ (register-input-method "MacOSX" "MacOSX" 'mac-toggle-input-method
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+ "Mac" "Input Method on MacOSX System")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "Mac" "Input Method on MacOSX System")
</span> +
+
+ ;;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -724,9 +667,9 @@ diff -Nrc lisp/term/ns-win.el lisp/term/ns-win.el
</span> +
+ (if mac-input-method-mode
+ (progn
<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:#e0ffe0;'>++ (setq default-input-method "MacOSX")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (add-hook 'minibuffer-setup-hook 'mac-change-language-to-us)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (mac-translate-from-yen-to-backslash))
</span> + (setq default-input-method nil)))
+
+ ;;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -737,38 +680,38 @@ diff -Nrc lisp/term/ns-win.el lisp/term/ns-win.el
</span> +
+ (defun mac-add-key-passed-to-system (key)
+ (let ((shift '(shift shft))
<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:#e0ffe0;'>++ (control '(control ctrl ctl))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (option '(option opt alternate alt))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (command '(command cmd)))
</span> +
+ (add-to-list 'mac-keys-passed-to-system
<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:#e0ffe0;'>++ (cond ((symbolp key)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (cond ((memq key shift)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (cons ns-shift-key-mask nil))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ((memq key control)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (cons ns-control-key-mask nil))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ((memq key option)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (cons ns-alternate-key-mask nil))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ((memq key command)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (cons ns-command-key-mask nil))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (t (cons nil nil))))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ((numberp key) (cons 0 key))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ((listp key)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (let ((l key) (k nil) (m 0))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (while l
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (cond ((memq (car l) shift)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (setq m (logior m ns-shift-key-mask)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ((memq (car l) control)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (setq m (logior m ns-control-key-mask)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ((memq (car l) option)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (setq m (logior m ns-alternate-key-mask)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ((memq (car l) command)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (setq m (logior m ns-command-key-mask)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ ((numberp (car l))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (if (not k) (setq k (car l)))))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (setq l (cdr l)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (cons m k)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (t (cons nil nil))))))
</span> +
+
+ ;;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -776,11 +719,11 @@ diff -Nrc lisp/term/ns-win.el lisp/term/ns-win.el
</span> + ;;
+ (define-key special-event-map
+ [mac-change-input-method] 'mac-handle-input-method-change)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> + ;;
+ ;; Convert yen to backslash for JIS keyboard.
+ ;;
<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:#e0ffe0;'>++ (defun mac-translate-from-yen-to-backslash ()
</span> + ;; Convert yen to backslash for JIS keyboard.
+ (interactive)
+
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -802,40 +745,59 @@ diff -Nrc lisp/term/ns-win.el lisp/term/ns-win.el
</span> + (define-key function-key-map [134219941] [?\M-\\])
+ (define-key function-key-map [75497596] [?\C-\M-\\])
+ (define-key function-key-map [201328805] [?\C-\M-\\])
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ )
</span> +
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
(provide 'ns-win)
;;; ns-win.el ends here
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Nrc src/Makefile.in src/Makefile.in
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** src/Makefile.in 2016-06-29 18:49:20.000000000 +0900
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/Makefile.in 2016-09-20 02:27:22.000000000 +0900
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -crN emacs-25.2_orig/src/Makefile.in emacs-25.2/src/Makefile.in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+*** emacs-25.2_orig/src/Makefile.in 2017-02-03 19:25:44.000000000 +0900
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- emacs-25.2/src/Makefile.in 2017-04-26 14:45:40.000000000 +0900
</span> ***************
<span style='display:block; white-space:pre;background:#ffe0e0;'>-*** 409,416 ****
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+*** 409,415 ****
</span> SOME_MACHINE_OBJECTS = dosfns.o msdos.o \
xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \
fontset.o dbusbind.o cygw32.o \
! nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o macfont.o \
<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:#e0ffe0;'>+ w32.o w32console.o w32fns.o w32heap.o w32inevt.o w32notify.o \
</span> w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o \
w16select.o widget.o xfont.o ftfont.o xftfont.o ftxfont.o gtkutil.o \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- xsettings.o xgselect.o termcap.o
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- 409,416 ----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- 409,415 ----
</span> SOME_MACHINE_OBJECTS = dosfns.o msdos.o \
xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \
fontset.o dbusbind.o cygw32.o \
<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 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! 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:#e0ffe0;'>+ w32.o w32console.o w32fns.o w32heap.o w32inevt.o w32notify.o \
</span> w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o \
w16select.o widget.o xfont.o ftfont.o xftfont.o ftxfont.o gtkutil.o \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- xsettings.o xgselect.o termcap.o
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Nrc src/keyboard.c src/keyboard.c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** src/keyboard.c 2016-08-02 17:06:01.000000000 +0900
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/keyboard.c 2016-09-20 02:27:22.000000000 +0900
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -crN emacs-25.2_orig/src/keyboard.c emacs-25.2/src/keyboard.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+*** emacs-25.2_orig/src/keyboard.c 2017-04-20 23:50:42.000000000 +0900
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- emacs-25.2/src/keyboard.c 2017-04-26 14:45:40.000000000 +0900
</span> ***************
<span style='display:block; white-space:pre;background:#ffe0e0;'>-*** 3875,3882 ****
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+*** 2472,2481 ****
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ swallow_events (false); /* May clear input_pending. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Redisplay if no pending input. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! while (!(input_pending
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! && (input_was_pending || !redisplay_dont_pause)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- input_was_pending = input_pending;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (help_echo_showing_p && !EQ (selected_window, minibuf_window))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ redisplay_preserve_echo_area (5);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- 2472,2479 ----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ swallow_events (false); /* May clear input_pending. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* Redisplay if no pending input. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! while (!input_pending)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (help_echo_showing_p && !EQ (selected_window, minibuf_window))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ redisplay_preserve_echo_area (5);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+***************
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+*** 3880,3887 ****
</span> {
if (event->ie.code == KEY_NS_PUT_WORKING_TEXT)
obj = list1 (intern ("ns-put-working-text"));
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -844,110 +806,111 @@ diff -Nrc src/keyboard.c src/keyboard.c
</span> kbd_fetch_ptr = event + 1;
if (used_mouse_menu)
*used_mouse_menu = true;
<span style='display:block; white-space:pre;background:#ffe0e0;'>---- 3875,3884 ----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- 3878,3887 ----
</span> {
if (event->ie.code == KEY_NS_PUT_WORKING_TEXT)
obj = list1 (intern ("ns-put-working-text"));
! else if (event->ie.code == KEY_NS_UNPUT_WORKING_TEXT)
obj = list1 (intern ("ns-unput-working-text"));
<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:#e0ffe0;'>++ else if (event->ie.code == KEY_NS_PUT_MARKED_TEXT)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ obj = Fcons (intern ("ns-put-marked-text"), event->ie.arg);
</span> kbd_fetch_ptr = event + 1;
if (used_mouse_menu)
*used_mouse_menu = true;
***************
<span style='display:block; white-space:pre;background:#ffe0e0;'>-*** 11743,11748 ****
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- 11745,11752 ----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+*** 11748,11753 ****
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- 11748,11756 ----
</span> "ns-put-working-text");
initial_define_lispy_key (Vspecial_event_map, "ns-unput-working-text",
"ns-unput-working-text");
+ initial_define_lispy_key (Vspecial_event_map, "ns-put-marked-text",
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+ "ns-put-marked-text");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ "ns-put-marked-text");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> /* Here we used to use `ignore-event' which would simple set prefix-arg to
current-prefix-arg, as is done in `handle-switch-frame'.
But `handle-switch-frame is not run from the special-map.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Nrc 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 2016-09-20 02:27:22.000000000 +0900
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -crN emacs-25.2_orig/src/macim.m emacs-25.2/src/macim.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+*** emacs-25.2_orig/src/macim.m 1970-01-01 09:00:00.000000000 +0900
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- emacs-25.2/src/macim.m 2017-04-26 14:50:48.000000000 +0900
</span> ***************
*** 0 ****
<span style='display:block; white-space:pre;background:#ffe0e0;'>---- 1,173 ----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- 1,193 ----
</span> + /* Implementation of Input Method Extension for MacOS X.
+ Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
+ Taiichi Hashimoto <taiichi2@mac.com>.
+ */
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> + #include "config.h"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> + #ifdef NS_IMPL_COCOA
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> + #include <math.h>
+ #include <sys/types.h>
+ #include <time.h>
+ #include <signal.h>
+ #include <unistd.h>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> + #include <Carbon/Carbon.h>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> + #include "lisp.h"
+ #include "blockinput.h"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> + #include "termhooks.h"
+ #include "keyboard.h"
+ #include "buffer.h"
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> + //extern Lisp_Object Qcurrent_input_method;
+ //extern int cursor_in_echo_area;
+ static Lisp_Object Qmac_keys_passed_to_system;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> + void mac_init_input_method ();
+ int mac_pass_key_to_system (int code, int modifiers);
+ int mac_pass_key_directly_to_emacs ();
+ int mac_store_change_input_method_event ();
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> + DEFUN ("mac-input-source-is-ascii-capable", Fmac_input_source_is_ascii_capable, Smac_input_source_is_ascii_capable,
+ 0, 0, 0,
+ doc: /* Is current input source ascii capable? */)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (void)
</span> + {
+ TISInputSourceRef is = TISCopyCurrentKeyboardInputSource();
+ CFBooleanRef ret = TISGetInputSourceProperty(is, kTISPropertyInputSourceIsASCIICapable);
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> + return CFBooleanGetValue(ret)? Qt : Qnil;
+ }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> + DEFUN ("mac-get-input-source-list", Fmac_get_input_source_list, Smac_get_input_source_list,
+ 0, 0, 0,
+ doc: /* get input source list on MacOSX */)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (void)
</span> + {
+ NSArray *is_list = (NSArray *)TISCreateInputSourceList(NULL, false);
+ int list_size = [is_list count];
+ Lisp_Object list[list_size];
+ int i;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> + for (i = 0; i < list_size; i++) {
+ TISInputSourceRef is = (TISInputSourceRef)[is_list objectAtIndex:i];
+ NSString *id = (NSString *)TISGetInputSourceProperty(is, kTISPropertyInputSourceID);
+ list[i] = make_string([id UTF8String],
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+ [id lengthOfBytesUsingEncoding:NSUTF8StringEncoding]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ [id lengthOfBytesUsingEncoding:NSUTF8StringEncoding]);
</span> + }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> + return Flist(list_size, list);
+ }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> + DEFUN ("mac-get-current-input-source", Fmac_get_current_input_source, Smac_get_current_input_source,
+ 0, 0, 0,
+ doc: /* get current input source on MacOSX */)
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+ (void)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ (void)
</span> + {
+ TISInputSourceRef is = TISCopyCurrentKeyboardInputSource();
+ NSString *id = (NSString *)TISGetInputSourceProperty(is, kTISPropertyInputSourceID);
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> + return make_string([id UTF8String],
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+ [id lengthOfBytesUsingEncoding:NSUTF8StringEncoding]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ [id lengthOfBytesUsingEncoding:NSUTF8StringEncoding]);
</span> + }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> + DEFUN ("mac-toggle-input-source", Fmac_toggle_input_source, Smac_toggle_input_source,
+ 1, 1, 0,
+ doc: /* toggle input source on MacOSX */)
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -955,7 +918,7 @@ diff -Nrc src/macim.m src/macim.m
</span> + Lisp_Object arg;
+ {
+ TISInputSourceRef is = NULL;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> + if (NILP (arg))
+ {
+ is = TISCopyCurrentASCIICapableKeyboardInputSource();
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -965,132 +928,150 @@ diff -Nrc src/macim.m src/macim.m
</span> + NSString *locale;
+ NSArray *languages = [NSLocale preferredLanguages];
+ if (languages != nil) {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+ locale = [languages objectAtIndex:0];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ locale = [languages objectAtIndex:0];
</span> + } else {
<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:#e0ffe0;'>++ locale = [[NSLocale currentLocale]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ objectForKey:NSLocaleLanguageCode];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if ( [locale hasPrefix:@"ja"] ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ is = TISCopyInputSourceForLanguage((CFStringRef)locale);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ NSString *targetID = [NSString stringWithUTF8String:"com.google.inputmethod.Japanese.base"];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if ( targetID == nil) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return arg;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ NSArray *is_list = (NSArray *)TISCreateInputSourceList(NULL, false);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ int list_size = [is_list count];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for(int i=0; i< list_size; i++) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ NSString *id = (NSString *)TISGetInputSourceProperty((TISInputSourceRef)[is_list objectAtIndex:i], kTISPropertyInputSourceID);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ // NSLog(@"%d: %@", i, [is_list objectAtIndex:i]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if ( [id compare:targetID] == NSOrderedSame ) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ is = (TISInputSourceRef)[is_list objectAtIndex:i];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ // NSLog(@"%@", locale);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ // NSLog(@"%@", is);
</span> + }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+ is = TISCopyInputSourceForLanguage((CFStringRef)locale);
</span> + }
+ if (is) TISSelectInputSource(is);
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> + return arg;
+ }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> + int
+ mac_store_change_input_method_event ()
+ {
+ Lisp_Object dim;
+ int ret = FALSE;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> + dim = Fsymbol_value (intern ("default-input-method"));
+ if (STRINGP (dim) && strcmp(SDATA (dim), "MacOSX") == 0)
+ {
+ ret = TRUE;
+ }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> + return ret;
+ }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> + int
+ mac_pass_key_to_system (int code, int modifiers)
+ {
+ Lisp_Object keys = Fsymbol_value (Qmac_keys_passed_to_system);
+ Lisp_Object m, k;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> + while (!NILP (keys))
+ {
+ m = XCAR (XCAR (keys));
+ k = XCDR (XCAR (keys));
+ keys = XCDR (keys);
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> + if (NUMBERP (m) && modifiers == XINT (m))
<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:#e0ffe0;'>++ if (NILP (k)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ || (NUMBERP (k) && code == XINT (k)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return TRUE;
</span> + }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> + return FALSE;
+ }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> + int
+ mac_pass_key_directly_to_emacs (void)
+ {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> + if (NILP (Fmac_input_source_is_ascii_capable()))
+ {
+ if (NILP (Vmac_use_input_method_on_system)
<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:#e0ffe0;'>++ || this_command_key_count
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ || cursor_in_echo_area
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ || !NILP (BVAR (current_buffer, read_only)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return TRUE;
</span> + }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> + return FALSE;
+ }
<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:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> + void mac_init_input_method (void)
+ {
+ Qmac_keys_passed_to_system = intern ("mac-keys-passed-to-system");
+ staticpro (&Qmac_keys_passed_to_system);
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> + DEFVAR_LISP ("mac-use-input-method-on-system", Vmac_use_input_method_on_system,
+ doc: /* If it is non-nil, use input method on system. */);
+ Vmac_use_input_method_on_system = Qt;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> + defsubr (&Smac_input_source_is_ascii_capable);
+ defsubr (&Smac_get_input_source_list);
+ defsubr (&Smac_get_current_input_source);
+ defsubr (&Smac_toggle_input_source);
+ }
+ #endif
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Nrc src/nsfns.m src/nsfns.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** src/nsfns.m 2016-06-29 18:49:22.000000000 +0900
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/nsfns.m 2016-09-20 02:27:22.000000000 +0900
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -crN emacs-25.2_orig/src/nsfns.m emacs-25.2/src/nsfns.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+*** emacs-25.2_orig/src/nsfns.m 2017-02-03 19:25:45.000000000 +0900
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- emacs-25.2/src/nsfns.m 2017-04-26 14:45:40.000000000 +0900
</span> ***************
*** 3136,3141 ****
<span style='display:block; white-space:pre;background:#ffe0e0;'>---- 3136,3159 ----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- 3136,3157 ----
</span> doc: /* Toolkit version for NS Windowing. */);
Vns_version_string = ns_appkit_version_str ();
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span> + DEFVAR_LISP ("ns-shift-key-mask", Vns_shift_key_mask,
<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:#e0ffe0;'>++ doc: /* Shift key mask defined in system. */);
</span> + Vns_shift_key_mask = make_number (NSShiftKeyMask);
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> + DEFVAR_LISP ("ns-control-key-mask", Vns_control_key_mask,
<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:#e0ffe0;'>++ doc: /* Control key mask defined in system. */);
</span> + Vns_control_key_mask = make_number (NSControlKeyMask);
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> + DEFVAR_LISP ("ns-alternate-key-mask", Vns_alternate_key_mask,
<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:#e0ffe0;'>++ doc: /* Alternate key mask defined in system. */);
</span> + Vns_alternate_key_mask = make_number (NSAlternateKeyMask);
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> + DEFVAR_LISP ("ns-command-key-mask", Vns_command_key_mask,
<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:#e0ffe0;'>++ doc: /* Command key mask defined in system. */);
</span> + Vns_command_key_mask = make_number (NSCommandKeyMask);
<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:#e0ffe0;'>++
</span> defsubr (&Sns_read_file_name);
defsubr (&Sns_get_resource);
defsubr (&Sns_set_resource);
***************
*** 3180,3185 ****
<span style='display:block; white-space:pre;background:#ffe0e0;'>---- 3198,3207 ----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- 3196,3205 ----
</span> defsubr (&Sx_show_tip);
defsubr (&Sx_hide_tip);
<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:#e0ffe0;'>++ #ifdef NS_IMPL_COCOA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ mac_init_input_method ();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> as_status = 0;
as_script = Qnil;
as_result = 0;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Nrc src/nsterm.h src/nsterm.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** src/nsterm.h 2016-08-22 18:17:47.000000000 +0900
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/nsterm.h 2016-09-20 02:27:22.000000000 +0900
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -crN emacs-25.2_orig/src/nsterm.h emacs-25.2/src/nsterm.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+*** emacs-25.2_orig/src/nsterm.h 2017-02-03 19:25:45.000000000 +0900
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- emacs-25.2/src/nsterm.h 2017-04-26 14:45:40.000000000 +0900
</span> ***************
*** 757,762 ****
--- 757,764 ----
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1102,21 +1083,29 @@ diff -Nrc src/nsterm.h src/nsterm.h
</span>
/* could use list to store these, but rest of emacs has a big infrastructure
for managing a table of bitmap "records" */
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Nrc src/nsterm.m src/nsterm.m
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** src/nsterm.m 2016-08-22 18:17:47.000000000 +0900
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/nsterm.m 2016-09-20 02:27:22.000000000 +0900
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -crN emacs-25.2_orig/src/nsterm.m emacs-25.2/src/nsterm.m
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+*** emacs-25.2_orig/src/nsterm.m 2017-02-03 19:25:45.000000000 +0900
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- emacs-25.2/src/nsterm.m 2017-04-26 14:45:40.000000000 +0900
</span> ***************
<span style='display:block; white-space:pre;background:#ffe0e0;'>-*** 4859,4864 ****
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- 4859,4867 ----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+*** 4859,4865 ****
</span> /* [[NSNotificationCenter defaultCenter] addObserver: NSApp
selector: @selector (logNotification:)
name: nil object: nil]; */
<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:#e0ffe0;'>+!
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ dpyinfo = xzalloc (sizeof *dpyinfo);
</span>
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ ns_initialize_display_info (dpyinfo);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- 4859,4868 ----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* [[NSNotificationCenter defaultCenter] addObserver: NSApp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ selector: @selector (logNotification:)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ name: nil object: nil]; */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! [[NSDistributedNotificationCenter defaultCenter] addObserver: NSApp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! selector: @selector (changeInputMethod:)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! name: @"AppleSelectedInputSourcesChangedNotification" object: nil];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+!
</span> dpyinfo = xzalloc (sizeof *dpyinfo);
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ ns_initialize_display_info (dpyinfo);
</span> ***************
*** 5162,5167 ****
--- 5165,5185 ----
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1155,7 +1144,7 @@ diff -Nrc src/nsterm.m src/nsterm.m
</span>
/* if it was a function key or had modifiers, pass it directly to emacs */
! if (mac_pass_key_directly_to_emacs ()
<span style='display:block; white-space:pre;background:#ffe0e0;'>-! ||fnKeysym || (emacs_event->modifiers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! || fnKeysym || (emacs_event->modifiers
</span> && (emacs_event->modifiers != shift_modifier)
&& [[theEvent charactersIgnoringModifiers] length] > 0))
/*[[theEvent characters] length] */
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1174,19 +1163,19 @@ diff -Nrc src/nsterm.m src/nsterm.m
</span> ? MULTIBYTE_CHAR_KEYSTROKE_EVENT : ASCII_KEYSTROKE_EVENT;
emacs_event->code = code;
<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:#e0ffe0;'>+! /* The function mac_pass_key_to_system decides
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! whether it is passed directly to emacs or not. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! if (emacs_event->kind == NON_ASCII_KEYSTROKE_EVENT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! || !mac_pass_key_to_system (code, flags
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! & (NSShiftKeyMask
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! | NSControlKeyMask
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! | NSAlternateKeyMask
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! | NSCommandKeyMask)))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! EV_TRAILER (theEvent);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! processingCompose = NO;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! }
</span> }
}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1202,7 +1191,7 @@ diff -Nrc src/nsterm.m src/nsterm.m
</span>
if (!emacs_event)
return;
<span style='display:block; white-space:pre;background:#ffe0e0;'>---- 6127,6145 ----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- 6127,6146 ----
</span> (unsigned long)selRange.length,
(unsigned long)selRange.location);
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1214,11 +1203,12 @@ diff -Nrc src/nsterm.m src/nsterm.m
</span> ! else
! {
! if (workingText != nil) {
<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:#e0ffe0;'>+! [workingText release];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! workingText = nil;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! processingCompose = NO;
</span> ! }
! }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+!
</span>
if (!emacs_event)
return;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1231,13 +1221,13 @@ diff -Nrc src/nsterm.m src/nsterm.m
</span> EV_TRAILER ((id)nil);
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>---- 6149,6157 ----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- 6150,6158 ----
</span> ns_working_text = build_string ([workingText UTF8String]);
emacs_event->kind = NS_TEXT_EVENT;
! emacs_event->code = KEY_NS_PUT_MARKED_TEXT;
! emacs_event->arg = Fcons (make_number (selRange.location),
<span style='display:block; white-space:pre;background:#ffe0e0;'>-! Fcons (make_number (selRange.length), Qnil));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+! Fcons (make_number (selRange.length), Qnil));
</span> EV_TRAILER ((id)nil);
}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1261,36 +1251,36 @@ diff -Nrc src/nsterm.m src/nsterm.m
</span>
pt = [self convertPoint: pt toView: nil];
pt = [[self window] convertBaseToScreen: pt];
<span style='display:block; white-space:pre;background:#ffe0e0;'>---- 6214,6239 ----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- 6215,6240 ----
</span> {
NSRect rect;
NSPoint pt;
<span style='display:block; white-space:pre;background:#ffe0e0;'>-! // struct window *win = XWINDOW (FRAME_SELECTED_WINDOW (emacsframe));
</span> ! struct window *win;
NSTRACE ("[EmacsView firstRectForCharacterRange:]");
if (NS_KEYLOG)
NSLog (@"firstRectForCharRange request");
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> + if (NILP (Vmac_in_echo_area))
+ win = XWINDOW (FRAME_SELECTED_WINDOW (emacsframe));
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+ else if (WINDOWP (echo_area_window))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ else if (WINDOWP (echo_area_window))
</span> + win = XWINDOW (echo_area_window);
+ else
+ win = XWINDOW (FRAME_SELECTED_WINDOW (emacsframe));
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span> rect.size.width = theRange.length * FRAME_COLUMN_WIDTH (emacsframe);
rect.size.height = FRAME_LINE_HEIGHT (emacsframe);
pt.x = WINDOW_TEXT_TO_FRAME_PIXEL_X (win, win->phys_cursor.x);
pt.y = WINDOW_TO_FRAME_PIXEL_Y (win, win->phys_cursor.y
! +FRAME_LINE_HEIGHT (emacsframe)+2);
<span style='display:block; white-space:pre;background:#e0ffe0;'>+!
</span>
pt = [self convertPoint: pt toView: nil];
pt = [[self window] convertBaseToScreen: pt];
***************
*** 8782,8787 ****
<span style='display:block; white-space:pre;background:#ffe0e0;'>---- 8830,8839 ----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- 8831,8840 ----
</span> baseline level. The default value is nil. */);
x_underline_at_descent_line = 0;
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1301,9 +1291,9 @@ diff -Nrc src/nsterm.m src/nsterm.m
</span> /* Tell Emacs about this window system. */
Fprovide (Qns, Qnil);
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff -Nrc src/termhooks.h src/termhooks.h
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-*** src/termhooks.h 2016-06-29 18:49:23.000000000 +0900
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/termhooks.h 2016-09-20 02:27:22.000000000 +0900
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff -crN emacs-25.2_orig/src/termhooks.h emacs-25.2/src/termhooks.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+*** emacs-25.2_orig/src/termhooks.h 2017-02-03 19:25:45.000000000 +0900
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- emacs-25.2/src/termhooks.h 2017-04-26 14:45:40.000000000 +0900
</span> ***************
*** 59,64 ****
--- 59,65 ----
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1313,4 +1303,4 @@ diff -Nrc src/termhooks.h src/termhooks.h
</span> + output_mac,
output_ns
};
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/editors/emacs/files/patch-src-macim.m.diff b/editors/emacs/files/patch-src-macim.m.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 3d5ded9..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/editors/emacs/files/patch-src-macim.m.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,12 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/macim.m.orig 2014-12-20 22:05:03.000000000 -0600
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/macim.m 2014-12-20 22:31:01.000000000 -0600
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -13,7 +13,9 @@
</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;'>-+#define Cursor Carbon_Cursor /* avoid conflicting type error on OS X <= 10.6 */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <Carbon/Carbon.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#undef Cursor
</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;color:#808080;'>diff --git a/editors/emacs/files/patch-src_emacs.c.diff b/editors/emacs/files/patch-src_emacs.c.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index cef35c2..0000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/editors/emacs/files/patch-src_emacs.c.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,35 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/emacs.c.orig 2016-11-11 17:20:48.000000000 -0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/emacs.c 2016-11-12 19:13:05.000000000 -0800
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -25,6 +25,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <fcntl.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <stdio.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #include <stdlib.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+#include <string.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</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 <sys/file.h>
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -743,6 +744,24 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- #ifdef DARWIN_OS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- if (!initialized)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- unexec_init_emacs_zone ();
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ /* Imaxima won't work properly if PATH does not contain the
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ MacPorts directory. The following code is a workaround to
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ avoid this problem. */
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ char *oldpath = getenv("PATH");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (!oldpath) {oldpath = "";}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ size_t oldpathsize = strlen(oldpath) + 1;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if (!strstr(oldpath, "__PREFIX__/bin")) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ char *newpath;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ size_t newpathsize = oldpathsize + strlen("__PREFIX__/bin:");
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ if ((newpath = (char *)malloc(newpathsize)) != NULL) {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ strlcpy(newpath, "__PREFIX__/bin:", newpathsize);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ strlcat(newpath, oldpath, newpathsize);
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+ setenv("PATH", newpath, 1);
</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;'>- #endif
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- init_standard_fds ();
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/editors/emacs/files/site-start.el b/editors/emacs/files/site-start.el
</span><span style='display:block; white-space:pre;color:#808080;'>index 6138a9d..7fc5f3d 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/editors/emacs/files/site-start.el
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/editors/emacs/files/site-start.el
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10,3 +10,9 @@
</span>
;; Info-directory-list contains ${prefix}/share/info. See #32148.
(setq Info-default-directory-list (cons "__PREFIX__/share/info" Info-default-directory-list))
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+;; Use the OS X Emoji font for Emoticons
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+(when (fboundp 'set-fontset-font)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (set-fontset-font "fontset-default"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 'symbol
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ (font-spec :name "Apple Color Emoji") nil 'prepend))
</span></pre><pre style='margin:0'>
</pre>