Conflicting error code E812 in patches 7.2.132 and 7.2.192
Patches 7.2.132 and 7.2.192 introduced new error messages, with the same number E812. However, the error messages in those patches are completely unrelated: - the first (7.2.132) one is about autocommands changing buffer - the second one (7.2.192) is about MzScheme. They should have a different error numbers. ":help E812" in latest doc files (ftp.nluug.nl::Vim/runtime/) only describes the error message about MzScheme. $ grep E812 vim7/src/* vim7/src/fileio.c:static char *e_auchangedbuf = N_("E812: Autocommands changed buffer or buffer name"); vim7/src/if_mzsch.c:EMSG(_("E812: Sorry, this command is disabled, the MzScheme libraries could not be loaded.")); $ grep E812 vim7/doc/* vim7/doc/if_mzsch.txt:5. Dynamic loading *mzscheme-dynamic* *E812* Regards -- Dominique --~--~-~--~~~---~--~~ You received this message from the "vim_dev" maillist. For more information, visit http://www.vim.org/maillist.php -~--~~~~--~~--~--~---
Re: scim_bridge_client_imcontext_set_cursor_location -- an annoying error message
Tony Mechelynck wrote: > On 10/06/09 21:31, Charles Campbell wrote: > >> Hello! >> >> In running a not too trivial script I've written, I keep getting >> messages of the following sort (even when the script is quiescent, ie. >> after its opened its 8 windows): >> (Centos 5.2/Linux/gtk) >> >> CALC/ xorn? An IOException occurred at >> scim_bridge_client_imcontext_set_cursor_location () >> ...snip... >> An IOException occurred at >> >> > I don't remember ever having seen those messages on my system, but scim > is one possible XIM; it has settings for a lot of languages (including > "English (American)"!). Are you sure your Input Method settings are > correct? Or at least that they won't cause you trouble if you aren't > aware that an IM is running? You may want to check the settings by > clicking right, then "SCIM setup", on the keyboard-like icon in the > system tray (or at least that's what it looks like to me on my KDE3 > winmanager). > > In Vim, you may want to > > :setlocal imi=0 ims=-1 > > in any window where you want neither IM nor keymap handling at the moment. > I'll definitely do that. I probably next-to-never use deliberately scim (mostly its ctrl- to toggle back to normal because of a typo). Hopefully I won't see those messages again! As far as having the correct settings, I'm afraid that I have no idea -- they're whatever the defaults happen to be. That "keyboard icon" doesn't look very keyboard-ish on my screen, but it did bring up the SCIM setup you mentioned. Thank you, Tony! Chip Campbell --~--~-~--~~~---~--~~ You received this message from the "vim_dev" maillist. For more information, visit http://www.vim.org/maillist.php -~--~~~~--~~--~--~---
Re: [PATCH] Allow the default compiler to be overridden in xxd/Make_cyg.mak
On 11/06/09 15:41, Chris Sutcliffe wrote: > >> This un-hardcoding is part of my patch for cross-compiling with mingw >> from 2009-03-18, which is still on the todo list. > > Ah, excellent! I'll just have to sit tight and wait for your patch to > make it in to an official patch. > > Cheers! > > Chris > Yes, but remember that the todo list is a long one, and that Bram still has a job, where IIUC he's supposed to dedicate 4/5 of his time to other stuff than Vim. Best regards, Tony. -- Hartley's First Law: You can lead a horse to water, but if you can get him to float on his back, you've got something. --~--~-~--~~~---~--~~ You received this message from the "vim_dev" maillist. For more information, visit http://www.vim.org/maillist.php -~--~~~~--~~--~--~---
Re: scim_bridge_client_imcontext_set_cursor_location -- an annoying error message
On 10/06/09 21:31, Charles Campbell wrote: > > Hello! > > In running a not too trivial script I've written, I keep getting > messages of the following sort (even when the script is quiescent, ie. > after its opened its 8 windows): > (Centos 5.2/Linux/gtk) > > CALC/ xorn? An IOException occurred at > scim_bridge_client_imcontext_set_cursor_location () > An IOException occurred at > scim_bridge_client_imcontext_set_cursor_location () > An IOException occurred at > scim_bridge_client_imcontext_set_cursor_location () > An IOException occurred at > scim_bridge_client_imcontext_set_cursor_location () > An IOException occurred at > scim_bridge_client_imcontext_set_cursor_location () > An IOException occurred at > scim_bridge_client_imcontext_set_cursor_location () > An IOException occurred at > scim_bridge_client_imcontext_set_cursor_location () > An IOException occurred at > scim_bridge_client_imcontext_set_cursor_location () > An IOException occurred at > scim_bridge_client_imcontext_set_cursor_location () > An IOException occurred at > scim_bridge_client_imcontext_set_cursor_location () > An IOException occurred at > scim_bridge_client_imcontext_set_cursor_location () > An IOException occurred at > scim_bridge_client_imcontext_set_cursor_location () > Another agent is running... > Failed to allocate the agent. Exitting... > Failed to invoking the agent: Connection refused > Cannot launch the agent > Another agent is running... > Failed to allocate the agent. Exitting... > Failed to invoking the agent: Connection refused > Cannot launch the agent > An IOException occurred at > scim_bridge_client_imcontext_set_cursor_location () > > In applying google to "IOException occurred at > scim_bridge_client_imcontext_set_cursor_location", I see numerous bugs > like this reported against various programs. I suspect that this > problem may be a vim+gtk+linux problem. Anyone else see this, and any > suggestions for how to figure out what's causing it? BTW, these > messages go to the launching GnomeTerminal even though I'm using gvim. > > Regards, > Chip Campbell I don't remember ever having seen those messages on my system, but scim is one possible XIM; it has settings for a lot of languages (including "English (American)"!). Are you sure your Input Method settings are correct? Or at least that they won't cause you trouble if you aren't aware that an IM is running? You may want to check the settings by clicking right, then "SCIM setup", on the keyboard-like icon in the system tray (or at least that's what it looks like to me on my KDE3 winmanager). In Vim, you may want to :setlocal imi=0 ims=-1 in any window where you want neither IM nor keymap handling at the moment. See also :help 'iminsert' :help 'imsearch' :help 'imactivatekey' :help 'imdisable' :help mbyte-XIM and start scrolling from there Note that the "Note" at lines 862 sqq of mbyte.txt (Last change: 2009 Feb 28) seems a little outdated: my gvim with GTK2-GNOME GUI has "-xfontset +xim" compiled-in, which according to that note would be impossible. ":help 'guifontset'" correctly states that that option doesn't exist on GTK2 GUIs. Best regards, Tony. -- hundred-and-one symptoms of being an internet addict: 49. You never have to deal with busy signals when calling your ISP...because you never log off. --~--~-~--~~~---~--~~ You received this message from the "vim_dev" maillist. For more information, visit http://www.vim.org/maillist.php -~--~~~~--~~--~--~---
Patch 7.2.209
Patch 7.2.209 Problem:For xxd setmode() is undefined on Cygwin. Solution: Include io.h. (Dominique Pelle) Files: src/xxd/xxd.c *** ../vim-7.2.208/src/xxd/xxd.c2007-12-03 21:32:21.0 +0100 --- src/xxd/xxd.c 2009-06-16 18:03:14.0 +0200 *** *** 64,69 --- 64,72 # define _CRT_SECURE_NO_DEPRECATE # define _CRT_NONSTDC_NO_DEPRECATE #endif + #if !defined(CYGWIN) && (defined(CYGWIN32) || defined(__CYGWIN__) || defined(__CYGWIN32__)) + # define CYGWIN + #endif #include #ifdef VAXC *** *** 77,83 #if !defined(OS2) && defined(__EMX__) # define OS2 #endif ! #if defined(MSDOS) || defined(WIN32) || defined(OS2) || defined(__BORLANDC__) # include /* for setmode() */ #else # ifdef UNIX --- 80,87 #if !defined(OS2) && defined(__EMX__) # define OS2 #endif ! #if defined(MSDOS) || defined(WIN32) || defined(OS2) || defined(__BORLANDC__) \ ! || defined(CYGWIN) # include /* for setmode() */ #else # ifdef UNIX *** *** 150,158 # endif #endif - #if !defined(CYGWIN) && (defined(CYGWIN32) || defined(__CYGWIN__) || defined(__CYGWIN32__)) - # define CYGWIN - #endif #if defined(MSDOS) || defined(WIN32) || defined(OS2) # define BIN_READ(yes) ((yes) ? "rb" : "rt") # define BIN_WRITE(yes) ((yes) ? "wb" : "wt") --- 154,159 *** ../vim-7.2.208/src/version.c2009-06-16 17:50:56.0 +0200 --- src/version.c 2009-06-16 18:16:08.0 +0200 *** *** 678,679 --- 678,681 { /* Add new patch number below this line */ + /**/ + 209, /**/ -- "So this is it," said Arthur, "we are going to die." "Yes," said Ford, "except...no! Wait a minute!" He suddenly lunged across the chamber at something behind Arthur's line of vision. "What's this switch?" he cried. "What? Where?" cried Arthur, twisting around. "No, I was only fooling," said Ford, "we are going to die after all." -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy" /// Bram Moolenaar -- b...@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/// --~--~-~--~~~---~--~~ You received this message from the "vim_dev" maillist. For more information, visit http://www.vim.org/maillist.php -~--~~~~--~~--~--~---
Patch 7.2.208
Patch 7.2.208 Problem:"set novice" gives an error message, it should be ignored. Solution: Don't see "no" in "novice" as unsetting an option. (Patrick Texier) Files: src/option.c *** ../vim-7.2.207/src/option.c 2009-06-16 15:23:07.0 +0200 --- src/option.c2009-06-16 17:35:08.0 +0200 *** *** 4006,4012 else { prefix = 1; ! if (STRNCMP(arg, "no", 2) == 0) { prefix = 0; arg += 2; --- 4006,4012 else { prefix = 1; ! if (STRNCMP(arg, "no", 2) == 0 && STRNCMP(arg, "novice", 6) != 0) { prefix = 0; arg += 2; *** *** 9757,9763 } --p; } ! if (STRNCMP(p, "no", 2) == 0) { xp->xp_context = EXPAND_BOOL_SETTINGS; p += 2; --- 9757,9763 } --p; } ! if (STRNCMP(p, "no", 2) == 0 && STRNCMP(p, "novice", 6) != 0) { xp->xp_context = EXPAND_BOOL_SETTINGS; p += 2; *** ../vim-7.2.207/src/version.c2009-06-16 17:22:38.0 +0200 --- src/version.c 2009-06-16 17:50:33.0 +0200 *** *** 678,679 --- 678,681 { /* Add new patch number below this line */ + /**/ + 208, /**/ -- Now it is such a bizarrely improbable coincidence that anything as mind-bogglingly useful as the Babel fish could have evolved purely by chance that some thinkers have chosen to see it as a final and clinching proof of the NON-existence of God. The argument goes something like this: 'I refuse to prove that I exist,' says God, 'for proof denies faith, and without faith I am nothing.' 'But,' says Man, 'the Babel fish is a dead giveaway, isn't it? It could not have evolved by chance. It proves you exist, and so therefore, by your own arguments, you don't. QED.' 'Oh dear,' says God, 'I hadn't thought of that,' and promptly vanishes in a puff of logic. 'Oh, that was easy,' says Man, and for an encore goes on to prove that black is white and gets himself killed on the next pedestrian crossing. -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy" /// Bram Moolenaar -- b...@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/// --~--~-~--~~~---~--~~ You received this message from the "vim_dev" maillist. For more information, visit http://www.vim.org/maillist.php -~--~~~~--~~--~--~---
Patch 7.2.207
Patch 7.2.207 Problem:Using freed memory with ":redrawstatus" when it works recursively. Solution: Prevent recursively updating the status line. (partly by Dominique Pelle) Files: src/screen.c *** ../vim-7.2.206/src/screen.c 2009-06-16 16:01:34.0 +0200 --- src/screen.c2009-06-16 17:04:53.0 +0200 *** *** 5743,5748 --- 5743,5755 int fillchar; int attr; int this_ru_col; + static int busy = FALSE; + + /* It's possible to get here recursively when 'statusline' (indirectly) + * invokes ":redrawstatus". Simply ignore the call then. */ + if (busy) + return; + busy = TRUE; wp->w_redr_status = FALSE; if (wp->w_status_height == 0) *** *** 5881,5886 --- 5888,5894 attr); } #endif + busy = FALSE; } #ifdef FEAT_STL_OPT *** ../vim-7.2.206/src/version.c2009-06-16 16:57:53.0 +0200 --- src/version.c 2009-06-16 17:21:56.0 +0200 *** *** 678,679 --- 678,681 { /* Add new patch number below this line */ + /**/ + 207, /**/ -- In many of the more relaxed civilizations on the Outer Eastern Rim of the Galaxy, "The Hitchhiker's Guide to the Galaxy" has already supplanted the great "Encyclopedia Galactica" as the standard repository of all knowledge and wisdom, for though it has many omissions and contains much that is apocryphal, or at least wildly inaccurate, it scores over the older, more pedestrian work in two important respects. First, it is slightly cheaper; and second, it has the words "DON'T PANIC" inscribed in large friendly letters on its cover. -- Douglas Adams, "The Hitchhiker's Guide to the Galaxy" /// Bram Moolenaar -- b...@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/// --~--~-~--~~~---~--~~ You received this message from the "vim_dev" maillist. For more information, visit http://www.vim.org/maillist.php -~--~~~~--~~--~--~---
Patch 7.2.206
Patch 7.2.206 Problem:Win32: Can't build netbeans interface with Visual Studio 2010. Solution: Undefine ECONNREFUSED. (George Reilly) Files: src/netbeans.c *** ../vim-7.2.205/src/netbeans.c 2009-05-17 23:25:16.0 +0200 --- src/netbeans.c 2009-06-16 16:39:17.0 +0200 *** *** 32,37 --- 32,38 /* WinSock API is separated from C API, thus we can't use read(), write(), * errno... */ # define sock_errno WSAGetLastError() + # undef ECONNREFUSED # define ECONNREFUSED WSAECONNREFUSED # ifdef EINTR # undef EINTR *** ../vim-7.2.205/src/version.c2009-06-16 16:45:14.0 +0200 --- src/version.c 2009-06-16 16:57:45.0 +0200 *** *** 678,679 --- 678,681 { /* Add new patch number below this line */ + /**/ + 206, /**/ -- How To Keep A Healthy Level Of Insanity: 18. When leaving the zoo, start running towards the parking lot, yelling "run for your lives, they're loose!!" /// Bram Moolenaar -- b...@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/// --~--~-~--~~~---~--~~ You received this message because you are subscribed to the Google Groups "vim_dev" group. To post to this group, send email to vim_dev@googlegroups.com To unsubscribe from this group, send email to vim_dev+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/vim_dev?hl=en -~--~~~~--~~--~--~---
Patch 7.2.205 (extra)
Patch 7.2.205 (extra) Problem:Win32: No support for High DPI awarenes. Solution: Fix the manifest file. (George Reilly) Files: src/Make_mvc.mak, src/gvim.exe.mnf *** ../vim-7.2.204/src/Make_mvc.mak 2009-06-16 16:34:12.0 +0200 --- src/Make_mvc.mak2009-06-16 16:36:32.0 +0200 *** *** 1040,1046 $(OUTDIR)/xpm_w32.obj: $(OUTDIR) xpm_w32.c $(CC) $(CFLAGS) $(XPM_INC) xpm_w32.c ! $(OUTDIR)/vim.res:$(OUTDIR) vim.rc version.h tools.bmp tearoff.bmp \ vim.ico vim_error.ico vim_alert.ico vim_info.ico vim_quest.ico $(RC) /l 0x409 /Fo$(OUTDIR)/vim.res $(RCFLAGS) vim.rc --- 1040,1046 $(OUTDIR)/xpm_w32.obj: $(OUTDIR) xpm_w32.c $(CC) $(CFLAGS) $(XPM_INC) xpm_w32.c ! $(OUTDIR)/vim.res:$(OUTDIR) vim.rc gvim.exe.mnf version.h tools.bmp tearoff.bmp \ vim.ico vim_error.ico vim_alert.ico vim_info.ico vim_quest.ico $(RC) /l 0x409 /Fo$(OUTDIR)/vim.res $(RCFLAGS) vim.rc *** ../vim-7.2.204/src/gvim.exe.mnf 2008-08-09 19:37:29.0 +0200 --- src/gvim.exe.mnf2009-06-16 16:36:32.0 +0200 *** *** 1,5 ! ! + + + http://schemas.microsoft.com/SMI/2005/WindowsSettings";> + true + + *** ../vim-7.2.204/src/version.c2009-06-16 16:34:12.0 +0200 --- src/version.c 2009-06-16 16:43:04.0 +0200 *** *** 678,679 --- 678,681 { /* Add new patch number below this line */ + /**/ + 205, /**/ -- How To Keep A Healthy Level Of Insanity: 17. When the money comes out the ATM, scream "I won!, I won! 3rd time this week!" /// Bram Moolenaar -- b...@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/// --~--~-~--~~~---~--~~ You received this message from the "vim_dev" maillist. For more information, visit http://www.vim.org/maillist.php -~--~~~~--~~--~--~---
Patch 7.2.204 (extra)
Patch 7.2.204 (extra) Problem:Win32: Can't build with Visual Studio 2010 beta 1. Solution: Fix the makefile. (George Reilly) Files: src/Make_mvc.mak *** ../vim-7.2.203/src/Make_mvc.mak 2009-05-26 22:58:43.0 +0200 --- src/Make_mvc.mak2009-06-16 16:27:59.0 +0200 *** *** 1,18 # Makefile for Vim on Win32 (Windows NT/2000/XP/2003 and Windows 95/98/Me) # and Win64, using the Microsoft Visual C++ compilers. Known to work with # VC5, VC6 (VS98), VC7.0 (VS2002), VC7.1 (VS2003), VC8 (VS2005), ! # and VC9 (VS2008). # # To build using other Windows compilers, see INSTALLpc.txt # # This makefile can build the console, GUI, OLE-enable, Perl-enabled and ! # Python-enabled versions of vim for Win32 platforms. # ! # The basic command line to build vim is: # # nmake -f Make_mvc.mak # ! # This will build the console version of vim with no additional interfaces. # To add features, define any of the following: # # After changing features do "nmake clean" first --- 1,18 # Makefile for Vim on Win32 (Windows NT/2000/XP/2003 and Windows 95/98/Me) # and Win64, using the Microsoft Visual C++ compilers. Known to work with # VC5, VC6 (VS98), VC7.0 (VS2002), VC7.1 (VS2003), VC8 (VS2005), ! # VC9 (VS2008), and VC10 (VS2010). # # To build using other Windows compilers, see INSTALLpc.txt # # This makefile can build the console, GUI, OLE-enable, Perl-enabled and ! # Python-enabled versions of Vim for Win32 platforms. # ! # The basic command line to build Vim is: # # nmake -f Make_mvc.mak # ! # This will build the console version of Vim with no additional interfaces. # To add features, define any of the following: # # After changing features do "nmake clean" first *** *** 358,363 --- 358,366 !if "$(_NMAKE_VER)" == "9.00.30729.01" MSVCVER = 9.0 !endif + !if "$(_NMAKE_VER)" == "10.00.20506.01" + MSVCVER = 10.0 + !endif !endif # Abort bulding VIM if version of VC is unrecognised. *** *** 372,378 !endif # Convert processor ID to MVC-compatible number ! !if ("$(MSVCVER)" != "8.0") && ("$(MSVCVER)" != "9.0") !if "$(CPUNR)" == "i386" CPUARG = /G3 !elseif "$(CPUNR)" == "i486" --- 375,381 !endif # Convert processor ID to MVC-compatible number ! !if ("$(MSVCVER)" != "8.0") && ("$(MSVCVER)" != "9.0") && ("$(MSVCVER)" != "10.0") !if "$(CPUNR)" == "i386" CPUARG = /G3 !elseif "$(CPUNR)" == "i486" *** *** 405,411 !else # MAXSPEED OPTFLAG = /Ox !endif ! !if ("$(MSVCVER)" == "8.0") || ("$(MSVCVER)" == "9.0") # Use link time code generation if not worried about size !if "$(OPTIMIZE)" != "SPACE" OPTFLAG = $(OPTFLAG) /GL --- 408,414 !else # MAXSPEED OPTFLAG = /Ox !endif ! !if ("$(MSVCVER)" == "8.0") || ("$(MSVCVER)" == "9.0") || ("$(MSVCVER)" == "10.0") # Use link time code generation if not worried about size !if "$(OPTIMIZE)" != "SPACE" OPTFLAG = $(OPTFLAG) /GL *** *** 793,799 # Report link time code generation progress if used. !ifdef NODEBUG ! !if ("$(MSVCVER)" == "8.0") || ("$(MSVCVER)" == "9.0") !if "$(OPTIMIZE)" != "SPACE" LINKARGS1 = $(LINKARGS1) /LTCG:STATUS !endif --- 796,802 # Report link time code generation progress if used. !ifdef NODEBUG ! !if ("$(MSVCVER)" == "8.0") || ("$(MSVCVER)" == "9.0") || ("$(MSVCVER)" == "10.0") !if "$(OPTIMIZE)" != "SPACE" LINKARGS1 = $(LINKARGS1) /LTCG:STATUS !endif *** ../vim-7.2.203/src/version.c2009-06-16 16:01:34.0 +0200 --- src/version.c 2009-06-16 16:32:41.0 +0200 *** *** 678,679 --- 678,681 { /* Add new patch number below this line */ + /**/ + 204, /**/ -- How To Keep A Healthy Level Of Insanity: 16. Have your coworkers address you by your wrestling name, Rock Hard Kim. /// Bram Moolenaar -- b...@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/// --~--~-~--~~~---~--~~ You received this message from the "vim_dev" maillist. For more information, visit http://www.vim.org/maillist.php -~--~~~~--~~--~--~---
Patch 7.2.203
Patch 7.2.203 Problem:When reloading a buffer or doing anything else with a buffer that is not displayed in a visible window, autocommands may be applied to the current window, folds messed up, etc. Solution: Instead of using the current window for the hidden buffer use a special window, splitting the current one temporarily. Files: src/fileio.c, src/globals.h, src/gui.c, src/if_perl.xs, src/proto/gui.pro, src/proto/window.pro, src/screen.c, src/structs.h, src/window.c *** ../vim-7.2.202/src/fileio.c 2009-06-16 15:35:46.0 +0200 --- src/fileio.c2009-06-11 21:22:37.0 +0200 *** *** 8365,8371 /* Execute the modeline settings, but don't set window-local * options if we are using the current window for another buffer. */ ! do_modelines(aco.save_curwin == NULL ? OPT_NOWIN : 0); /* restore the current window */ aucmd_restbuf(&aco); --- 8365,8371 /* Execute the modeline settings, but don't set window-local * options if we are using the current window for another buffer. */ ! do_modelines(curwin == aucmd_win ? OPT_NOWIN : 0); /* restore the current window */ aucmd_restbuf(&aco); *** *** 8381,8388 /* * Prepare for executing autocommands for (hidden) buffer "buf". ! * Search a window for the current buffer. Save the cursor position and ! * screen offset. * Set "curbuf" and "curwin" to match "buf". * When FEAT_AUTOCMD is not defined another version is used, see below. */ --- 8381,8388 /* * Prepare for executing autocommands for (hidden) buffer "buf". ! * Search for a visible window containing the current buffer. If there isn't ! * one then use "aucmd_win". * Set "curbuf" and "curwin" to match "buf". * When FEAT_AUTOCMD is not defined another version is used, see below. */ *** *** 8392,8399 buf_T *buf; /* new curbuf */ { win_T *win; ! ! aco->new_curbuf = buf; /* Find a window that is for the new buffer */ if (buf == curbuf)/* be quick when buf is curbuf */ --- 8392,8400 buf_T *buf; /* new curbuf */ { win_T *win; ! #ifdef FEAT_WINDOWS ! int save_ea; ! #endif /* Find a window that is for the new buffer */ if (buf == curbuf)/* be quick when buf is curbuf */ *** *** 8407,8448 win = NULL; #endif ! /* ! * Prefer to use an existing window for the buffer, it has the least side ! * effects (esp. if "buf" is curbuf). ! * Otherwise, use curwin for "buf". It might make some items in the ! * window invalid. At least save the cursor and topline. ! */ if (win != NULL) { ! /* there is a window for "buf", make it the curwin */ ! aco->save_curwin = curwin; curwin = win; - aco->save_buf = win->w_buffer; - aco->new_curwin = win; } else { ! /* there is no window for "buf", use curwin */ ! aco->save_curwin = NULL; ! aco->save_buf = curbuf; ! --curbuf->b_nwindows; curwin->w_buffer = buf; ++buf->b_nwindows; ! /* save cursor and topline, set them to safe values */ ! aco->save_cursor = curwin->w_cursor; ! curwin->w_cursor.lnum = 1; ! curwin->w_cursor.col = 0; ! aco->save_topline = curwin->w_topline; ! curwin->w_topline = 1; ! #ifdef FEAT_DIFF ! aco->save_topfill = curwin->w_topfill; ! curwin->w_topfill = 0; #endif } - curbuf = buf; } /* --- 8408,8460 win = NULL; #endif ! /* Allocate "aucmd_win" when needed. If this fails (out of memory) fall ! * back to using the current window. */ ! if (win == NULL && aucmd_win == NULL) ! { ! win_alloc_aucmd_win(); ! if (aucmd_win == NULL) ! win = curwin; ! } ! ! aco->save_curwin = curwin; ! aco->save_curbuf = curbuf; if (win != NULL) { ! /* There is a window for "buf" in the current tab page, make it the !* curwin. This is preferred, it has the least side effects (esp. if !* "buf" is curbuf). */ curwin = win; } else { ! /* There is no window for "buf", use "aucmd_win". To minimize the side !* effects, insert it in a the current tab page. !* Anything related to a window (e.g., setting folds) may have !* unexpected results. */ ! curwin = aucmd_win; curwin->w_buffer = buf; ++buf->b_nwindows; ! #ifdef FEAT_WINDOWS ! /* Split the current window, put the aucmd_win in the upper half. */ ! make_snapshot(SNAP_AUCMD_IDX); ! save_ea = p_ea; ! p_ea = FALSE; ! (void)win_split_ins(0, WSP_TOP, aucmd_win,
Patch 7.2.202
Patch 7.2.202 Problem:BufWipeout autocommand that edits another buffer causes problems. Solution: Check for the situation, give an error and quit the operation. Files: src/fileio.c *** ../vim-7.2.201/src/fileio.c 2009-05-16 17:29:37.0 +0200 --- src/fileio.c2009-06-11 21:22:37.0 +0200 *** *** 4824,4829 --- 4824,4831 char_u*sfname; { #ifdef FEAT_AUTOCMD + buf_T *buf = curbuf; + /* It's like the unnamed buffer is deleted */ if (curbuf->b_p_bl) apply_autocmds(EVENT_BUFDELETE, NULL, NULL, FALSE, curbuf); *** *** 4832,4837 --- 4834,4845 if (aborting()) /* autocmds may abort script processing */ return FAIL; # endif + if (curbuf != buf) + { + /* We are in another buffer now, don't do the renaming. */ + EMSG(_(e_auchangedbuf)); + return FAIL; + } #endif if (setfname(curbuf, fname, sfname, FALSE) == OK) *** ../vim-7.2.201/src/version.c2009-06-16 15:23:07.0 +0200 --- src/version.c 2009-06-16 15:28:31.0 +0200 *** *** 678,679 --- 678,681 { /* Add new patch number below this line */ + /**/ + 202, /**/ -- How To Keep A Healthy Level Of Insanity: 14. Put mosquito netting around your work area. Play a tape of jungle sounds all day. /// Bram Moolenaar -- b...@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/// --~--~-~--~~~---~--~~ You received this message from the "vim_dev" maillist. For more information, visit http://www.vim.org/maillist.php -~--~~~~--~~--~--~---
Patch 7.2.201
Patch 7.2.201 Problem:Cannot copy/paste HTML to/from Firefox via the clipboard. Solution: Implement this for GTK. Add the "html" value to 'clipboard'. Files: runtime/doc/options.txt, src/globals.h, src/gui_gtk_x11.c, src/mbyte.c, src/proto/mbyte.pro, src/option.c *** ../vim-7.2.200/runtime/doc/options.txt 2009-02-21 20:27:00.0 +0100 --- runtime/doc/options.txt 2009-06-12 22:25:22.0 +0200 *** *** 1443,1448 --- 1444,1457 autoselectmlLike "autoselect", but for the modeless selection only. Compare to the 'A' flag in 'guioptions'. + htmlWhen the clipboard contains HTML, use this when + pasting. When putting text on the clipboard, mark it + as HTML. This works to copy rendered HTML from + Firefox, paste it as raw HTML in Vim, select the HTML + in Vim and paste it in a rich edit box in Firefox. + Only supported for GTK version 2 and later. + Only available with the |+multi_byte| feature. + exclude:{pattern} Defines a pattern that is matched against the name of the terminal 'term'. If there is a match, no *** ../vim-7.2.200/src/globals.h2009-06-16 15:12:11.0 +0200 --- src/globals.h 2009-06-12 21:10:30.0 +0200 *** *** 509,514 --- 509,515 EXTERN intclip_unnamed INIT(= FALSE); EXTERN intclip_autoselect INIT(= FALSE); EXTERN intclip_autoselectml INIT(= FALSE); + EXTERN intclip_html INIT(= FALSE); EXTERN regprog_T *clip_exclude_prog INIT(= NULL); #endif *** ../vim-7.2.200/src/gui_gtk_x11.c2009-06-16 15:12:11.0 +0200 --- src/gui_gtk_x11.c 2009-06-16 14:44:19.0 +0200 *** *** 107,112 --- 107,113 TARGET_UTF8_STRING, TARGET_STRING, TARGET_COMPOUND_TEXT, + TARGET_HTML, TARGET_TEXT, TARGET_TEXT_URI_LIST, TARGET_TEXT_PLAIN, *** *** 123,128 --- 124,130 {VIMENC_ATOM_NAME,0, TARGET_VIMENC}, {VIM_ATOM_NAME, 0, TARGET_VIM}, #ifdef FEAT_MBYTE + {"text/html", 0, TARGET_HTML}, {"UTF8_STRING", 0, TARGET_UTF8_STRING}, #endif {"COMPOUND_TEXT", 0, TARGET_COMPOUND_TEXT}, *** *** 140,145 --- 142,148 { {"text/uri-list", 0, TARGET_TEXT_URI_LIST}, # ifdef FEAT_MBYTE + {"text/html", 0, TARGET_HTML}, {"UTF8_STRING", 0, TARGET_UTF8_STRING}, # endif {"STRING",0, TARGET_STRING}, *** *** 178,183 --- 181,187 * Atoms used to control/reference X11 selections. */ #ifdef FEAT_MBYTE + static GdkAtom html_atom = GDK_NONE; static GdkAtom utf8_string_atom = GDK_NONE; #endif #ifndef HAVE_GTK2 *** *** 1364,1369 --- 1368,1391 else text = tmpbuf_utf8; } + else if (len >= 2 && text[0] == 0xff && text[1] == 0xfe) + { + vimconv_T conv; + + /* UTF-16, we get this for HTML */ + conv.vc_type = CONV_NONE; + convert_setup_ext(&conv, (char_u *)"utf-16le", FALSE, p_enc, TRUE); + + if (conv.vc_type != CONV_NONE) + { + text += 2; + len -= 2; + tmpbuf = string_convert(&conv, text, &len); + convert_setup(&conv, NULL, NULL); + } + if (tmpbuf != NULL) + text = tmpbuf; + } } #else /* !HAVE_GTK2 */ # ifdef FEAT_MBYTE *** *** 1451,1456 --- 1473,1479 if (info != (guint)TARGET_STRING #ifdef FEAT_MBYTE + && (!clip_html || info != (guint)TARGET_HTML) && info != (guint)TARGET_UTF8_STRING && info != (guint)TARGET_VIMENC #endif *** *** 1486,1491 --- 1509,1548 } #ifdef FEAT_MBYTE + else if (info == (guint)TARGET_HTML) + { + vimconv_T conv; + + /* Since we get utf-16, we probably should set it as well. */ + conv.vc_type = CONV_NONE; + convert_setup_ext(&conv, p_enc, TRUE, (char_u *)"utf-16le", FALSE); + if (conv.vc_type != CONV_NONE) + { + tmpbuf = string_convert(&conv, string, &length); + convert_setup(&conv, NULL, NULL); + vim_free(string); + string = tmpbuf; + } + + /* Prepend the BOM: "fffe" */ + if (string != NULL) + { + tmpbuf = alloc(length + 2); + tmpbuf[0] = 0xff; + tmpbuf[1] = 0xfe; + mch_memmove(tmpbuf + 2, string, (size_t)length); + vim_free(string); + string = tmpbuf; + length += 2; + + selection_data->type = selection_data->target; + selection_data->format = 16;/* 16 bits per char
Patch 7.2.200
Patch 7.2.200 Problem:Reading past end of string when navigating the menu bar or resizing the window. Solution: Add and use mb_ptr2len_len(). (partly by Dominique Pelle) Also add mb_ptr2cells_len() to prevent more trouble. Files: src/gui_gtk_x11.c, src/os_unix.c, src/globals.h, src/mbyte.c, src/proto/mbyte.pro *** ../vim-7.2.199/src/gui_gtk_x11.c2009-06-03 16:20:09.0 +0200 --- src/gui_gtk_x11.c 2009-06-16 14:44:19.0 +0200 *** *** 6077,6088 # ifdef FEAT_MBYTE if (enc_utf8) { ! c = utf_ptr2char(p); if (c >= 0x1) /* show chars > 0x as ? */ c = 0xbf; buf[textlen].byte1 = c >> 8; buf[textlen].byte2 = c; ! p += utf_ptr2len(p); width += utf_char2cells(c); } else --- 6135,6149 # ifdef FEAT_MBYTE if (enc_utf8) { ! int pcc[MAX_MCO]; ! ! /* TODO: use the composing characters */ ! c = utfc_ptr2char_len(p, &pcc, len - (p - s)); if (c >= 0x1) /* show chars > 0x as ? */ c = 0xbf; buf[textlen].byte1 = c >> 8; buf[textlen].byte2 = c; ! p += utfc_ptr2len_len(p, len - (p - s)); width += utf_char2cells(c); } else *** *** 6106,6113 if (has_mbyte) { width = 0; ! for (p = s; p < s + len; p += (*mb_ptr2len)(p)) ! width += (*mb_ptr2cells)(p); } else # endif --- 6167,6174 if (has_mbyte) { width = 0; ! for (p = s; p < s + len; p += (*mb_ptr2len_len)(p, len - (p - s))) ! width += (*mb_ptr2cells_len)(p, len - (p - s)); } else # endif *** ../vim-7.2.199/src/os_unix.c2009-05-17 13:30:58.0 +0200 --- src/os_unix.c 2009-06-03 12:35:59.0 +0200 *** *** 4305,4311 ta_buf[i] = '\n'; # ifdef FEAT_MBYTE if (has_mbyte) ! i += (*mb_ptr2len)(ta_buf + i) - 1; # endif } --- 4305,4312 ta_buf[i] = '\n'; # ifdef FEAT_MBYTE if (has_mbyte) ! i += (*mb_ptr2len_len)(ta_buf + i, ! ta_len + len - i) - 1; # endif } *** ../vim-7.2.199/src/globals.h2009-06-10 18:15:49.0 +0200 --- src/globals.h 2009-06-12 21:10:30.0 +0200 *** *** 810,820 --- 815,828 */ /* length of char in bytes, including following composing chars */ EXTERN int (*mb_ptr2len) __ARGS((char_u *p)) INIT(= latin_ptr2len); + /* idem, with limit on string length */ + EXTERN int (*mb_ptr2len_len) __ARGS((char_u *p, int size)) INIT(= latin_ptr2len_len); /* byte length of char */ EXTERN int (*mb_char2len) __ARGS((int c)) INIT(= latin_char2len); /* convert char to bytes, return the length */ EXTERN int (*mb_char2bytes) __ARGS((int c, char_u *buf)) INIT(= latin_char2bytes); EXTERN int (*mb_ptr2cells) __ARGS((char_u *p)) INIT(= latin_ptr2cells); + EXTERN int (*mb_ptr2cells_len) __ARGS((char_u *p, int size)) INIT(= latin_ptr2cells_len); EXTERN int (*mb_char2cells) __ARGS((int c)) INIT(= latin_char2cells); EXTERN int (*mb_off2cells) __ARGS((unsigned off, unsigned max_off)) INIT(= latin_off2cells); EXTERN int (*mb_ptr2char) __ARGS((char_u *p)) INIT(= latin_ptr2char); *** ../vim-7.2.199/src/mbyte.c 2009-05-17 13:30:58.0 +0200 --- src/mbyte.c 2009-06-16 15:01:30.0 +0200 *** *** 127,133 --- 127,136 static int dbcs_char2len __ARGS((int c)); static int dbcs_char2bytes __ARGS((int c, char_u *buf)); static int dbcs_ptr2len __ARGS((char_u *p)); + static int dbcs_ptr2len_len __ARGS((char_u *p, int size)); + static int utf_ptr2cells_len __ARGS((char_u *p, int size)); static int dbcs_char2cells __ARGS((int c)); + static int dbcs_ptr2cells_len __ARGS((char_u *p, int size)); static int dbcs_ptr2char __ARGS((char_u *p)); /* Lookup table to quickly get the length in bytes of a UTF-8 character from *** *** 606,614 --- 609,619 if (enc_utf8) { mb_ptr2len = utfc_ptr2len; + mb_ptr2len_len = utfc_ptr2len_len; mb_char2len = utf_char2len; mb_char2bytes = utf_char2bytes; mb_ptr2cells = utf_ptr2cells; + mb_ptr2cells_len = utf_ptr2cells_len; mb_char2cells = utf_char2cells; mb_off2cells = utf_off2cells; mb_ptr2char = utf_ptr2char; *** *** 617,625 --- 622,632 else if (enc_dbcs != 0) { mb_ptr2len = dbc
Patch 7.2.199
Patch 7.2.199 Problem:Strange character in comment. Solution: Change to "message". (Yongwei Wu) Files: src/term.c *** ../vim-7.2.198/src/term.c 2009-05-17 13:30:58.0 +0200 --- src/term.c 2009-06-16 11:16:17.0 +0200 *** *** ,5561 * respects the current B/k/< settings of 'cpoption'. * * This function is called when expanding mappings/abbreviations on the ! * command-line, and for building the "Ambiguous mapping..." error messæge. * * It uses a growarray to build the translation string since the * latter can be wider than the original description. The caller has to --- ,5561 * respects the current B/k/< settings of 'cpoption'. * * This function is called when expanding mappings/abbreviations on the ! * command-line, and for building the "Ambiguous mapping..." error message. * * It uses a growarray to build the translation string since the * latter can be wider than the original description. The caller has to *** ../vim-7.2.198/src/version.c2009-06-16 11:08:13.0 +0200 --- src/version.c 2009-06-16 14:31:03.0 +0200 *** *** 678,679 --- 678,681 { /* Add new patch number below this line */ + /**/ + 199, /**/ -- How To Keep A Healthy Level Of Insanity: 10. Ask people what sex they are. Laugh hysterically after they answer. /// Bram Moolenaar -- b...@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/// --~--~-~--~~~---~--~~ You received this message from the "vim_dev" maillist. For more information, visit http://www.vim.org/maillist.php -~--~~~~--~~--~--~---
Re: A typo in term.c
Bram Moolenaar schrieb: > > Yongwei - > >> L. 5558 is (in Latin-1): >> >> * command-line, and for building the "Ambiguous mapping..." error >> messæge. >> >> "messæge" seems to be a typo for "message". >> >> I found this when my fencs (ucs-bom,utf-8,cp936,latin1) recognized >> this file as CP936, and my curiosity pushed me to find the character >> that caused the misjudgement. > > Strange that this got there. Thanks for noticing! > > - Bram Somebody with enabled 'digraph' typed messeage in Insert mode? -- Andy --~--~-~--~~~---~--~~ You received this message from the "vim_dev" maillist. For more information, visit http://www.vim.org/maillist.php -~--~~~~--~~--~--~---
Re: A typo in term.c
Yongwei - > L. 5558 is (in Latin-1): > > * command-line, and for building the "Ambiguous mapping..." error > messæge. > > "messæge" seems to be a typo for "message". > > I found this when my fencs (ucs-bom,utf-8,cp936,latin1) recognized > this file as CP936, and my curiosity pushed me to find the character > that caused the misjudgement. Strange that this got there. Thanks for noticing! - Bram -- How To Keep A Healthy Level Of Insanity: 8. Don't use any punctuation marks. /// Bram Moolenaar -- b...@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/// --~--~-~--~~~---~--~~ You received this message from the "vim_dev" maillist. For more information, visit http://www.vim.org/maillist.php -~--~~~~--~~--~--~---
Re: VERY slow switching buffers for files loaded from network share
Cháo wrote: > > > I recently ran into a very annoying issue with GVim's performance while > > > editing files from a network shared from Ubuntu mapped mapped as a drive > > in > > > Windows XP. The main issue was saving a file taking a very long time > > *(10-12 > > > secs!!!)* and it turns out that most of the time VIM is spending > > traversing > > > each subdirs of the file same as switching buffers, such as these dirs: > > > > > > K:\ > > > K:\main\ > > > K:\main\comp\ > > > K:\main\comp\base\ > > > K:\main\comp\base\app\ > > > K:\main\comp\base\app\admin\ > > > K:\main\comp\base\app\admin\comp\ > > > K:\main\comp\base\app\admin\comp\resource\ > > > K:\main\comp\base\app\admin\comp\resource\en_US\ > > > K:\main\comp\base\app\admin\comp\resource\en_US\strings\ > > > > > > > > > I've attached a detailed log from FileMon (sysinternals) when I switch > > from > > > 1 buffer to another in GVIM and it took *about 7 seconds*. So the deeper > > > the directory structure the file is located, the longer it would take > > GVIM > > > to save a file or to switch buffers. > > > > > > *Is this the wanted or correct behavior for GVIM to query / traverse each > > > directory like so?* Maybe someone who's familiar with the GVIM code > > could > > > give me some light regarding the slow performance for traversing dirs > > while > > > working on a network share through VPN or any slow connection for that > > > matter. > > > > > > Also attached is the logs for very slow saving of a file, maybe both are > > > related. Both zip files each contain 2 diff formats for viewing > > pleasure. > > > I've decided to email vim_dev as well since it might have more dev > > people > > > who are watching this list, hope it's OK. > > > > This is probably caused by the code that figures out the full path name > > on Unix. This is required to avoid any trouble with symbolic links. > > Especially editing the same file under different names. > > > > Your directory is actually on a network share that doesn't support > > symbolic links. But that's very difficult to detect. > > > > I'm not sure if there is any way to avoid this without compromising > > reliability. Perhaps the expansion can be postponed or done in the > > background. That would make it more complex. > > > > -- > > How To Keep A Healthy Level Of Insanity: > > 4. Put your garbage can on your desk and label it "in". > > > > /// Bram Moolenaar -- b...@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 > > /// > > > > Thanks for the quick reply, Bram! > I thought there were a reason for traversing each dir like that. So can we > have an option to turn this behavior off for those instances we know that we > don't need to do such extra potentially slow work? Or if not, can you tell > me where in code that I might be able to disable and compile myself a > version without this behavior? It's really painful to a level where I am > consider copying to locally and copy back to original server location! But > that's not very ideal. The simplest workaround is to use an absolute path name when editing the file. I don't think there is any other way. Vim invokes getcwd() and that's a C library function, you probably can't do better than that. I have tried to avoid repeating calls to get the full file name. I know there is one more, when executing autocommands. It's not easy to avoid. You might make it faster by not having any autocommands trigger on write. -- How To Keep A Healthy Level Of Insanity: 9. As often as possible, skip rather than walk. /// Bram Moolenaar -- b...@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/// --~--~-~--~~~---~--~~ You received this message from the "vim_dev" maillist. For more information, visit http://www.vim.org/maillist.php -~--~~~~--~~--~--~---
Patch 7.2.198
Patch 7.2.198 Problem:Size of buffer used for tgetent() may be too small. Solution: Use the largest known size everywhere. Files: src/vim.h *** ../vim-7.2.197/src/vim.h2009-05-14 22:19:19.0 +0200 --- src/vim.h 2009-06-07 20:37:48.0 +0200 *** *** 1345,1355 # define MSG_BUF_CLEN MSG_BUF_LEN/* cell length */ #endif ! #if defined(AMIGA) || defined(__linux__) || defined(__QNX__) || defined(__CYGWIN32__) || defined(_AIX) ! # define TBUFSZ 2048 /* buffer size for termcap entry */ ! #else ! # define TBUFSZ 1024 /* buffer size for termcap entry */ ! #endif /* * Maximum length of key sequence to be mapped. --- 1345,1355 # define MSG_BUF_CLEN MSG_BUF_LEN/* cell length */ #endif ! /* Size of the buffer used for tgetent(). Unfortunately this is largely ! * undocumented, some systems use 1024. Using a buffer that is too small ! * causes a buffer overrun and a crash. Use the maximum known value to stay ! * on the safe side. */ ! #define TBUFSZ 2048 /* buffer size for termcap entry */ /* * Maximum length of key sequence to be mapped. *** ../vim-7.2.197/src/version.c2009-06-10 18:15:49.0 +0200 --- src/version.c 2009-06-16 11:06:45.0 +0200 *** *** 678,679 --- 678,681 { /* Add new patch number below this line */ + /**/ + 198, /**/ -- How To Keep A Healthy Level Of Insanity: 7. Finish all your sentences with "in accordance with the prophecy". /// Bram Moolenaar -- b...@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/// --~--~-~--~~~---~--~~ You received this message from the "vim_dev" maillist. For more information, visit http://www.vim.org/maillist.php -~--~~~~--~~--~--~---