[83747] trunk/dports/aqua/emacs-app
hum at macports.org
hum at macports.org
Sat Sep 10 08:52:13 PDT 2011
Revision: 83747
http://trac.macports.org/changeset/83747
Author: hum at macports.org
Date: 2011-09-10 08:52:13 -0700 (Sat, 10 Sep 2011)
Log Message:
-----------
emacs-app: add inline, jpfont and patches variants and patch files from MacEmacsJP; see #30694 (maintainer timeout)
Modified Paths:
--------------
trunk/dports/aqua/emacs-app/Portfile
Added Paths:
-----------
trunk/dports/aqua/emacs-app/files/patch-macemacsjp-font.diff
trunk/dports/aqua/emacs-app/files/patch-macemacsjp-inline.diff
Modified: trunk/dports/aqua/emacs-app/Portfile
===================================================================
--- trunk/dports/aqua/emacs-app/Portfile 2011-09-10 15:49:19 UTC (rev 83746)
+++ trunk/dports/aqua/emacs-app/Portfile 2011-09-10 15:52:13 UTC (rev 83747)
@@ -41,6 +41,24 @@
patchfiles-append patch-fullscreen.diff
}
+# inline and font patches are fetched from MacEmacsJP http://svn.sourceforge.jp/svnroot/macemacsjp/inline_patch/trunk/, revision 574.
+# patch-macemacsjp-inline.diff <= emacs-inline.patch
+# patch-macemacsjp-jpfont.diff <= font.patch
+
+variant inline description {Add inline patch from MacEmacsJP} {
+ patchfiles-append patch-macemacsjp-inline.diff
+}
+
+variant jpfont description {Add Japanese font patch from MacEmacsJP} {
+ patchfiles-append patch-macemacsjp-jpfont.diff
+}
+
+variant patches conflicts fullscreen inline jpfont description {Add all patches: fullscreen, inline and jpfont} {
+ patchfiles-append patch-fullscreen.diff \
+ patch-macemacsjp-jpfont.diff \
+ patch-macemacsjp-inline.diff
+}
+
platform darwin 11 {
patchfiles-append patch-fix-title-bar.diff patch-src_darwin.h.diff
configure.cflags-append -fno-pie -O2
Added: trunk/dports/aqua/emacs-app/files/patch-macemacsjp-font.diff
===================================================================
--- trunk/dports/aqua/emacs-app/files/patch-macemacsjp-font.diff (rev 0)
+++ trunk/dports/aqua/emacs-app/files/patch-macemacsjp-font.diff 2011-09-10 15:52:13 UTC (rev 83747)
@@ -0,0 +1,30 @@
+diff -pr ../emacs-23.3/src/nsfont.m src/nsfont.m
+*** ../emacs-23.3/src/nsfont.m 2011-01-09 02:45:14.000000000 +0900
+--- src/nsfont.m 2011-03-21 17:11:01.000000000 +0900
+*************** nsfont_open (FRAME_PTR f, Lisp_Object fo
+*** 846,853 ****
+ lrint (hshrink * [sfont ascender] + expand * hd/2);
+ /* [sfont descender] is usually negative. Use floor to avoid
+ clipping descenders. */
+! font_info->max_bounds.descent =
+! -lrint (floor(hshrink* [sfont descender] - expand*hd/2));
+ font_info->height =
+ font_info->max_bounds.ascent + font_info->max_bounds.descent;
+ font_info->max_bounds.width = lrint (font_info->width);
+--- 846,861 ----
+ lrint (hshrink * [sfont ascender] + expand * hd/2);
+ /* [sfont descender] is usually negative. Use floor to avoid
+ clipping descenders. */
+! if ([sfont mostCompatibleStringEncoding] == 0x80000001) {
+! /* If the font is Japanese (Mac OS) encoding, change descender to 2 times.
+! Because most of Japanese font's decender, such as Hiragino, is
+! too short. */
+! font_info->max_bounds.descent =
+! -lrint (floor(hshrink* [sfont descender] * 2 - expand*hd/2));
+! } else {
+! font_info->max_bounds.descent =
+! -lrint (floor(hshrink* [sfont descender] - expand*hd/2));
+! }
+ font_info->height =
+ font_info->max_bounds.ascent + font_info->max_bounds.descent;
+ font_info->max_bounds.width = lrint (font_info->width);
Added: trunk/dports/aqua/emacs-app/files/patch-macemacsjp-inline.diff
===================================================================
--- trunk/dports/aqua/emacs-app/files/patch-macemacsjp-inline.diff (rev 0)
+++ trunk/dports/aqua/emacs-app/files/patch-macemacsjp-inline.diff 2011-09-10 15:52:13 UTC (rev 83747)
@@ -0,0 +1,1110 @@
+diff -r -p -x '*.elc' ../emacs-23.2.94-0/lisp/term/ns-win.el lisp/term/ns-win.el
+*** ../emacs-23.2.94-0/lisp/term/ns-win.el 2011-01-27 05:35:09.000000000 +0900
+--- lisp/term/ns-win.el 2011-02-28 13:08:01.000000000 +0900
+*************** The properties returned may include `top
+*** 317,322 ****
+--- 317,323 ----
+ (cons (logior (lsh 0 16) 12) 'ns-new-frame)
+ (cons (logior (lsh 0 16) 13) 'ns-toggle-toolbar)
+ (cons (logior (lsh 0 16) 14) 'ns-show-prefs)
++ (cons (logior (lsh 0 16) 15) 'mac-change-input-method)
+ (cons (logior (lsh 1 16) 32) 'f1)
+ (cons (logior (lsh 1 16) 33) 'f2)
+ (cons (logior (lsh 1 16) 34) 'f3)
+*************** The properties returned may include `top
+*** 549,562 ****
+ ;; editing window.)
+
+ (defface ns-working-text-face
+! '((t :underline t))
+ "Face used to highlight working text during compose sequence insert."
+ :group 'ns)
+
+ (defvar ns-working-overlay nil
+ "Overlay used to highlight working text during compose sequence insert.
+ When text is in th echo area, this just stores the length of the working text.")
+
+ (defvar ns-working-text) ; nsterm.m
+
+ ;; Test if in echo area, based on mac-win.el 2007/08/26 unicode-2.
+--- 550,579 ----
+ ;; editing window.)
+
+ (defface ns-working-text-face
+! '((((background dark)) :underline "gray80")
+! (t :underline "gray20"))
+ "Face used to highlight working text during compose sequence insert."
+ :group 'ns)
+
++ (defface ns-marked-text-face
++ '((((background dark)) :underline "gray80")
++ (t :underline "gray20"))
++ "Face used to highlight marked text during compose sequence insert."
++ :group 'ns)
++
++ (defface ns-unmarked-text-face
++ '((((background dark)) :underline "gray20")
++ (t :underline "gray80"))
++ "Face used to highlight marked text during compose sequence insert."
++ :group 'ns)
++
+ (defvar ns-working-overlay nil
+ "Overlay used to highlight working text during compose sequence insert.
+ When text is in th echo area, this just stores the length of the working text.")
+
++ (defvar ns-marked-overlay nil
++ "Overlay used to highlight marked text during compose sequence insert.")
++
+ (defvar ns-working-text) ; nsterm.m
+
+ ;; Test if in echo area, based on mac-win.el 2007/08/26 unicode-2.
+*************** is currently being used."
+*** 583,588 ****
+--- 600,606 ----
+ (defun ns-put-working-text ()
+ (interactive)
+ (if (ns-in-echo-area) (ns-echo-working-text) (ns-insert-working-text)))
++
+ (defun ns-unput-working-text ()
+ (interactive)
+ (ns-delete-working-text))
+*************** The overlay is assigned the face `ns-wor
+*** 604,622 ****
+ (defun ns-echo-working-text ()
+ "Echo contents of `ns-working-text' in message display area.
+ See `ns-insert-working-text'."
+- (ns-delete-working-text)
+ (let* ((msg (current-message))
+! (msglen (length msg))
+! message-log-max)
+ (setq ns-working-overlay (length ns-working-text))
+ (setq msg (concat msg ns-working-text))
+ (put-text-property msglen (+ msglen ns-working-overlay)
+! 'face 'ns-working-text-face msg)
+ (message "%s" msg)))
+
+ (defun ns-delete-working-text()
+! "Delete working text and clear `ns-working-overlay'."
+ (interactive)
+ (cond
+ ((and (overlayp ns-working-overlay)
+ ;; Still alive?
+--- 622,700 ----
+ (defun ns-echo-working-text ()
+ "Echo contents of `ns-working-text' in message display area.
+ See `ns-insert-working-text'."
+ (let* ((msg (current-message))
+! (msglen (length msg))
+! message-log-max)
+! (if (integerp ns-working-overlay)
+! (progn
+! (setq msg (substring msg 0 (- (length msg) ns-working-overlay)))
+! (setq msglen (length msg))))
+ (setq ns-working-overlay (length ns-working-text))
+ (setq msg (concat msg ns-working-text))
+ (put-text-property msglen (+ msglen ns-working-overlay)
+! 'face 'ns-working-text-face msg)
+! (message "%s" msg)))
+!
+! (defun ns-put-marked-text (event)
+! (interactive "e")
+!
+! (let ((pos (nth 1 event))
+! (len (nth 2 event)))
+! (if (ns-in-echo-area)
+! (ns-echo-marked-text pos len)
+! (ns-insert-marked-text pos len))))
+!
+! (defun ns-insert-marked-text (pos len)
+! "Insert contents of `ns-working-text' as UTF-8 string and mark with
+! `ns-working-overlay' and `ns-marked-overlay'. Any previously existing
+! working text is cleared first. The overlay is assigned the faces
+! `ns-working-text-face' and `ns-marked-text-face'."
+! (ns-delete-working-text)
+! (let ((start (point)))
+! (put-text-property pos len 'face 'ns-working-text-face ns-working-text)
+! (insert ns-working-text)
+! (if (= len 0)
+! (overlay-put (setq ns-working-overlay
+! (make-overlay start (point) (current-buffer) nil t))
+! 'face 'ns-working-text-face)
+! (overlay-put (setq ns-working-overlay
+! (make-overlay start (point) (current-buffer) nil t))
+! 'face 'ns-unmarked-text-face)
+! (overlay-put (setq ns-marked-overlay
+! (make-overlay (+ start pos) (+ start pos len)
+! (current-buffer) nil t))
+! 'face 'ns-marked-text-face))
+! (goto-char (+ start pos))))
+!
+! (defun ns-echo-marked-text (pos len)
+! "Echo contents of `ns-working-text' in message display area.
+! See `ns-insert-working-text'."
+! (let* ((msg (current-message))
+! (msglen (length msg))
+! message-log-max)
+! (when (integerp ns-working-overlay)
+! (setq msg (substring msg 0 (- (length msg) ns-working-overlay)))
+! (setq msglen (length msg)))
+! (setq ns-working-overlay (length ns-working-text))
+! (setq msg (concat msg ns-working-text))
+! (if (> len 0)
+! (put-text-property msglen (+ msglen ns-working-overlay)
+! 'face 'ns-working-text-face msg)
+! (put-text-property msglen (+ msglen ns-working-overlay)
+! 'face 'ns-unmarked-text-face msg)
+! (put-text-property (+ msglen pos) (+ msglen pos len)
+! 'face 'ns-marked-text-face msg))
+ (message "%s" msg)))
+
+ (defun ns-delete-working-text()
+! "Delete working text and clear `ns-working-overlay' and `ns-marked-overlay'."
+ (interactive)
++ (when (and (overlayp ns-marked-overlay)
++ ;; Still alive
++ (overlay-buffer ns-marked-overlay))
++ (with-current-buffer (overlay-buffer ns-marked-overlay)
++ (delete-overlay ns-marked-overlay)))
++ (setq ns-marked-overlay nil)
+ (cond
+ ((and (overlayp ns-working-overlay)
+ ;; Still alive?
+*************** the operating system.")
+*** 1267,1272 ****
+--- 1345,1731 ----
+ (add-to-list 'window-system-initialization-alist '(ns . ns-initialize-window-system))
+
+
++ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
++ ;;
++ ;; Implementation of Input Method Extension for MacOS X
++ ;; written by Taiichi Hashimoto <taiichi2 at mac.com>
++ ;;
++
++ (defvar mac-input-method-parameters
++ '(
++ ("com.apple.inputmethod.Kotoeri.Roman"
++ (title . "A")
++ (cursor-color)
++ (cursor-type))
++ ("com.apple.inputmethod.Kotoeri.Japanese"
++ (title . "あ")
++ (cursor-color)
++ (cursor-type))
++ ("com.apple.inputmethod.Kotoeri.Japanese.Katakana"
++ (title . "ア")
++ (cursor-color)
++ (cursor-type))
++ ("com.apple.inputmethod.Kotoeri.Japanese.FullWidthRoman"
++ (title . "A")
++ (cursor-color)
++ (cursor-type))
++ ("com.apple.inputmethod.Kotoeri.Japanese.HalfWidthKana"
++ (title . "ア")
++ (cursor-color)
++ (cursor-type))
++ ("com.apple.inputmethod.kotoeri.Ainu"
++ (title . "アイヌ")
++ (cursor-color)
++ (cursor-type))
++ ("com.apple.inputmethod.Korean.2SetKorean"
++ (title . "가2")
++ (cursor-color)
++ (cursor-type))
++ ("com.apple.inputmethod.Korean.3SetKorean"
++ (title . "가3")
++ (cursor-color)
++ (cursor-type))
++ ("com.apple.inputmethod.Korean.390Sebulshik"
++ (title . "가5")
++ (cursor-color)
++ (cursor-type))
++ ("com.apple.inputmethod.Korean.GongjinCheongRomaja"
++ (title . "가G")
++ (cursor-color)
++ (cursor-type))
++ ("com.apple.inputmethod.Korean.HNCRomaja"
++ (title . "가H")
++ (cursor-color)
++ (cursor-type))
++ ("com.apple.inputmethod.Tamil.AnjalIM"
++ (title . "Anjal")
++ (cursor-color)
++ (cursor-type))
++ ("com.apple.inputmethod.Tamil.Tamil99"
++ (title . "Tamil")
++ (cursor-color)
++ (cursor-type))
++ ("com.apple.inputmethod.VietnameseIM.VietnameseSimpleTelex"
++ (title . "ST")
++ (cursor-color)
++ (cursor-type))
++ ("com.apple.inputmethod.VietnameseIM.VietnameseTelex"
++ (title . "TX")
++ (cursor-color)
++ (cursor-type))
++ ("com.apple.inputmethod.VietnameseIM.VietnameseVNI"
++ (title . "VN")
++ (cursor-color)
++ (cursor-type))
++ ("com.apple.inputmethod.VietnameseIM.VietnameseVIQR"
++ (title . "VQ")
++ (cursor-color)
++ (cursor-type))
++ ("com.apple.inputmethod.SCIM.ITABC"
++ (title . "拼")
++ (cursor-color)
++ (cursor-type))
++ ("com.apple.inputmethod.SCIM.WBX"
++ (title . "型")
++ (cursor-color)
++ (cursor-type))
++ ("com.apple.inputmethod.SCIM.WBH"
++ (title . "画")
++ (cursor-color)
++ (cursor-type))
++ ("com.apple.inputmethod.TCIM.Zhuyin"
++ (title . "注")
++ (cursor-color)
++ (cursor-type))
++ ("com.apple.inputmethod.TCIM.Pinyin"
++ (title . "拼")
++ (cursor-color)
++ (cursor-type))
++ ("com.apple.inputmethod.TCIM.Cangjie"
++ (title . "倉")
++ (cursor-color)
++ (cursor-type))
++ ("com.apple.inputmethod.TCIM.Jianyi"
++ (title . "速")
++ (cursor-color)
++ (Cursor-type))
++ ("com.apple.inputmethod.TCIM.Dayi"
++ (title . "易")
++ (cursor-color)
++ (cursor-type))
++ ("com.apple.inputmethod.TCIM.Hanin"
++ (title . "漢")
++ (cursor-color)
++ (cursor-type))
++ ("com.google.inputmethod.Japanese.Roman"
++ (title . "G")
++ (cursor-color)
++ (cursor-type))
++ ("com.google.inputmethod.Japanese.base"
++ (title . "ぐ")
++ (cursor-color)
++ (cursor-type))
++ ("com.google.inputmethod.Japanese.Katakana"
++ (title . "グ")
++ (cursor-color)
++ (cursor-type))
++ ("com.google.inputmethod.Japanese.FullWidthRoman"
++ (title . "G")
++ (cursor-color)
++ (cursor-type))
++ ("com.google.inputmethod.Japanese.HalfWidthKana"
++ (title . "グ")
++ (cursor-color)
++ (cursor-type))
++ ("jp.monokakido.inputmethod.Kawasemi.Roman"
++ (title . "K")
++ (cursor-color)
++ (cursor-type))
++ ("jp.monokakido.inputmethod.Kawasemi.Japanese"
++ (title . "か")
++ (cursor-color)
++ (cursor-type))
++ ("jp.monokakido.inputmethod.Kawasemi.Japanese.Katakana"
++ (title . "カ")
++ (cursor-color)
++ (cursor-type))
++ ("jp.monokakido.inputmethod.Kawasemi.Japanese.FullWidthRoman"
++ (title . "K")
++ (cursor-color)
++ (cursor-type))
++ ("jp.monokakido.inputmethod.Kawasemi.Japanese.HalfWidthKana"
++ (title . "カ")
++ (cursor-color)
++ (cursor-type))
++ ("jp.monokakido.inputmethod.Kawasemi.Japanese.HalfWidthRoman"
++ (title . "_K")
++ (cursor-color)
++ (cursor-type))
++ ("jp.monokakido.inputmethod.Kawasemi.Japanese.Code"
++ (title . "C")
++ (cursor-color)
++ (cursor-type))
++ ("com.justsystems.inputmethod.atok22.Roman"
++ (title . "A")
++ (cursor-color)
++ (cursor-type))
++ ("com.justsystems.inputmethod.atok22.Japanese"
++ (title . "あ")
++ (cursor-color)
++ (cursor-type))
++ ("com.justsystems.inputmethod.atok22.Japanese.Katakana"
++ (title . "ア")
++ (cursor-color)
++ (cursor-type))
++ ("com.justsystems.inputmethod.atok22.Japanese.FullWidthRoman"
++ (title . "英")
++ (cursor-color)
++ (cursor-type))
++ ("com.justsystems.inputmethod.atok22.Japanese.HalfWidthEiji"
++ (title . "半英")
++ (cursor-color)
++ (cursor-type))
++ )
++ "Alist of Mac script code vs parameters for input method on MacOSX.")
++
++
++ (defun mac-get-input-method-parameter (is key)
++ "Function to get a parameter of a input method."
++ (interactive)
++ (assq key (cdr (assoc is mac-input-method-parameters))))
++
++ (defun mac-get-input-method-title (&optional input-source)
++ "Return input method title of input source.
++ If input-source is nil, return one of current frame."
++ (if input-source
++ (cdr (mac-get-input-method-parameter input-source 'title))
++ current-input-method-title))
++
++ (defun mac-get-cursor-type (&optional input-source)
++ "Return cursor type of input source.
++ If input-source is nil, return one of current frame."
++ (if input-source
++ (or (cdr (mac-get-input-method-parameter input-source 'cursor-type))
++ (cdr (assq 'cursor-type default-frame-alist))
++ cursor-type)
++ (cdr (assq 'cursor-type (frame-parameters (selected-frame))))))
++
++ (defun mac-get-cursor-color (&optional input-source)
++ "Return cursor color of input source.
++ If input-source is nil, return one of current frame."
++ (if input-source
++ (or (cdr (mac-get-input-method-parameter input-source 'cursor-color))
++ (cdr (assq 'cursor-color default-frame-alist)))
++ (cdr (assq 'cursor-color (frame-parameters (selected-frame))))))
++
++
++ (defun mac-set-input-method-parameter (is key value)
++ "Function to set a parameter of a input method."
++ (let* ((is-param (assoc is mac-input-method-parameters))
++ (param (assq key is-param)))
++ (if is-param
++ (if param
++ (setcdr param value)
++ (setcdr is-param (cons (cons key value) (cdr is-param))))
++ (setq mac-input-method-parameters
++ (cons (list is (cons key value))
++ mac-input-method-parameters)))))
++
++
++ (defun mac-input-method-update (is)
++ "Funtion to update parameters of a input method."
++ (interactive)
++
++ (let ((title (mac-get-input-method-title is))
++ (type (mac-get-cursor-type is))
++ (color (mac-get-cursor-color is)))
++ (if (and title (not (equal title (mac-get-input-method-title))))
++ (setq current-input-method-title title))
++ (if (and type (not (equal type (mac-get-cursor-type))))
++ (setq cursor-type type))
++ (if (and color (not (equal color (mac-get-cursor-color))))
++ (set-cursor-color color))
++ (force-mode-line-update)
++ (if isearch-mode (isearch-update))))
++
++
++ (defun mac-toggle-input-method (&optional arg)
++ "Function to toggle input method on MacOSX."
++ (interactive)
++
++ (if arg
++ (progn
++ (make-local-variable 'input-method-function)
++ (setq inactivate-current-input-method-function 'mac-toggle-input-method)
++ (setq input-method-function nil)
++ (setq describe-current-input-method-function nil)
++ (mac-toggle-input-source t))
++ (kill-local-variable 'input-method-function)
++ (setq describe-current-input-method-function nil)
++ (mac-toggle-input-source nil)))
++
++
++ (defun mac-change-language-to-us ()
++ "Function to change language to us."
++ (interactive)
++ (mac-toggle-input-method nil))
++
++
++ (defun mac-handle-input-method-change ()
++ "Function run when a input method change."
++ (interactive)
++
++ (if (equal default-input-method "MacOSX")
++ (let ((input-source (mac-get-current-input-source))
++ (ascii-capable (mac-input-source-is-ascii-capable)))
++
++ (cond ((and (not current-input-method) (not ascii-capable))
++ (set-input-method "MacOSX"))
++ ((and (equal current-input-method "MacOSX") ascii-capable)
++ (toggle-input-method nil)))
++ (mac-input-method-update input-source))))
++
++ ;;
++ ;; Emacs input method for input method on MacOSX.
++ ;;
++ (register-input-method "MacOSX" "MacOSX" 'mac-toggle-input-method
++ "Mac" "Input Method on MacOSX System")
++
++
++ ;;
++ ;; Minor mode of using input methods on MacOS X
++ ;;
++ (define-minor-mode mac-input-method-mode
++ "Use input methods on MacOSX."
++ :init-value nil
++ :group 'ns
++ :global t
++
++ (if mac-input-method-mode
++ (progn
++ (setq default-input-method "MacOSX")
++ (add-hook 'minibuffer-setup-hook 'mac-change-language-to-us)
++ (mac-translate-from-yen-to-backslash)
++ (mac-add-key-passed-to-system 'shift))
++ (setq default-input-method nil)))
++
++ ;;
++ ;; Valiable and functions to pass key(shortcut) to system.
++ ;;
++ (defvar mac-keys-passed-to-system nil
++ "A list of keys passed to system on MacOSX.")
++
++ (defun mac-add-key-passed-to-system (key)
++ (let ((shift '(shift shft))
++ (control '(control ctrl ctl))
++ (option '(option opt alternate alt))
++ (command '(command cmd)))
++
++ (add-to-list 'mac-keys-passed-to-system
++ (cond ((symbolp key)
++ (cond ((memq key shift)
++ (cons ns-shift-key-mask nil))
++ ((memq key control)
++ (cons ns-control-key-mask nil))
++ ((memq key option)
++ (cons ns-alternate-key-mask nil))
++ ((memq key command)
++ (cons ns-command-key-mask nil))
++ (t (cons nil nil))))
++ ((numberp key) (cons 0 key))
++ ((listp key)
++ (let ((l key) (k nil) (m 0))
++ (while l
++ (cond ((memq (car l) shift)
++ (setq m (logior m ns-shift-key-mask)))
++ ((memq (car l) control)
++ (setq m (logior m ns-control-key-mask)))
++ ((memq (car l) option)
++ (setq m (logior m ns-alternate-key-mask)))
++ ((memq (car l) command)
++ (setq m (logior m ns-command-key-mask)))
++ ((numberp (car l))
++ (if (not k) (setq k (car l)))))
++ (setq l (cdr l)))
++ (cons m k)))
++ (t (cons nil nil))))))
++
++
++ ;;
++ ;; Entry Emacs event for inline input method on MacOSX.
++ ;;
++ (define-key special-event-map
++ [mac-change-input-method] 'mac-handle-input-method-change)
++
++ ;;
++ ;; Convert yen to backslash for JIS keyboard.
++ ;;
++ (defun mac-translate-from-yen-to-backslash ()
++ ;; Convert yen to backslash for JIS keyboard.
++ (interactive)
++
++ (define-key global-map [165] nil)
++ (define-key global-map [2213] nil)
++ (define-key global-map [3420] nil)
++ (define-key global-map [67109029] nil)
++ (define-key global-map [67111077] nil)
++ (define-key global-map [8388773] nil)
++ (define-key global-map [134219941] nil)
++ (define-key global-map [75497596] nil)
++ (define-key global-map [201328805] nil)
++ (define-key function-key-map [165] [?\\])
++ (define-key function-key-map [2213] [?\\]) ;; for Intel
++ (define-key function-key-map [3420] [?\\]) ;; for PowerPC
++ (define-key function-key-map [67109029] [?\C-\\])
++ (define-key function-key-map [67111077] [?\C-\\])
++ (define-key function-key-map [8388773] [?\M-\\])
++ (define-key function-key-map [134219941] [?\M-\\])
++ (define-key function-key-map [75497596] [?\C-\M-\\])
++ (define-key function-key-map [201328805] [?\C-\M-\\])
++ )
++
++ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
++
+ (provide 'ns-win)
+
+ ;; arch-tag: eb138a45-4e2e-4d68-b1c9-a39665731644
+diff -r -p -N -x '*.o' ../emacs-23.2.94-0/src/Makefile.in src/Makefile.in
+*** ../emacs-23.2.94-0/src/Makefile.in 2011-01-09 02:45:14.000000000 +0900
+--- src/Makefile.in 2011-02-15 22:24:06.000000000 +0900
+*************** ns_appresdir=@ns_appresdir@/
+*** 545,551 ****
+ ns_appsrc=@ns_appsrc@
+ /* Object files for NeXTstep */
+ NS_OBJ= nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o \
+! fontset.o fringe.o image.o
+ #endif /* HAVE_NS */
+
+ #ifdef HAVE_WINDOW_SYSTEM
+--- 545,551 ----
+ ns_appsrc=@ns_appsrc@
+ /* Object files for NeXTstep */
+ NS_OBJ= nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o \
+! fontset.o fringe.o image.o macim.o
+ #endif /* HAVE_NS */
+
+ #ifdef HAVE_WINDOW_SYSTEM
+*************** obj= dispnew.o frame.o scroll.o xdisp
+*** 583,589 ****
+ SOME_MACHINE_OBJECTS = dosfns.o msdos.o \
+ xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \
+ fontset.o dbusbind.o \
+! nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o \
+ w32.o w32console.o w32fns.o w32heap.o w32inevt.o \
+ w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o $(FONT_DRIVERS)
+
+--- 583,589 ----
+ SOME_MACHINE_OBJECTS = dosfns.o msdos.o \
+ xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o \
+ fontset.o dbusbind.o \
+! nsterm.o nsfns.o nsmenu.o nsselect.o nsimage.o nsfont.o macim.o\
+ w32.o w32console.o w32fns.o w32heap.o w32inevt.o \
+ w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o $(FONT_DRIVERS)
+
+*************** nsterm.o: nsterm.m blockinput.h atimer.h
+*** 1168,1173 ****
+--- 1168,1174 ----
+ termopts.h termchar.h disptab.h buffer.h window.h keyboard.h \
+ $(INTERVALS_H) process.h coding.h lisp.h $(config_h)
+ nsselect.o: nsselect.m blockinput.h nsterm.h nsgui.h frame.h lisp.h $(config_h)
++ macim.o: macim.m lisp.h blockinput.h termhooks.h keyboard.h buffer.h $(config_h)
+ process.o: process.c process.h buffer.h window.h termhooks.h termopts.h \
+ commands.h syssignal.h systime.h systty.h syswait.h frame.h dispextern.h \
+ blockinput.h atimer.h charset.h coding.h ccl.h msdos.h composite.h \
+diff -r -p -N -x '*.o' ../emacs-23.2.94-0/src/keyboard.c src/keyboard.c
+*** ../emacs-23.2.94-0/src/keyboard.c 2011-01-29 05:22:59.000000000 +0900
+--- src/keyboard.c 2011-02-15 22:24:06.000000000 +0900
+*************** kbd_buffer_get_event (kbp, used_mouse_me
+*** 4243,4250 ****
+ {
+ if (event->code == KEY_NS_PUT_WORKING_TEXT)
+ obj = Fcons (intern ("ns-put-working-text"), Qnil);
+! else
+ obj = Fcons (intern ("ns-unput-working-text"), Qnil);
+ kbd_fetch_ptr = event + 1;
+ if (used_mouse_menu)
+ *used_mouse_menu = 1;
+--- 4243,4252 ----
+ {
+ if (event->code == KEY_NS_PUT_WORKING_TEXT)
+ obj = Fcons (intern ("ns-put-working-text"), Qnil);
+! else if (event->code == KEY_NS_UNPUT_WORKING_TEXT)
+ obj = Fcons (intern ("ns-unput-working-text"), Qnil);
++ else if (event->code == KEY_NS_PUT_MARKED_TEXT)
++ obj = Fcons (intern ("ns-put-marked-text"), event->arg);
+ kbd_fetch_ptr = event + 1;
+ if (used_mouse_menu)
+ *used_mouse_menu = 1;
+*************** keys_of_keyboard ()
+*** 12611,12616 ****
+--- 12613,12620 ----
+ "ns-put-working-text");
+ initial_define_lispy_key (Vspecial_event_map, "ns-unput-working-text",
+ "ns-unput-working-text");
++ initial_define_lispy_key (Vspecial_event_map, "ns-put-marked-text",
++ "ns-put-marked-text");
+ /* Here we used to use `ignore-event' which would simple set prefix-arg to
+ current-prefix-arg, as is done in `handle-switch-frame'.
+ But `handle-switch-frame is not run from the special-map.
+diff -r -p -N -x '*.o' ../emacs-23.2.94-0/src/macim.m src/macim.m
+*** ../emacs-23.2.94-0/src/macim.m 1970-01-01 09:00:00.000000000 +0900
+--- src/macim.m 2011-02-28 10:27:05.000000000 +0900
+***************
+*** 0 ****
+--- 1,178 ----
++ /* Implementation of Input Method Extension for MacOS X.
++ Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
++ Taiichi Hashimoto <taiichi2 at mac.com>.
++ */
++
++ #include "config.h"
++
++ #ifdef NS_IMPL_COCOA
++
++ #include <math.h>
++ #include <sys/types.h>
++ #include <time.h>
++ #include <signal.h>
++ #include <unistd.h>
++
++ #include <Carbon/Carbon.h>
++
++ #include "lisp.h"
++ #include "blockinput.h"
++
++ enum output_method
++ {
++ output_initial,
++ output_termcap,
++ output_x_window,
++ output_msdos_raw,
++ output_w32,
++ output_mac,
++ output_ns
++ } output_method;
++
++ #include "termhooks.h"
++ #include "keyboard.h"
++ #include "buffer.h"
++
++ extern Lisp_Object Qcurrent_input_method;
++ extern int cursor_in_echo_area;
++ static Lisp_Object Qmac_keys_passed_to_system;
++ static Lisp_Object Vmac_use_input_method_on_system;
++
++ void mac_init_input_method ();
++ int mac_pass_key_to_system (int code, int modifiers);
++ int mac_pass_key_directly_to_emacs ();
++ int mac_store_change_input_method_event ();
++
++ DEFUN ("mac-input-source-is-ascii-capable", Fmac_input_source_is_ascii_capable,
++ Smac_input_source_is_ascii_capable, 0, 0, 0,
++ doc: /* Is current input source ascii capable? */)
++ ()
++ {
++ TISInputSourceRef is = TISCopyCurrentKeyboardInputSource();
++ CFBooleanRef ret = TISGetInputSourceProperty(is, kTISPropertyInputSourceIsASCIICapable);
++
++ return CFBooleanGetValue(ret)? Qt : Qnil;
++ }
++
++ DEFUN ("mac-get-input-source-list", Fmac_get_input_source_list,
++ Smac_get_input_source_list, 0, 0, 0,
++ doc: /* get input source list on MacOSX */)
++ ()
++ {
++ NSArray *is_list = (NSArray *)TISCreateInputSourceList(NULL, false);
++ int list_size = [is_list count];
++ Lisp_Object list[list_size];
++ int i;
++
++ for (i = 0; i < list_size; i++) {
++ TISInputSourceRef is = [is_list objectAtIndex:i];
++ NSString *id = (NSString *)TISGetInputSourceProperty(is, kTISPropertyInputSourceID);
++ list[i] = make_string([id UTF8String],
++ [id lengthOfBytesUsingEncoding:NSUTF8StringEncoding]);
++ }
++
++ return Flist(list_size, list);
++ }
++
++ DEFUN ("mac-get-current-input-source", Fmac_get_current_input_source,
++ Smac_get_current_input_source, 0, 0, 0,
++ doc: /* get current input source on MacOSX */)
++ ()
++ {
++ TISInputSourceRef is = TISCopyCurrentKeyboardInputSource();
++ NSString *id = (NSString *)TISGetInputSourceProperty(is, kTISPropertyInputSourceID);
++
++ return make_string([id UTF8String],
++ [id lengthOfBytesUsingEncoding:NSUTF8StringEncoding]);
++ }
++
++ DEFUN ("mac-toggle-input-source", Fmac_toggle_input_source,
++ Smac_toggle_input_source, 1, 1, 0,
++ doc: /* toggle input source on MacOSX */)
++ (arg)
++ Lisp_Object arg;
++ {
++ TISInputSourceRef is = NULL;
++
++ if (NILP (arg))
++ {
++ is = TISCopyCurrentASCIICapableKeyboardInputSource();
++ }
++ else
++ {
++ NSString *locale = [[NSLocale currentLocale] localeIdentifier];
++ is = TISCopyInputSourceForLanguage(locale);
++ }
++ if (is) TISSelectInputSource(is);
++
++ return arg;
++ }
++
++ int
++ mac_store_change_input_method_event ()
++ {
++ Lisp_Object dim;
++ int ret = FALSE;
++
++ dim = Fsymbol_value (intern ("default-input-method"));
++ if (STRINGP (dim) && strcmp(SDATA (dim), "MacOSX") == 0)
++ {
++ ret = TRUE;
++ }
++
++ return ret;
++ }
++
++ int
++ mac_pass_key_to_system (int code, int modifiers)
++ {
++ Lisp_Object keys = Fsymbol_value (Qmac_keys_passed_to_system);
++ Lisp_Object m, k;
++
++ while (!NILP (keys))
++ {
++ m = XCAR (XCAR (keys));
++ k = XCDR (XCAR (keys));
++ keys = XCDR (keys);
++
++ if (NUMBERP (m) && modifiers == XINT (m))
++ if (NILP (k)
++ || (NUMBERP (k) && code == XINT (k)))
++ return TRUE;
++ }
++
++ return FALSE;
++ }
++
++ int
++ mac_pass_key_directly_to_emacs ()
++ {
++
++ if (NILP (Fmac_input_source_is_ascii_capable()))
++ {
++ if (NILP (Vmac_use_input_method_on_system)
++ || this_command_key_count
++ || cursor_in_echo_area
++ || !NILP (current_buffer->read_only))
++ return TRUE;
++ }
++
++ return FALSE;
++ }
++
++
++ void mac_init_input_method ()
++ {
++ Qmac_keys_passed_to_system = intern ("mac-keys-passed-to-system");
++ staticpro (&Qmac_keys_passed_to_system);
++
++ DEFVAR_LISP ("mac-use-input-method-on-system", &Vmac_use_input_method_on_system,
++ doc: /* If it is non-nil, use input method on system. */);
++ Vmac_use_input_method_on_system = Qt;
++
++ defsubr (&Smac_input_source_is_ascii_capable);
++ defsubr (&Smac_get_input_source_list);
++ defsubr (&Smac_get_current_input_source);
++ defsubr (&Smac_toggle_input_source);
++ }
++ #endif
+diff -r -p -N -x '*.o' ../emacs-23.2.94-0/src/nsfns.m src/nsfns.m
+*** ../emacs-23.2.94-0/src/nsfns.m 2011-01-09 02:45:14.000000000 +0900
+--- src/nsfns.m 2011-02-15 22:24:06.000000000 +0900
+*************** Lisp_Object Fx_open_connection (Lisp_Obj
+*** 103,108 ****
+--- 103,113 ----
+
+ extern BOOL ns_in_resize;
+
++ /* key masks */
++ static Lisp_Object Vns_shift_key_mask;
++ static Lisp_Object Vns_control_key_mask;
++ static Lisp_Object Vns_alternate_key_mask;
++ static Lisp_Object Vns_command_key_mask;
+
+ /* ==========================================================================
+
+*************** be used as the image of the icon represe
+*** 2632,2637 ****
+--- 2637,2660 ----
+ doc: /* Toolkit version for NS Windowing. */);
+ Vns_version_string = ns_appkit_version_str ();
+
++
++ DEFVAR_LISP ("ns-shift-key-mask", &Vns_shift_key_mask,
++ doc: /* Shift key mask defined in system. */);
++ Vns_shift_key_mask = make_number (NSShiftKeyMask);
++
++ DEFVAR_LISP ("ns-control-key-mask", &Vns_control_key_mask,
++ doc: /* Control key mask defined in system. */);
++ Vns_control_key_mask = make_number (NSControlKeyMask);
++
++ DEFVAR_LISP ("ns-alternate-key-mask", &Vns_alternate_key_mask,
++ doc: /* Alternate key mask defined in system. */);
++ Vns_alternate_key_mask = make_number (NSAlternateKeyMask);
++
++ DEFVAR_LISP ("ns-command-key-mask", &Vns_command_key_mask,
++ doc: /* Command key mask defined in system. */);
++ Vns_command_key_mask = make_number (NSCommandKeyMask);
++
++
+ defsubr (&Sns_read_file_name);
+ defsubr (&Sns_get_resource);
+ defsubr (&Sns_set_resource);
+*************** be used as the image of the icon represe
+*** 2676,2681 ****
+--- 2699,2708 ----
+ defsubr (&Sx_show_tip);
+ defsubr (&Sx_hide_tip);
+
++ #ifdef NS_IMPL_COCOA
++ mac_init_input_method ();
++ #endif
++
+ /* used only in fontset.c */
+ check_window_system_func = check_ns;
+
+diff -r -p -N -x '*.o' ../emacs-23.2.94-0/src/nsterm.h src/nsterm.h
+*** ../emacs-23.2.94-0/src/nsterm.h 2011-01-09 02:45:14.000000000 +0900
+--- src/nsterm.h 2011-02-15 22:24:06.000000000 +0900
+*************** typedef unsigned int NSUInteger;
+*** 365,370 ****
+--- 365,372 ----
+ #define KEY_NS_NEW_FRAME ((1<<28)|(0<<16)|12)
+ #define KEY_NS_TOGGLE_TOOLBAR ((1<<28)|(0<<16)|13)
+ #define KEY_NS_SHOW_PREFS ((1<<28)|(0<<16)|14)
++ #define KEY_MAC_CHANGE_INPUT_METHOD ((1<<28)|(0<<16)|15)
++ #define KEY_NS_PUT_MARKED_TEXT ((1<<28)|(0<<16)|16)
+
+ /* could use list to store these, but rest of emacs has a big infrastructure
+ for managing a table of bitmap "records" */
+diff -r -p -N -x '*.o' ../emacs-23.2.94-0/src/nsterm.m src/nsterm.m
+*** ../emacs-23.2.94-0/src/nsterm.m 2011-02-09 08:46:22.000000000 +0900
+--- src/nsterm.m 2011-02-15 22:24:06.000000000 +0900
+*************** ns_term_init (Lisp_Object display_name)
+*** 3730,3735 ****
+--- 3730,3738 ----
+ /* [[NSNotificationCenter defaultCenter] addObserver: NSApp
+ selector: @selector (logNotification:)
+ name: nil object: nil]; */
++ [[NSDistributedNotificationCenter defaultCenter] addObserver: NSApp
++ selector: @selector (changeInputMethod:)
++ name: @"AppleSelectedInputSourcesChangedNotification" object: nil];
+
+ dpyinfo = (struct ns_display_info *)xmalloc (sizeof (struct ns_display_info));
+ bzero (dpyinfo, sizeof (struct ns_display_info));
+*************** ns_term_shutdown (int sig)
+*** 3935,3940 ****
+--- 3938,3955 ----
+ NSLog (@"notification: '%@'", [notification name]);
+ }
+
++ - (void)changeInputMethod: (NSNotification *)notification
++ {
++
++ struct frame *emacsframe = SELECTED_FRAME ();
++
++ if (mac_store_change_input_method_event())
++ {
++ emacs_event->kind = NS_NONKEY_EVENT;
++ emacs_event->code = KEY_MAC_CHANGE_INPUT_METHOD;
++ EV_TRAILER ((id)nil);
++ }
++ }
+
+ - (void)sendEvent: (NSEvent *)theEvent
+ /* --------------------------------------------------------------------------
+*************** ns_term_shutdown (int sig)
+*** 4488,4510 ****
+ code, fnKeysym, flags, emacs_event->modifiers);
+
+ /* if it was a function key or had modifiers, pass it directly to emacs */
+! if (fnKeysym || (emacs_event->modifiers
+! && [[theEvent charactersIgnoringModifiers] length] > 0))
+! /*[[theEvent characters] length] */
+! {
+! emacs_event->kind = NON_ASCII_KEYSTROKE_EVENT;
+! if (code < 0x20)
+! code |= (1<<28)|(3<<16);
+! else if (code == 0x7f)
+! code |= (1<<28)|(3<<16);
+! else if (!fnKeysym)
+! emacs_event->kind = code > 0xFF
+! ? MULTIBYTE_CHAR_KEYSTROKE_EVENT : ASCII_KEYSTROKE_EVENT;
+
+! emacs_event->code = code;
+! EV_TRAILER (theEvent);
+! return;
+! }
+ }
+
+ /* if we get here we should send the key for input manager processing */
+--- 4503,4540 ----
+ code, fnKeysym, flags, emacs_event->modifiers);
+
+ /* if it was a function key or had modifiers, pass it directly to emacs */
+! /* The function mac_pass_key_directly_to_emacs check special case
+! to pass it directly to emacs, such as passwd, read-only buffer, etc. */
+
+! if (mac_pass_key_directly_to_emacs ()
+! || fnKeysym
+! || (emacs_event->modifiers
+! && [[theEvent charactersIgnoringModifiers] length] > 0))
+! {
+! emacs_event->kind = NON_ASCII_KEYSTROKE_EVENT;
+! if (code < 0x20)
+! code |= (1<<28)|(3<<16);
+! else if (code == 0x7f)
+! code |= (1<<28)|(3<<16);
+! else if (!fnKeysym)
+! emacs_event->kind = code > 0xFF
+! ? MULTIBYTE_CHAR_KEYSTROKE_EVENT : ASCII_KEYSTROKE_EVENT;
+!
+! emacs_event->code = code;
+!
+! /* The function mac_pass_key_to_system decides whether it is
+! passed directly to emacs or not. */
+! if (emacs_event->kind == NON_ASCII_KEYSTROKE_EVENT
+! || !mac_pass_key_to_system (code, flags
+! & (NSShiftKeyMask
+! | NSControlKeyMask
+! | NSAlternateKeyMask
+! | NSCommandKeyMask)))
+! {
+! EV_TRAILER (theEvent);
+! return;
+! }
+! }
+ }
+
+ /* if we get here we should send the key for input manager processing */
+*************** ns_term_shutdown (int sig)
+*** 4594,4603 ****
+ NSLog (@"setMarkedText '%@' len =%d range %d from %d", str, [str length],
+ selRange.length, selRange.location);
+
+- if (workingText != nil)
+- [self deleteWorkingText];
+ if ([str length] == 0)
+! return;
+
+ if (!emacs_event)
+ return;
+--- 4624,4642 ----
+ NSLog (@"setMarkedText '%@' len =%d range %d from %d", str, [str length],
+ selRange.length, selRange.location);
+
+ if ([str length] == 0)
+! {
+! [self deleteWorkingText];
+! return;
+! }
+! else
+! {
+! if (workingText != nil) {
+! [workingText release];
+! workingText = nil;
+! processingCompose = NO;
+! }
+! }
+
+ if (!emacs_event)
+ return;
+*************** ns_term_shutdown (int sig)
+*** 4607,4613 ****
+ ns_working_text = build_string ([workingText UTF8String]);
+
+ emacs_event->kind = NS_TEXT_EVENT;
+! emacs_event->code = KEY_NS_PUT_WORKING_TEXT;
+ EV_TRAILER ((id)nil);
+ }
+
+--- 4646,4654 ----
+ ns_working_text = build_string ([workingText UTF8String]);
+
+ emacs_event->kind = NS_TEXT_EVENT;
+! emacs_event->code = KEY_NS_PUT_MARKED_TEXT;
+! emacs_event->arg = Fcons (make_number (selRange.location),
+! Fcons (make_number (selRange.length), Qnil));
+ EV_TRAILER ((id)nil);
+ }
+
+*************** ns_term_shutdown (int sig)
+*** 4662,4676 ****
+ {
+ NSRect rect;
+ NSPoint pt;
+! struct window *win = XWINDOW (FRAME_SELECTED_WINDOW (emacsframe));
+ if (NS_KEYLOG)
+ NSLog (@"firstRectForCharRange request");
+
+ rect.size.width = theRange.length * FRAME_COLUMN_WIDTH (emacsframe);
+ rect.size.height = FRAME_LINE_HEIGHT (emacsframe);
+ pt.x = WINDOW_TEXT_TO_FRAME_PIXEL_X (win, win->phys_cursor.x);
+ pt.y = WINDOW_TO_FRAME_PIXEL_Y (win, win->phys_cursor.y
+! +FRAME_LINE_HEIGHT (emacsframe));
+
+ pt = [self convertPoint: pt toView: nil];
+ pt = [[self window] convertBaseToScreen: pt];
+--- 4703,4725 ----
+ {
+ NSRect rect;
+ NSPoint pt;
+! // struct window *win = XWINDOW (FRAME_SELECTED_WINDOW (emacsframe));
+! struct window *win;
+ if (NS_KEYLOG)
+ NSLog (@"firstRectForCharRange request");
++
++ if (NILP (Feval (Fcons (intern ("ns-in-echo-area"), Qnil))))
++ win = XWINDOW (FRAME_SELECTED_WINDOW (emacsframe));
++ else if (WINDOWP (echo_area_window))
++ win = XWINDOW (echo_area_window);
++ else
++ win = XWINDOW (FRAME_SELECTED_WINDOW (emacsframe));
+
+ rect.size.width = theRange.length * FRAME_COLUMN_WIDTH (emacsframe);
+ rect.size.height = FRAME_LINE_HEIGHT (emacsframe);
+ pt.x = WINDOW_TEXT_TO_FRAME_PIXEL_X (win, win->phys_cursor.x);
+ pt.y = WINDOW_TO_FRAME_PIXEL_Y (win, win->phys_cursor.y
+! +FRAME_LINE_HEIGHT (emacsframe)+2);
+
+ pt = [self convertPoint: pt toView: nil];
+ pt = [[self window] convertBaseToScreen: pt];
+diff -r -p -N -x '*.o' ../emacs-23.2.94-0/src/s/darwin.h src/s/darwin.h
+*** ../emacs-23.2.94-0/src/s/darwin.h 2011-01-09 02:45:14.000000000 +0900
+--- src/s/darwin.h 2011-02-15 22:24:06.000000000 +0900
+*************** along with GNU Emacs. If not, see <http
+*** 163,169 ****
+ /* Definitions for how to compile & link. */
+
+ #ifdef HAVE_NS
+! #define LIBS_NSGUI -framework AppKit
+ #define SYSTEM_PURESIZE_EXTRA 200000
+ #define HEADERPAD_EXTRA 6C8
+ #else /* !HAVE_NS */
+--- 163,169 ----
+ /* Definitions for how to compile & link. */
+
+ #ifdef HAVE_NS
+! #define LIBS_NSGUI -framework AppKit -framework Carbon
+ #define SYSTEM_PURESIZE_EXTRA 200000
+ #define HEADERPAD_EXTRA 6C8
+ #else /* !HAVE_NS */
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20110910/37b61957/attachment-0001.html>
More information about the macports-changes
mailing list