Package: vim-gnome Version: 2:7.2.284-1 Severity: normal Tags: patch Hi,
I'm using vim-gnome in a GNOME Terminal. The default window title for GNOME Terminal is set to "GNOME 端末" in Japanese locale. When I open a file with vim, the window title will be replaced with "<filename> (<directory>) - VIM". Then I quitting vim, at that time I expected the window title is restored to "GNOME 端末", but it is still "<filename> (<directory>) - VIM". The window title will be successfully restored if the window title is not containing non-ASCII characters, therefore I'm suspecting the problem is multibyte/non-ASCII character specific. After some investigations, I'm suspecting that the following #ifdef conditions are incorrect. vim-7.2.284/src/os_unix.c: #ifdef FEAT_XFONTSET if (text_prop.encoding == XA_STRING) { #endif if (get_title) oldtitle = vim_strsave((char_u *)text_prop.value); else oldicon = vim_strsave((char_u *)text_prop.value); #ifdef FEAT_XFONTSET } else { char **cl; Status transform_status; int n = 0; transform_status = XmbTextPropertyToTextList(x11_display, &text_prop, &cl, &n); if (transform_status >= Success && n > 0 && cl[0]) { if (get_title) oldtitle = vim_strsave((char_u *) cl[0]); else oldicon = vim_strsave((char_u *) cl[0]); XFreeStringList(cl); } else { if (get_title) oldtitle = vim_strsave((char_u *)text_prop.value); else oldicon = vim_strsave((char_u *)text_prop.value); } } #endif These code blocks seems to be required to handle a multibyte character. However FEAT_XFONTSET macro is not defined while compiling vim-gnome, therefore it couldn't handle a multibyte character. I suggest to change the #ifdef conditions as following. #if defined(FEAT_XFONTSET) || ( defined(HAVE_X11) && defined(FEAT_MBYTE) ) I made and attached a patch to fix the problem. Thanks, -- System Information: Debian Release: squeeze/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: i386 (i686) Kernel: Linux 2.6.31-1-686 (SMP w/1 CPU core) Locale: LANG=ja_JP.UTF-8, LC_CTYPE=ja_JP.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages vim-gnome depends on: ii libacl1 2.2.49-1 Access control list shared library ii libbonoboui2-0 2.24.2-1 The Bonobo UI library ii libc6 2.10.2-2 GNU C Library: Shared libraries ii libglib2.0-0 2.22.2-2 The GLib library of C routines ii libgnome2-0 2.28.0-1 The GNOME library - runtime files ii libgnomeui-0 2.24.2-1 The GNOME libraries (User Interfac ii libgpm2 1.20.4-3.2 General Purpose Mouse - shared lib ii libgtk2.0-0 2.18.3-1 The GTK+ graphical user interface ii libice6 2:1.0.6-1 X11 Inter-Client Exchange library ii libncurses5 5.7+20090803-2 shared libraries for terminal hand ii libpango1.0-0 1.26.1-1 Layout and rendering of internatio ii libperl5.10 5.10.1-8 shared Perl library ii libruby1.8 1.8.7.174-2 Libraries necessary to run Ruby 1. ii libselinux1 2.0.89-4 SELinux runtime shared libraries ii libsm6 2:1.1.1-1 X11 Session Management library ii libx11-6 2:1.3.2-1 X11 client-side library ii libxt6 1:1.0.7-1 X11 toolkit intrinsics library ii python2.5 2.5.4-3 An interactive high-level object-o ii tcl8.4 8.4.19-4 Tcl (the Tool Command Language) v8 ii vim-common 2:7.2.284-1 Vi IMproved - Common files ii vim-gui-common 2:7.2.284-1 Vi IMproved - Common GUI files ii vim-runtime 2:7.2.284-1 Vi IMproved - Runtime files vim-gnome recommends no packages. Versions of packages vim-gnome suggests: pn cscope <none> (no description available) ii gnome-icon-theme 2.28.0-1 GNOME Desktop icon theme ii ttf-dejavu 2.30-1 Metapackage to pull in ttf-dejavu- pn vim-doc <none> (no description available) -- no debconf information
--- vim-7.2.284/src/os_unix.c.orig 2009-11-06 10:34:41.000000000 +0900 +++ vim-7.2.284/src/os_unix.c 2009-11-27 02:48:52.000000000 +0900 @@ -1797,7 +1797,7 @@ retval = TRUE; if (!test_only) { -#ifdef FEAT_XFONTSET +#if defined(FEAT_XFONTSET) || ( defined(HAVE_X11) && defined(FEAT_MBYTE) ) if (text_prop.encoding == XA_STRING) { #endif @@ -1805,7 +1805,7 @@ oldtitle = vim_strsave((char_u *)text_prop.value); else oldicon = vim_strsave((char_u *)text_prop.value); -#ifdef FEAT_XFONTSET +#if defined(FEAT_XFONTSET) || ( defined(HAVE_X11) && defined(FEAT_MBYTE) ) } else {