r1232 - in /trunk/packages/vim: debian/ patches/ upstream/patches/

jamessan at users.alioth.debian.org jamessan at users.alioth.debian.org
Wed Mar 12 19:36:03 UTC 2008


Author: jamessan
Date: Wed Mar 12 19:36:03 2008
New Revision: 1232

URL: http://svn.debian.org/wsvn/pkg-vim/?sc=1&rev=1232
Log:
Add upstream patch 271 - 277.  277 replaces option.c-p_para.diff

Added:
    trunk/packages/vim/upstream/patches/7.1.271
    trunk/packages/vim/upstream/patches/7.1.272
    trunk/packages/vim/upstream/patches/7.1.273
    trunk/packages/vim/upstream/patches/7.1.274
    trunk/packages/vim/upstream/patches/7.1.275
    trunk/packages/vim/upstream/patches/7.1.276
    trunk/packages/vim/upstream/patches/7.1.277
Removed:
    trunk/packages/vim/patches/option.c-p_para.diff
Modified:
    trunk/packages/vim/debian/README
    trunk/packages/vim/debian/changelog
    trunk/packages/vim/patches/series

Modified: trunk/packages/vim/debian/README
URL: http://svn.debian.org/wsvn/pkg-vim/trunk/packages/vim/debian/README?rev=1232&op=diff
==============================================================================
--- trunk/packages/vim/debian/README (original)
+++ trunk/packages/vim/debian/README Wed Mar 12 19:36:03 2008
@@ -302,3 +302,10 @@
   1576  7.1.268  always shows "+" at end of screen line with 'cursurline'
   6183  7.1.269  matchparen plugin has an arbitrary line number limit
   2861  7.1.270  ":?foo?" matches in current line since patch 7.1.025
+  1582  7.1.271  in tiny version ":!touch %" causes curbuf to be wrong
+  2334  7.1.272  buffer name [Location List] not used for buffer in other tab
+  2504  7.1.273  when profiling on Linux Vim exits early
+  1549  7.1.274  (after 7.1.272) compiler warning with optimized build
+ 40835  7.1.275  (extra) Mac: ATSUI and 'antialias' don't work together
+  4946  7.1.276  "gw" uses 'formatexpr', even though the docs say it doesn't
+  2802  7.1.277  default for 'paragraphs' misses some items

Modified: trunk/packages/vim/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-vim/trunk/packages/vim/debian/changelog?rev=1232&op=diff
==============================================================================
--- trunk/packages/vim/debian/changelog (original)
+++ trunk/packages/vim/debian/changelog Wed Mar 12 19:36:03 2008
@@ -1,10 +1,8 @@
-vim (1:7.1-270+1) UNRELEASED; urgency=low
-
-  * New upstream patches (267 - 270), see README.gz for details.
-  * Added patches:
-    - option.c-p_para.diff:
-      + Recognize a few extra groff macros (TP, HP, Pp, Lp, and It) in the
-        default 'paragraphs' option.  (Closes: #468924)
+vim (1:7.1-277+1) UNRELEASED; urgency=low
+
+  * New upstream patches (267 - 277), see README.gz for details.
+    - 7.1.277 adds recognition of a few extra groff macros (TP, HP, Pp, Lp,
+      and It) in the default 'paragraphs' option.  (Closes: #468924)
   * Updated patches:
     - sh.vim_syntax.diff:
       + No longer mishighlight parenthetical expressions inside arithmetic

Modified: trunk/packages/vim/patches/series
URL: http://svn.debian.org/wsvn/pkg-vim/trunk/packages/vim/patches/series?rev=1232&op=diff
==============================================================================
--- trunk/packages/vim/patches/series (original)
+++ trunk/packages/vim/patches/series Wed Mar 12 19:36:03 2008
@@ -36,4 +36,3 @@
 make.vim-syntax.diff -p0
 vim-git.diff -p2
 last-position-jump.diff -p0
-option.c-p_para.diff -p0

Added: trunk/packages/vim/upstream/patches/7.1.271
URL: http://svn.debian.org/wsvn/pkg-vim/trunk/packages/vim/upstream/patches/7.1.271?rev=1232&op=file
==============================================================================
--- trunk/packages/vim/upstream/patches/7.1.271 (added)
+++ trunk/packages/vim/upstream/patches/7.1.271 Wed Mar 12 19:36:03 2008
@@ -1,0 +1,53 @@
+To: vim-dev at vim.org
+Subject: Patch 7.1.271
+Fcc: outbox
+From: Bram Moolenaar <Bram at moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.1.271
+Problem:    In a Vim build without autocommands, checking a file that was
+	    changed externally causes the current buffer to be changed
+	    unexpectedly.  (Karsten Hopp)
+Solution:   Store "curbuf" instead of "buf".
+Files:	    src/fileio.c
+
+
+*** ../vim-7.1.270/src/fileio.c	Wed Feb 20 18:14:25 2008
+--- src/fileio.c	Tue Mar 11 21:35:05 2008
+***************
+*** 9239,9245 ****
+      aco_save_T	*aco;		/* structure to save values in */
+      buf_T	*buf;		/* new curbuf */
+  {
+!     aco->save_buf = buf;
+      curbuf = buf;
+      curwin->w_buffer = buf;
+  }
+--- 9248,9254 ----
+      aco_save_T	*aco;		/* structure to save values in */
+      buf_T	*buf;		/* new curbuf */
+  {
+!     aco->save_buf = curbuf;
+      curbuf = buf;
+      curwin->w_buffer = buf;
+  }
+*** ../vim-7.1.270/src/version.c	Mon Mar 10 21:33:52 2008
+--- src/version.c	Tue Mar 11 21:57:30 2008
+***************
+*** 668,669 ****
+--- 668,671 ----
+  {   /* Add new patch number below this line */
++ /**/
++     271,
+  /**/
+
+-- 
+In a world without walls and borders, who needs windows and gates?
+
+ /// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

Added: trunk/packages/vim/upstream/patches/7.1.272
URL: http://svn.debian.org/wsvn/pkg-vim/trunk/packages/vim/upstream/patches/7.1.272?rev=1232&op=file
==============================================================================
--- trunk/packages/vim/upstream/patches/7.1.272 (added)
+++ trunk/packages/vim/upstream/patches/7.1.272 Wed Mar 12 19:36:03 2008
@@ -1,0 +1,84 @@
+To: vim-dev at vim.org
+Subject: Patch 7.1.272
+Fcc: outbox
+From: Bram Moolenaar <Bram at moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.1.272
+Problem:    The special buffer name [Location List] is not used for a buffer
+	    displayed in another tab page.
+Solution:   Use FOR_ALL_TAB_WINDOWS instead of FOR_ALL_WINDOWS. (Hiroaki
+	    Nishihara)
+Files:	    src/buffer.c
+
+
+*** ../vim-7.1.271/src/buffer.c	Wed Oct  3 14:30:54 2007
+--- src/buffer.c	Wed Mar  5 21:55:44 2008
+***************
+*** 4912,4918 ****
+      return retval;
+  }
+  
+! #ifdef FEAT_VIMINFO
+      int
+  read_viminfo_bufferlist(virp, writing)
+      vir_T	*virp;
+--- 4912,4918 ----
+      return retval;
+  }
+  
+! #if defined(FEAT_VIMINFO) || defined(PROTO)
+      int
+  read_viminfo_bufferlist(virp, writing)
+      vir_T	*virp;
+***************
+*** 5033,5045 ****
+  #if defined(FEAT_QUICKFIX) && defined(FEAT_WINDOWS)
+      if (bt_quickfix(buf))
+      {
+! 	win_T	*win;
+  
+  	/*
+  	 * For location list window, w_llist_ref points to the location list.
+  	 * For quickfix window, w_llist_ref is NULL.
+  	 */
+! 	FOR_ALL_WINDOWS(win)
+  	    if (win->w_buffer == buf)
+  		break;
+  	if (win != NULL && win->w_llist_ref != NULL)
+--- 5033,5046 ----
+  #if defined(FEAT_QUICKFIX) && defined(FEAT_WINDOWS)
+      if (bt_quickfix(buf))
+      {
+! 	win_T	    *win;
+! 	tabpage_T   *tp;
+  
+  	/*
+  	 * For location list window, w_llist_ref points to the location list.
+  	 * For quickfix window, w_llist_ref is NULL.
+  	 */
+! 	FOR_ALL_TAB_WINDOWS(tp, win)
+  	    if (win->w_buffer == buf)
+  		break;
+  	if (win != NULL && win->w_llist_ref != NULL)
+*** ../vim-7.1.271/src/version.c	Tue Mar 11 22:01:16 2008
+--- src/version.c	Wed Mar 12 12:21:13 2008
+***************
+*** 668,669 ****
+--- 668,671 ----
+  {   /* Add new patch number below this line */
++ /**/
++     272,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+113. You are asked about a bus schedule, you wonder if it is 16 or 32 bits.
+
+ /// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

Added: trunk/packages/vim/upstream/patches/7.1.273
URL: http://svn.debian.org/wsvn/pkg-vim/trunk/packages/vim/upstream/patches/7.1.273?rev=1232&op=file
==============================================================================
--- trunk/packages/vim/upstream/patches/7.1.273 (added)
+++ trunk/packages/vim/upstream/patches/7.1.273 Wed Mar 12 19:36:03 2008
@@ -1,0 +1,74 @@
+To: vim-dev at vim.org
+Subject: Patch 7.1.273
+Fcc: outbox
+From: Bram Moolenaar <Bram at moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.1.273
+Problem:    When profiling on Linux Vim exits early. (Liu Yubao)
+Solution:   When profiling don't exit on SIGPROF.
+Files:	    src/Makefile, src/os_unix.c
+
+
+*** ../vim-7.1.272/src/Makefile	Wed Mar 12 12:23:18 2008
+--- src/Makefile	Wed Mar 12 13:11:07 2008
+***************
+*** 545,551 ****
+  # For unknown reasons adding "-lc" fixes a linking problem with GCC.  That's
+  # probably a bug in the "-pg" implementation.
+  # Need to recompile everything after changing this: "make clean" "make".
+! #PROFILE_CFLAGS = -pg -g
+  #PROFILE_LIBS = -pg
+  #PROFILE_LIBS = -pg -lc
+  
+--- 545,551 ----
+  # For unknown reasons adding "-lc" fixes a linking problem with GCC.  That's
+  # probably a bug in the "-pg" implementation.
+  # Need to recompile everything after changing this: "make clean" "make".
+! #PROFILE_CFLAGS = -pg -g -DWE_ARE_PROFILING
+  #PROFILE_LIBS = -pg
+  #PROFILE_LIBS = -pg -lc
+  
+*** ../vim-7.1.272/src/os_unix.c	Sun Feb 10 22:25:12 2008
+--- src/os_unix.c	Wed Mar  5 22:15:41 2008
+***************
+*** 269,276 ****
+  #ifdef SIGVTALRM
+      {SIGVTALRM,	    "VTALRM",	TRUE},
+  #endif
+! #if defined(SIGPROF) && !defined(FEAT_MZSCHEME)
+!     /* MzScheme uses SIGPROF for its own needs */
+      {SIGPROF,	    "PROF",	TRUE},
+  #endif
+  #ifdef SIGXCPU
+--- 269,277 ----
+  #ifdef SIGVTALRM
+      {SIGVTALRM,	    "VTALRM",	TRUE},
+  #endif
+! #if defined(SIGPROF) && !defined(FEAT_MZSCHEME) && !defined(WE_ARE_PROFILING)
+!     /* MzScheme uses SIGPROF for its own needs; On Linux with profiling
+!      * this makes Vim exit.  WE_ARE_PROFILING is defined in Makefile.  */
+      {SIGPROF,	    "PROF",	TRUE},
+  #endif
+  #ifdef SIGXCPU
+*** ../vim-7.1.272/src/version.c	Wed Mar 12 12:22:56 2008
+--- src/version.c	Wed Mar 12 13:08:59 2008
+***************
+*** 668,669 ****
+--- 668,671 ----
+  {   /* Add new patch number below this line */
++ /**/
++     273,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+114. You are counting items, you go "0,1,2,3,4,5,6,7,8,9,A,B,C,D...".
+
+ /// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

Added: trunk/packages/vim/upstream/patches/7.1.274
URL: http://svn.debian.org/wsvn/pkg-vim/trunk/packages/vim/upstream/patches/7.1.274?rev=1232&op=file
==============================================================================
--- trunk/packages/vim/upstream/patches/7.1.274 (added)
+++ trunk/packages/vim/upstream/patches/7.1.274 Wed Mar 12 19:36:03 2008
@@ -1,0 +1,54 @@
+To: vim-dev at vim.org
+Subject: Patch 7.1.274
+Fcc: outbox
+From: Bram Moolenaar <Bram at moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.1.274 (after 7.1.272)
+Problem:    Compiler warning for optimized build.
+Solution:   Init win to NULL.
+Files:	    src/buffer.c
+
+
+*** ../vim-7.1.273/src/buffer.c	Wed Mar 12 12:22:56 2008
+--- src/buffer.c	Wed Mar 12 13:15:21 2008
+***************
+*** 5033,5039 ****
+  #if defined(FEAT_QUICKFIX) && defined(FEAT_WINDOWS)
+      if (bt_quickfix(buf))
+      {
+! 	win_T	    *win;
+  	tabpage_T   *tp;
+  
+  	/*
+--- 5033,5039 ----
+  #if defined(FEAT_QUICKFIX) && defined(FEAT_WINDOWS)
+      if (bt_quickfix(buf))
+      {
+! 	win_T	    *win = NULL;
+  	tabpage_T   *tp;
+  
+  	/*
+*** ../vim-7.1.273/src/version.c	Wed Mar 12 13:16:37 2008
+--- src/version.c	Wed Mar 12 13:45:25 2008
+***************
+*** 668,669 ****
+--- 668,671 ----
+  {   /* Add new patch number below this line */
++ /**/
++     274,
+  /**/
+
+-- 
+FIXME and XXX are two common keywords used to mark broken or incomplete code
+not only since XXX as a sex reference would grab everbodys attention but
+simply due to the fact that Vim would highlight these words.
+					-- Hendrik Scholz
+
+ /// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

Added: trunk/packages/vim/upstream/patches/7.1.275
URL: http://svn.debian.org/wsvn/pkg-vim/trunk/packages/vim/upstream/patches/7.1.275?rev=1232&op=file
==============================================================================
--- trunk/packages/vim/upstream/patches/7.1.275 (added)
+++ trunk/packages/vim/upstream/patches/7.1.275 Wed Mar 12 19:36:03 2008
@@ -1,0 +1,1541 @@
+To: vim-dev at vim.org
+Subject: Patch 7.1.275
+Fcc: outbox
+From: Bram Moolenaar <Bram at moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.1.275 (extra)
+Problem:    Mac: ATSUI and 'antialias' don't work properly together.
+Solution:   Fix this and the input method. (Jjgod Jiang)
+Files:	    src/vim.h, src/gui_mac.c
+
+
+*** ../vim-7.1.274/src/vim.h	Wed Feb 20 12:22:59 2008
+--- src/vim.h	Wed Mar 12 13:18:58 2008
+***************
+*** 461,468 ****
+  /*
+   * Check input method control.
+   */
+! #if defined(FEAT_XIM) || \
+!     (defined(FEAT_GUI) && (defined(FEAT_MBYTE_IME) || defined(GLOBAL_IME)))
+  # define USE_IM_CONTROL
+  #endif
+  
+--- 461,469 ----
+  /*
+   * Check input method control.
+   */
+! #if defined(FEAT_XIM) \
+!     || (defined(FEAT_GUI) && (defined(FEAT_MBYTE_IME) || defined(GLOBAL_IME))) \
+!     || defined(FEAT_GUI_MAC)
+  # define USE_IM_CONTROL
+  #endif
+  
+*** ../vim-7.1.274/src/gui_mac.c	Sat Sep 29 13:15:29 2007
+--- src/gui_mac.c	Wed Mar 12 13:40:57 2008
+***************
+*** 59,65 ****
+--- 59,91 ----
+  
+  #ifdef MACOS_CONVERT
+  # define USE_CARBONKEYHANDLER
++ 
++ static int im_is_active = FALSE;
++ #if 0
++ static int im_start_row = 0;
++ static int im_start_col = 0;
++ #endif
++ 
++ #define NR_ELEMS(x)	(sizeof(x) / sizeof(x[0]))
++ 
++ static TSMDocumentID gTSMDocument;
++ 
++ static void im_on_window_switch(int active);
+  static EventHandlerUPP keyEventHandlerUPP = NULL;
++ static EventHandlerUPP winEventHandlerUPP = NULL;
++ 
++ static pascal OSStatus gui_mac_handle_window_activate(
++ 	EventHandlerCallRef nextHandler, EventRef theEvent, void *data);
++ 
++ static pascal OSStatus gui_mac_handle_text_input(
++ 	EventHandlerCallRef nextHandler, EventRef theEvent, void *data);
++ 
++ static pascal OSStatus gui_mac_update_input_area(
++ 	EventHandlerCallRef nextHandler, EventRef theEvent);
++ 
++ static pascal OSStatus gui_mac_unicode_key_event(
++ 	EventHandlerCallRef nextHandler, EventRef theEvent);
++ 
+  #endif
+  
+  
+***************
+*** 137,143 ****
+--- 166,176 ----
+  
+  #ifdef MACOS_CONVERT
+  # define USE_ATSUI_DRAWING
++ int	    p_macatsui_last;
+  ATSUStyle   gFontStyle;
++ # ifdef FEAT_MBYTE
++ ATSUStyle   gWideFontStyle;
++ # endif
+  Boolean	    gIsFontFallbackSet;
+  #endif
+  
+***************
+*** 265,270 ****
+--- 298,308 ----
+  static WindowRef drawer = NULL; // TODO: put into gui.h
+  #endif
+  
++ #ifdef USE_ATSUI_DRAWING
++ static void gui_mac_set_font_attributes(GuiFont font);
++ static void gui_mac_dispose_atsui_style(void);
++ #endif
++ 
+  /*
+   * ------------------------------------------------------------
+   * Conversion Utility
+***************
+*** 1935,1946 ****
+      /* Dim scrollbars */
+      if (whichWindow == gui.VimWindow)
+      {
+!         ControlRef rootControl;
+!         GetRootControl(gui.VimWindow, &rootControl);
+!         if ((event->modifiers) & activeFlag)
+!             ActivateControl(rootControl);
+!         else
+!             DeactivateControl(rootControl);
+      }
+  
+      /* Activate */
+--- 1973,1984 ----
+      /* Dim scrollbars */
+      if (whichWindow == gui.VimWindow)
+      {
+! 	ControlRef rootControl;
+! 	GetRootControl(gui.VimWindow, &rootControl);
+! 	if ((event->modifiers) & activeFlag)
+! 	    ActivateControl(rootControl);
+! 	else
+! 	    DeactivateControl(rootControl);
+      }
+  
+      /* Activate */
+***************
+*** 1976,1990 ****
+   * Handle the key
+   */
+  #ifdef USE_CARBONKEYHANDLER
+  
+! static int dialog_busy = FALSE;	    /* TRUE when gui_mch_dialog() wants the keys */
+  
+  # define INLINE_KEY_BUFFER_SIZE 80
+      static pascal OSStatus
+! gui_mac_doKeyEventCarbon(
+  	EventHandlerCallRef nextHandler,
+! 	EventRef theEvent,
+! 	void *data)
+  {
+      /* Multibyte-friendly key event handler */
+      OSStatus	err = -1;
+--- 2014,2100 ----
+   * Handle the key
+   */
+  #ifdef USE_CARBONKEYHANDLER
++     static pascal OSStatus
++ gui_mac_handle_window_activate(
++ 	EventHandlerCallRef nextHandler,
++ 	EventRef	    theEvent,
++ 	void		    *data)
++ {
++     UInt32 eventClass = GetEventClass(theEvent);
++     UInt32 eventKind  = GetEventKind(theEvent);
++ 
++     if (eventClass == kEventClassWindow)
++     {
++ 	switch (eventKind)
++ 	{
++ 	    case kEventWindowActivated:
++ #if defined(USE_IM_CONTROL)
++ 		im_on_window_switch(TRUE);
++ #endif
++ 		return noErr;
++ 
++ 	    case kEventWindowDeactivated:
++ #if defined(USE_IM_CONTROL)
++ 		im_on_window_switch(FALSE);
++ #endif
++ 		return noErr;
++ 	}
++     }
++ 
++     return eventNotHandledErr;
++ }
++ 
++     static pascal OSStatus
++ gui_mac_handle_text_input(
++ 	EventHandlerCallRef nextHandler,
++ 	EventRef	    theEvent,
++ 	void		    *data)
++ {
++     UInt32 eventClass = GetEventClass(theEvent);
++     UInt32 eventKind  = GetEventKind(theEvent);
++ 
++     if (eventClass != kEventClassTextInput)
++ 	return eventNotHandledErr;
+  
+!     if ((kEventTextInputUpdateActiveInputArea != eventKind) &&
+! 	(kEventTextInputUnicodeForKeyEvent    != eventKind) &&
+! 	(kEventTextInputOffsetToPos	      != eventKind) &&
+! 	(kEventTextInputPosToOffset	      != eventKind) &&
+! 	(kEventTextInputGetSelectedText       != eventKind))
+! 	      return eventNotHandledErr;
+! 
+!     switch (eventKind)
+!     {
+!     case kEventTextInputUpdateActiveInputArea:
+! 	return gui_mac_update_input_area(nextHandler, theEvent);
+!     case kEventTextInputUnicodeForKeyEvent:
+! 	return gui_mac_unicode_key_event(nextHandler, theEvent);
+! 
+!     case kEventTextInputOffsetToPos:
+!     case kEventTextInputPosToOffset:
+!     case kEventTextInputGetSelectedText:
+! 	break;
+!     }
+! 
+!     return eventNotHandledErr;
+! }
+! 
+!     static pascal
+! OSStatus gui_mac_update_input_area(
+! 	EventHandlerCallRef nextHandler,
+! 	EventRef	    theEvent)
+! {
+!     return eventNotHandledErr;
+! }
+! 
+! static int dialog_busy = FALSE;	    /* TRUE when gui_mch_dialog() wants the
+! 				       keys */
+  
+  # define INLINE_KEY_BUFFER_SIZE 80
+      static pascal OSStatus
+! gui_mac_unicode_key_event(
+  	EventHandlerCallRef nextHandler,
+! 	EventRef	    theEvent)
+  {
+      /* Multibyte-friendly key event handler */
+      OSStatus	err = -1;
+***************
+*** 2000,2006 ****
+      char_u	*to = NULL;
+      Boolean	isSpecial = FALSE;
+      int		i;
+!     EventRef keyEvent;
+  
+      /* Mask the mouse (as per user setting) */
+      if (p_mh)
+--- 2110,2116 ----
+      char_u	*to = NULL;
+      Boolean	isSpecial = FALSE;
+      int		i;
+!     EventRef	keyEvent;
+  
+      /* Mask the mouse (as per user setting) */
+      if (p_mh)
+***************
+*** 2008,2046 ****
+  
+      /* Don't use the keys when the dialog wants them. */
+      if (dialog_busy)
+!         return eventNotHandledErr;
+  
+      if (noErr != GetEventParameter(theEvent, kEventParamTextInputSendText,
+!                 typeUnicodeText, NULL, 0, &actualSize, NULL))
+!         return eventNotHandledErr;
+  
+      text = (UniChar *)alloc(actualSize);
+      if (!text)
+!         return eventNotHandledErr;
+  
+      err = GetEventParameter(theEvent, kEventParamTextInputSendText,
+!             typeUnicodeText, NULL, actualSize, NULL, text);
+      require_noerr(err, done);
+  
+      err = GetEventParameter(theEvent, kEventParamTextInputSendKeyboardEvent,
+!             typeEventRef, NULL, sizeof(EventRef), NULL, &keyEvent);
+      require_noerr(err, done);
+  
+      err = GetEventParameter(keyEvent, kEventParamKeyModifiers,
+!             typeUInt32, NULL, sizeof(UInt32), NULL, &modifiers);
+      require_noerr(err, done);
+  
+      err = GetEventParameter(keyEvent, kEventParamKeyCode,
+!             typeUInt32, NULL, sizeof(UInt32), NULL, &key_sym);
+      require_noerr(err, done);
+  
+      err = GetEventParameter(keyEvent, kEventParamKeyMacCharCodes,
+!             typeChar, NULL, sizeof(char), NULL, &charcode);
+      require_noerr(err, done);
+  
+  #ifndef USE_CMD_KEY
+      if (modifiers & cmdKey)
+!         goto done;  /* Let system handle Cmd+... */
+  #endif
+  
+      key_char = charcode;
+--- 2118,2156 ----
+  
+      /* Don't use the keys when the dialog wants them. */
+      if (dialog_busy)
+! 	return eventNotHandledErr;
+  
+      if (noErr != GetEventParameter(theEvent, kEventParamTextInputSendText,
+! 		typeUnicodeText, NULL, 0, &actualSize, NULL))
+! 	return eventNotHandledErr;
+  
+      text = (UniChar *)alloc(actualSize);
+      if (!text)
+! 	return eventNotHandledErr;
+  
+      err = GetEventParameter(theEvent, kEventParamTextInputSendText,
+! 	    typeUnicodeText, NULL, actualSize, NULL, text);
+      require_noerr(err, done);
+  
+      err = GetEventParameter(theEvent, kEventParamTextInputSendKeyboardEvent,
+! 	    typeEventRef, NULL, sizeof(EventRef), NULL, &keyEvent);
+      require_noerr(err, done);
+  
+      err = GetEventParameter(keyEvent, kEventParamKeyModifiers,
+! 	    typeUInt32, NULL, sizeof(UInt32), NULL, &modifiers);
+      require_noerr(err, done);
+  
+      err = GetEventParameter(keyEvent, kEventParamKeyCode,
+! 	    typeUInt32, NULL, sizeof(UInt32), NULL, &key_sym);
+      require_noerr(err, done);
+  
+      err = GetEventParameter(keyEvent, kEventParamKeyMacCharCodes,
+! 	    typeChar, NULL, sizeof(char), NULL, &charcode);
+      require_noerr(err, done);
+  
+  #ifndef USE_CMD_KEY
+      if (modifiers & cmdKey)
+! 	goto done;  /* Let system handle Cmd+... */
+  #endif
+  
+      key_char = charcode;
+***************
+*** 2048,2131 ****
+  
+      /* Find the special key (eg., for cursor keys) */
+      if (actualSize <= sizeof(UniChar) &&
+!             ((text[0] < 0x20) || (text[0] == 0x7f)))
+      {
+!         for (i = 0; special_keys[i].key_sym != (KeySym)0; ++i)
+!             if (special_keys[i].key_sym == key_sym)
+!             {
+!                 key_char = TO_SPECIAL(special_keys[i].vim_code0,
+!                         special_keys[i].vim_code1);
+!                 key_char = simplify_key(key_char,
+!                         (int *)&vimModifiers);
+!                 isSpecial = TRUE;
+!                 break;
+!             }
+      }
+  
+      /* Intercept CMD-. and CTRL-c */
+      if (((modifiers & controlKey) && key_char == 'c') ||
+!             ((modifiers & cmdKey) && key_char == '.'))
+!         got_int = TRUE;
+  
+      if (!isSpecial)
+      {
+!         /* remove SHIFT for keys that are already shifted, e.g.,
+!          * '(' and '*' */
+!         if (key_char < 0x100 && !isalpha(key_char) && isprint(key_char))
+!             vimModifiers &= ~MOD_MASK_SHIFT;
+! 
+!         /* remove CTRL from keys that already have it */
+!         if (key_char < 0x20)
+!             vimModifiers &= ~MOD_MASK_CTRL;
+! 
+!         /* don't process unicode characters here */
+!         if (!IS_SPECIAL(key_char))
+!         {
+!             /* Following code to simplify and consolidate vimModifiers
+!              * taken liberally from gui_w48.c */
+!             key_char = simplify_key(key_char, (int *)&vimModifiers);
+! 
+!             /* Interpret META, include SHIFT, etc. */
+!             key_char = extract_modifiers(key_char, (int *)&vimModifiers);
+!             if (key_char == CSI)
+!                 key_char = K_CSI;
+! 
+!             if (IS_SPECIAL(key_char))
+!                 isSpecial = TRUE;
+!         }
+      }
+  
+      if (vimModifiers)
+      {
+!         result[len++] = CSI;
+!         result[len++] = KS_MODIFIER;
+!         result[len++] = vimModifiers;
+      }
+  
+      if (isSpecial && IS_SPECIAL(key_char))
+      {
+!         result[len++] = CSI;
+!         result[len++] = K_SECOND(key_char);
+!         result[len++] = K_THIRD(key_char);
+      }
+      else
+      {
+!         encLen = actualSize;
+!         to = mac_utf16_to_enc(text, actualSize, &encLen);
+!         if (to)
+!         {
+!             /* This is basically add_to_input_buf_csi() */
+!             for (i = 0; i < encLen && len < (INLINE_KEY_BUFFER_SIZE-1); ++i)
+!             {
+!                 result[len++] = to[i];
+!                 if (to[i] == CSI)
+!                 {
+!                     result[len++] = KS_EXTRA;
+!                     result[len++] = (int)KE_CSI;
+!                 }
+!             }
+!             vim_free(to);
+!         }
+      }
+  
+      add_to_input_buf(result, len);
+--- 2158,2241 ----
+  
+      /* Find the special key (eg., for cursor keys) */
+      if (actualSize <= sizeof(UniChar) &&
+! 	    ((text[0] < 0x20) || (text[0] == 0x7f)))
+      {
+! 	for (i = 0; special_keys[i].key_sym != (KeySym)0; ++i)
+! 	    if (special_keys[i].key_sym == key_sym)
+! 	    {
+! 		key_char = TO_SPECIAL(special_keys[i].vim_code0,
+! 			special_keys[i].vim_code1);
+! 		key_char = simplify_key(key_char,
+! 			(int *)&vimModifiers);
+! 		isSpecial = TRUE;
+! 		break;
+! 	    }
+      }
+  
+      /* Intercept CMD-. and CTRL-c */
+      if (((modifiers & controlKey) && key_char == 'c') ||
+! 	    ((modifiers & cmdKey) && key_char == '.'))
+! 	got_int = TRUE;
+  
+      if (!isSpecial)
+      {
+! 	/* remove SHIFT for keys that are already shifted, e.g.,
+! 	 * '(' and '*' */
+! 	if (key_char < 0x100 && !isalpha(key_char) && isprint(key_char))
+! 	    vimModifiers &= ~MOD_MASK_SHIFT;
+! 
+! 	/* remove CTRL from keys that already have it */
+! 	if (key_char < 0x20)
+! 	    vimModifiers &= ~MOD_MASK_CTRL;
+! 
+! 	/* don't process unicode characters here */
+! 	if (!IS_SPECIAL(key_char))
+! 	{
+! 	    /* Following code to simplify and consolidate vimModifiers
+! 	     * taken liberally from gui_w48.c */
+! 	    key_char = simplify_key(key_char, (int *)&vimModifiers);
+! 
+! 	    /* Interpret META, include SHIFT, etc. */
+! 	    key_char = extract_modifiers(key_char, (int *)&vimModifiers);
+! 	    if (key_char == CSI)
+! 		key_char = K_CSI;
+! 
+! 	    if (IS_SPECIAL(key_char))
+! 		isSpecial = TRUE;
+! 	}
+      }
+  
+      if (vimModifiers)
+      {
+! 	result[len++] = CSI;
+! 	result[len++] = KS_MODIFIER;
+! 	result[len++] = vimModifiers;
+      }
+  
+      if (isSpecial && IS_SPECIAL(key_char))
+      {
+! 	result[len++] = CSI;
+! 	result[len++] = K_SECOND(key_char);
+! 	result[len++] = K_THIRD(key_char);
+      }
+      else
+      {
+! 	encLen = actualSize;
+! 	to = mac_utf16_to_enc(text, actualSize, &encLen);
+! 	if (to)
+! 	{
+! 	    /* This is basically add_to_input_buf_csi() */
+! 	    for (i = 0; i < encLen && len < (INLINE_KEY_BUFFER_SIZE-1); ++i)
+! 	    {
+! 		result[len++] = to[i];
+! 		if (to[i] == CSI)
+! 		{
+! 		    result[len++] = KS_EXTRA;
+! 		    result[len++] = (int)KE_CSI;
+! 		}
+! 	    }
+! 	    vim_free(to);
+! 	}
+      }
+  
+      add_to_input_buf(result, len);
+***************
+*** 2135,2144 ****
+      vim_free(text);
+      if (err == noErr)
+      {
+!         /* Fake event to wake up WNE (required to get
+!          * key repeat working */
+!         PostEvent(keyUp, 0);
+!         return noErr;
+      }
+  
+      return eventNotHandledErr;
+--- 2245,2254 ----
+      vim_free(text);
+      if (err == noErr)
+      {
+! 	/* Fake event to wake up WNE (required to get
+! 	 * key repeat working */
+! 	PostEvent(keyUp, 0);
+! 	return noErr;
+      }
+  
+      return eventNotHandledErr;
+***************
+*** 2334,2340 ****
+      /* prevent that the vim window size changes if it's activated by a
+         click into the tab pane */
+      if (whichWindow == drawer)
+!         return;
+  #endif
+  
+      switch (thePart)
+--- 2444,2450 ----
+      /* prevent that the vim window size changes if it's activated by a
+         click into the tab pane */
+      if (whichWindow == drawer)
+! 	return;
+  #endif
+  
+      switch (thePart)
+***************
+*** 2569,2579 ****
+      if (IsShowContextualMenuClick(event))
+      {
+  # if 0
+!         gui_mac_handle_contextual_menu(event);
+  # else
+!         gui_mac_doMouseDownEvent(event);
+  # endif
+!         return;
+      }
+  
+      /* Handle normal event */
+--- 2679,2689 ----
+      if (IsShowContextualMenuClick(event))
+      {
+  # if 0
+! 	gui_mac_handle_contextual_menu(event);
+  # else
+! 	gui_mac_doMouseDownEvent(event);
+  # endif
+! 	return;
+      }
+  
+      /* Handle normal event */
+***************
+*** 2832,2838 ****
+  # else
+      /* OSErr GetApplicationBundleFSSpec(FSSpecPtr theFSSpecPtr)
+       * of TN2015
+-      * This technic remove the ../Contents/MacOS/etc part
+       */
+      (void)GetCurrentProcess(&psn);
+      /* if (err != noErr) return err; */
+--- 2942,2947 ----
+***************
+*** 2933,2942 ****
+      /* TODO: Move most of this stuff toward gui_mch_init */
+      Rect	windRect;
+      MenuHandle	pomme;
+-     EventTypeSpec   eventTypeSpec;
+      EventHandlerRef mouseWheelHandlerRef;
+  #ifdef USE_CARBONKEYHANDLER
+!     EventHandlerRef keyEventHandlerRef;
+  #endif
+      ControlRef rootControl;
+  
+--- 3042,3050 ----
+      /* TODO: Move most of this stuff toward gui_mch_init */
+      Rect	windRect;
+      MenuHandle	pomme;
+      EventHandlerRef mouseWheelHandlerRef;
+  #ifdef USE_CARBONKEYHANDLER
+!     EventTypeSpec   eventTypeSpec;
+  #endif
+      ControlRef rootControl;
+  
+***************
+*** 3042,3057 ****
+      }
+  
+  #ifdef USE_CARBONKEYHANDLER
+!     eventTypeSpec.eventClass = kEventClassTextInput;
+!     eventTypeSpec.eventKind = kEventUnicodeForKeyEvent;
+!     keyEventHandlerUPP = NewEventHandlerUPP(gui_mac_doKeyEventCarbon);
+!     if (noErr != InstallApplicationEventHandler(keyEventHandlerUPP, 1,
+! 		&eventTypeSpec, NULL, &keyEventHandlerRef))
+      {
+- 	keyEventHandlerRef = NULL;
+  	DisposeEventHandlerUPP(keyEventHandlerUPP);
+  	keyEventHandlerUPP = NULL;
+      }
+  #endif
+  
+  /*
+--- 3150,3196 ----
+      }
+  
+  #ifdef USE_CARBONKEYHANDLER
+!     InterfaceTypeList supportedServices = { kUnicodeDocument };
+!     NewTSMDocument(1, supportedServices, &gTSMDocument, 0);
+! 
+!     /* We don't support inline input yet, use input window by default */
+!     UseInputWindow(gTSMDocument, TRUE);
+! 
+!     /* Should we activate the document by default? */
+!     // ActivateTSMDocument(gTSMDocument);
+! 
+!     EventTypeSpec textEventTypes[] = {
+! 	{ kEventClassTextInput, kEventTextInputUpdateActiveInputArea },
+! 	{ kEventClassTextInput, kEventTextInputUnicodeForKeyEvent },
+! 	{ kEventClassTextInput, kEventTextInputPosToOffset },
+! 	{ kEventClassTextInput, kEventTextInputOffsetToPos },
+!     };
+! 
+!     keyEventHandlerUPP = NewEventHandlerUPP(gui_mac_handle_text_input);
+!     if (noErr != InstallApplicationEventHandler(keyEventHandlerUPP,
+! 						NR_ELEMS(textEventTypes),
+! 						textEventTypes, NULL, NULL))
+      {
+  	DisposeEventHandlerUPP(keyEventHandlerUPP);
+  	keyEventHandlerUPP = NULL;
+      }
++ 
++     EventTypeSpec windowEventTypes[] = {
++ 	{ kEventClassWindow, kEventWindowActivated },
++ 	{ kEventClassWindow, kEventWindowDeactivated },
++     };
++ 
++     /* Install window event handler to support TSMDocument activate and
++      * deactivate */
++     winEventHandlerUPP = NewEventHandlerUPP(gui_mac_handle_window_activate);
++     if (noErr != InstallWindowEventHandler(gui.VimWindow,
++ 					   winEventHandlerUPP,
++ 					   NR_ELEMS(windowEventTypes),
++ 					   windowEventTypes, NULL, NULL))
++     {
++ 	DisposeEventHandlerUPP(winEventHandlerUPP);
++ 	winEventHandlerUPP = NULL;
++     }
+  #endif
+  
+  /*
+***************
+*** 3107,3112 ****
+--- 3246,3264 ----
+      return OK;
+  }
+  
++ #ifdef USE_ATSUI_DRAWING
++     static void
++ gui_mac_dispose_atsui_style(void)
++ {
++     if (p_macatsui && gFontStyle)
++ 	ATSUDisposeStyle(gFontStyle);
++ #ifdef FEAT_MBYTE
++     if (p_macatsui && gWideFontStyle)
++ 	ATSUDisposeStyle(gWideFontStyle);
++ #endif
++ }
++ #endif
++ 
+      void
+  gui_mch_exit(int rc)
+  {
+***************
+*** 3122,3129 ****
+  	DisposeEventHandlerUPP(mouseWheelHandlerUPP);
+  
+  #ifdef USE_ATSUI_DRAWING
+!     if (p_macatsui && gFontStyle)
+! 	ATSUDisposeStyle(gFontStyle);
+  #endif
+  
+      /* Exit to shell? */
+--- 3274,3286 ----
+  	DisposeEventHandlerUPP(mouseWheelHandlerUPP);
+  
+  #ifdef USE_ATSUI_DRAWING
+!     gui_mac_dispose_atsui_style();
+! #endif
+! 
+! #ifdef USE_CARBONKEYHANDLER
+!     FixTSMDocument(gTSMDocument);
+!     DeactivateTSMDocument(gTSMDocument);
+!     DeleteTSMDocument(gTSMDocument);
+  #endif
+  
+      /* Exit to shell? */
+***************
+*** 3263,3268 ****
+--- 3420,3445 ----
+      return selected_font;
+  }
+  
++ #ifdef USE_ATSUI_DRAWING
++     static void
++ gui_mac_create_atsui_style(void)
++ {
++     if (p_macatsui && gFontStyle == NULL)
++     {
++ 	if (ATSUCreateStyle(&gFontStyle) != noErr)
++ 	    gFontStyle = NULL;
++     }
++ #ifdef FEAT_MBYTE
++     if (p_macatsui && gWideFontStyle == NULL)
++     {
++ 	if (ATSUCreateStyle(&gWideFontStyle) != noErr)
++ 	    gWideFontStyle = NULL;
++     }
++ #endif
++ 
++     p_macatsui_last = p_macatsui;
++ }
++ #endif
+  
+  /*
+   * Initialise vim to use the font with the given name.	Return FAIL if the font
+***************
+*** 3280,3290 ****
+      char_u	used_font_name[512];
+  
+  #ifdef USE_ATSUI_DRAWING
+!     if (p_macatsui && gFontStyle == NULL)
+!     {
+! 	if (ATSUCreateStyle(&gFontStyle) != noErr)
+! 	    gFontStyle = NULL;
+!     }
+  #endif
+  
+      if (font_name == NULL)
+--- 3457,3463 ----
+      char_u	used_font_name[512];
+  
+  #ifdef USE_ATSUI_DRAWING
+!     gui_mac_create_atsui_style();
+  #endif
+  
+      if (font_name == NULL)
+***************
+*** 3348,3396 ****
+      gui.char_height = font_info.ascent + font_info.descent + p_linespace;
+  
+  #ifdef USE_ATSUI_DRAWING
+-     ATSUFontID			fontID;
+-     Fixed			fontSize;
+-     ATSStyleRenderingOptions	fontOptions;
+- 
+      if (p_macatsui && gFontStyle)
+!     {
+! 	fontID = font & 0xFFFF;
+! 	fontSize = Long2Fix(font >> 16);
+! 
+! 	/* No antialiasing by default (do not attempt to touch antialising
+! 	 * options on pre-Jaguar) */
+! 	fontOptions =
+! 	    (gMacSystemVersion >= 0x1020) ?
+! 	    kATSStyleNoAntiAliasing :
+! 	    kATSStyleNoOptions;
+! 
+! 	ATSUAttributeTag attribTags[] =
+! 	{
+! 	    kATSUFontTag, kATSUSizeTag, kATSUStyleRenderingOptionsTag,
+! 	    kATSUMaxATSUITagValue+1
+! 	};
+! 	ByteCount attribSizes[] =
+! 	{
+! 	    sizeof(ATSUFontID), sizeof(Fixed),
+! 	    sizeof(ATSStyleRenderingOptions), sizeof font
+! 	};
+! 	ATSUAttributeValuePtr attribValues[] =
+! 	{
+! 	    &fontID, &fontSize, &fontOptions, &font
+! 	};
+! 
+! 	/* Convert font id to ATSUFontID */
+! 	if (FMGetFontFromFontFamilyInstance(fontID, 0, &fontID, NULL) == noErr)
+! 	{
+! 	    if (ATSUSetAttributes(gFontStyle,
+! 			(sizeof attribTags)/sizeof(ATSUAttributeTag),
+! 			attribTags, attribSizes, attribValues) != noErr)
+! 	    {
+! 		ATSUDisposeStyle(gFontStyle);
+! 		gFontStyle = NULL;
+! 	    }
+! 	}
+!     }
+  #endif
+  
+      return OK;
+--- 3521,3528 ----
+      gui.char_height = font_info.ascent + font_info.descent + p_linespace;
+  
+  #ifdef USE_ATSUI_DRAWING
+      if (p_macatsui && gFontStyle)
+! 	gui_mac_set_font_attributes(font);
+  #endif
+  
+      return OK;
+***************
+*** 3447,3452 ****
+--- 3579,3646 ----
+  }
+  #endif
+  
++ #ifdef USE_ATSUI_DRAWING
++     static void
++ gui_mac_set_font_attributes(GuiFont font)
++ {
++     ATSUFontID	fontID;
++     Fixed	fontSize;
++     Fixed	fontWidth;
++ 
++     fontID    = font & 0xFFFF;
++     fontSize  = Long2Fix(font >> 16);
++     fontWidth = Long2Fix(gui.char_width);
++ 
++     ATSUAttributeTag attribTags[] =
++     {
++ 	kATSUFontTag, kATSUSizeTag, kATSUImposeWidthTag,
++ 	kATSUMaxATSUITagValue + 1
++     };
++ 
++     ByteCount attribSizes[] =
++     {
++ 	sizeof(ATSUFontID), sizeof(Fixed), sizeof(fontWidth),
++ 	sizeof(font)
++     };
++ 
++     ATSUAttributeValuePtr attribValues[] =
++     {
++ 	&fontID, &fontSize, &fontWidth, &font
++     };
++ 
++     if (FMGetFontFromFontFamilyInstance(fontID, 0, &fontID, NULL) == noErr)
++     {
++ 	if (ATSUSetAttributes(gFontStyle,
++ 		    (sizeof attribTags) / sizeof(ATSUAttributeTag),
++ 		    attribTags, attribSizes, attribValues) != noErr)
++ 	{
++ # ifndef NDEBUG
++ 	    fprintf(stderr, "couldn't set font style\n");
++ # endif
++ 	    ATSUDisposeStyle(gFontStyle);
++ 	    gFontStyle = NULL;
++ 	}
++ 
++ #ifdef FEAT_MBYTE
++ 	if (has_mbyte)
++ 	{
++ 	    /* FIXME: we should use a more mbyte sensitive way to support
++ 	     * wide font drawing */
++ 	    fontWidth = Long2Fix(gui.char_width * 2);
++ 
++ 	    if (ATSUSetAttributes(gWideFontStyle,
++ 			(sizeof attribTags) / sizeof(ATSUAttributeTag),
++ 			attribTags, attribSizes, attribValues) != noErr)
++ 	    {
++ 		ATSUDisposeStyle(gWideFontStyle);
++ 		gWideFontStyle = NULL;
++ 	    }
++ 	}
++ #endif
++     }
++ }
++ #endif
++ 
+  /*
+   * Set the current text font.
+   */
+***************
+*** 3456,3518 ****
+  #ifdef USE_ATSUI_DRAWING
+      GuiFont			currFont;
+      ByteCount			actualFontByteCount;
+-     ATSUFontID			fontID;
+-     Fixed			fontSize;
+-     ATSStyleRenderingOptions	fontOptions;
+  
+      if (p_macatsui && gFontStyle)
+      {
+  	/* Avoid setting same font again */
+! 	if (ATSUGetAttribute(gFontStyle, kATSUMaxATSUITagValue+1, sizeof font,
+! 		    &currFont, &actualFontByteCount) == noErr &&
+! 		actualFontByteCount == (sizeof font))
+  	{
+  	    if (currFont == font)
+  		return;
+  	}
+  
+! 	fontID = font & 0xFFFF;
+! 	fontSize = Long2Fix(font >> 16);
+! 	/* Respect p_antialias setting only for wide font.
+! 	 * The reason for doing this at the moment is a bit complicated,
+! 	 * but it's mainly because a) latin (non-wide) aliased fonts
+! 	 * look bad in OS X 10.3.x and below (due to a bug in ATS), and
+! 	 * b) wide multibyte input does not suffer from that problem. */
+! 	/*fontOptions =
+! 	    (p_antialias && (font == gui.wide_font)) ?
+! 	    kATSStyleNoOptions : kATSStyleNoAntiAliasing;
+! 	*/
+! 	/*fontOptions = kATSStyleAntiAliasing;*/
+! 
+! 	ATSUAttributeTag attribTags[] =
+! 	{
+! 	    kATSUFontTag, kATSUSizeTag, kATSUStyleRenderingOptionsTag,
+! 	    kATSUMaxATSUITagValue+1
+! 	};
+! 	ByteCount attribSizes[] =
+! 	{
+! 	    sizeof(ATSUFontID), sizeof(Fixed),
+! 	    sizeof(ATSStyleRenderingOptions), sizeof font
+! 	};
+! 	ATSUAttributeValuePtr attribValues[] =
+! 	{
+! 	    &fontID, &fontSize, &fontOptions, &font
+! 	};
+! 
+! 	if (FMGetFontFromFontFamilyInstance(fontID, 0, &fontID, NULL) == noErr)
+! 	{
+! 	    if (ATSUSetAttributes(gFontStyle,
+! 			(sizeof attribTags)/sizeof(ATSUAttributeTag),
+! 			attribTags, attribSizes, attribValues) != noErr)
+! 	    {
+! # ifndef NDEBUG
+! 		fprintf(stderr, "couldn't set font style\n");
+! # endif
+! 		ATSUDisposeStyle(gFontStyle);
+! 		gFontStyle = NULL;
+! 	    }
+! 	}
+! 
+      }
+  
+      if (p_macatsui && !gIsFontFallbackSet)
+--- 3650,3668 ----
+  #ifdef USE_ATSUI_DRAWING
+      GuiFont			currFont;
+      ByteCount			actualFontByteCount;
+  
+      if (p_macatsui && gFontStyle)
+      {
+  	/* Avoid setting same font again */
+! 	if (ATSUGetAttribute(gFontStyle, kATSUMaxATSUITagValue + 1,
+! 		    sizeof(font), &currFont, &actualFontByteCount) == noErr
+! 		&& actualFontByteCount == (sizeof font))
+  	{
+  	    if (currFont == font)
+  		return;
+  	}
+  
+! 	gui_mac_set_font_attributes(font);
+      }
+  
+      if (p_macatsui && !gIsFontFallbackSet)
+***************
+*** 3536,3542 ****
+  			&fallbackFonts,
+  			NULL) == noErr)
+  	    {
+! 		ATSUSetFontFallbacks((sizeof fallbackFonts)/sizeof(ATSUFontID), &fallbackFonts, kATSUSequentialFallbacksPreferred);
+  	    }
+  /*
+  	ATSUAttributeValuePtr fallbackValues[] = { };
+--- 3686,3694 ----
+  			&fallbackFonts,
+  			NULL) == noErr)
+  	    {
+! 		ATSUSetFontFallbacks((sizeof fallbackFonts)/sizeof(ATSUFontID),
+! 				     &fallbackFonts,
+! 				     kATSUSequentialFallbacksPreferred);
+  	    }
+  /*
+  	ATSUAttributeValuePtr fallbackValues[] = { };
+***************
+*** 3921,3927 ****
+  
+      /* - ATSUI automatically antialiases text (Someone)
+       * - for some reason it does not work... (Jussi) */
+! 
+      /*
+       * When antialiasing we're using srcOr mode, we have to clear the block
+       * before drawing the text.
+--- 4073,4082 ----
+  
+      /* - ATSUI automatically antialiases text (Someone)
+       * - for some reason it does not work... (Jussi) */
+! #ifdef MAC_ATSUI_DEBUG
+!     fprintf(stderr, "row = %d, col = %d, len = %d: '%c'\n",
+! 	    row, col, len, len == 1 ? s[0] : ' ');
+! #endif
+      /*
+       * When antialiasing we're using srcOr mode, we have to clear the block
+       * before drawing the text.
+***************
+*** 3956,3990 ****
+      }
+  
+      {
+- 	/* Use old-style, non-antialiased QuickDraw text rendering. */
+  	TextMode(srcCopy);
+  	TextFace(normal);
+  
+!     /*  SelectFont(hdc, gui.currFont); */
+! 
+  	if (flags & DRAW_TRANSP)
+  	{
+  	    TextMode(srcOr);
+  	}
+  
+  	MoveTo(TEXT_X(col), TEXT_Y(row));
+- 	ATSUTextLayout textLayout;
+  
+! 	if (ATSUCreateTextLayoutWithTextPtr(tofree,
+! 		    kATSUFromTextBeginning, kATSUToTextEnd,
+! 		    utf16_len,
+! 		    (gFontStyle ? 1 : 0), &utf16_len,
+! 		    (gFontStyle ? &gFontStyle : NULL),
+! 		    &textLayout) == noErr)
+  	{
+! 	    ATSUSetTransientFontMatching(textLayout, TRUE);
+  
+! 	    ATSUDrawText(textLayout,
+! 		    kATSUFromTextBeginning, kATSUToTextEnd,
+! 		    kATSUUseGrafPortPenLoc, kATSUUseGrafPortPenLoc);
+  
+  	    ATSUDisposeTextLayout(textLayout);
+  	}
+      }
+  
+      if (flags & DRAW_UNDERC)
+--- 4111,4232 ----
+      }
+  
+      {
+  	TextMode(srcCopy);
+  	TextFace(normal);
+  
+! 	/*  SelectFont(hdc, gui.currFont); */
+  	if (flags & DRAW_TRANSP)
+  	{
+  	    TextMode(srcOr);
+  	}
+  
+  	MoveTo(TEXT_X(col), TEXT_Y(row));
+  
+! 	if (gFontStyle && flags & DRAW_BOLD)
+  	{
+! 	    Boolean attValue = true;
+! 	    ATSUAttributeTag attribTags[] = { kATSUQDBoldfaceTag };
+! 	    ByteCount attribSizes[] = { sizeof(Boolean) };
+! 	    ATSUAttributeValuePtr attribValues[] = { &attValue };
+  
+! 	    ATSUSetAttributes(gFontStyle, 1, attribTags, attribSizes, attribValues);
+! 	}
+! 
+! #ifdef FEAT_MBYTE
+! 	if (has_mbyte)
+! 	{
+! 	    int n, width_in_cell, last_width_in_cell;
+! 	    UniCharArrayOffset offset = 0;
+! 	    UniCharCount yet_to_draw = 0;
+! 	    ATSUTextLayout textLayout;
+! 	    ATSUStyle      textStyle;
+! 
+! 	    last_width_in_cell = 1;
+! 	    ATSUCreateTextLayout(&textLayout);
+! 	    ATSUSetTextPointerLocation(textLayout, tofree,
+! 				       kATSUFromTextBeginning,
+! 				       kATSUToTextEnd, utf16_len);
+! 	    /*
+! 	       ATSUSetRunStyle(textLayout, gFontStyle,
+! 	       kATSUFromTextBeginning, kATSUToTextEnd); */
+! 
+! 	    /* Compute the length in display cells. */
+! 	    for (n = 0; n < len; n += MB_BYTE2LEN(s[n]))
+! 	    {
+! 		width_in_cell = (*mb_ptr2cells)(s + n);
+! 
+! 		/* probably we are switching from single byte character
+! 		 * to multibyte characters (which requires more than one
+! 		 * cell to draw) */
+! 		if (width_in_cell != last_width_in_cell)
+! 		{
+! #ifdef MAC_ATSUI_DEBUG
+! 		    fprintf(stderr, "\tn = %2d, (%d-%d), offset = %d, yet_to_draw = %d\n",
+! 			    n, last_width_in_cell, width_in_cell, offset, yet_to_draw);
+! #endif
+! 		    textStyle = last_width_in_cell > 1 ? gWideFontStyle
+! 								 : gFontStyle;
+! 
+! 		    ATSUSetRunStyle(textLayout, textStyle, offset, yet_to_draw);
+! 		    offset += yet_to_draw;
+! 		    yet_to_draw = 0;
+! 		    last_width_in_cell = width_in_cell;
+! 		}
+  
++ 		yet_to_draw++;
++ 	    }
++ 
++ 	    if (yet_to_draw)
++ 	    {
++ #ifdef MAC_ATSUI_DEBUG
++ 		fprintf(stderr, "\tn = %2d, (%d-%d), offset = %d, yet_to_draw = %d\n",
++ 			n, last_width_in_cell, width_in_cell, offset, yet_to_draw);
++ #endif
++ 		/* finish the rest style */
++ 		textStyle = width_in_cell > 1 ? gWideFontStyle : gFontStyle;
++ 		ATSUSetRunStyle(textLayout, textStyle, offset, kATSUToTextEnd);
++ 	    }
++ 
++ 	    ATSUSetTransientFontMatching(textLayout, TRUE);
++ 	    ATSUDrawText(textLayout,
++ 			 kATSUFromTextBeginning, kATSUToTextEnd,
++ 			 kATSUUseGrafPortPenLoc, kATSUUseGrafPortPenLoc);
+  	    ATSUDisposeTextLayout(textLayout);
+  	}
++ 	else
++ #endif
++ 	{
++ 	    ATSUTextLayout textLayout;
++ 
++ 	    if (ATSUCreateTextLayoutWithTextPtr(tofree,
++ 			kATSUFromTextBeginning, kATSUToTextEnd,
++ 			utf16_len,
++ 			(gFontStyle ? 1 : 0), &utf16_len,
++ 			(gFontStyle ? &gFontStyle : NULL),
++ 			&textLayout) == noErr)
++ 	    {
++ 		ATSUSetTransientFontMatching(textLayout, TRUE);
++ 
++ 		ATSUDrawText(textLayout,
++ 			kATSUFromTextBeginning, kATSUToTextEnd,
++ 			kATSUUseGrafPortPenLoc, kATSUUseGrafPortPenLoc);
++ 
++ 		ATSUDisposeTextLayout(textLayout);
++ 	    }
++ 	}
++ 
++ 	/* drawing is done, now reset bold to normal */
++ 	if (gFontStyle && flags & DRAW_BOLD)
++ 	{
++ 	    Boolean attValue = false;
++ 
++ 	    ATSUAttributeTag attribTags[] = { kATSUQDBoldfaceTag };
++ 	    ByteCount attribSizes[] = { sizeof(Boolean) };
++ 	    ATSUAttributeValuePtr attribValues[] = { &attValue };
++ 
++ 	    ATSUSetAttributes(gFontStyle, 1, attribTags, attribSizes,
++ 								attribValues);
++ 	}
+      }
+  
+      if (flags & DRAW_UNDERC)
+***************
+*** 3998,4003 ****
+--- 4240,4252 ----
+  gui_mch_draw_string(int row, int col, char_u *s, int len, int flags)
+  {
+  #if defined(USE_ATSUI_DRAWING)
++     if (p_macatsui == 0 && p_macatsui_last != 0)
++ 	/* switch from macatsui to nomacatsui */
++ 	gui_mac_dispose_atsui_style();
++     else if (p_macatsui != 0 && p_macatsui_last == 0)
++ 	/* switch from nomacatsui to macatsui */
++ 	gui_mac_create_atsui_style();
++ 
+      if (p_macatsui)
+  	draw_string_ATSUI(row, col, s, len, flags);
+      else
+***************
+*** 4228,4239 ****
+  	 */
+  	/* TODO: reduce wtime accordinly???  */
+  	if (wtime > -1)
+! 	    sleeppyTick = 60*wtime/1000;
+  	else
+  	    sleeppyTick = 32767;
+  	if (WaitNextEventWrp(mask, &event, sleeppyTick, dragRgn))
+  	{
+! 		gui_mac_handle_event(&event);
+  	    if (input_available())
+  	    {
+  		allow_scrollbar = FALSE;
+--- 4477,4489 ----
+  	 */
+  	/* TODO: reduce wtime accordinly???  */
+  	if (wtime > -1)
+! 	    sleeppyTick = 60 * wtime / 1000;
+  	else
+  	    sleeppyTick = 32767;
++ 
+  	if (WaitNextEventWrp(mask, &event, sleeppyTick, dragRgn))
+  	{
+! 	    gui_mac_handle_event(&event);
+  	    if (input_available())
+  	    {
+  		allow_scrollbar = FALSE;
+***************
+*** 6031,6037 ****
+  #endif
+  }
+  
+! #if defined(USE_IM_CONTROL) || defined(PROTO)
+  /*
+   * Input Method Control functions.
+   */
+--- 6346,6352 ----
+  #endif
+  }
+  
+! #if (defined(USE_IM_CONTROL) || defined(PROTO)) && defined(USE_CARBONKEYHANDLER)
+  /*
+   * Input Method Control functions.
+   */
+***************
+*** 6042,6048 ****
+--- 6357,6427 ----
+      void
+  im_set_position(int row, int col)
+  {
++ #if 0
+      /* TODO: Implement me! */
++     im_start_row = row;
++     im_start_col = col;
++ #endif
++ }
++ 
++ static ScriptLanguageRecord gTSLWindow;
++ static ScriptLanguageRecord gTSLInsert;
++ static ScriptLanguageRecord gTSLDefault = { 0, 0 };
++ 
++ static Component	     gTSCWindow;
++ static Component	     gTSCInsert;
++ static Component	     gTSCDefault;
++ 
++ static int		     im_initialized = 0;
++ 
++     static void
++ im_on_window_switch(int active)
++ {
++     ScriptLanguageRecord *slptr = NULL;
++     OSStatus err;
++ 
++     if (! gui.in_use)
++ 	return;
++ 
++     if (im_initialized == 0)
++     {
++ 	im_initialized = 1;
++ 
++ 	/* save default TSM component (should be U.S.) to default */
++ 	GetDefaultInputMethodOfClass(&gTSCDefault, &gTSLDefault,
++ 				     kKeyboardInputMethodClass);
++     }
++ 
++     if (active == TRUE)
++     {
++ 	im_is_active = TRUE;
++ 	ActivateTSMDocument(gTSMDocument);
++ 	slptr = &gTSLWindow;
++ 
++ 	if (slptr)
++ 	{
++ 	    err = SetDefaultInputMethodOfClass(gTSCWindow, slptr,
++ 					       kKeyboardInputMethodClass);
++ 	    if (err == noErr)
++ 		err = SetTextServiceLanguage(slptr);
++ 
++ 	    if (err == noErr)
++ 		KeyScript(slptr->fScript | smKeyForceKeyScriptMask);
++ 	}
++     }
++     else
++     {
++ 	err = GetTextServiceLanguage(&gTSLWindow);
++ 	if (err == noErr)
++ 	    slptr = &gTSLWindow;
++ 
++ 	if (slptr)
++ 	    GetDefaultInputMethodOfClass(&gTSCWindow, slptr,
++ 					 kKeyboardInputMethodClass);
++ 
++ 	im_is_active = FALSE;
++ 	DeactivateTSMDocument(gTSMDocument);
++     }
+  }
+  
+  /*
+***************
+*** 6051,6057 ****
+      void
+  im_set_active(int active)
+  {
+!     KeyScript(active ? smKeySysScript : smKeyRoman);
+  }
+  
+  /*
+--- 6430,6486 ----
+      void
+  im_set_active(int active)
+  {
+!     ScriptLanguageRecord *slptr = NULL;
+!     OSStatus err;
+! 
+!     if (! gui.in_use)
+! 	return;
+! 
+!     if (im_initialized == 0)
+!     {
+! 	im_initialized = 1;
+! 
+! 	/* save default TSM component (should be U.S.) to default */
+! 	GetDefaultInputMethodOfClass(&gTSCDefault, &gTSLDefault,
+! 				     kKeyboardInputMethodClass);
+!     }
+! 
+!     if (active == TRUE)
+!     {
+! 	im_is_active = TRUE;
+! 	ActivateTSMDocument(gTSMDocument);
+! 	slptr = &gTSLInsert;
+! 
+! 	if (slptr)
+! 	{
+! 	    err = SetDefaultInputMethodOfClass(gTSCInsert, slptr,
+! 					       kKeyboardInputMethodClass);
+! 	    if (err == noErr)
+! 		err = SetTextServiceLanguage(slptr);
+! 
+! 	    if (err == noErr)
+! 		KeyScript(slptr->fScript | smKeyForceKeyScriptMask);
+! 	}
+!     }
+!     else
+!     {
+! 	err = GetTextServiceLanguage(&gTSLInsert);
+! 	if (err == noErr)
+! 	    slptr = &gTSLInsert;
+! 
+! 	if (slptr)
+! 	    GetDefaultInputMethodOfClass(&gTSCInsert, slptr,
+! 					 kKeyboardInputMethodClass);
+! 
+! 	/* restore to default when switch to normal mode, so than we could
+! 	 * enter commands easier */
+! 	SetDefaultInputMethodOfClass(gTSCDefault, &gTSLDefault,
+! 				     kKeyboardInputMethodClass);
+! 	SetTextServiceLanguage(&gTSLDefault);
+! 
+! 	im_is_active = FALSE;
+! 	DeactivateTSMDocument(gTSMDocument);
+!     }
+  }
+  
+  /*
+***************
+*** 6060,6068 ****
+      int
+  im_get_status(void)
+  {
+!     SInt32 script = GetScriptManagerVariable(smKeyScript);
+!     return (script != smRoman
+! 	    && script == GetScriptManagerVariable(smSysScript)) ? 1 : 0;
+  }
+  
+  #endif /* defined(USE_IM_CONTROL) || defined(PROTO) */
+--- 6489,6498 ----
+      int
+  im_get_status(void)
+  {
+!     if (! gui.in_use)
+! 	return 0;
+! 
+!     return im_is_active;
+  }
+  
+  #endif /* defined(USE_IM_CONTROL) || defined(PROTO) */
+***************
+*** 6118,6124 ****
+      int		numTabs = 0;
+  
+      for (tp = first_tabpage; tp != NULL; tp = tp->tp_next)
+!         ++numTabs;
+      return numTabs;
+  }
+  
+--- 6548,6554 ----
+      int		numTabs = 0;
+  
+      for (tp = first_tabpage; tp != NULL; tp = tp->tp_next)
+! 	++numTabs;
+      return numTabs;
+  }
+  
+***************
+*** 6126,6133 ****
+      static OSStatus
+  dbItemDataCallback(ControlRef browser,
+  	DataBrowserItemID itemID,
+!         DataBrowserPropertyID property /* column id */,
+!         DataBrowserItemDataRef itemData,
+  	Boolean changeValue)
+  {
+      OSStatus status = noErr;
+--- 6556,6563 ----
+      static OSStatus
+  dbItemDataCallback(ControlRef browser,
+  	DataBrowserItemID itemID,
+! 	DataBrowserPropertyID property /* column id */,
+! 	DataBrowserItemDataRef itemData,
+  	Boolean changeValue)
+  {
+      OSStatus status = noErr;
+***************
+*** 6170,6178 ****
+      static void
+  dbGetContextualMenuCallback(ControlRef browser,
+  	MenuRef *menu,
+!         UInt32 *helpType,
+  	CFStringRef *helpItemString,
+!         AEDesc *selection)
+  {
+      // on mac os 9: kCMHelpItemNoHelp, but it's not the same
+      *helpType = kCMHelpItemRemoveHelp; // OS X only ;-)
+--- 6600,6608 ----
+      static void
+  dbGetContextualMenuCallback(ControlRef browser,
+  	MenuRef *menu,
+! 	UInt32 *helpType,
+  	CFStringRef *helpItemString,
+! 	AEDesc *selection)
+  {
+      // on mac os 9: kCMHelpItemNoHelp, but it's not the same
+      *helpType = kCMHelpItemRemoveHelp; // OS X only ;-)
+***************
+*** 6395,6403 ****
+  gui_mch_show_tabline(int showit)
+  {
+      if (showit == 0)
+!         CloseDrawer(drawer, true);
+      else
+!         OpenDrawer(drawer, kWindowEdgeRight, true);
+  }
+  
+  /*
+--- 6825,6833 ----
+  gui_mch_show_tabline(int showit)
+  {
+      if (showit == 0)
+! 	CloseDrawer(drawer, true);
+      else
+! 	OpenDrawer(drawer, kWindowEdgeRight, true);
+  }
+  
+  /*
+***************
+*** 6425,6435 ****
+      // adjust data browser
+      if (tabLabels != NULL)
+      {
+!         int i;
+  
+!         for (i = 0; i < tabLabelsSize; ++i)
+!             CFRelease(tabLabels[i]);
+!         free(tabLabels);
+      }
+      tabLabels = (CFStringRef *)malloc(numTabs * sizeof(CFStringRef));
+      tabLabelsSize = numTabs;
+--- 6855,6865 ----
+      // adjust data browser
+      if (tabLabels != NULL)
+      {
+! 	int i;
+  
+! 	for (i = 0; i < tabLabelsSize; ++i)
+! 	    CFRelease(tabLabels[i]);
+! 	free(tabLabels);
+      }
+      tabLabels = (CFStringRef *)malloc(numTabs * sizeof(CFStringRef));
+      tabLabelsSize = numTabs;
+***************
+*** 6438,6444 ****
+      {
+  	if (tp == curtab)
+  	    curtabidx = nr;
+!         tabLabels[nr-1] = getTabLabel(tp);
+      }
+  
+      RemoveDataBrowserItems(dataBrowser, kDataBrowserNoItem, 0, NULL,
+--- 6868,6874 ----
+      {
+  	if (tp == curtab)
+  	    curtabidx = nr;
+! 	tabLabels[nr-1] = getTabLabel(tp);
+      }
+  
+      RemoveDataBrowserItems(dataBrowser, kDataBrowserNoItem, 0, NULL,
+*** ../vim-7.1.274/src/version.c	Wed Mar 12 13:45:34 2008
+--- src/version.c	Wed Mar 12 14:31:37 2008
+***************
+*** 668,669 ****
+--- 668,671 ----
+  {   /* Add new patch number below this line */
++ /**/
++     275,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+115. You are late picking up your kid from school and try to explain
+     to the teacher you were stuck in Web traffic.
+
+ /// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

Added: trunk/packages/vim/upstream/patches/7.1.276
URL: http://svn.debian.org/wsvn/pkg-vim/trunk/packages/vim/upstream/patches/7.1.276?rev=1232&op=file
==============================================================================
--- trunk/packages/vim/upstream/patches/7.1.276 (added)
+++ trunk/packages/vim/upstream/patches/7.1.276 Wed Mar 12 19:36:03 2008
@@ -1,0 +1,156 @@
+To: vim-dev at vim.org
+Subject: Patch 7.1.276
+Fcc: outbox
+From: Bram Moolenaar <Bram at moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.1.276
+Problem:    "gw" uses 'formatexpr', even though the docs say it doesn't.
+Solution:   Don't use 'formatexpr' for "gw".
+Files:	    src/vim.h, src/edit.c, src/ops.c, src/proto/ops.pro
+
+
+*** ../vim-7.1.275/src/vim.h	Wed Mar 12 14:38:51 2008
+--- src/vim.h	Wed Mar 12 16:31:44 2008
+***************
+*** 949,954 ****
+--- 952,958 ----
+  #define INSCHAR_FORMAT	1	/* force formatting */
+  #define INSCHAR_DO_COM	2	/* format comments */
+  #define INSCHAR_CTRLV	4	/* char typed just after CTRL-V */
++ #define INSCHAR_NO_FEX	8	/* don't use 'formatexpr' */
+  
+  /* flags for open_line() */
+  #define OPENLINE_DELSPACES  1	/* delete spaces after cursor */
+*** ../vim-7.1.275/src/edit.c	Tue Jan 22 17:49:17 2008
+--- src/edit.c	Wed Mar 12 16:35:44 2008
+***************
+*** 5491,5497 ****
+  #if defined(FEAT_EVAL)
+  	int do_internal = TRUE;
+  
+! 	if (*curbuf->b_p_fex != NUL)
+  	{
+  	    do_internal = (fex_format(curwin->w_cursor.lnum, 1L, c) != 0);
+  	    /* It may be required to save for undo again, e.g. when setline()
+--- 5491,5497 ----
+  #if defined(FEAT_EVAL)
+  	int do_internal = TRUE;
+  
+! 	if (*curbuf->b_p_fex != NUL && (flags & INSCHAR_NO_FEX) == 0)
+  	{
+  	    do_internal = (fex_format(curwin->w_cursor.lnum, 1L, c) != 0);
+  	    /* It may be required to save for undo again, e.g. when setline()
+***************
+*** 6057,6063 ****
+       * be adjusted for the text formatting.
+       */
+      saved_cursor = pos;
+!     format_lines((linenr_T)-1);
+      curwin->w_cursor = saved_cursor;
+      saved_cursor.lnum = 0;
+  
+--- 6057,6063 ----
+       * be adjusted for the text formatting.
+       */
+      saved_cursor = pos;
+!     format_lines((linenr_T)-1, FALSE);
+      curwin->w_cursor = saved_cursor;
+      saved_cursor.lnum = 0;
+  
+*** ../vim-7.1.275/src/ops.c	Mon Feb 25 21:54:23 2008
+--- src/ops.c	Wed Mar 12 16:37:29 2008
+***************
+*** 4380,4386 ****
+      if (keep_cursor)
+  	saved_cursor = oap->cursor_start;
+  
+!     format_lines(oap->line_count);
+  
+      /*
+       * Leave the cursor at the first non-blank of the last formatted line.
+--- 4380,4386 ----
+      if (keep_cursor)
+  	saved_cursor = oap->cursor_start;
+  
+!     format_lines(oap->line_count, keep_cursor);
+  
+      /*
+       * Leave the cursor at the first non-blank of the last formatted line.
+***************
+*** 4495,4502 ****
+   * first line.
+   */
+      void
+! format_lines(line_count)
+      linenr_T	line_count;
+  {
+      int		max_len;
+      int		is_not_par;		/* current line not part of parag. */
+--- 4495,4503 ----
+   * first line.
+   */
+      void
+! format_lines(line_count, avoid_fex)
+      linenr_T	line_count;
++     int		avoid_fex;		/* don't use 'formatexpr' */
+  {
+      int		max_len;
+      int		is_not_par;		/* current line not part of parag. */
+***************
+*** 4666,4672 ****
+  #ifdef FEAT_COMMENTS
+  			+ (do_comments ? INSCHAR_DO_COM : 0)
+  #endif
+! 			, second_indent);
+  		State = old_State;
+  		p_smd = smd_save;
+  		second_indent = -1;
+--- 4667,4673 ----
+  #ifdef FEAT_COMMENTS
+  			+ (do_comments ? INSCHAR_DO_COM : 0)
+  #endif
+! 			+ (avoid_fex ? INSCHAR_NO_FEX : 0), second_indent);
+  		State = old_State;
+  		p_smd = smd_save;
+  		second_indent = -1;
+*** ../vim-7.1.275/src/proto/ops.pro	Wed Jan 16 20:01:14 2008
+--- src/proto/ops.pro	Wed Mar 12 16:38:39 2008
+***************
+*** 41,47 ****
+  void op_format __ARGS((oparg_T *oap, int keep_cursor));
+  void op_formatexpr __ARGS((oparg_T *oap));
+  int fex_format __ARGS((linenr_T lnum, long count, int c));
+! void format_lines __ARGS((linenr_T line_count));
+  int paragraph_start __ARGS((linenr_T lnum));
+  int do_addsub __ARGS((int command, linenr_T Prenum1));
+  int read_viminfo_register __ARGS((vir_T *virp, int force));
+--- 41,47 ----
+  void op_format __ARGS((oparg_T *oap, int keep_cursor));
+  void op_formatexpr __ARGS((oparg_T *oap));
+  int fex_format __ARGS((linenr_T lnum, long count, int c));
+! void format_lines __ARGS((linenr_T line_count, int avoid_fex));
+  int paragraph_start __ARGS((linenr_T lnum));
+  int do_addsub __ARGS((int command, linenr_T Prenum1));
+  int read_viminfo_register __ARGS((vir_T *virp, int force));
+*** ../vim-7.1.275/src/version.c	Wed Mar 12 14:38:51 2008
+--- src/version.c	Wed Mar 12 17:23:43 2008
+***************
+*** 668,669 ****
+--- 668,671 ----
+  {   /* Add new patch number below this line */
++ /**/
++     276,
+  /**/
+
+-- 
+An actual excerpt from a classified section of a city newspaper:
+"Illiterate?  Write today for free help!"
+
+ /// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///

Added: trunk/packages/vim/upstream/patches/7.1.277
URL: http://svn.debian.org/wsvn/pkg-vim/trunk/packages/vim/upstream/patches/7.1.277?rev=1232&op=file
==============================================================================
--- trunk/packages/vim/upstream/patches/7.1.277 (added)
+++ trunk/packages/vim/upstream/patches/7.1.277 Wed Mar 12 19:36:03 2008
@@ -1,0 +1,84 @@
+To: vim-dev at vim.org
+Subject: Patch 7.1.277
+Fcc: outbox
+From: Bram Moolenaar <Bram at moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.1.277
+Problem:    Default for 'paragraphs' misses some items (Colin Watson)
+Solution:   Add TP, HP, Pp, Lp and It to 'paragraphs'. (James Vega)
+Files:	    runtime/doc/options.txt, src/option.c
+
+
+*** ../vim-7.1.276/runtime/doc/options.txt	Sat Jan 19 15:55:51 2008
+--- runtime/doc/options.txt	Wed Mar 12 17:34:32 2008
+***************
+*** 1,4 ****
+! *options.txt*	For Vim version 7.1.  Last change: 2007 Aug 10
+  
+  
+  		  VIM REFERENCE MANUAL	  by Bram Moolenaar
+--- 1,4 ----
+! *options.txt*	For Vim version 7.1.  Last change: 2008 Feb 24
+  
+  
+  		  VIM REFERENCE MANUAL	  by Bram Moolenaar
+***************
+*** 4878,4884 ****
+  	|autocmd-osfiletypes|
+  
+  						*'paragraphs'* *'para'*
+! 'paragraphs' 'para'	string	(default "IPLPPPQPP LIpplpipbp")
+  			global
+  	Specifies the nroff macros that separate paragraphs.  These are pairs
+  	of two letters (see |object-motions|).
+--- 4901,4907 ----
+  	|autocmd-osfiletypes|
+  
+  						*'paragraphs'* *'para'*
+! 'paragraphs' 'para'	string	(default "IPLPPPQPP TPHPLIPpLpItpplpipbp")
+  			global
+  	Specifies the nroff macros that separate paragraphs.  These are pairs
+  	of two letters (see |object-motions|).
+*** ../vim-7.1.276/src/option.c	Wed Feb 13 18:35:23 2008
+--- src/option.c	Wed Mar 12 17:34:32 2008
+***************
+*** 1839,1845 ****
+  			    },
+      {"paragraphs",  "para", P_STRING|P_VI_DEF,
+  			    (char_u *)&p_para, PV_NONE,
+! 			    {(char_u *)"IPLPPPQPP LIpplpipbp", (char_u *)0L}},
+      {"paste",	    NULL,   P_BOOL|P_VI_DEF|P_PRI_MKRC,
+  			    (char_u *)&p_paste, PV_NONE,
+  			    {(char_u *)FALSE, (char_u *)0L}},
+--- 1839,1846 ----
+  			    },
+      {"paragraphs",  "para", P_STRING|P_VI_DEF,
+  			    (char_u *)&p_para, PV_NONE,
+! 			    {(char_u *)"IPLPPPQPP TPHPLIPpLpItpplpipbp",
+! 				(char_u *)0L}},
+      {"paste",	    NULL,   P_BOOL|P_VI_DEF|P_PRI_MKRC,
+  			    (char_u *)&p_paste, PV_NONE,
+  			    {(char_u *)FALSE, (char_u *)0L}},
+*** ../vim-7.1.276/src/version.c	Wed Mar 12 17:25:50 2008
+--- src/version.c	Wed Mar 12 17:35:14 2008
+***************
+*** 668,669 ****
+--- 668,671 ----
+  {   /* Add new patch number below this line */
++ /**/
++     277,
+  /**/
+
+-- 
+hundred-and-one symptoms of being an internet addict:
+119. You are reading a book and look for the scroll bar to get to
+     the next page.
+
+ /// Bram Moolenaar -- Bram at Moolenaar.net -- http://www.Moolenaar.net   \\\
+///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\        download, build and distribute -- http://www.A-A-P.org        ///
+ \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///




More information about the pkg-vim-maintainers mailing list