[35301] trunk/dports/editors/vim-app
raimue at macports.org
raimue at macports.org
Mon Mar 24 15:54:52 PDT 2008
Revision: 35301
http://trac.macosforge.org/projects/macports/changeset/35301
Author: raimue at macports.org
Date: 2008-03-24 15:54:52 -0700 (Mon, 24 Mar 2008)
Log Message:
-----------
editors/vim-app:
* Update to version 7.1.285
* remove +macatsui variant, as the patch was applied upstream
Modified Paths:
--------------
trunk/dports/editors/vim-app/Portfile
trunk/dports/editors/vim-app/files/patchlist
Removed Paths:
-------------
trunk/dports/editors/vim-app/files/atsui.patch_mod
Modified: trunk/dports/editors/vim-app/Portfile
===================================================================
--- trunk/dports/editors/vim-app/Portfile 2008-03-24 22:51:41 UTC (rev 35300)
+++ trunk/dports/editors/vim-app/Portfile 2008-03-24 22:54:52 UTC (rev 35301)
@@ -5,7 +5,7 @@
name vim-app
set realname vim
set vim_version 7.1
-set vim_patchlevel 270
+set vim_patchlevel 285
version ${vim_version}.${vim_patchlevel}
revision 1
categories editors
@@ -114,14 +114,6 @@
}
}
-# vim-app specific, experimental variants.
-
-# macatsui: better antialising (experimental)
-# see http://wiki.macvim.org/wiki/VimPatches/ATSUI
-variant macatsui description {Experimental patch for better antialising} {
- patchfiles-append atsui.patch_mod
-}
-
# general vim variants
variant big description {Build big feature set} conflicts tiny small {
Deleted: trunk/dports/editors/vim-app/files/atsui.patch_mod
===================================================================
--- trunk/dports/editors/vim-app/files/atsui.patch_mod 2008-03-24 22:51:41 UTC (rev 35300)
+++ trunk/dports/editors/vim-app/files/atsui.patch_mod 2008-03-24 22:54:52 UTC (rev 35301)
@@ -1,852 +0,0 @@
---- src/vim.h
-+++ src/vim.h
-@@ -462,7 +462,8 @@ typedef unsigned long u8char_T; /* long should be 32 bits or more */
- * Check input method control.
- */
- #if defined(FEAT_XIM) || \
-- (defined(FEAT_GUI) && (defined(FEAT_MBYTE_IME) || defined(GLOBAL_IME)))
-+ (defined(FEAT_GUI) && (defined(FEAT_MBYTE_IME) || defined(GLOBAL_IME))) || \
-+ defined(FEAT_GUI_MAC)
- # define USE_IM_CONTROL
- #endif
-
---- src/gui_mac.c
-+++ src/gui_mac.c
-@@ -59,7 +59,31 @@ SInt32 gMacSystemVersion;
-
- #ifdef MACOS_CONVERT
- # define USE_CARBONKEYHANDLER
-+
-+int im_is_active = FALSE;
-+int im_start_row = 0;
-+int im_start_col = 0;
-+
-+#define NR_ELEMS(x) (sizeof(x) / sizeof(x[0]))
-+
-+TSMDocumentID gTSMDocument;
-+
-+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,7 +161,11 @@ static struct
-
- #ifdef MACOS_CONVERT
- # define USE_ATSUI_DRAWING
-+int p_macatsui_last;
- ATSUStyle gFontStyle;
-+#ifdef FEAT_MBYTE
-+ATSUStyle gWideFontStyle;
-+#endif
- Boolean gIsFontFallbackSet;
- #endif
-
-@@ -265,6 +293,12 @@ static void initialise_tabline(void);
- static WindowRef drawer = NULL; // TODO: put into gui.h
- #endif
-
-+#ifdef USE_ATSUI_DRAWING
-+void gui_mac_set_font_attributes(GuiFont font);
-+void gui_mac_dispose_atsui_style();
-+void gui_mac_create_atsu_style();
-+#endif
-+
- /*
- * ------------------------------------------------------------
- * Conversion Utility
-@@ -1976,15 +2010,84 @@ gui_mac_doSuspendEvent(EventRecord *event)
- * 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_doKeyEventCarbon(
-+gui_mac_unicode_key_event(
- EventHandlerCallRef nextHandler,
-- EventRef theEvent,
-- void *data)
-+ EventRef theEvent)
- {
- /* Multibyte-friendly key event handler */
- OSStatus err = -1;
-@@ -2000,7 +2103,7 @@ gui_mac_doKeyEventCarbon(
- char_u *to = NULL;
- Boolean isSpecial = FALSE;
- int i;
-- EventRef keyEvent;
-+ EventRef keyEvent;
-
- /* Mask the mouse (as per user setting) */
- if (p_mh)
-@@ -2832,7 +2935,6 @@ gui_mch_prepare(int *argc, char **argv)
- # else
- /* OSErr GetApplicationBundleFSSpec(FSSpecPtr theFSSpecPtr)
- * of TN2015
-- * This technic remove the ../Contents/MacOS/etc part
- */
- (void)GetCurrentProcess(&psn);
- /* if (err != noErr) return err; */
-@@ -2933,10 +3035,9 @@ gui_mch_init(void)
- /* TODO: Move most of this stuff toward gui_mch_init */
- Rect windRect;
- MenuHandle pomme;
-- EventTypeSpec eventTypeSpec;
- EventHandlerRef mouseWheelHandlerRef;
- #ifdef USE_CARBONKEYHANDLER
-- EventHandlerRef keyEventHandlerRef;
-+ EventTypeSpec eventTypeSpec;
- #endif
- ControlRef rootControl;
-
-@@ -3042,16 +3143,47 @@ gui_mch_init(void)
- }
-
- #ifdef USE_CARBONKEYHANDLER
-- eventTypeSpec.eventClass = kEventClassTextInput;
-- eventTypeSpec.eventKind = kEventUnicodeForKeyEvent;
-- keyEventHandlerUPP = NewEventHandlerUPP(gui_mac_doKeyEventCarbon);
-- if (noErr != InstallApplicationEventHandler(keyEventHandlerUPP, 1,
-- &eventTypeSpec, NULL, &keyEventHandlerRef))
-+ 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))
- {
-- keyEventHandlerRef = 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,6 +3239,19 @@ gui_mch_open(void)
- return OK;
- }
-
-+#ifdef USE_ATSUI_DRAWING
-+ void
-+gui_mac_dispose_atsui_style()
-+{
-+ if (p_macatsui && gFontStyle)
-+ ATSUDisposeStyle(gFontStyle);
-+#ifdef FEAT_MBYTE
-+ if (p_macatsui && gWideFontStyle)
-+ ATSUDisposeStyle(gWideFontStyle);
-+#endif
-+}
-+#endif
-+
- void
- gui_mch_exit(int rc)
- {
-@@ -3122,8 +3267,13 @@ gui_mch_exit(int rc)
- DisposeEventHandlerUPP(mouseWheelHandlerUPP);
-
- #ifdef USE_ATSUI_DRAWING
-- if (p_macatsui && gFontStyle)
-- ATSUDisposeStyle(gFontStyle);
-+ gui_mac_dispose_atsui_style();
-+#endif
-+
-+#ifdef USE_CARBONKEYHANDLER
-+ FixTSMDocument(gTSMDocument);
-+ DeactivateTSMDocument(gTSMDocument);
-+ DeleteTSMDocument(gTSMDocument);
- #endif
-
- /* Exit to shell? */
-@@ -3263,6 +3413,26 @@ gui_mac_select_font(char_u *font_name)
- return selected_font;
- }
-
-+#ifdef USE_ATSUI_DRAWING
-+ void
-+gui_mac_create_atsui_style()
-+{
-+ 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,11 +3450,7 @@ gui_mch_init_font(char_u *font_name, int fontset)
- char_u used_font_name[512];
-
- #ifdef USE_ATSUI_DRAWING
-- if (p_macatsui && gFontStyle == NULL)
-- {
-- if (ATSUCreateStyle(&gFontStyle) != noErr)
-- gFontStyle = NULL;
-- }
-+ gui_mac_create_atsui_style();
- #endif
-
- if (font_name == NULL)
-@@ -3348,49 +3514,8 @@ gui_mch_init_font(char_u *font_name, int fontset)
- 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;
-- }
-- }
-- }
-+ gui_mac_set_font_attributes(font);
- #endif
-
- return OK;
-@@ -3447,6 +3572,68 @@ gui_mch_get_fontname(GuiFont font, char_u *name)
- }
- #endif
-
-+#ifdef USE_ATSUI_DRAWING
-+ 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,66 +3643,22 @@ gui_mch_set_font(GuiFont font)
- #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 (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;
-- }
-- }
--
-+ gui_mac_set_font_attributes(font);
- }
-
-- if (p_macatsui && !gIsFontFallbackSet)
-+ if (p_macatsui && ! gIsFontFallbackSet)
- {
- /* Setup automatic font substitution. The user's guifontwide
- * is tried first, then the system tries other fonts. */
-@@ -3536,7 +3679,9 @@ gui_mch_set_font(GuiFont font)
- &fallbackFonts,
- NULL) == noErr)
- {
-- ATSUSetFontFallbacks((sizeof fallbackFonts)/sizeof(ATSUFontID), &fallbackFonts, kATSUSequentialFallbacksPreferred);
-+ ATSUSetFontFallbacks((sizeof fallbackFonts)/sizeof(ATSUFontID),
-+ &fallbackFonts,
-+ kATSUSequentialFallbacksPreferred);
- }
- /*
- ATSUAttributeValuePtr fallbackValues[] = { };
-@@ -3921,7 +4066,10 @@ draw_string_ATSUI(int row, int col, char_u *s, int len, int flags)
-
- /* - 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,35 +4104,120 @@ draw_string_ATSUI(int row, int col, char_u *s, int len, int flags)
- }
-
- {
-- /* Use old-style, non-antialiased QuickDraw text rendering. */
- TextMode(srcCopy);
- TextFace(normal);
-
-- /* SelectFont(hdc, gui.currFont); */
--
-+ /* 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)
-+
-+ 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)
- {
-- ATSUSetTransientFontMatching(textLayout, TRUE);
-+ 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); */
-
-- ATSUDrawText(textLayout,
-- kATSUFromTextBeginning, kATSUToTextEnd,
-- kATSUUseGrafPortPenLoc, kATSUUseGrafPortPenLoc);
-+ /* 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);
-+ }
-
-- ATSUDisposeTextLayout(textLayout);
-+ 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,6 +4231,14 @@ draw_string_ATSUI(int row, int col, char_u *s, int len, int flags)
- gui_mch_draw_string(int row, int col, char_u *s, int len, int flags)
- {
- #if defined(USE_ATSUI_DRAWING)
-+ /* switch from macatsui to nomacatsui */
-+ if (p_macatsui == 0 && p_macatsui_last != 0)
-+ gui_mac_dispose_atsui_style();
-+ else
-+ /* switch from nomacatsui to macatsui */
-+ if (p_macatsui != 0 && p_macatsui_last == 0)
-+ gui_mac_create_atsui_style();
-+
- if (p_macatsui)
- draw_string_ATSUI(row, col, s, len, flags);
- else
-@@ -4228,12 +4469,13 @@ gui_mch_wait_for_chars(int wtime)
- */
- /* TODO: reduce wtime accordinly??? */
- if (wtime > -1)
-- sleeppyTick = 60*wtime/1000;
-+ sleeppyTick = 60 * wtime / 1000;
- else
- sleeppyTick = 32767;
-+
- if (WaitNextEventWrp(mask, &event, sleeppyTick, dragRgn))
- {
-- gui_mac_handle_event(&event);
-+ gui_mac_handle_event(&event);
- if (input_available())
- {
- allow_scrollbar = FALSE;
-@@ -6031,7 +6273,7 @@ char_u *FullPathFromFSSpec_save(FSSpec file)
- #endif
- }
-
--#if defined(USE_IM_CONTROL) || defined(PROTO)
-+#if (defined(USE_IM_CONTROL) || defined(PROTO)) && defined(USE_CARBONKEYHANDLER)
- /*
- * Input Method Control functions.
- */
-@@ -6043,6 +6285,68 @@ char_u *FullPathFromFSSpec_save(FSSpec file)
- im_set_position(int row, int col)
- {
- /* TODO: Implement me! */
-+ im_start_row = row;
-+ im_start_col = col;
-+}
-+
-+ScriptLanguageRecord gTSLWindow;
-+ScriptLanguageRecord gTSLInsert;
-+ScriptLanguageRecord gTSLDefault = { 0, 0 };
-+
-+Component gTSCWindow;
-+Component gTSCInsert;
-+Component gTSCDefault;
-+
-+int im_initialized = 0;
-+
-+ 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,7 +6355,57 @@ im_set_position(int row, int col)
- void
- im_set_active(int active)
- {
-- KeyScript(active ? smKeySysScript : smKeyRoman);
-+ 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,9 +6414,10 @@ im_set_active(int active)
- int
- im_get_status(void)
- {
-- SInt32 script = GetScriptManagerVariable(smKeyScript);
-- return (script != smRoman
-- && script == GetScriptManagerVariable(smSysScript)) ? 1 : 0;
-+ if (! gui.in_use)
-+ return 0;
-+
-+ return im_is_active;
- }
-
- #endif /* defined(USE_IM_CONTROL) || defined(PROTO) */
Modified: trunk/dports/editors/vim-app/files/patchlist
===================================================================
--- trunk/dports/editors/vim-app/files/patchlist 2008-03-24 22:51:41 UTC (rev 35300)
+++ trunk/dports/editors/vim-app/files/patchlist 2008-03-24 22:54:52 UTC (rev 35301)
@@ -198,4 +198,19 @@
7.1.267 md5 e0faca4ff920e310ebd93f6da28539b6 \
7.1.268 md5 ca6552db3e711119fc01a8d9e17a8af3 \
7.1.269 md5 2b5bac09132db7aaf252ab6d78a74f0d \
- 7.1.270 md5 0e34370e4754eb1e484bd19b4e477d9b
+ 7.1.270 md5 0e34370e4754eb1e484bd19b4e477d9b \
+ 7.1.271 md5 6d158a103f5377ad5df8b7c0b967e2fa \
+ 7.1.272 md5 fc2938c51018396e10e748620f8d2f7f \
+ 7.1.273 md5 42ecc4759458ad93246c1b19ecce6a15 \
+ 7.1.274 md5 445f6f4f346717bdb6614c6a70c41442 \
+ 7.1.275 md5 32075aa79f8ce48ef1837d8e033b84d9 \
+ 7.1.276 md5 0fe0b10471c7e36215db962094028c05 \
+ 7.1.277 md5 4364938bc6a6daabf771d6d9aaabc63c \
+ 7.1.278 md5 5fd020f08de35a53765c877f65c1aa8c \
+ 7.1.279 md5 5d3180e7b661c7488c4c7595b45fd1dd \
+ 7.1.280 md5 2ccf6dadb87d70594c070c179917f561 \
+ 7.1.281 md5 1f6237a15cc4873e163a5f0bd85223c5 \
+ 7.1.282 md5 ecb63ee16fa69b3c923f25cba2a8dd9c \
+ 7.1.283 md5 49d3d772edbe80af70eb70036dd44adc \
+ 7.1.284 md5 28f0c0e9b04c737efbd1928487c5ff0c \
+ 7.1.285 md5 34db61a9920054c326dde2a76a1981d2
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.macosforge.org/pipermail/macports-changes/attachments/20080324/10e1509e/attachment-0001.html
More information about the macports-changes
mailing list