]> granicus.if.org Git - vim/commitdiff
updated for version 7.0112
authorBram Moolenaar <Bram@vim.org>
Thu, 21 Jul 2005 21:08:21 +0000 (21:08 +0000)
committerBram Moolenaar <Bram@vim.org>
Thu, 21 Jul 2005 21:08:21 +0000 (21:08 +0000)
12 files changed:
runtime/doc/autocmd.txt
runtime/doc/eval.txt
runtime/doc/options.txt
runtime/doc/spell.txt
runtime/doc/tags
runtime/menu.vim
src/Make_cyg.mak
src/ex_getln.c
src/gui_w32.c
src/po/Make_mvc.mak
src/search.c
src/version.h

index 44608a0bff16e81a0d390884efffc8c48ca0d3fb..a99f1845aa53a25de6dadba7d2cc577b50eeb365 100644 (file)
@@ -1,4 +1,4 @@
-*autocmd.txt*   For Vim version 7.0aa.  Last change: 2005 Mar 04
+*autocmd.txt*   For Vim version 7.0aa.  Last change: 2005 Jul 21
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -542,6 +542,18 @@ QuickFixCmdPre                                             *QuickFixCmdPre*
 QuickFixCmdPost                                                *QuickFixCmdPost*
                                like QuickFixCmdPre, but after a quickfix
                                command is run.
+                                                       *MenuPopup*
+MenuPopup                      Just before showing the popup menu (under the
+                               right mouse button).  Useful for adjusting the
+                               menu for what is under the cursor or mouse
+                               pointer.
+                               The pattern is matched against a single
+                               character representing the mode:
+                                       n       Normal
+                                       v       Visual
+                                       o       Operator-pending
+                                       i       Insert
+                                       c       Commmand line
                                                        *UserGettingBored*
 UserGettingBored               When the user hits CTRL-C.  Just kidding! :-)
                                                        *User*
index 93a2b4f61bbfe7034d2c1bcd95a9df01347926cf..307ceae252d9cfc30eca90c362b91049626d0eb4 100644 (file)
@@ -1,4 +1,4 @@
-*eval.txt*      For Vim version 7.0aa.  Last change: 2005 Jul 18
+*eval.txt*      For Vim version 7.0aa.  Last change: 2005 Jul 21
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1511,6 +1511,8 @@ foreground( )                     Number  bring the Vim window to the foreground
 function( {name})              Funcref reference to function {name}
 get( {list}, {idx} [, {def}])  any     get item {idx} from {list} or {def}
 get( {dict}, {key} [, {def}])  any     get item {key} from {dict} or {def}
+getbufline( {expr}, {lnum} [, {end}])
+                               List    lines {lnum} to {end} of buffer {expr}
 getchar( [expr])               Number  get one character from the user
 getcharmod( )                  Number  modifiers for the last typed character
 getbufvar( {expr}, {varname})          variable {varname} in buffer {expr}
@@ -2409,6 +2411,35 @@ get({dict}, {key} [, {default}])
                item is not available return {default}.  Return zero when
                {default} is omitted.
 
+                                                       *getbufline()*
+getbufline({expr}, {lnum} [, {end}])
+               Return the lines starting from {lnum} to {end} in the buffer
+               {expr} as a List. If {end} is omitted, only the line {lnum}
+               is returned.
+
+               For the use of {expr}, see |bufname()| above.
+
+               When {lnum} is a String that doesn't start with a
+               digit, line() is called to translate the String into a Number.
+
+               {end} is used in the same way as {lnum}.
+
+               When {lnum} is smaller than 1 or bigger than the number of
+               lines in the buffer, an empty List is returned.
+
+               When {end} is greater than the number of lines in the buffer,
+               it is treated as {end} is set to the number of lines in the
+               buffer.
+
+               When non-existing line ranges are specified, an empty List is
+               returned.  When {end} is before {lnum} an empty List is
+               returned.
+
+               This function works only for loaded buffers. For unloaded and
+               non-existing buffers, an empty List is returned.
+
+               Example: >
+                       :let lines = getbufline(bufnr("myfile"), 1, "$")
 
 getbufvar({expr}, {varname})                           *getbufvar()*
                The result is the value of option or local buffer variable
@@ -2572,7 +2603,7 @@ getline({lnum} [, {end}])
                including line {end}.
                {end} is used in the same way as {lnum}.
                Non-existing lines are silently omitted.
-               When {end} is before {lnum} an error is given.
+               When {end} is before {lnum} an empty List is returned.
                Example: >
                        :let start = line('.')
                        :let end = search("^$") - 1
@@ -4290,6 +4321,7 @@ arabic                    Compiled with Arabic support |Arabic|.
 arp                    Compiled with ARP support (Amiga).
 autocmd                        Compiled with autocommands support.
 balloon_eval           Compiled with |balloon-eval| support.
+balloon_multiline      GUI supports multiline balloons.
 beos                   BeOS version of Vim.
 browse                 Compiled with |:browse| support, and browse() will
                        work.
index d49135105a49a1224530affcb006dac670b11ea4..89c5cd569158c02e4c71484dd189f41e96688e38 100644 (file)
@@ -1,4 +1,4 @@
-*options.txt*  For Vim version 7.0aa.  Last change: 2005 Jul 18
+*options.txt*  For Vim version 7.0aa.  Last change: 2005 Jul 21
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -1013,7 +1013,7 @@ A jump table for the options with a short description can be found at |Q_op|.
        The evaluation of the expression must not have side effects!
        Example: >
     function! MyBalloonExpr()
-       return 'Cursor is at line ' . v:beval_lnum . 
+       return 'Cursor is at line ' . v:beval_lnum .
                \', column ' . v:beval_col .
                \ ' of file ' .  bufname(v:beval_bufnr) .
                \ ' on word "' . v:beval_text . '"'
@@ -1026,6 +1026,9 @@ A jump table for the options with a short description can be found at |Q_op|.
        Vim does not try to send a message to an external debugger (Netbeans
        or Sun Workshop).
 
+       To check wether line breaks in the balloon text work use this check: >
+               if has("balloon_multiline")
+<
                                     *'binary'* *'bin'* *'nobinary'* *'nobin'*
 'binary' 'bin'         boolean (default off)
                        local to buffer
index 79782c868aa837c3dff8545e3a0b4a2a45f76492..f85a49a2b8390227cc263e9950b64a602dfabf1d 100644 (file)
@@ -1,4 +1,4 @@
-*spell.txt*    For Vim version 7.0aa.  Last change: 2005 Jul 05
+*spell.txt*    For Vim version 7.0aa.  Last change: 2005 Jul 21
 
 
                  VIM REFERENCE MANUAL    by Bram Moolenaar
@@ -33,6 +33,11 @@ The words that are not recognized are highlighted with one of these:
 
 Vim only checks words for spelling, there is no grammar check.
 
+If the 'mousemodel' option is set to "popup" and the cursor is on a badly
+spelled word or it is "popup_setpos" and the mouse pointer is on a badly
+spelled word, then the popup menu will contain an submenu to replace the bad
+word.  Note: this slows down the appearance of the popup menu.
+
 To search for the next misspelled word:
 
                                                        *]s* *E756*
index 86ac4fe8a20c3e5006151a1cc07cbc709a9fbb30..6c61c24a842c4f64f4a0bf253e87ea8b2a597553 100644 (file)
@@ -3827,6 +3827,7 @@ Mac-format        editing.txt     /*Mac-format*
 Mac-format-write       editing.txt     /*Mac-format-write*
 Macintosh      os_mac.txt      /*Macintosh*
 Mark   motion.txt      /*Mark*
+MenuPopup      autocmd.txt     /*MenuPopup*
 MiNT   os_mint.txt     /*MiNT*
 Moolenaar      intro.txt       /*Moolenaar*
 MorphOS        os_amiga.txt    /*MorphOS*
@@ -5014,6 +5015,7 @@ garbagecollect()  eval.txt        /*garbagecollect()*
 gd     pattern.txt     /*gd*
 ge     motion.txt      /*ge*
 get()  eval.txt        /*get()*
+getbufline()   eval.txt        /*getbufline()*
 getbufvar()    eval.txt        /*getbufvar()*
 getchar()      eval.txt        /*getchar()*
 getcharmod()   eval.txt        /*getcharmod()*
index 7239f58b8da4b2d6e1ab9dbe56923c3afd8f5030..f43fcb96bee457ac313f1f81873efcc12162fa59 100644 (file)
@@ -2,7 +2,7 @@
 " You can also use this as a start for your own set of menus.
 "
 " Maintainer:  Bram Moolenaar <Bram@vim.org>
-" Last Change: 2005 Jul 08
+" Last Change: 2005 Jul 21
 
 " Note that ":an" (short for ":anoremenu") is often used to make a menu work
 " in all modes and avoid side effects from mappings defined by the user.
@@ -873,6 +873,61 @@ noremenu  <script> <silent> 1.100 PopUp.Select\ &All       :<C-U>call <SID>SelectAll()
 inoremenu <script> <silent> 1.100 PopUp.Select\ &All   <C-O>:call <SID>SelectAll()<CR>
 cnoremenu <script> <silent> 1.100 PopUp.Select\ &All   <C-U>call <SID>SelectAll()<CR>
 
+if has("spell")
+  " Spell suggestions in the popup menu.  Note that this will slow down the
+  " appearance of the menu!
+  func! <SID>SpellPopup()
+    if exists("s:changeitem") && s:changeitem != ''
+      call <SID>SpellDel()
+    endif
+
+    let curcol = col('.')
+    let w = spellbadword()
+    if col('.') > curcol               " don't use word after the cursor
+      let w = ''
+      call cursor(0, curcol)   " put the cursor back where it was
+    endif
+    if w != ''
+      let s:suglist = spellsuggest(w, 10)
+      if len(s:suglist) <= 0
+       call cursor(0, curcol)  " put the cursor back where it was
+      else
+       let s:changeitem = 'change\ "' . escape(w, ' .'). '"\ to'
+       let s:fromword = w
+       let pri = 1
+       for sug in s:suglist
+         exe 'amenu 1.5.' . pri . ' PopUp.' . s:changeitem . '.' . escape(sug, ' .')
+               \ . ' :call <SID>SpellReplace(' . pri . ')<CR>'
+         let pri += 1
+       endfor
+
+       let s:additem = 'add\ "' . escape(w, ' .') . '"\ to\ word\ list'
+       exe 'amenu 1.6 PopUp.' . s:additem . ' :spellgood ' . w . '<CR>'
+
+       let s:ignoreitem = 'ignore\ "' . escape(w, ' .') . '"'
+       exe 'amenu 1.7 PopUp.' . s:ignoreitem . ' :spellgood! ' . w . '<CR>'
+
+       amenu 1.8 PopUp.-SpellSep- :
+      endif
+    endif
+  endfunc
+
+  func! <SID>SpellReplace(n)
+    let l = getline('.')
+    call setline('.', strpart(l, 0, col('.') - 1) . s:suglist[a:n - 1]
+         \ . strpart(l, col('.') + len(s:fromword) - 1))
+  endfunc
+
+  func! <SID>SpellDel()
+    exe "aunmenu PopUp." . s:changeitem
+    exe "aunmenu PopUp." . s:additem
+    exe "aunmenu PopUp." . s:ignoreitem
+    aunmenu PopUp.-SpellSep-
+    let s:changeitem = ''
+  endfun
+
+  au! MenuPopup * call <SID>SpellPopup()
+endif
 
 " The GUI toolbar (for MS-Windows and GTK)
 if has("toolbar")
index 51e36189a8b3ad3238c745f6d8b31991faf01610..c7f8337974e7fb777eabb8c43611974aff7e4f6e 100644 (file)
@@ -353,7 +353,7 @@ EXE = gvim$(DEBUG_SUFFIX).exe
 OUTDIR = gobj$(DEBUG_SUFFIX)
 DEFINES += -DFEAT_GUI_W32 -DFEAT_CLIPBOARD
 EXTRA_OBJS += $(OUTDIR)/gui.o $(OUTDIR)/gui_w32.o $(OUTDIR)/gui_beval.o $(OUTDIR)/os_w32exe.o
-EXTRA_LIBS += -mwindows -lcomctl32
+EXTRA_LIBS += -mwindows -lcomctl32 -lversion
 else
 EXE = vim$(DEBUG_SUFFIX).exe
 OUTDIR = obj$(DEBUG_SUFFIX)
index c96f114883ae6a1dca16a6090a9168a4f143927c..a876508c0b4060fd1eccd28faae167b697f0f6de 100644 (file)
@@ -92,6 +92,7 @@ static void   redrawcmdprompt __ARGS((void));
 static void    cursorcmd __ARGS((void));
 static int     ccheck_abbr __ARGS((int));
 static int     nextwild __ARGS((expand_T *xp, int type, int options));
+static void    escape_fname __ARGS((char_u **pp));
 static int     showmatches __ARGS((expand_T *xp, int wildmenu));
 static void    set_expand_context __ARGS((expand_T *xp));
 static int     ExpandFromContext __ARGS((expand_T *xp, char_u *, int *, char_u ***, int));
@@ -3365,18 +3366,14 @@ ExpandEscape(xp, str, numfiles, files, options)
                /* If 'str' starts with "\~", replace "~" at start of
                 * files[i] with "\~". */
                if (str[0] == '\\' && str[1] == '~' && files[i][0] == '~')
-               {
-                   p = alloc((unsigned)(STRLEN(files[i]) + 2));
-                   if (p != NULL)
-                   {
-                       p[0] = '\\';
-                       STRCPY(p + 1, files[i]);
-                       vim_free(files[i]);
-                       files[i] = p;
-                   }
-               }
+                   escape_fname(&files[i]);
            }
            xp->xp_backslash = XP_BS_NONE;
+
+           /* If the first file starts with a '+' escape it.  Otherwise it
+            * could be seen as "+cmd". */
+           if (*files[0] == '+')
+               escape_fname(&files[0]);
        }
        else if (xp->xp_context == EXPAND_TAGS)
        {
@@ -3397,6 +3394,25 @@ ExpandEscape(xp, str, numfiles, files, options)
     }
 }
 
+/*
+ * Put a backslash before the file name in "pp", which is in allocated memory.
+ */
+    static void
+escape_fname(pp)
+    char_u **pp;
+{
+    char_u     *p;
+
+    p = alloc((unsigned)(STRLEN(*pp) + 2));
+    if (p != NULL)
+    {
+       p[0] = '\\';
+       STRCPY(p + 1, *pp);
+       vim_free(*pp);
+       *pp = p;
+    }
+}
+
 /*
  * For each file name in files[num_files]:
  * If 'orig_pat' starts with "~/", replace the home directory with "~".
index f0b47172e6f8198c1fbf60709f016f722f003a9e..52c8abeaf197e3152e59f31e5312b5fe88279467 100644 (file)
@@ -188,8 +188,61 @@ static VOID CALLBACK BevalTimerProc __ARGS((HWND hwnd, UINT uMsg, UINT idEvent,
 static BalloonEval  *cur_beval = NULL;
 static UINT        BevalTimerId = 0;
 static DWORD       LastActivity = 0;
+
+/*
+ * excerpts from headers since this may not be presented
+ * in the extremelly old compilers
+ */
+#include <pshpack1.h>
+
+typedef struct _DllVersionInfo
+{
+    DWORD cbSize;
+    DWORD dwMajorVersion;
+    DWORD dwMinorVersion;
+    DWORD dwBuildNumber;
+    DWORD dwPlatformID;
+} DLLVERSIONINFO;
+
+typedef struct tagTOOLINFOA_NEW
+{
+       UINT cbSize;
+       UINT uFlags;
+       HWND hwnd;
+       UINT uId;
+       RECT rect;
+       HINSTANCE hinst;
+       LPSTR lpszText;
+       LPARAM lParam;
+} TOOLINFO_NEW;
+
+typedef struct tagNMTTDISPINFO_NEW
+{
+    NMHDR      hdr;
+    LPTSTR     lpszText;
+    char       szText[80];
+    HINSTANCE  hinst;
+    UINT       uFlags;
+    LPARAM     lParam;
+} NMTTDISPINFO_NEW;
+
+#include <poppack.h>
+
+typedef HRESULT (WINAPI* DLLGETVERSIONPROC)(DLLVERSIONINFO *);
+#ifndef TTM_SETMAXTIPWIDTH
+# define TTM_SETMAXTIPWIDTH     (WM_USER+24)
+#endif
+
+#ifndef TTF_DI_SETITEM
+# define TTF_DI_SETITEM          0x8000
 #endif
 
+#ifndef TTN_GETDISPINFO
+# define TTN_GETDISPINFO        (TTN_FIRST - 0)
+#endif
+
+#endif /* defined(FEAT_BEVAL) */
+
 /* Local variables: */
 
 #ifdef FEAT_MENU
@@ -4021,13 +4074,93 @@ gui_mch_destroy_sign(sign)
  * 5) WM_NOTOFY:TTN_POP destroys created tooltip
  */
 
+/*
+ * determine whether installed Common Controls support multiline tooltips
+ * (i.e. their version is >= 4.70
+ */
+    int
+multiline_balloon_available(void)
+{
+    HINSTANCE hDll;
+    static char comctl_dll[] = "comctl32.dll";
+    static int multiline_tip = MAYBE;
+
+    if (multiline_tip != MAYBE)
+       return multiline_tip;
+
+    hDll = GetModuleHandle(comctl_dll);
+    if (hDll != NULL)
+    {
+        DLLGETVERSIONPROC pGetVer;
+        pGetVer = (DLLGETVERSIONPROC)GetProcAddress(hDll, "DllGetVersion");
+
+        if (pGetVer != NULL)
+        {
+            DLLVERSIONINFO dvi;
+            HRESULT hr;
+
+            ZeroMemory(&dvi, sizeof(dvi));
+            dvi.cbSize = sizeof(dvi);
+
+            hr = (*pGetVer)(&dvi);
+
+            if (SUCCEEDED(hr)
+                   && (dvi.dwMajorVersion > 4
+                   || (dvi.dwMajorVersion == 4 && dvi.dwMinorVersion >= 70)))
+           {
+               multiline_tip = TRUE;
+               return multiline_tip;
+           }
+        }
+       else
+       {
+           /* there is chance we have ancient CommCtl 4.70
+              which doesn't export DllGetVersion */
+           DWORD dwHandle = 0;
+           DWORD len = GetFileVersionInfoSize(comctl_dll, &dwHandle);
+           if (len > 0)
+           {
+               VS_FIXEDFILEINFO *ver;
+               UINT vlen = 0;
+               void *data = alloc(len);
+
+               if (data != NULL
+                       && GetFileVersionInfo(comctl_dll, 0, len, data)
+                       && VerQueryValue(data, "\\", (void **)&ver, &vlen)
+                       && vlen
+                       && HIWORD(ver->dwFileVersionMS) > 4
+                       || (HIWORD(ver->dwFileVersionMS) == 4
+                           && LOWORD(ver->dwFileVersionMS) >= 70))
+               {
+                   vim_free(data);
+                   multiline_tip = TRUE;
+                   return multiline_tip;
+               }
+               vim_free(data);
+           }
+       }
+    }
+    multiline_tip = FALSE;
+    return multiline_tip;
+}
+
     static void
 make_tooltip(beval, text, pt)
     BalloonEval *beval;
     char *text;
     POINT pt;
 {
-    TOOLINFO   ti;
+    TOOLINFO   *pti;
+    int                ToolInfoSize;
+
+    if (multiline_balloon_available() == TRUE)
+       ToolInfoSize = sizeof(TOOLINFO_NEW);
+    else
+       ToolInfoSize = sizeof(TOOLINFO);
+
+    pti = (TOOLINFO *)alloc(ToolInfoSize);
+    if (pti == NULL)
+       return;
 
     beval->balloon = CreateWindowEx(WS_EX_TOPMOST, TOOLTIPS_CLASS,
            NULL, WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP,
@@ -4037,20 +4170,32 @@ make_tooltip(beval, text, pt)
     SetWindowPos(beval->balloon, HWND_TOPMOST, 0, 0, 0, 0,
            SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
 
-    ti.cbSize = sizeof(TOOLINFO);
-    ti.uFlags = TTF_SUBCLASS;
-    ti.hwnd = beval->target;
-    ti.hinst = 0; /* Don't use string resources */
-    ti.uId = ID_BEVAL_TOOLTIP;
-    ti.lpszText = text;
+    pti->cbSize = ToolInfoSize;
+    pti->uFlags = TTF_SUBCLASS;
+    pti->hwnd = beval->target;
+    pti->hinst = 0; /* Don't use string resources */
+    pti->uId = ID_BEVAL_TOOLTIP;
+
+    if (multiline_balloon_available() == TRUE)
+    {
+       RECT rect;
+       TOOLINFO_NEW *ptin = (TOOLINFO_NEW *)pti;
+       pti->lpszText = LPSTR_TEXTCALLBACK;
+       ptin->lParam = (LPARAM)text;
+       if (GetClientRect(s_textArea, &rect)) /* switch multiline tooltips on */
+           SendMessage(beval->balloon, TTM_SETMAXTIPWIDTH, 0,
+                   (LPARAM)rect.right);
+    }
+    else
+       pti->lpszText = text; /* do this old way */
 
     /* Limit ballooneval bounding rect to CursorPos neighbourhood */
-    ti.rect.left = pt.x - 3;
-    ti.rect.top = pt.y - 3;
-    ti.rect.right = pt.x + 3;
-    ti.rect.bottom = pt.y + 3;
+    pti->rect.left = pt.x - 3;
+    pti->rect.top = pt.y - 3;
+    pti->rect.right = pt.x + 3;
+    pti->rect.bottom = pt.y + 3;
 
-    SendMessage(beval->balloon, TTM_ADDTOOL, 0, (LPARAM)&ti);
+    SendMessage(beval->balloon, TTM_ADDTOOL, 0, (LPARAM)pti);
     /* Make tooltip appear sooner */
     SendMessage(beval->balloon, TTM_SETDELAYTIME, TTDT_INITIAL, 10);
     /*
@@ -4059,6 +4204,7 @@ make_tooltip(beval, text, pt)
      */
     mouse_event(MOUSEEVENTF_MOVE, 1, 1, 0, 0);
     mouse_event(MOUSEEVENTF_MOVE, (DWORD)-1, (DWORD)-1, 0, 0);
+    vim_free(pti);
 }
 
     static void
@@ -4187,7 +4333,6 @@ gui_mch_create_beval_area(target, mesg, mesgCB, clientData)
        beval->clientData = clientData;
 
        InitCommonControls();
-
        cur_beval = beval;
 
        if (p_beval)
@@ -4208,19 +4353,28 @@ Handle_WM_Notify(hwnd, pnmh)
 
     if (cur_beval != NULL)
     {
-       if (pnmh->code == TTN_SHOW)
+       switch (pnmh->code)
        {
+       case TTN_SHOW:
            // TRACE0("TTN_SHOW {{{");
            // TRACE0("TTN_SHOW }}}");
-       }
-       else if (pnmh->code == TTN_POP) /* Before tooltip disappear */
-       {
+           break;
+       case TTN_POP: /* Before tooltip disappear */
            // TRACE0("TTN_POP {{{");
            delete_tooltip(cur_beval);
            gui_mch_enable_beval_area(cur_beval);
            // TRACE0("TTN_POP }}}");
 
            cur_beval->showState = ShS_NEUTRAL;
+           break;
+       case TTN_GETDISPINFO:
+       {
+           /* if you get there then we have new common controls */
+           NMTTDISPINFO_NEW *info = (NMTTDISPINFO_NEW *)pnmh;
+           info->lpszText = (LPSTR)info->lParam;
+           info->uFlags |= TTF_DI_SETITEM;
+       }
+           break;
        }
     }
 }
index 607cf5e9e57ad43f5cc73ebb885ae9a9a43b18b2..5448bee7a0bdbbfd063aabff34ddb05d5711840c 100644 (file)
@@ -6,11 +6,53 @@
 # Please read README_mvc.txt before using this file.
 #
 
-LANGUAGES =    af ca cs de en_GB es fr ga it ja ko no pl ru sk sv uk vi zh_TW \
-               zh_TW.UTF-8 zh_CN zh_CN.UTF-8
-MOFILES =      af.mo ca.mo cs.mo de.mo en_GB.mo es.mo fr.mo ga.mo it.mo ja.mo \
-               ko.mo no.mo pl.mo ru.mo sk.mo sv.mo uk.mo vi.mo \
-               zh_TW.mo zh_TW.UTF-8.mo zh_CN.mo zh_CN.UTF-8.mo
+LANGUAGES = \
+               af \
+               ca \
+               cs \
+               de \
+               en_GB \
+               es \
+               fr \
+               ga \
+               it \
+               ja \
+               ko \
+               no \
+               pl \
+               ru \
+               sk \
+               sv \
+               uk \
+               vi \
+               zh_CN \
+               zh_CN.UTF-8 \
+               zh_TW \
+               zh_TW.UTF-8 \
+
+MOFILES = \
+               af.mo \
+               ca.mo \
+               cs.mo \
+               de.mo \
+               en_GB.mo \
+               es.mo \
+               fr.mo \
+               ga.mo \
+               it.mo \
+               ja.mo \
+               ko.mo \
+               no.mo \
+               pl.mo \
+               ru.mo \
+               sk.mo \
+               sv.mo \
+               uk.mo \
+               vi.mo \
+               zh_CN.UTF-8.mo \
+               zh_CN.mo \
+               zh_TW.UTF-8.mo \
+               zh_TW.mo \
 
 PACKAGE = vim
 
index b2de027636aa40b6d5e0e3ea39902ad02742cbfd..288197cca77210c1ea973315bdaf9db423825606 100644 (file)
@@ -3666,7 +3666,7 @@ current_tagblock(oap, count_arg, include)
     old_start = old_end;
 
     /*
-     * If we start on "<aaa>" use the whole block inclusive.
+     * If we start on "<aaa>" select that block.
      */
 #ifdef FEAT_VISUAL
     if (!VIsual_active || equalpos(VIsual, curwin->w_cursor))
@@ -3713,7 +3713,7 @@ again:
      */
     for (n = 0; n < count; ++n)
     {
-       if (do_searchpair((char_u *)"<[^ \t>/!]\\+\\%(\\_s\\_[^>]\\{-}[^/]>\\|$\\|>\\)",
+       if (do_searchpair((char_u *)"<[^ \t>/!]\\+\\%(\\_s\\_[^>]\\{-}[^/]>\\|$\\|\\_s\\=>\\)",
                    (char_u *)"",
                    (char_u *)"</[^>]*>", BACKWARD, (char_u *)"", 0) <= 0)
        {
@@ -3791,9 +3791,9 @@ again:
            }
        curwin->w_cursor = end_pos;
 
-       /* If we now have the same start as before reset "do_include" and try
+       /* If we now have the same text as before reset "do_include" and try
         * again. */
-       if (equalpos(start_pos, old_start))
+       if (equalpos(start_pos, old_start) && equalpos(end_pos, old_end))
        {
            do_include = TRUE;
            curwin->w_cursor = old_start;
index 7df4ee1f5228b6ecbba5209d03de6368490cdc5c..0352cd37cc71336628842115154f58fdc4978d32 100644 (file)
@@ -36,5 +36,5 @@
 #define VIM_VERSION_NODOT      "vim70aa"
 #define VIM_VERSION_SHORT      "7.0aa"
 #define VIM_VERSION_MEDIUM     "7.0aa ALPHA"
-#define VIM_VERSION_LONG       "VIM - Vi IMproved 7.0aa ALPHA (2005 Jul 20)"
-#define VIM_VERSION_LONG_DATE  "VIM - Vi IMproved 7.0aa ALPHA (2005 Jul 20, compiled "
+#define VIM_VERSION_LONG       "VIM - Vi IMproved 7.0aa ALPHA (2005 Jul 21)"
+#define VIM_VERSION_LONG_DATE  "VIM - Vi IMproved 7.0aa ALPHA (2005 Jul 21, compiled "