annotate lisp/term/mac-win.el @ 95393:c6d82cbe67bc

(relative_filename): Treat "///" like "/" in filenames.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Thu, 29 May 2008 20:18:07 +0000
parents 92723dccd995
children e7b40b183291
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
91856
4bd7a871cf03 Fix coding tag.
Jason Rumney <jasonr@gnu.org>
parents: 91441
diff changeset
1 ;;; mac-win.el --- parse switches controlling interface with Mac window system -*-coding: utf-8-*-
32752
923b8d6d8277 Initial check-in: changes for building Emacs under Mac OS.
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2
74509
f7702c5f335d Update copyright years.
Glenn Morris <rgm@gnu.org>
parents: 73431
diff changeset
3 ;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
79718
f1713f61ee49 Add 2008 to copyright years.
Glenn Morris <rgm@gnu.org>
parents: 79606
diff changeset
4 ;; 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
32752
923b8d6d8277 Initial check-in: changes for building Emacs under Mac OS.
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents: 39101
diff changeset
6 ;; Author: Andrew Choi <akochoi@mac.com>
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
7 ;; Keywords: terminals
32752
923b8d6d8277 Initial check-in: changes for building Emacs under Mac OS.
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8
923b8d6d8277 Initial check-in: changes for building Emacs under Mac OS.
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9 ;; This file is part of GNU Emacs.
923b8d6d8277 Initial check-in: changes for building Emacs under Mac OS.
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10
94671
f3ab0c2464f5 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 94307
diff changeset
11 ;; GNU Emacs is free software: you can redistribute it and/or modify
32752
923b8d6d8277 Initial check-in: changes for building Emacs under Mac OS.
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
12 ;; it under the terms of the GNU General Public License as published by
94671
f3ab0c2464f5 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 94307
diff changeset
13 ;; the Free Software Foundation, either version 3 of the License, or
f3ab0c2464f5 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 94307
diff changeset
14 ;; (at your option) any later version.
32752
923b8d6d8277 Initial check-in: changes for building Emacs under Mac OS.
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
15
923b8d6d8277 Initial check-in: changes for building Emacs under Mac OS.
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
16 ;; GNU Emacs is distributed in the hope that it will be useful,
923b8d6d8277 Initial check-in: changes for building Emacs under Mac OS.
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
17 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
923b8d6d8277 Initial check-in: changes for building Emacs under Mac OS.
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
18 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
923b8d6d8277 Initial check-in: changes for building Emacs under Mac OS.
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
19 ;; GNU General Public License for more details.
923b8d6d8277 Initial check-in: changes for building Emacs under Mac OS.
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
20
923b8d6d8277 Initial check-in: changes for building Emacs under Mac OS.
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
21 ;; You should have received a copy of the GNU General Public License
94671
f3ab0c2464f5 Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents: 94307
diff changeset
22 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
32752
923b8d6d8277 Initial check-in: changes for building Emacs under Mac OS.
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
23
38436
b174db545cfd Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents: 34467
diff changeset
24 ;;; Commentary:
b174db545cfd Some fixes to follow coding conventions.
Pavel Janík <Pavel@Janik.cz>
parents: 34467
diff changeset
25
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
26 ;; Mac-win.el: this file is loaded from ../lisp/startup.el when it recognizes
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
27 ;; that Mac windows are to be used. Command line switches are parsed and those
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
28 ;; pertaining to Mac are processed and removed from the command line. The
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
29 ;; Mac display is opened and hooks are set for popping up the initial window.
32752
923b8d6d8277 Initial check-in: changes for building Emacs under Mac OS.
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
30
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
31 ;; startup.el will then examine startup files, and eventually call the hooks
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
32 ;; which create the first window(s).
32752
923b8d6d8277 Initial check-in: changes for building Emacs under Mac OS.
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
33
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
34 ;;; Code:
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
35
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
36 ;; These are the standard X switches from the Xt Initialize.c file of
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
37 ;; Release 4.
32752
923b8d6d8277 Initial check-in: changes for building Emacs under Mac OS.
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
38
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
39 ;; Command line Resource Manager string
38930
9cf07e15b208 2001-08-24 Andrew Choi <akochoi@cse.cuhk.edu.hk>
Andrew Choi <akochoi@shaw.ca>
parents: 38436
diff changeset
40
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
41 ;; +rv *reverseVideo
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
42 ;; +synchronous *synchronous
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
43 ;; -background *background
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
44 ;; -bd *borderColor
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
45 ;; -bg *background
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
46 ;; -bordercolor *borderColor
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
47 ;; -borderwidth .borderWidth
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
48 ;; -bw .borderWidth
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
49 ;; -display .display
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
50 ;; -fg *foreground
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
51 ;; -fn *font
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
52 ;; -font *font
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
53 ;; -foreground *foreground
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
54 ;; -geometry .geometry
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
55 ;; -iconic .iconic
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
56 ;; -name .name
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
57 ;; -reverse *reverseVideo
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
58 ;; -rv *reverseVideo
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
59 ;; -selectionTimeout .selectionTimeout
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
60 ;; -synchronous *synchronous
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
61 ;; -xrm
32752
923b8d6d8277 Initial check-in: changes for building Emacs under Mac OS.
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
62
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
63 ;; An alist of X options and the function which handles them. See
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
64 ;; ../startup.el.
32752
923b8d6d8277 Initial check-in: changes for building Emacs under Mac OS.
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
65
83619
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83565
diff changeset
66 ;; (if (not (eq window-system 'mac))
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83565
diff changeset
67 ;; (error "%s: Loading mac-win.el but not compiled for Mac" (invocation-name)))
32752
923b8d6d8277 Initial check-in: changes for building Emacs under Mac OS.
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
68
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
69 (require 'frame)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
70 (require 'mouse)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
71 (require 'scroll-bar)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
72 (require 'faces)
61778
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
73 (require 'select)
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
74 (require 'menu-bar)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
75 (require 'fontset)
61497
c47b59f4f76f (dnd): Require dnd
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61335
diff changeset
76 (require 'dnd)
32752
923b8d6d8277 Initial check-in: changes for building Emacs under Mac OS.
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
77
65256
eb3fe804bd18 (mac-charset-info-alist, mac-services-selection, mac-system-script-code):
Juanma Barranquero <lekktu@gmail.com>
parents: 64701
diff changeset
78 (defvar mac-charset-info-alist)
70559
a1af34eacdb3 (mac-font-panel-mode): Doc fix.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70491
diff changeset
79 (defvar mac-service-selection)
65256
eb3fe804bd18 (mac-charset-info-alist, mac-services-selection, mac-system-script-code):
Juanma Barranquero <lekktu@gmail.com>
parents: 64701
diff changeset
80 (defvar mac-system-script-code)
67450
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
81 (defvar mac-apple-event-map)
70491
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
82 (defvar mac-font-panel-mode)
71175
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
83 (defvar mac-ts-active-input-overlay)
80523
393b3d64ca25 (mac-ts-active-input-buf): Move defvar to macterm.c.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 80504
diff changeset
84 (defvar mac-ts-active-input-buf)
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
85 (defvar x-invocation-args)
86289
8a7ed478f7bc * international/titdic-cnv.el (dos-8+3-filename):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 86277
diff changeset
86 (declare-function mac-code-convert-string "mac.c")
8a7ed478f7bc * international/titdic-cnv.el (dos-8+3-filename):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 86277
diff changeset
87 (declare-function mac-coerce-ae-data "mac.c")
8a7ed478f7bc * international/titdic-cnv.el (dos-8+3-filename):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 86277
diff changeset
88 (declare-function mac-resume-apple-event "macselect.c")
86292
caa8713ae325 (mac-font-panel-mode): Fix declaration.
Glenn Morris <rgm@gnu.org>
parents: 86289
diff changeset
89 ;; Suppress warning when compiling on non-Mac.
caa8713ae325 (mac-font-panel-mode): Fix declaration.
Glenn Morris <rgm@gnu.org>
parents: 86289
diff changeset
90 (declare-function mac-font-panel-mode "mac-win.el")
86289
8a7ed478f7bc * international/titdic-cnv.el (dos-8+3-filename):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 86277
diff changeset
91 (declare-function mac-atsu-font-face-attributes "macfns.c")
8a7ed478f7bc * international/titdic-cnv.el (dos-8+3-filename):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 86277
diff changeset
92 (declare-function mac-ae-set-reply-parameter "macselect.c")
8a7ed478f7bc * international/titdic-cnv.el (dos-8+3-filename):
Dan Nicolaescu <dann@ics.uci.edu>
parents: 86277
diff changeset
93 (declare-function mac-clear-font-name-table "macfns.c")
32752
923b8d6d8277 Initial check-in: changes for building Emacs under Mac OS.
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
94
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
95 (defvar x-command-line-resources nil)
56887
25a1d37d22fb Add ASCII equivalents for some function keys.
Steven Tamm <steventamm@mac.com>
parents: 56373
diff changeset
96
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
97 ;; Handler for switches of the form "-switch value" or "-switch".
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
98 (defun x-handle-switch (switch)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
99 (let ((aelt (assoc switch command-line-x-option-alist)))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
100 (if aelt
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
101 (let ((param (nth 3 aelt))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
102 (value (nth 4 aelt)))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
103 (if value
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
104 (setq default-frame-alist
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
105 (cons (cons param value)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
106 default-frame-alist))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
107 (setq default-frame-alist
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
108 (cons (cons param
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
109 (car x-invocation-args))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
110 default-frame-alist)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
111 x-invocation-args (cdr x-invocation-args)))))))
32752
923b8d6d8277 Initial check-in: changes for building Emacs under Mac OS.
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
112
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
113 ;; Handler for switches of the form "-switch n"
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
114 (defun x-handle-numeric-switch (switch)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
115 (let ((aelt (assoc switch command-line-x-option-alist)))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
116 (if aelt
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
117 (let ((param (nth 3 aelt)))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
118 (setq default-frame-alist
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
119 (cons (cons param
62402
a7e02ef1e3d6 Replace `string-to-int' by `string-to-number'.
Juanma Barranquero <lekktu@gmail.com>
parents: 62291
diff changeset
120 (string-to-number (car x-invocation-args)))
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
121 default-frame-alist)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
122 x-invocation-args
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
123 (cdr x-invocation-args))))))
32752
923b8d6d8277 Initial check-in: changes for building Emacs under Mac OS.
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
124
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
125 ;; Handle options that apply to initial frame only
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
126 (defun x-handle-initial-switch (switch)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
127 (let ((aelt (assoc switch command-line-x-option-alist)))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
128 (if aelt
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
129 (let ((param (nth 3 aelt))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
130 (value (nth 4 aelt)))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
131 (if value
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
132 (setq initial-frame-alist
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
133 (cons (cons param value)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
134 initial-frame-alist))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
135 (setq initial-frame-alist
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
136 (cons (cons param
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
137 (car x-invocation-args))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
138 initial-frame-alist)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
139 x-invocation-args (cdr x-invocation-args)))))))
32752
923b8d6d8277 Initial check-in: changes for building Emacs under Mac OS.
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
140
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
141 ;; Make -iconic apply only to the initial frame!
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
142 (defun x-handle-iconic (switch)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
143 (setq initial-frame-alist
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
144 (cons '(visibility . icon) initial-frame-alist)))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
145
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
146 ;; Handle the -xrm option.
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
147 (defun x-handle-xrm-switch (switch)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
148 (unless (consp x-invocation-args)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
149 (error "%s: missing argument to `%s' option" (invocation-name) switch))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
150 (setq x-command-line-resources
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
151 (if (null x-command-line-resources)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
152 (car x-invocation-args)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
153 (concat x-command-line-resources "\n" (car x-invocation-args))))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
154 (setq x-invocation-args (cdr x-invocation-args)))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
155
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
156 ;; Handle the geometry option
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
157 (defun x-handle-geometry (switch)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
158 (let* ((geo (x-parse-geometry (car x-invocation-args)))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
159 (left (assq 'left geo))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
160 (top (assq 'top geo))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
161 (height (assq 'height geo))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
162 (width (assq 'width geo)))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
163 (if (or height width)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
164 (setq default-frame-alist
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
165 (append default-frame-alist
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
166 '((user-size . t))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
167 (if height (list height))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
168 (if width (list width)))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
169 initial-frame-alist
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
170 (append initial-frame-alist
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
171 '((user-size . t))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
172 (if height (list height))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
173 (if width (list width)))))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
174 (if (or left top)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
175 (setq initial-frame-alist
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
176 (append initial-frame-alist
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
177 '((user-position . t))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
178 (if left (list left))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
179 (if top (list top)))))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
180 (setq x-invocation-args (cdr x-invocation-args))))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
181
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
182 ;; Handle the -name option. Set the variable x-resource-name
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
183 ;; to the option's operand; set the name of
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
184 ;; the initial frame, too.
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
185 (defun x-handle-name-switch (switch)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
186 (or (consp x-invocation-args)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
187 (error "%s: missing argument to `%s' option" (invocation-name) switch))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
188 (setq x-resource-name (car x-invocation-args)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
189 x-invocation-args (cdr x-invocation-args))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
190 (setq initial-frame-alist (cons (cons 'name x-resource-name)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
191 initial-frame-alist)))
58644
14b3f432fd7e * term/mac-win.el (ccl-encode-mac-roman-font)
Steven Tamm <steventamm@mac.com>
parents: 56887
diff changeset
192
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
193 (defvar x-display-name nil
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
194 "The display name specifying server and frame.")
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
195
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
196 (defun x-handle-display (switch)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
197 (setq x-display-name (car x-invocation-args)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
198 x-invocation-args (cdr x-invocation-args)))
58644
14b3f432fd7e * term/mac-win.el (ccl-encode-mac-roman-font)
Steven Tamm <steventamm@mac.com>
parents: 56887
diff changeset
199
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
200 (defun x-handle-args (args)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
201 "Process the X-related command line options in ARGS.
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
202 This is done before the user's startup file is loaded. They are copied to
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
203 `x-invocation-args', from which the X-related things are extracted, first
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
204 the switch (e.g., \"-fg\") in the following code, and possible values
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
205 \(e.g., \"black\") in the option handler code (e.g., x-handle-switch).
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
206 This function returns ARGS minus the arguments that have been processed."
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
207 ;; We use ARGS to accumulate the args that we don't handle here, to return.
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
208 (setq x-invocation-args args
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
209 args nil)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
210 (while (and x-invocation-args
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
211 (not (equal (car x-invocation-args) "--")))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
212 (let* ((this-switch (car x-invocation-args))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
213 (orig-this-switch this-switch)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
214 completion argval aelt handler)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
215 (setq x-invocation-args (cdr x-invocation-args))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
216 ;; Check for long options with attached arguments
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
217 ;; and separate out the attached option argument into argval.
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
218 (if (string-match "^--[^=]*=" this-switch)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
219 (setq argval (substring this-switch (match-end 0))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
220 this-switch (substring this-switch 0 (1- (match-end 0)))))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
221 ;; Complete names of long options.
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
222 (if (string-match "^--" this-switch)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
223 (progn
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
224 (setq completion (try-completion this-switch command-line-x-option-alist))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
225 (if (eq completion t)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
226 ;; Exact match for long option.
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
227 nil
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
228 (if (stringp completion)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
229 (let ((elt (assoc completion command-line-x-option-alist)))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
230 ;; Check for abbreviated long option.
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
231 (or elt
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
232 (error "Option `%s' is ambiguous" this-switch))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
233 (setq this-switch completion))))))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
234 (setq aelt (assoc this-switch command-line-x-option-alist))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
235 (if aelt (setq handler (nth 2 aelt)))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
236 (if handler
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
237 (if argval
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
238 (let ((x-invocation-args
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
239 (cons argval x-invocation-args)))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
240 (funcall handler this-switch))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
241 (funcall handler this-switch))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
242 (setq args (cons orig-this-switch args)))))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
243 (nconc (nreverse args) x-invocation-args))
60620
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
244
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
245
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
246 ;;
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
247 ;; Standard Mac cursor shapes
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
248 ;;
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
249
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
250 (defconst mac-pointer-arrow 0)
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
251 (defconst mac-pointer-copy-arrow 1)
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
252 (defconst mac-pointer-alias-arrow 2)
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
253 (defconst mac-pointer-contextual-menu-arrow 3)
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
254 (defconst mac-pointer-I-beam 4)
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
255 (defconst mac-pointer-cross 5)
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
256 (defconst mac-pointer-plus 6)
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
257 (defconst mac-pointer-watch 7)
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
258 (defconst mac-pointer-closed-hand 8)
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
259 (defconst mac-pointer-open-hand 9)
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
260 (defconst mac-pointer-pointing-hand 10)
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
261 (defconst mac-pointer-counting-up-hand 11)
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
262 (defconst mac-pointer-counting-down-hand 12)
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
263 (defconst mac-pointer-counting-up-and-down-hand 13)
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
264 (defconst mac-pointer-spinning 14)
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
265 (defconst mac-pointer-resize-left 15)
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
266 (defconst mac-pointer-resize-right 16)
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
267 (defconst mac-pointer-resize-left-right 17)
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
268 ;; Mac OS X 10.2 and later
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
269 (defconst mac-pointer-not-allowed 18)
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
270 ;; Mac OS X 10.3 and later
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
271 (defconst mac-pointer-resize-up 19)
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
272 (defconst mac-pointer-resize-down 20)
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
273 (defconst mac-pointer-resize-up-down 21)
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
274 (defconst mac-pointer-poof 22)
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
275
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
276 ;;
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
277 ;; Standard X cursor shapes that have Mac counterparts
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
278 ;;
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
279
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
280 (defconst x-pointer-left-ptr mac-pointer-arrow)
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
281 (defconst x-pointer-xterm mac-pointer-I-beam)
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
282 (defconst x-pointer-crosshair mac-pointer-cross)
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
283 (defconst x-pointer-plus mac-pointer-plus)
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
284 (defconst x-pointer-watch mac-pointer-watch)
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
285 (defconst x-pointer-hand2 mac-pointer-pointing-hand)
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
286 (defconst x-pointer-left-side mac-pointer-resize-left)
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
287 (defconst x-pointer-right-side mac-pointer-resize-right)
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
288 (defconst x-pointer-sb-h-double-arrow mac-pointer-resize-left-right)
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
289 (defconst x-pointer-top-side mac-pointer-resize-up)
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
290 (defconst x-pointer-bottom-side mac-pointer-resize-down)
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
291 (defconst x-pointer-sb-v-double-arrow mac-pointer-resize-up-down)
ffb5c0421a14 Add mouse pointer shape constants.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60610
diff changeset
292
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
293
32752
923b8d6d8277 Initial check-in: changes for building Emacs under Mac OS.
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
294 ;;
923b8d6d8277 Initial check-in: changes for building Emacs under Mac OS.
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
295 ;; Available colors
923b8d6d8277 Initial check-in: changes for building Emacs under Mac OS.
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
296 ;;
94850
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
297 ;; The ordering of the colors is chosen for the user's convenience in
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
298 ;; `list-colors-display', which displays the reverse of this list.
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
299 ;; Roughly speaking, `list-colors-display' orders by (i) named shades
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
300 ;; of grey with hue 0.0, sorted by value (ii) named colors with
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
301 ;; saturation 1.0, sorted by hue, (iii) named non-white colors with
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
302 ;; saturation less than 1.0, sorted by hue, (iv) other named shades of
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
303 ;; white, (v) numbered colors sorted by hue, and (vi) numbered shades
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
304 ;; of grey.
32752
923b8d6d8277 Initial check-in: changes for building Emacs under Mac OS.
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
305
94850
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
306 (defvar x-colors
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
307 '("gray100" "gray99" "gray98" "gray97" "gray96" "gray95" "gray94" "gray93" "gray92"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
308 "gray91" "gray90" "gray89" "gray88" "gray87" "gray86" "gray85" "gray84" "gray83"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
309 "gray82" "gray81" "gray80" "gray79" "gray78" "gray77" "gray76" "gray75" "gray74"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
310 "gray73" "gray72" "gray71" "gray70" "gray69" "gray68" "gray67" "gray66" "gray65"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
311 "gray64" "gray63" "gray62" "gray61" "gray60" "gray59" "gray58" "gray57" "gray56"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
312 "gray55" "gray54" "gray53" "gray52" "gray51" "gray50" "gray49" "gray48" "gray47"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
313 "gray46" "gray45" "gray44" "gray43" "gray42" "gray41" "gray40" "gray39" "gray38"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
314 "gray37" "gray36" "gray35" "gray34" "gray33" "gray32" "gray31" "gray30" "gray29"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
315 "gray28" "gray27" "gray26" "gray25" "gray24" "gray23" "gray22" "gray21" "gray20"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
316 "gray19" "gray18" "gray17" "gray16" "gray15" "gray14" "gray13" "gray12" "gray11"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
317 "gray10" "gray9" "gray8" "gray7" "gray6" "gray5" "gray4" "gray3" "gray2" "gray1"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
318 "gray0" "LightPink1" "LightPink2" "LightPink3" "LightPink4" "pink1" "pink2" "pink3"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
319 "pink4" "PaleVioletRed1" "PaleVioletRed2" "PaleVioletRed3" "PaleVioletRed4"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
320 "LavenderBlush1" "LavenderBlush2" "LavenderBlush3" "LavenderBlush4" "VioletRed1"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
321 "VioletRed2" "VioletRed3" "VioletRed4" "HotPink1" "HotPink2" "HotPink3" "HotPink4"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
322 "DeepPink1" "DeepPink2" "DeepPink3" "DeepPink4" "maroon1" "maroon2" "maroon3"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
323 "maroon4" "orchid1" "orchid2" "orchid3" "orchid4" "plum1" "plum2" "plum3" "plum4"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
324 "thistle1" "thistle2" "thistle3" "thistle4" "MediumOrchid1" "MediumOrchid2"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
325 "MediumOrchid3" "MediumOrchid4" "DarkOrchid1" "DarkOrchid2" "DarkOrchid3"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
326 "DarkOrchid4" "purple1" "purple2" "purple3" "purple4" "MediumPurple1"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
327 "MediumPurple2" "MediumPurple3" "MediumPurple4" "SlateBlue1" "SlateBlue2"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
328 "SlateBlue3" "SlateBlue4" "RoyalBlue1" "RoyalBlue2" "RoyalBlue3" "RoyalBlue4"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
329 "LightSteelBlue1" "LightSteelBlue2" "LightSteelBlue3" "LightSteelBlue4" "SlateGray1"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
330 "SlateGray2" "SlateGray3" "SlateGray4" "DodgerBlue1" "DodgerBlue2" "DodgerBlue3"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
331 "DodgerBlue4" "SteelBlue1" "SteelBlue2" "SteelBlue3" "SteelBlue4" "SkyBlue1"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
332 "SkyBlue2" "SkyBlue3" "SkyBlue4" "LightSkyBlue1" "LightSkyBlue2" "LightSkyBlue3"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
333 "LightSkyBlue4" "LightBlue1" "LightBlue2" "LightBlue3" "LightBlue4" "CadetBlue1"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
334 "CadetBlue2" "CadetBlue3" "CadetBlue4" "azure1" "azure2" "azure3" "azure4"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
335 "LightCyan1" "LightCyan2" "LightCyan3" "LightCyan4" "PaleTurquoise1"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
336 "PaleTurquoise2" "PaleTurquoise3" "PaleTurquoise4" "DarkSlateGray1" "DarkSlateGray2"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
337 "DarkSlateGray3" "DarkSlateGray4" "aquamarine1" "aquamarine2" "aquamarine3"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
338 "aquamarine4" "SeaGreen1" "SeaGreen2" "SeaGreen3" "SeaGreen4" "honeydew1"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
339 "honeydew2" "honeydew3" "honeydew4" "DarkSeaGreen1" "DarkSeaGreen2" "DarkSeaGreen3"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
340 "DarkSeaGreen4" "PaleGreen1" "PaleGreen2" "PaleGreen3" "PaleGreen4"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
341 "DarkOliveGreen1" "DarkOliveGreen2" "DarkOliveGreen3" "DarkOliveGreen4" "OliveDrab1"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
342 "OliveDrab2" "OliveDrab3" "OliveDrab4" "ivory1" "ivory2" "ivory3" "ivory4"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
343 "LightYellow1" "LightYellow2" "LightYellow3" "LightYellow4" "khaki1" "khaki2"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
344 "khaki3" "khaki4" "LemonChiffon1" "LemonChiffon2" "LemonChiffon3" "LemonChiffon4"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
345 "LightGoldenrod1" "LightGoldenrod2" "LightGoldenrod3" "LightGoldenrod4" "cornsilk1"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
346 "cornsilk2" "cornsilk3" "cornsilk4" "goldenrod1" "goldenrod2" "goldenrod3"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
347 "goldenrod4" "DarkGoldenrod1" "DarkGoldenrod2" "DarkGoldenrod3" "DarkGoldenrod4"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
348 "wheat1" "wheat2" "wheat3" "wheat4" "NavajoWhite1" "NavajoWhite2" "NavajoWhite3"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
349 "NavajoWhite4" "burlywood1" "burlywood2" "burlywood3" "burlywood4" "AntiqueWhite1"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
350 "AntiqueWhite2" "AntiqueWhite3" "AntiqueWhite4" "bisque1" "bisque2" "bisque3"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
351 "bisque4" "tan1" "tan2" "tan3" "tan4" "PeachPuff1" "PeachPuff2" "PeachPuff3"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
352 "PeachPuff4" "seashell1" "seashell2" "seashell3" "seashell4" "chocolate1"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
353 "chocolate2" "chocolate3" "chocolate4" "sienna1" "sienna2" "sienna3" "sienna4"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
354 "LightSalmon1" "LightSalmon2" "LightSalmon3" "LightSalmon4" "salmon1" "salmon2"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
355 "salmon3" "salmon4" "coral1" "coral2" "coral3" "coral4" "tomato1" "tomato2"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
356 "tomato3" "tomato4" "MistyRose1" "MistyRose2" "MistyRose3" "MistyRose4" "snow1"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
357 "snow2" "snow3" "snow4" "RosyBrown1" "RosyBrown2" "RosyBrown3" "RosyBrown4"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
358 "IndianRed1" "IndianRed2" "IndianRed3" "IndianRed4" "firebrick1" "firebrick2"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
359 "firebrick3" "firebrick4" "brown1" "brown2" "brown3" "brown4" "magenta1" "magenta2"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
360 "magenta3" "magenta4" "blue1" "blue2" "blue3" "blue4" "DeepSkyBlue1" "DeepSkyBlue2"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
361 "DeepSkyBlue3" "DeepSkyBlue4" "turquoise1" "turquoise2" "turquoise3" "turquoise4"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
362 "cyan1" "cyan2" "cyan3" "cyan4" "SpringGreen1" "SpringGreen2" "SpringGreen3"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
363 "SpringGreen4" "green1" "green2" "green3" "green4" "chartreuse1" "chartreuse2"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
364 "chartreuse3" "chartreuse4" "yellow1" "yellow2" "yellow3" "yellow4" "gold1" "gold2"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
365 "gold3" "gold4" "orange1" "orange2" "orange3" "orange4" "DarkOrange1" "DarkOrange2"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
366 "DarkOrange3" "DarkOrange4" "OrangeRed1" "OrangeRed2" "OrangeRed3" "OrangeRed4"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
367 "red1" "red2" "red3" "red4" "lavender blush" "ghost white" "lavender" "alice blue"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
368 "azure" "light cyan" "mint cream" "honeydew" "ivory" "light goldenrod yellow"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
369 "light yellow" "beige" "floral white" "old lace" "blanched almond" "moccasin"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
370 "papaya whip" "bisque" "antique white" "linen" "peach puff" "seashell" "misty rose"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
371 "snow" "light pink" "pink" "hot pink" "deep pink" "maroon" "pale violet red"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
372 "violet red" "medium violet red" "violet" "plum" "thistle" "orchid" "medium orchid"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
373 "dark orchid" "purple" "blue violet" "medium purple" "light slate blue"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
374 "medium slate blue" "slate blue" "dark slate blue" "midnight blue" "navy"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
375 "dark blue" "light steel blue" "cornflower blue" "dodger blue" "royal blue"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
376 "light slate gray" "slate gray" "dark slate gray" "steel blue" "cadet blue"
94852
92723dccd995 Tweak last change.
Chong Yidong <cyd@stupidchicken.com>
parents: 94850
diff changeset
377 "light sky blue" "sky blue" "light blue" "powder blue" "pale turquoise" "turquoise"
94850
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
378 "medium turquoise" "dark cyan" "aquamarine" "medium aquamarine" "light sea green"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
379 "medium sea green" "sea green" "dark sea green" "pale green" "lime green"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
380 "forest green" "light green" "green yellow" "yellow green" "olive drab"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
381 "dark olive green" "lemon chiffon" "khaki" "dark khaki" "cornsilk"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
382 "pale goldenrod" "light goldenrod" "goldenrod" "dark goldenrod" "wheat"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
383 "navajo white" "tan" "burlywood" "sandy brown" "peru" "chocolate" "saddle brown"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
384 "sienna" "rosy brown" "dark salmon" "coral" "tomato" "light salmon" "salmon"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
385 "light coral" "indian red" "firebrick" "brown" "dark red" "magenta"
94852
92723dccd995 Tweak last change.
Chong Yidong <cyd@stupidchicken.com>
parents: 94850
diff changeset
386 "dark magenta" "dark violet" "medium blue" "blue" "deep sky blue"
94850
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
387 "cyan" "medium spring green" "spring green" "green" "lawn green" "chartreuse"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
388 "yellow" "gold" "orange" "dark orange" "orange red" "red" "white" "white smoke"
eae0a9597713 (x-colors): Re-order colors.
Chong Yidong <cyd@stupidchicken.com>
parents: 94671
diff changeset
389 "gainsboro" "light grey" "gray" "dark grey" "dim gray" "black" )
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
390 "The list of X colors from the `rgb.txt' file.
32752
923b8d6d8277 Initial check-in: changes for building Emacs under Mac OS.
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
391 XConsortium: rgb.txt,v 10.41 94/02/20 18:39:36 rws Exp")
923b8d6d8277 Initial check-in: changes for building Emacs under Mac OS.
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
392
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
393 (defun xw-defined-colors (&optional frame)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
394 "Internal function called by `defined-colors', which see."
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
395 (or frame (setq frame (selected-frame)))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
396 (let ((all-colors x-colors)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
397 (this-color nil)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
398 (defined-colors nil))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
399 (while all-colors
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
400 (setq this-color (car all-colors)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
401 all-colors (cdr all-colors))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
402 (and (color-supported-p this-color frame t)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
403 (setq defined-colors (cons this-color defined-colors))))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
404 defined-colors))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
405
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
406 ;;;; Function keys
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
407
83620
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
408 (defun x-setup-function-keys (frame)
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
409 "Setup Function Keys for mac."
86251
ec2f30e07030 * term/mac-win.el (x-setup-function-keys): Only setup
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83758
diff changeset
410 ;; Don't do this twice on the same display, or it would break
ec2f30e07030 * term/mac-win.el (x-setup-function-keys): Only setup
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83758
diff changeset
411 ;; normal-erase-is-backspace-mode.
ec2f30e07030 * term/mac-win.el (x-setup-function-keys): Only setup
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83758
diff changeset
412 (unless (terminal-parameter frame 'x-setup-function-keys)
ec2f30e07030 * term/mac-win.el (x-setup-function-keys): Only setup
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83758
diff changeset
413 (with-selected-frame frame
ec2f30e07030 * term/mac-win.el (x-setup-function-keys): Only setup
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83758
diff changeset
414 ;; Map certain keypad keys into ASCII characters
ec2f30e07030 * term/mac-win.el (x-setup-function-keys): Only setup
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83758
diff changeset
415 ;; that people usually expect.
ec2f30e07030 * term/mac-win.el (x-setup-function-keys): Only setup
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83758
diff changeset
416 (define-key local-function-key-map [backspace] [?\d])
ec2f30e07030 * term/mac-win.el (x-setup-function-keys): Only setup
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83758
diff changeset
417 (define-key local-function-key-map [delete] [?\d])
ec2f30e07030 * term/mac-win.el (x-setup-function-keys): Only setup
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83758
diff changeset
418 (define-key local-function-key-map [tab] [?\t])
ec2f30e07030 * term/mac-win.el (x-setup-function-keys): Only setup
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83758
diff changeset
419 (define-key local-function-key-map [linefeed] [?\n])
ec2f30e07030 * term/mac-win.el (x-setup-function-keys): Only setup
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83758
diff changeset
420 (define-key local-function-key-map [clear] [?\C-l])
ec2f30e07030 * term/mac-win.el (x-setup-function-keys): Only setup
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83758
diff changeset
421 (define-key local-function-key-map [return] [?\C-m])
ec2f30e07030 * term/mac-win.el (x-setup-function-keys): Only setup
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83758
diff changeset
422 (define-key local-function-key-map [escape] [?\e])
ec2f30e07030 * term/mac-win.el (x-setup-function-keys): Only setup
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83758
diff changeset
423 (define-key local-function-key-map [M-backspace] [?\M-\d])
ec2f30e07030 * term/mac-win.el (x-setup-function-keys): Only setup
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83758
diff changeset
424 (define-key local-function-key-map [M-delete] [?\M-\d])
ec2f30e07030 * term/mac-win.el (x-setup-function-keys): Only setup
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83758
diff changeset
425 (define-key local-function-key-map [M-tab] [?\M-\t])
ec2f30e07030 * term/mac-win.el (x-setup-function-keys): Only setup
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83758
diff changeset
426 (define-key local-function-key-map [M-linefeed] [?\M-\n])
ec2f30e07030 * term/mac-win.el (x-setup-function-keys): Only setup
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83758
diff changeset
427 (define-key local-function-key-map [M-clear] [?\M-\C-l])
ec2f30e07030 * term/mac-win.el (x-setup-function-keys): Only setup
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83758
diff changeset
428 (define-key local-function-key-map [M-return] [?\M-\C-m])
ec2f30e07030 * term/mac-win.el (x-setup-function-keys): Only setup
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83758
diff changeset
429 (define-key local-function-key-map [M-escape] [?\M-\e])
ec2f30e07030 * term/mac-win.el (x-setup-function-keys): Only setup
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83758
diff changeset
430 (substitute-key-definition 'suspend-emacs 'iconify-or-deiconify-frame
ec2f30e07030 * term/mac-win.el (x-setup-function-keys): Only setup
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83758
diff changeset
431 local-function-key-map global-map))
86253
e798647b4c5a Fix typo.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 86251
diff changeset
432 (set-terminal-parameter frame 'x-setup-function-keys t)))
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
433
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
434 ;; These tell read-char how to convert
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
435 ;; these special chars to ASCII.
60610
2e557b2af3db (function-key-map): Sync with x-win.el.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60190
diff changeset
436 (put 'backspace 'ascii-character ?\d)
2e557b2af3db (function-key-map): Sync with x-win.el.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60190
diff changeset
437 (put 'delete 'ascii-character ?\d)
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
438 (put 'tab 'ascii-character ?\t)
60610
2e557b2af3db (function-key-map): Sync with x-win.el.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60190
diff changeset
439 (put 'linefeed 'ascii-character ?\n)
2e557b2af3db (function-key-map): Sync with x-win.el.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60190
diff changeset
440 (put 'clear 'ascii-character ?\C-l)
2e557b2af3db (function-key-map): Sync with x-win.el.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60190
diff changeset
441 (put 'return 'ascii-character ?\C-m)
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
442 (put 'escape 'ascii-character ?\e)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
443
67099
6c0071d00d11 Make modifier `ctrl' an alias of `control'.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67090
diff changeset
444 ;; Modifier name `ctrl' is an alias of `control'.
6c0071d00d11 Make modifier `ctrl' an alias of `control'.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67090
diff changeset
445 (put 'ctrl 'modifier-value (get 'control 'modifier-value))
6c0071d00d11 Make modifier `ctrl' an alias of `control'.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67090
diff changeset
446
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
447
61556
6b15c97abf1d Don't set file-name-coding-system. Decode variables system-name,
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61502
diff changeset
448 ;;;; Script codes and coding systems
61502
3150e849361e (kTextEncodingMacRoman, kTextEncodingISOLatin1)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61497
diff changeset
449 (defconst mac-script-code-coding-systems
3150e849361e (kTextEncodingMacRoman, kTextEncodingISOLatin1)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61497
diff changeset
450 '((0 . mac-roman) ; smRoman
3150e849361e (kTextEncodingMacRoman, kTextEncodingISOLatin1)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61497
diff changeset
451 (1 . japanese-shift-jis) ; smJapanese
3150e849361e (kTextEncodingMacRoman, kTextEncodingISOLatin1)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61497
diff changeset
452 (2 . chinese-big5) ; smTradChinese
3150e849361e (kTextEncodingMacRoman, kTextEncodingISOLatin1)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61497
diff changeset
453 (3 . korean-iso-8bit) ; smKorean
3150e849361e (kTextEncodingMacRoman, kTextEncodingISOLatin1)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61497
diff changeset
454 (7 . mac-cyrillic) ; smCyrillic
3150e849361e (kTextEncodingMacRoman, kTextEncodingISOLatin1)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61497
diff changeset
455 (25 . chinese-iso-8bit) ; smSimpChinese
3150e849361e (kTextEncodingMacRoman, kTextEncodingISOLatin1)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61497
diff changeset
456 (29 . mac-centraleurroman) ; smCentralEuroRoman
3150e849361e (kTextEncodingMacRoman, kTextEncodingISOLatin1)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61497
diff changeset
457 )
3150e849361e (kTextEncodingMacRoman, kTextEncodingISOLatin1)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61497
diff changeset
458 "Alist of Mac script codes vs Emacs coding systems.")
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
459
61659
e40b2bd9a366 Add coding: tag and set it to iso-2022-7bit.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61556
diff changeset
460 (defun mac-add-charset-info (xlfd-charset mac-text-encoding)
65576
72c8b77fb4f9 (mac-add-charset-info): Doc fix.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65256
diff changeset
461 "Add a character set to display with Mac fonts.
72c8b77fb4f9 (mac-add-charset-info): Doc fix.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65256
diff changeset
462 Create an entry in `mac-charset-info-alist'.
61659
e40b2bd9a366 Add coding: tag and set it to iso-2022-7bit.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61556
diff changeset
463 XLFD-CHARSET is a string which will appear in the XLFD font name
e40b2bd9a366 Add coding: tag and set it to iso-2022-7bit.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61556
diff changeset
464 to identify the character set. MAC-TEXT-ENCODING is the
e40b2bd9a366 Add coding: tag and set it to iso-2022-7bit.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61556
diff changeset
465 correspoinding TextEncodingBase value."
e40b2bd9a366 Add coding: tag and set it to iso-2022-7bit.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61556
diff changeset
466 (add-to-list 'mac-charset-info-alist
e40b2bd9a366 Add coding: tag and set it to iso-2022-7bit.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61556
diff changeset
467 (list xlfd-charset mac-text-encoding
e40b2bd9a366 Add coding: tag and set it to iso-2022-7bit.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61556
diff changeset
468 (cdr (assq mac-text-encoding
e40b2bd9a366 Add coding: tag and set it to iso-2022-7bit.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61556
diff changeset
469 mac-script-code-coding-systems)))))
e40b2bd9a366 Add coding: tag and set it to iso-2022-7bit.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61556
diff changeset
470
e40b2bd9a366 Add coding: tag and set it to iso-2022-7bit.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61556
diff changeset
471 (setq mac-charset-info-alist nil)
e40b2bd9a366 Add coding: tag and set it to iso-2022-7bit.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61556
diff changeset
472 (mac-add-charset-info "mac-roman" 0)
e40b2bd9a366 Add coding: tag and set it to iso-2022-7bit.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61556
diff changeset
473 (mac-add-charset-info "jisx0208.1983-sjis" 1)
e40b2bd9a366 Add coding: tag and set it to iso-2022-7bit.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61556
diff changeset
474 (mac-add-charset-info "jisx0201.1976-0" 1)
e40b2bd9a366 Add coding: tag and set it to iso-2022-7bit.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61556
diff changeset
475 (mac-add-charset-info "big5-0" 2)
e40b2bd9a366 Add coding: tag and set it to iso-2022-7bit.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61556
diff changeset
476 (mac-add-charset-info "ksc5601.1989-0" 3)
e40b2bd9a366 Add coding: tag and set it to iso-2022-7bit.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61556
diff changeset
477 (mac-add-charset-info "mac-cyrillic" 7)
e40b2bd9a366 Add coding: tag and set it to iso-2022-7bit.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61556
diff changeset
478 (mac-add-charset-info "gb2312.1980-0" 25)
e40b2bd9a366 Add coding: tag and set it to iso-2022-7bit.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61556
diff changeset
479 (mac-add-charset-info "mac-centraleurroman" 29)
e40b2bd9a366 Add coding: tag and set it to iso-2022-7bit.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61556
diff changeset
480 (mac-add-charset-info "mac-symbol" 33)
e40b2bd9a366 Add coding: tag and set it to iso-2022-7bit.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61556
diff changeset
481 (mac-add-charset-info "adobe-fontspecific" 33) ; for X-Symbol
e40b2bd9a366 Add coding: tag and set it to iso-2022-7bit.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61556
diff changeset
482 (mac-add-charset-info "mac-dingbats" 34)
65768
592847746fca Add charset info for "iso10646-1". Modify default fontset to use
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65576
diff changeset
483 (mac-add-charset-info "iso10646-1" 126) ; for ATSUI
61659
e40b2bd9a366 Add coding: tag and set it to iso-2022-7bit.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61556
diff changeset
484
90397
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
485 (define-charset 'mac-centraleurroman
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
486 "Mac Central European Roman"
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
487 :short-name "Mac CE"
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
488 :ascii-compatible-p t
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
489 :code-space [0 255]
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
490 :map
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
491 (let ((tbl
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
492 [?\Ä ?\Ā ?\ā ?\É ?\Ą ?\Ö ?\Ü ?\á ?\ą ?\Č ?\ä ?\č ?\Ć ?\ć ?\é ?\Ź
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
493 ?\ź ?\Ď ?\í ?\ď ?\Ē ?\ē ?\Ė ?\ó ?\ė ?\ô ?\ö ?\õ ?\ú ?\Ě ?\ě ?\ü
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
494 ?\† ?\° ?\Ę ?\£ ?\§ ?\• ?\¶ ?\ß ?\® ?\© ?\™ ?\ę ?\¨ ?\≠ ?\ģ ?\Į
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
495 ?\į ?\Ī ?\≤ ?\≥ ?\ī ?\Ķ ?\∂ ?\∑ ?\ł ?\Ļ ?\ļ ?\Ľ ?\ľ ?\Ĺ ?\ĺ ?\Ņ
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
496 ?\ņ ?\Ń ?\¬ ?\√ ?\ń ?\Ň ?\∆ ?\« ?\» ?\… ?\  ?\ň ?\Ő ?\Õ ?\ő ?\Ō
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
497 ?\– ?\— ?\“ ?\” ?\‘ ?\’ ?\÷ ?\◊ ?\ō ?\Ŕ ?\ŕ ?\Ř ?\‹ ?\› ?\ř ?\Ŗ
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
498 ?\ŗ ?\Š ?\‚ ?\„ ?\š ?\Ś ?\ś ?\Á ?\Ť ?\ť ?\Í ?\Ž ?\ž ?\Ū ?\Ó ?\Ô
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
499 ?\ū ?\Ů ?\Ú ?\ů ?\Ű ?\ű ?\Ų ?\ų ?\Ý ?\ý ?\ķ ?\Ż ?\Ł ?\ż ?\Ģ ?\ˇ])
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
500 (map (make-vector 512 nil)))
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
501 (or (= (length tbl) 128)
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
502 (error "Invalid vector length: %d" (length tbl)))
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
503 (dotimes (i 128)
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
504 (aset map (* i 2) i)
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
505 (aset map (1+ (* i 2)) i))
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
506 (dotimes (i 128)
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
507 (aset map (+ 256 (* i 2)) (+ 128 i))
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
508 (aset map (+ 256 (1+ (* i 2))) (aref tbl i)))
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
509 map))
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
510
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
511 (define-coding-system 'mac-centraleurroman
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
512 "Mac Central European Roman Encoding (MIME:x-mac-centraleurroman)."
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
513 :coding-type 'charset
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
514 :mnemonic ?*
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
515 :charset-list '(mac-centraleurroman)
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
516 :mime-charset 'x-mac-centraleurroman)
70379
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
517
90397
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
518 (define-charset 'mac-cyrillic
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
519 "Mac Cyrillic"
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
520 :short-name "Mac CYRILLIC"
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
521 :ascii-compatible-p t
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
522 :code-space [0 255]
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
523 :map
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
524 (let ((tbl
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
525 [?\А ?\Б ?\В ?\Г ?\Д ?\Е ?\Ж ?\З ?\И ?\Й ?\К ?\Л ?\М ?\Н ?\О ?\П
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
526 ?\Р ?\С ?\Т ?\У ?\Ф ?\Х ?\Ц ?\Ч ?\Ш ?\Щ ?\Ъ ?\Ы ?\Ь ?\Э ?\Ю ?\Я
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
527 ?\† ?\° ?\Ґ ?\£ ?\§ ?\• ?\¶ ?\І ?\® ?\© ?\™ ?\Ђ ?\ђ ?\≠ ?\Ѓ ?\ѓ
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
528 ?\∞ ?\± ?\≤ ?\≥ ?\і ?\µ ?\ґ ?\Ј ?\Є ?\є ?\Ї ?\ї ?\Љ ?\љ ?\Њ ?\њ
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
529 ?\ј ?\Ѕ ?\¬ ?\√ ?\ƒ ?\≈ ?\∆ ?\« ?\» ?\… ?\  ?\Ћ ?\ћ ?\Ќ ?\ќ ?\ѕ
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
530 ?\– ?\— ?\“ ?\” ?\‘ ?\’ ?\÷ ?\„ ?\Ў ?\ў ?\Џ ?\џ ?\№ ?\Ё ?\ё ?\я
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
531 ?\а ?\б ?\в ?\г ?\д ?\е ?\ж ?\з ?\и ?\й ?\к ?\л ?\м ?\н ?\о ?\п
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
532 ?\р ?\с ?\т ?\у ?\ф ?\х ?\ц ?\ч ?\ш ?\щ ?\ъ ?\ы ?\ь ?\э ?\ю ?\€])
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
533 (map (make-vector 512 nil)))
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
534 (or (= (length tbl) 128)
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
535 (error "Invalid vector length: %d" (length tbl)))
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
536 (dotimes (i 128)
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
537 (aset map (* i 2) i)
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
538 (aset map (1+ (* i 2)) i))
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
539 (dotimes (i 128)
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
540 (aset map (+ 256 (* i 2)) (+ 128 i))
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
541 (aset map (+ 256 (1+ (* i 2))) (aref tbl i)))
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
542 map))
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
543
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
544 (define-coding-system 'mac-cyrillic
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
545 "Mac Cyrillic Encoding (MIME:x-mac-cyrillic)."
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
546 :coding-type 'charset
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
547 :mnemonic ?*
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
548 :charset-list '(mac-cyrillic)
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
549 :mime-charset 'x-mac-cyrillic)
70379
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
550
90397
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
551 (define-charset 'mac-symbol
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
552 "Mac Symbol"
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
553 :short-name "Mac SYMBOL"
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
554 :code-space [32 254]
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
555 :map
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
556 (let ((tbl-32-126
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
557 [?\ ?\! ?\∀ ?\# ?\∃ ?\% ?\& ?\∍ ?\( ?\) ?\∗ ?\+ ?\, ?\− ?\. ?\/
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
558 ?\0 ?\1 ?\2 ?\3 ?\4 ?\5 ?\6 ?\7 ?\8 ?\9 ?\: ?\; ?\< ?\= ?\> ?\?
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
559 ?\≅ ?\Α ?\Β ?\Χ ?\Δ ?\Ε ?\Φ ?\Γ ?\Η ?\Ι ?\ϑ ?\Κ ?\Λ ?\Μ ?\Ν ?\Ο
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
560 ?\Π ?\Θ ?\Ρ ?\Σ ?\Τ ?\Υ ?\ς ?\Ω ?\Ξ ?\Ψ ?\Ζ ?\[ ?\∴ ?\] ?\⊥ ?\_
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
561 ?\ ?\α ?\β ?\χ ?\δ ?\ε ?\φ ?\γ ?\η ?\ι ?\ϕ ?\κ ?\λ ?\μ ?\ν ?\ο
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
562 ?\π ?\θ ?\ρ ?\σ ?\τ ?\υ ?\ϖ ?\ω ?\ξ ?\ψ ?\ζ ?\{ ?\| ?\} ?\∼])
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
563 (map-32-126 (make-vector (* (1+ (- 126 32)) 2) nil))
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
564 (tbl-160-254
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
565 ;; Mapping of the following characters are changed from the
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
566 ;; original one:
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
567 ;; 0xE2 0x00AE+0xF87F->0x00AE # REGISTERED SIGN, alternate: sans serif
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
568 ;; 0xE3 0x00A9+0xF87F->0x00A9 # COPYRIGHT SIGN, alternate: sans serif
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
569 ;; 0xE4 0x2122+0xF87F->0x2122 # TRADE MARK SIGN, alternate: sans serif
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
570 [?\€ ?\ϒ ?\′ ?\≤ ?\⁄ ?\∞ ?\ƒ ?\♣ ?\♦ ?\♥ ?\♠ ?\↔ ?\← ?\↑ ?\→ ?\↓
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
571 ?\° ?\± ?\″ ?\≥ ?\× ?\∝ ?\∂ ?\• ?\÷ ?\≠ ?\≡ ?\≈ ?\… ?\⏐ ?\⎯ ?\↵
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
572 ?\ℵ ?\ℑ ?\ℜ ?\℘ ?\⊗ ?\⊕ ?\∅ ?\∩ ?\∪ ?\⊃ ?\⊇ ?\⊄ ?\⊂ ?\⊆ ?\∈ ?\∉
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
573 ?\∠ ?\∇ ?\® ?\© ?\™ ?\∏ ?\√ ?\⋅ ?\¬ ?\∧ ?\∨ ?\⇔ ?\⇐ ?\⇑ ?\⇒ ?\⇓
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
574 ?\◊ ?\〈 ?\® ?\© ?\™ ?\∑ ?\⎛ ?\⎜ ?\⎝ ?\⎡ ?\⎢ ?\⎣ ?\⎧ ?\⎨ ?\⎩ ?\⎪
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
575 ?\ ?\〉 ?\∫ ?\⌠ ?\⎮ ?\⌡ ?\⎞ ?\⎟ ?\⎠ ?\⎤ ?\⎥ ?\⎦ ?\⎫ ?\⎬ ?\⎭])
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
576 (map-160-254 (make-vector (* (1+ (- 254 160)) 2) nil)))
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
577 (dotimes (i (1+ (- 126 32)))
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
578 (aset map-32-126 (* i 2) (+ 32 i))
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
579 (aset map-32-126 (1+ (* i 2)) (aref tbl-32-126 i)))
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
580 (dotimes (i (1+ (- 254 160)))
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
581 (aset map-160-254 (* i 2) (+ 160 i))
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
582 (aset map-160-254 (1+ (* i 2)) (aref tbl-160-254 i)))
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
583 (vconcat map-32-126 map-160-254)))
70379
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
584
90397
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
585 (define-charset 'mac-dingbats
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
586 "Mac Dingbats"
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
587 :short-name "Mac Dingbats"
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
588 :code-space [32 254]
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
589 :map
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
590 (let ((tbl-32-126
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
591 [?\ ?\✁ ?\✂ ?\✃ ?\✄ ?\☎ ?\✆ ?\✇ ?\✈ ?\✉ ?\☛ ?\☞ ?\✌ ?\✍ ?\✎ ?\✏
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
592 ?\✐ ?\✑ ?\✒ ?\✓ ?\✔ ?\✕ ?\✖ ?\✗ ?\✘ ?\✙ ?\✚ ?\✛ ?\✜ ?\✝ ?\✞ ?\✟
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
593 ?\✠ ?\✡ ?\✢ ?\✣ ?\✤ ?\✥ ?\✦ ?\✧ ?\★ ?\✩ ?\✪ ?\✫ ?\✬ ?\✭ ?\✮ ?\✯
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
594 ?\✰ ?\✱ ?\✲ ?\✳ ?\✴ ?\✵ ?\✶ ?\✷ ?\✸ ?\✹ ?\✺ ?\✻ ?\✼ ?\✽ ?\✾ ?\✿
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
595 ?\❀ ?\❁ ?\❂ ?\❃ ?\❄ ?\❅ ?\❆ ?\❇ ?\❈ ?\❉ ?\❊ ?\❋ ?\● ?\❍ ?\■ ?\❏
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
596 ?\❐ ?\❑ ?\❒ ?\▲ ?\▼ ?\◆ ?\❖ ?\◗ ?\❘ ?\❙ ?\❚ ?\❛ ?\❜ ?\❝ ?\❞])
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
597 (map-32-126 (make-vector (* (1+ (- 126 32)) 2) nil))
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
598 (tbl-128-141
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
599 [?\❨ ?\❩ ?\❪ ?\❫ ?\❬ ?\❭ ?\❮ ?\❯ ?\❰ ?\❱ ?\❲ ?\❳ ?\❴ ?\❵])
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
600 (map-128-141 (make-vector (* (1+ (- 141 128)) 2) nil))
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
601 (tbl-161-239
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
602 [?\❡ ?\❢ ?\❣ ?\❤ ?\❥ ?\❦ ?\❧ ?\♣ ?\♦ ?\♥ ?\♠ ?\① ?\② ?\③ ?\④
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
603 ?\⑤ ?\⑥ ?\⑦ ?\⑧ ?\⑨ ?\⑩ ?\❶ ?\❷ ?\❸ ?\❹ ?\❺ ?\❻ ?\❼ ?\❽ ?\❾ ?\❿
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
604 ?\➀ ?\➁ ?\➂ ?\➃ ?\➄ ?\➅ ?\➆ ?\➇ ?\➈ ?\➉ ?\➊ ?\➋ ?\➌ ?\➍ ?\➎ ?\➏
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
605 ?\➐ ?\➑ ?\➒ ?\➓ ?\➔ ?\→ ?\↔ ?\↕ ?\➘ ?\➙ ?\➚ ?\➛ ?\➜ ?\➝ ?\➞ ?\➟
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
606 ?\➠ ?\➡ ?\➢ ?\➣ ?\➤ ?\➥ ?\➦ ?\➧ ?\➨ ?\➩ ?\➪ ?\➫ ?\➬ ?\➭ ?\➮ ?\➯])
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
607 (map-161-239 (make-vector (* (1+ (- 239 161)) 2) nil))
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
608 (tbl-241-254
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
609 [?\➱ ?\➲ ?\➳ ?\➴ ?\➵ ?\➶ ?\➷ ?\➸ ?\➹ ?\➺ ?\➻ ?\➼ ?\➽ ?\➾])
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
610 (map-241-254 (make-vector (* (1+ (- 254 241)) 2) nil)))
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
611 (dotimes (i (1+ (- 126 32)))
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
612 (aset map-32-126 (* i 2) (+ 32 i))
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
613 (aset map-32-126 (1+ (* i 2)) (aref tbl-32-126 i)))
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
614 (dotimes (i (1+ (- 141 128)))
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
615 (aset map-128-141 (* i 2) (+ 128 i))
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
616 (aset map-128-141 (1+ (* i 2)) (aref tbl-128-141 i)))
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
617 (dotimes (i (1+ (- 239 161)))
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
618 (aset map-161-239 (* i 2) (+ 161 i))
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
619 (aset map-161-239 (1+ (* i 2)) (aref tbl-161-239 i)))
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
620 (dotimes (i (1+ (- 254 241)))
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
621 (aset map-241-254 (* i 2) (+ 241 i))
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
622 (aset map-241-254 (1+ (* i 2)) (aref tbl-241-254 i)))
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
623 (vconcat map-32-126 map-128-141 map-161-239 map-241-254)))
70379
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
624
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
625 (defconst mac-system-coding-system
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
626 (let ((base (or (cdr (assq mac-system-script-code
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
627 mac-script-code-coding-systems))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
628 'mac-roman)))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
629 (if (eq system-type 'darwin)
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
630 base
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
631 (coding-system-change-eol-conversion base 'mac)))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
632 "Coding system derived from the system script code.")
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
633
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
634 (set-selection-coding-system mac-system-coding-system)
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
635
61556
6b15c97abf1d Don't set file-name-coding-system. Decode variables system-name,
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61502
diff changeset
636
61502
3150e849361e (kTextEncodingMacRoman, kTextEncodingISOLatin1)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61497
diff changeset
637 ;;;; Keyboard layout/language change events
3150e849361e (kTextEncodingMacRoman, kTextEncodingISOLatin1)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61497
diff changeset
638 (defun mac-handle-language-change (event)
67662
db9106933641 (mac-handle-language-change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67487
diff changeset
639 "Set keyboard coding system to what is specified in EVENT."
61502
3150e849361e (kTextEncodingMacRoman, kTextEncodingISOLatin1)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61497
diff changeset
640 (interactive "e")
3150e849361e (kTextEncodingMacRoman, kTextEncodingISOLatin1)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61497
diff changeset
641 (let ((coding-system
3150e849361e (kTextEncodingMacRoman, kTextEncodingISOLatin1)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61497
diff changeset
642 (cdr (assq (car (cadr event)) mac-script-code-coding-systems))))
3150e849361e (kTextEncodingMacRoman, kTextEncodingISOLatin1)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61497
diff changeset
643 (set-keyboard-coding-system (or coding-system 'mac-roman))
3150e849361e (kTextEncodingMacRoman, kTextEncodingISOLatin1)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61497
diff changeset
644 ;; MacJapanese maps reverse solidus to ?\x80.
3150e849361e (kTextEncodingMacRoman, kTextEncodingISOLatin1)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61497
diff changeset
645 (if (eq coding-system 'japanese-shift-jis)
3150e849361e (kTextEncodingMacRoman, kTextEncodingISOLatin1)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61497
diff changeset
646 (define-key key-translation-map [?\x80] "\\"))))
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
647
61502
3150e849361e (kTextEncodingMacRoman, kTextEncodingISOLatin1)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61497
diff changeset
648 (define-key special-event-map [language-change] 'mac-handle-language-change)
70379
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
649
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
650
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
651 ;;;; Conversion between common flavors and Lisp string.
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
652
71356
a183bff9cb83 (mac-text-encoding-ascii): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71175
diff changeset
653 (defconst mac-text-encoding-ascii #x600
a183bff9cb83 (mac-text-encoding-ascii): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71175
diff changeset
654 "ASCII text encoding.")
a183bff9cb83 (mac-text-encoding-ascii): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71175
diff changeset
655
70379
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
656 (defconst mac-text-encoding-mac-japanese-basic-variant #x20001
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
657 "MacJapanese text encoding without Apple double-byte extensions.")
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
658
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
659 (defun mac-utxt-to-string (data &optional coding-system)
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
660 (or coding-system (setq coding-system mac-system-coding-system))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
661 (let* ((encoding
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
662 (and (eq system-type 'darwin)
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
663 (eq (coding-system-base coding-system) 'japanese-shift-jis)
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
664 mac-text-encoding-mac-japanese-basic-variant))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
665 (str (and (fboundp 'mac-code-convert-string)
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
666 (mac-code-convert-string data nil
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
667 (or encoding coding-system)))))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
668 (when str
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
669 (setq str (decode-coding-string str coding-system))
70491
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
670 (if (eq encoding mac-text-encoding-mac-japanese-basic-variant)
70379
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
671 ;; Does it contain Apple one-byte extensions other than
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
672 ;; reverse solidus?
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
673 (if (string-match "[\xa0\xfd-\xff]" str)
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
674 (setq str nil)
70429
0970641ee615 (mac-utxt-to-string): Don't make adjustment for
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70379
diff changeset
675 ;; ASCII-only?
71356
a183bff9cb83 (mac-text-encoding-ascii): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71175
diff changeset
676 (unless (mac-code-convert-string data nil mac-text-encoding-ascii)
90397
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
677 (subst-char-in-string ?\x5c ?\¥ str t)
70429
0970641ee615 (mac-utxt-to-string): Don't make adjustment for
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70379
diff changeset
678 (subst-char-in-string ?\x80 ?\\ str t)))))
70379
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
679 (or str
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
680 (decode-coding-string data
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
681 (if (eq (byteorder) ?B) 'utf-16be 'utf-16le)))))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
682
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
683 (defun mac-string-to-utxt (string &optional coding-system)
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
684 (or coding-system (setq coding-system mac-system-coding-system))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
685 (let (data encoding)
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
686 (when (and (fboundp 'mac-code-convert-string)
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
687 (memq (coding-system-base coding-system)
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
688 (find-coding-systems-string string)))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
689 (setq coding-system
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
690 (coding-system-change-eol-conversion coding-system 'mac))
72576
b09e6c8f23d4 (mac-string-to-utxt): If adjustment for MacJapanese
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72536
diff changeset
691 (let ((str string))
b09e6c8f23d4 (mac-string-to-utxt): If adjustment for MacJapanese
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72536
diff changeset
692 (when (and (eq system-type 'darwin)
b09e6c8f23d4 (mac-string-to-utxt): If adjustment for MacJapanese
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72536
diff changeset
693 (eq coding-system 'japanese-shift-jis-mac))
b09e6c8f23d4 (mac-string-to-utxt): If adjustment for MacJapanese
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72536
diff changeset
694 (setq encoding mac-text-encoding-mac-japanese-basic-variant)
b09e6c8f23d4 (mac-string-to-utxt): If adjustment for MacJapanese
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72536
diff changeset
695 (setq str (subst-char-in-string ?\\ ?\x80 str))
90599
c358d0861b16 Merge from emacs--devo--0
Miles Bader <miles@gnu.org>
parents: 90596 72576
diff changeset
696 (subst-char-in-string ?\¥ ?\x5c str t)
72576
b09e6c8f23d4 (mac-string-to-utxt): If adjustment for MacJapanese
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72536
diff changeset
697 ;; ASCII-only?
b09e6c8f23d4 (mac-string-to-utxt): If adjustment for MacJapanese
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72536
diff changeset
698 (if (string-match "\\`[\x00-\x7f]*\\'" str)
b09e6c8f23d4 (mac-string-to-utxt): If adjustment for MacJapanese
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72536
diff changeset
699 (setq str nil)))
b09e6c8f23d4 (mac-string-to-utxt): If adjustment for MacJapanese
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72536
diff changeset
700 (and str
b09e6c8f23d4 (mac-string-to-utxt): If adjustment for MacJapanese
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72536
diff changeset
701 (setq data (mac-code-convert-string
b09e6c8f23d4 (mac-string-to-utxt): If adjustment for MacJapanese
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72536
diff changeset
702 (encode-coding-string str coding-system)
b09e6c8f23d4 (mac-string-to-utxt): If adjustment for MacJapanese
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72536
diff changeset
703 (or encoding coding-system) nil)))))
70379
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
704 (or data (encode-coding-string string (if (eq (byteorder) ?B)
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
705 'utf-16be-mac
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
706 'utf-16le-mac)))))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
707
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
708 (defun mac-TEXT-to-string (data &optional coding-system)
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
709 (or coding-system (setq coding-system mac-system-coding-system))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
710 (prog1 (setq data (decode-coding-string data coding-system))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
711 (when (eq (coding-system-base coding-system) 'japanese-shift-jis)
90397
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
712 ;; (subst-char-in-string ?\x5c ?\¥ data t)
70379
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
713 (subst-char-in-string ?\x80 ?\\ data t))))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
714
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
715 (defun mac-string-to-TEXT (string &optional coding-system)
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
716 (or coding-system (setq coding-system mac-system-coding-system))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
717 (let ((encodables (find-coding-systems-string string))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
718 (rest mac-script-code-coding-systems))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
719 (unless (memq (coding-system-base coding-system) encodables)
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
720 (while (and rest (not (memq (cdar rest) encodables)))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
721 (setq rest (cdr rest)))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
722 (if rest
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
723 (setq coding-system (cdar rest)))))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
724 (setq coding-system
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
725 (coding-system-change-eol-conversion coding-system 'mac))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
726 (when (eq coding-system 'japanese-shift-jis-mac)
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
727 ;; (setq string (subst-char-in-string ?\\ ?\x80 string))
90397
914bfaec949a (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 90389
diff changeset
728 (setq string (subst-char-in-string ?\¥ ?\x5c string)))
70379
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
729 (encode-coding-string string coding-system))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
730
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
731 (defun mac-furl-to-string (data)
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
732 ;; Remove a trailing nul character.
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
733 (let ((len (length data)))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
734 (if (and (> len 0) (= (aref data (1- len)) ?\0))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
735 (substring data 0 (1- len))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
736 data)))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
737
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
738 (defun mac-TIFF-to-string (data &optional text)
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
739 (prog1 (or text (setq text (copy-sequence " ")))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
740 (put-text-property 0 (length text) 'display (create-image data 'tiff t)
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
741 text)))
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
742
67450
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
743 ;;;; Selections
61778
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
744
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
745 ;;; We keep track of the last text selected here, so we can check the
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
746 ;;; current selection against it, and avoid passing back our own text
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
747 ;;; from x-get-selection-value.
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
748 (defvar x-last-selected-text-clipboard nil
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
749 "The value of the CLIPBOARD selection last time we selected or
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
750 pasted text.")
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
751 (defvar x-last-selected-text-primary nil
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
752 "The value of the PRIMARY X selection last time we selected or
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
753 pasted text.")
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
754
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
755 (defcustom x-select-enable-clipboard t
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
756 "*Non-nil means cutting and pasting uses the clipboard.
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
757 This is in addition to the primary selection."
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
758 :type 'boolean
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
759 :group 'killing)
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
760
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
761 ;;; Make TEXT, a string, the primary X selection.
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
762 (defun x-select-text (text &optional push)
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
763 (x-set-selection 'PRIMARY text)
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
764 (setq x-last-selected-text-primary text)
62100
e5deb8b3a701 Don't define or bind scroll bar functions if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61778
diff changeset
765 (if (not x-select-enable-clipboard)
e5deb8b3a701 Don't define or bind scroll bar functions if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61778
diff changeset
766 (setq x-last-selected-text-clipboard nil)
61778
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
767 (x-set-selection 'CLIPBOARD text)
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
768 (setq x-last-selected-text-clipboard text))
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
769 )
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
770
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
771 (defun x-get-selection (&optional type data-type)
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
772 "Return the value of a selection.
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
773 The argument TYPE (default `PRIMARY') says which selection,
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
774 and the argument DATA-TYPE (default `STRING') says
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
775 how to convert the data.
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
776
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
777 TYPE may be any symbol \(but nil stands for `PRIMARY'). However,
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
778 only a few symbols are commonly used. They conventionally have
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
779 all upper-case names. The most often used ones, in addition to
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
780 `PRIMARY', are `SECONDARY' and `CLIPBOARD'.
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
781
61778
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
782 DATA-TYPE is usually `STRING', but can also be one of the symbols
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
783 in `selection-converter-alist', which see."
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
784 (let ((data (x-get-selection-internal (or type 'PRIMARY)
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
785 (or data-type 'STRING)))
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
786 (coding (or next-selection-coding-system
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
787 selection-coding-system)))
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
788 (when (and (stringp data)
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
789 (setq data-type (get-text-property 0 'foreign-selection data)))
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
790 (cond ((eq data-type 'public.utf16-plain-text)
70379
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
791 (setq data (mac-utxt-to-string data coding)))
61778
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
792 ((eq data-type 'com.apple.traditional-mac-plain-text)
70379
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
793 (setq data (mac-TEXT-to-string data coding)))
62100
e5deb8b3a701 Don't define or bind scroll bar functions if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61778
diff changeset
794 ((eq data-type 'public.file-url)
70379
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
795 (setq data (mac-furl-to-string data))))
61778
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
796 (put-text-property 0 (length data) 'foreign-selection data-type data))
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
797 data))
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
798
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
799 (defun x-selection-value (type)
62100
e5deb8b3a701 Don't define or bind scroll bar functions if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61778
diff changeset
800 (let ((data-types '(public.utf16-plain-text
e5deb8b3a701 Don't define or bind scroll bar functions if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61778
diff changeset
801 com.apple.traditional-mac-plain-text
e5deb8b3a701 Don't define or bind scroll bar functions if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61778
diff changeset
802 public.file-url))
e5deb8b3a701 Don't define or bind scroll bar functions if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61778
diff changeset
803 text tiff-image)
e5deb8b3a701 Don't define or bind scroll bar functions if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61778
diff changeset
804 (while (and (null text) data-types)
e5deb8b3a701 Don't define or bind scroll bar functions if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61778
diff changeset
805 (setq text (condition-case nil
e5deb8b3a701 Don't define or bind scroll bar functions if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61778
diff changeset
806 (x-get-selection type (car data-types))
e5deb8b3a701 Don't define or bind scroll bar functions if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61778
diff changeset
807 (error nil)))
e5deb8b3a701 Don't define or bind scroll bar functions if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61778
diff changeset
808 (setq data-types (cdr data-types)))
61778
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
809 (if text
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
810 (remove-text-properties 0 (length text) '(foreign-selection nil) text))
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
811 (setq tiff-image (condition-case nil
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
812 (x-get-selection type 'public.tiff)
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
813 (error nil)))
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
814 (when tiff-image
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
815 (remove-text-properties 0 (length tiff-image)
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
816 '(foreign-selection nil) tiff-image)
70379
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
817 (setq text (mac-TIFF-to-string tiff-image text)))
61778
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
818 text))
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
819
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
820 ;;; Return the value of the current selection.
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
821 ;;; Treat empty strings as if they were unset.
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
822 ;;; If this function is called twice and finds the same text,
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
823 ;;; it returns nil the second time. This is so that a single
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
824 ;;; selection won't be added to the kill ring over and over.
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
825 (defun x-get-selection-value ()
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
826 (let (clip-text primary-text)
62100
e5deb8b3a701 Don't define or bind scroll bar functions if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61778
diff changeset
827 (if (not x-select-enable-clipboard)
e5deb8b3a701 Don't define or bind scroll bar functions if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61778
diff changeset
828 (setq x-last-selected-text-clipboard nil)
61778
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
829 (setq clip-text (x-selection-value 'CLIPBOARD))
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
830 (if (string= clip-text "") (setq clip-text nil))
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
831
61778
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
832 ;; Check the CLIPBOARD selection for 'newness', is it different
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
833 ;; from what we remebered them to be last time we did a
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
834 ;; cut/paste operation.
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
835 (setq clip-text
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
836 (cond;; check clipboard
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
837 ((or (not clip-text) (string= clip-text ""))
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
838 (setq x-last-selected-text-clipboard nil))
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
839 ((eq clip-text x-last-selected-text-clipboard) nil)
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
840 ((string= clip-text x-last-selected-text-clipboard)
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
841 ;; Record the newer string,
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
842 ;; so subsequent calls can use the `eq' test.
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
843 (setq x-last-selected-text-clipboard clip-text)
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
844 nil)
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
845 (t
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
846 (setq x-last-selected-text-clipboard clip-text))))
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
847 )
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
848
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
849 (setq primary-text (x-selection-value 'PRIMARY))
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
850 ;; Check the PRIMARY selection for 'newness', is it different
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
851 ;; from what we remebered them to be last time we did a
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
852 ;; cut/paste operation.
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
853 (setq primary-text
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
854 (cond;; check primary selection
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
855 ((or (not primary-text) (string= primary-text ""))
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
856 (setq x-last-selected-text-primary nil))
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
857 ((eq primary-text x-last-selected-text-primary) nil)
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
858 ((string= primary-text x-last-selected-text-primary)
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
859 ;; Record the newer string,
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
860 ;; so subsequent calls can use the `eq' test.
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
861 (setq x-last-selected-text-primary primary-text)
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
862 nil)
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
863 (t
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
864 (setq x-last-selected-text-primary primary-text))))
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
865
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
866 ;; As we have done one selection, clear this now.
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
867 (setq next-selection-coding-system nil)
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
868
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
869 ;; At this point we have recorded the current values for the
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
870 ;; selection from clipboard (if we are supposed to) and primary,
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
871 ;; So return the first one that has changed (which is the first
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
872 ;; non-null one).
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
873 (or clip-text primary-text)
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
874 ))
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
875
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
876 (put 'CLIPBOARD 'mac-scrap-name "com.apple.scrap.clipboard")
62100
e5deb8b3a701 Don't define or bind scroll bar functions if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61778
diff changeset
877 (when (eq system-type 'darwin)
e5deb8b3a701 Don't define or bind scroll bar functions if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61778
diff changeset
878 (put 'FIND 'mac-scrap-name "com.apple.scrap.find")
e5deb8b3a701 Don't define or bind scroll bar functions if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61778
diff changeset
879 (put 'PRIMARY 'mac-scrap-name
e5deb8b3a701 Don't define or bind scroll bar functions if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61778
diff changeset
880 (format "org.gnu.Emacs.%d.selection.PRIMARY" (emacs-pid))))
61778
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
881 (put 'com.apple.traditional-mac-plain-text 'mac-ostype "TEXT")
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
882 (put 'public.utf16-plain-text 'mac-ostype "utxt")
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
883 (put 'public.tiff 'mac-ostype "TIFF")
62100
e5deb8b3a701 Don't define or bind scroll bar functions if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61778
diff changeset
884 (put 'public.file-url 'mac-ostype "furl")
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
885
61778
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
886 (defun mac-select-convert-to-string (selection type value)
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
887 (let ((str (cdr (xselect-convert-to-string selection nil value)))
70379
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
888 (coding (or next-selection-coding-system selection-coding-system)))
61778
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
889 (when str
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
890 ;; If TYPE is nil, this is a local request, thus return STR as
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
891 ;; is. Otherwise, encode STR.
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
892 (if (not type)
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
893 str
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
894 (let ((inhibit-read-only t))
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
895 (remove-text-properties 0 (length str) '(composition nil) str)
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
896 (cond
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
897 ((eq type 'public.utf16-plain-text)
70379
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
898 (setq str (mac-string-to-utxt str coding)))
61778
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
899 ((eq type 'com.apple.traditional-mac-plain-text)
70379
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
900 (setq str (mac-string-to-TEXT str coding)))
61778
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
901 (t
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
902 (error "Unknown selection type: %S" type))
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
903 )))
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
904
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
905 (setq next-selection-coding-system nil)
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
906 (cons type str))))
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
907
62100
e5deb8b3a701 Don't define or bind scroll bar functions if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61778
diff changeset
908 (defun mac-select-convert-to-file-url (selection type value)
e5deb8b3a701 Don't define or bind scroll bar functions if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61778
diff changeset
909 (let ((filename (xselect-convert-to-filename selection type value))
e5deb8b3a701 Don't define or bind scroll bar functions if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61778
diff changeset
910 (coding (or file-name-coding-system default-file-name-coding-system)))
e5deb8b3a701 Don't define or bind scroll bar functions if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61778
diff changeset
911 (if (and filename coding)
e5deb8b3a701 Don't define or bind scroll bar functions if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61778
diff changeset
912 (setq filename (encode-coding-string filename coding)))
e5deb8b3a701 Don't define or bind scroll bar functions if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61778
diff changeset
913 (and filename
e5deb8b3a701 Don't define or bind scroll bar functions if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61778
diff changeset
914 (concat "file://localhost"
e5deb8b3a701 Don't define or bind scroll bar functions if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61778
diff changeset
915 (mapconcat 'url-hexify-string
e5deb8b3a701 Don't define or bind scroll bar functions if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61778
diff changeset
916 (split-string filename "/") "/")))))
e5deb8b3a701 Don't define or bind scroll bar functions if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61778
diff changeset
917
61778
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
918 (setq selection-converter-alist
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
919 (nconc
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
920 '((public.utf16-plain-text . mac-select-convert-to-string)
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
921 (com.apple.traditional-mac-plain-text . mac-select-convert-to-string)
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
922 ;; This is not enabled by default because the `Import Image'
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
923 ;; menu makes Emacs crash or hang for unknown reasons.
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
924 ;; (public.tiff . nil)
62100
e5deb8b3a701 Don't define or bind scroll bar functions if
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61778
diff changeset
925 (public.file-url . mac-select-convert-to-file-url)
61778
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
926 )
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
927 selection-converter-alist))
67450
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
928
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
929 ;;;; Apple events, HICommand events, and Services menu
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
930
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
931 ;;; Event classes
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
932 (put 'core-event 'mac-apple-event-class "aevt") ; kCoreEventClass
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
933 (put 'internet-event 'mac-apple-event-class "GURL") ; kAEInternetEventClass
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
934
68035
a9b674b9cf4c (mac-ae-parameter): Don't coerce data if it is
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67662
diff changeset
935 ;;; Event IDs
67450
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
936 ;; kCoreEventClass
72703
ca1234ea6e5f (show-hide-font-panel): New HI command ID symbol.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72576
diff changeset
937 (put 'open-application 'mac-apple-event-id "oapp") ; kAEOpenApplication
ca1234ea6e5f (show-hide-font-panel): New HI command ID symbol.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72576
diff changeset
938 (put 'reopen-application 'mac-apple-event-id "rapp") ; kAEReopenApplication
ca1234ea6e5f (show-hide-font-panel): New HI command ID symbol.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72576
diff changeset
939 (put 'open-documents 'mac-apple-event-id "odoc") ; kAEOpenDocuments
ca1234ea6e5f (show-hide-font-panel): New HI command ID symbol.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72576
diff changeset
940 (put 'print-documents 'mac-apple-event-id "pdoc") ; kAEPrintDocuments
ca1234ea6e5f (show-hide-font-panel): New HI command ID symbol.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72576
diff changeset
941 (put 'open-contents 'mac-apple-event-id "ocon") ; kAEOpenContents
ca1234ea6e5f (show-hide-font-panel): New HI command ID symbol.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72576
diff changeset
942 (put 'quit-application 'mac-apple-event-id "quit") ; kAEQuitApplication
ca1234ea6e5f (show-hide-font-panel): New HI command ID symbol.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72576
diff changeset
943 (put 'application-died 'mac-apple-event-id "obit") ; kAEApplicationDied
ca1234ea6e5f (show-hide-font-panel): New HI command ID symbol.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72576
diff changeset
944 (put 'show-preferences 'mac-apple-event-id "pref") ; kAEShowPreferences
ca1234ea6e5f (show-hide-font-panel): New HI command ID symbol.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72576
diff changeset
945 (put 'autosave-now 'mac-apple-event-id "asav") ; kAEAutosaveNow
67450
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
946 ;; kAEInternetEventClass
72703
ca1234ea6e5f (show-hide-font-panel): New HI command ID symbol.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72576
diff changeset
947 (put 'get-url 'mac-apple-event-id "GURL") ; kAEGetURL
72536
59670fc88353 (mac-apple-event-map): Rename hicommand to hi-command.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71500
diff changeset
948 ;; Converted HI command events
72703
ca1234ea6e5f (show-hide-font-panel): New HI command ID symbol.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72576
diff changeset
949 (put 'about 'mac-apple-event-id "abou") ; kHICommandAbout
ca1234ea6e5f (show-hide-font-panel): New HI command ID symbol.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72576
diff changeset
950 (put 'show-hide-font-panel 'mac-apple-event-id "shfp") ; kHICommandShowHideFontPanel
67450
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
951
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
952 (defmacro mac-event-spec (event)
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
953 `(nth 1 ,event))
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
954
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
955 (defmacro mac-event-ae (event)
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
956 `(nth 2 ,event))
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
957
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
958 (defun mac-ae-parameter (ae &optional keyword type)
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
959 (or keyword (setq keyword "----")) ;; Direct object.
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
960 (if (not (and (consp ae) (equal (car ae) "aevt")))
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
961 (error "Not an Apple event: %S" ae)
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
962 (let ((type-data (cdr (assoc keyword (cdr ae))))
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
963 data)
68035
a9b674b9cf4c (mac-ae-parameter): Don't coerce data if it is
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67662
diff changeset
964 (when (and type type-data (not (equal type (car type-data))))
67450
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
965 (setq data (mac-coerce-ae-data (car type-data) (cdr type-data) type))
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
966 (setq type-data (if data (cons type data) nil)))
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
967 type-data)))
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
968
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
969 (defun mac-ae-list (ae &optional keyword type)
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
970 (or keyword (setq keyword "----")) ;; Direct object.
68035
a9b674b9cf4c (mac-ae-parameter): Don't coerce data if it is
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67662
diff changeset
971 (let ((desc (mac-ae-parameter ae keyword "list")))
67450
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
972 (cond ((null desc)
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
973 nil)
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
974 ((not (equal (car desc) "list"))
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
975 (error "Parameter for \"%s\" is not a list" keyword))
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
976 (t
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
977 (if (null type)
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
978 (cdr desc)
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
979 (mapcar
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
980 (lambda (type-data)
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
981 (mac-coerce-ae-data (car type-data) (cdr type-data) type))
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
982 (cdr desc)))))))
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
983
71175
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
984 (defun mac-ae-number (ae keyword)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
985 (let ((type-data (mac-ae-parameter ae keyword))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
986 str)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
987 (if (and type-data
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
988 (setq str (mac-coerce-ae-data (car type-data)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
989 (cdr type-data) "TEXT")))
75831
906e93bebe5f Change all uses of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75375
diff changeset
990 (let ((num (string-to-number str)))
906e93bebe5f Change all uses of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75375
diff changeset
991 ;; Mac OS Classic may return "0e+0" as the coerced value for
906e93bebe5f Change all uses of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75375
diff changeset
992 ;; the type "magn" and the data "\000\000\000\000".
906e93bebe5f Change all uses of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75375
diff changeset
993 (if (= num 0.0) 0 num))
71175
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
994 nil)))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
995
67450
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
996 (defun mac-bytes-to-integer (bytes &optional from to)
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
997 (or from (setq from 0))
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
998 (or to (setq to (length bytes)))
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
999 (let* ((len (- to from))
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1000 (extended-sign-len (- (1+ (ceiling (log most-positive-fixnum 2)))
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1001 (* 8 len)))
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1002 (result 0))
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1003 (dotimes (i len)
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1004 (setq result (logior (lsh result 8)
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1005 (aref bytes (+ from (if (eq (byteorder) ?B) i
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1006 (- len i 1)))))))
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1007 (if (> extended-sign-len 0)
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1008 (ash (lsh result extended-sign-len) (- extended-sign-len))
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1009 result)))
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1010
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1011 (defun mac-ae-selection-range (ae)
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1012 ;; #pragma options align=mac68k
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1013 ;; typedef struct SelectionRange {
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1014 ;; short unused1; // 0 (not used)
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1015 ;; short lineNum; // line to select (<0 to specify range)
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1016 ;; long startRange; // start of selection range (if line < 0)
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1017 ;; long endRange; // end of selection range (if line < 0)
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1018 ;; long unused2; // 0 (not used)
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1019 ;; long theDate; // modification date/time
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1020 ;; } SelectionRange;
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1021 ;; #pragma options align=reset
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1022 (let ((range-bytes (cdr (mac-ae-parameter ae "kpos" "TEXT"))))
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1023 (and range-bytes
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1024 (list (mac-bytes-to-integer range-bytes 2 4)
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1025 (mac-bytes-to-integer range-bytes 4 8)
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1026 (mac-bytes-to-integer range-bytes 8 12)
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1027 (mac-bytes-to-integer range-bytes 16 20)))))
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1028
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1029 ;; On Mac OS X 10.4 and later, the `open-document' event contains an
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1030 ;; optional parameter keyAESearchText from the Spotlight search.
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1031 (defun mac-ae-text-for-search (ae)
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1032 (let ((utf8-text (cdr (mac-ae-parameter ae "stxt" "utf8"))))
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1033 (and utf8-text
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1034 (decode-coding-string utf8-text 'utf-8))))
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1035
71175
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1036 (defun mac-ae-text (ae)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1037 (or (cdr (mac-ae-parameter ae nil "TEXT"))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1038 (error "No text in Apple event.")))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1039
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1040 (defun mac-ae-frame (ae &optional keyword type)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1041 (let ((bytes (cdr (mac-ae-parameter ae keyword type))))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1042 (if (or (null bytes) (/= (length bytes) 4))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1043 (error "No window reference in Apple event.")
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1044 (let ((window-id (mac-coerce-ae-data "long" bytes "TEXT"))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1045 (rest (frame-list))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1046 frame)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1047 (while (and (null frame) rest)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1048 (if (string= (frame-parameter (car rest) 'window-id) window-id)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1049 (setq frame (car rest)))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1050 (setq rest (cdr rest)))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1051 frame))))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1052
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1053 (defun mac-ae-script-language (ae keyword)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1054 ;; struct WritingCode {
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1055 ;; ScriptCode theScriptCode;
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1056 ;; LangCode theLangCode;
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1057 ;; };
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1058 (let ((bytes (cdr (mac-ae-parameter ae keyword "intl"))))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1059 (and bytes
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1060 (cons (mac-bytes-to-integer bytes 0 2)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1061 (mac-bytes-to-integer bytes 2 4)))))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1062
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1063 (defun mac-bytes-to-text-range (bytes &optional from to)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1064 ;; struct TextRange {
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1065 ;; long fStart;
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1066 ;; long fEnd;
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1067 ;; short fHiliteStyle;
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1068 ;; };
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1069 (or from (setq from 0))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1070 (or to (setq to (length bytes)))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1071 (and (= (- to from) (+ 4 4 2))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1072 (list (mac-bytes-to-integer bytes from (+ from 4))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1073 (mac-bytes-to-integer bytes (+ from 4) (+ from 8))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1074 (mac-bytes-to-integer bytes (+ from 8) to))))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1075
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1076 (defun mac-ae-text-range-array (ae keyword)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1077 ;; struct TextRangeArray {
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1078 ;; short fNumOfRanges;
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1079 ;; TextRange fRange[1];
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1080 ;; };
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1081 (let* ((bytes (cdr (mac-ae-parameter ae keyword "tray")))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1082 (len (length bytes))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1083 nranges result)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1084 (when (and bytes (>= len 2)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1085 (progn
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1086 (setq nranges (mac-bytes-to-integer bytes 0 2))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1087 (= len (+ 2 (* nranges 10)))))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1088 (setq result (make-vector nranges nil))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1089 (dotimes (i nranges)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1090 (aset result i
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1091 (mac-bytes-to-text-range bytes (+ (* i 10) 2)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1092 (+ (* i 10) 12)))))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1093 result))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1094
75375
2d3bcf670390 (mac-keyboard-modifier-mask-alist): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75347
diff changeset
1095 (defconst mac-keyboard-modifier-mask-alist
2d3bcf670390 (mac-keyboard-modifier-mask-alist): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75347
diff changeset
1096 (mapcar
2d3bcf670390 (mac-keyboard-modifier-mask-alist): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75347
diff changeset
1097 (lambda (modifier-bit)
2d3bcf670390 (mac-keyboard-modifier-mask-alist): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75347
diff changeset
1098 (cons (car modifier-bit) (lsh 1 (cdr modifier-bit))))
2d3bcf670390 (mac-keyboard-modifier-mask-alist): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75347
diff changeset
1099 '((command . 8) ; cmdKeyBit
2d3bcf670390 (mac-keyboard-modifier-mask-alist): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75347
diff changeset
1100 (shift . 9) ; shiftKeyBit
2d3bcf670390 (mac-keyboard-modifier-mask-alist): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75347
diff changeset
1101 (option . 11) ; optionKeyBit
2d3bcf670390 (mac-keyboard-modifier-mask-alist): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75347
diff changeset
1102 (control . 12) ; controlKeyBit
2d3bcf670390 (mac-keyboard-modifier-mask-alist): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75347
diff changeset
1103 (function . 17))) ; kEventKeyModifierFnBit
2d3bcf670390 (mac-keyboard-modifier-mask-alist): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75347
diff changeset
1104 "Alist of Mac keyboard modifier symbols vs masks.")
2d3bcf670390 (mac-keyboard-modifier-mask-alist): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75347
diff changeset
1105
2d3bcf670390 (mac-keyboard-modifier-mask-alist): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75347
diff changeset
1106 (defun mac-ae-keyboard-modifiers (ae)
2d3bcf670390 (mac-keyboard-modifier-mask-alist): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75347
diff changeset
1107 (let ((modifiers-value (mac-ae-number ae "kmod"))
2d3bcf670390 (mac-keyboard-modifier-mask-alist): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75347
diff changeset
1108 modifiers)
2d3bcf670390 (mac-keyboard-modifier-mask-alist): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75347
diff changeset
1109 (if modifiers-value
2d3bcf670390 (mac-keyboard-modifier-mask-alist): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75347
diff changeset
1110 (dolist (modifier-mask mac-keyboard-modifier-mask-alist)
2d3bcf670390 (mac-keyboard-modifier-mask-alist): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75347
diff changeset
1111 (if (/= (logand modifiers-value (cdr modifier-mask)) 0)
2d3bcf670390 (mac-keyboard-modifier-mask-alist): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75347
diff changeset
1112 (setq modifiers (cons (car modifier-mask) modifiers)))))
2d3bcf670390 (mac-keyboard-modifier-mask-alist): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75347
diff changeset
1113 modifiers))
2d3bcf670390 (mac-keyboard-modifier-mask-alist): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75347
diff changeset
1114
80396
08cd8b1cca35 (mac-ae-reopen-application): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 80384
diff changeset
1115 (defun mac-ae-reopen-application (event)
08cd8b1cca35 (mac-ae-reopen-application): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 80384
diff changeset
1116 "Show some frame in response to the Apple event EVENT.
08cd8b1cca35 (mac-ae-reopen-application): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 80384
diff changeset
1117 The frame to be shown is chosen from visible or iconified frames
08cd8b1cca35 (mac-ae-reopen-application): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 80384
diff changeset
1118 if possible. If there's no such frame, a new frame is created."
08cd8b1cca35 (mac-ae-reopen-application): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 80384
diff changeset
1119 (interactive "e")
08cd8b1cca35 (mac-ae-reopen-application): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 80384
diff changeset
1120 (unless (frame-visible-p (selected-frame))
08cd8b1cca35 (mac-ae-reopen-application): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 80384
diff changeset
1121 (let ((frame (or (car (visible-frame-list))
08cd8b1cca35 (mac-ae-reopen-application): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 80384
diff changeset
1122 (car (filtered-frame-list 'frame-visible-p)))))
08cd8b1cca35 (mac-ae-reopen-application): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 80384
diff changeset
1123 (if frame
08cd8b1cca35 (mac-ae-reopen-application): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 80384
diff changeset
1124 (select-frame frame)
08cd8b1cca35 (mac-ae-reopen-application): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 80384
diff changeset
1125 (switch-to-buffer-other-frame "*scratch*"))))
08cd8b1cca35 (mac-ae-reopen-application): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 80384
diff changeset
1126 (select-frame-set-input-focus (selected-frame)))
08cd8b1cca35 (mac-ae-reopen-application): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 80384
diff changeset
1127
67450
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1128 (defun mac-ae-open-documents (event)
67662
db9106933641 (mac-handle-language-change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67487
diff changeset
1129 "Open the documents specified by the Apple event EVENT."
67450
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1130 (interactive "e")
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1131 (let ((ae (mac-event-ae event)))
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1132 (dolist (file-name (mac-ae-list ae nil 'undecoded-file-name))
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1133 (if file-name
70763
e5e83c1c6fa5 (mac-ae-open-documents): Escape file name on conversion to URL.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70730
diff changeset
1134 (dnd-open-local-file
e5e83c1c6fa5 (mac-ae-open-documents): Escape file name on conversion to URL.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70730
diff changeset
1135 (concat "file://"
e5e83c1c6fa5 (mac-ae-open-documents): Escape file name on conversion to URL.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70730
diff changeset
1136 (mapconcat 'url-hexify-string
e5e83c1c6fa5 (mac-ae-open-documents): Escape file name on conversion to URL.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70730
diff changeset
1137 (split-string file-name "/") "/")) nil)))
67450
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1138 (let ((selection-range (mac-ae-selection-range ae))
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1139 (search-text (mac-ae-text-for-search ae)))
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1140 (cond (selection-range
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1141 (let ((line (car selection-range))
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1142 (start (cadr selection-range))
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1143 (end (nth 2 selection-range)))
80504
866d9d0f14ac (mac-ae-open-documents): Adjust selection range parameter origins.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 80396
diff changeset
1144 (if (>= line 0)
866d9d0f14ac (mac-ae-open-documents): Adjust selection range parameter origins.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 80396
diff changeset
1145 (goto-line (1+ line))
866d9d0f14ac (mac-ae-open-documents): Adjust selection range parameter origins.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 80396
diff changeset
1146 (if (and (>= start 0) (>= end 0))
866d9d0f14ac (mac-ae-open-documents): Adjust selection range parameter origins.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 80396
diff changeset
1147 (progn (set-mark (1+ start))
866d9d0f14ac (mac-ae-open-documents): Adjust selection range parameter origins.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 80396
diff changeset
1148 (goto-char (1+ end)))))))
67450
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1149 ((stringp search-text)
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1150 (re-search-forward
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1151 (mapconcat 'regexp-quote (split-string search-text) "\\|")
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1152 nil t)))))
70298
11e77c23e062 (mac-ae-open-documents, mac-drag-n-drop): Use
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69725
diff changeset
1153 (select-frame-set-input-focus (selected-frame)))
67450
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1154
75238
975531dd9b08 (mac-ae-quit-application): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75142
diff changeset
1155 (defun mac-ae-quit-application (event)
975531dd9b08 (mac-ae-quit-application): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75142
diff changeset
1156 "Quit the application Emacs with the Apple event EVENT."
975531dd9b08 (mac-ae-quit-application): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75142
diff changeset
1157 (interactive "e")
975531dd9b08 (mac-ae-quit-application): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75142
diff changeset
1158 (let ((ae (mac-event-ae event)))
975531dd9b08 (mac-ae-quit-application): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75142
diff changeset
1159 (unwind-protect
975531dd9b08 (mac-ae-quit-application): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75142
diff changeset
1160 (save-buffers-kill-emacs)
975531dd9b08 (mac-ae-quit-application): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75142
diff changeset
1161 ;; Reaches here if the user has canceled the quit.
975531dd9b08 (mac-ae-quit-application): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75142
diff changeset
1162 (mac-resume-apple-event ae -128)))) ; userCanceledErr
975531dd9b08 (mac-ae-quit-application): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75142
diff changeset
1163
86819
6ee7c280d828 Comment.
Glenn Morris <rgm@gnu.org>
parents: 86292
diff changeset
1164 ;; url-generic-parse-url is autoloaded from url-parse.
86847
0152955185ee (url-type): Declare as a function.
Glenn Morris <rgm@gnu.org>
parents: 86819
diff changeset
1165 (declare-function url-type "url-parse" t t) ; defstruct
86819
6ee7c280d828 Comment.
Glenn Morris <rgm@gnu.org>
parents: 86292
diff changeset
1166
67450
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1167 (defun mac-ae-get-url (event)
67662
db9106933641 (mac-handle-language-change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67487
diff changeset
1168 "Open the URL specified by the Apple event EVENT.
db9106933641 (mac-handle-language-change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67487
diff changeset
1169 Currently the `mailto' scheme is supported."
67450
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1170 (interactive "e")
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1171 (let* ((ae (mac-event-ae event))
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1172 (parsed-url (url-generic-parse-url (mac-ae-text ae))))
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1173 (if (string= (url-type parsed-url) "mailto")
75831
906e93bebe5f Change all uses of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75375
diff changeset
1174 (progn
906e93bebe5f Change all uses of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75375
diff changeset
1175 (url-mailto parsed-url)
906e93bebe5f Change all uses of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75375
diff changeset
1176 (select-frame-set-input-focus (selected-frame)))
70870
e5af358ce93a Set idle timer to clean up expired Apple events.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70763
diff changeset
1177 (mac-resume-apple-event ae t))))
67450
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1178
67487
44fba69e3c47 Create keymap for mac-apple-event-map.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67450
diff changeset
1179 (setq mac-apple-event-map (make-sparse-keymap))
44fba69e3c47 Create keymap for mac-apple-event-map.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67450
diff changeset
1180
67450
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1181 ;; Received when Emacs is launched without associated documents.
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1182 ;; Accept it as an Apple event, but no Emacs event is generated so as
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1183 ;; not to erase the splash screen.
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1184 (define-key mac-apple-event-map [core-event open-application] 0)
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1185
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1186 ;; Received when a dock or application icon is clicked and Emacs is
80396
08cd8b1cca35 (mac-ae-reopen-application): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 80384
diff changeset
1187 ;; already running.
08cd8b1cca35 (mac-ae-reopen-application): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 80384
diff changeset
1188 (define-key mac-apple-event-map [core-event reopen-application]
08cd8b1cca35 (mac-ae-reopen-application): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 80384
diff changeset
1189 'mac-ae-reopen-application)
67450
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1190
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1191 (define-key mac-apple-event-map [core-event open-documents]
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1192 'mac-ae-open-documents)
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1193 (define-key mac-apple-event-map [core-event show-preferences] 'customize)
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1194 (define-key mac-apple-event-map [core-event quit-application]
75238
975531dd9b08 (mac-ae-quit-application): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75142
diff changeset
1195 'mac-ae-quit-application)
67450
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1196
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1197 (define-key mac-apple-event-map [internet-event get-url] 'mac-ae-get-url)
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1198
79606
f6762e747873 (mac-apple-event-map): Bind kHICommandAbout event to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 79090
diff changeset
1199 (define-key mac-apple-event-map [hi-command about] 'about-emacs)
61778
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
1200
70491
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1201 ;;; Converted Carbon Events
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1202 (defun mac-handle-toolbar-switch-mode (event)
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1203 "Toggle visibility of tool-bars in response to EVENT.
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1204 With no keyboard modifiers, it toggles the visibility of the
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1205 frame where the tool-bar toggle button was pressed. With some
78679
740c901aba1a (mac-handle-toolbar-switch-mode): Add explicit
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 78226
diff changeset
1206 modifiers, it changes the global tool-bar visibility setting."
70491
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1207 (interactive "e")
75375
2d3bcf670390 (mac-keyboard-modifier-mask-alist): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75347
diff changeset
1208 (let ((ae (mac-event-ae event)))
2d3bcf670390 (mac-keyboard-modifier-mask-alist): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75347
diff changeset
1209 (if (mac-ae-keyboard-modifiers ae)
70491
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1210 ;; Globally toggle tool-bar-mode if some modifier key is pressed.
78679
740c901aba1a (mac-handle-toolbar-switch-mode): Add explicit
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 78226
diff changeset
1211 (tool-bar-mode 'toggle)
71175
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1212 (let ((frame (mac-ae-frame ae)))
70491
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1213 (set-frame-parameter frame 'tool-bar-lines
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1214 (if (= (frame-parameter frame 'tool-bar-lines) 0)
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1215 1 0))))))
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1216
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1217 ;; kEventClassWindow/kEventWindowToolbarSwitchMode
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1218 (define-key mac-apple-event-map [window toolbar-switch-mode]
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1219 'mac-handle-toolbar-switch-mode)
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1220
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1221 ;;; Font panel
75831
906e93bebe5f Change all uses of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75375
diff changeset
1222 (when (fboundp 'mac-set-font-panel-visible-p)
70491
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1223
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1224 (define-minor-mode mac-font-panel-mode
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1225 "Toggle use of the font panel.
70559
a1af34eacdb3 (mac-font-panel-mode): Doc fix.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70491
diff changeset
1226 With numeric ARG, display the font panel if and only if ARG is positive."
70491
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1227 :init-value nil
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1228 :global t
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1229 :group 'mac
75831
906e93bebe5f Change all uses of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75375
diff changeset
1230 (mac-set-font-panel-visible-p mac-font-panel-mode))
70491
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1231
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1232 (defun mac-handle-font-panel-closed (event)
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1233 "Update internal status in response to font panel closed EVENT."
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1234 (interactive "e")
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1235 ;; Synchronize with the minor mode variable.
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1236 (mac-font-panel-mode 0))
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1237
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1238 (defun mac-handle-font-selection (event)
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1239 "Change default face attributes according to font selection EVENT."
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1240 (interactive "e")
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1241 (let* ((ae (mac-event-ae event))
71175
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1242 (fm-font-size (mac-ae-number ae "fmsz"))
71500
fd5f866a10be (mac-handle-font-selection): Change keys of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71356
diff changeset
1243 (atsu-font-id (mac-ae-number ae "auid"))
74625
1fb421aafa71 (mac-atsu-font-table): Remove defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74509
diff changeset
1244 (attribute-values (and atsu-font-id
1fb421aafa71 (mac-atsu-font-table): Remove defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74509
diff changeset
1245 (mac-atsu-font-face-attributes atsu-font-id))))
70491
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1246 (if fm-font-size
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1247 (setq attribute-values
71175
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1248 `(:height ,(* 10 fm-font-size) ,@attribute-values)))
70491
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1249 (apply 'set-face-attribute 'default (selected-frame) attribute-values)))
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1250
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1251 ;; kEventClassFont/kEventFontPanelClosed
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1252 (define-key mac-apple-event-map [font panel-closed]
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1253 'mac-handle-font-panel-closed)
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1254 ;; kEventClassFont/kEventFontSelection
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1255 (define-key mac-apple-event-map [font selection] 'mac-handle-font-selection)
72703
ca1234ea6e5f (show-hide-font-panel): New HI command ID symbol.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72576
diff changeset
1256 (define-key mac-apple-event-map [hi-command show-hide-font-panel]
ca1234ea6e5f (show-hide-font-panel): New HI command ID symbol.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72576
diff changeset
1257 'mac-font-panel-mode)
70491
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1258
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1259 (define-key-after menu-bar-showhide-menu [mac-font-panel-mode]
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1260 (menu-bar-make-mm-toggle mac-font-panel-mode
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1261 "Font Panel"
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1262 "Show the font panel as a floating dialog")
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1263 'showhide-speedbar)
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1264
75831
906e93bebe5f Change all uses of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75375
diff changeset
1265 ) ;; (fboundp 'mac-set-font-panel-visible-p)
70491
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1266
71175
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1267 ;;; Text Services
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1268 (defvar mac-ts-update-active-input-area-seqno 0
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1269 "Number of processed update-active-input-area events.")
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1270 (setq mac-ts-active-input-overlay (make-overlay 0 0))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1271
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1272 (defface mac-ts-caret-position
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1273 '((t :inverse-video t))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1274 "Face for caret position in Mac TSM active input area.
71500
fd5f866a10be (mac-handle-font-selection): Change keys of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71356
diff changeset
1275 This is used when the active input area is displayed either in
fd5f866a10be (mac-handle-font-selection): Change keys of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71356
diff changeset
1276 the echo area or in a buffer where the cursor is not displayed."
71175
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1277 :group 'mac)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1278
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1279 (defface mac-ts-raw-text
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1280 '((t :underline t))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1281 "Face for raw text in Mac TSM active input area."
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1282 :group 'mac)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1283
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1284 (defface mac-ts-selected-raw-text
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1285 '((t :underline t))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1286 "Face for selected raw text in Mac TSM active input area."
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1287 :group 'mac)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1288
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1289 (defface mac-ts-converted-text
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1290 '((((background dark)) :underline "gray20")
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1291 (t :underline "gray80"))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1292 "Face for converted text in Mac TSM active input area."
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1293 :group 'mac)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1294
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1295 (defface mac-ts-selected-converted-text
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1296 '((t :underline t))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1297 "Face for selected converted text in Mac TSM active input area."
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1298 :group 'mac)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1299
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1300 (defface mac-ts-block-fill-text
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1301 '((t :underline t))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1302 "Face for block fill text in Mac TSM active input area."
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1303 :group 'mac)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1304
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1305 (defface mac-ts-outline-text
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1306 '((t :underline t))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1307 "Face for outline text in Mac TSM active input area."
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1308 :group 'mac)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1309
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1310 (defface mac-ts-selected-text
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1311 '((t :underline t))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1312 "Face for selected text in Mac TSM active input area."
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1313 :group 'mac)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1314
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1315 (defface mac-ts-no-hilite
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1316 '((t :inherit default))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1317 "Face for no hilite in Mac TSM active input area."
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1318 :group 'mac)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1319
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1320 (defconst mac-ts-hilite-style-faces
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1321 '((2 . mac-ts-raw-text) ; kTSMHiliteRawText
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1322 (3 . mac-ts-selected-raw-text) ; kTSMHiliteSelectedRawText
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1323 (4 . mac-ts-converted-text) ; kTSMHiliteConvertedText
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1324 (5 . mac-ts-selected-converted-text) ; kTSMHiliteSelectedConvertedText
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1325 (6 . mac-ts-block-fill-text) ; kTSMHiliteBlockFillText
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1326 (7 . mac-ts-outline-text) ; kTSMHiliteOutlineText
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1327 (8 . mac-ts-selected-text) ; kTSMHiliteSelectedText
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1328 (9 . mac-ts-no-hilite)) ; kTSMHiliteNoHilite
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1329 "Alist of Mac TSM hilite style vs Emacs face.")
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1330
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1331 (defun mac-ts-update-active-input-buf (text fix-len hilite-rng update-rng)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1332 (let ((buf-len (length mac-ts-active-input-buf))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1333 confirmed)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1334 (if (or (null update-rng)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1335 (/= (% (length update-rng) 2) 0))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1336 ;; The parameter is missing (or in a bad format). The
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1337 ;; existing inline input session is completely replaced with
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1338 ;; the new text.
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1339 (setq mac-ts-active-input-buf text)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1340 ;; Otherwise, the current subtext specified by the (2*j)-th
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1341 ;; range is replaced with the new subtext specified by the
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1342 ;; (2*j+1)-th range.
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1343 (let ((tail buf-len)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1344 (i (length update-rng))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1345 segments rng)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1346 (while (> i 0)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1347 (setq i (- i 2))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1348 (setq rng (aref update-rng i))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1349 (if (and (<= 0 (cadr rng)) (< (cadr rng) tail)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1350 (<= tail buf-len))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1351 (setq segments
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1352 (cons (substring mac-ts-active-input-buf (cadr rng) tail)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1353 segments)))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1354 (setq tail (car rng))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1355 (setq rng (aref update-rng (1+ i)))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1356 (if (and (<= 0 (car rng)) (< (car rng) (cadr rng))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1357 (<= (cadr rng) (length text)))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1358 (setq segments
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1359 (cons (substring text (car rng) (cadr rng))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1360 segments))))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1361 (if (and (< 0 tail) (<= tail buf-len))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1362 (setq segments
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1363 (cons (substring mac-ts-active-input-buf 0 tail)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1364 segments)))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1365 (setq mac-ts-active-input-buf (apply 'concat segments))))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1366 (setq buf-len (length mac-ts-active-input-buf))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1367 ;; Confirm (a part of) inline input session.
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1368 (cond ((< fix-len 0)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1369 ;; Entire inline session is being confirmed.
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1370 (setq confirmed mac-ts-active-input-buf)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1371 (setq mac-ts-active-input-buf ""))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1372 ((= fix-len 0)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1373 ;; None of the text is being confirmed (yet).
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1374 (setq confirmed ""))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1375 (t
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1376 (if (> fix-len buf-len)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1377 (setq fix-len buf-len))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1378 (setq confirmed (substring mac-ts-active-input-buf 0 fix-len))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1379 (setq mac-ts-active-input-buf
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1380 (substring mac-ts-active-input-buf fix-len))))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1381 (setq buf-len (length mac-ts-active-input-buf))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1382 ;; Update highlighting and the caret position in the new inline
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1383 ;; input session.
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1384 (remove-text-properties 0 buf-len '(cursor nil) mac-ts-active-input-buf)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1385 (mapc (lambda (rng)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1386 (cond ((and (= (nth 2 rng) 1) ; kTSMHiliteCaretPosition
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1387 (<= 0 (car rng)) (< (car rng) buf-len))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1388 (put-text-property (car rng) buf-len
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1389 'cursor t mac-ts-active-input-buf))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1390 ((and (<= 0 (car rng)) (< (car rng) (cadr rng))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1391 (<= (cadr rng) buf-len))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1392 (put-text-property (car rng) (cadr rng) 'face
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1393 (cdr (assq (nth 2 rng)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1394 mac-ts-hilite-style-faces))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1395 mac-ts-active-input-buf))))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1396 hilite-rng)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1397 confirmed))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1398
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1399 (defun mac-split-string-by-property-change (string)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1400 (let ((tail (length string))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1401 head result)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1402 (unless (= tail 0)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1403 (while (setq head (previous-property-change tail string)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1404 result (cons (substring string (or head 0) tail) result)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1405 tail head)))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1406 result))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1407
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1408 (defun mac-replace-untranslated-utf-8-chars (string &optional to-string)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1409 (or to-string (setq to-string "$,3u=(B"))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1410 (mapconcat
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1411 (lambda (str)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1412 (if (get-text-property 0 'untranslated-utf-8 str) to-string str))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1413 (mac-split-string-by-property-change string)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1414 ""))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1415
74892
b064bb685ef7 (mac-keyboard-translate-char, mac-unread-string):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74625
diff changeset
1416 (defun mac-keyboard-translate-char (ch)
91441
6cdf5d4140a1 (mac-keyboard-translate-char): Use characterp rather than char-valid-p.
Glenn Morris <rgm@gnu.org>
parents: 91327
diff changeset
1417 (if (and (characterp ch)
74892
b064bb685ef7 (mac-keyboard-translate-char, mac-unread-string):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74625
diff changeset
1418 (or (char-table-p keyboard-translate-table)
b064bb685ef7 (mac-keyboard-translate-char, mac-unread-string):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74625
diff changeset
1419 (and (or (stringp keyboard-translate-table)
b064bb685ef7 (mac-keyboard-translate-char, mac-unread-string):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74625
diff changeset
1420 (vectorp keyboard-translate-table))
b064bb685ef7 (mac-keyboard-translate-char, mac-unread-string):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74625
diff changeset
1421 (> (length keyboard-translate-table) ch))))
b064bb685ef7 (mac-keyboard-translate-char, mac-unread-string):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74625
diff changeset
1422 (or (aref keyboard-translate-table ch) ch)
b064bb685ef7 (mac-keyboard-translate-char, mac-unread-string):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74625
diff changeset
1423 ch))
b064bb685ef7 (mac-keyboard-translate-char, mac-unread-string):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74625
diff changeset
1424
b064bb685ef7 (mac-keyboard-translate-char, mac-unread-string):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74625
diff changeset
1425 (defun mac-unread-string (string)
b064bb685ef7 (mac-keyboard-translate-char, mac-unread-string):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74625
diff changeset
1426 ;; Unread characters and insert them in a keyboard macro being
b064bb685ef7 (mac-keyboard-translate-char, mac-unread-string):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74625
diff changeset
1427 ;; defined.
b064bb685ef7 (mac-keyboard-translate-char, mac-unread-string):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74625
diff changeset
1428 (apply 'isearch-unread
b064bb685ef7 (mac-keyboard-translate-char, mac-unread-string):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74625
diff changeset
1429 (mapcar 'mac-keyboard-translate-char
b064bb685ef7 (mac-keyboard-translate-char, mac-unread-string):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74625
diff changeset
1430 (mac-replace-untranslated-utf-8-chars string))))
b064bb685ef7 (mac-keyboard-translate-char, mac-unread-string):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74625
diff changeset
1431
71175
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1432 (defun mac-ts-update-active-input-area (event)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1433 "Update Mac TSM active input area according to EVENT.
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1434 The confirmed text is converted to Emacs input events and pushed
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1435 into `unread-command-events'. The unconfirmed text is displayed
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1436 either in the current buffer or in the echo area."
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1437 (interactive "e")
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1438 (let* ((ae (mac-event-ae event))
71500
fd5f866a10be (mac-handle-font-selection): Change keys of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71356
diff changeset
1439 (type-text (mac-ae-parameter ae "tstx"))
fd5f866a10be (mac-handle-font-selection): Change keys of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71356
diff changeset
1440 (text (or (cdr type-text) ""))
fd5f866a10be (mac-handle-font-selection): Change keys of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71356
diff changeset
1441 (decode-fun (if (equal (car type-text) "TEXT")
fd5f866a10be (mac-handle-font-selection): Change keys of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71356
diff changeset
1442 'mac-TEXT-to-string 'mac-utxt-to-string))
71175
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1443 (script-language (mac-ae-script-language ae "tssl"))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1444 (coding (or (cdr (assq (car script-language)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1445 mac-script-code-coding-systems))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1446 'mac-roman))
71356
a183bff9cb83 (mac-text-encoding-ascii): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71175
diff changeset
1447 (fix-len (mac-ae-number ae "tsfx"))
71175
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1448 ;; Optional parameters
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1449 (hilite-rng (mac-ae-text-range-array ae "tshi"))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1450 (update-rng (mac-ae-text-range-array ae "tsup"))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1451 ;;(pin-rng (mac-bytes-to-text-range (cdr (mac-ae-parameter ae "tspn" "txrn"))))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1452 ;;(clause-offsets (cdr (mac-ae-parameter ae "tscl" "ofay")))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1453 (seqno (mac-ae-number ae "tsSn"))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1454 confirmed)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1455 (unless (= seqno mac-ts-update-active-input-area-seqno)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1456 ;; Reset internal states if sequence number is out of sync.
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1457 (setq mac-ts-active-input-buf ""))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1458 (setq confirmed
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1459 (mac-ts-update-active-input-buf text fix-len hilite-rng update-rng))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1460 (let ((use-echo-area
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1461 (or isearch-mode
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1462 (and cursor-in-echo-area (current-message))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1463 ;; Overlay strings are not shown in some cases.
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1464 (get-char-property (point) 'invisible)
71500
fd5f866a10be (mac-handle-font-selection): Change keys of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71356
diff changeset
1465 (and (not (bobp))
fd5f866a10be (mac-handle-font-selection): Change keys of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71356
diff changeset
1466 (or (and (get-char-property (point) 'display)
fd5f866a10be (mac-handle-font-selection): Change keys of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71356
diff changeset
1467 (eq (get-char-property (1- (point)) 'display)
fd5f866a10be (mac-handle-font-selection): Change keys of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71356
diff changeset
1468 (get-char-property (point) 'display)))
fd5f866a10be (mac-handle-font-selection): Change keys of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71356
diff changeset
1469 (and (get-char-property (point) 'composition)
fd5f866a10be (mac-handle-font-selection): Change keys of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71356
diff changeset
1470 (eq (get-char-property (1- (point)) 'composition)
fd5f866a10be (mac-handle-font-selection): Change keys of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71356
diff changeset
1471 (get-char-property (point) 'composition)))))))
71175
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1472 active-input-string caret-seen)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1473 ;; Decode the active input area text with inheriting faces and
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1474 ;; the caret position.
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1475 (setq active-input-string
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1476 (mapconcat
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1477 (lambda (str)
71500
fd5f866a10be (mac-handle-font-selection): Change keys of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71356
diff changeset
1478 (let ((decoded (funcall decode-fun str coding)))
71175
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1479 (put-text-property 0 (length decoded) 'face
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1480 (get-text-property 0 'face str) decoded)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1481 (when (and (not caret-seen)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1482 (get-text-property 0 'cursor str))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1483 (setq caret-seen t)
71500
fd5f866a10be (mac-handle-font-selection): Change keys of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71356
diff changeset
1484 (if (or use-echo-area (null cursor-type))
71175
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1485 (put-text-property 0 1 'face 'mac-ts-caret-position
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1486 decoded)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1487 (put-text-property 0 1 'cursor t decoded)))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1488 decoded))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1489 (mac-split-string-by-property-change mac-ts-active-input-buf)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1490 ""))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1491 (put-text-property 0 (length active-input-string)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1492 'mac-ts-active-input-string t active-input-string)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1493 (if use-echo-area
71356
a183bff9cb83 (mac-text-encoding-ascii): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71175
diff changeset
1494 (let ((msg (current-message))
a183bff9cb83 (mac-text-encoding-ascii): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71175
diff changeset
1495 message-log-max)
a183bff9cb83 (mac-text-encoding-ascii): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71175
diff changeset
1496 (if (and msg
71175
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1497 ;; Don't get confused by previously displayed
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1498 ;; `active-input-string'.
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1499 (null (get-text-property 0 'mac-ts-active-input-string
71356
a183bff9cb83 (mac-text-encoding-ascii): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71175
diff changeset
1500 msg)))
a183bff9cb83 (mac-text-encoding-ascii): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71175
diff changeset
1501 (setq msg (propertize msg 'display
a183bff9cb83 (mac-text-encoding-ascii): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71175
diff changeset
1502 (concat msg active-input-string)))
71175
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1503 (setq msg active-input-string))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1504 (message "%s" msg)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1505 (overlay-put mac-ts-active-input-overlay 'before-string nil))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1506 (move-overlay mac-ts-active-input-overlay
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1507 (point) (point) (current-buffer))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1508 (overlay-put mac-ts-active-input-overlay 'before-string
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1509 active-input-string))
74892
b064bb685ef7 (mac-keyboard-translate-char, mac-unread-string):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 74625
diff changeset
1510 (mac-unread-string (funcall decode-fun confirmed coding)))
71175
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1511 ;; The event is successfully processed. Sync the sequence number.
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1512 (setq mac-ts-update-active-input-area-seqno (1+ seqno))))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1513
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1514 (defun mac-ts-unicode-for-key-event (event)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1515 "Convert Unicode key EVENT to Emacs key events and unread them."
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1516 (interactive "e")
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1517 (let* ((ae (mac-event-ae event))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1518 (text (cdr (mac-ae-parameter ae "tstx" "utxt")))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1519 (script-language (mac-ae-script-language ae "tssl"))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1520 (coding (or (cdr (assq (car script-language)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1521 mac-script-code-coding-systems))
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1522 'mac-roman)))
77659
5e0f43a8e936 (mac-ts-unicode-for-key-event): Check if text is available.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75831
diff changeset
1523 (if text
5e0f43a8e936 (mac-ts-unicode-for-key-event): Check if text is available.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75831
diff changeset
1524 (mac-unread-string (mac-utxt-to-string text coding)))))
71175
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1525
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1526 ;; kEventClassTextInput/kEventTextInputUpdateActiveInputArea
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1527 (define-key mac-apple-event-map [text-input update-active-input-area]
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1528 'mac-ts-update-active-input-area)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1529 ;; kEventClassTextInput/kEventTextInputUnicodeForKeyEvent
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1530 (define-key mac-apple-event-map [text-input unicode-for-key-event]
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1531 'mac-ts-unicode-for-key-event)
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1532
70491
1ceca94285a6 (mac-utxt-to-string): Use `eq' instead of `='.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70429
diff changeset
1533 ;;; Services
70559
a1af34eacdb3 (mac-font-panel-mode): Doc fix.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70491
diff changeset
1534 (defun mac-service-open-file ()
67662
db9106933641 (mac-handle-language-change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67487
diff changeset
1535 "Open the file specified by the selection value for Services."
61778
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
1536 (interactive)
80334
9833887c464d (mac-service-open-file): Use file URL instead of file name string.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 79718
diff changeset
1537 ;; The selection seems not to contain the file name as
9833887c464d (mac-service-open-file): Use file URL instead of file name string.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 79718
diff changeset
1538 ;; public.utf16-plain-text data on Mac OS X 10.4.
9833887c464d (mac-service-open-file): Use file URL instead of file name string.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 79718
diff changeset
1539 (dnd-open-file (x-get-selection mac-service-selection 'public.file-url) nil))
61778
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
1540
70559
a1af34eacdb3 (mac-font-panel-mode): Doc fix.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70491
diff changeset
1541 (defun mac-service-open-selection ()
67662
db9106933641 (mac-handle-language-change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67487
diff changeset
1542 "Create a new buffer containing the selection value for Services."
61778
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
1543 (interactive)
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
1544 (switch-to-buffer (generate-new-buffer "*untitled*"))
70559
a1af34eacdb3 (mac-font-panel-mode): Doc fix.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70491
diff changeset
1545 (insert (x-selection-value mac-service-selection))
61778
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
1546 (sit-for 0)
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
1547 (save-buffer) ; It pops up the save dialog.
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
1548 )
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
1549
70559
a1af34eacdb3 (mac-font-panel-mode): Doc fix.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70491
diff changeset
1550 (defun mac-service-mail-selection ()
67662
db9106933641 (mac-handle-language-change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67487
diff changeset
1551 "Prepare a mail buffer containing the selection value for Services."
64245
4748803d9fb2 (mac-services-mail-selection, mac-services-mail-to): New functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
1552 (interactive)
4748803d9fb2 (mac-services-mail-selection, mac-services-mail-to): New functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
1553 (compose-mail)
4748803d9fb2 (mac-services-mail-selection, mac-services-mail-to): New functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
1554 (rfc822-goto-eoh)
4748803d9fb2 (mac-services-mail-selection, mac-services-mail-to): New functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
1555 (forward-line 1)
70559
a1af34eacdb3 (mac-font-panel-mode): Doc fix.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70491
diff changeset
1556 (insert (x-selection-value mac-service-selection) "\n"))
64245
4748803d9fb2 (mac-services-mail-selection, mac-services-mail-to): New functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
1557
70559
a1af34eacdb3 (mac-font-panel-mode): Doc fix.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70491
diff changeset
1558 (defun mac-service-mail-to ()
67662
db9106933641 (mac-handle-language-change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67487
diff changeset
1559 "Prepare a mail buffer to be sent to the selection value for Services."
64245
4748803d9fb2 (mac-services-mail-selection, mac-services-mail-to): New functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
1560 (interactive)
70559
a1af34eacdb3 (mac-font-panel-mode): Doc fix.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70491
diff changeset
1561 (compose-mail (x-selection-value mac-service-selection)))
64245
4748803d9fb2 (mac-services-mail-selection, mac-services-mail-to): New functions.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
1562
70559
a1af34eacdb3 (mac-font-panel-mode): Doc fix.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70491
diff changeset
1563 (defun mac-service-insert-text ()
67662
db9106933641 (mac-handle-language-change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67487
diff changeset
1564 "Insert the selection value for Services."
61778
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
1565 (interactive)
70559
a1af34eacdb3 (mac-font-panel-mode): Doc fix.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70491
diff changeset
1566 (let ((text (x-selection-value mac-service-selection)))
61778
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
1567 (if (not buffer-read-only)
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
1568 (insert text)
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
1569 (kill-new text)
87170
e50a2e215441 * erc-stamp.el (erc-echo-timestamp):
David Kastrup <dak@gnu.org>
parents: 86847
diff changeset
1570 (message "%s"
61778
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
1571 (substitute-command-keys
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
1572 "The text from the Services menu can be accessed with \\[yank]")))))
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
1573
70559
a1af34eacdb3 (mac-font-panel-mode): Doc fix.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70491
diff changeset
1574 ;; kEventClassService/kEventServicePaste
a1af34eacdb3 (mac-font-panel-mode): Doc fix.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70491
diff changeset
1575 (define-key mac-apple-event-map [service paste] 'mac-service-insert-text)
a1af34eacdb3 (mac-font-panel-mode): Doc fix.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70491
diff changeset
1576 ;; kEventClassService/kEventServicePerform
a1af34eacdb3 (mac-font-panel-mode): Doc fix.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70491
diff changeset
1577 (define-key mac-apple-event-map [service perform open-file]
a1af34eacdb3 (mac-font-panel-mode): Doc fix.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70491
diff changeset
1578 'mac-service-open-file)
a1af34eacdb3 (mac-font-panel-mode): Doc fix.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70491
diff changeset
1579 (define-key mac-apple-event-map [service perform open-selection]
a1af34eacdb3 (mac-font-panel-mode): Doc fix.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70491
diff changeset
1580 'mac-service-open-selection)
a1af34eacdb3 (mac-font-panel-mode): Doc fix.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70491
diff changeset
1581 (define-key mac-apple-event-map [service perform mail-selection]
a1af34eacdb3 (mac-font-panel-mode): Doc fix.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70491
diff changeset
1582 'mac-service-mail-selection)
a1af34eacdb3 (mac-font-panel-mode): Doc fix.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70491
diff changeset
1583 (define-key mac-apple-event-map [service perform mail-to]
a1af34eacdb3 (mac-font-panel-mode): Doc fix.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70491
diff changeset
1584 'mac-service-mail-to)
67450
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1585
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1586 (defun mac-dispatch-apple-event (event)
67662
db9106933641 (mac-handle-language-change)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67487
diff changeset
1587 "Dispatch EVENT according to the keymap `mac-apple-event-map'."
67450
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1588 (interactive "e")
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1589 (let* ((binding (lookup-key mac-apple-event-map (mac-event-spec event)))
70870
e5af358ce93a Set idle timer to clean up expired Apple events.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70763
diff changeset
1590 (ae (mac-event-ae event))
e5af358ce93a Set idle timer to clean up expired Apple events.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70763
diff changeset
1591 (service-message (and (keymapp binding)
e5af358ce93a Set idle timer to clean up expired Apple events.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70763
diff changeset
1592 (cdr (mac-ae-parameter ae "svmg")))))
67450
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1593 (when service-message
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1594 (setq service-message
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1595 (intern (decode-coding-string service-message 'utf-8)))
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1596 (setq binding (lookup-key binding (vector service-message))))
68035
a9b674b9cf4c (mac-ae-parameter): Don't coerce data if it is
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67662
diff changeset
1597 ;; Replace (cadr event) with a dummy position so that event-start
a9b674b9cf4c (mac-ae-parameter): Don't coerce data if it is
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67662
diff changeset
1598 ;; returns it.
a9b674b9cf4c (mac-ae-parameter): Don't coerce data if it is
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67662
diff changeset
1599 (setcar (cdr event) (list (selected-window) (point) '(0 . 0) 0))
70870
e5af358ce93a Set idle timer to clean up expired Apple events.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70763
diff changeset
1600 (if (null (mac-ae-parameter ae 'emacs-suspension-id))
71175
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1601 (command-execute binding nil (vector event) t)
70870
e5af358ce93a Set idle timer to clean up expired Apple events.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70763
diff changeset
1602 (condition-case err
e5af358ce93a Set idle timer to clean up expired Apple events.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70763
diff changeset
1603 (progn
71175
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1604 (command-execute binding nil (vector event) t)
70870
e5af358ce93a Set idle timer to clean up expired Apple events.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70763
diff changeset
1605 (mac-resume-apple-event ae))
e5af358ce93a Set idle timer to clean up expired Apple events.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70763
diff changeset
1606 (error
e5af358ce93a Set idle timer to clean up expired Apple events.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70763
diff changeset
1607 (mac-ae-set-reply-parameter ae "errs"
e5af358ce93a Set idle timer to clean up expired Apple events.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70763
diff changeset
1608 (cons "TEXT" (error-message-string err)))
e5af358ce93a Set idle timer to clean up expired Apple events.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70763
diff changeset
1609 (mac-resume-apple-event ae -10000)))))) ; errAEEventFailed
67450
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1610
71175
ed68e074ebb4 (mac-ts-active-input-overlay): Add defvar.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70870
diff changeset
1611 (define-key special-event-map [mac-apple-event] 'mac-dispatch-apple-event)
67450
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1612
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1613 ;; Processing of Apple events are deferred at the startup time. For
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1614 ;; example, files dropped onto the Emacs application icon can only be
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1615 ;; processed when the initial frame has been created: this is where
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1616 ;; the files should be opened.
fa74deeadab8 Require url when compiling. Call
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67099
diff changeset
1617 (add-hook 'after-init-hook 'mac-process-deferred-apple-events)
70379
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1618
70870
e5af358ce93a Set idle timer to clean up expired Apple events.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70763
diff changeset
1619 (run-with-idle-timer 5 t 'mac-cleanup-expired-apple-events)
e5af358ce93a Set idle timer to clean up expired Apple events.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70763
diff changeset
1620
70379
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1621
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1622 ;;;; Drag and drop
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1623
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1624 (defcustom mac-dnd-types-alist
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1625 '(("furl" . mac-dnd-handle-furl)
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1626 ("hfs " . mac-dnd-handle-hfs)
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1627 ("utxt" . mac-dnd-insert-utxt)
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1628 ("TEXT" . mac-dnd-insert-TEXT)
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1629 ("TIFF" . mac-dnd-insert-TIFF))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1630 "Which function to call to handle a drop of that type.
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1631 The function takes three arguments, WINDOW, ACTION and DATA.
75142
1e951eb6473e (mac-dnd-types-alist): Fix typo in docstring.
Juanma Barranquero <lekktu@gmail.com>
parents: 74892
diff changeset
1632 WINDOW is where the drop occurred, ACTION is always `private' on
70379
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1633 Mac. DATA is the drop data. Unlike the x-dnd counterpart, the
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1634 return value of the function is not significant.
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1635
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1636 See also `mac-dnd-known-types'."
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1637 :version "22.1"
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1638 :type 'alist
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1639 :group 'mac)
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1640
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1641 (defun mac-dnd-handle-furl (window action data)
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1642 (dnd-handle-one-url window action (mac-furl-to-string data)))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1643
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1644 (defun mac-dnd-handle-hfs (window action data)
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1645 ;; struct HFSFlavor {
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1646 ;; OSType fileType;
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1647 ;; OSType fileCreator;
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1648 ;; UInt16 fdFlags;
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1649 ;; FSSpec fileSpec;
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1650 ;; };
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1651 (let* ((file-name (mac-coerce-ae-data "fss " (substring data 10)
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1652 'undecoded-file-name))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1653 (url (concat "file://"
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1654 (mapconcat 'url-hexify-string
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1655 (split-string file-name "/") "/"))))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1656 (dnd-handle-one-url window action url)))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1657
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1658 (defun mac-dnd-insert-utxt (window action data)
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1659 (dnd-insert-text window action (mac-utxt-to-string data)))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1660
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1661 (defun mac-dnd-insert-TEXT (window action data)
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1662 (dnd-insert-text window action (mac-TEXT-to-string data)))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1663
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1664 (defun mac-dnd-insert-TIFF (window action data)
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1665 (dnd-insert-text window action (mac-TIFF-to-string data)))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1666
75375
2d3bcf670390 (mac-keyboard-modifier-mask-alist): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75347
diff changeset
1667 (defun mac-dnd-drop-data (event frame window data type &optional action)
2d3bcf670390 (mac-keyboard-modifier-mask-alist): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75347
diff changeset
1668 (or action (setq action 'private))
70379
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1669 (let* ((type-info (assoc type mac-dnd-types-alist))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1670 (handler (cdr type-info))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1671 (w (posn-window (event-start event))))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1672 (when handler
80384
7c4dd8e082ee (mac-dnd-drop-data): Remove redundant check.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 80334
diff changeset
1673 (if (and (window-live-p w)
70379
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1674 (not (window-minibuffer-p w))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1675 (not (window-dedicated-p w)))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1676 ;; If dropping in an ordinary window which we could use,
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1677 ;; let dnd-open-file-other-window specify what to do.
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1678 (progn
72536
59670fc88353 (mac-apple-event-map): Rename hicommand to hi-command.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71500
diff changeset
1679 (when (not mouse-yank-at-point)
59670fc88353 (mac-apple-event-map): Rename hicommand to hi-command.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 71500
diff changeset
1680 (goto-char (posn-point (event-start event))))
70379
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1681 (funcall handler window action data))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1682 ;; If we can't display the file here,
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1683 ;; make a new window for it.
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1684 (let ((dnd-open-file-other-window t))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1685 (select-frame frame)
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1686 (funcall handler window action data))))))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1687
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1688 (defun mac-dnd-handle-drag-n-drop-event (event)
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1689 "Receive drag and drop events."
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1690 (interactive "e")
75375
2d3bcf670390 (mac-keyboard-modifier-mask-alist): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75347
diff changeset
1691 (let ((window (posn-window (event-start event)))
2d3bcf670390 (mac-keyboard-modifier-mask-alist): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75347
diff changeset
1692 (ae (mac-event-ae event))
2d3bcf670390 (mac-keyboard-modifier-mask-alist): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75347
diff changeset
1693 action)
70379
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1694 (when (windowp window) (select-window window))
75375
2d3bcf670390 (mac-keyboard-modifier-mask-alist): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75347
diff changeset
1695 (if (memq 'option (mac-ae-keyboard-modifiers ae))
2d3bcf670390 (mac-keyboard-modifier-mask-alist): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75347
diff changeset
1696 (setq action 'copy))
2d3bcf670390 (mac-keyboard-modifier-mask-alist): New constant.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75347
diff changeset
1697 (dolist (item (mac-ae-list ae))
70379
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1698 (if (not (equal (car item) "null"))
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1699 (mac-dnd-drop-data event (selected-frame) window
75831
906e93bebe5f Change all uses of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 75375
diff changeset
1700 (cdr item) (car item) action)))))
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1701
90149
04a655b49105 Sync with the main trunk.
Kenichi Handa <handa@m17n.org>
parents: 90147
diff changeset
1702 (setq font-encoding-alist
04a655b49105 Sync with the main trunk.
Kenichi Handa <handa@m17n.org>
parents: 90147
diff changeset
1703 (append
04a655b49105 Sync with the main trunk.
Kenichi Handa <handa@m17n.org>
parents: 90147
diff changeset
1704 '(("mac-roman" . mac-roman)
04a655b49105 Sync with the main trunk.
Kenichi Handa <handa@m17n.org>
parents: 90147
diff changeset
1705 ("mac-centraleurroman" . mac-centraleurroman)
04a655b49105 Sync with the main trunk.
Kenichi Handa <handa@m17n.org>
parents: 90147
diff changeset
1706 ("mac-cyrillic" . mac-cyrillic)
04a655b49105 Sync with the main trunk.
Kenichi Handa <handa@m17n.org>
parents: 90147
diff changeset
1707 ("mac-symbol" . mac-symbol)
04a655b49105 Sync with the main trunk.
Kenichi Handa <handa@m17n.org>
parents: 90147
diff changeset
1708 ("mac-dingbats" . mac-dingbats))
04a655b49105 Sync with the main trunk.
Kenichi Handa <handa@m17n.org>
parents: 90147
diff changeset
1709 font-encoding-alist))
64275
a6a8c13a3caa (ccl-encode-mac-roman-font, ccl-encode-mac-centraleurroman-font)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64245
diff changeset
1710
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1711 (defun fontset-add-mac-fonts (fontset &optional base-family)
90149
04a655b49105 Sync with the main trunk.
Kenichi Handa <handa@m17n.org>
parents: 90147
diff changeset
1712 (dolist (elt `((latin . (,(or base-family "Monaco") . "mac-roman"))
04a655b49105 Sync with the main trunk.
Kenichi Handa <handa@m17n.org>
parents: 90147
diff changeset
1713 (mac-roman . (,base-family . "mac-roman"))
04a655b49105 Sync with the main trunk.
Kenichi Handa <handa@m17n.org>
parents: 90147
diff changeset
1714 (mac-centraleurroman . (,base-family . "mac-centraleurroman"))
04a655b49105 Sync with the main trunk.
Kenichi Handa <handa@m17n.org>
parents: 90147
diff changeset
1715 (mac-cyrillic . (,base-family . "mac-cyrillic"))
04a655b49105 Sync with the main trunk.
Kenichi Handa <handa@m17n.org>
parents: 90147
diff changeset
1716 (mac-symbol . (,base-family . "mac-symbol"))
04a655b49105 Sync with the main trunk.
Kenichi Handa <handa@m17n.org>
parents: 90147
diff changeset
1717 (mac-dingbats . (,base-family . "mac-dingbats"))))
04a655b49105 Sync with the main trunk.
Kenichi Handa <handa@m17n.org>
parents: 90147
diff changeset
1718 (set-fontset-font fontset (car elt) (cdr elt))))
61778
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
1719
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1720 (defun create-fontset-from-mac-roman-font (font &optional resolved-font
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1721 fontset-name)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1722 "Create a fontset from a Mac roman font FONT.
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1723
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1724 Optional 1st arg RESOLVED-FONT is a resolved name of FONT. If
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1725 omitted, `x-resolve-font-name' is called to get the resolved name. At
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1726 this time, if FONT is not available, error is signaled.
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1727
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1728 Optional 2nd arg FONTSET-NAME is a string to be used in
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1729 `<CHARSET_ENCODING>' fields of a new fontset name. If it is omitted,
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1730 an appropriate name is generated automatically.
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1731
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1732 It returns a name of the created fontset."
90149
04a655b49105 Sync with the main trunk.
Kenichi Handa <handa@m17n.org>
parents: 90147
diff changeset
1733 (or resolved-font
04a655b49105 Sync with the main trunk.
Kenichi Handa <handa@m17n.org>
parents: 90147
diff changeset
1734 (setq resolved-font (x-resolve-font-name font)))
90150
4eded3eec512 (create-fontset-from-mac-roman-font): Fix previous change.
Kenichi Handa <handa@m17n.org>
parents: 90149
diff changeset
1735 (let ((base-family (aref (x-decompose-font-name resolved-font)
4eded3eec512 (create-fontset-from-mac-roman-font): Fix previous change.
Kenichi Handa <handa@m17n.org>
parents: 90149
diff changeset
1736 xlfd-regexp-family-subnum)))
90149
04a655b49105 Sync with the main trunk.
Kenichi Handa <handa@m17n.org>
parents: 90147
diff changeset
1737 (if (string= base-family "*")
04a655b49105 Sync with the main trunk.
Kenichi Handa <handa@m17n.org>
parents: 90147
diff changeset
1738 (setq base-family nil))
04a655b49105 Sync with the main trunk.
Kenichi Handa <handa@m17n.org>
parents: 90147
diff changeset
1739 (new-fontset fontset-name (list (cons 'ascii resolved-font)))
04a655b49105 Sync with the main trunk.
Kenichi Handa <handa@m17n.org>
parents: 90147
diff changeset
1740 (fontset-add-mac-fonts fontset-name base-family)))
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1741
83620
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1742 (defun x-win-suspend-error ()
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1743 (error "Suspending an Emacs running under Mac makes no sense"))
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1744
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1745 (defalias 'x-cut-buffer-or-selection-value 'x-get-selection-value)
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1746
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1747 (defvar mac-initialized nil
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1748 "Non-nil if the w32 window system has been initialized.")
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1749
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1750 (defun mac-initialize-window-system ()
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1751 "Initialize Emacs for Mac GUI frames."
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1752
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1753 ;;; Do the actual Windows setup here; the above code just defines
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1754 ;;; functions and variables that we use now.
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1755
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1756 (setq command-line-args (x-handle-args command-line-args))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1757
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1758 ;;; Make sure we have a valid resource name.
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1759 (or (stringp x-resource-name)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1760 (let (i)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1761 (setq x-resource-name (invocation-name))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1762
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1763 ;; Change any . or * characters in x-resource-name to hyphens,
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1764 ;; so as not to choke when we use it in X resource queries.
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1765 (while (setq i (string-match "[.*]" x-resource-name))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1766 (aset x-resource-name i ?-))))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1767
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1768 (if (x-display-list)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1769 ;; On Mac OS 8/9, Most coding systems used in code conversion for
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1770 ;; font names are not ready at the time when the terminal frame is
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1771 ;; created. So we reconstruct font name table for the initial
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1772 ;; frame.
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1773 (mac-clear-font-name-table)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1774 (x-open-connection "Mac"
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1775 x-command-line-resources
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1776 ;; Exit Emacs with fatal error if this fails.
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1777 t))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1778
83620
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1779 (add-hook 'suspend-hook 'x-win-suspend-error)
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1780
83620
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1781 ;;; Arrange for the kill and yank functions to set and check the clipboard.
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1782 (setq interprogram-cut-function 'x-select-text)
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1783 (setq interprogram-paste-function 'x-get-selection-value)
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1784
83620
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1785
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1786
64275
a6a8c13a3caa (ccl-encode-mac-roman-font, ccl-encode-mac-centraleurroman-font)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64245
diff changeset
1787
83620
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1788 ;;; Turn off window-splitting optimization; Mac is usually fast enough
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1789 ;;; that this is only annoying.
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1790 (setq split-window-keep-point t)
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1791
83620
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1792 ;; Don't show the frame name; that's redundant.
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1793 (setq-default mode-line-frame-identification " ")
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1794
83620
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1795 ;; Turn on support for mouse wheels.
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1796 (mouse-wheel-mode 1)
61659
e40b2bd9a366 Add coding: tag and set it to iso-2022-7bit.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61556
diff changeset
1797
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1798
83620
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1799 ;; Enable CLIPBOARD copy/paste through menu bar commands.
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1800 (menu-bar-enable-clipboard)
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1801
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1802
83620
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1803 ;; Initiate drag and drop
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1804
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1805 (define-key special-event-map [drag-n-drop] 'mac-dnd-handle-drag-n-drop-event)
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1806
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1807
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1808 ;;;; Non-toolkit Scroll bars
64275
a6a8c13a3caa (ccl-encode-mac-roman-font, ccl-encode-mac-centraleurroman-font)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64245
diff changeset
1809
83620
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1810 (unless x-toolkit-scroll-bars
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1811
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1812 ;; for debugging
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1813 ;; (defun mac-handle-scroll-bar-event (event) (interactive "e") (princ event))
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1814
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1815 ;;(global-set-key [vertical-scroll-bar mouse-1] 'mac-handle-scroll-bar-event)
64275
a6a8c13a3caa (ccl-encode-mac-roman-font, ccl-encode-mac-centraleurroman-font)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64245
diff changeset
1816
83620
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1817 (global-set-key
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1818 [vertical-scroll-bar down-mouse-1]
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1819 'mac-handle-scroll-bar-event)
61778
1b44d34506e4 Require select. Set selection-coding-system to
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61680
diff changeset
1820
83620
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1821 (global-unset-key [vertical-scroll-bar drag-mouse-1])
ce4352d8bee9 * loadup.el: Load mac-win on a Mac. Avoid loading both x-win and
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83619
diff changeset
1822 (global-unset-key [vertical-scroll-bar mouse-1])
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1823
69671
e9b0a8e10992 Adjust Courier font specifications in x-fixed-font-alist.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68766
diff changeset
1824 ;; Adjust Courier font specifications in x-fixed-font-alist.
e9b0a8e10992 Adjust Courier font specifications in x-fixed-font-alist.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68766
diff changeset
1825 (let ((courier-fonts (assoc "Courier" x-fixed-font-alist)))
e9b0a8e10992 Adjust Courier font specifications in x-fixed-font-alist.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68766
diff changeset
1826 (if courier-fonts
e9b0a8e10992 Adjust Courier font specifications in x-fixed-font-alist.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68766
diff changeset
1827 (dolist (label-fonts (cdr courier-fonts))
e9b0a8e10992 Adjust Courier font specifications in x-fixed-font-alist.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68766
diff changeset
1828 (setcdr label-fonts
e9b0a8e10992 Adjust Courier font specifications in x-fixed-font-alist.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68766
diff changeset
1829 (mapcar
e9b0a8e10992 Adjust Courier font specifications in x-fixed-font-alist.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68766
diff changeset
1830 (lambda (font)
e9b0a8e10992 Adjust Courier font specifications in x-fixed-font-alist.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68766
diff changeset
1831 (if (string-match "\\`-adobe-courier-\\([^-]*\\)-\\(.\\)-\\(.*\\)-iso8859-1\\'" font)
e9b0a8e10992 Adjust Courier font specifications in x-fixed-font-alist.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68766
diff changeset
1832 (replace-match
e9b0a8e10992 Adjust Courier font specifications in x-fixed-font-alist.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68766
diff changeset
1833 (if (string= (match-string 2 font) "o")
e9b0a8e10992 Adjust Courier font specifications in x-fixed-font-alist.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68766
diff changeset
1834 "-*-courier-\\1-i-\\3-*-*"
e9b0a8e10992 Adjust Courier font specifications in x-fixed-font-alist.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68766
diff changeset
1835 "-*-courier-\\1-\\2-\\3-*-*")
e9b0a8e10992 Adjust Courier font specifications in x-fixed-font-alist.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68766
diff changeset
1836 t nil font)
e9b0a8e10992 Adjust Courier font specifications in x-fixed-font-alist.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68766
diff changeset
1837 font))
e9b0a8e10992 Adjust Courier font specifications in x-fixed-font-alist.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68766
diff changeset
1838 (cdr label-fonts))))))
e9b0a8e10992 Adjust Courier font specifications in x-fixed-font-alist.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68766
diff changeset
1839
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1840 ;; Setup the default fontset.
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1841 (setup-default-fontset)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1842
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1843 ;; Create a fontset that uses mac-roman font. With this fontset,
90149
04a655b49105 Sync with the main trunk.
Kenichi Handa <handa@m17n.org>
parents: 90147
diff changeset
1844 ;; characters belonging to mac-roman charset (that contains ASCII and
04a655b49105 Sync with the main trunk.
Kenichi Handa <handa@m17n.org>
parents: 90147
diff changeset
1845 ;; more Latin characters) are displayed by a mac-roman font.
04a655b49105 Sync with the main trunk.
Kenichi Handa <handa@m17n.org>
parents: 90147
diff changeset
1846 (create-fontset-from-mac-roman-font
04a655b49105 Sync with the main trunk.
Kenichi Handa <handa@m17n.org>
parents: 90147
diff changeset
1847 "-*-Monaco-*-*-*-*-12-*-*-*-*-*-mac-roman" nil
90295
4b3d39451150 Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-14
Miles Bader <miles@gnu.org>
parents: 90294 68766
diff changeset
1848 "-apple-Monaco-normal-r-*-*-12-*-*-*-*-*-fontset-standard")
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1849
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1850 ;; Create fontset specified in X resources "Fontset-N" (N is 0, 1, ...).
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1851 (create-fontset-from-x-resource)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1852
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1853 ;; Apply a geometry resource to the initial frame. Put it at the end
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1854 ;; of the alist, so that anything specified on the command line takes
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1855 ;; precedence.
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1856 (let* ((res-geometry (x-get-resource "geometry" "Geometry"))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1857 parsed)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1858 (if res-geometry
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1859 (progn
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1860 (setq parsed (x-parse-geometry res-geometry))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1861 ;; If the resource specifies a position,
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1862 ;; call the position and size "user-specified".
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1863 (if (or (assq 'top parsed) (assq 'left parsed))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1864 (setq parsed (cons '(user-position . t)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1865 (cons '(user-size . t) parsed))))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1866 ;; All geometry parms apply to the initial frame.
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1867 (setq initial-frame-alist (append initial-frame-alist parsed))
73431
246a1d48fea4 *** empty log message ***
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72703
diff changeset
1868 ;; The size parms apply to all frames. Don't set it if there are
246a1d48fea4 *** empty log message ***
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72703
diff changeset
1869 ;; sizes there already (from command line).
246a1d48fea4 *** empty log message ***
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72703
diff changeset
1870 (if (and (assq 'height parsed)
246a1d48fea4 *** empty log message ***
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72703
diff changeset
1871 (not (assq 'height default-frame-alist)))
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1872 (setq default-frame-alist
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1873 (cons (cons 'height (cdr (assq 'height parsed)))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1874 default-frame-alist)))
73431
246a1d48fea4 *** empty log message ***
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72703
diff changeset
1875 (if (and (assq 'width parsed)
246a1d48fea4 *** empty log message ***
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 72703
diff changeset
1876 (not (assq 'width default-frame-alist)))
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1877 (setq default-frame-alist
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1878 (cons (cons 'width (cdr (assq 'width parsed)))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1879 default-frame-alist))))))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1880
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1881 ;; Check the reverseVideo resource.
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1882 (let ((case-fold-search t))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1883 (let ((rv (x-get-resource "reverseVideo" "ReverseVideo")))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1884 (if (and rv
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1885 (string-match "^\\(true\\|yes\\|on\\)$" rv))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1886 (setq default-frame-alist
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1887 (cons '(reverse . t) default-frame-alist)))))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1888
83619
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83565
diff changeset
1889 (setq mac-initialized t)))
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1890
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1891 (defun mac-handle-scroll-bar-event (event)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1892 "Handle scroll bar EVENT to emulate Mac Toolbox style scrolling."
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1893 (interactive "e")
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1894 (let* ((position (event-start event))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1895 (window (nth 0 position))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1896 (bar-part (nth 4 position)))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1897 (select-window window)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1898 (cond
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1899 ((eq bar-part 'up)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1900 (goto-char (window-start window))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1901 (mac-scroll-down-line))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1902 ((eq bar-part 'above-handle)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1903 (mac-scroll-down))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1904 ((eq bar-part 'handle)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1905 (scroll-bar-drag event))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1906 ((eq bar-part 'below-handle)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1907 (mac-scroll-up))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1908 ((eq bar-part 'down)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1909 (goto-char (window-start window))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1910 (mac-scroll-up-line)))))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1911
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1912 (defun mac-scroll-ignore-events ()
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1913 ;; Ignore confusing non-mouse events
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1914 (while (not (memq (car-safe (read-event))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1915 '(mouse-1 double-mouse-1 triple-mouse-1))) nil))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1916
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1917 (defun mac-scroll-down ()
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1918 (track-mouse
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1919 (mac-scroll-ignore-events)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1920 (scroll-down)))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1921
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1922 (defun mac-scroll-down-line ()
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1923 (track-mouse
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1924 (mac-scroll-ignore-events)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1925 (scroll-down 1)))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1926
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1927 (defun mac-scroll-up ()
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1928 (track-mouse
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1929 (mac-scroll-ignore-events)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1930 (scroll-up)))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1931
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1932 (defun mac-scroll-up-line ()
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1933 (track-mouse
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1934 (mac-scroll-ignore-events)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1935 (scroll-up 1)))
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1936
70379
8a0284e52e27 (mac-utxt-to-string, mac-string-to-utxt)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 70298
diff changeset
1937
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1938
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1939 ;;;; Others
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1940
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1941 (unless (eq system-type 'darwin)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1942 ;; This variable specifies the Unix program to call (as a process) to
60190
e7acbfa92707 (function-key-map): Use char-names more consistently.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 59658
diff changeset
1943 ;; determine the amount of free space on a file system (defaults to
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1944 ;; df). If it is not set to nil, ls-lisp will not work correctly
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1945 ;; unless an external application df is implemented on the Mac.
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1946 (setq directory-free-space-program nil)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1947
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1948 ;; Set this so that Emacs calls subprocesses with "sh" as shell to
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1949 ;; expand filenames Note no subprocess for the shell is actually
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1950 ;; started (see run_mac_command in sysdep.c).
60190
e7acbfa92707 (function-key-map): Use char-names more consistently.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 59658
diff changeset
1951 (setq shell-file-name "sh")
e7acbfa92707 (function-key-map): Use char-names more consistently.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 59658
diff changeset
1952
61556
6b15c97abf1d Don't set file-name-coding-system. Decode variables system-name,
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61502
diff changeset
1953 ;; Some system variables are encoded with the system script code.
6b15c97abf1d Don't set file-name-coding-system. Decode variables system-name,
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61502
diff changeset
1954 (dolist (v '(system-name
6b15c97abf1d Don't set file-name-coding-system. Decode variables system-name,
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61502
diff changeset
1955 emacs-build-system ; Mac OS 9 version cannot dump
6b15c97abf1d Don't set file-name-coding-system. Decode variables system-name,
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61502
diff changeset
1956 user-login-name user-real-login-name user-full-name))
6b15c97abf1d Don't set file-name-coding-system. Decode variables system-name,
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61502
diff changeset
1957 (set v (decode-coding-string (symbol-value v) mac-system-coding-system))))
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1958
67090
a9abf9b53bef Don't change default directory.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66107
diff changeset
1959 ;; Now the default directory is changed to the user's home directory
a9abf9b53bef Don't change default directory.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66107
diff changeset
1960 ;; in emacs.c if invoked from the WindowServer (with -psn_* option).
a9abf9b53bef Don't change default directory.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66107
diff changeset
1961 ;; (if (string= default-directory "/")
a9abf9b53bef Don't change default directory.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66107
diff changeset
1962 ;; (cd "~"))
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1963
59658
45074d913d23 * editfns.c (Voperating_system_release): Added.
Steven Tamm <steventamm@mac.com>
parents: 59645
diff changeset
1964 ;; Darwin 6- pty breakage is now controlled from the C code so that
45074d913d23 * editfns.c (Voperating_system_release): Added.
Steven Tamm <steventamm@mac.com>
parents: 59645
diff changeset
1965 ;; it applies to all builds on darwin. See s/darwin.h PTY_ITERATION.
45074d913d23 * editfns.c (Voperating_system_release): Added.
Steven Tamm <steventamm@mac.com>
parents: 59645
diff changeset
1966 ;; (setq process-connection-type t)
59144
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1967
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1968 ;; Assume that fonts are always scalable on the Mac. This sometimes
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1969 ;; results in characters with jagged edges. However, without it,
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1970 ;; fonts with both truetype and bitmap representations but no italic
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1971 ;; or bold bitmap versions will not display these variants correctly.
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1972 (setq scalable-fonts-allowed t)
8d9ea622c741 * term/mac-win.el: Sync with x-win.el. Rearrange the contents.
Steven Tamm <steventamm@mac.com>
parents: 59034
diff changeset
1973
83619
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83565
diff changeset
1974 (add-to-list 'handle-args-function-alist '(mac . x-handle-args))
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83565
diff changeset
1975 (add-to-list 'frame-creation-function-alist '(mac . x-create-frame-with-faces))
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83565
diff changeset
1976 (add-to-list 'window-system-initialization-alist '(mac . mac-initialize-window-system))
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83565
diff changeset
1977
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83565
diff changeset
1978 (provide 'mac-win)
5da6a46ddbd6 * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
Dan Nicolaescu <dann@ics.uci.edu>
parents: 83565
diff changeset
1979
60190
e7acbfa92707 (function-key-map): Use char-names more consistently.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 59658
diff changeset
1980 ;; arch-tag: 71dfcd14-cde8-4d66-b05c-85ec94fb23a6
32752
923b8d6d8277 Initial check-in: changes for building Emacs under Mac OS.
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1981 ;;; mac-win.el ends here